控件拖拽问题(三)
我们在看getRichPage调用,
getRichPage.call(this, this.pageSoulId, (data) => {
this.opModel = data
let ancestorSoul = parse(data.pageSoul)
addRenderFn(ancestorSoul)
resetUid(ancestorSoul.maxUid)
saveSoul()
this.setSoul(ancestorSoul)
walkSoul(ancestorSoul, (soul) => {
resetSoul(soul)
来看一下这里面的addRenderFn (code_helper.js)
export function addRenderFn(soul) {
let config = makeControl(soul.code);
soul.render = config.render
soul.renderProd = config.renderProd
soul.children.forEach(child => {
addRenderFn(child)
})
}
这句其实就是遍历dropPanel里面的组件,把组件代码拷贝到soul里面。之后调用saveSoul
在assemble.js中
function saveSoul() {
let data = store.getters[‘dragModule/soul’]
templateStore.dataSnapshot[templateStore.count] = deepCopy(data)//版本2
templateStore.count++
localStorage.setItem(“templateStore”, stringify(templateStore));
}
这个函数,得到的data,需要标注一下。
如果拿了数据,就把他存在localStorage里面的templateStore中。
之后就把dropPanel显示出来,assenble_page.vue完成显示工作。
vue esview控件拖拽问题(三)getRichPage
最新推荐文章于 2024-06-06 09:28:10 发布