diff --git a/src/views/system/user/form/role.vue b/src/views/system/user/form/role.vue
index 19adc5b..5381b7e 100644
--- a/src/views/system/user/form/role.vue
+++ b/src/views/system/user/form/role.vue
@@ -41,9 +41,9 @@ const newFormInline = ref(props.formInline);
v-for="(item, index) in newFormInline.roleOptions"
:key="index"
:value="item.id"
- :label="item.name"
+ :label="item.roleName"
>
- {{ item.name }}
+ {{ item.roleName }}
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index e43fd21..00efe88 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -139,7 +139,7 @@ const {
ref="tableRef"
row-key="id"
adaptive
- :adaptiveConfig="{ offsetBottom: 108 }"
+ :adaptiveConfig="{ offsetBottom: 10 }"
align-whole="center"
table-layout="auto"
:loading="loading"
diff --git a/src/views/system/user/utils/hook.tsx b/src/views/system/user/utils/hook.tsx
index 00f338d..642fc3a 100644
--- a/src/views/system/user/utils/hook.tsx
+++ b/src/views/system/user/utils/hook.tsx
@@ -16,7 +16,12 @@ import {
hideTextAtIndex,
deviceDetection
} from "@pureadmin/utils";
-import { getUserRoleIds, getUserList, getAllRoleList } from "@/api/system";
+import {
+ getUserRoleIds,
+ getUserList,
+ getAllRoleList,
+ assignUserRoles
+} from "@/api/system";
import { syncFeishuUsers } from "@/api/feishu";
import {
ElForm,
@@ -86,15 +91,15 @@ export function useUser(tableRef: Ref) {
},
{
label: "性别",
- prop: "sex",
+ prop: "gender",
minWidth: 90,
cellRenderer: ({ row, props }) => (
- {row.sex === 1 ? "女" : "男"}
+ {row.gender === 1 ? "男" : "女"}
)
},
@@ -429,7 +434,10 @@ export function useUser(tableRef: Ref) {
/** 分配角色 */
async function handleRole(row) {
- // 选中的角色列表
+ // 获取所有角色列表
+ const rolesRes = await getAllRoleList();
+ const roleList = rolesRes.data ?? [];
+ // 获取用户当前的角色列表
const ids = (await getUserRoleIds(row.id)).data ?? [];
addDialog({
title: `分配 ${row.username} 用户的角色`,
@@ -437,7 +445,7 @@ export function useUser(tableRef: Ref) {
formInline: {
username: row?.username ?? "",
nickname: row?.nickname ?? "",
- roleOptions: roleOptions.value ?? [],
+ roleOptions: roleList,
ids
}
},
@@ -447,11 +455,17 @@ export function useUser(tableRef: Ref) {
fullscreenIcon: true,
closeOnClickModal: false,
contentRenderer: () => h(roleForm),
- beforeSure: (done, { options }) => {
+ beforeSure: async (done, { options }) => {
const curData = options.props.formInline as RoleFormItemProps;
- console.log("curIds", curData.ids);
- // 根据实际业务使用curData.ids和row里的某些字段去调用修改角色接口即可
- done(); // 关闭弹框
+ try {
+ const { code } = await assignUserRoles(row.id, curData.ids);
+ if (code === 200) {
+ message(`已成功为 ${row.username} 分配角色`, { type: "success" });
+ done(); // 关闭弹框
+ }
+ } catch {
+ message("分配角色失败", { type: "error" });
+ }
}
});
}
diff --git a/src/views/system/user/utils/types.ts b/src/views/system/user/utils/types.ts
index c5ab88c..1b6218c 100644
--- a/src/views/system/user/utils/types.ts
+++ b/src/views/system/user/utils/types.ts
@@ -1,3 +1,5 @@
+import type { SysRole } from "@/api/system";
+
interface FormItemProps {
id?: number;
/** 用于判断是`新增`还是`修改` */
@@ -25,9 +27,9 @@ interface RoleFormItemProps {
username: string;
nickname: string;
/** 角色列表 */
- roleOptions: any[];
+ roleOptions: SysRole[];
/** 选中的角色列表 */
- ids: Record[];
+ ids: number[];
}
interface RoleFormProps {
formInline: RoleFormItemProps;