fix: 修复部门多级下拉菜单回显错误问题

Former-commit-id: 66e0a0c5a7afd8b0531707b52c2107e511eafc32
This commit is contained in:
郝先瑞
2022-08-26 07:33:12 +08:00
parent f7c850d266
commit c88f5f9b35
2 changed files with 151 additions and 56 deletions

View File

@@ -1,67 +1,160 @@
import { PageQueryParam, PageResult } from '../base'; import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
UserFormData,
UserInfo,
UserPageResult,
UserQueryParam
} from '@/types/api/system/user';
/** /**
* 登录用户类型声明 * 登录成功后获取用户信息(昵称、头像、权限集合和角色集合)
*/ */
export interface UserInfo { export function getUserInfo(): AxiosPromise<UserInfo> {
nickname: string; return request({
avatar: string; url: '/youlai-admin/api/v1/users/me',
roles: string[]; method: 'get'
perms: string[]; });
} }
/** /**
* 用户查询参数类型声明 * 获取用户分页列表
*
* @param queryParams
*/ */
export interface UserQueryParam extends PageQueryParam { export function listUserPages(
keywords: string; queryParams: UserQueryParam
status: number; ): AxiosPromise<UserPageResult> {
deptId: number; return request({
url: '/youlai-admin/api/v1/users/pages',
method: 'get',
params: queryParams
});
} }
/** /**
* 用户分页列表项声明 * 获取用户表单详情
*
* @param userId
*/ */
export interface UserItem { export function getUserFormData(userId: number): AxiosPromise<UserFormData> {
id: string; return request({
username: string; url: '/youlai-admin/api/v1/users/' + userId + '/form_data',
nickname: string; method: 'get'
mobile: string; });
gender: number;
avatar: string;
email: string;
status: number;
deptName: string;
roleNames: string;
createTime: string;
} }
/** /**
* 用户分页项类型声明 * 添加用户
*
* @param data
*/ */
export type UserPageResult = PageResult<UserItem[]>; export function addUser(data: any) {
return request({
/** url: '/youlai-admin/api/v1/users',
* 用户表单类型声明 method: 'post',
*/ data: data
export interface UserFormData { });
id: number | undefined;
deptId: number;
username: string;
nickname: string;
password: string;
mobile: string;
email: string;
gender: number;
status: number;
remark: string;
roleIds: number[];
} }
/** /**
* 用户导入表单类型声明 * 修改用户
*
* @param id
* @param data
*/ */
export interface UserImportFormData { export function updateUser(id: number, data: UserFormData) {
deptId: number; return request({
roleIds: number[]; url: '/youlai-admin/api/v1/users/' + id,
method: 'put',
data: data
});
}
/**
* 修改用户状态
*
* @param id
* @param status
*/
export function updateUserStatus(id: number, status: number) {
return request({
url: '/youlai-admin/api/v1/users/' + id + '/status',
method: 'patch',
params: { status: status }
});
}
/**
* 修改用户密码
*
* @param id
* @param password
*/
export function updateUserPassword(id: number, password: string) {
return request({
url: '/youlai-admin/api/v1/users/' + id + '/password',
method: 'patch',
params: { password: password }
});
}
/**
* 删除用户
*
* @param ids
*/
export function deleteUsers(ids: string) {
return request({
url: '/youlai-admin/api/v1/users/' + ids,
method: 'delete'
});
}
/**
* 下载用户导入模板
*
* @returns
*/
export function downloadTemplate() {
return request({
url: '/youlai-admin/api/v1/users/template',
method: 'get',
responseType: 'arraybuffer'
});
}
/**
* 导出用户
*
* @param queryParams
* @returns
*/
export function exportUser(queryParams: UserQueryParam) {
return request({
url: '/youlai-admin/api/v1/users/_export',
method: 'get',
params: queryParams,
responseType: 'arraybuffer'
});
}
/**
* 导入用户
*
* @param file
*/
export function importUser(deptId: number, roleIds: string, file: File) {
const formData = new FormData();
formData.append('file', file);
formData.append('deptId', deptId.toString());
formData.append('roleIds', roleIds);
return request({
url: '/youlai-admin/api/v1/users/_import',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
} }

View File

@@ -18,7 +18,7 @@ import {
// 导入API // 导入API
import { import {
listUserPages, listUserPages,
getUserFormData, getUserDetail,
deleteUsers, deleteUsers,
addUser, addUser,
updateUser, updateUser,
@@ -272,27 +272,28 @@ function resetPassword(row: { [key: string]: any }) {
* 添加用户 * 添加用户
**/ **/
async function handleAdd() { async function handleAdd() {
await loadDeptOptions();
await loadRoleOptions();
state.dialog = { state.dialog = {
title: '添加用户', title: '添加用户',
visible: true visible: true
}; };
await loadDeptOptions();
await loadRoleOptions();
} }
/** /**
* 修改用户 * 修改用户
**/ **/
async function handleUpdate(row: { [key: string]: any }) { async function handleUpdate(row: { [key: string]: any }) {
const userId = row.id || state.ids;
await loadDeptOptions();
await loadRoleOptions();
state.dialog = { state.dialog = {
title: '修改用户', title: '修改用户',
visible: true visible: true
}; };
getUserFormData(userId).then(({ data }) => {
state.formData = data; const userId = row.id || state.ids;
await loadDeptOptions();
await loadRoleOptions();
getUserDetail(userId).then(({ data }) => {
formData.value = data;
}); });
} }
@@ -398,7 +399,7 @@ function handleDownloadTemplate() {
async function showImportDialog() { async function showImportDialog() {
await loadDeptOptions(); await loadDeptOptions();
await loadRoleOptions(); await loadRoleOptions();
state.importDialog.visible = true; importDialog.value.visible = true;
} }
/** /**
@@ -714,6 +715,7 @@ onMounted(() => {
:data="deptOptions" :data="deptOptions"
filterable filterable
check-strictly check-strictly
:render-after-expand="false"
/> />
</el-form-item> </el-form-item>