This commit is contained in:
@@ -61,7 +61,7 @@
|
||||
<p>2. 仅支持 Excel 格式(.xlsx),单次最多导入 1000 条</p>
|
||||
<p>3. 列格式请设置为文本格式,避免长数字被转为科学计数法</p>
|
||||
<p>4. <strong>重要:列顺序固定,不可调整。</strong>系统按位置读取,不识别列名</p>
|
||||
<p>5. 必填列:虚拟号(第1列)</p>
|
||||
<p style="color: var(--el-color-primary)">5. 必填列:虚拟号(第1列)</p>
|
||||
<p
|
||||
>6.
|
||||
可选列:设备名称、设备型号、设备类型、IMEI、制造商、最大SIM槽数(默认4,有效范围1-4)、卡1~卡4
|
||||
@@ -443,77 +443,16 @@
|
||||
// 下载模板
|
||||
const downloadTemplate = async () => {
|
||||
try {
|
||||
// 动态导入 xlsx 库
|
||||
const XLSX = await import('xlsx')
|
||||
|
||||
// 创建示例数据(按固定列顺序)
|
||||
const templateData = [
|
||||
{
|
||||
虚拟号: '862639070731999',
|
||||
设备名称: '智能水表01',
|
||||
设备型号: 'WM-2000',
|
||||
设备类型: '智能水表',
|
||||
IMEI: '860123456789012',
|
||||
制造商: '华为',
|
||||
最大SIM槽数: 4,
|
||||
'卡1 ICCID': '89860123456789012345',
|
||||
'卡2 ICCID': '',
|
||||
'卡3 ICCID': '',
|
||||
'卡4 ICCID': ''
|
||||
},
|
||||
{
|
||||
虚拟号: '862639070750932',
|
||||
设备名称: 'GPS定位器01',
|
||||
设备型号: 'GPS-3000',
|
||||
设备类型: '定位设备',
|
||||
IMEI: '860123456789013',
|
||||
制造商: '小米',
|
||||
最大SIM槽数: 2,
|
||||
'卡1 ICCID': '89860123456789012346',
|
||||
'卡2 ICCID': '89860123456789012347',
|
||||
'卡3 ICCID': '',
|
||||
'卡4 ICCID': ''
|
||||
}
|
||||
]
|
||||
|
||||
// 创建工作簿
|
||||
const wb = XLSX.utils.book_new()
|
||||
const ws = XLSX.utils.json_to_sheet(templateData)
|
||||
|
||||
// 设置列宽
|
||||
ws['!cols'] = [
|
||||
{ wch: 20 }, // 虚拟号
|
||||
{ wch: 15 }, // 设备名称
|
||||
{ wch: 15 }, // 设备型号
|
||||
{ wch: 15 }, // 设备类型
|
||||
{ wch: 18 }, // IMEI
|
||||
{ wch: 12 }, // 制造商
|
||||
{ wch: 15 }, // 最大SIM槽数
|
||||
{ wch: 25 }, // 卡1 ICCID
|
||||
{ wch: 25 }, // 卡2 ICCID
|
||||
{ wch: 25 }, // 卡3 ICCID
|
||||
{ wch: 25 } // 卡4 ICCID
|
||||
]
|
||||
|
||||
// 将所有单元格设置为文本格式
|
||||
const range = XLSX.utils.decode_range(ws['!ref'] || 'A1')
|
||||
for (let R = range.s.r; R <= range.e.r; ++R) {
|
||||
for (let C = range.s.c; C <= range.e.c; ++C) {
|
||||
const cellAddress = XLSX.utils.encode_cell({ r: R, c: C })
|
||||
if (!ws[cellAddress]) continue
|
||||
ws[cellAddress].t = 's' // 设置为字符串类型
|
||||
}
|
||||
}
|
||||
|
||||
// 添加工作表到工作簿
|
||||
XLSX.utils.book_append_sheet(wb, ws, '设备导入模板')
|
||||
|
||||
// 导出文件
|
||||
XLSX.writeFile(wb, '设备导入模板.xlsx')
|
||||
|
||||
const link = document.createElement('a')
|
||||
link.href = new URL('@/template/设备导入模板.xlsx', import.meta.url).href
|
||||
link.download = '设备导入模板.xlsx'
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
document.body.removeChild(link)
|
||||
ElMessage.success('设备导入模板下载成功')
|
||||
} catch (error) {
|
||||
console.error('下载模板失败:', error)
|
||||
ElMessage.error('下载模板失败')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user