From 2ec2a96d9bb31c24e806709ef8df1bd9172f8c02 Mon Sep 17 00:00:00 2001 From: pyt <626651354@qq.com> Date: 星期四, 10 四月 2025 09:15:22 +0800 Subject: [PATCH] feat --- src/view/Home.vue | 83 ++++++++++++++++++++++------------------- 1 files changed, 44 insertions(+), 39 deletions(-) diff --git a/src/view/Home.vue b/src/view/Home.vue index 179e345..d5aaf48 100644 --- a/src/view/Home.vue +++ b/src/view/Home.vue @@ -115,7 +115,7 @@ <div class="flex a-center p-3"> <el-button type="primary" class="search" @click="exportExcel(false)">导出 | Export</el-button> <el-button type="primary" class="search" @click="importExcel">导入 | Import</el-button> - <a type="primary" class="Download" @click="exportExcel([])">下载模板 | Download Template</a> + <a type="primary" class="Download" @click="downloadTemplate">下载模板 | Download Template</a> </div> <el-table :data="tableData" style="width: 100%" border> <el-table-column width="200" prop="orderId" align="center"> @@ -391,6 +391,9 @@ this.getLists() }, methods: { + downloadTemplate() { + window.open('http://47.108.239.173/compass_template.xlsx', '_blank') + }, handleClick(e, type) { this.$router.push({ path: '/addOrder', @@ -486,35 +489,37 @@ if (!arr) { let res = await exportList({ userExtra: localStorage.getItem('extra') }) exportData = res.data.map(item => ({ - '集装箱号 | Container No.': item.ContainerNo, - '提单号 | BOL No.': item.BolNo, - '柜型 | Container Type': item.containerType, - '船司 | Carrier': item.carrier, - '船名航次 | Vessel Name and Voyage': item.vesselNameAndVoyage, - '提柜地 | Pickup Location': item.pickupLocation, - '预计到港 | ETA': item.eta, - 'SOC': item.soc, - 'DG': item.dg, - '是否超重 | Overweight': item.overweight, - '是否查验 | Exam/Inspection': item.exam, - 'DROP/LIVE': item.dropOrLive, - 'Hold': item.hold, - '客户单号 | Customer Ref. No.': item.customerRefNo, - '品名 | Commodity': item.commodity, - '数量 | QTY': item.qty, - '包装种类 | Packages': item.packages, - '毛重 | Gr. Wt': item.GrWt, - '毛重(磅) | Weight (LBs)': item.weightLBS, - '体积 | Volume': item.volume, - '收件人 | Consignee': item.consignee, - '收件人公司 | Company Name': item.companyName, - '邮编 | Postal Code': item.postalCode, - '地址 | Address': item.address, - '联系电话 | Tel': item.tel, - '邮箱 | Email': item.email, - '其他联系方式 | Other Contact Information': item.otherContactInformation, - '备注 | Remarks': item.remarks - })); + '集装箱号 | Container No.': item.ContainerNo, + '提单号 | BOL No.': item.BolNo, + '柜型 | Container Type': item.containerType, + '船司 | Carrier': item.carrier, + '船名航次 | Vessel Name and Voyage': item.vesselNameAndVoyage, + '提柜地 | Pickup Location': item.pickupLocation, + '预计到港 | ETA': item.eta, + 'SOC': item.soc === '是' ? 'Y' : (item.soc === '否' ? 'N' : ''), + 'DG': item.dg === '是' ? 'Y' : (item.dg === '否' ? 'N' : ''), + '是否超重 | Overweight': item.overweight === '是' ? 'Y' : (item.overweight === '否' ? 'N' : ''), + '是否查验 | Exam/Inspection': item.exam === '是' ? 'Y' : (item.exam === '否' ? 'N' : ''), + 'DROP/LIVE': item.dropOrLive, + 'Hold': item.hold === '等国内通知派送' ? '等国内通知派送|Client Hold' : + (item.hold === '扣柜放行' ? '扣柜放行|Client Release' : + (item.hold === '正常' ? '正常|Normal' : '')), + '客户单号 | Customer Ref. No.': item.customerRefNo, + '品名 | Commodity': item.commodity, + '数量 | QTY': item.qty, + '包装种类 | Packages': item.packages, + '毛重 | Gr. Wt': item.GrWt, + '毛重(磅) | Weight (LBs)': item.weightLBS, + '体积 | Volume': item.volume, + '收件人 | Consignee': item.consignee, + '收件人公司 | Company Name': item.companyName, + '邮编 | Postal Code': item.postalCode, + '地址 | Address': item.address, + '联系电话 | Tel': item.tel, + '邮箱 | Email': item.email, + '其他联系方式 | Other Contact Information': item.otherContactInformation, + '备注 | Remarks': item.remarks + })); } // 准备导出数据 @@ -586,9 +591,8 @@ defval: '', header: 1 }); - // 获取表头并打印日志 - const headers = jsonData[0]; + const headers = jsonData[2]; // 验证模板格式 const requiredFields = [ '集装箱号 | Container No.', @@ -629,7 +633,7 @@ } // 转换数据格式 - const transformedData = jsonData.slice(1).map(row => { + const transformedData = jsonData.slice(3).map(row => { const item = {}; headers.forEach((header, index) => { item[header] = row[index] || ''; @@ -644,12 +648,12 @@ vesselNameAndVoyage: item['船名航次 | Vessel Name and Voyage'], pickupLocation: item['提柜地 | Pickup Location'], eta: item['预计到港 | ETA'], - soc: item['SOC'], - dg: item['DG'], - overweight: item['是否超重 | Overweight'], - exam: item['是否查验 | Exam/Inspection'], + soc: item['SOC'] === 'Y' ? '是' : (item['SOC'] === 'N' ? '否' : ''), + dg: item['DG'] === 'Y' ? '是' : (item['DG'] === 'N' ? '否' : ''), + overweight: item['是否超重 | Overweight'] === 'Y' ? '是' : (item['是否超重 | Overweight'] === 'N' ? '否' : ''), + exam: item['是否查验 | Exam/Inspection'] === 'Y' ? '是' : (item['是否查验 | Exam/Inspection'] === 'N' ? '否' : ''), dropOrLive: item['DROP/LIVE'], - hold: item['Hold'], + hold: item['Hold'] ? item['Hold'].split('|')[0] : '', customerRefNo: item['客户单号 | Customer Ref. No.'], commodity: item['品名 | Commodity'], qty: item['数量 | QTY'], @@ -667,9 +671,10 @@ remarks: item['备注 | Remarks'] }; }); - // 使用post方法直接传递数组 iptOrder(transformedData).then(res => { + console.log(res,transformedData); + if (res) { this.$message({ message: '导入成功', -- Gitblit v1.7.1