From 391eec3114a17e68652434c6eae610799d80290e Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期四, 16 一月 2025 11:13:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue |  178 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 106 insertions(+), 72 deletions(-)

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 ec8e858..0a87d9b 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
@@ -13,14 +13,26 @@
       @selection-change="selectChangeHandler"
       @row-click="rowClickHandler">
       <template slot="menuLeft">
-        <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">鍒涘缓</el-button>
-        <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">淇敼</el-button>
-        <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">鍒犻櫎</el-button>
+        <el-button v-if="permissionChildrenList.UiTabAddBtn" class="button-custom-icon" size="small" type="primary" @click="addHandler">
+          <icon-show :name="permissionChildrenList.UiTabAddBtn.source"></icon-show>
+          鍒涘缓
+        </el-button>
+        <!--<el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">淇敼</el-button>
+        <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 v-if="permissionChildrenList.UiTabEditBtn" size="small" type="text"
+                   @click="rowEditBtnClick(scope.row)">
+          <icon-show :name="permissionChildrenList.UiTabEditBtn.source"></icon-show>
+          缂栬緫
         </el-button>
-        <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎
+        <el-button v-if="permissionChildrenList.UiTabDelBtn" size="small" type="text" @click="rowDeleteHandler(scope.row)">
+          <icon-show :name="permissionChildrenList.UiTabDelBtn.source"></icon-show>
+          鍒犻櫎
+        </el-button>
+        <el-button v-if="permissionChildrenList.UiTabCloneBtn"  size="small" type="text" @click="rowCloneHandler(scope.row)">
+          <icon-show :name="permissionChildrenList.UiTabCloneBtn.source"></icon-show>
+          鍏嬮殕
         </el-button>
       </template>
       <template slot="plIsOpen" slot-scope="{row}">
@@ -28,20 +40,20 @@
         <el-tag v-else type="danger">鏈惎鐢�</el-tag>
       </template>
     </avue-crud>
-    <bottom-table :height="'280px'" :sourceData="selectList[0]" style="margin-top: 15px;"></bottom-table>
+    <bottom-table :sourceData="selectList[0]" :height="'280px'" style="margin-top: 15px;"></bottom-table>
     <!-- 鍒涘缓缂栬緫鑷畾涔夊璇濇    -->
     <el-dialog
       v-dialogDrag
       v-loading="dialogLoading"
-      :close-on-click-modal="false"
       :title="dialogType === 'add' ? ' 鍒涘缓 椤电' : '缂栬緫 椤电'"
       :visible.sync="dialogVisible"
       append-to-body="true"
       class="avue-dialog"
+      :close-on-click-modal="false"
       width="800px"
       @close="dialogClose"
     >
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small" style="margin-bottom: 30px;">
         <el-row>
           <el-col :span="12">
             <el-form-item label="椤甸潰缂栫爜锛�" prop="plCode">
@@ -55,38 +67,37 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="搴忓彿锛�" prop="plSeq">
-              <el-input v-model="form.plSeq"></el-input>
+              <el-input-number  v-model="form.plSeq" :max="9999" :min="1"
+                                controls-position="right"></el-input-number >
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏄惁鍚敤" prop="plIsOpen">
-              <el-switch v-model="form.plIsOpen" :active-value="1" :inactive-value="0" active-color="#13ce66"
-                         inactive-color="#ff4949"></el-switch>
+              <el-switch v-model="form.plIsOpen" :active-value="1"  :inactive-value="0"   active-color="#13ce66"  inactive-color="#ff4949"></el-switch>
             </el-form-item>
           </el-col>
         </el-row>
         <el-form-item label="鏄剧ず琛ㄨ揪寮忥細" prop="plOpenExpression">
-          <el-input v-model="form.plOpenExpression" :rows="3" type="textarea"></el-input>
+          <el-input type="textarea" :rows="3" v-model="form.plOpenExpression"></el-input>
         </el-form-item>
         <el-form-item label="鍥介檯鍖栨爣鍑嗭細" prop="plLabel">
-          <el-input v-model="form.plLabel" :rows="1" type="textarea"></el-input>
+          <el-input type="textarea" :rows="1" v-model="form.plLabel"></el-input>
         </el-form-item>
         <el-form-item label="鎻忚堪锛�" prop="plDesc">
-          <el-input v-model="form.plDesc" :rows="1" type="textarea"></el-input>
+          <el-input type="textarea" :rows="1" v-model="form.plDesc"></el-input>
         </el-form-item>
         <el-form-item label="UI瑙f瀽绫伙細" prop="plUIParser">
