diff --git a/frontend/src/components/device/ImportModal.jsx b/frontend/src/components/device/ImportModal.jsx index 4cea266..83102f8 100644 --- a/frontend/src/components/device/ImportModal.jsx +++ b/frontend/src/components/device/ImportModal.jsx @@ -171,6 +171,38 @@ const ImportModal = ({ visible, deviceFields, onImport, onCancel }) => { return ''; }; + const handleDownloadTemplate = async () => { + try { + const token = localStorage.getItem('token'); + const response = await axios.get('/api/devices/import-template', { + responseType: 'blob', + headers: token ? { Authorization: `Bearer ${token}` } : {}, + }); + const blob = new Blob([response.data], { type: 'text/csv; charset=gbk' }); + const url = window.URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = '设备导入模板.csv'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + window.URL.revokeObjectURL(url); + } catch (error) { + console.error('下载模板失败:', error); + if (error.response?.data) { + const text = await error.response.data.text(); + try { + const json = JSON.parse(text); + message.error(json.message || '下载模板失败'); + } catch { + message.error('下载模板失败'); + } + } else { + message.error('下载模板失败'); + } + } + }; + const renderUploadStep = () => (
请上传CSV格式的设备数据文件
@@ -222,18 +254,17 @@ const ImportModal = ({ visible, deviceFields, onImport, onCancel }) => {