From badf10af5578f3fe4151824670bb7a794efc63dd Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 03 十二月 2024 17:12:04 +0800
Subject: [PATCH] 数据授权

---
 Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue |  191 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 142 insertions(+), 49 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
index f3955f1..f8c8799 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
@@ -19,24 +19,41 @@
     </el-aside>
 
     <el-main>
-      <basic-container>
+      <basic-container cardBodyStyle="padding-bottom:0;">
         <avue-crud
           ref="crud"
           :data="data"
           :option="option"
           :table-loading="tableLoading"
           @refresh-change="handleRefresh"
-          @selection-change="selectChange"
-          @row-click="rowClickHandler">
+          @current-row-change="rowClickHandler">
           <template slot="menuLeft">
             <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">娣诲姞</el-button>
+            <el-button icon="el-icon-plus" 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 icon="el-icon-view" plain size="small" type="primary" @click="chekView">鏌ョ湅鎺堟潈缁撴灉</el-button>
           </template>
         </avue-crud>
-        <div>
-          <data-view key="dataView"></data-view>
+        <div style="margin-top: 15px;">
+          <data-view key="dataView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="true" :height="clientHeight-260-220"></data-view>
         </div>
+        <!-- 鏂板 && 缂栬緫 -->
+        <el-dialog
+          v-dialogDrag
+          :title="title === 'add' ? '鍒涘缓' : '淇敼'"
+          :visible.sync="visible"
+          append-to-body="true"
+          class="avue-dialog"
+          width="70%"
+          @close="addDialogClose">
+            <div>
+              <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-340"></data-view>
+            </div>
+            <span slot="footer" class="dialog-footer">
+               <el-button size="small" type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button>
+               <el-button size="small" @click="addDialogClose">鍙� 娑�</el-button>
+            </span>
+        </el-dialog>
         <!-- 鏌ョ湅鎺堟潈缁撴灉    -->
         <el-dialog
           v-dialogDrag
@@ -67,7 +84,7 @@
 import {getBizTree} from "@/api/UI/uiDefine";
 import basicOption from "@/util/basic-option";
 import dataView from "./dataView";
