Skip to content

Commit 64b1f3d

Browse files
committed
feat: workspace
1 parent 625b4d6 commit 64b1f3d

File tree

21 files changed

+789
-57
lines changed

21 files changed

+789
-57
lines changed

ui/src/api/system/role.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { get, post, del } from '@/request/index'
22
import type { Ref } from 'vue'
33
import { Result } from '@/request/Result'
4-
import type { RoleItem, RolePermissionItem, CreateOrUpdateParams, PageList, RoleMemberItem, CreateMemberParamsItem } from '@/api/type/role'
4+
import type { RoleItem, RolePermissionItem, CreateOrUpdateParams, RoleMemberItem, CreateMemberParamsItem } from '@/api/type/role'
55
import { RoleTypeEnum } from '@/enums/system'
6-
import type { pageRequest } from '@/api/type/common'
6+
import type { pageRequest, PageList } from '@/api/type/common'
77

88
const prefix = '/system/role'
99
/**

ui/src/api/type/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,11 @@ interface pageRequest {
1111
page_size: number
1212
}
1313

14-
export type { KeyValue, Dict, pageRequest }
14+
interface PageList<T> {
15+
current: number,
16+
size: number,
17+
total: number,
18+
records: T
19+
}
20+
21+
export type { KeyValue, Dict, pageRequest, PageList }

ui/src/api/type/role.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,7 @@ interface RoleMemberItem {
5151

5252
interface CreateMemberParamsItem {
5353
user_ids: string[],
54-
workspace_ids: string[]
55-
}
56-
57-
interface PageList<T> {
58-
current: number,
59-
size: number,
60-
total: number,
61-
records: T
54+
workspace_ids?: string[]
6255
}
6356

6457
type Arrayable<T> = T | T[]
@@ -72,4 +65,4 @@ interface FormItemModel {
7265
}
7366
}
7467

75-
export type { RoleItem, FormItemModel, RolePermissionItem, RoleTableDataItem, CreateOrUpdateParams, PageList, ChildrenPermissionItem, RoleMemberItem, CreateMemberParamsItem }
68+
export type { RoleItem, FormItemModel, RolePermissionItem, RoleTableDataItem, CreateOrUpdateParams, ChildrenPermissionItem, RoleMemberItem, CreateMemberParamsItem }

ui/src/api/type/workspace.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
interface WorkspaceItem {
2+
name: string,
3+
id?: string
4+
}
5+
6+
interface CreateWorkspaceMemberParamsItem {
7+
user_ids: string[],
8+
role_ids: string[]
9+
}
10+
11+
interface WorkspaceMemberItem {
12+
user_relation_id: string,
13+
user_id: string,
14+
username: string,
15+
nick_name: string,
16+
role_id: string,
17+
role_name: string,
18+
}
19+
export type { WorkspaceItem, CreateWorkspaceMemberParamsItem, WorkspaceMemberItem }

ui/src/api/workspace.ts

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { Result } from '@/request/Result'
2+
import type { Ref } from 'vue'
3+
import { get, post, del } from '@/request/index'
4+
import type { WorkspaceItem, CreateWorkspaceMemberParamsItem, WorkspaceMemberItem } from '@/api/type/workspace'
5+
import type { pageRequest, PageList } from '@/api/type/common'
6+
7+
const prefix = '/system/workspace'
8+
9+
/**
10+
* 获取添加成员时的工作空间下拉列表
11+
*/
12+
const getWorkspaceList: (loading?: Ref<boolean>) => Promise<Result<Record<string, any>[]>> = (loading) => {
13+
return get('/workspace/current_user', undefined, loading)
14+
}
15+
16+
/**
17+
* 获取工作空间列表
18+
*/
19+
const getSystemWorkspaceList: (loading?: Ref<boolean>) => Promise<Result<WorkspaceItem[]>> = (loading) => {
20+
return get(`${prefix}`, undefined, loading)
21+
}
22+
23+
/**
24+
* 新建或更新工作空间
25+
*/
26+
const CreateOrUpdateWorkspace: (
27+
data: WorkspaceItem,
28+
loading?: Ref<boolean>,
29+
) => Promise<Result<any>> = (data, loading) => {
30+
return post(`${prefix}`, data, undefined, loading)
31+
}
32+
33+
/**
34+
* 删除工作空间
35+
*/
36+
const deleteWorkspace: (workspace_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
37+
workspace_id,
38+
loading,
39+
) => {
40+
return del(`${prefix}/${workspace_id}`, undefined, {}, loading)
41+
}
42+
43+
/**
44+
* 获取工作空间成员列表
45+
*/
46+
const getWorkspaceMemberList: (
47+
workspace_id: string,
48+
page: pageRequest,
49+
param: any,
50+
loading?: Ref<boolean>,
51+
) => Promise<Result<PageList<WorkspaceMemberItem[]>>> = (workspace_id, page, param, loading) => {
52+
return get(
53+
`${prefix}/${workspace_id}/user_list/${page.current_page}/${page.page_size}`,
54+
param,
55+
loading,
56+
)
57+
}
58+
59+
/**
60+
* 新建工作空间成员
61+
*/
62+
const CreateWorkspaceMember: (
63+
workspace_id: string,
64+
data: CreateWorkspaceMemberParamsItem[],
65+
loading?: Ref<boolean>,
66+
) => Promise<Result<any>> = (workspace_id, data, loading) => {
67+
return post(`${prefix}/${workspace_id}/add_member`, data, undefined, loading)
68+
}
69+
70+
/**
71+
* 删除工作空间成员
72+
*/
73+
const deleteWorkspaceMember: (workspace_id: string, user_relation_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
74+
workspace_id,
75+
user_relation_id,
76+
loading,
77+
) => {
78+
return post(`${prefix}/${workspace_id}/remove_member/${user_relation_id}`, undefined, {}, loading)
79+
}
80+
81+
/**
82+
* 获取添加成员时的角色下拉列表
83+
*/
84+
const getWorkspaceRoleList: (loading?: Ref<boolean>) => Promise<Result<Record<string, any>[]>> = (loading) => {
85+
return get('/role_list/current_user', undefined, loading)
86+
}
87+
88+
export default {
89+
getWorkspaceList,
90+
getSystemWorkspaceList,
91+
CreateOrUpdateWorkspace,
92+
deleteWorkspace,
93+
getWorkspaceMemberList,
94+
CreateWorkspaceMember,
95+
deleteWorkspaceMember,
96+
getWorkspaceRoleList,
97+
}

