MaxKB/ui/src/api/system/role.ts
2025-06-13 11:07:00 +08:00

109 lines
2.9 KiB
TypeScript

import { get, post, del } from '@/request/index'
import type { Ref } from 'vue'
import { Result } from '@/request/Result'
import type { RoleItem, RolePermissionItem, CreateOrUpdateParams, RoleMemberItem, CreateMemberParamsItem } from '@/api/type/role'
import { RoleTypeEnum } from '@/enums/system'
import type { pageRequest, PageList } from '@/api/type/common'
const prefix = '/system/role'
/**
* 获取角色列表
*/
const getRoleList: (loading?: Ref<boolean>) => Promise<Result<{ internal_role: RoleItem[], custom_role: RoleItem[] }>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
/**
* 根据类型获取角色权限模版列表
*/
const getRoleTemplate: (role_type: RoleTypeEnum, loading?: Ref<boolean>) => Promise<Result<RolePermissionItem[]>> = (role_type, loading) => {
return get(`${prefix}/template/${role_type}`, undefined, loading)
}
/**
* 获取角色权限选中
*/
const getRolePermissionList: (role_id: string, loading?: Ref<boolean>) => Promise<Result<RolePermissionItem[]>> = (role_id, loading) => {
return get(`${prefix}/${role_id}/permission`, undefined, loading)
}
/**
* 新建或更新角色
*/
const CreateOrUpdateRole: (
data: CreateOrUpdateParams,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
* 删除角色
*/
const deleteRole: (role_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
role_id,
loading,
) => {
return del(`${prefix}/${role_id}`, undefined, {}, loading)
}
/**
* 保存角色权限
*/
const saveRolePermission: (
role_id: string,
data: { id: string, enable: boolean }[],
loading?: Ref<boolean>,
) => Promise<Result<any>> = (role_id, data, loading) => {
return post(`${prefix}/${role_id}/permission`, data, undefined, loading)
}
/**
* 获取角色成员列表
*/
const getRoleMemberList: (
role_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>,
) => Promise<Result<PageList<RoleMemberItem[]>>> = (role_id, page, param, loading) => {
return get(
`${prefix}/${role_id}/user_list/${page.current_page}/${page.page_size}`,
param,
loading,
)
}
/**
* 新建角色成员
*/
const CreateMember: (
role_id: string,
data: { members: CreateMemberParamsItem[] },
loading?: Ref<boolean>,
) => Promise<Result<any>> = (role_id, data, loading) => {
return post(`${prefix}/${role_id}/add_member`, data, undefined, loading)
}
/**
* 删除角色成员
*/
const deleteRoleMember: (role_id: string, user_relation_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
role_id,
user_relation_id,
loading,
) => {
return del(`${prefix}/${role_id}/remove_member/${user_relation_id}`, undefined, {}, loading)
}
export default {
getRoleList,
getRolePermissionList,
getRoleTemplate,
CreateOrUpdateRole,
deleteRole,
saveRolePermission,
getRoleMemberList,
CreateMember,
deleteRoleMember
}