From 6c33f9c50792c03e55549f82c17405552ecff540 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 08 二月 2023 17:18:09 +0800
Subject: [PATCH] IFME主题切换效果优化,角色管理,资源管理主题切换界面优化

---
 src/views/userManage/resourceManage.vue |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 150 insertions(+), 19 deletions(-)

diff --git a/src/views/userManage/resourceManage.vue b/src/views/userManage/resourceManage.vue
index 9a09cad..8830c9b 100644
--- a/src/views/userManage/resourceManage.vue
+++ b/src/views/userManage/resourceManage.vue
@@ -30,7 +30,7 @@
           >{{ $t('common.empty') }}</el-button>
           <el-button
             v-if="menuStatus.insert"
-            @click="InsertFormdialog = true"
+            @click="setInsertFormdialog"
             icon="el-icon-edit"
             type="success"
             size="small"
@@ -144,7 +144,6 @@
       class="infoBox box_div "
       v-show="showinfoBox"
     >
-
       <div
         slot="header"
         class="clearfix"
@@ -296,7 +295,27 @@
           :label="$t('userManage.resManageObj.depid')"
           :label-width="formLabelWidth"
         >
-          <el-input
+          <el-select
+            :popper-append-to-body="false"
+            v-model="insertform.depValue"
+            placeholder="璇烽�夋嫨"
+            style="width:92.5%"
+          >
+            <el-option
+              :value="insertform.depid"
+              :label="insertform.depValue"
+              style=" height:auto"
+            >
+              <el-tree
+                ref="tree"
+                :data="depList"
+                node-key="id"
+                :props="props"
+                @node-click="handleDepList"
+              />
+            </el-option>
+          </el-select>
+          <!-- <el-input
             v-model="insertform.depValue"
             disabled
             autocomplete="off"
@@ -305,22 +324,33 @@
             :underline="false"
             @click="showDepTree(0)"
             style="margin-left: 10px"
-          ><i class="el-icon-plus"></i></el-link>
+          ><i class="el-icon-plus"></i></el-link> -->
         </el-form-item>
         <el-form-item
           :label="$t('userManage.resManageObj.dirid')"
           :label-width="formLabelWidth"
         >
-          <el-input
+          <el-select
+            :popper-append-to-body="false"
             v-model="insertform.dirValue"
-            disabled
-            autocomplete="off"
-          ></el-input>
-          <el-link
-            :underline="false"
-            @click="showDirTree(0)"
-            style="margin-left: 10px"
-          ><i class="el-icon-plus"></i></el-link>
+            placeholder="璇烽�夋嫨"
+            style="width:92.5%"
+          >
+            <el-option
+              :value="insertform.dirid"
+              :label="insertform.dirValue"
+              style=" height:auto"
+            >
+              <el-tree
+                ref="tree"
+                :data="dirList"
+                node-key="id"
+                :props="props"
+                @node-click="handleDirList"
+              />
+            </el-option>
+          </el-select>
+
         </el-form-item>
         <el-form-item
           :label="$t('userManage.resManageObj.descr')"
@@ -430,7 +460,27 @@
           :label="$t('userManage.resManageObj.depid')"
           :label-width="formLabelWidth"
         >
-          <el-input
+          <el-select
+            :popper-append-to-body="false"
+            v-model="upform.depValue"
+            placeholder="璇烽�夋嫨"
+            style="width:92.5%"
+          >
+            <el-option
+              :value="upform.depid"
+              :label="upform.depValue"
+              style=" height:auto"
+            >
+              <el-tree
+                ref="tree1"
+                :data="dirList"
+                node-key="id"
+                :props="props"
+                @node-click="handleEditDepList"
+              />
+            </el-option>
+          </el-select>
+          <!-- <el-input
             v-model="upform.depValue"
             disabled
             autocomplete="off"
@@ -439,13 +489,34 @@
             :underline="false"
             @click="showDepTree(1)"
             style="margin-left: 10px"
