mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-27 12:12:57 +00:00
109 lines
2.9 KiB
TypeScript
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
|
|
} |