feat: api

This commit is contained in:
wangdan-fit2cloud 2025-06-17 19:22:50 +08:00
parent 35433b4752
commit 3360c49f4c
18 changed files with 192 additions and 56 deletions

View File

@ -44,7 +44,57 @@ const postFolder: (
return post(`${prefix.value}/${source}/folder`, data, loading)
}
/**
*
* @params
* folder_id
* source : APPLICATION, KNOWLEDGE, TOOL
*/
const getFolderDetail: (
folder_id: string,
source: string,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (folder_id, source, loading) => {
return get(`${prefix.value}/${source}/folder/${folder_id}`, null, loading)
}
/**
*
* @params
* folder_id: string,
* source : APPLICATION, KNOWLEDGE, TOOL
{
"name": "string",
"desc": "string",
"parent_id": "root"
}
*/
const putFolder: (
folder_id: string,
source: string,
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (folder_id, source, data, loading) => {
return put(`${prefix.value}/${source}/folder/${folder_id}`, data, {}, loading)
}
/**
*
* @params
* folder_id
* source : APPLICATION, KNOWLEDGE, TOOL
*/
const delFolder: (
folder_id: string,
source: string,
loading?: Ref<boolean>,
) => Promise<Result<boolean>> = (folder_id, source, loading) => {
return del(`${prefix.value}/${source}/folder${folder_id}`, undefined, {}, loading)
}
export default {
getFolder,
postFolder,
getFolderDetail,
putFolder,
delFolder,
}

View File

@ -1,8 +1,6 @@
import { Result } from '@/request/Result'
import { get, post, del, put, exportFile, exportExcel } from '@/request/index'
import { type Ref } from 'vue'
import type { pageRequest } from '@/api/type/common'
import type { knowledgeData } from '@/api/type/knowledge'
const prefix = '/system/shared'

View File

@ -190,7 +190,7 @@ const postKnowledge: (data: knowledgeData, loading?: Ref<boolean>) => Promise<Re
}
/**
* 使
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
@ -232,6 +232,8 @@ const postWebKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<an
) => {
return post(`${prefix}/web`, data, undefined, loading)
}
// 创建飞书知识库
const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
data,
loading,

View File

@ -9,7 +9,7 @@ import type {
} from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type'
const prefix = '/system/shared'
const prefix = '/system/shared/model'
/**
*
@ -19,7 +19,7 @@ const getModel: (
request?: ListModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}/model`, data, loading)
return get(`${prefix}`, data, loading)
}
/**
@ -32,7 +32,7 @@ const getModelParamsForm: (
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`${prefix}/model/${model_id}/model_params_form`, {}, loading)
return get(`${prefix}/${model_id}/model_params_form`, {}, loading)
}
/**
@ -45,7 +45,7 @@ const createModel: (
request: CreateModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}/model`, request, {}, loading)
return post(`${prefix}`, request, {}, loading)
}
/**
@ -59,7 +59,7 @@ const updateModel: (
request: EditModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}`, request, {}, loading)
return put(`${prefix}/${model_id}`, request, {}, loading)
}
/**
@ -73,7 +73,7 @@ const updateModelParamsForm: (
request: any[],
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}/model_params_form`, request, {}, loading)
return put(`${prefix}/${model_id}/model_params_form`, request, {}, loading)
}
/**
@ -86,7 +86,7 @@ const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result
model_id,
loading,
) => {
return get(`${prefix}/model/${model_id}`, {}, loading)
return get(`${prefix}/${model_id}`, {}, loading)
}
/**
* id
@ -98,7 +98,7 @@ const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Re
model_id,
loading,
) => {
return get(`${prefix}/model/${model_id}/meta`, {}, loading)
return get(`${prefix}/${model_id}/meta`, {}, loading)
}
/**
*
@ -110,13 +110,13 @@ const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Resul
model_id,
loading,
) => {
return put(`${prefix}/model/${model_id}/pause_download`, undefined, {}, loading)
return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading)
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading,
) => {
return del(`${prefix}/model/${model_id}`, undefined, {}, loading)
return del(`${prefix}/${model_id}`, undefined, {}, loading)
}
export default {

View File

@ -138,6 +138,29 @@ const postParagraphProblem: (
)
}
/**
*
* @param knowledge_id id
* @param document_id id
* @param loading
* @query data {
* paragraph_id id new_position
* }
*/
const putAdjustPosition: (
knowledge_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (knowledge_id, document_id, data, loading) => {
return put(
`${prefix}/${knowledge_id}/document/${document_id}/paragraph/adjust_position`,
{},
data,
loading,
)
}
/**
*
* @param knowledge_id id

View File

@ -4,7 +4,7 @@ import { type Ref } from 'vue'
import type { pageRequest } from '@/api/type/common'
import type { toolData } from '@/api/type/tool'
const prefix = '/system/shared'
const prefix = '/system/shared/tool'
/**
*
@ -14,7 +14,7 @@ const getToolList: (data?: any, loading?: Ref<boolean>) => Promise<Result<Array<
data,
loading,
) => {
return get(`${prefix}/tool`, data, loading)
return get(`${prefix}`, data, loading)
}
/**
@ -31,7 +31,7 @@ const getToolListPage: (
param?: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (page, param, loading) => {
return get(`${prefix}/tool/${page.current_page}/${page.page_size}`, param, loading)
return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading)
}
/**
@ -42,7 +42,7 @@ const postTool: (data: toolData, loading?: Ref<boolean>) => Promise<Result<any>>
data,
loading,
) => {
return post(`${prefix}/tool`, data, undefined, loading)
return post(`${prefix}`, data, undefined, loading)
}
/**
@ -55,7 +55,7 @@ const putTool: (tool_id: string, data: toolData, loading?: Ref<boolean>) => Prom
data,
loading,
) => {
return put(`${prefix}/tool/${tool_id}`, data, undefined, loading)
return put(`${prefix}/${tool_id}`, data, undefined, loading)
}
/**
@ -68,7 +68,7 @@ const getToolById: (tool_id: string, loading?: Ref<boolean>) => Promise<Result<a
tool_id,
loading,
) => {
return get(`${prefix}/tool/${tool_id}`, undefined, loading)
return get(`${prefix}/${tool_id}`, undefined, loading)
}
/**
@ -117,7 +117,7 @@ const postPylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>>
code,
loading,
) => {
return post(`${prefix}/tool/pylint`, { code }, {}, loading)
return post(`${prefix}/pylint`, { code }, {}, loading)
}

View File

@ -1,7 +1,13 @@
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 type {
RoleItem,
RolePermissionItem,
CreateOrUpdateParams,
RoleMemberItem,
CreateMemberParamsItem,
} from '@/api/type/role'
import { RoleTypeEnum } from '@/enums/system'
import type { pageRequest, PageList } from '@/api/type/common'
@ -9,7 +15,9 @@ const prefix = '/workspace/role'
/**
*
*/
const getRoleList: (loading?: Ref<boolean>) => Promise<Result<{ internal_role: RoleItem[], custom_role: RoleItem[] }>> = (loading) => {
const getRoleList: (
loading?: Ref<boolean>,
) => Promise<Result<{ internal_role: RoleItem[]; custom_role: RoleItem[] }>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
@ -24,7 +32,36 @@ const CreateMember: (
return post(`${prefix}/${role_id}/add_member`, 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 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,
CreateMember,
getRoleMemberList,
deleteRoleMember,
}

View File

@ -70,7 +70,7 @@
import { ref, watch } from 'vue'
import { useRoute } from 'vue-router'
import { copyClick } from '@/utils/clipboard'
import systemKeyApi from '@/api/system-api-key'
import systemKeyApi from '@/api/system/api-key'
import { datetimeFormat } from '@/utils/time'
import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { t } from '@/locales'

View File

@ -36,7 +36,7 @@
<script setup lang="ts">
import { onBeforeMount, ref } from 'vue'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import type { WorkspaceItem } from '@/api/type/workspace'
import useStore from '@/stores'
const { user } = useStore()

View File

@ -38,7 +38,7 @@ import { ref, watch } from 'vue'
import { useRoute } from 'vue-router'
import type { FormInstance, FormRules } from 'element-plus'
import applicationKeyApi from '@/api/application/application-key'
import overviewSystemApi from '@/api/system-api-key'
import overviewSystemApi from '@/api/system/api-key'
import { MsgSuccess } from '@/utils/message'
import { t } from '@/locales'

View File

@ -27,7 +27,7 @@ import { onBeforeMount, ref } from 'vue'
import type { CreateMemberParamsItem, FormItemModel } from '@/api/type/role'
import RoleApi from '@/api/system/role'
import UserApi from '@/api/user/user'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import MemberFormContent from './MemberFormContent.vue'
import { t } from '@/locales'
import type { RoleItem } from '@/api/type/role'

View File

@ -8,19 +8,38 @@
<el-select class="complex-search__left" v-model="searchType" style="width: 120px">
<el-option :label="$t('views.login.loginForm.username.label')" value="username" />
</el-select>
<el-input v-if="searchType === 'username'" v-model="searchForm.username" @change="getList"
:placeholder="$t('common.inputPlaceholder')" style="width: 220px" clearable />
<el-input
v-if="searchType === 'username'"
v-model="searchForm.username"
@change="getList"
:placeholder="$t('common.inputPlaceholder')"
style="width: 220px"
clearable
/>
</div>
</div>
<app-table class="mt-16" :data="tableData" :pagination-config="paginationConfig" @sizeChange="handleSizeChange"
@changePage="getList" v-loading="loading">
<app-table
class="mt-16"
:data="tableData"
:pagination-config="paginationConfig"
@sizeChange="handleSizeChange"
@changePage="getList"
v-loading="loading"
>
<el-table-column prop="nick_name" :label="$t('views.userManage.userForm.nick_name.label')" />
<el-table-column prop="username" :label="$t('views.login.loginForm.username.label')" />
<el-table-column v-if="props.currentRole?.type !== RoleTypeEnum.ADMIN" prop="workspace_name"
:label="$t('views.role.member.workspace')" />
<el-table-column
v-if="props.currentRole?.type !== RoleTypeEnum.ADMIN"
prop="workspace_name"
:label="$t('views.role.member.workspace')"
/>
<el-table-column :label="$t('common.operation')" width="100" fixed="right">
<template #default="{ row }">
<el-tooltip effect="dark" :content="`${$t('views.role.member.delete.button')}`" placement="top">
<el-tooltip
effect="dark"
:content="`${$t('views.role.member.delete.button')}`"
placement="top"
>
<el-button type="primary" text @click.stop="handleDelete(row)">
<el-icon>
<Delete />
@ -42,6 +61,7 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { t } from '@/locales'
import AddMemberDrawer from './AddMemberDrawer.vue'
import { RoleTypeEnum } from '@/enums/system'
import { loadPermissionApi } from '@/utils/permission-api'
const props = defineProps<{
currentRole?: RoleItem
@ -66,7 +86,12 @@ async function getList() {
const params = {
[searchType.value]: searchForm.value[searchType.value],
}
const res = await RoleApi.getRoleMemberList(props.currentRole?.id as string, paginationConfig, params, loading)
const res = await loadPermissionApi('role').getRoleMemberList(
props.currentRole?.id as string,
paginationConfig,
params,
loading,
)
tableData.value = res.data.records
paginationConfig.total = res.data.total
} catch (error) {
@ -83,32 +108,33 @@ onMounted(() => {
getList()
})
watch(() => props.currentRole?.id, () => {
getList()
})
watch(
() => props.currentRole?.id,
() => {
getList()
},
)
const addMemberDrawerRef = ref<InstanceType<typeof AddMemberDrawer>>()
function handleAdd() {
addMemberDrawerRef.value?.open();
addMemberDrawerRef.value?.open()
}
function handleDelete(row: RoleMemberItem) {
MsgConfirm(
`${t('views.role.member.delete.confirmTitle')}${row.nick_name} ?`, '',
{
confirmButtonText: t('common.confirm'),
confirmButtonClass: 'danger',
},
)
MsgConfirm(`${t('views.role.member.delete.confirmTitle')}${row.nick_name} ?`, '', {
confirmButtonText: t('common.confirm'),
confirmButtonClass: 'danger',
})
.then(() => {
loading.value = true
RoleApi.deleteRoleMember(props.currentRole?.id as string, row.user_relation_id, loading).then(() => {
MsgSuccess(t('common.deleteSuccess'))
getList()
})
})
.catch(() => {
loadPermissionApi('role')
.deleteRoleMember(props.currentRole?.id as string, row.user_relation_id, loading)
.then(() => {
MsgSuccess(t('common.deleteSuccess'))
getList()
})
})
.catch(() => {})
}
</script>

View File

@ -21,7 +21,7 @@
<script setup lang="ts">
import { onBeforeMount, ref } from 'vue'
import UserApi from '@/api/user/user'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import MemberFormContent from '@/views/role/component/MemberFormContent.vue'
import { t } from '@/locales'
import { MsgSuccess } from '@/utils/message'

View File

@ -24,7 +24,7 @@ import type { FormInstance } from 'element-plus'
import { MsgSuccess } from '@/utils/message'
import { t } from '@/locales'
import type { WorkspaceItem } from '@/api/type/workspace'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
const emit = defineEmits<{
(e: 'refresh', currentWorkspace: WorkspaceItem): void;

View File

@ -36,7 +36,7 @@ import { onMounted, ref, reactive, watch } from 'vue'
import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { t } from '@/locales'
import AddMemberDrawer from './AddMemberDrawer.vue'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import type { WorkspaceMemberItem, WorkspaceItem } from '@/api/type/workspace'
const props = defineProps<{
@ -106,4 +106,4 @@ function handleDelete(row: WorkspaceMemberItem) {
})
.catch(() => { })
}
</script>
</script>

View File

@ -75,7 +75,7 @@
<script lang="ts" setup>
import { onMounted, ref, watch } from 'vue'
import WorkspaceApi from '@/api/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import { t } from '@/locales'
import Member from './component/Member.vue'
import CreateOrUpdateWorkspaceDialog from './component/CreateOrUpdateWorkspaceDialog.vue'