-          <el-input v-model="form.plUIParser" :rows="2" type="textarea"></el-input>
+          <el-input type="textarea" :rows="2" v-model="form.plUIParser"></el-input>
         </el-form-item>
         <div class="tip">
-          <div style="color: #D40000">绀轰緥锛歫ava_cs:xxx;java_bs:xxx;net_cs:xxx;net_bs:xxx;mobile_cs:xxx;mobile_bs:xxx;
-          </div>
+          <div style="color: #D40000">绀轰緥锛歫ava_cs:xxx;java_bs:xxx;net_cs:xxx;net_bs:xxx;mobile_cs:xxx;mobile_bs:xxx;</div>
           <div>1銆佺敤鑻辨枃鍗婅鍒嗗彿;鍒嗛殧鍚勭粍鍊笺��</div>
           <div>2銆佹瘡缁勭敤鑻辨枃鍗婅鍐掑彿:鍒嗛殧鍗曚竴鎷撳睍灞炴�у悕绉板強灞炴�у�笺��</div>
           <div>3銆佸叾涓殑xxx鏄悇绉嶈В鏋愮被鐨勫畬鏁寸被鍨嬪悕绉帮紙瀹屽叏闄愬畾鍚嶏級銆�</div>
           <div>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣銆�</div>
         </div>
         <el-form-item label="鎷撳睍灞炴�э細" prop="plExtAttr">
-          <el-input v-model="form.plExtAttr" :rows="2" type="textarea"></el-input>
+          <el-input type="textarea" :rows="2" v-model="form.plExtAttr"></el-input>
         </el-form-item>
         <div class="tip">
           <div style="color: #D40000">绀轰緥锛歟xt1:xx;ext2:xx;ext3:xxx;ext4:xxx;extn:xxx</div>
@@ -96,11 +107,12 @@
           <div>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣銆�</div>
         </div>
       </el-form>
-      <span slot="footer" class="dialog-footer">
-            <el-button @click="dialogClose">鍙� 娑�</el-button>
-            <el-button type="primary" @click="saveHandler">纭� 瀹�</el-button>
+      <span slot="footer" class="dialog-footer avue-dialog__footer">
+            <el-button  size="small" type="primary" @click="saveHandler">淇� 瀛�</el-button>
+            <el-button  size="small" @click="dialogClose">鍙� 娑�</el-button>
           </span>
     </el-dialog>
+    <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" type="tabPage" paramsType="ui"></clone-dialog>
   </div>
 </template>
 
@@ -114,53 +126,57 @@
 } from "@/api/UI/uiDefine";
 import func from "@/util/func";
 import bottomTable from "./bottomTable/index";
