From 817a70963981ef8f5ad25ad58fca5c7d0c0736b4 Mon Sep 17 00:00:00 2001 From: chabai <14799297+dhasjklhdfjkasfbhfasfj@user.noreply.gitee.com> Date: Wed, 6 Aug 2025 10:55:54 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=95=86=E5=8A=A1=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=BA=93=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/bussiness/bussiness.ts | 58 +++++++++ src/apis/bussiness/index.ts | 165 +++++++++++++++++++++++++ src/apis/bussiness/type.ts | 95 ++++++++++++++ src/router/route.ts | 41 +++--- src/types/auto-imports.d.ts | 2 +- src/views/bussiness-data/bussiness.vue | 2 +- 6 files changed, 341 insertions(+), 22 deletions(-) create mode 100644 src/apis/bussiness/index.ts create mode 100644 src/apis/bussiness/type.ts diff --git a/src/apis/bussiness/bussiness.ts b/src/apis/bussiness/bussiness.ts index 8a6dc25..2c9b471 100644 --- a/src/apis/bussiness/bussiness.ts +++ b/src/apis/bussiness/bussiness.ts @@ -35,6 +35,18 @@ export function getFilesApi(folderId: string) { }) } +// 获取文件夹列表 +export function getFolderListApi(params: { page: number; pageSize: number; folderName?: string }) { + return request<{ + list: KnowledgeFolder[] + total: number + }>({ + url: '/knowledge/folder-list', + method: 'get', + params, + }) +} + // 创建文件夹 export function createFolderApi(data: { name: string; parentId?: string }) { return request({ @@ -44,6 +56,23 @@ export function createFolderApi(data: { name: string; parentId?: string }) { }) } +// 更新文件夹 +export function updateFolderApi(folderId: string, data: { name: string }) { + return request({ + url: `/knowledge/update-folder/${folderId}`, + method: 'put', + data, + }) +} + +// 删除文件夹 +export function deleteFolderApi(folderId: string) { + return request({ + url: `/knowledge/delete-folder/${folderId}`, + method: 'delete', + }) +} + // 删除文件 export function deleteFileApi(fileId: string) { return request({ @@ -60,3 +89,32 @@ export function downloadFileApi(fileId: string) { responseType: 'blob', }) } + +// 上传文件 +export function uploadFileApi(data: FormData) { + return request({ + url: '/knowledge/upload', + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data', + }, + }) +} + +// 更新文件名 +export function updateFileNameApi(fileId: string, newName: string) { + return request({ + url: `/knowledge/update-file-name/${fileId}`, + method: 'put', + data: { name: newName }, + }) +} + +// 预览文件 +export function previewFileApi(fileId: string) { + return request({ + url: `/knowledge/preview/${fileId}`, + method: 'get', + }) +} diff --git a/src/apis/bussiness/index.ts b/src/apis/bussiness/index.ts new file mode 100644 index 0000000..8974f74 --- /dev/null +++ b/src/apis/bussiness/index.ts @@ -0,0 +1,165 @@ +// @/apis/bussiness/index.ts - 商务数据库信息模块API +import http from '@/utils/http' +import type { + FolderInfo, + FileInfo, + FolderListParams, + FileListParams, + FolderListResponse, + FileListResponse, + CreateFolderParams, + RenameFolderParams, + DeleteFolderParams, + UploadFileParams, + DownloadFileParams, + DeleteFileParams, + PreviewFileParams, + RenameFileParams +} from './type' + +const { request } = http + +// 导出类型定义 +export type { + FolderInfo, + FileInfo, + FolderListParams, + FileListParams, + FolderListResponse, + FileListResponse, + CreateFolderParams, + RenameFolderParams, + DeleteFolderParams, + UploadFileParams, + DownloadFileParams, + DeleteFileParams, + PreviewFileParams, + RenameFileParams +} + +// 获取文件夹列表(分页) +export function getFolderListApi(params?: FolderListParams) { + return request({ + url: '/businessData/folder/list', + method: 'get', + params: { + page: params?.page || 1, + pageSize: params?.pageSize || 10, + folderName: params?.folderName + } + }) +} + +// 获取文件列表(分页) +export function getFilesApi(params?: FileListParams) { + return request({ + url: '/businessData/file/list', + method: 'get', + params: { + page: params?.page || 1, + pageSize: params?.pageSize || 10, + folderId: params?.folderId || '0' + } + }) +} + +// 创建文件夹 +export function createFolderApi(data: CreateFolderParams) { + return request({ + url: '/businessData/folder/creatFolder', + method: 'post', + data: { + name: data.name, + parentId: data.parentId || '0' + } + }) +} + +// 重命名文件夹 +export function updateFolderApi(folderId: string, newName: string) { + return request({ + url: '/businessData/folder/rename', + method: 'put', + params: { + folderId: folderId, + newName: newName + } + }) +} + +// 删除文件夹 +export function deleteFolderApi(folderId: string) { + return request({ + url: '/businessData/folder/delete', + method: 'delete', + params: { + folderId: folderId + } + }) +} + +// 上传文件 +export function uploadFileApi( + file: File, + folderId: string, + onUploadProgress?: (progressEvent: any) => void, + cancelToken?: any +) { + const formData = new FormData() + formData.append('file', file) + + return request({ + url: '/businessData/file/add', + method: 'post', + params: { + folderId: folderId + }, + data: formData, + onUploadProgress, + cancelToken, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 下载文件 +export function downloadFileApi(fileId: string) { + return request({ + url: '/businessData/file/download', + method: 'get', + params: { + fileId: fileId + }, + responseType: 'blob' + }) +} + +// 删除文件 +export function deleteFileApi(fileId: string) { + return request({ + url: '/businessData/file/delete', + method: 'delete', + params: { + fileId: fileId + } + }) +} + +// 预览文件(后端没有提供预览接口,使用下载接口) +export function previewFileApi(fileId: string) { + return request({ + url: '/businessData/file/download', + method: 'get', + params: { + fileId: fileId + }, + responseType: 'blob' + }) +} + +// 重命名文件(后端没有提供重命名接口,需要先删除再上传) +export function updateFileNameApi(fileId: string, data: RenameFileParams) { + // 注意:后端没有提供文件重命名接口,这里返回一个Promise.reject + return Promise.reject(new Error('后端暂不支持文件重命名功能')) +} \ No newline at end of file diff --git a/src/apis/bussiness/type.ts b/src/apis/bussiness/type.ts new file mode 100644 index 0000000..e41bbeb --- /dev/null +++ b/src/apis/bussiness/type.ts @@ -0,0 +1,95 @@ +/** 文件夹信息接口 */ +export interface FolderInfo { + folderId: string + name: string + parentId: string + createTime?: string + updateTime?: string +} + +/** 文件信息接口 */ +export interface FileInfo { + fileId: string + fileName: string + fileSize: number + fileType: string + folderId: string + createTime?: string + updateTime?: string +} + +/** 文件夹列表查询参数 */ +export interface FolderListParams { + page?: number + pageSize?: number + folderName?: string +} + +/** 文件列表查询参数 */ +export interface FileListParams { + page?: number + pageSize?: number + folderId?: string +} + +/** 文件夹列表响应 */ +export interface FolderListResponse { + data: FolderInfo[] + total: number + current: number + size: number +} + +/** 文件列表响应 */ +export interface FileListResponse { + data: FileInfo[] + total: number + current: number + size: number +} + +/** 创建文件夹请求参数 */ +export interface CreateFolderParams { + name: string + parentId?: string +} + +/** 重命名文件夹请求参数 */ +export interface RenameFolderParams { + folderId: string + newName: string +} + +/** 删除文件夹请求参数 */ +export interface DeleteFolderParams { + folderId: string +} + +/** 上传文件请求参数 */ +export interface UploadFileParams { + file: File + folderId: string + onUploadProgress?: (progressEvent: any) => void + cancelToken?: any +} + +/** 下载文件请求参数 */ +export interface DownloadFileParams { + fileId: string +} + +/** 删除文件请求参数 */ +export interface DeleteFileParams { + fileId: string +} + +/** 预览文件请求参数 */ +export interface PreviewFileParams { + fileId: string +} + +/** 重命名文件请求参数 */ +export interface RenameFileParams { + fileId: string + newName: string +} \ No newline at end of file diff --git a/src/router/route.ts b/src/router/route.ts index 0854679..ada88f1 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -703,26 +703,7 @@ export const systemRoutes: RouteRecordRaw[] = [ ], }, - // 添加商务知识库 - { - path: '/bussiness-knowledge', - name: 'bussinesskonwledge', - component: Layout, - redirect: '/bussiness-knowledge/data', - meta: { title: '商务资料知识库', icon: 'message', hidden: false, sort: 6 }, - children: [ - { - path: '/bussiness-konwledge/data', - name: 'bussiness-knowledge', - component: () => import('@/views/bussiness-data/bussiness.vue'), - meta: { - title: '商务数据库信息', - icon: 'info-circle', - hidden: false, - }, - }, - ], - }, + { path: 'project-management/project-implementation/', name: 'Project-Implementation', @@ -1017,6 +998,26 @@ export const systemRoutes: RouteRecordRaw[] = [ }, // ], // }, + // 商务数据库信息模块 + { + path: '/business-knowledge', + name: 'BusinessKnowledge', + component: Layout, + redirect: '/business-knowledge/data', + meta: { title: '商务数据库信息', icon: 'database', hidden: false, sort: 5.5 }, + children: [ + { + path: '/business-knowledge/data', + name: 'BusinessKnowledgeData', + component: () => import('@/views/bussiness-data/bussiness.vue'), + meta: { + title: '商务数据库信息', + icon: 'info-circle', + hidden: false, + }, + }, + ], + }, { path: '/chat-platform', name: 'ChatPlatform', diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 369aad4..eab6be6 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -70,6 +70,6 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' import('vue') } diff --git a/src/views/bussiness-data/bussiness.vue b/src/views/bussiness-data/bussiness.vue index 5b0dded..4761ef0 100644 --- a/src/views/bussiness-data/bussiness.vue +++ b/src/views/bussiness-data/bussiness.vue @@ -532,7 +532,7 @@ import { uploadFileApi, updateFileNameApi, previewFileApi -} from '@/apis/bussiness/bussiness.js' +} from '@/apis/bussiness' // 状态管理 const folderList = ref([]); From 79527eb50658a05d19c6f4cbe5b12b3ec7aad3ea Mon Sep 17 00:00:00 2001 From: admin123 Date: Wed, 6 Aug 2025 11:43:42 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3c3629e..f8a1c71 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ node_modules +dist +.gitignore \ No newline at end of file From 2fa43bf7cfa1661546a725b72f80aee854d44ba4 Mon Sep 17 00:00:00 2001 From: admin123 Date: Wed, 6 Aug 2025 11:45:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f8a1c71..60c3b99 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules dist -.gitignore \ No newline at end of file +.gitignore +.env.development \ No newline at end of file