feat(user): 用户编辑支持多角色选择

- 将 UserRecord 中的 roleId 改为 roleIds,支持多个角色
- 更新用户编辑组件,使用 multiple 选择框- 调整表单初始化和提交逻辑,以适应多角色选择
This commit is contained in:
Kven 2025-02-17 23:26:35 +08:00
parent 13296d4797
commit c194d5fa7a
2 changed files with 28 additions and 20 deletions

View File

@ -39,7 +39,7 @@ export interface CreateRecord {
enabled: string;
address: string;
deptId: DeptRecord | undefined;
roleId: string | RoleRecord | undefined;
roleIds: string[] | RoleRecord | undefined;
permissionIds: (number | undefined)[];
authorities: string[];
}
@ -55,9 +55,9 @@ export interface SelfRecord {
// 用户数据
export interface UserRecord extends CreateRecord {
value: any;
id: string;
avatar: string;
createAt: string;
id?: string;
avatar?: string;
createAt?: string;
}
export interface UserParams extends Partial<UserRecord> {

View File

@ -109,19 +109,20 @@
</a-form-item>
<a-form-item
field="roleId"
field="roleIds"
label="角色"
:rules="[{ required: true, message: '角色不能为空' }]"
:validate-trigger="['change']"
>
<a-select
v-model="formData.roleId"
v-model="formData.roleIds"
:options="roleOptions"
:field-names="{
value: 'id',
label: 'name',
}"
placeholder="请选择角色"
multiple
/>
</a-form-item>
</a-form>
@ -164,7 +165,7 @@
enabled: '',
address: '',
deptId: undefined,
roleId: undefined,
roleIds: [],
permissionIds: [],
authorities: [],
});
@ -229,21 +230,28 @@
CreateRef.value?.resetFields();
} else {
//
formDifer = diffDataForm(formData.value, formDifer);
if (Object.keys(formDifer).length === 0) {
// formDifer = diffDataForm(formData.value, formDifer);
// if (Object.keys(formDifer).length === 0) {
// Message.success({
// content: '',
// duration: 3 * 1000,
// });
// } else {
// formDifer.id = formData.value.id;
// const res = await userStore.updateUser(formData.value);
// if (res.status === 200) {
// Message.success({
// content: '',
// duration: 5 * 1000,
// });
// }
// }
const res = await userStore.updateUser(formData.value);
if (res.status === 200) {
Message.success({
content: '未编辑',
duration: 3 * 1000,
content: '修改成功',
duration: 5 * 1000,
});
} else {
formDifer.id = formData.value.id;
const res = await userStore.updateUser(formDifer);
if (res.status === 200) {
Message.success({
content: '修改成功',
duration: 5 * 1000,
});
}
}
}
checkKeys.value = [];