refactor: ui

v3.2
wxg0103 2025-06-06 09:39:01 +08:00
parent e9d7decef8
commit 9c205048d4
34 changed files with 528 additions and 484 deletions

View File

@ -5,13 +5,13 @@ import type { ApplicationFormType } from '@/api/type/application'
import {type Ref} from 'vue'
import type {FormField} from '@/components/dynamics-form/type'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/application'
/**
*
* @param
*/
const getAllAppilcation: () => Promise<Result<any[]>> = () => {
const getAllApplication: () => Promise<Result<any[]>> = () => {
return get(`${prefix}`)
}
@ -22,13 +22,12 @@ const getAllAppilcation: () => Promise<Result<any[]>> = () => {
}
*/
const getApplication: (
wordspace_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, page, param, loading) => {
) => Promise<Result<any>> = (page, param, loading) => {
return get(
`${prefix}/${wordspace_id}/application/${page.current_page}/${page.page_size}`,
`${prefix}/${page.current_page}/${page.page_size}`,
param,
loading,
)
@ -39,11 +38,10 @@ const getApplication: (
* @param
*/
const postApplication: (
wordspace_id: string,
data: ApplicationFormType,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, data, loading) => {
return post(`${prefix}/${wordspace_id}/application`, data, undefined, loading)
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
@ -542,7 +540,7 @@ const importApplication: (data: any, loading?: Ref<boolean>) => Promise<Result<a
return post(`${prefix}/import`, data, undefined, loading)
}
export default {
getAllAppilcation,
getAllAppilcation: getAllApplication,
getApplication,
postApplication,
putApplication,

View File

@ -2,7 +2,8 @@ import { Result } from '@/request/Result'
import {get, post, del, put} from '@/request/index'
import {type Ref} from 'vue'
import type {pageRequest} from '@/api/type/common'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id')
/**
*
@ -11,12 +12,11 @@ const prefix = '/workspace'
* data : {name: string}
*/
const getFolder: (
wordspace_id: string,
source: string,
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (wordspace_id, source, data, loading) => {
return get(`${prefix}/${wordspace_id}/${source}/folder`, data, loading)
) => Promise<Result<Array<any>>> = (source, data, loading) => {
return get(`${prefix}/${source}/folder`, data, loading)
}
/**
@ -30,12 +30,11 @@ const getFolder: (
}
*/
const postFolder: (
wordspace_id: string,
source: string,
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (wordspace_id, source, data, loading) => {
return post(`${prefix}/${wordspace_id}/${source}/folder`, data, loading)
) => Promise<Result<Array<any>>> = (source, data, loading) => {
return post(`${prefix}/${source}/folder`, data, loading)
}
export default {

View File

@ -4,7 +4,7 @@ import type { Ref } from 'vue'
import type {KeyValue} from '@/api/type/common'
import type {pageRequest} from '@/api/type/common'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/knowledge'
/**
*
@ -19,14 +19,13 @@ const prefix = '/workspace'
*/
const getDocument: (
wordspace_id: string,
knowledge_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, knowledge_id, page, param, loading) => {
) => Promise<Result<any>> = (knowledge_id, page, param, loading) => {
return get(
`${prefix}/${wordspace_id}/knowledge/${knowledge_id}/document/${page.current_page}/${page.page_size}`,
`${prefix}/${knowledge_id}/document/${page.current_page}/${page.page_size}`,
param,
loading,
)

View File

@ -3,7 +3,8 @@ import { get, post, del, put } from '@/request/index'
import {type Ref} from 'vue'
import type {pageRequest} from '@/api/type/common'
import type {knowledgeData} from '@/api/type/knowledge'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id')
/**
*
@ -14,11 +15,10 @@ const prefix = '/workspace'
* desc: string,}
*/
const getKnowledgeByFolder: (
wordspace_id: string,
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (wordspace_id, data, loading) => {
return get(`${prefix}/${wordspace_id}/knowledge`, data, loading)
) => Promise<Result<Array<any>>> = (data, loading) => {
return get(`${prefix}/knowledge`, data, loading)
}
/**
@ -32,13 +32,12 @@ const getKnowledgeByFolder: (
}
*/
const getKnowledgeList: (
wordspace_id: string,
page: pageRequest,
param?: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, page, param, loading) => {
) => Promise<Result<any>> = (page, param, loading) => {
return get(
`${prefix}/${wordspace_id}/knowledge/${page.current_page}/${page.page_size}`,
`${prefix}/knowledge/${page.current_page}/${page.page_size}`,
param,
loading,
)
@ -58,13 +57,12 @@ const getKnowledgeList: (
* @query sync_type // 同步类型->replace:替换同步,complete:完整同步
*/
const putSyncWebKnowledge: (
wordspace_id: string,
knowledge_id: string,
sync_type: string,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, knowledge_id, sync_type, loading) => {
) => Promise<Result<any>> = (knowledge_id, sync_type, loading) => {
return put(
`${prefix}/${wordspace_id}/knowledge/${knowledge_id}/sync`,
`${prefix}/knowledge/${knowledge_id}/sync`,
undefined,
{sync_type},
loading,
@ -76,12 +74,11 @@ const putSyncWebKnowledge: (
* @param knowledge_id
*/
const putReEmbeddingKnowledge: (
wordspace_id: string,
knowledge_id: string,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, knowledge_id, loading) => {
) => Promise<Result<any>> = (knowledge_id, loading) => {
return put(
`${prefix}/${wordspace_id}/knowledge/${knowledge_id}/embedding`,
`${prefix}/knowledge/${knowledge_id}/embedding`,
undefined,
undefined,
loading,
@ -93,11 +90,10 @@ const putReEmbeddingKnowledge: (
* @param knowledge_id
*/
const getKnowledgeDetail: (
wordspace_id: string,
knowledge_id: string,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, knowledge_id, loading) => {
return get(`${prefix}/${wordspace_id}/knowledge/${knowledge_id}`, undefined, loading)
) => Promise<Result<any>> = (knowledge_id, loading) => {
return get(`${prefix}/knowledge/${knowledge_id}`, undefined, loading)
}
/**
@ -111,11 +107,10 @@ const getKnowledgeDetail: (
}
*/
const postKnowledge: (
wordspace_id: string,
data: knowledgeData,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, data, loading) => {
return post(`${prefix}/${wordspace_id}/knowledge/base`, data, undefined, loading, 1000 * 60 * 5)
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}/knowledge/base`, data, undefined, loading, 1000 * 60 * 5)
}
/**
@ -131,11 +126,10 @@ const postKnowledge: (
}
*/
const postWebKnowledge: (
wordspace_id: string,
data: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, data, loading) => {
return post(`${prefix}/${wordspace_id}/knowledge/web`, data, undefined, loading)
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}/knowledge/web`, data, undefined, loading)
}
/**
*
@ -147,12 +141,11 @@ const postWebKnowledge: (
}
*/
const putKnowledge: (
wordspace_id: string,
knowledge_id: string,
data: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, knowledge_id, data, loading) => {
return put(`${prefix}/${wordspace_id}/knowledge/${knowledge_id}`, data, undefined, loading)
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
return put(`${prefix}/knowledge/${knowledge_id}`, data, undefined, loading)
}
export default {

View File

@ -2,7 +2,7 @@ import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import type { Ref } from 'vue'
const prefix = '/dataset'
const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/knowledge'
/**
*

View File

@ -3,7 +3,8 @@ import { get, post, del, put } from '@/request/index'
import type {Ref} from 'vue'
import type {KeyValue} from '@/api/type/common'
import type {pageRequest} from '@/api/type/common'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/knowledge'
/**
*
@ -18,14 +19,13 @@ const prefix = '/workspace'
*/
const getProblems: (
workspace_id: string,
dataset_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, dataset_id, page, param, loading) => {
) => Promise<Result<any>> = (dataset_id, page, param, loading) => {
return get(
`${prefix}/${wordspace_id}/knowledge/${dataset_id}/problem/${page.current_page}/${page.page_size}`,
`${prefix}/${dataset_id}/problem/${page.current_page}/${page.page_size}`,
param,
loading,
)

View File

@ -9,18 +9,17 @@ import type {
} from '@/api/type/model'
import type {FormField} from '@/components/dynamics-form/type'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id')
/**
*
* @params name, model_type, model_name
*/
const getModel: (
wordspace_id: string,
request?: ListModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Array<Model>>> = (wordspace_id, data, loading) => {
return get(`${prefix}/${wordspace_id}/model`, data, loading)
) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}/model`, data, loading)
}
/**
@ -30,11 +29,10 @@ const getModel: (
* @returns
*/
const getModelParamsForm: (
wordspace_id: string,
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<Array<FormField>>> = (wordspace_id, model_id, loading) => {
return get(`${prefix}/${wordspace_id}/model/${model_id}/model_params_form`, {}, loading)
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`${prefix}/model/${model_id}/model_params_form`, {}, loading)
}
/**
@ -44,11 +42,10 @@ const getModelParamsForm: (
* @returns
*/
const createModel: (
wordspace_id: string,
request: CreateModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (wordspace_id, request, loading) => {
return post(`${prefix}/${wordspace_id}/model`, request, {}, loading)
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}/model`, request, {}, loading)
}
/**
@ -58,12 +55,11 @@ const createModel: (
* @returns
*/
const updateModel: (
wordspace_id: string,
model_id: string,
request: EditModelRequest,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (wordspace_id, model_id, request, loading) => {
return put(`${prefix}/${wordspace_id}/model/${model_id}`, request, {}, loading)
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}`, request, {}, loading)
}
/**
@ -73,12 +69,11 @@ const updateModel: (
* @returns
*/
const updateModelParamsForm: (
wordspace_id: string,
model_id: string,
request: any[],
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (wordspace_id, model_id, request, loading) => {
return put(`${prefix}/${wordspace_id}/model/${model_id}/model_params_form`, request, {}, loading)
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}/model_params_form`, request, {}, loading)
}
/**
@ -88,11 +83,10 @@ const updateModelParamsForm: (
* @returns
*/
const getModelById: (
wordspace_id: string,
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (wordspace_id, model_id, loading) => {
return get(`${prefix}/${wordspace_id}/model/${model_id}`, {}, loading)
) => Promise<Result<Model>> = (model_id, loading) => {
return get(`${prefix}/model/${model_id}`, {}, loading)
}
/**
* id
@ -101,11 +95,10 @@ const getModelById: (
* @returns
*/
const getModelMetaById: (
wordspace_id: string,
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (wordspace_id, model_id, loading) => {
return get(`${prefix}/${wordspace_id}/model/${model_id}/meta`, {}, loading)
) => Promise<Result<Model>> = (model_id, loading) => {
return get(`${prefix}/model/${model_id}/meta`, {}, loading)
}
/**
*
@ -114,18 +107,16 @@ const getModelMetaById: (
* @returns
*/
const pauseDownload: (
wordspace_id: string,
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<boolean>> = (wordspace_id, model_id, loading) => {
return put(`${prefix}/${wordspace_id}/model/${model_id}/pause_download`, undefined, {}, loading)
) => Promise<Result<boolean>> = (model_id, loading) => {
return put(`${prefix}/model/${model_id}/pause_download`, undefined, {}, loading)
}
const deleteModel: (
wordspace_id: string,
model_id: string,
loading?: Ref<boolean>,
) => Promise<Result<boolean>> = (wordspace_id, model_id, loading) => {
return del(`${prefix}/${wordspace_id}/model/${model_id}`, undefined, {}, loading)
) => Promise<Result<boolean>> = (model_id, loading) => {
return del(`${prefix}/model/${model_id}`, undefined, {}, loading)
}
export default {
getModel,

View File

@ -4,6 +4,7 @@ import type { Ref } from 'vue'
import type {Provider, BaseModel} from '@/api/type/model'
import type {FormField} from '@/components/dynamics-form/type'
import type {KeyValue} from '../type/common'
const prefix_provider = '/provider'
/**
*

View File

@ -3,18 +3,19 @@ import { get, post, del, put } from '@/request/index'
import {type Ref} from 'vue'
import type {pageRequest} from '@/api/type/common'
import type {toolData} from '@/api/type/tool'
const prefix = '/workspace'
const prefix = '/workspace/' + localStorage.getItem('workspace_id')
/**
*
* @params {folder_id: string}
*/
const getToolByFolder: (
wordspace_id: string,
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<Array<any>>> = (wordspace_id, data, loading) => {
return get(`${prefix}/${wordspace_id}/tool`, data, loading)
) => Promise<Result<Array<any>>> = (data, loading) => {
return get(`${prefix}/tool`, data, loading)
}
/**
@ -27,13 +28,12 @@ const getToolByFolder: (
}
*/
const getToolList: (
wordspace_id: string,
page: pageRequest,
param?: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, page, param, loading) => {
) => Promise<Result<any>> = (page, param, loading) => {
return get(
`${prefix}/${wordspace_id}/tool/${page.current_page}/${page.page_size}`,
`${prefix}/tool/${page.current_page}/${page.page_size}`,
param,
loading,
)
@ -44,11 +44,10 @@ const getToolList: (
* @param
*/
const postTool: (
wordspace_id: string,
data: toolData,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, data, loading) => {
return post(`${prefix}/${wordspace_id}/tool`, data, undefined, loading)
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}/tool`, data, undefined, loading)
}
/**
@ -57,12 +56,11 @@ const postTool: (
*/
const putTool: (
wordspace_id: string,
tool_id: string,
data: toolData,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, tool_id, data, loading) => {
return put(`${prefix}/${wordspace_id}/tool/${tool_id}`, data, undefined, loading)
) => Promise<Result<any>> = (tool_id, data, loading) => {
return put(`${prefix}/tool/${tool_id}`, data, undefined, loading)
}
/**
@ -72,19 +70,17 @@ const putTool: (
* @returns
*/
const getToolById: (
wordspace_id: string,
tool_id: String,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, tool_id, loading) => {
return get(`${prefix}/${wordspace_id}/tool/${tool_id}`, undefined, loading)
) => Promise<Result<any>> = (tool_id, loading) => {
return get(`${prefix}/tool/${tool_id}`, undefined, loading)
}
const postPylint: (
wordspace_id: string,
code: string,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (wordspace_id, code, loading) => {
return post(`${prefix}/${wordspace_id}/tool/pylint`, { code }, {}, loading)
) => Promise<Result<any>> = (code, loading) => {
return post(`${prefix}/tool/pylint`, {code}, {}, loading)
}
/**

View File

@ -74,7 +74,7 @@ function getRangeFromLineAndColumn(state: any, line: number, column: number, end
const regexpLinter = linter(async (view) => {
let diagnostics: Diagnostic[] = []
await ToolApi.postPylint('default', view.state.doc.toString()).then((ok) => {
await ToolApi.postPylint(view.state.doc.toString()).then((ok) => {
ok.data.forEach((element: any) => {
const range = getRangeFromLineAndColumn(
view.state,
@ -124,6 +124,7 @@ function submitDialog() {
<style lang="scss" scoped>
.codemirror-editor {
position: relative;
&__footer {
position: absolute;
bottom: 10px;

View File

@ -96,7 +96,7 @@ const open = (source: string, id: string) => {
const submitHandle = async () => {
await FolderFormRef.value.validate((valid: any) => {
if (valid) {
folderApi.postFolder('default', sourceType.value, folderForm.value, loading).then((res) => {
folderApi.postFolder( sourceType.value, folderForm.value, loading).then((res) => {
MsgSuccess(t('common.createSuccess'))
emit('refresh')
dialogVisible.value = false

View File

@ -5,10 +5,10 @@ import folderApi from '@/api/folder'
const useFolderStore = defineStore('folder', {
state: () => ({}),
actions: {
async asynGetFolder(workspace_id: string, source: string, data: any, loading?: Ref<boolean>) {
async asyncGetFolder(source: string, data: any, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
folderApi
.getFolder(workspace_id, source, data, loading)
.getFolder(source, data, loading)
.then((res) => {
resolve(res)
})

View File

@ -44,13 +44,12 @@ const useKnowledgeStore = defineStore('knowledge', {
// })
// },
async asyncGetDatasetDetail(
workspace_id: string,
knowledge_id: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => {
knowledgeApi
.getKnowledgeDetail(workspace_id, knowledge_id, loading)
.getKnowledgeDetail(knowledge_id, loading)
.then((data) => {
resolve(data)
})
@ -60,14 +59,13 @@ const useKnowledgeStore = defineStore('knowledge', {
})
},
async asyncSyncDataset(
workspace_id: string,
id: string,
sync_type: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => {
knowledgeApi
.putSyncWebKnowledge(workspace_id, id, sync_type, loading)
.putSyncWebKnowledge(id, sync_type, loading)
.then((data) => {
resolve(data)
})

View File

@ -3,12 +3,13 @@ import { type Ref } from 'vue'
import ModelApi from '@/api/model/model'
import ProviderApi from '@/api/model/provider'
import type {ListModelRequest} from '@/api/type/model'
const useModelStore = defineStore('model', {
state: () => ({}),
actions: {
async asyncGetModel(wordspace_id: string, data?: ListModelRequest, loading?: Ref<boolean>) {
async asyncGetModel(data?: ListModelRequest, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
ModelApi.getModel(wordspace_id, data, loading)
ModelApi.getModel(data, loading)
.then((res) => {
resolve(res)
})

View File

@ -20,7 +20,6 @@ const useProblemStore = defineStore('problem', {
})
},
async asyncGetProblem(
workspace_id: string,
datasetId: string,
page: pageRequest,
param: any,
@ -28,7 +27,7 @@ const useProblemStore = defineStore('problem', {
) {
return new Promise((resolve, reject) => {
problemApi
.getProblems(workspace_id, datasetId, page, param, loading)
.getProblems(datasetId, page, param, loading)
.then((data) => {
resolve(data)
})

View File

@ -91,6 +91,7 @@ import { MsgSuccess, MsgAlert } from '@/utils/message'
import {isWorkFlow} from '@/utils/application'
import {baseNodes} from '@/workflow/common/data'
import {t} from '@/locales'
const router = useRouter()
const emit = defineEmits(['refresh'])
@ -227,7 +228,6 @@ const submitHandle = async (formEl: FormInstance | undefined) => {
console.log(applicationForm.value.type)
applicationApi
.postApplication(
'default',
{...applicationForm.value, folder_id: currentFolder.value},
loading,
)
@ -254,6 +254,7 @@ defineExpose({ open })
<style lang="scss" scoped>
.radio-card {
line-height: 22px;
&.active {
border-color: var(--el-color-primary);
color: var(--el-color-primary);

View File

@ -43,7 +43,10 @@
</div>
<el-dropdown trigger="click">
<el-button type="primary" class="ml-8">
{{ $t('common.create') }}<el-icon class="el-icon--right"><arrow-down /></el-icon>
{{ $t('common.create') }}
<el-icon class="el-icon--right">
<arrow-down/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu class="create-dropdown">
@ -60,7 +63,8 @@
<div class="lighter">{{ $t('views.application.simple') }}</div>
<el-text type="info" size="small">{{
$t('views.application.simplePlaceholder')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -77,7 +81,8 @@
<div class="lighter">{{ $t('views.application.workflow') }}</div>
<el-text type="info" size="small">{{
$t('views.application.workflowPlaceholder')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -185,7 +190,9 @@
<div @click.stop>
<el-dropdown trigger="click">
<el-button text @click.stop>
<el-icon><MoreFilled /></el-icon>
<el-icon>
<MoreFilled/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
@ -193,7 +200,8 @@
icon="Refresh"
@click.stop="syncDataset(item)"
v-if="item.type === 1"
>{{ $t('views.knowledge.setting.sync') }}</el-dropdown-item
>{{ $t('views.knowledge.setting.sync') }}
</el-dropdown-item
>
<el-dropdown-item @click.stop="reEmbeddingDataset(item)">
<AppIcon iconName="app-vectorization"></AppIcon>
@ -249,6 +257,7 @@ import { numberFormat } from '@/utils/common'
import {t} from '@/locales'
import {useRouter} from 'vue-router'
import {isWorkFlow} from '@/utils/application'
const router = useRouter()
const {folder} = useStore()
@ -303,7 +312,7 @@ function getList() {
const params = {
folder_id: currentFolder.value?.id || 'root',
}
ApplicaitonApi.getApplication('default', paginationConfig, params, loading).then((res) => {
ApplicaitonApi.getApplication(paginationConfig, params, loading).then((res) => {
paginationConfig.total = res.data.total
applicationList.value = [...applicationList.value, ...res.data.records]
})
@ -311,7 +320,7 @@ function getList() {
function getFolder() {
const params = {}
folder.asynGetFolder('default', 'APPLICATION', params, loading).then((res: any) => {
folder.asyncGetFolder('APPLICATION', params, loading).then((res: any) => {
folderList.value = res.data
currentFolder.value = res.data?.[0] || {}
getList()

View File

@ -930,7 +930,7 @@ function getList(bool?: boolean) {
folder_id: folderId,
}
documentApi
.getDocument('default', id as string, paginationConfig.value, param, bool ? undefined : loading)
.getDocument( id as string, paginationConfig.value, param, bool ? undefined : loading)
.then((res) => {
documentData.value = res.data.records
paginationConfig.value.total = res.data.total
@ -938,7 +938,7 @@ function getList(bool?: boolean) {
}
function getDetail() {
knowledge.asyncGetDatasetDetail('default', id, loading).then((res: any) => {
knowledge.asyncGetDatasetDetail( id, loading).then((res: any) => {
datasetDetail.value = res.data
})
}

View File

@ -250,14 +250,15 @@ async function submit() {
})
})
} else {
KnowledgeApi.putKnowledge('default', id, obj, loading).then((res) => {
KnowledgeApi.putKnowledge(id, obj, loading).then((res) => {
KnowledgeApi.putReEmbeddingDataset(id).then(() => {
MsgSuccess(t('common.saveSuccess'))
})
})
}
})
.catch(() => {})
.catch(() => {
})
} else {
if (detail.value.type === 2) {
KnowledgeApi.putLarkDataset(id, obj, loading).then((res) => {
@ -266,7 +267,7 @@ async function submit() {
})
})
} else {
KnowledgeApi.putKnowledge('default', id, obj, loading).then((res) => {
KnowledgeApi.putKnowledge(id, obj, loading).then((res) => {
MsgSuccess(t('common.saveSuccess'))
})
}

View File

@ -47,10 +47,12 @@ import { groupBy } from 'lodash'
import useStore from '@/stores'
import type {knowledgeData} from '@/api/type/knowledge'
import {t} from '@/locales'
const props = defineProps({
data: {
type: Object,
default: () => {},
default: () => {
},
},
})
const {model} = useStore()
@ -101,6 +103,7 @@ watch(
immediate: true,
},
)
/*
表单校验
*/
@ -114,7 +117,7 @@ function validate() {
function getModel() {
loading.value = true
model
.asyncGetModel('default', { model_type: 'EMBEDDING' })
.asyncGetModel({model_type: 'EMBEDDING'})
.then((res: any) => {
modelOptions.value = groupBy(res?.data, 'provider')
loading.value = false

View File

@ -55,7 +55,7 @@ const submitHandle = async () => {
folder_id: currentFolder.value?.id,
...BaseFormRef.value.form,
}
KnowledgeApi.postDataset('default', obj, loading).then((res) => {
KnowledgeApi.postKnowledge(obj, loading).then((res) => {
MsgSuccess(t('common.createSuccess'))
// router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
emit('refresh')

View File

@ -101,7 +101,7 @@ const submitHandle = async () => {
...BaseFormRef.value.form,
...knowledgeForm.value,
}
KnowledgeApi.postWebDataset('default', obj, loading).then((res) => {
KnowledgeApi.postWebKnowledge(obj, loading).then((res) => {
MsgSuccess(t('common.createSuccess'))
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
emit('refresh')

View File

@ -43,7 +43,10 @@
</div>
<el-dropdown trigger="click">
<el-button type="primary" class="ml-8">
{{ $t('common.create') }}<el-icon class="el-icon--right"><arrow-down /></el-icon>
{{ $t('common.create') }}
<el-icon class="el-icon--right">
<arrow-down/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu class="create-dropdown">
@ -58,7 +61,8 @@
</div>
<el-text type="info" size="small">{{
$t('views.knowledge.knowledgeType.generalInfo')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -73,7 +77,8 @@
</div>
<el-text type="info" size="small">{{
$t('views.knowledge.knowledgeType.webInfo')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -93,7 +98,8 @@
</div>
<el-text type="info" size="small">{{
$t('views.knowledge.knowledgeType.larkInfo')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -113,7 +119,8 @@
</div>
<el-text type="info" size="small">{{
$t('views.knowledge.knowledgeType.yuqueInfo')
}}</el-text>
}}
</el-text>
</div>
</div>
</el-dropdown-item>
@ -197,7 +204,8 @@
<el-divider direction="vertical"/>
<span class="bold mr-4">{{ numberFormat(item?.char_length) || 0 }}</span>
<span class="color-secondary">{{ $t('common.character') }}</span
><el-divider direction="vertical" />
>
<el-divider direction="vertical"/>
<span class="bold mr-4">{{ item?.application_mapping_count || 0 }}</span>
<span class="color-secondary">{{
$t('views.knowledge.relatedApp_count')
@ -209,7 +217,9 @@
<div @click.stop>
<el-dropdown trigger="click">
<el-button text @click.stop>
<el-icon><MoreFilled /></el-icon>
<el-icon>
<MoreFilled/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
@ -217,7 +227,8 @@
icon="Refresh"
@click.stop="syncDataset(item)"
v-if="item.type === 1"
>{{ $t('views.knowledge.setting.sync') }}</el-dropdown-item
>{{ $t('views.knowledge.setting.sync') }}
</el-dropdown-item
>
<el-dropdown-item @click.stop="reEmbeddingDataset(item)">
<AppIcon iconName="app-vectorization"></AppIcon>
@ -331,12 +342,13 @@ function openCreateDialog(data: any) {
}
function reEmbeddingDataset(row: any) {
KnowledgeApi.putReEmbeddingDataset('default', row.id).then(() => {
KnowledgeApi.putReEmbeddingKnowledge(row.id).then(() => {
MsgSuccess(t('common.submitSuccess'))
})
}
const SyncWebDialogRef = ref()
function syncDataset(row: any) {
SyncWebDialogRef.value.open(row.id)
}
@ -349,7 +361,7 @@ function getList() {
const params = {
folder_id: currentFolder.value?.id || 'root',
}
KnowledgeApi.getKnowledgeList('default', paginationConfig, params, loading).then((res) => {
KnowledgeApi.getKnowledgeList(paginationConfig, params, loading).then((res) => {
paginationConfig.total = res.data.total
knowledgeList.value = [...knowledgeList.value, ...res.data.records]
})
@ -357,7 +369,7 @@ function getList() {
function getFolder() {
const params = {}
folder.asynGetFolder('default', 'KNOWLEDGE', params, loading).then((res: any) => {
folder.asyncGetFolder('KNOWLEDGE', params, loading).then((res: any) => {
folderList.value = res.data
currentFolder.value = res.data?.[0] || {}
getList()
@ -369,6 +381,7 @@ function folderClickHandel(row: any) {
knowledgeList.value = []
getList()
}
const CreateFolderDialogRef = ref()
function openCreateFolder() {

View File

@ -183,6 +183,7 @@ const loginHandle = () => {
} else {
login.asyncLogin(loginForm.value, loading).then(() => {
locale.value = localStorage.getItem('MaxKB-locale') || getBrowserLang() || 'en-US'
localStorage.setItem('workspace_id', 'default')
router.push({name: 'home'})
})
}

View File

@ -412,7 +412,6 @@ const submit = () => {
.then(() => {
if (providerValue.value) {
ModelApi.createModel(
'default',
{
...base_form_data.value,
credential: credential_form_data.value,

View File

@ -236,7 +236,7 @@ const list_base_model = (model_type: any, change?: boolean) => {
}
const open = (provider: Provider, model: Model) => {
modelValue.value = model
ModelApi.getModelById('default', model.id, formLoading).then((ok) => {
ModelApi.getModelById(model.id, formLoading).then((ok) => {
modelValue.value = ok.data
ProviderApi.listModelType(model.provider, model_type_loading).then((ok) => {
model_type_list.value = ok.data
@ -269,7 +269,6 @@ const submit = () => {
dynamicsFormRef.value?.validate().then(() => {
if (modelValue.value) {
ModelApi.updateModel(
'default',
modelValue.value.id,
{
...base_form_data.value,

View File

@ -31,7 +31,8 @@
<li class="flex mb-4">
<el-text type="info" class="color-secondary">{{
$t('views.model.modelForm.model_type.label')
}}</el-text>
}}
</el-text>
<span class="ellipsis ml-16">
{{ $t(modelType[model.model_type as keyof typeof modelType]) }}</span
>
@ -39,7 +40,8 @@
<li class="flex">
<el-text type="info" class="color-secondary">{{
$t('views.model.modelForm.base_model.label')
}}</el-text>
}}
</el-text>
<span class="ellipsis-1 ml-16" style="height: 20px; width: 70%">
{{ model.model_name }}</span
>
@ -57,7 +59,8 @@
class="ml-16"
:disabled="!is_permisstion"
@click.stop="cancelDownload"
>{{ $t('views.model.download.cancelDownload') }}</el-button
>{{ $t('views.model.download.cancelDownload') }}
</el-button
>
</div>
</div>
@ -65,7 +68,9 @@
<template #mouseEnter>
<el-dropdown trigger="click">
<el-button text @click.stop>
<el-icon><MoreFilled /></el-icon>
<el-icon>
<MoreFilled/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
@ -119,6 +124,7 @@ import { modelType } from '@/enums/model'
import useStore from '@/stores'
import ParamSettingDialog from './ParamSettingDialog.vue'
import {t} from '@/locales'
const props = defineProps<{
model: Model
provider_list: Array<Provider>
@ -161,15 +167,16 @@ const deleteModel = () => {
},
)
.then(() => {
ModelApi.deleteModel('default', props.model.id).then(() => {
ModelApi.deleteModel(props.model.id).then(() => {
emit('change')
})
})
.catch(() => {})
.catch(() => {
})
}
const cancelDownload = () => {
ModelApi.pauseDownload('default', props.model.id).then(() => {
ModelApi.pauseDownload(props.model.id).then(() => {
downModel.value = undefined
emit('change')
})
@ -190,7 +197,7 @@ const icon = computed(() => {
const initInterval = () => {
interval = setInterval(() => {
if (currentModel.value.status === 'DOWNLOAD') {
ModelApi.getModelMetaById('default', props.model.id).then((ok) => {
ModelApi.getModelMetaById(props.model.id).then((ok) => {
downModel.value = ok.data
})
} else {
@ -228,12 +235,14 @@ onBeforeUnmount(() => {
.model-card {
min-height: 135px;
min-width: auto;
.operation-button {
position: absolute;
right: 12px;
bottom: 12px;
height: auto;
}
.progress-mask {
position: absolute;
top: 0;
@ -243,6 +252,7 @@ onBeforeUnmount(() => {
height: 100%;
z-index: 99;
text-align: center;
.percentage {
margin-top: 55px;
margin-bottom: 16px;

View File

@ -100,7 +100,7 @@ const AddParamRef = ref()
const open = () => {
dialogVisible.value = true
loading.value = true
ModelApi.getModelParamsForm('default', props.model.id, loading)
ModelApi.getModelParamsForm(props.model.id, loading)
.then((ok) => {
loading.value = false
modelParamsForm.value = ok.data
@ -151,7 +151,7 @@ function refresh(data: any, index: any) {
}
function submit() {
ModelApi.updateModelParamsForm('default', props.model.id, modelParamsForm.value, loading).then(
ModelApi.updateModelParamsForm(props.model.id, modelParamsForm.value, loading).then(
(ok) => {
MsgSuccess(t('views.model.tip.saveSuccessMessage'))
close()

View File

@ -185,7 +185,7 @@ const openCreateModel = (provider?: Provider, model_type?: string) => {
const list_model = () => {
const params = active_provider.value?.provider ? { provider: active_provider.value.provider } : {}
model
.asyncGetModel('default', { ...model_search_form.value, ...params }, list_model_loading)
.asyncGetModel( { ...model_search_form.value, ...params }, list_model_loading)
.then((ok: any) => {
model_list.value = ok.data
const v = model_list.value.map((m) => ({ id: m.user_id, username: m.username }))

View File

@ -174,7 +174,6 @@ const remoteMethod = (query: string) => {
function getProblemOption(filterText?: string) {
return problem
.asyncGetProblem(
'default',
props.datasetId || (id as string),
{ current_page: 1, page_size: 100 },
filterText && { content: filterText },

View File

@ -8,13 +8,16 @@
<div>
<el-button type="primary" @click="createProblem">{{
$t('views.problem.createProblem')
}}</el-button>
}}
</el-button>
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0">{{
$t('views.problem.relateParagraph.title')
}}</el-button>
}}
</el-button>
<el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0">{{
$t('views.problem.setting.batchDelete')
}}</el-button>
}}
</el-button>
</div>
<el-input
@ -145,6 +148,7 @@ import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
import type {Dict} from '@/api/type/common'
import useStore from '@/stores'
import {t} from '@/locales'
const route = useRoute()
const {
params: {id}, // id
@ -251,7 +255,8 @@ function deleteProblem(row: any) {
getList()
})
})
.catch(() => {})
.catch(() => {
})
}
function editName(val: string, problemId: string) {
@ -271,6 +276,7 @@ function editName(val: string, problemId: string) {
function cellMouseEnter(row: any) {
currentMouseId.value = row.id
}
function cellMouseLeave() {
currentMouseId.value = ''
}
@ -356,7 +362,6 @@ function handleSizeChange() {
function getList() {
return problem
.asyncGetProblem(
'default',
id as string,
paginationConfig,
filterText.value && {content: filterText.value},
@ -367,10 +372,12 @@ function getList() {
paginationConfig.total = res.data.total
})
}
function refreshRelate() {
getList()
multipleTableRef.value?.clearSelection()
}
function refresh() {
paginationConfig.current_page = 1
getList()
@ -380,6 +387,7 @@ onMounted(() => {
getList()
})
onBeforeUnmount(() => {})
onBeforeUnmount(() => {
})
</script>
<style lang="scss" scoped></style>

View File

@ -45,7 +45,9 @@
:size="32"
@click="openEditAvatar"
>
<el-icon><EditPen /></el-icon>
<el-icon>
<EditPen/>
</el-icon>
</el-Avatar>
</div>
<el-avatar v-else class="avatar-green" shape="square" :size="32">
@ -78,7 +80,10 @@
{{ $t('common.param.initParam') }}
</h4>
<el-button link type="primary" @click="openAddInitDialog()">
<el-icon class="mr-4"><Plus /></el-icon> {{ $t('common.add') }}
<el-icon class="mr-4">
<Plus/>
</el-icon>
{{ $t('common.add') }}
</el-button>
</div>
<el-table ref="initFieldTableRef" :data="form.init_field_list" class="mb-16">
@ -91,28 +96,36 @@
<template #default="{ row }">
<el-tag type="info" class="info-tag" v-if="row.input_type === 'TextInput'">{{
$t('dynamicsForm.input_type_list.TextInput')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'PasswordInput'">{{
$t('dynamicsForm.input_type_list.PasswordInput')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'Slider'">{{
$t('dynamicsForm.input_type_list.Slider')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'SwitchInput'">{{
$t('dynamicsForm.input_type_list.SwitchInput')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'SingleSelect'">{{
$t('dynamicsForm.input_type_list.SingleSelect')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'MultiSelect'">{{
$t('dynamicsForm.input_type_list.MultiSelect')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'RadioCard'">{{
$t('dynamicsForm.input_type_list.RadioCard')
}}</el-tag>
}}
</el-tag>
<el-tag type="info" class="info-tag" v-if="row.input_type === 'DatePicker'">{{
$t('dynamicsForm.input_type_list.DatePicker')
}}</el-tag>
}}
</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('common.required')">
@ -149,7 +162,10 @@
</el-text>
</h4>
<el-button link type="primary" @click="openAddDialog()">
<el-icon class="mr-4"><Plus /></el-icon> {{ $t('common.add') }}
<el-icon class="mr-4">
<Plus/>
</el-icon>
{{ $t('common.add') }}
</el-button>
</div>
@ -226,7 +242,8 @@
<el-button :loading="loading" @click="visible = false">{{ $t('common.cancel') }}</el-button>
<el-button :loading="loading" @click="openDebug">{{ $t('common.debug') }}</el-button>
<el-button type="primary" @click="submit(FormRef)" :loading="loading">
{{ isEdit ? $t('common.save') : $t('common.create') }}</el-button
{{ isEdit ? $t('common.save') : $t('common.create') }}
</el-button
>
</div>
</template>
@ -325,7 +342,8 @@ function close() {
.then(() => {
visible.value = false
})
.catch(() => {})
.catch(() => {
})
}
}
@ -397,13 +415,13 @@ const submit = async (formEl: FormInstance | undefined) => {
await formEl.validate((valid: any) => {
if (valid) {
if (isEdit.value) {
ToolApi.putTool('default', form.value?.id as string, form.value, loading).then((res) => {
ToolApi.putTool(form.value?.id as string, form.value, loading).then((res) => {
MsgSuccess(t('common.editSuccess'))
emit('refresh', res.data)
visible.value = false
})
} else {
ToolApi.postTool('default', form.value, loading).then((res) => {
ToolApi.postTool(form.value, loading).then((res) => {
MsgSuccess(t('common.createSuccess'))
emit('refresh')
visible.value = false

View File

@ -55,7 +55,7 @@ watch(debugVisible, (bool) => {
const submit = async () => {
dynamicsFormRef.value.validate().then(() => {
ToolApi.putToolLib('default', form.value?.id as string, form.value, loading).then((res) => {
ToolApi.putTool(form.value?.id as string, form.value, loading).then((res) => {
MsgSuccess(t('common.editSuccess'))
emit('refresh')
debugVisible.value = false

View File

@ -99,8 +99,10 @@
<template #footer>
<div v-if="item.is_active" class="flex align-center">
<el-icon class="color-success mr-8" style="font-size: 16px"
><SuccessFilled
/></el-icon>
>
<SuccessFilled
/>
</el-icon>
<span class="color-secondary">
{{ $t('common.status.enabled') }}
</span>
@ -123,7 +125,9 @@
<el-divider direction="vertical"/>
<el-dropdown trigger="click">
<el-button text @click.stop>
<el-icon><MoreFilled /></el-icon>
<el-icon>
<MoreFilled/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
@ -132,7 +136,9 @@
:disabled="!canEdit(item)"
@click.stop="openCreateDialog(item)"
>
<el-icon><EditPen /></el-icon>
<el-icon>
<EditPen/>
</el-icon>
{{ $t('common.edit') }}
</el-dropdown-item>
<!-- <el-dropdown-item
@ -228,6 +234,7 @@ const canEdit = (row: any) => {
const ToolFormDrawerRef = ref()
const ToolDrawertitle = ref('')
function openCreateDialog(data?: any) {
// template_id
if (data?.template_id) {
@ -236,7 +243,7 @@ function openCreateDialog(data?: any) {
ToolDrawertitle.value = data ? t('views.tool.editTool') : t('views.tool.createTool')
if (data) {
if (data?.permission_type !== 'PUBLIC' || canEdit(data)) {
ToolApi.getToolById('default', data?.id, changeStateloading).then((res) => {
ToolApi.getToolById(data?.id, changeStateloading).then((res) => {
ToolFormDrawerRef.value.open(res.data)
})
}
@ -250,7 +257,7 @@ function getList() {
folder_id: currentFolder.value?.id || 'root',
scope: 'WORKSPACE',
}
ToolApi.getToolList('default', paginationConfig, params, loading).then((res) => {
ToolApi.getToolList(paginationConfig, params, loading).then((res) => {
paginationConfig.total = res.data?.total
toolList.value = [...toolList.value, ...res.data?.records]
})
@ -258,7 +265,7 @@ function getList() {
function getFolder() {
const params = {}
folder.asynGetFolder('default', 'TOOL', params, loading).then((res: any) => {
folder.asyncGetFolder('TOOL', params, loading).then((res: any) => {
folderList.value = res.data
currentFolder.value = res.data?.[0] || {}
getList()
@ -278,7 +285,7 @@ async function changeState(row: any) {
const obj = {
is_active: !row.is_active,
}
ToolApi.putTool('default', row.id, obj, changeStateloading)
ToolApi.putTool(row.id, obj, changeStateloading)
.then(() => {
return true
})
@ -287,7 +294,7 @@ async function changeState(row: any) {
})
})
} else {
const res = await ToolApi.getToolById('default', row.id, changeStateloading)
const res = await ToolApi.getToolById(row.id, changeStateloading)
if (
!res.data.init_params &&
res.data.init_field_list &&
@ -301,7 +308,7 @@ async function changeState(row: any) {
const obj = {
is_active: !row.is_active,
}
ToolApi.putTool('default', row.id, obj, changeStateloading)
ToolApi.putTool(row.id, obj, changeStateloading)
.then(() => {
return true
})