From 7c5d1de8b4a2293da8efc260dccd94a3b28640b7 Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期三, 12 二月 2025 10:45:37 +0800
Subject: [PATCH] 角色管理页面修改

---
 src/views/system/role/index.vue |  129 +++++++++++++++++++++---------------------
 src/router/index.js             |    2 
 2 files changed, 66 insertions(+), 65 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 59e6be2..ea91d47 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -115,6 +115,7 @@
     ]
   },
   {
+    // 鐢ㄦ埛绠$悊
     path: '/system/user-auth',
     component: Layout,
     hidden: true,
@@ -129,6 +130,7 @@
     ]
   },
   {
+    // 瑙掕壊绠$悊
     path: '/system/role-auth',
     component: Layout,
     hidden: true,
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 47419ba..1395d24 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -51,51 +51,16 @@
       </el-form-item>
     </el-form>
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:role:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:role:edit']"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:role:remove']"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:role:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+    <div class="addButton mb8">
+      <el-button
+        type="primary"
+        plain
+        icon="el-icon-plus"
+        size="mini"
+        @click="handleAdd"
+        v-hasPermi="['system:role:add']"
+      >鏂板</el-button>
+    </div>
 
     <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
@@ -134,15 +99,21 @@
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:role:remove']"
           >鍒犻櫎</el-button>
-          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
-            <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"
-                v-hasPermi="['system:role:edit']">鏁版嵁鏉冮檺</el-dropdown-item>
-              <el-dropdown-item command="handleAuthUser" icon="el-icon-user"
-                v-hasPermi="['system:role:edit']">鍒嗛厤鐢ㄦ埛</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleView(scope.row)"
+          >璇︾粏</el-button>
+<!--          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">-->
+<!--            <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button>-->
+<!--            <el-dropdown-menu slot="dropdown">-->
+<!--              <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"-->
+<!--                v-hasPermi="['system:role:edit']">鏁版嵁鏉冮檺</el-dropdown-item>-->
+<!--              <el-dropdown-item command="handleAuthUser" icon="el-icon-user"-->
+<!--                v-hasPermi="['system:role:edit']">鍒嗛厤鐢ㄦ埛</el-dropdown-item>-->
+<!--            </el-dropdown-menu>-->
+<!--          </el-dropdown>-->
         </template>
       </el-table-column>
     </el-table>
@@ -159,7 +130,7 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
-          <el-input v-model="form.roleName" placeholder="璇疯緭鍏ヨ鑹插悕绉�" />
+          <el-input v-model="form.roleName" placeholder="璇疯緭鍏ヨ鑹插悕绉�" :disabled="title === '鏌ョ湅瑙掕壊'"/>
         </el-form-item>
         <el-form-item prop="roleKey">
           <span slot="label">
@@ -168,13 +139,13 @@
             </el-tooltip>
             鏉冮檺瀛楃
           </span>
-          <el-input v-model="form.roleKey" placeholder="璇疯緭鍏ユ潈闄愬瓧绗�" />
+          <el-input v-model="form.roleKey" placeholder="璇疯緭鍏ユ潈闄愬瓧绗�"  :disabled="title === '鏌ョ湅瑙掕壊'"/>
         </el-form-item>
         <el-form-item label="瑙掕壊椤哄簭" prop="roleSort">
-          <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
+          <el-input-number v-model="form.roleSort" controls-position="right" :min="0"  :disabled="title === '鏌ョ湅瑙掕壊'"/>
         </el-form-item>
         <el-form-item label="鐘舵��">
-          <el-radio-group v-model="form.status">
+          <el-radio-group v-model="form.status" :disabled="title === '鏌ョ湅瑙掕壊'">
             <el-radio
               v-for="dict in dict.type.sys_normal_disable"
               :key="dict.value"
@@ -183,10 +154,11 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="鑿滃崟鏉冮檺">
-          <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">灞曞紑/鎶樺彔</el-checkbox>
-          <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox>
-          <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">鐖跺瓙鑱斿姩</el-checkbox>
+          <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">灞曞紑/鎶樺彔</el-checkbox>
+          <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox>
+          <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">鐖跺瓙鑱斿姩</el-checkbox>
           <el-tree
+            :disabled="title === '鏌ョ湅瑙掕壊'"
             class="tree-border"
             :data="menuOptions"
             show-checkbox
@@ -198,11 +170,11 @@
           ></el-tree>
         </el-form-item>
         <el-form-item label="澶囨敞">
-          <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+          <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" :disabled="title === '鏌ョ湅瑙掕壊'"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button type="primary" @click="submitForm" v-if="title !== '鏌ョ湅瑙掕壊'">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
@@ -211,7 +183,7 @@
     <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
       <el-form :model="form" label-width="80px">
         <el-form-item label="瑙掕壊鍚嶇О">
-          <el-input v-model="form.roleName" :disabled="true" />
+          <el-input v-model="form.roleName" :disabled="true"/>
         </el-form-item>
         <el-form-item label="鏉冮檺瀛楃">
           <el-input v-model="form.roleKey" :disabled="true" />
@@ -525,6 +497,27 @@
       });
       this.title = "淇敼瑙掕壊";
     },
+    // 鏌ョ湅瑙掕壊璇︽儏
+    handleView (row) {
+      this.title = "鏌ョ湅瑙掕壊";
+      this.reset();
+      const roleId = row.roleId || this.ids
+      const roleMenu = this.getRoleMenuTreeselect(roleId);
+      getRole(roleId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.$nextTick(() => {
+          roleMenu.then(res => {
+            let checkedKeys = res.checkedKeys
+            checkedKeys.forEach((v) => {
+              this.$nextTick(()=>{
+                this.$refs.menu.setChecked(v, true ,false);
+              })
+            })
+          });
+        });
+      });
+    },
     /** 閫夋嫨瑙掕壊鏉冮檺鑼冨洿瑙﹀彂 */
     dataScopeSelectChange(value) {
       if(value !== '2') {
@@ -602,4 +595,10 @@
     }
   }
 };
-</script>
\ No newline at end of file
+</script>
+
+<style scoped>
+.addButton {
+  text-align: right;
+}
+</style>

--
Gitblit v1.9.3