From 20cf1938a8aa04a3f911d6d3729e8aec08a7d658 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期二, 25 二月 2025 09:08:51 +0800
Subject: [PATCH] feat: 完成检测单页面
---
src/views/system/role/index.vue | 233 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 116 insertions(+), 117 deletions(-)
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 47419ba..0f5f894 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -1,101 +1,62 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
- <el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
- <el-input
- v-model="queryParams.roleName"
- placeholder="璇疯緭鍏ヨ鑹插悕绉�"
- clearable
- style="width: 240px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鏉冮檺瀛楃" prop="roleKey">
- <el-input
- v-model="queryParams.roleKey"
- placeholder="璇疯緭鍏ユ潈闄愬瓧绗�"
- clearable
- style="width: 240px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select
- v-model="queryParams.status"
- placeholder="瑙掕壊鐘舵��"
- clearable
- style="width: 240px"
- >
- <el-option
- v-for="dict in dict.type.sys_normal_disable"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿">
- <el-date-picker
- v-model="dateRange"
- style="width: 240px"
- value-format="yyyy-MM-dd"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
- </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="search">
+ <div>
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
+ <el-input
+ v-model="queryParams.roleName"
+ placeholder="璇疯緭鍏ヨ鑹插悕绉�"
+ clearable
+ style="width: 200px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="鏉冮檺瀛楃" prop="roleKey">
+ <el-input
+ v-model="queryParams.roleKey"
+ placeholder="璇疯緭鍏ユ潈闄愬瓧绗�"
+ clearable
+ style="width: 200px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select
+ v-model="queryParams.status"
+ placeholder="瑙掕壊鐘舵��"
+ clearable
+ style="width: 200px"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_normal_disable"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿">
+ <el-date-picker
+ v-model="dateRange"
+ style="width: 200px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌� 璇�</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲� 缃�</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div class="addButton mb8">
+ <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:role:add']">鏂板</el-button>
+ </div>
+ </div>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
@@ -134,15 +95,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 +126,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 +135,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 +150,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,12 +166,12 @@
></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 @click="cancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm" v-if="title !== '鏌ョ湅瑙掕壊'">纭� 瀹�</el-button>
</div>
</el-dialog>
@@ -211,7 +179,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" />
@@ -244,8 +212,8 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitDataScope">纭� 瀹�</el-button>
<el-button @click="cancelDataScope">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitDataScope">纭� 瀹�</el-button>
</div>
</el-dialog>
</div>
@@ -525,6 +493,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 +591,14 @@
}
}
};
-</script>
\ No newline at end of file
+</script>
+
+<style scoped>
+.search {
+ display: flex;
+ justify-content: space-between;
+}
+.addButton {
+ margin-top: 3px;
+}
+</style>
--
Gitblit v1.9.3