From edca190a06cdb907047bdc7ff47f90081741546d Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Tue, 8 Jul 2025 20:50:19 +0800 Subject: [PATCH] feat: chat --- ui/src/api/shared-workspace.ts | 65 ++- ui/src/components/layout-container/index.vue | 19 +- ui/src/locales/lang/en-US/views/model.ts | 2 +- ui/src/locales/lang/zh-Hant/views/model.ts | 2 +- .../EditTitleDialog.vue | 0 ui/src/views/chat/history-component/index.vue | 263 ++++++++++ .../mobile/component/ChatHistoryDrawer.vue | 69 ++- ui/src/views/chat/pc/index.vue | 477 +++--------------- ui/src/views/knowledge/KnowledgeSetting.vue | 10 +- ui/src/views/problem/index.vue | 8 +- 10 files changed, 447 insertions(+), 468 deletions(-) rename ui/src/views/chat/{pc => history-component}/EditTitleDialog.vue (100%) create mode 100644 ui/src/views/chat/history-component/index.vue diff --git a/ui/src/api/shared-workspace.ts b/ui/src/api/shared-workspace.ts index 1aa81bf83..b3f1ea6a2 100644 --- a/ui/src/api/shared-workspace.ts +++ b/ui/src/api/shared-workspace.ts @@ -1,23 +1,21 @@ -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' +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' import useStore from '@/stores' const prefix = '/system/shared' -const prefix_workspace: any = {_value: 'workspace/'} +const prefix_workspace: any = { _value: 'workspace/' } Object.defineProperty(prefix_workspace, 'value', { get: function () { - const {user} = useStore() + const { user } = useStore() return this._value + user.getWorkspaceId() }, }) -const getKnowledgeList: (loading?: Ref) => Promise>> = ( - loading, -) => { +const getKnowledgeList: (loading?: Ref) => Promise>> = (loading) => { return get(`${prefix}/${prefix_workspace.value}/knowledge`, {}, loading) } @@ -75,9 +73,32 @@ const getDocumentDetail: ( document_id: string, loading?: Ref, ) => Promise> = (knowledge_id, document_id, loading) => { - return get(`${prefix}/${prefix_workspace.value}/knowledge/${knowledge_id}/document/${document_id}`, + return get( + `${prefix}/${prefix_workspace.value}/knowledge/${knowledge_id}/document/${document_id}`, {}, - loading,) + loading, + ) +} + +/** + * 问题分页列表 + * @param 参数 knowledge_id, + * query { + "content": "string", + } + */ + +const getProblemsPage: ( + knowledge_id: string, + page: pageRequest, + param: any, + loading?: Ref, +) => Promise> = (knowledge_id, page, param, loading) => { + return get( + `${prefix}/${prefix_workspace.value}/knowledge/${knowledge_id}/problem/${page.current_page}/${page.page_size}`, + param, + loading, + ) } /** @@ -102,17 +123,14 @@ const getParagraphPage: ( ) } - -const getModelList: ( +const getModelList: (param: any, loading?: Ref) => Promise>> = ( param: any, - loading?: Ref, -) => Promise>> = (param: any, loading) => { + loading, +) => { return get(`${prefix}/${prefix_workspace.value}/model`, param, loading) } -const getToolList: (loading?: Ref) => Promise>> = ( - loading, -) => { +const getToolList: (loading?: Ref) => Promise>> = (loading) => { return get(`${prefix}/${prefix_workspace.value}/tool`, {}, loading) } @@ -121,17 +139,22 @@ const getToolListPage: ( param?: any, loading?: Ref, ) => Promise> = (page, param, loading) => { - return get(`${prefix}/${prefix_workspace.value}/tool/${page.current_page}/${page.page_size}`, param, loading) + return get( + `${prefix}/${prefix_workspace.value}/tool/${page.current_page}/${page.page_size}`, + param, + loading, + ) } export default { getKnowledgeList, getKnowledgeListPage, getKnowledgeDetail, + getProblemsPage, getDocumentPage, getDocumentDetail, getParagraphPage, getModelList, getToolList, - getToolListPage + getToolListPage, } diff --git a/ui/src/components/layout-container/index.vue b/ui/src/components/layout-container/index.vue index fbd68f1f9..a0a335611 100644 --- a/ui/src/components/layout-container/index.vue +++ b/ui/src/components/layout-container/index.vue @@ -4,9 +4,18 @@
- - + +
@@ -22,7 +31,7 @@ const slots = useSlots() const props = defineProps({ header: String || null, backTo: String, - showCollapse: Boolean + showCollapse: Boolean, }) const isCollapse = ref(false) @@ -47,7 +56,7 @@ const showBack = computed(() => { position: absolute; top: 36px; right: -15px; - box-shadow: 0px 5px 10px 0px #1f23291a; + box-shadow: 0px 5px 10px 0px rgba(31, 35, 41, 0.1); z-index: 1; } diff --git a/ui/src/locales/lang/en-US/views/model.ts b/ui/src/locales/lang/en-US/views/model.ts index 2f4c70e28..b9c1da85f 100644 --- a/ui/src/locales/lang/en-US/views/model.ts +++ b/ui/src/locales/lang/en-US/views/model.ts @@ -20,7 +20,7 @@ export default { downloadError: 'Download failed', noModel: 'Model does not exist in Ollama', }, - model: { + modelType: { allModel: 'All Models', publicModel: 'Public Models', privateModel: 'Private Models', diff --git a/ui/src/locales/lang/zh-Hant/views/model.ts b/ui/src/locales/lang/zh-Hant/views/model.ts index d01f705a9..7c434d03a 100644 --- a/ui/src/locales/lang/zh-Hant/views/model.ts +++ b/ui/src/locales/lang/zh-Hant/views/model.ts @@ -18,7 +18,7 @@ export default { downloadError: '下載失敗', noModel: '模型在Ollama不存在', }, - model: { + modelType: { allModel: '全部模型', publicModel: '公有模型', privateModel: '私有模型', diff --git a/ui/src/views/chat/pc/EditTitleDialog.vue b/ui/src/views/chat/history-component/EditTitleDialog.vue similarity index 100% rename from ui/src/views/chat/pc/EditTitleDialog.vue rename to ui/src/views/chat/history-component/EditTitleDialog.vue diff --git a/ui/src/views/chat/history-component/index.vue b/ui/src/views/chat/history-component/index.vue new file mode 100644 index 000000000..255a0f85d --- /dev/null +++ b/ui/src/views/chat/history-component/index.vue @@ -0,0 +1,263 @@ + + + + diff --git a/ui/src/views/chat/mobile/component/ChatHistoryDrawer.vue b/ui/src/views/chat/mobile/component/ChatHistoryDrawer.vue index 23ba613b3..d9b763de3 100644 --- a/ui/src/views/chat/mobile/component/ChatHistoryDrawer.vue +++ b/ui/src/views/chat/mobile/component/ChatHistoryDrawer.vue @@ -4,7 +4,12 @@
- + @@ -15,20 +20,36 @@ {{ $t('chat.createChat') }} -

{{ $t('chat.history') }}

+

{{ $t('chat.history') }}

- +