From 204d19881959a35fa37547284402a36e2b554c33 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 25 Apr 2025 16:16:09 +0800 Subject: [PATCH] =?UTF-8?q?ref:=20=E7=BB=9F=E4=B8=80ftp=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A4=87=E4=BB=BD=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E4=B8=8B=E8=BD=BD=E5=88=A0=E9=99=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/logManage/exportFile.ts | 40 -- src/api/ne/neConfigBackup.ts | 40 -- src/api/neData/backup.ts | 38 ++ src/api/tool/file.ts | 44 ++ src/utils/parse-utils.ts | 9 +- src/views/logManage/exportFile/index.vue | 433 +++++------------- .../neConfigBackup/components/BackupModal.vue | 230 ++++++++++ src/views/ne/neConfigBackup/index.vue | 248 ++-------- 8 files changed, 473 insertions(+), 609 deletions(-) create mode 100644 src/api/neData/backup.ts create mode 100644 src/views/ne/neConfigBackup/components/BackupModal.vue diff --git a/src/api/logManage/exportFile.ts b/src/api/logManage/exportFile.ts index 19f7b068..2ce72877 100644 --- a/src/api/logManage/exportFile.ts +++ b/src/api/logManage/exportFile.ts @@ -53,43 +53,3 @@ export function delFile(query: Record) { params: query, }); } - -/** - * 更新FTP信息 - * @param data 数据 - * @returns object - */ -export function updateFTPInfo(data: Record) { - return request({ - url: `/lm/table/ftp`, - method: 'POST', - data: data, - crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false', - }); -} - -/** - * 获取FTP信息 - * @param data 数据 - * @returns object - */ -export function getFTPInfo() { - return request({ - url: `/lm/table/ftp`, - method: 'GET', - crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false', - }); -} - -/** - * 发送FTP文件 - * @param data 数据 - * @returns object - */ -export function putFTPInfo(filePath: string, fileName: string) { - return request({ - url: `/lm/table/ftp`, - method: 'PUT', - data: { filePath, fileName }, - }); -} diff --git a/src/api/ne/neConfigBackup.ts b/src/api/ne/neConfigBackup.ts index e6b8c817..af63fdea 100644 --- a/src/api/ne/neConfigBackup.ts +++ b/src/api/ne/neConfigBackup.ts @@ -83,43 +83,3 @@ export function importNeConfigBackup(data: Record) { data: data, }); } - -/** - * 更新FTP信息 - * @param data 数据 - * @returns object - */ -export function updateFTPInfo(data: Record) { - return request({ - url: `/ne/config/backup/ftp`, - method: 'POST', - data: data, - crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false', - }); -} - -/** - * 获取FTP信息 - * @param data 数据 - * @returns object - */ -export function getFTPInfo() { - return request({ - url: `/ne/config/backup/ftp`, - method: 'GET', - crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false', - }); -} - -/** - * 发送FTP文件 - * @param data 数据 - * @returns object - */ -export function putFTPInfo(path: string) { - return request({ - url: `/ne/config/backup/ftp`, - method: 'PUT', - data: { path }, - }); -} diff --git a/src/api/neData/backup.ts b/src/api/neData/backup.ts new file mode 100644 index 00000000..eeb3781c --- /dev/null +++ b/src/api/neData/backup.ts @@ -0,0 +1,38 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * 备份文件-获取FTP配置 + * @returns object + */ +export function getBackupFTP() { + return request({ + url: '/neData/backup/ftp', + method: 'GET', + }); +} + +/** + * 备份文件-文件FTP发送 + * @param data 对象 + * @returns object + */ +export function pushBackupFTP(data: Record) { + return request({ + url: '/neData/backup/ftp', + method: 'POST', + data, + }); +} + +/** + * 备份文件-更新FTP配置 + * @param data 对象 + * @returns object + */ +export function updateBackupFTP(data: Record) { + return request({ + url: '/neData/backup/ftp', + method: 'PUT', + data, + }); +} diff --git a/src/api/tool/file.ts b/src/api/tool/file.ts index 5a29df83..ff31c5ae 100644 --- a/src/api/tool/file.ts +++ b/src/api/tool/file.ts @@ -210,6 +210,50 @@ export function chunkUpload(data: FormData) { }); } +/** + * 本地文件列表 + * @param path 文件路径 + * @param search search prefix + * @returns object + */ +export async function listFile(query: Record) { + return request({ + url: `/file/list`, + method: 'GET', + params: query, + }); +} + +/** + * 本地文件获取下载 + * @param path 文件路径 + * @param fileName 文件名 + * @returns object + */ +export async function getFile(path: string, fileName: string) { + return request({ + url: `/file`, + method: 'GET', + params: { path, fileName }, + responseType: 'blob', + timeout: 60_000, + }); +} + +/** + * 本地文件删除 + * @param path 文件路径 + * @param fileName 文件名 + * @returns object + */ +export async function delFile(path: string, fileName: string) { + return request({ + url: `/file`, + method: 'DELETE', + params: { path, fileName }, + }); +} + /** * 转存上传文件到静态资源 * @returns object diff --git a/src/utils/parse-utils.ts b/src/utils/parse-utils.ts index 8e13fd43..ada8afec 100644 --- a/src/utils/parse-utils.ts +++ b/src/utils/parse-utils.ts @@ -101,7 +101,14 @@ export function parseObjLineToHump(obj: any): any { * @param decimalPlaces 保留小数位,默认2位 * @returns 单位 xB */ -export function parseSizeFromFile(bytes: number, decimalPlaces: number = 2) { +export function parseSizeFromFile( + bytes: number, + decimalPlaces: number = 2 +): string { + if (typeof bytes !== 'number' || isNaN(bytes) || bytes < 0) { + return `${bytes}`; + } + if (bytes === 0) return '0 B'; const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; let i = 0; while (bytes >= 1024 && i < units.length - 1) { diff --git a/src/views/logManage/exportFile/index.vue b/src/views/logManage/exportFile/index.vue index b39391db..d7a2ba2a 100644 --- a/src/views/logManage/exportFile/index.vue +++ b/src/views/logManage/exportFile/index.vue @@ -1,38 +1,57 @@