fix: 修复部门多级下拉菜单回显错误问题
This commit is contained in:
parent
c3e9754547
commit
66e0a0c5a7
|
|
@ -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 {
|
||||
nickname: string;
|
||||
avatar: string;
|
||||
roles: string[];
|
||||
perms: string[];
|
||||
export function getUserInfo(): AxiosPromise<UserInfo> {
|
||||
return request({
|
||||
url: '/youlai-admin/api/v1/users/me',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户查询参数类型声明
|
||||
* 获取用户分页列表
|
||||
*
|
||||
* @param queryParams
|
||||
*/
|
||||
export interface UserQueryParam extends PageQueryParam {
|
||||
keywords: string;
|
||||
status: number;
|
||||
deptId: number;
|
||||
export function listUserPages(
|
||||
queryParams: UserQueryParam
|
||||
): AxiosPromise<UserPageResult> {
|
||||
return request({
|
||||
url: '/youlai-admin/api/v1/users/pages',
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户分页列表项声明
|
||||
* 获取用户表单详情
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
export interface UserItem {
|
||||
id: string;
|
||||
username: string;
|
||||
nickname: string;
|
||||
mobile: string;
|
||||
gender: number;
|
||||
avatar: string;
|
||||
email: string;
|
||||
status: number;
|
||||
deptName: string;
|
||||
roleNames: string;
|
||||
createTime: string;
|
||||
export function getUserFormData(userId: number): AxiosPromise<UserFormData> {
|
||||
return request({
|
||||
url: '/youlai-admin/api/v1/users/' + userId + '/form_data',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户分页项类型声明
|
||||
* 添加用户
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
export type UserPageResult = PageResult<UserItem[]>;
|
||||
|
||||
/**
|
||||
* 用户表单类型声明
|
||||
*/
|
||||
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[];
|
||||
export function addUser(data: any) {
|
||||
return request({
|
||||
url: '/youlai-admin/api/v1/users',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户导入表单类型声明
|
||||
* 修改用户
|
||||
*
|
||||
* @param id
|
||||
* @param data
|
||||
*/
|
||||
export interface UserImportFormData {
|
||||
deptId: number;
|
||||
roleIds: number[];
|
||||
export function updateUser(id: number, data: UserFormData) {
|
||||
return request({
|
||||
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'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import {
|
|||
// 导入API
|
||||
import {
|
||||
listUserPages,
|
||||
getUserFormData,
|
||||
getUserDetail,
|
||||
deleteUsers,
|
||||
addUser,
|
||||
updateUser,
|
||||
|
|
@ -272,27 +272,28 @@ function resetPassword(row: { [key: string]: any }) {
|
|||
* 添加用户
|
||||
**/
|
||||
async function handleAdd() {
|
||||
await loadDeptOptions();
|
||||
await loadRoleOptions();
|
||||
state.dialog = {
|
||||
title: '添加用户',
|
||||
visible: true
|
||||
};
|
||||
await loadDeptOptions();
|
||||
await loadRoleOptions();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
**/
|
||||
async function handleUpdate(row: { [key: string]: any }) {
|
||||
const userId = row.id || state.ids;
|
||||
await loadDeptOptions();
|
||||
await loadRoleOptions();
|
||||
state.dialog = {
|
||||
title: '修改用户',
|
||||
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() {
|
||||
await loadDeptOptions();
|
||||
await loadRoleOptions();
|
||||
state.importDialog.visible = true;
|
||||
importDialog.value.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -714,6 +715,7 @@ onMounted(() => {
|
|||
:data="deptOptions"
|
||||
filterable
|
||||
check-strictly
|
||||
:render-after-expand="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue