Merge remote-tracking branch 'origin/dev' into dev

dev_1.2
luotaiqian 2026-07-24 17:09:58 +08:00
commit a084a5a78b
2 changed files with 34 additions and 1 deletions

View File

@ -18,6 +18,11 @@ export const createWpsDoc = declareRequest(
'wpsDoc: {} | res.data || {}',
);
export const downloadWpsDoc = declareRequest(
"downloadDocLoading",
"Get > /safetyEval-h5/wsp/v3/3rd/files/:fileId/download",
);
export const customerPage = declareRequest(
"customerLoading",
"Get > /safetyEval/institution/eval-customer/page",

View File

@ -47,6 +47,34 @@ const App = (props) => {
message.success("保存成功");
};
const handleDownload = async () => {
if (!sdkRef.current) {
message.warning("文档尚未加载完成");
return;
}
try {
// 先保存最新内容
await sdkRef.current.save();
// 调用后端下载接口获取下载地址
const res = await props.downloadWpsDoc({ fileId });
const url = res?.data?.url || res?.url;
if (!url) throw new Error("下载地址获取失败");
// 跨域场景下 a.download 无效,通过 fetch 转 blob 再下载
const blobRes = await fetch(url);
if (!blobRes.ok) throw new Error("文件下载失败");
const blob = await blobRes.blob();
const blobUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = blobUrl;
a.download = `安全评价报告_${fileId}.docx`;
a.click();
URL.revokeObjectURL(blobUrl);
message.success("下载成功");
} catch {
message.error("下载失败,请重试");
}
};
const toggleExpand = (index) => {
setExpandedMap((prev) => ({ ...prev, [index]: !prev[index] }));
};
@ -83,7 +111,7 @@ const App = (props) => {
extra={
<Flex gap={12}>
<Button onClick={handleSave}>保存</Button>
<Button>下载报告</Button>
<Button onClick={handleDownload}>下载报告</Button>
</Flex>
}