Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"dingtalk-jsapi": "^3.2.9",
"element-plus": "^2.14.2",
"jsencrypt": "^3.5.4",
"lodash": "^4.18.1",
"nanoid": "^6.0.1",
"nprogress": "^0.2.0",
"pinia": "^3.0.4",
Expand All @@ -43,6 +44,7 @@
"devDependencies": {
"@tailwindcss/vite": "^4.3.2",
"@tsconfig/node24": "^24.0.4",
"@types/lodash": "^4.17.25",
"@types/node": "^24.13.2",
"@types/nprogress": "^0.2.3",
"@vitejs/plugin-vue": "^6.0.7",
Expand Down
2 changes: 2 additions & 0 deletions ui/src/api/API_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ API 枚举与类型统一在 `src/api` 范围内管理,相关规则由本文

- API 专用的请求参数、响应包装、请求配置和基础设施类型,放在对应 API 文件、资源目录的
`types.ts`,或该 API 业务域的 `common.ts`。
- 字符串键字典统一使用 `@/api/types` 导出的 `Dict<T>`;未收窄值类型的请求查询参数使用
`Dict<unknown>`,不再为相同结构声明额外别名。
- `src/api/types` 只存放 API 与 View 或 Component 跨层共用的业务类型,使用方统一通过
`import type { ... } from '@/api/types'` 导入,不写 `/index.ts`。
- `src/api/types/index.ts` 只负责导出各业务域类型,不直接声明类型。
Expand Down
14 changes: 7 additions & 7 deletions ui/src/api/admin/core/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import axios, {
import router from '@/router/admin'
import { useStore } from '@/stores'
import type { ApiResponse, LoadingTarget } from './types'
import type { RequestParams } from '@/api/types'
import type { Dict } from '@/api/types'
import { MsgError } from '@/utils/message'

const DEFAULT_TIMEOUT = 30 * 60 * 1_000 // 30 minutes
Expand Down Expand Up @@ -200,7 +200,7 @@ export async function promise<T>(
/** 发送 GET 请求。 */
export function get<T = unknown>(
url: string,
params?: RequestParams,
params?: Dict<unknown>,
loading?: LoadingTarget,
timeout?: number,
) {
Expand All @@ -211,7 +211,7 @@ export function get<T = unknown>(
export async function getExportFile(
fileName: string,
url: string,
params?: RequestParams,
params?: Dict<unknown>,
loading?: LoadingTarget,
): Promise<boolean> {
startLoading(loading)
Expand All @@ -232,7 +232,7 @@ export async function getExportFile(
export async function postExportExcel<TData = unknown>(
fileName: string,
url: string,
params?: RequestParams,
params?: Dict<unknown>,
data?: TData,
loading?: LoadingTarget,
): Promise<boolean> {
Expand All @@ -254,7 +254,7 @@ export async function postExportExcel<TData = unknown>(
export function post<TData = unknown, T = unknown>(
url: string,
data?: TData,
params?: RequestParams,
params?: Dict<unknown>,
loading?: LoadingTarget,
timeout?: number,
) {
Expand All @@ -265,7 +265,7 @@ export function post<TData = unknown, T = unknown>(
export function put<TData = unknown, T = unknown>(
url: string,
data?: TData,
params?: RequestParams,
params?: Dict<unknown>,
loading?: LoadingTarget,
timeout?: number,
) {
Expand All @@ -275,7 +275,7 @@ export function put<TData = unknown, T = unknown>(
/** 发送 DELETE 请求。 */
export function del<TData = unknown, T = unknown>(
url: string,
params?: RequestParams,
params?: Dict<unknown>,
data?: TData,
loading?: LoadingTarget,
timeout?: number,
Expand Down
9 changes: 2 additions & 7 deletions ui/src/api/admin/system/chat-user-groups.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import { del, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type {
ChatUserGroupMember,
ChatUserGroupPayload,
ListItem,
RequestParams,
} from '@/api/types'
import type { ChatUserGroupMember, ChatUserGroupPayload, ListItem, Dict } from '@/api/types'

const prefix = '/system/group'

Expand All @@ -25,7 +20,7 @@ const deleteChatUserGroup = (groupId: string) => {
}

/** 获取用户组成员分页列表。 */
const getChatUserGroupMembers = (groupId: string, page: ParamsPage, query?: RequestParams) => {
const getChatUserGroupMembers = (groupId: string, page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<ChatUserGroupMember>>(
`${prefix}/${groupId}/user_list/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/system/chat-user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import type {
ChatUserQuotaPayload,
ChatUserSyncResult,
ChatUserUpdateRequest,
RequestParams,
Dict,
} from '@/api/types'

const prefix = '/system/chat_user'
Expand All @@ -22,7 +22,7 @@ const getChatUser = () => {
}

/** 获取对话用户分页列表。 */
const getChatUserPage = (page: ParamsPage, query?: RequestParams) => {
const getChatUserPage = (page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<ChatUser>>(
`${prefix}/user_manage/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
8 changes: 3 additions & 5 deletions ui/src/api/admin/system/common.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
import { get } from '../core/request'
import type { RequestParams, SystemUserOption, CommonUserOption } from '@/api/types'
import type { CommonUserOption, Dict, SystemUserOption } from '@/api/types'

/** 获取默认密码。 */
const getDefaultPassword = () => {
return get<{ password: string }>(`/user_manage/password`)
}

/** 获得全部用户 */
const getAllUsers = (query?: RequestParams) => {
const getAllUsers = (query?: Dict<unknown>) => {
return get<SystemUserOption[]>('/user/list', query)
}

/** 获取指定工作空间的普通用户选项。 */
const getWorkspaceMembers = (workspaceId: string, query?: RequestParams) => {
const getWorkspaceMembers = (workspaceId: string, query?: Dict<unknown>) => {
return get<CommonUserOption[]>(`/workspace/${workspaceId}/user_member`, query)
}



export default {
getDefaultPassword,
getAllUsers,
Expand Down
6 changes: 3 additions & 3 deletions ui/src/api/admin/system/operate-log.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { postExportExcel, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type { OperateLog, OperateLogMenuOption, RequestParams } from '@/api/types'
import type { Dict, OperateLog, OperateLogMenuOption } from '@/api/types'

const prefix = '/operate_log'

/** 获取操作日志分页列表。 */
const getOperateLogPage = (page: ParamsPage, query: RequestParams) => {
const getOperateLogPage = (page: ParamsPage, query: Dict<unknown>) => {
return get<ResponsePage<OperateLog>>(`${prefix}/${page.currentPage}/${page.pageSize}`, query)
}

Expand All @@ -15,7 +15,7 @@ const getOperateLogMenuOptions = () => {
}

/** 导出操作日志。 */
const exportOperateLog = (query: RequestParams) => {
const exportOperateLog = (query: Dict<unknown>) => {
return postExportExcel('log.xlsx', `${prefix}/export/`, query)
}

Expand Down
5 changes: 2 additions & 3 deletions ui/src/api/admin/system/resource-authorization.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { get, put } from '../core/request'
import type {
RequestParams,
Dict,
ResourceAuthorizationType,
ResourcePermissionItem,
ResourcePermissionPayload,
Expand All @@ -13,7 +13,7 @@ const getUserResourcePermissions = (
workspaceId: string,
userId: string,
resource: ResourceAuthorizationType,
query?: RequestParams,
query?: Dict<unknown>,
) => {
return get<ResourcePermissionItem[]>(
`${prefix(workspaceId)}/user/${userId}/resource/${resource}`,
Expand All @@ -34,7 +34,6 @@ const putUserResourcePermissions = (
)
}


export default {
getUserResourcePermissions,
putUserResourcePermissions,
Expand Down
6 changes: 2 additions & 4 deletions ui/src/api/admin/system/role.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { del, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type {
CreateRoleMembersRequest,
RequestParams,
Dict,
RoleItem,
RoleMember,
RolePermissionModule,
Expand All @@ -27,20 +27,18 @@ const deleteRole = (roleId: string) => {
return del<boolean>(`${prefix}/${roleId}`)
}


/** 获取指定角色的权限配置。 */
const getRolePermissionList = (roleId: string) => {
return get<RolePermissionModule[]>(`${prefix}/${roleId}/permission`)
}


/** 保存指定角色的权限配置。 */
const postRolePermissions = (roleId: string, permissions: SaveRolePermissionRequest[]) => {
return post<SaveRolePermissionRequest[], boolean>(`${prefix}/${roleId}/permission`, permissions)
}

/** 获取指定角色的成员分页列表。 */
const getRoleMemberList = (roleId: string, page: ParamsPage, query?: RequestParams) => {
const getRoleMemberList = (roleId: string, page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<RoleMember>>(
`${prefix}/${roleId}/user_list/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/system/user-groups.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { del, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type { SystemUserGroup, SystemUserGroupMember, RequestParams } from '@/api/types'
import type { Dict, SystemUserGroup, SystemUserGroupMember } from '@/api/types'

const prefix = (workspaceId: string) => `/system/workspace/${workspaceId}/user_group`

Expand All @@ -24,7 +24,7 @@ const getSystemUserGroupMembers = (
workspaceId: string,
groupId: string,
page: ParamsPage,
query?: RequestParams,
query?: Dict<unknown>,
) => {
return get<ResponsePage<SystemUserGroupMember>>(
`${prefix(workspaceId)}/${groupId}/user_list/${page.currentPage}/${page.pageSize}`,
Expand Down
5 changes: 2 additions & 3 deletions ui/src/api/admin/system/user-manage.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { del, get, post, put } from '../core/request'
import type { ResponsePage, ParamsPage, PasswordRequest } from '../core/types'
import type {
RequestParams,
Dict,
SystemUser,
SystemUserPayload,
SystemUserUpdateRequest,
Expand All @@ -12,7 +12,7 @@ import type {
const prefix = '/user_manage'

/** 获取系统用户分页列表。 */
const getUserManagePage = (page: ParamsPage, query?: RequestParams) => {
const getUserManagePage = (page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<SystemUser>>(`${prefix}/${page.currentPage}/${page.pageSize}`, query)
}

Expand Down Expand Up @@ -51,7 +51,6 @@ const postBatchSetUserWorkspaceRoles = (payload: BatchSetUserWorkspaceRolesReque
return post<BatchSetUserWorkspaceRolesRequest, boolean>(`${prefix}/batch/add_role_ee`, payload)
}


export default {
deleteUser,
getUserManagePage,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/system/workspace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { del, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type {
CreateWorkspaceMemberPayload,
RequestParams,
Dict,
WorkspaceItem,
WorkspaceMemberItem,
} from '@/api/types'
Expand All @@ -18,7 +18,7 @@ const getSystemWorkspaceList = () => {
/** 获取工作空间成员列表 **/
// TODO 工作空间管理员接口 /workspace 未区分

const getWorkspaceMemberList = (workspace_id: string, page: ParamsPage, query?: RequestParams) => {
const getWorkspaceMemberList = (workspace_id: string, page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<WorkspaceMemberItem>>(
`${prefix}/${workspace_id}/user_list/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/application/application.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { get, post, put } from '../../core/request'
import type { ParamsPage, ResponsePage } from '../../core/types'
import type { ApplicationDetail, ApplicationFormPayload, RequestParams } from '@/api/types'
import type { ApplicationDetail, ApplicationFormPayload, Dict } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -9,7 +9,7 @@ const getPrefix = () => {
}

/** 获取工作空间智能体列表。 */
const getApplicationPage = (page: ParamsPage, query?: RequestParams) => {
const getApplicationPage = (page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<ApplicationDetail>>(
`${getPrefix()}/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/common.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { get } from '../core/request'
import type { RequestParams, WorkspaceUserOption } from '@/api/types'
import type { Dict, WorkspaceUserOption } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

/** 获取当前工作空间下的用户选项。 */
const getAllUsers = (query?: RequestParams) => {
const getAllUsers = (query?: Dict<unknown>) => {
const workspaceId = getWorkspaceId()
return get<WorkspaceUserOption[]>(`/workspace/${workspaceId}/user_list`, query)
}
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/folder.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { del, get, post, put } from '../core/request'
import type { FolderSource, FolderItem, RequestParams, FolderPayload } from '@/api/types'
import type { Dict, FolderSource, FolderItem, FolderPayload } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = (source: FolderSource) => {
Expand All @@ -8,7 +8,7 @@ const getPrefix = (source: FolderSource) => {
}

/** 获取指定资源模块的 Workspace 文件夹树。 */
const getFolderTree = (source: FolderSource, query?: RequestParams) => {
const getFolderTree = (source: FolderSource, query?: Dict<unknown>) => {
return get<FolderItem[]>(getPrefix(source), query)
}

Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/knowledge/knowledge.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { del, get } from '../../core/request'
import type { ParamsPage, ResponsePage } from '../../core/types'
import type { KnowledgeItem, RequestParams } from '@/api/types'
import type { Dict, KnowledgeItem } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -9,7 +9,7 @@ const getPrefix = () => {
}

/** 获取工作空间知识库分页列表。 */
const getKnowledgePage = (page: ParamsPage, query?: RequestParams) => {
const getKnowledgePage = (page: ParamsPage, query?: Dict<unknown>) => {
return get<ResponsePage<KnowledgeItem>>(
`${getPrefix()}/${page.currentPage}/${page.pageSize}`,
query,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/model/model.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { del, get, post, put } from '../../core/request'
import type { RequestParams, ModelPayload, ModelItem } from '@/api/types'
import type { Dict, ModelPayload, ModelItem } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -8,7 +8,7 @@ const getPrefix = () => {
}

/** 获取工作空间模型列表。 */
const getModelList = (query?: RequestParams) => {
const getModelList = (query?: Dict<unknown>) => {
return get<ModelItem[]>(getPrefix(), query)
}

Expand Down
Loading
Loading