From c32985126b1e264f3aa3f7a50c8b37a3b01a6ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=AF=97=E6=B4=A5?= <2723065175@qq.com> Date: Mon, 25 Sep 2023 09:52:07 +0000 Subject: [PATCH] =?UTF-8?q?!2378=20=E6=89=B9=E9=87=8F=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=9B=BE=E7=BA=B8=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E5=90=8D=E5=A2=9E=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E6=9C=80=E5=90=8E=E6=9B=B4=E6=96=B0=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/FileServer.ts | 70 ++++++++++++++----- src/UI/Components/SourceManage/ImportFile.tsx | 8 ++- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/src/DatabaseServices/FileServer.ts b/src/DatabaseServices/FileServer.ts index 7ff46336b..cdb388f5e 100644 --- a/src/DatabaseServices/FileServer.ts +++ b/src/DatabaseServices/FileServer.ts @@ -295,30 +295,64 @@ export class FileServer extends Singleton async Download(fid: string) { - let fileInfo = await this.GetFileInfo(fid); - const store = TopPanelStore.GetInstance(); - let file = deflate(fileInfo.file); - if (file) - FS.WriteFile(fileInfo.name + ".json", btoa(JSON.stringify({ file, id: store.shopId }))); + while (true) + { + const data = await PostJson(FileUrls.detail, { file_id: fid }); + const fileInfo = data.files; + let file = ""; + let fileName = ""; + if (data.err_code === RequestStatus.Ok && fileInfo) + { + const parts = (fileInfo.update_date ?? fileInfo.create_date).split(/[- :]/); + const time = "-" + parts[0].slice(2) + parts[1] + parts[2] + "_" + parts[3] + parts[4]; + fileName = `${fileInfo.name + time}.json`; + file = deflate(inflateBase64(fileInfo.file)); + } + + if (file && fileName) + { + const store = TopPanelStore.GetInstance(); + FS.WriteFile(fileName, btoa(JSON.stringify({ file, id: store.shopId }))); + break; + } + else + { + let isContinue = confirm("当前文件下载失败,是否重试?"); + if (!isContinue) break; + } + } } async DownloadTemplate(fid: string) { - let data = await PostJson(TemplateUrls.detail, { module_id: fid }); - let templateInfo: IFileInfo; - if (data.err_code === RequestStatus.Ok && data.modules) + while (true) { - templateInfo = { - name: data.modules.name, - file: data.modules.file, - logo: data.modules.logo, - props: data.modules.props, - }; + let data = await PostJson(TemplateUrls.detail, { module_id: fid }); + let templateInfo: IFileInfo = {}; + if (data.err_code === RequestStatus.Ok && data.modules) + { + templateInfo = { + name: data.modules.name, + file: data.modules.file, + logo: data.modules.logo, + props: data.modules.props, + }; + } + + let { file, logo, props } = templateInfo; + if (file && logo && props) + { + const store = TopPanelStore.GetInstance(); + FS.WriteFile(templateInfo.name + ".json", btoa(JSON.stringify({ file, id: store.shopId, logo, props, type: "template" }))); + break; + } + else + { + let isContinue = confirm("当前文件下载失败,是否重试?"); + if (!isContinue) break; + } } - const store = TopPanelStore.GetInstance(); - let { file, logo, props } = templateInfo; - if (file && logo && props) - FS.WriteFile(templateInfo.name + ".json", btoa(JSON.stringify({ file, id: store.shopId, logo, props, type: "template" }))); + } private SaveCurrentFileInfo(fileInfo: IFileInfo) { diff --git a/src/UI/Components/SourceManage/ImportFile.tsx b/src/UI/Components/SourceManage/ImportFile.tsx index 9cceaeb43..11b3b6c1b 100644 --- a/src/UI/Components/SourceManage/ImportFile.tsx +++ b/src/UI/Components/SourceManage/ImportFile.tsx @@ -73,9 +73,15 @@ export class ImportFile extends React.Component<{ commonPanel: CommonPanel, type else { let fserver = FileServer.GetInstance(); + let fileName = f.name.replace(".json", ""); + //如果名称字数大于30,就自动去掉日期 + if (fileName.length > 30) + { + fileName = fileName.replace(/-\d{6}_\d{4}$/, ""); + } await fserver.UploadFile({ dir_id, - name: f.name.replace(".json", ""), + name: fileName, file: file }); }