-import {getTypeActionByType} from "@/api/authority/ui/typeAction";
+import {getData,saveGrand,delGrand} from "@/api/authority/ui/dataAuthor";
 import func from "@/util/func";
 import {getUsedEnumList} from "@/api/modeling/enumType/api";
 export default {
@@ -75,6 +92,7 @@
   components:{dataView},
   data:function (){
     return{
+      clientHeight:Math.max(document.body.clientHeight,700),
       treeOption: {
         height: 'auto',
         defaultExpandAll: true,
@@ -89,10 +107,11 @@
       nodeRow: {},
       treeData: [],
       tableLoading: false,
-      selectList: [],
+      selectRow: {},
       option: {
         ...basicOption,
-        height:260,
+        height:280,
+        highlightCurrentRow:true,
         addBtn: false,
         editBtn: false,
         delBtn: false,
@@ -100,22 +119,32 @@
         columnBtn:false,
         gridBtn:false,
         tip: false,
-        align: 'left',
+        index:false,
+        selection:false,
         menu:false,
-        column: [
-          {
-            label: '瑙勫垯鍚嶇О',
-            prop: 'plCode',
-            overHidden: true
-          },
-          {
-            label: '瑙勫垯绫诲瀷',
-            prop: 'plName',
-            overHidden: true
-          }
-        ]
+        align:'center',
+        column: [{
+          label: '瑙勫垯鍚嶇О',
+          prop: 0,
+          overHidden: true
+        },{
+          label: '瑙勫垯绫诲瀷',
+          prop: 1,
+          overHidden: true
+        }]
       },
       data: [],
+      title: '',
+      visible: false,
+      form:{},
+      actionMap:{},
+      switchDic:[{
+        label:'',
+        value:false
+      },{
+        label:'',
+        value:true
+      }]
     }
   },
   created() {
@@ -140,12 +169,40 @@
       }
     },
     getTableList() {
-      getTypeActionByType({
-        'typeName': this.nodeRow.attributes.name,
-      }).then(res => {
-        this.data = res.data.data;
+      getData(this.nodeRow.attributes.name).then(res => {
+        /*if(typeof res.data == 'string'){
+          res.data=eval('('+res.data +')')
+        }*/
+        if(res.data.obj.tableHeader){
+          this.option.column=[ {
+            label: '瑙勫垯鍚嶇О',
+            prop: 0,
+            overHidden: true
+          },{
+              label: '瑙勫垯绫诲瀷',
+              prop: 1,
+              overHidden: true
+            }];
+          res.data.obj.tableHeader.forEach((item,i)=>{
+            if(i<=1) return;
+            if(i=='rules') return;
+            this.option.column.push({
+              label: item,
+              prop: i,
+              overHidden: true,
+              width:'auto',
+              html:true,
+              formatter:(val)=> {
+                return '<label class="el-checkbox is-disabled ' + (val[i] == true ? 'is-checked' : '') + '"><span class="el-checkbox__input is-disabled ' + (val[i] == true ? 'is-checked' : '') + '"><span class="el-checkbox__inner"></span><input type="checkbox" aria-hidden="false" class="el-checkbox__original" value="' + val[i] + '"></span></label>'
+              }
+            })
+          })
+        }
+        this.data = res.data.obj.rowList;
         this.$refs.crud.clearSelection();
         this.tableLoading = false;
+        this.actionMap=res.data.obj.actionMap;
+        this.selectRow={}
       })
     },
     handleRefresh() {
@@ -153,34 +210,16 @@
     },
     // 琛岀偣鍑�
     rowClickHandler(row) {
-      func.rowClickHandler(
-        row,
-        this.$refs.crud,
-        this.lastIndex,
-        (newIndex) => {
-          this.lastIndex = newIndex;
-        },
-        () => {
-          this.selectList = [row];
-        }
-      );
-    },
-    // 閫夋嫨妗�
-    selectChange(row) {
-      this.selectList = row;
+      this.selectRow=row
     },
     // 鏌ョ湅鎺堟潈缁撴灉
     chekView() {
-      if (this.selectList.length <= 0) {
-        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
-        return;
-      }
-      if (this.selectList.length > 1) {
-        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹繘琛屾煡鐪�');
+      if (this.selectRow=={}) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�');
         return;
       }
 
-      getUsedEnumList({enumName: this.selectList[0].id}).then(res => {
+      getUsedEnumList({enumName: this.selectRow.id}).then(res => {
         if (res.data.code === 200) {
           this.checkViewVisible = true;
           this.checkViewData = res.data.data;
@@ -197,7 +236,6 @@
         this.checkViewData = this.checkViewDataSearch;
         return done();
       }
-      ;
 
       this.checkViewData = this.checkViewData.filter(item => {
         return item.source && item.source.includes(source);
@@ -206,7 +244,62 @@
       done();
 
     },
-
+    //鍒涘缓
+    addHandler(){
+      if (func.isEmptyObject(this.nodeRow)) {
+        this.$message.error('璇烽�夋嫨瑕佹坊鍔犵殑鑺傜偣');
+        return;
+      }
+      this.title = 'add';
+      this.visible = true;
+    },
+    //淇敼
+    editHandler(){
+      if (func.isEmptyObject(this.nodeRow)) {
+        this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.title = 'edit';
+      this.visible = true;
+    },
+    // 鏂板缂栬緫淇濆瓨
+    addDialogSavaHandler() {
+      saveGrand(this.viewData).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.obj);
+          this.getTableList();
+          this.addDialogClose();
+        }
+      })
+    },
+    // 鏂板缂栬緫瀵硅瘽妗嗗彇娑�
+    addDialogClose() {
+      this.visible = false;
+    },
+    //鍒犻櫎
+    delHandler(){
+      if (func.isEmptyObject(this.nodeRow)) {
+        this.$message.error('璇烽�夋嫨鏁版嵁');
+        return;
+      }
+      this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        delGrand({name:this.templateForm}).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.obj);
+            this.getTableList();
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    },
     // 鏌ョ湅浣跨敤鑼冨洿閲嶇疆
     checkHandleReset() {
       this.checkViewData = this.checkViewDataSearch;

--
Gitblit v1.9.3