From a9bbbe822377536e6f3374b05e2b64b12b2f188c Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期一, 27 五月 2024 10:25:43 +0800 Subject: [PATCH] action文档 --- Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue | 101 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 72 insertions(+), 29 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue index 5eb4afb..527e2e5 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue @@ -1,7 +1,10 @@ <template> <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid"> <dynamic-button v-if="componentVO.buttons && componentVO.buttons.length>0" :componentVO="componentVO" + :key="areasName+'buttons-'+componentVO.oid" :butttonList="componentVO.buttons" :dataStore="checkDatas" + @afterMethod="handleRefresh" + @refresh="initData" :sourceData="sourceData" type="tree" style="margin-bottom: 5px;"></dynamic-button> <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" @@ -48,6 +51,15 @@ inDialog: { type: Boolean, default: false + }, + canEdit:{ + //鍐呭鏄惁鍙紪杈� + type:Boolean, + default:false + }, + actionType:{ + //鎸夐挳鎿嶄綔绫诲瀷 + default:"" }, areasName:{ type:String, @@ -98,7 +110,23 @@ dataStore:newval }); } - } + }, + deep: true, + immediate: true + }, + data:{ + handler(newval) { + if(newval) { + this.$emit("setData", { + area: this.areasName, + type:this.componentVO.uiComponentType, + currentDefineVO:this.componentVO.treeDefineVO, + data:newval + }); + } + }, + deep: true, + immediate: true }, sourceData:{ handler(newval) { @@ -106,7 +134,9 @@ this.sourceDataMapParams=this.sourceDataMap(); this.getParams(); this.handleRefresh(); - } + }, + deep: true, + immediate: true } }, data() { @@ -126,10 +156,6 @@ } }, created() { - this.getParams(); - if (!this.lazy) { - this.initData(); - } }, mounted() { if(this.componentVO.buttons && this.componentVO.buttons.length>0){ @@ -149,23 +175,21 @@ this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1]; } sourceDataMap.sourceBtmName = this.sourceBtmType; - ; sourceDataMap.sourceOid = this.sourceData.oid; } for (let i in this.sourceData) { - let item = this.sourceData[i] - if (item && item.constructor === Object) return; - if (i == 'type' || i == 'context' || i == 'content') return; + const item = this.sourceData[i] + if (item && item.constructor === Object) continue; + if (i == 'type' || i == 'context' || i == 'content') continue; sourceDataMap['sourceData["' + i + '"]'] = item } } if (Object.keys(this.paramVOS).length > 0) { - for (let i in this.paramVOS) { - let item = this.paramVOS[i] - if (item && item.constructor === Object) return; - if (i == 'type' || i == 'context' || i == 'content') return; - sourceDataMap['sourceData["' + i + '"]'] = item + for (let j in this.paramVOS) { + if (this.paramVOS[j] && this.paramVOS[j].constructor === Object) continue; + if (j == 'type' || j == 'context' || j == 'content' || j == "getdataurl" || j == "getdatamethod" || j == "url" || j == "method" || j == "uploadfileurl" || j == "title") continue; + sourceDataMap['sourceData["' + j + '"]'] = this.paramVOS[j] } } return sourceDataMap; @@ -196,6 +220,7 @@ this.params = Object.assign({}, treeParams, sourceDataMapList); }, initData() { + this.data=[]; if (Object.keys(this.sourceData).length > 0 && this.isShow) { getTree(null, null, Object.assign({ queryRoot: true @@ -213,39 +238,57 @@ parentOid = parentOid.split('@vcitreesep@')[1]; } const parentBtmName = (node.level === 0) ? '' : node.data.attributes.btmname; - const params=this.params; - if(node.level === 0){ - params.queryRoot= true; - }else { + const params = this.params; + if (node.level === 0) { + params.queryRoot = true; + } else { delete params.queryRoot; } getTree(parentOid, parentBtmName, params).then(res => { resolve(res.data.treeData) + this.$nextTick(()=>{ + if (this.isRefresh) { + this.$refs.tree.setCurrentKey(this.currentClickNode.data.oid); + this.isRefresh=false; + } + }) + }).catch(error => { this.$message.error(error); }) }, checkNode(checkedNode, checkedData) { if (this.isMuti) { - this.checkDatas = checkedData.checkedNodes; + let checkDatas = []; + checkedData.checkedNodes.forEach(item=>{ + checkDatas.push(item.attributes) + }) + this.checkDatas=checkDatas; } }, changeNode(data, node) { if (!this.isMuti) { - this.checkDatas = [data]; + this.checkDatas = [data.attributes]; } }, clickNode(data, node) { this.currentClickNode = node; }, - handleRefresh() { - if (!this.lazy) { - this.initData(); - } else { - if (this.currentClickNode) { - let node = this.currentClickNode.parent; - node.loaded = false; - node.expand(); + handleRefresh(type,data) { + //type:add\edit\delete + if(type=="delete" || type=="del"){ + this.$refs.tree.remove(this.currentClickNode); + this.currentClickNode=null; + }else{ + if (!this.lazy) { + this.initData(); + } else { + if (this.currentClickNode) { + let node = this.currentClickNode.parent; + node.loaded = false; + node.expand(); + this.isRefresh=true; + } } } this.checkDatas = []; -- Gitblit v1.9.3