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