ui/src/locales/lang/en-US/views/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import notFound from './404'
22
import application from './application'
33
import role from './role'
4+
import workspace from './workspace'
45
import applicationOverview from './application-overview'
56
import knowledge from './knowledge'
67
import system from './system'
@@ -34,5 +35,6 @@ export default {
3435
chatLog,
3536
login,
3637
operateLog,
37-
role
38+
role,
39+
workspace
3840
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export default {
2+
// TODO
3+
title: '工作空间',
4+
list: '工作空间列表',
5+
name: '工作空间名称',
6+
member: {
7+
delete: {
8+
confirmTitle: '是否移除成员:',
9+
}
10+
}
11+
}

ui/src/locales/lang/zh-CN/views/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import system from './system'
77
import userManage from './user-manage'
88
import resourceAuthorization from './resource-authorization'
99
import role from './role'
10+
import workspace from './workspace'
1011
import application from './application'
1112
import problem from './problem'
1213
import applicationOverview from './application-overview'
@@ -26,6 +27,7 @@ export default {
2627
userManage,
2728
resourceAuthorization,
2829
role,
30+
workspace,
2931
application,
3032
problem,
3133
applicationOverview,
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export default {
2+
title: '工作空间',
3+
list: '工作空间列表',
4+
name: '工作空间名称',
5+
member: {
6+
delete: {
7+
confirmTitle: '是否移除成员:',
8+
}
9+
}
10+
}

ui/src/locales/lang/zh-Hant/views/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import notFound from './404'
22
import application from './application'
33
import role from './role'
4+
import workspace from './workspace'
45
import applicationOverview from './application-overview'
56
import knowledge from './knowledge'
67
import system from './system'
@@ -34,5 +35,6 @@ export default {
3435
chatLog,
3536
login,
3637
operateLog,
37-
role
38+
role,
39+
workspace
3840
}

0 commit comments

Comments
 (0)