|
|
@@ -1,32 +1,32 @@
|
|
|
<template>
|
|
|
<a-card class="account-page-card">
|
|
|
- <Action :btn_text="'新建用户组'" @searchClick="searchClick" @resetClick="resetClick" @createClick="createClick"
|
|
|
+ <Action :btn_text="'新建角色'" @searchClick="searchClick" @resetClick="resetClick" @createClick="createClick"
|
|
|
@sizeChange="table_size_change" @refreshClick="refreshClick"></Action>
|
|
|
- <DataTable :data="table_data" :columns="table_columns" row-key="userId" :size="table_size" :loading="table_loading"
|
|
|
+ <DataTable :data="table_data" :columns="table_columns" row-key="roleId" :size="table_size" :loading="table_loading"
|
|
|
:pagination="pagination_props" @pageChange="handlePageChange">
|
|
|
<template #status="{ record }">
|
|
|
<a-switch v-model="record.status" @change="statusChange(record)" checked-value="1" unchecked-value="0" />
|
|
|
</template>
|
|
|
<template #operationSlot="{ record }">
|
|
|
- <a-popconfirm content="确定重置该账号密码吗?" @ok="handleResetPassword(record)">
|
|
|
- <a-button type="text">重制密码</a-button>
|
|
|
- </a-popconfirm>
|
|
|
<a-button type="text" @click="handleEdit(record, true)">编辑</a-button>
|
|
|
<a-button type="text" @click="handlePermissionConfig(record, true)">权限配置</a-button>
|
|
|
<a-button type="text" @click="handleDeptConfig(record, true)">部门配置</a-button>
|
|
|
- <a-popconfirm content="确定删除该条数据吗?" type="warning" @ok="handleDelete(record.userId)">
|
|
|
+ <a-popconfirm content="确定删除该条数据吗?" type="warning" @ok="handleDelete(record.roleId)">
|
|
|
<a-button type="text" status="warning">删除</a-button>
|
|
|
</a-popconfirm>
|
|
|
</template>
|
|
|
</DataTable>
|
|
|
</a-card>
|
|
|
|
|
|
- <Modal :visible.sync="edit_visible" @ok="editModalSave" @cancel="handleEdit(null, false)" :title="'编辑'">
|
|
|
- <AccountForm :edit_form="edit_form" />
|
|
|
+ <Modal :visible.sync="edit_visible" @ok="modalSave" @cancel="handleEdit(null, false)"
|
|
|
+ :title="is_edit_mode ? '编辑' : '新增'">
|
|
|
+ <RoleForm :edit_form="edit_form" :is_edit_mode="is_edit_mode" />
|
|
|
</Modal>
|
|
|
|
|
|
<!-- TODO -->
|
|
|
- <PermissionConfigModal :visible.sync="permission_config_visible" @cancel="handlePermissionConfig(null, false)" />
|
|
|
+ <PermissionConfigModal :visible.sync="permission_config_visible" :menu_list="menu_list"
|
|
|
+ :knowledge_list="knowledge_list" :agents_list="agents_list" @getActiveTab="handlePermissionModalTab"
|
|
|
+ @ok="handlePermissionConfigSave" @cancel="handlePermissionConfig(null, false)" />
|
|
|
|
|
|
<DeptConfigModal :visible.sync="dept_config_visible" :dept_list="dept_list" :record="current_record" @ok=""
|
|
|
@cancel="handleDeptConfig(null, false)" />
|
|
|
@@ -39,20 +39,21 @@ import { Message } from '@arco-design/web-vue';
|
|
|
import DataTable from '../../../views/permission/DataTable.vue';
|
|
|
import Action from '../../../views/permission/Action.vue';
|
|
|
import Modal from '../Modal.vue';
|
|
|
-import AccountForm from './AccountForm.vue';
|
|
|
+import RoleForm from './RoleForm.vue';
|
|
|
import PermissionConfigModal from './PermissionConfigModal.vue';
|
|
|
import DeptConfigModal from './DeptConfigModal.vue';
|
|
|
|
|
|
-import { QueryRoleList, } from '../../../apis/permission/role';
|
|
|
+import { QueryRoleList, RoleStatusSwitch, DeleteRole, CreateRole, UpdateRole } from '../../../apis/permission/role';
|
|
|
+import { QueryMenuTree } from '../../../apis/permission/resource';
|
|
|
+// TODO接口 模型tabs接口还没有
|
|
|
+import { QueryknowledgeList, QueryDialogList } from '../../../apis/permission/common';
|
|
|
|
|
|
const keywords = ref('');
|
|
|
// 表格相关
|
|
|
const table_data = ref([]);
|
|
|
const table_columns = ref([
|
|
|
{ title: '序号', slotName: 'index' },
|
|
|
- { title: '用户名', dataIndex: 'userName', titleSlotName: 'userName' },
|
|
|
- { title: '角色', dataIndex: 'roleName', titleSlotName: 'roleName' },
|
|
|
- { title: '所属部门', dataIndex: 'deptName', titleSlotName: 'deptName' },
|
|
|
+ { title: '角色名', dataIndex: 'roleName', titleSlotName: 'roleName' },
|
|
|
{ title: '状态', dataIndex: 'status', slotName: 'status' },
|
|
|
{ title: '操作', dataIndex: 'operation', slotName: 'operationSlot' },
|
|
|
]);
|
|
|
@@ -66,21 +67,17 @@ const table_loading = ref(false);
|
|
|
|
|
|
// 编辑表单相关
|
|
|
const edit_visible = ref(false);
|
|
|
+const is_edit_mode = ref(false);
|
|
|
const edit_form = reactive({
|
|
|
- userName: '',
|
|
|
- userName: '',
|
|
|
- phone: '',
|
|
|
- email: '',
|
|
|
- pwd: '',
|
|
|
- role: []
|
|
|
+ roleName: '',
|
|
|
+ remark: '',
|
|
|
});
|
|
|
|
|
|
// 权限配置相关
|
|
|
const permission_config_visible = ref(false);
|
|
|
-const menu_permissions_list = ref([])
|
|
|
-const knowledge_permissions_list = ref([])
|
|
|
-const dialog_permissions_list = ref([])
|
|
|
-const agent_permissions_list = ref([])
|
|
|
+const menu_list = ref([]);
|
|
|
+const knowledge_list = ref([]);
|
|
|
+const agents_list = ref([]);
|
|
|
|
|
|
// 部门配置相关
|
|
|
const dept_config_visible = ref(false);
|
|
|
@@ -211,7 +208,7 @@ const dept_list = ref([
|
|
|
}
|
|
|
]);
|
|
|
|
|
|
-const getUserList = async () => {
|
|
|
+const gerRoleList = async () => {
|
|
|
const params = {
|
|
|
keyword: keywords.value,
|
|
|
current: pagination_props.value.current,
|
|
|
@@ -232,19 +229,16 @@ const getUserList = async () => {
|
|
|
|
|
|
const searchClick = (value) => {
|
|
|
keywords.value = value;
|
|
|
- getUserList();
|
|
|
+ gerRoleList();
|
|
|
}
|
|
|
const resetClick = () => {
|
|
|
keywords.value = '';
|
|
|
- getUserList();
|
|
|
+ gerRoleList();
|
|
|
}
|
|
|
const createClick = () => {
|
|
|
- edit_form.userName = '';
|
|
|
- edit_form.loginName = '';
|
|
|
- edit_form.phone = '';
|
|
|
- edit_form.email = '';
|
|
|
- edit_form.pwd = '';
|
|
|
- edit_form.role = [];
|
|
|
+ edit_form.roleName = '';
|
|
|
+ edit_form.remark = '';
|
|
|
+ is_edit_mode.value = false;
|
|
|
edit_visible.value = true;
|
|
|
}
|
|
|
const refreshClick = () => {
|
|
|
@@ -254,7 +248,7 @@ const refreshClick = () => {
|
|
|
// 切换页码
|
|
|
const handlePageChange = (current) => {
|
|
|
pagination_props.value.current = current;
|
|
|
- getUserList();
|
|
|
+ gerRoleList();
|
|
|
};
|
|
|
|
|
|
// TODO功能 状态切换拦截
|
|
|
@@ -266,41 +260,26 @@ const beforeStatusChange = async () => {
|
|
|
|
|
|
// 用户状态切换
|
|
|
const statusChange = async (record) => {
|
|
|
- if (record?.dept) {
|
|
|
- const params = {
|
|
|
- userId: record.userId,
|
|
|
- status: record.status,
|
|
|
- };
|
|
|
- const { code } = await UserStatusSwitch(params)
|
|
|
- if (code === 200) {
|
|
|
- Message.success({
|
|
|
- title: '成功',
|
|
|
- content: '状态切换成功.',
|
|
|
- });
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
-};
|
|
|
-//重置密码
|
|
|
-const handleResetPassword = async (record) => {
|
|
|
- const { code } = await ResetPassword(record.userId);
|
|
|
+ const params = {
|
|
|
+ roleId: record.roleId,
|
|
|
+ status: record.status,
|
|
|
+ };
|
|
|
+ const { code } = await RoleStatusSwitch(params)
|
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
|
- title: '重置密码',
|
|
|
- content: '该用户密码重置为000000',
|
|
|
+ title: '成功',
|
|
|
+ content: '状态切换成功.',
|
|
|
});
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
const handleEdit = (record, visible) => {
|
|
|
if (record) {
|
|
|
- edit_form.userName = record.userName;
|
|
|
- edit_form.loginName = record.loginName;
|
|
|
- edit_form.phone = record.phone;
|
|
|
- edit_form.email = record.email;
|
|
|
- edit_form.pwd = record.pwd;
|
|
|
- edit_form.role = record.role;
|
|
|
+ edit_form.roleId = record.roleId;
|
|
|
+ edit_form.roleName = record.roleName;
|
|
|
+ edit_form.remark = record.remark;
|
|
|
+
|
|
|
+ is_edit_mode.value = true;
|
|
|
}
|
|
|
|
|
|
edit_visible.value = visible;
|
|
|
@@ -308,51 +287,109 @@ const handleEdit = (record, visible) => {
|
|
|
// 权限配置
|
|
|
const handlePermissionConfig = async (record, visible) => {
|
|
|
if (record) {
|
|
|
- const { code, data } = await QueryUserPermission(record.userId);
|
|
|
- if (code === 200) {
|
|
|
- const { knowledge, menu, dialog } = data;
|
|
|
- if (dialog && dialog.length > 0) dialog_permissions_list.value = dialog
|
|
|
- if (menu && menu.length > 0) menu_permissions_list.value = menu
|
|
|
- if (knowledge && knowledge.length > 0) knowledge_permissions_list.value = knowledge
|
|
|
- }
|
|
|
+ edit_form.roleId = record.roleId;
|
|
|
+ getConfigList('1');
|
|
|
}
|
|
|
permission_config_visible.value = visible;
|
|
|
}
|
|
|
+
|
|
|
+const handlePermissionModalTab = (tab) => {
|
|
|
+ if (tab.key) getConfigList(tab.key);
|
|
|
+}
|
|
|
+
|
|
|
+const handlePermissionConfigSave = async (data) => {
|
|
|
+ permission_config_visible.value = false;
|
|
|
+ console.log('data', data)
|
|
|
+ const { menu, knowledge, agents, model } = data.checkedKeys;
|
|
|
+ // TODO询问 接口
|
|
|
+ // const params = {
|
|
|
+ // roleId: edit_form.roleId,
|
|
|
+ // menuIds: menu_list.value.map((item) => item.menuId).join(','),
|
|
|
+ // knowledgeIds: knowledge_list.value.map((item) => item.knowledgeId).join(','),
|
|
|
+ // agentIds: agents_list.value.map((item) => item.agentId).join(','),
|
|
|
+ // };
|
|
|
+ // const { code } = await UpdateRole(params);
|
|
|
+ // if (code === 200) {
|
|
|
+ // Message.success({
|
|
|
+ // title: '权限配置',
|
|
|
+ // content: '权限配置成功',
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+}
|
|
|
+
|
|
|
// 部门配置
|
|
|
const handleDeptConfig = async (record, visible) => {
|
|
|
if (record) {
|
|
|
- current_record.value = record;
|
|
|
- const { code, data: { rows } } = await QueryUserDept(record.userId);
|
|
|
- if (code === 200) {
|
|
|
- // TODO接口 机构接上再接这个
|
|
|
- console.log('rows', rows)
|
|
|
- // dept_list.value = rows;
|
|
|
- }
|
|
|
+ // current_record.value = record;
|
|
|
+ // const { code, data: { rows } } = await QueryUserDept(record.roleId);
|
|
|
+ // if (code === 200) {
|
|
|
+ // console.log('rows', rows)
|
|
|
+ // // dept_list.value = rows;
|
|
|
+ // }
|
|
|
}
|
|
|
dept_config_visible.value = visible;
|
|
|
}
|
|
|
|
|
|
// 删除用户
|
|
|
-const handleDelete = async (userId) => {
|
|
|
- const { code } = await DeleteUser(userId);
|
|
|
+const handleDelete = async (roleId) => {
|
|
|
+ const { code } = await DeleteRole(roleId);
|
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
|
title: '删除用户',
|
|
|
- content: '该用户已删除',
|
|
|
+ content: '删除成功',
|
|
|
});
|
|
|
- getUserList();
|
|
|
+ gerRoleList();
|
|
|
}
|
|
|
}
|
|
|
-const editModalSave = () => {
|
|
|
+const modalSave = async () => {
|
|
|
edit_visible.value = false;
|
|
|
+ const data = {
|
|
|
+ roleId: is_edit_mode.value ? edit_form.roleId : undefined,
|
|
|
+ roleName: edit_form.roleName,
|
|
|
+ editType: is_edit_mode.value ? 1 : undefined,
|
|
|
+ remark: edit_form.remark,
|
|
|
+ };
|
|
|
+
|
|
|
+ const apiCall = is_edit_mode.value ? UpdateRole : CreateRole;
|
|
|
+ const { code } = await apiCall(data);
|
|
|
+
|
|
|
+ if (code === 200) {
|
|
|
+ const action = is_edit_mode.value ? '编辑' : '新增';
|
|
|
+ Message.success({
|
|
|
+ title: `${action}用户`,
|
|
|
+ content: `${action}成功`,
|
|
|
+ });
|
|
|
+ gerRoleList();
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
const table_size_change = (size) => {
|
|
|
table_size.value = size;
|
|
|
}
|
|
|
|
|
|
+const getConfigList = async (tabsKey) => {
|
|
|
+ if (tabsKey === '1') {
|
|
|
+ const { code, data: { rows } } = await QueryMenuTree();
|
|
|
+ if (code === 200) {
|
|
|
+ menu_list.value = rows;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tabsKey === '2') {
|
|
|
+ const { code, data: { rows } } = await QueryknowledgeList();
|
|
|
+ if (code === 200) {
|
|
|
+ knowledge_list.value = rows;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tabsKey === '3') {
|
|
|
+ const { code, data: { rows } } = await QueryDialogList();
|
|
|
+ if (code === 200) {
|
|
|
+ agents_list.value = rows;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
onMounted(() => {
|
|
|
- getUserList()
|
|
|
+ gerRoleList()
|
|
|
})
|
|
|
</script>
|
|
|
|