1+ import { get , post , del } from '@/request/index'
2+ import type { Ref } from 'vue'
3+ import { Result } from '@/request/Result'
4+ import type { RoleItem , RolePermissionItem , CreateOrUpdateParams } from '@/api/type/role'
5+ import { RoleTypeEnum } from '@/enums/system'
6+
7+ const prefix = '/system/role'
8+ /**
9+ * 获取角色列表
10+ */
11+ const getRoleList : ( loading ?: Ref < boolean > ) => Promise < Result < { internal_role : RoleItem [ ] , custom_role : RoleItem [ ] } > > = ( loading ) => {
12+ return get ( `${ prefix } ` , undefined , loading )
13+ }
14+
15+ /**
16+ * 根据类型获取角色权限模版列表
17+ */
18+ const getRoleTemplate : ( role_type : RoleTypeEnum , loading ?: Ref < boolean > ) => Promise < Result < RolePermissionItem [ ] > > = ( role_type , loading ) => {
19+ return get ( `${ prefix } /template/${ role_type } ` , undefined , loading )
20+ }
21+
22+ /**
23+ * 获取角色权限选中
24+ */
25+ const getRolePermissionList : ( role_id : string , loading ?: Ref < boolean > ) => Promise < Result < RolePermissionItem [ ] > > = ( role_id , loading ) => {
26+ return get ( `${ prefix } /${ role_id } /permission` , undefined , loading )
27+ }
28+
29+ /**
30+ * 新建或更新角色
31+ */
32+ const CreateOrUpdateRole : (
33+ data : CreateOrUpdateParams ,
34+ loading ?: Ref < boolean > ,
35+ ) => Promise < Result < any > > = ( data , loading ) => {
36+ return post ( `${ prefix } ` , data , undefined , loading )
37+ }
38+
39+ /**
40+ * 删除角色
41+ */
42+ const deleteRole : ( role_id : string , loading ?: Ref < boolean > ) => Promise < Result < boolean > > = (
43+ role_id ,
44+ loading ,
45+ ) => {
46+ return del ( `${ prefix } /${ role_id } ` , undefined , { } , loading )
47+ }
48+
49+ /**
50+ * 保存角色权限
51+ */
52+ const saveRolePermission : (
53+ role_id : string ,
54+ data : { id : string , enable : boolean } [ ] ,
55+ loading ?: Ref < boolean > ,
56+ ) => Promise < Result < any > > = ( role_id , data , loading ) => {
57+ return post ( `${ prefix } /${ role_id } /permission` , data , undefined , loading )
58+ }
59+
60+ export default {
61+ getRoleList,
62+ getRolePermissionList,
63+ getRoleTemplate,
64+ CreateOrUpdateRole,
65+ deleteRole,
66+ saveRolePermission
67+ }
0 commit comments