diff --git a/src/api/kbase.ts b/src/api/kbase.ts new file mode 100644 index 0000000..0564938 --- /dev/null +++ b/src/api/kbase.ts @@ -0,0 +1,49 @@ +import request from '@/utils/request2'; + +export const FindKnowledgeBaseService = (Data) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + return request.post('/knowledgeBase/list', params,{ + headers: { + 'token': Data.token, //token + } + }) +} + +export const AddKnowledgeBaseService = (Data) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + return request.post('/knowledgeBase/create', params,{ + headers: { + 'token': Data.token, //token + } + }) +} + +export const UpdateKnowledgeBaseService = (Data) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + return request.post('/knowledgeBase/update', params,{ + headers: { + 'token': Data.token, //token + } + }) +} + +export const DelKnowledgeBaseService = (Data) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + return request.post('/knowledgeBase/delete', params,{ + headers: { + 'token': Data.token, //token + } + }) +} \ No newline at end of file diff --git a/src/components/menu.ts b/src/components/menu.ts index 8c4b013..f53b4f0 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -53,7 +53,12 @@ export const menuData: Menus[] = [ index: '/manage-file', title: '文件管理', }, - + { + id: '58', + pid: '1', + index: '/manage-kbase', + title: '知识库管理', + } ], }, { @@ -206,8 +211,8 @@ export const menuData: Menus[] = [ { id: '9', icon: 'Files', - index: '/reco-topic', - title: '智能选题推荐', + index: '/kbase-chat', + title: '知识库交互', }, { id: '53', diff --git a/src/components/upload-file.vue b/src/components/upload-file.vue index 1d9bee1..313baf9 100644 --- a/src/components/upload-file.vue +++ b/src/components/upload-file.vue @@ -28,7 +28,7 @@ import { ElMessage } from 'element-plus'; const handle = (rawFile: any) => { console.log(rawFile); }; -const allowedTypes = ['doc', 'docx', 'pdf', 'txt', 'png', 'jpg', 'jpeg','md']; +const allowedTypes = ['doc', 'docx', 'pdf', 'txt', 'png', 'jpg', 'jpeg','md', "epub"]; interface UploadData { upload_type: string; @@ -65,7 +65,7 @@ const headers = { const fileExtension = file.name.split('.').pop().toLowerCase(); const isAllowedType = allowedTypes.includes(fileExtension); if (!isAllowedType) { - ElMessage.error('不允许的文件类型,仅支持 doc, docx, pdf, txt, png, jpg, jpeg, md 格式'); + ElMessage.error('不允许的文件类型,仅支持 doc, docx, pdf, txt, png, jpg, jpeg, md, epub 格式'); return false; } // 可以在这里进行文件验证等操作 diff --git a/src/router/index.ts b/src/router/index.ts index e0cf449..207ceb5 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -169,12 +169,20 @@ const routes: RouteRecordRaw[] = [ component: () => import(/* webpackChunkName: "ucenter" */ '../views/pages/ucenter.vue'), }, { - path: '/reco-topic', - name: 'reco-topic', + path: '/kbase-chat', + name: 'kbase-chat', meta: { title: '智能选题推荐', }, - component: () => import(/* webpackChunkName: "reco-topic" */ '../views/system/reco-topic.vue'), + component: () => import(/* webpackChunkName: "reco-topic" */ '../views/system/kbase-chat.vue'), + }, + { + path: '/manage-kbase', + name: 'manage-kbase', + meta: { + title: '知识库管理', + }, + component: () => import(/* webpackChunkName: "manage-kbase" */ '../views/system/manage-kbase.vue'), }, { path: '/editor', diff --git a/src/store/permiss.ts b/src/store/permiss.ts index 3328cea..7acfe29 100644 --- a/src/store/permiss.ts +++ b/src/store/permiss.ts @@ -54,9 +54,10 @@ export const usePermissStore = defineStore("permiss", { "55", //提示词生成 "56", //文件管理 "57", //智能ppt生成 + "58", //知识库管理 "71", //用户功能管理 ], - user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "61", "71"], + user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "61", "71"], }, }; }, diff --git a/src/types/kbase.ts b/src/types/kbase.ts new file mode 100644 index 0000000..0c3ef9d --- /dev/null +++ b/src/types/kbase.ts @@ -0,0 +1,13 @@ +export interface KBase { + ID: number; + Name: string; + Description: string; + UUID: string; + SessionID: number; + CreatedAt: string; + UpdatedAt: string; + DeletedAt: string; + AuthID: number; + FileNameList: string; + FileIDs: string | Object | Array | any; +} \ No newline at end of file diff --git a/src/views/system/gen-chat.vue b/src/views/system/gen-chat.vue index 51dea6c..d8be830 100644 --- a/src/views/system/gen-chat.vue +++ b/src/views/system/gen-chat.vue @@ -354,7 +354,7 @@ const doButtonD = () => { } // 获取代码类型 - const codeType = codeBlock.className.replace("hljs ", ""); + const codeType = codeBlock.className.replace("hljs", ""); // 创建代码类型显示元素 const codeTypeElement = document.createElement("span"); codeTypeElement.textContent = codeType.split("-")[1]; diff --git a/src/views/system/kbase-chat.vue b/src/views/system/kbase-chat.vue new file mode 100644 index 0000000..6d1f92d --- /dev/null +++ b/src/views/system/kbase-chat.vue @@ -0,0 +1,988 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/manage-kbase.vue b/src/views/system/manage-kbase.vue new file mode 100644 index 0000000..3b44e29 --- /dev/null +++ b/src/views/system/manage-kbase.vue @@ -0,0 +1,314 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/reco-topic.vue b/src/views/system/reco-topic.vue deleted file mode 100644 index 5ae5264..0000000 --- a/src/views/system/reco-topic.vue +++ /dev/null @@ -1,8 +0,0 @@ - - -