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 @@
+
+
+
+ {{scope.row.userCnt}}
+
+
启用
@@ -58,6 +64,10 @@
+
+
+
+
@@ -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 @@
+
+
+
+
+
+
+
+
+
+
+ {{item.name+' '}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+ 重置
+
+
+
+
+
+
+
+
+
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 @@
-
+
-
-
-
-
-
-
-
-
- {{item.name+' '}}
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
- 删除
- 重置
-
-
-
-
+
+
-