From cfd8d4c470cc6db6f6689ebf01eae07e47a46990 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 16 一月 2025 11:09:20 +0800 Subject: [PATCH] 修改个人信息&&添加操作类型 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue | 186 ++++++++++++++++++++++++++-------------------- 1 files changed, 106 insertions(+), 80 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue index bc6767a..5b340ce 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue @@ -1,21 +1,21 @@ <template> <el-dialog v-dialogDrag + :append-to-body="true" + :close-on-click-modal="false" + :destroy-on-close="true" :title="dialog.title" :visible.sync="dialog.showDialog" - width="1200px" - :append-to-body="true" class="avue-dialog" - :destroy-on-close="true" - :close-on-click-modal="false" + width="1200px" @close="cancelDialog"> <el-container style="height: 580px"> <el-aside style="width: 380px"> - <basic-container style="height: 530px"> - <h3 style="margin: 0 0 10px 0">涓氬姟绫诲瀷</h3> + <basic-container v-loading="leftLoading" style="height: 530px"> <div style="height: 435px"> <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> + <span> + <icon-show :name="data.icon"></icon-show> {{ (node || {}).label }} </span> </span> @@ -25,11 +25,11 @@ </el-aside> <el-main> - <basic-container style="height: 530px"> - <div style="height: 520px;"> - <avue-tree ref="uiTree" :data="uiTreeData" :option="uiTreeOption"> + <basic-container v-loading="rightLoading" style="height: 530px"> + <div style="height: 490px;"> + <avue-tree ref="uiTree" :data="uiTreeData" :option="uiTreeOption" @check-change="checkChange"> <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> + <span> <i :class="data.icon"></i> {{ (node || {}).label }} </span> @@ -40,20 +40,22 @@ </el-main> </el-container> <div class="dialog-footer avue-dialog__footer"> - <el-button type="primary" plain size="small" @click="submitDialog" >淇� 瀛�</el-button> + <el-button size="small" type="primary" @click="submitDialog">淇� 瀛�</el-button> <el-button size="small" @click="cancelDialog">鍙� 娑�</el-button> </div> </el-dialog> </template> <script> -import {getUIAuthor} from "@/api/authority/ui/uiAuthor"; -import {getBizTree} from "@/api/UI/uiDefine"; +import {getBizTree, getAllLevelTreeByBtm, clonePageDef, clonetabPage, cloneTabButton} from "@/api/UI/uiDefine"; export default { -name: "cloneDialog", - data(){ + name: "cloneDialog", + props: ['fromOid', 'type', 'sourceOId','paramsType'], + data() { return { + leftLoading: false, + rightLoading: false, dialog: { showDialog: false, title: "鍏嬮殕鐩爣", @@ -63,6 +65,7 @@ treeOption: { menu: false, addBtn: false, + defaultExpandAll:true, props: { label: 'text', value: 'oid', @@ -71,17 +74,18 @@ }, nodeRow: {}, treeData: [], - defaultExpandKeys:[], + defaultExpandKeys: [], uiTreeOption: { - nodeKey:'oid', - checkOnClickNode:true, - defaultExpandedKeys:this.defaultExpandKeys, - multiple: true, + nodeKey: 'oid', + checkOnClickNode: true, + defaultExpandAll:true, + //defaultExpandedKeys: this.defaultExpandKeys, + multiple: false, menu: false, addBtn: false, - filter:false, + filter: false, props: { - label: 'label', + label: 'text', value: 'oid', children: 'children' } @@ -90,86 +94,108 @@ }; }, methods: { - openDialog( data) { + openDialog(data) { this.dialog.showDialog = true; this.getTreeList() - this.uiTreeData=[]; + this.uiTreeData = []; }, cancelDialog() { this.dialog.loading = false; this.dialog.showDialog = false; }, submitDialog() { - linkSave({}).then(res => { - if (res.data.success) { - this.$message.success("鍏嬮殕鎴愬姛"); - this.cancelDialog(); - this.$emit("refresh"); + const node = this.$refs.uiTree.getCurrentNode(); + if (!node.leaf) { + this.$message.error('璇烽�夋嫨鏈�涓嬪眰瀛愯妭鐐硅繘琛屽厠闅�'); + return; + } + let params = {}; + if (node) { + params = { + fromOid: this.fromOid, + toOid: node.oid, + cloneParam: { + sourceOId: this.sourceOId + } } - }); - }, - getTreeList() { - const loading = this.$loading({}); - getBizTree().then(res => { - this.treeData =res.data.obj.children; - loading.close(); - }).catch(error=>{ - loading.close(); + } + console.log(params); + const saveFunction = { + 'pageDef': clonePageDef, + 'tabPage': clonetabPage, + 'tabButton': cloneTabButton + }; + saveFunction[this.type](params).then(res => { + if(res.data.code == 200){ + this.$message.success(res.data.obj); + this.cancelDialog(); + } }) }, - // 瑙掕壊鐐瑰嚮 - nodeClick(row,node) { - this.nodeRow = row; - const loading = this.$loading({}); - const params = { - 'conditionMap[roleId]': this.nodeRow.oid, - 'conditionMap[type]': this.type, - 'conditionMap[context]': this.context - } - this.defaultExpandKeys=['root']; - getUIAuthor(params).then(res => { - this.processChildren(res.data.data[0]); // 澶勭悊姣忎釜鑺傜偣 - this.uiTreeOption.defaultExpandedKeys=this.defaultExpandKeys; - this.uiTreeData = [{ + getTreeList() { + this.leftLoading = true; + getBizTree().then(res => { + this.treeData = [{ attributes: {}, checked: false, expanded: true, data: "root", - level: 0, - icon: 'el-icon-s-home', - oid: res.data.data[0].oid, - label: 'UI涓婁笅鏂囬�夐」', - children: res.data.data[0].children - }]; - loading.close(); + level: res.data.obj.level, + icon: 'vci:home', + oid: res.data.obj.oid, + text: res.data.obj.text, + children: res.data.obj.children + }] ; + this.leftLoading = false; }).catch(error => { - loading.close(); + this.leftLoading = false; }) }, + // 瑙掕壊鐐瑰嚮 + nodeClick(row, node) { + if(row.oid==''){ + return false; + } + this.nodeRow = row; + this.rightLoading = true; + const params = { + btmName: this.nodeRow.attributes.name, + level: this.paramsType + } + //this.defaultExpandKeys = ['UILayout']; + getAllLevelTreeByBtm(params).then(res => { + //this.defaultExpandedKeys = [res.data.obj.oid]; + res.data.obj.icon='el-icon-s-home'; + let level=0; + this.processChildren(res.data.obj,level); // 澶勭悊姣忎釜鑺傜偣 + //this.uiTreeOption.defaultExpandedKeys = this.defaultExpandKeys; + this.uiTreeData = [res.data.obj]; + this.rightLoading = false; + }).catch(error => { + this.rightLoading = false; + }) + }, + //澶勭悊鏍� - processChildren(item) { + processChildren(item,level) { if (item.children && item.children.length > 0) { + level++; item.children = item.children.map(child => { - if(child.level<4){ - this.defaultExpandKeys.push(child.oid) + if (child.level < 4) { + //this.defaultExpandKeys.push(child.oid) } - if(child.level==1){ - child.icon='el-icon-s-promotion'; - child.label=child.data.label+'('+child.data.name+')' - }else if(child.level==2){ - child.icon='el-icon-s-order'; - child.label=child.text - }else if(child.level==3){ - child.icon='el-icon-office-building'; - child.label=child.text - }else if(child.level==4){ - child.icon='el-icon-document'; - child.label=child.text - }else if(child.level==5){ - child.icon='el-icon-s-tools'; - child.label=child.text + if (level == 1) { + child.icon = 'el-icon-s-promotion'; + } else if (level == 2) { + child.icon = 'el-icon-s-order'; + } else if (level == 3) { + child.icon = 'el-icon-office-building'; + } else if (level == 4) { + child.icon = 'el-icon-document'; + } else if (level == 5) { + child.icon = 'el-icon-s-tools'; } - this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� + this.processChildren(child,level); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� return child; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes }); } -- Gitblit v1.9.3