|
|
@@ -31,7 +31,7 @@
|
|
|
:knowledge_permissions_list="knowledge_permissions_list" :dialog_permissions_list="dialog_permissions_list"
|
|
|
:agent_permissions_list="agent_permissions_list" />
|
|
|
|
|
|
- <DeptConfigModal :visible.sync="dept_config_visible" :dept_list="dept_list" :record="current_record" @ok=""
|
|
|
+ <DeptConfigModal :visible.sync="dept_config_visible" :dept_list="dept_list" :dept_detail="dept_detail" @ok=""
|
|
|
@cancel="handleDeptConfig(null, false)" />
|
|
|
|
|
|
</template>
|
|
|
@@ -46,8 +46,11 @@ import AccountForm from './AccountForm.vue';
|
|
|
import ViewPermission from './ViewPermission.vue';
|
|
|
import DeptConfigModal from './DeptConfigModal.vue';
|
|
|
|
|
|
-import { QueryUserList, QueryUserDetail, QueryUserPermission, QueryUserDept, UserStatusSwitch, ResetPassword, DeleteUser } from '../../../apis/permission/account';
|
|
|
-import { QueryAllRoleList } from '../../../apis/permission/common';
|
|
|
+import {
|
|
|
+ QueryUserList, QueryUserDetail, AddUser,
|
|
|
+ UpdateUser, QueryUserPermission, UserStatusSwitch, ResetPassword, DeleteUser
|
|
|
+} from '../../../apis/permission/account';
|
|
|
+import { QueryAllRoleList, QueryDeptTree } from '../../../apis/permission/common';
|
|
|
|
|
|
const keywords = ref('');
|
|
|
// 表格相关
|
|
|
@@ -89,132 +92,8 @@ const agent_permissions_list = ref([])
|
|
|
|
|
|
// 部门配置相关
|
|
|
const dept_config_visible = ref(false);
|
|
|
-const current_record = ref(null);
|
|
|
-const dept_list = ref([
|
|
|
- {
|
|
|
- "address": null,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "address": "",
|
|
|
- "children": [],
|
|
|
- "code": null,
|
|
|
- "createTime": "Thu, 12 Sep 2024 14:56:43 GMT",
|
|
|
- "deptId": "2af7cb5e-1178-4adc-8abb-9780f7543081",
|
|
|
- "deptName": "成都",
|
|
|
- "email": "",
|
|
|
- "iconCls": null,
|
|
|
- "leader": "成都",
|
|
|
- "orderNum": 0,
|
|
|
- "parentId": "0",
|
|
|
- "parentName": "总部",
|
|
|
- "phone": "成都",
|
|
|
- "roles": [],
|
|
|
- "status": "",
|
|
|
- "updateTime": "Thu, 12 Sep 2024 14:56:43 GMT"
|
|
|
- },
|
|
|
- {
|
|
|
- "address": null,
|
|
|
- "children": [],
|
|
|
- "code": null,
|
|
|
- "createTime": "Sun, 22 May 2022 09:59:33 GMT",
|
|
|
- "deptId": "5477d9a9-e41e-485f-bb08-697e8facef88",
|
|
|
- "deptName": "南京分公司",
|
|
|
- "email": "ss@ada.com",
|
|
|
- "iconCls": null,
|
|
|
- "leader": "dd",
|
|
|
- "orderNum": 0,
|
|
|
- "parentId": "0",
|
|
|
- "parentName": "总部",
|
|
|
- "phone": "18905189016",
|
|
|
- "roles": [],
|
|
|
- "status": "0",
|
|
|
- "updateTime": "Tue, 12 Nov 2024 03:05:10 GMT"
|
|
|
- },
|
|
|
- {
|
|
|
- "address": null,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "address": "",
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "address": "",
|
|
|
- "children": [],
|
|
|
- "code": null,
|
|
|
- "createTime": "Tue, 12 Nov 2024 03:09:57 GMT",
|
|
|
- "deptId": "c6ae93de-2436-4090-b567-ec4835c74112",
|
|
|
- "deptName": "成都",
|
|
|
- "email": "",
|
|
|
- "iconCls": null,
|
|
|
- "leader": "柔柔弱弱",
|
|
|
- "orderNum": 0,
|
|
|
- "parentId": "f86724f0-94d9-445c-9d95-3ec2540da0f8",
|
|
|
- "parentName": "太平洋派出所",
|
|
|
- "phone": "1234242342",
|
|
|
- "roles": [],
|
|
|
- "status": "",
|
|
|
- "updateTime": "Tue, 12 Nov 2024 06:58:15 GMT"
|
|
|
- }
|
|
|
- ],
|
|
|
- "code": null,
|
|
|
- "createTime": "Thu, 05 Sep 2024 03:15:13 GMT",
|
|
|
- "deptId": "f86724f0-94d9-445c-9d95-3ec2540da0f8",
|
|
|
- "deptName": "太平洋派出所",
|
|
|
- "email": "",
|
|
|
- "iconCls": null,
|
|
|
- "leader": "12",
|
|
|
- "orderNum": 0,
|
|
|
- "parentId": "ce627e90-57d6-4ed4-a789-1f3dd467ae7d",
|
|
|
- "parentName": "上海分公司",
|
|
|
- "phone": "12",
|
|
|
- "roles": [
|
|
|
- {
|
|
|
- "deptId": "f86724f0-94d9-445c-9d95-3ec2540da0f8",
|
|
|
- "roleId": "19f00d46-8f1b-45b5-b7b7-6197d7b8cb33",
|
|
|
- "roleName": "管理员1"
|
|
|
- }
|
|
|
- ],
|
|
|
- "status": "0",
|
|
|
- "updateTime": "Tue, 12 Nov 2024 06:58:07 GMT"
|
|
|
- }
|
|
|
- ],
|
|
|
- "code": null,
|
|
|
- "createTime": "Tue, 24 May 2022 23:54:10 GMT",
|
|
|
- "deptId": "ce627e90-57d6-4ed4-a789-1f3dd467ae7d",
|
|
|
- "deptName": "上海分公司",
|
|
|
- "email": null,
|
|
|
- "iconCls": null,
|
|
|
- "leader": "jack",
|
|
|
- "orderNum": 0,
|
|
|
- "parentId": "0",
|
|
|
- "parentName": "总部",
|
|
|
- "phone": null,
|
|
|
- "roles": [
|
|
|
- {
|
|
|
- "deptId": "ce627e90-57d6-4ed4-a789-1f3dd467ae7d",
|
|
|
- "roleId": "301ca518-2ed0-4092-a2ee-e46c24a42c8a",
|
|
|
- "roleName": "普通"
|
|
|
- }
|
|
|
- ],
|
|
|
- "status": "0",
|
|
|
- "updateTime": "Wed, 18 Sep 2024 09:58:16 GMT"
|
|
|
- }
|
|
|
- ],
|
|
|
- "code": null,
|
|
|
- "createTime": "Mon, 28 Nov 2016 10:34:54 GMT",
|
|
|
- "deptId": "0",
|
|
|
- "deptName": "总部",
|
|
|
- "email": null,
|
|
|
- "iconCls": "ext-icon-bricks",
|
|
|
- "leader": null,
|
|
|
- "orderNum": 100,
|
|
|
- "parentId": "",
|
|
|
- "parentName": "",
|
|
|
- "phone": null,
|
|
|
- "roles": [],
|
|
|
- "status": "0",
|
|
|
- "updateTime": "Mon, 28 Nov 2016 10:35:12 GMT"
|
|
|
- }
|
|
|
-]);
|
|
|
+const dept_detail = ref([]);
|
|
|
+const dept_list = ref([]);
|
|
|
|
|
|
const getUserList = async () => {
|
|
|
const params = {
|
|
|
@@ -224,26 +103,24 @@ const getUserList = async () => {
|
|
|
};
|
|
|
table_loading.value = true
|
|
|
const { code, data } = await QueryUserList(params);
|
|
|
+
|
|
|
if (code === 200) {
|
|
|
+ // 处理部门名称和角色名称
|
|
|
for (const user of data.rows) {
|
|
|
if (user.dept) {
|
|
|
- for (const d of user.dept) {
|
|
|
- if (user.deptName) {
|
|
|
- user.deptName += d.deptName + ',';
|
|
|
- } else {
|
|
|
- user.deptName = d.deptName + ',';
|
|
|
- }
|
|
|
+ for (let i = 0; i < user.dept.length; i++) {
|
|
|
+ const d = user.dept[i];
|
|
|
+ user.deptName += d.deptName + (i < user.dept.length - 1 ? ', ' : '');
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
if (user.roles) {
|
|
|
- for (const r of user.roles) {
|
|
|
- if (user.roleName) {
|
|
|
- user.roleName += r.roleName + ',';
|
|
|
- } else {
|
|
|
- user.roleName = r.roleName + ',';
|
|
|
- }
|
|
|
+ for (let i = 0; i < user.roles.length; i++) {
|
|
|
+ const r = user.roles[i];
|
|
|
+ user.roleName += r.roleName + (i < user.roles.length - 1 ? ', ' : '');
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
pagination_props.value.total = data.total;
|
|
|
@@ -264,6 +141,7 @@ const resetClick = () => {
|
|
|
getUserList();
|
|
|
}
|
|
|
const createClick = () => {
|
|
|
+ edit_form.userId = '';
|
|
|
edit_form.userName = '';
|
|
|
edit_form.loginName = '';
|
|
|
edit_form.phone = '';
|
|
|
@@ -271,7 +149,8 @@ const createClick = () => {
|
|
|
edit_form.pwd = '';
|
|
|
edit_form.roles = [];
|
|
|
is_edit_mode.value = false;
|
|
|
- edit_visible.value = true;
|
|
|
+
|
|
|
+ handleEdit(null, true)
|
|
|
}
|
|
|
const refreshClick = () => {
|
|
|
console.log('刷新')
|
|
|
@@ -325,19 +204,23 @@ const handleResetPassword = async (record) => {
|
|
|
|
|
|
const handleEdit = async (record, visible) => {
|
|
|
|
|
|
- const { code, data } = await QueryAllRoleList();
|
|
|
- if (code === 200) {
|
|
|
- role_list.value = data.rows;
|
|
|
+ if (visible) {
|
|
|
+ const { code, data } = await QueryAllRoleList();
|
|
|
+ if (code === 200) {
|
|
|
+ role_list.value = data.rows;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (record) {
|
|
|
+ edit_form.userId = record.userId;
|
|
|
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.roles = record.roles;
|
|
|
+ edit_form.roles = record.roles.map(role => role.roleId);
|
|
|
|
|
|
+ is_edit_mode.value = true;
|
|
|
}
|
|
|
|
|
|
edit_visible.value = visible;
|
|
|
@@ -362,12 +245,10 @@ const handleView = async (record, visible) => {
|
|
|
// 部门配置
|
|
|
const handleDeptConfig = async (record, visible) => {
|
|
|
if (record) {
|
|
|
- current_record.value = record;
|
|
|
- const { code, data: { rows } } = await QueryUserDept(record.userId);
|
|
|
+ // const { code, data } = await QueryUserDetail(record.userId);
|
|
|
+ const { code, data: { rows } } = await QueryUserDetail(77);
|
|
|
if (code === 200) {
|
|
|
- // TODO接口 机构接上再接这个
|
|
|
- console.log('rows', rows)
|
|
|
- // dept_list.value = rows;
|
|
|
+ dept_detail.value = rows;
|
|
|
}
|
|
|
}
|
|
|
dept_config_visible.value = visible;
|
|
|
@@ -384,8 +265,23 @@ const handleDelete = async (userId) => {
|
|
|
getUserList();
|
|
|
}
|
|
|
}
|
|
|
-const modalSave = () => {
|
|
|
+const modalSave = async () => {
|
|
|
edit_visible.value = false;
|
|
|
+ const data = {
|
|
|
+ userId: is_edit_mode.value ? edit_form.userId : undefined,
|
|
|
+ ...edit_form,
|
|
|
+ }
|
|
|
+ const apiCall = is_edit_mode.value ? UpdateUser : AddUser;
|
|
|
+ const { code } = await apiCall(data);
|
|
|
+
|
|
|
+ if (code === 200) {
|
|
|
+ const action = is_edit_mode.value ? '编辑' : '新增';
|
|
|
+ Message.success({
|
|
|
+ title: `${action}账号`,
|
|
|
+ content: `${action}成功`,
|
|
|
+ });
|
|
|
+ getUserList();
|
|
|
+ }
|
|
|
}
|
|
|
const tableSizeChange = (size) => {
|
|
|
table_size.value = size;
|
|
|
@@ -405,8 +301,15 @@ const getMenuTitles = (data, result = []) => {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+const getDeptTree = async () => {
|
|
|
+ const { code, data: { rows } } = await QueryDeptTree();
|
|
|
+ if (code == 200) {
|
|
|
+ dept_list.value = rows;
|
|
|
+ }
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
getUserList()
|
|
|
+ getDeptTree()
|
|
|
})
|
|
|
</script>
|
|
|
|