-          ><i class="el-icon-plus"></i></el-link>
+          ><i class="el-icon-plus"></i></el-link> -->
         </el-form-item>
         <el-form-item
           :label="$t('userManage.resManageObj.dirid')"
           :label-width="formLabelWidth"
         >
-          <el-input
+          <el-select
+            :popper-append-to-body="false"
+            v-model="upform.dirValue"
+            placeholder="璇烽�夋嫨"
+            style="width:92.5%"
+          >
+            <el-option
+              :value="upform.dirid"
+              :label="upform.dirValue"
+              style=" height:auto"
+            >
+              <el-tree
+                ref="tree1"
+                :data="dirList"
+                node-key="id"
+                :props="props"
+                :default-expand-all="defaultExpand"
+                @node-click="handleEditDirList"
+              />
+            </el-option>
+          </el-select>
+          <!-- <el-input
             v-model="upform.dirValue"
             disabled
             autocomplete="off"
@@ -454,7 +525,7 @@
             :underline="false"
             @click="showDirTree(1)"
             style="margin-left: 10px"
-          ><i class="el-icon-plus"></i></el-link>
+          ><i class="el-icon-plus"></i></el-link> -->
         </el-form-item>
         <el-form-item
           :label="$t('userManage.resManageObj.descr')"
@@ -587,6 +658,8 @@
   updateRes,
   deleteRess,
   upload_res,
+  selectdirTab,
+  selectdepTab,
 } from '../../api/api.js';
 import styleDirTree from '../datamanage/styleDirTree.vue';
 import styleDepTree from '../datamanage/styleDepTree.vue';
@@ -594,6 +667,15 @@
   components: { MyBread, styleDirTree, styleDepTree },
   data() {
     return {
+      props: {
+        label: 'name',
+        value: 'id',
+        children: 'children',
+        checkStrictly: true,
+        emitPath: false,
+      },
+      depList: [],
+      dirList: [],
       menuStatus: {
         delete: false,
         insert: false,
@@ -616,6 +698,8 @@
       uploadFile: null,
       insertform: {
         img: '',
+        depValue: '',
+        dirValue: ''
       },
       tableData: [],
       itemdetail: {},
@@ -645,6 +729,53 @@
     this.getRoleTabelData();
   },
   methods: {
+    handleEditDepList(data, node, nodeData) {
+      this.upform.depid = data.id
+      this.upform.depValue = data.name;
+    },
+    handleEditDirList(data, node, nodeData) {
+      this.upform.dirid = data.id
+      this.upform.dirValue = data.name;
+    },
+    handleDepList(data, node, nodeData) {
+
+      this.insertform.depid = data.id
+      this.insertform.depValue = data.name;
+    },
+    handleDirList(data, node, nodeData) {
+      this.insertform.dirid = data.id
+      this.insertform.dirValue = data.name;
+    },
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      return cloneData.filter((father) => {
+        // 寰幆鎵�鏈夐」
+        let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+        // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+        return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
+      });
+    },
+    async getDepList() {
+      const data = await selectdepTab();
+      if (data.code != 200) {
+        return this.$message.error('鍗曚綅鍒楄〃璋冪敤澶辫触');
+      }
+      this.depList = this.treeData(data.result)
+    },
+    async getDirList() {
+      const data = await selectdirTab();
+      if (data.code != 200) {
+        return this.$message.error('鐩綍鍒楄〃璋冪敤澶辫触');
+      }
+      this.dirList = this.treeData(data.result)
+    },
+    setInsertFormdialog() {
+      this.getDepList();
+      this.getDirList();
+      this.InsertFormdialog = true;
+    },
     showPermsMenu(res) {
       switch (res.tag) {
         case '/delete':
@@ -808,6 +939,8 @@
       console.log(this.itemdetail.imageFile)
     },
     handleEdit(index, row) {
+      this.getDepList();
+      this.getDirList();
       this.EditFormdialog = true;
       this.upform = row;
       this.upform.depValue = row.depName;
@@ -931,9 +1064,7 @@
       margin: 10px auto 0;
       // background-color: red;
     }
-   
   }
- 
 }
 </style>
  
\ No newline at end of file

--
Gitblit v1.9.3