From 5503c79e5c870eb2bdd4b8397ac28ded0b454cc6 Mon Sep 17 00:00:00 2001 From: ZLY Date: Mon, 1 Dec 2025 15:40:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(env):=20=E5=AE=9E=E7=8E=B0=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../componentEnv/envExtra.tsx | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/pages/componentDevelopment/componentEnv/envExtra.tsx b/src/pages/componentDevelopment/componentEnv/envExtra.tsx index 0b5f946..42989d3 100644 --- a/src/pages/componentDevelopment/componentEnv/envExtra.tsx +++ b/src/pages/componentDevelopment/componentEnv/envExtra.tsx @@ -9,10 +9,35 @@ const EnvExtra = ({ currentEnvData }) => { const [tutorialVisible, setTutorialVisible] = useState(false); const [onceTestType, setOnceTestType] = useState(null); // 单次测试结果 - // 模拟下载配置证书文件 - const handleDownloadConfig = () => { - // 这里可以添加实际的下载逻辑 - downloadEnvConfigFile(currentEnvData.id); + // 下载配置证书压缩包文件 + const handleDownloadConfig = async () => { + try { + const blob = await downloadEnvConfigFile(currentEnvData.id); + console.log('blob:', blob); + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const url = window.URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + + // 设置文件名 - 环境名称_时间戳.zip + const fileName = `${currentEnvData.name}_配置文件_${new Date().getTime()}.zip`; + link.setAttribute('download', fileName); + + // 触发下载 + document.body.appendChild(link); + link.click(); + + // 清理 + document.body.removeChild(link); + window.URL.revokeObjectURL(url); + + Message.success('下载配置文件成功'); + } catch (e) { + console.error('下载配置文件失败:', e); + Message.error('下载配置文件失败: ' + (e.message || '未知错误')); + } }; // 模拟查看环境配置教程 @@ -36,8 +61,8 @@ const EnvExtra = ({ currentEnvData }) => { }; useEffect(() => { - if (currentEnvData.available === 1) setOnceTestType(true); - else if (currentEnvData.available === -1) setOnceTestType(false); + if (currentEnvData?.available === 1) setOnceTestType(true); + else if (currentEnvData?.available === -1) setOnceTestType(false); else setOnceTestType(null); }, [currentEnvData]);