From f09b14134993e7f8e5f79253d70a5874b37ead8e Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 09 十月 2024 17:04:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 25 +++++
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue | 16 ++-
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue | 183 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 215 insertions(+), 9 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
index 37e2e11..961577c 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -26,6 +26,7 @@
</el-button>
<el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎
</el-button>
+ <el-button icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">鍏嬮殕</el-button>
</template>
<!-- eventKey浠ュ強eventValue鏄剧ず鍖哄煙 -->
@@ -79,7 +80,7 @@
</el-button>
<el-button plain size="mini" type="primary">璋冩暣涓轰笅绾ф寜閽�</el-button>
<el-button plain size="mini" type="primary">璋冩暣涓轰笂绾ф寜閽�</el-button>
- <el-button plain size="mini" type="primary">澶嶅埗鍒板叾浠栫粍浠�</el-button>
+ <el-button plain size="mini" type="primary" @click="cloneClickBtnHandler">澶嶅埗鍒板叾浠栫粍浠�</el-button>
</div>
</el-header>
<el-container>
@@ -195,6 +196,7 @@
</el-container>
</el-dialog>
<action-dialog ref="actionDialog" @updataAction="actionSaveHandler"></action-dialog>
+ <clone-dialog ref="cloneDialog"></clone-dialog>
</div>
</template>
@@ -213,6 +215,7 @@
addPageDefination
} from "@/api/UI/uiDefine";
import actionDialog from '@/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action';
+import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
export default {
props: {
@@ -227,7 +230,8 @@
}
},
components: {
- actionDialog
+ actionDialog,
+ cloneDialog
},
name: "index",
data() {
@@ -1105,6 +1109,7 @@
this.treeData = [{
label: this.selectList[0].name,
oId: 'parentNode',
+ disabled: true,
children: data
}];
this.treeLoading = false;
@@ -1259,6 +1264,17 @@
});
},
+ cloneClickBtnHandler(){
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜澶嶅埗');
+ return;
+ }
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁稿鍒�');
+ return;
+ }
+ this.$refs.cloneDialog.openDialog(this.nodeTreeRow);
+ },
// 閫夋嫨action
actionFoucus() {
this.$refs.actionDialog.btnActionVisible = true;
@@ -1268,7 +1284,10 @@
actionSaveHandler(val) {
this.$set(this.basicForm, 'actionName', val.plName);
this.$set(this.basicForm, 'actionOId', val.plOId);
- }
+ },
+ rowCloneHandler(row) {
+ this.$refs.cloneDialog.openDialog(row);
+ },
}
}
</script>
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
new file mode 100644
index 0000000..bc6767a
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue
@@ -0,0 +1,183 @@
+<template>
+ <el-dialog v-dialogDrag
+ :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"
+ @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>
+ <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">
+ {{ (node || {}).label }}
+ </span>
+ </span>
+ </avue-tree>
+ </div>
+ </basic-container>
+ </el-aside>
+
+ <el-main>
+ <basic-container style="height: 530px">
+ <div style="height: 520px;">
+ <avue-tree ref="uiTree" :data="uiTreeData" :option="uiTreeOption">
+ <span slot-scope="{ node, data }" class="el-tree-node__label">
+ <span style="font-size: 15px">
+ <i :class="data.icon"></i>
+ {{ (node || {}).label }}
+ </span>
+ </span>
+ </avue-tree>
+ </div>
+ </basic-container>
+ </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" @click="cancelDialog">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<script>
+import {getUIAuthor} from "@/api/authority/ui/uiAuthor";
+import {getBizTree} from "@/api/UI/uiDefine";
+
+export default {
+name: "cloneDialog",
+ data(){
+ return {
+ dialog: {
+ showDialog: false,
+ title: "鍏嬮殕鐩爣",
+ loading: false,
+ type: "clone",
+ },
+ treeOption: {
+ menu: false,
+ addBtn: false,
+ props: {
+ label: 'text',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ nodeRow: {},
+ treeData: [],
+ defaultExpandKeys:[],
+ uiTreeOption: {
+ nodeKey:'oid',
+ checkOnClickNode:true,
+ defaultExpandedKeys:this.defaultExpandKeys,
+ multiple: true,
+ menu: false,
+ addBtn: false,
+ filter:false,
+ props: {
+ label: 'label',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ uiTreeData: [],
+ };
+ },
+ methods: {
+ openDialog( data) {
+ this.dialog.showDialog = true;
+ this.getTreeList()
+ 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");
+ }
+ });
+ },
+ getTreeList() {
+ const loading = this.$loading({});
+ getBizTree().then(res => {
+ this.treeData =res.data.obj.children;
+ loading.close();
+ }).catch(error=>{
+ loading.close();
+ })
+ },
+ // 瑙掕壊鐐瑰嚮
+ 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 = [{
+ 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();
+ }).catch(error => {
+ loading.close();
+ })
+ },
+ //澶勭悊鏍�
+ processChildren(item) {
+ if (item.children && item.children.length > 0) {
+ item.children = item.children.map(child => {
+ 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
+ }
+ this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐�
+ return child; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes
+ });
+ }
+ },
+ },
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
index 6c677e5..9619374 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
@@ -18,10 +18,9 @@
<el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">鍒犻櫎</el-button>-->
</template>
<template slot="menu" slot-scope="scope">
- <el-button icon="el-icon-edit" size="small" type="text" @click="rowEditBtnClick(scope.row)">缂栬緫
- </el-button>
- <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎
- </el-button>
+ <el-button icon="el-icon-edit" size="small" type="text" @click="rowEditBtnClick(scope.row)">缂栬緫</el-button>
+ <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎</el-button>
+ <el-button icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">鍏嬮殕</el-button>
</template>
<template slot="plIsOpen" slot-scope="{row}">
<el-tag v-if="row.plIsOpen === 1" type="success">鍚敤</el-tag>
@@ -99,6 +98,7 @@
<el-button type="primary" @click="saveHandler">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <clone-dialog ref="cloneDialog"></clone-dialog>
</div>
</template>
@@ -112,6 +112,7 @@
} from "@/api/UI/uiDefine";
import func from "@/util/func";
import bottomTable from "./bottomTable/index";
+import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
export default {
name: "plShow",
@@ -121,7 +122,7 @@
default: {}
},
},
- components:{bottomTable},
+ components:{bottomTable,cloneDialog},
data() {
return {
uiDefineOid:'',
@@ -135,7 +136,7 @@
editBtn: false,
delBtn: false,
index:false,
- menuWidth:160,
+ menuWidth:220,
align:'left',
column: [{
label: '搴忓彿',
@@ -375,6 +376,9 @@
}
});
},
+ rowCloneHandler(row) {
+ this.$refs.cloneDialog.openDialog(row);
+ },
}
}
</script>
--
Gitblit v1.9.3