From 18715a9d20518abb1374408007759ab2988d1150 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 08 十月 2024 11:58:35 +0800
Subject: [PATCH] 页签克隆

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue |  197 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 153 insertions(+), 44 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 bba8a82..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
@@ -21,6 +21,14 @@
         </el-button>
       </template>
 
+      <template slot="menu" slot-scope="scope">
+        <el-button icon="el-icon-edit" size="small" type="text" @click="editBtnClick(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>
+
       <!-- eventKey浠ュ強eventValue鏄剧ず鍖哄煙 -->
       <template slot="bottomValueForm" slot-scope="scope">
         <avue-crud
@@ -72,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>
@@ -188,6 +196,7 @@
       </el-container>
     </el-dialog>
     <action-dialog ref="actionDialog" @updataAction="actionSaveHandler"></action-dialog>
+    <clone-dialog ref="cloneDialog"></clone-dialog>
   </div>
 </template>
 
@@ -201,9 +210,12 @@
   getQTInfoDatasByPage,
   getTabButtons,
   addTapButton,
-  updateTapButton, getTabByContextIdAndType
+  updateTapButton,
+  getLinkDatasByPage,
+  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: {
@@ -218,12 +230,13 @@
     }
   },
   components: {
-    actionDialog
+    actionDialog,
+    cloneDialog
   },
   name: "index",
   data() {
     return {
-      paramsForm:{},
+      paramsForm: {},
       eventOption: {
         ...basicOption,
         addBtn: false,
@@ -344,6 +357,8 @@
         addBtn: false,
         index: true,
         calcHeight: -30,
+        editBtn: false,
+        delBtn: false,
         column: [
           {
             label: '鍚嶇О',
@@ -415,7 +430,10 @@
               return val;
             },
             change: (val) => {
-              console.log(val);
+              const list = ['showType' ,'linkType' ,'templateId', 'SubUILayout' , 'searchObjType' ,'queryTemplateName', 'controlPath' ,'expandCols', 'rootContent', 'showAbs' ,'showLinkAbs' ,'separator']
+              list.forEach(item => {
+                this.form[item] = "";
+              })
               const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
               searchTarger.display = true; // 鍒囨崲榛樿灞曠ず鎼滅储绫诲瀷
               // 妯℃澘绫诲瀷涓鸿〃鏍�
@@ -442,7 +460,7 @@
             dicData: [
               {
                 label: '涓嶆樉绀�',
-                value: '1'
+                value: '3'
               },
               {
                 label: '鏄剧ず瑙掕壊',
@@ -450,7 +468,7 @@
               },
               {
                 label: '鏄剧ずFolder',
-                value: '3',
+                value: '1',
               },
             ],
           },
@@ -480,6 +498,11 @@
                 const obj = this.option.group[0].column.find(item => item.prop === 'linkType');
                 obj.display = val.value !== '1';
               }
+              // 鍒囨崲娓呯┖妯℃澘绫诲瀷
+              const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType'];
+              list.forEach(item => {
+                this.form[item] = '';
+              })
             }
           },
           {
@@ -504,6 +527,13 @@
                   label: 'name',
                   value: 'name'
                 },
+                rules: [
+                  {
+                    required: true,
+                    message: '璇烽�夋嫨鍐呭',
+                    trigger: 'change'
+                  }
+                ],
                 children: {
                   border: true,
                   column: [{
@@ -516,12 +546,18 @@
                     prop: 'label'
                   }],
                 },
+                change: (val) => {
+                  const list = ['linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType'];
+                  list.forEach(item => {
+                    this.form[item] = '';
+                  })
+                },
                 onLoad: ({page, value, data}, callback) => {
                   //page鍒嗛〉
                   // 涓嶇鏄悳绱� 杩樻槸棣栨鍔犺浇閮戒細瑙﹀彂page 鎵�浠ュ彧闇�瑕佹嬁page瀛樺湪涓庡惁杩涜璇锋眰灏卞彲浠� 濡傛灉鍐嶅幓鍒ゆ柇data鎼滅储 鎴栬�卾alue鍒濇鍔犺浇灏变細閲嶅璇锋眰
                   if (page) {
                     const params = {
-                      "conditionMap[filterInputValue]": value ? value.name : ''
+                      "conditionMap[filterInputValue]": data ? data.name : ''
                     };
                     getBtmDatasByPage(page.currentPage, page.pageSize, params).then(res => {
                       callback({
@@ -538,8 +574,8 @@
                 type: 'table',
                 display: false,
                 props: {
-                  label: 'viName',
-                  value: 'viName'
+                  label: 'name',
+                  value: 'name'
                 },
                 children: {
                   border: true,
@@ -547,19 +583,18 @@
                     label: '鍚嶇О',
                     search: true,
                     searchSpan: 24,
-                    prop: 'viName'
+                    prop: 'name'
                   }, {
-                    label: '绫诲瀷',
-                    prop: 'viType'
+                    label: '鏍囩',
+                    prop: 'tag'
                   }],
                 },
                 onLoad: ({page, value, data}, callback) => {
                   if (page) {
                     const params = {
                       "conditionMap[selectBtmType]": this.form.showType,
-                      "conditionMap[filterInputValue]": data ? data.viName : '',
                     };
-                    getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => {
+                    getLinkDatasByPage(page.currentPage, page.pageSize, params).then(res => {
                       console.log(res);
                       callback({
                         total: res.data.total,
@@ -571,9 +606,16 @@
               },
               {
                 label: '閫夋嫨妯℃澘',
-                prop: 'showTypea',
+                prop: 'templateId',
                 display: false,
                 type: 'table',
+                rules: [
+                  {
+                    required: true,
+                    message: '璇烽�夋嫨妯℃澘',
+                    trigger: 'submit'
+                  }
+                ],
                 props: {
                   label: 'viName',
                   value: 'viName'
@@ -608,7 +650,7 @@
               },
               {
                 label: 'UI瀹氫箟',
-                prop: 'UI',
+                prop: 'SubUILayout',
                 type: 'table',
                 display: false,
                 props: {
@@ -646,6 +688,7 @@
                 label: '鏌ヨ绫诲瀷',
                 prop: 'searchType',
                 display: false,
+                value: '1',
                 type: 'radio',
                 span: 24,
                 dicData: [
@@ -684,10 +727,10 @@
                 onLoad: ({page, value, data}, callback) => {
                   if (page) {
                     const params = {
-                      "conditionMap[selectBtmType]": this.form.showType,
-                      "conditionMap[filterInputValue]": data ? data.qtName : '',
+                      "conditionMap[selectBtmType]": null, // cs绔湁闂 鏆傛椂涓嶅睍绀哄唴瀹�
                     };
-                    getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => {
+                    getLinkDatasByPage(page.currentPage, page.pageSize, params).then(res => {
+                      console.log(res);
                       callback({
                         total: res.data.total,
                         data: res.data.data
@@ -698,7 +741,7 @@
               },
               {
                 label: '鏌ヨ妯℃澘',
-                prop: 'showTypes',
+                prop: 'queryTemplateName',
                 type: 'table',
                 display: false,
                 props: {
@@ -734,40 +777,35 @@
               },
               {
                 label: '鎺у埗璺緞',
-                prop: 'kzlj',
+                prop: 'controlPath',
                 display: false,
                 type: 'textarea',
+                span: 24,
                 rows: 3
               },
               {
-                label: '鏍硅妭鐐规樉绀鸿〃杈惧紡',
-                prop: 'genjiedian',
+                label: '鏍戠粨鏋勫睍寮�鍒�',
+                prop: 'expandCols',
+                labelWidth: 110,
                 display: false,
-                labelWidth: 135,
-                span: 24
-              },
-              {
-                label: '鏍戣妭鐐规樉绀鸿〃杈惧紡',
-                prop: 'shujiedian',
-                display: false,
-                labelWidth: 135,
-                span: 24
+                span: 12
               },
               {
                 label: '鍙傜収鏍戣缃�',
-                prop: 'canzhaoshu',
+                prop: 'showLinkAbs',
                 display: false,
               },
               {
                 label: '鍒嗛殧绗�',
-                prop: 'fgf',
+                prop: 'separator',
                 display: false,
               },
               {
                 label: '灞曞紑鏂瑰紡',
-                prop: 'zkfs',
+                prop: 'expandMode',
                 display: false,
                 type: 'radio',
+                value:'1',
                 dicData: [
                   {
                     label: '閫愮骇灞曞紑',
@@ -775,9 +813,23 @@
                   },
                   {
                     label: '鍏ㄩ儴灞曞紑',
-                    value: '2'
+                    value: '0'
                   }
                 ]
+              },
+              {
+                label: '鏍硅妭鐐规樉绀鸿〃杈惧紡',
+                prop: 'rootContent',
+                display: false,
+                labelWidth: 135,
+                span: 12
+              },
+              {
+                label: '鏍戣妭鐐规樉绀鸿〃杈惧紡',
+                prop: 'showAbs',
+                display: false,
+                labelWidth: 135,
+                span: 12
               },
             ]
           },
@@ -873,6 +925,48 @@
       this.$refs.crud.rowAdd();
     },
 
+    // 淇敼
+    editBtnClick(row) {
+      console.log(row);
+      this.eventData = [];
+      if (row.eventKey && row.eventValue) {
+        let keys = row.eventKey.split(',');
+        let values = row.eventValue.split(',');
+
+        this.eventData = keys.map((key, index) => {
+          return {
+            index: this.eventData.length,
+            eventKey: key.trim(),
+            eventValue: values[index],
+            $cellEdit: true
+          };
+        });
+      }
+      this.$refs.crud.rowEdit(row);
+    },
+
+    // 淇濆瓨
+    rowSaveHandler(row,done,loading){
+      if(row.templateType === '6'){
+        row.SubUIObjType = row.showType;
+        row.showType = "";
+      }
+      console.log(this.sourceData);
+      const params = {
+        ...row,
+        tabPageOId:this.sourceData.plOId
+      }
+      addPageDefination(params).then(res => {
+        console.log(res);
+        if(res.data.code === 200){
+          this.$message.success(res.data.obj);
+          done()
+        }
+      }).catch(err=> {
+        loading();
+      })
+    },
+
     // 瀵硅瘽妗嗚〃鏍艰鐐瑰嚮
     formDataRowClick(row) {
       this.formDataRow = row;
@@ -924,7 +1018,7 @@
     // 妯℃澘绫诲瀷涓鸿〃鏍�
     templateTypeTable(val) {
       if (!val) return;
-      this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']);
     },
 
     // 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘
@@ -932,19 +1026,19 @@
       if (!val) return;
       const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
       searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
-      this.updateDisplay(val, ['kzlj']);
+      this.updateDisplay(val, ['controlPath']);
     },
 
     // 妯℃澘绫诲瀷涓烘爲琛�
     templateTypeTreeTable(val) {
       if (!val) return;
-      this.updateDisplay(val, ['showType', 'showTypea', 'showTypes', 'zkl', 'zkfs']);
+      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'zkfs']);
     },
 
     // 妯℃澘绫诲瀷涓鸿〃鍗�
     templateTypeForm(val) {
       if (!val) return;
-      this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']);
     },
 
     // 妯℃澘绫诲瀷涓烘爲
@@ -952,7 +1046,7 @@
       if (!val) return;
       const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
       searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
-      this.updateDisplay(val, ['showType', 'showTypes', 'genjiedian', 'shujiedian', 'canzhaoshu', 'fgf', 'zkfs', 'linkType']);
+      this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType']);
     },
 
     // 妯℃澘绫诲瀷涓篣I瀹氫箟
@@ -960,7 +1054,7 @@
       if (!val) return;
       const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
       searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
-      this.updateDisplay(val, ['showType', 'UI', 'searchType', 'searchObjType', 'showTypes']);
+      this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName']);
     },
 
     // 鏌ユ壘鏁扮粍涓璞$储寮�
@@ -1015,6 +1109,7 @@
           this.treeData = [{
             label: this.selectList[0].name,
             oId: 'parentNode',
+            disabled: true,
             children: data
           }];
           this.treeLoading = false;
@@ -1169,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;
@@ -1178,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>

--
Gitblit v1.9.3