From b253e340e96f7468c129b8986ea34516db62c69c Mon Sep 17 00:00:00 2001 From: yxh Date: Thu, 16 Mar 2023 11:42:10 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E8=A7=92=E8=89=B2=E5=85=B3=E8=81=94?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/role/index.vue | 74 +++++-- src/views/system/user/component/userList.vue | 216 ++++++++++++++++++ src/views/system/user/index.vue | 217 ++++--------------- 3 files changed, 319 insertions(+), 188 deletions(-) create mode 100644 src/views/system/user/component/userList.vue diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 68067c5..6a2a7bb 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -32,6 +32,12 @@ + + + + @@ -67,6 +77,9 @@ import { ElMessageBox, ElMessage } from 'element-plus'; import EditRole from '/@/views/system/role/component/editRole.vue'; import DataScope from '/@/views/system/role/component/dataScope.vue'; import {deleteRole, getRoleList} from "/@/api/system/role"; +import {getDeptTree} from '/@/api/system/user/index'; +import UserList from '/@/views/system/user/component/userList.vue'; + // 定义接口来定义对象的类型 interface TableData { id:number; @@ -76,8 +89,15 @@ interface TableData { remark: string; dataScope:number; createdAt: string; + userCnt: number; } interface TableDataState { + isShowDialog:boolean; + selectRow:object; + deptData:any[]; + userListParam: { + roleId:number | undefined; + }; tableData: { data: Array; total: number; @@ -93,25 +113,33 @@ interface TableDataState { export default defineComponent({ name: 'apiV1SystemRoleList', - components: {EditRole,DataScope}, + components: {EditRole,DataScope,UserList}, setup() { const {proxy} = getCurrentInstance() as any; + const {sys_user_sex} = proxy.useDict('sys_user_sex') const addRoleRef = ref(); + const userListRef = ref(); const editRoleRef = ref(); const dataScopeRef =ref(); const state = reactive({ - tableData: { - data: [], - total: 0, - loading: false, - param: { - roleName:'', - roleStatus:'', - pageNum: 1, - pageSize: 10, - }, - }, - }); + isShowDialog: false, + deptData: [], + userListParam: { + roleId: undefined, + }, + selectRow:{}, + tableData: { + data: [], + total: 0, + loading: false, + param: { + roleName: '', + roleStatus: '', + pageNum: 1, + pageSize: 10, + }, + }, + }); // 初始化表格数据 const initTableData = () => { roleList() @@ -128,6 +156,7 @@ export default defineComponent({ name: item.name, remark: item.remark, dataScope:item.dataScope, + userCnt:item.userCnt, createdAt: item.createdAt, }); }) @@ -135,6 +164,19 @@ export default defineComponent({ state.tableData.total = res.data.total; }) }; + // 打开角色用户列表 + const onOpenUserList = (row: TableData) => { + state.selectRow = row + state.userListParam.roleId = row.id + if (state.deptData.length == 0){ + getDeptTree().then((res:any)=>{ + state.deptData = res.data.deps + state.isShowDialog = true + }) + }else{ + state.isShowDialog = true + } + }; // 打开新增角色弹窗 const onOpenAddRole = () => { editRoleRef.value.openDialog(); @@ -171,6 +213,9 @@ export default defineComponent({ const onHandleCurrentChange = (val: number) => { state.tableData.param.pageNum = val; }; + const userList = ()=>{ + userListRef.value.userList(); + }; // 页面加载时 onMounted(() => { initTableData(); @@ -179,6 +224,9 @@ export default defineComponent({ addRoleRef, editRoleRef, dataScopeRef, + sys_user_sex, + userList, + onOpenUserList, onOpenAddRole, onOpenEditRole, onRowDel, diff --git a/src/views/system/user/component/userList.vue b/src/views/system/user/component/userList.vue new file mode 100644 index 0000000..b038378 --- /dev/null +++ b/src/views/system/user/component/userList.vue @@ -0,0 +1,216 @@ + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index d79521e..3b73c8b 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -22,10 +22,10 @@ - - - - - - - - - - - - - - - - - - - + + -