From 06a70b6f1f24c5105b1705e892867acf488ca5dd Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期三, 18 十二月 2024 15:28:18 +0800
Subject: [PATCH] UI定义-页签设计&&页面设计区域按钮权限

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue |  158 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 88 insertions(+), 70 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..1429d44 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,35 +13,34 @@
       @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" 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>-->
       </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 v-if="permissionChildrenList.UiTabEditBtn" icon="el-icon-edit" size="small" type="text" @click="rowEditBtnClick(scope.row)">缂栬緫</el-button>
+        <el-button v-if="permissionChildrenList.UiTabDelBtn" icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎</el-button>
+        <el-button v-if="permissionChildrenList.UiTabCloneBtn" 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>
         <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">
@@ -60,33 +59,31 @@
           </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 +93,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 +112,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'
@@ -180,12 +182,12 @@
         plSeq: '',
         plCode: '',
         plName: '',
-        plIsOpen: 0,
-        plOpenExpression: '',
-        plLabel: '',
-        plUIParser: '',
-        plExtAttr: '',
-        plDesc: ''
+        plIsOpen:0,
+        plOpenExpression:'',
+        plLabel:'',
+        plUIParser:'',
+        plExtAttr:'',
+        plDesc:''
       },
       rules: {
         plName: [{
@@ -206,39 +208,50 @@
       },
     }
   },
+  computed:{
+    ...mapGetters(["permission"]),
+    permissionChildrenList() {
+      return {
+        UiTabAddBtn: this.vaildData(this.permission[this.$route.query.id].UiTabADD, false),
+        UiTabEditBtn: this.vaildData(this.permission[this.$route.query.id].UiTabEdit, false),
+        UiTabDelBtn: this.vaildData(this.permission[this.$route.query.id].UiTabDel, false),
+        UiTabCloneBtn: this.vaildData(this.permission[this.$route.query.id].UiTabClone, 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 => {
+      getTabByContextIdAndType( params).then(res => {
         this.data = res.data.data;
-        this.selectList = [];
+        this.selectList=[];
         this.$refs.crud.clearSelection();
         this.tableLoading = false;
       })
@@ -261,29 +274,29 @@
       );
     },
     //鍒涘缓
-    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 +324,7 @@
     },
     // 缂栬緫鎸夐挳
     rowEditBtnClick(row) {
-      this.form = row;
+      this.form=row;
       this.dialogType = 'edit';
       this.dialogVisible = true;
     },
@@ -342,17 +355,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') {
@@ -377,12 +390,17 @@
         }
       });
     },
+    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