+import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
+import {mapGetters} from "vuex";
 
 export default {
-  name: "plShow",
+name: "plShow",
   props: {
     uiDefineData: {
       type: Object,
       default: {}
     },
   },
-  components: {bottomTable},
+  components:{bottomTable,cloneDialog},
   data() {
     return {
-      uiDefineOid: '',
+      fromOid:'',
+      sourceOId:'',
+      uiDefineOid:'',
       areaType: '',
       tableLoading: false,
       selectList: [],
       option: {
         ...basicOption,
-        height: '300px',
+        height:'300px',
         addBtn: false,
         editBtn: false,
         delBtn: false,
-        index: false,
-        menuWidth: 160,
-        align: 'left',
+        index:false,
+        menuWidth:220,
+        align:'left',
         column: [{
           label: '搴忓彿',
           prop: 'plSeq',
-          width: 60
+          width:50
         }, {
           label: '缂栫爜',
           prop: 'plCode',
-          width: 180
+          width:180
         }, {
           label: '鍚嶇О',
           prop: 'plName',
-          width: 200
+          width:200
         }, {
           label: '鏄惁鍚敤',
           prop: 'plIsOpen',
-          align: 'center',
+          align:'center',
           width: 90
         }, {
           label: '鏄剧ず琛ㄨ揪寮�',
           prop: 'plOpenExpression',
-          overHidden: true,
-          width: 300
+          overHidden:true,
+          width:300
         }, {
           label: 'UI瑙f瀽绫�',
           prop: 'plUIParser'
@@ -169,7 +185,8 @@
           prop: 'plExtAttr'
         }, {
           label: '鎻忚堪',
-          prop: 'plDesc'
+          prop: 'plDesc',
+          overHidden: true
         }]
       },
       data: [],
@@ -180,12 +197,12 @@
         plSeq: '',
         plCode: '',
         plName: '',
-        plIsOpen: 0,
-        plOpenExpression: '',
-        plLabel: '',
-        plUIParser: '',
-        plExtAttr: '',
-        plDesc: ''
+        plIsOpen:0,
+        plOpenExpression:'',
+        plLabel:'',
+        plUIParser:'',
+        plExtAttr:'',
+        plDesc:''
       },
       rules: {
         plName: [{
@@ -206,40 +223,51 @@
       },
     }
   },
+  computed:{
+    ...mapGetters(["permission"]),
+    permissionChildrenList() {
+      return {
+        UiTabAddBtn: this.vaildData(this.permission[this.$route.query.id].ADD2, false),
+        UiTabEditBtn: this.vaildData(this.permission[this.$route.query.id].EDIT2, false),
+        UiTabDelBtn: this.vaildData(this.permission[this.$route.query.id].DELETE2, false),
+        UiTabCloneBtn: this.vaildData(this.permission[this.$route.query.id].CLONE, false),
+      }
+    }
+  },
   watch: {
-    uiDefineData: {
+    uiDefineData:{
       handler(val) {
-        if (val && val.plOId) {
+        if(val && val.plOId) {
           if (val.plIsShowNavigator) {
             this.areaType = '1';
-          } else if (val.plIsShowForm) {
+          }else if(val.plIsShowForm){
             this.areaType = '2'
-          } else {
+          }else{
             this.areaType = '3'
           }
           this.getTableList()
         }
       },
       immediate: true,
-      deep: true
+      deep:true
     }
   },
   created() {
-    this.uiDefineOid = this.$route.params.uiDefineOid;
+    this.uiDefineOid=this.$route.params.uiDefineOid;
   },
   methods: {
     handleClick(tab, event) {
       this.getTableList()
     },
-    getTableList() {
+    getTableList(){
       const params = {
-        contextId: this.uiDefineData.plOId,
-        areaType: this.areaType
+        contextId:this.uiDefineData.plOId,
+        areaType:this.areaType
       }
-      getTabByContextIdAndType(params).then(res => {
-        this.data = res.data.data;
-        this.selectList = [];
+      getTabByContextIdAndType( params).then(res => {
         this.$refs.crud.clearSelection();
+        this.data = res.data.data;
+        this.selectList=[];
         this.tableLoading = false;
       })
     },
@@ -256,34 +284,34 @@
           this.lastIndex = newIndex;
         },
         () => {
-          this.selectList = [];
+          this.selectList = [row];
         }
       );
     },
     //鍒涘缓
-    addHandler() {
-      this.form = {
+    addHandler(){
+      this.form={
         plSeq: '',
         plCode: '',
         plName: '',
-        plIsOpen: 0,
-        plOpenExpression: '',
-        plLabel: '',
-        plUIParser: '',
-        plExtAttr: '',
-        plDesc: ''
+        plIsOpen:0,
+        plOpenExpression:'',
+        plLabel:'',
+        plUIParser:'',
+        plExtAttr:'',
+        plDesc:''
       };
       this.dialogType = 'add';
       this.dialogVisible = true;
     },
-    editHandler() {
-      if (this.selectList.length != 0) {
+    editHandler(){
+      if(this.selectList.length!=0){
         this.rowEditBtnClick(this.selectList[0]);
-      } else {
+      }else {
         this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛岀紪杈�');
       }
     },
-    delHandler() {
+    delHandler(){
       if (this.selectList.length <= 0) {
         this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
         return;
@@ -311,7 +339,7 @@
     },
     // 缂栬緫鎸夐挳
     rowEditBtnClick(row) {
-      this.form = row;
+      this.form=JSON.parse(JSON.stringify(row));
       this.dialogType = 'edit';
       this.dialogVisible = true;
     },
@@ -342,17 +370,17 @@
       this.form = {
         plName: '',
         plCode: '',
-        plDesc: '',
+        plDesc:'',
         plIsShow: [],
       }
     },
     // 淇濆瓨椤电
     saveHandler() {
-      this.$refs.form.validate((valid, done) => {
+      this.$refs.form.validate((valid,done) => {
         if (valid) {
           const params = {
-            plAreaType: parseInt(this.areaType),
-            plContextOId: this.uiDefineData.plOId,
+            plAreaType:parseInt(this.areaType),
+            plContextOId:this.uiDefineData.plOId,
             ...this.form
           }
           if (this.dialogType === 'add') {
@@ -375,14 +403,20 @@
         } else {
           return false;
         }
+        done();
       });
+    },
+    rowCloneHandler(row) {
+      this.fromOid = this.uiDefineData.plOId;
+      this.sourceOId = row.plOId;
+      this.$refs.cloneDialog.openDialog(row);
     },
   }
 }
 </script>
 
 <style scoped>
-.tip {
+.tip{
   font-size: 12px;
   color: #909399;
   margin: -13px 0 10px 100px;

--
Gitblit v1.9.3