diff --git a/src/views/system/jd-instruction/fadan-quick-record.vue b/src/views/system/jd-instruction/fadan-quick-record.vue index 9dd7803..68ad56e 100644 --- a/src/views/system/jd-instruction/fadan-quick-record.vue +++ b/src/views/system/jd-instruction/fadan-quick-record.vue @@ -95,7 +95,7 @@ /> - 落库必填(与中控录单一致) + 落库必填(物流链接或物流单号填一项即可) @@ -109,7 +109,10 @@ - + + + +
@@ -258,7 +261,8 @@ export default { paymentText: '', rebateText: '', orderIdText: '', - logisticsLink: '' + logisticsLink: '', + waybillNo: '' }, loading: false, resultText: '', @@ -528,6 +532,7 @@ export default { const rebate = (this.form.rebateText || '').trim() const orderId = (this.form.orderIdText || '').trim() const logistics = (this.form.logisticsLink || '').trim() + const waybill = (this.form.waybillNo || '').trim() const thirdPartyOrderNo = (this.form.thirdPartyOrderNoText || '').trim() if (thirdPartyOrderNo) { // 与 InstructionServiceImpl.WENAN_D 一致:「第三方单号:值」同行,下一行才是分隔线 @@ -554,6 +559,9 @@ export default { if (logistics) { t = t.replace(/(物流链接(需填):)\n\n/, `$1\n${logistics}\n\n`) } + if (waybill) { + t = t.replace(/(物流单号(无链接时填):)\n\n/, `$1\n${waybill}\n\n`) + } return t }, formBodyLooksPersistable(text) { @@ -565,7 +573,8 @@ export default { const pay = (this.form.paymentText || '').trim() const orderId = (this.form.orderIdText || '').trim() const logistics = (this.form.logisticsLink || '').trim() - return !!(buyer && pay && orderId && logistics) + const waybill = (this.form.waybillNo || '').trim() + return !!(buyer && pay && orderId && (logistics || waybill)) }, formatInstructionData(data) { if (Array.isArray(data)) { @@ -658,7 +667,7 @@ export default { } if (!this.canPersistOrderFields()) { this.resultText = merged - this.$modal.msgWarning('已生成录单文案。落库需填写:下单人、下单付款、订单号、物流链接(后返可不填,将按 0.00)') + this.$modal.msgWarning('已生成录单文案。落库需填写:下单人、下单付款、订单号,以及物流链接或物流单号(后返可不填,将按 0.00)') return } const res2 = await executeInstruction({ command: merged }) @@ -700,7 +709,7 @@ export default { if (!this.canPersistOrderFields()) { this.resultText = merged this.verifyDialogVisible = false - this.$modal.msgWarning('已强制生成表单。落库仍需填写:下单人、下单付款、订单号、物流链接') + this.$modal.msgWarning('已强制生成表单。落库仍需填写:下单人、下单付款、订单号,以及物流链接或物流单号') return } const res2 = await executeInstruction({ command: merged }) @@ -729,7 +738,8 @@ export default { paymentText: '', rebateText: '', orderIdText: '', - logisticsLink: '' + logisticsLink: '', + waybillNo: '' } this.resultText = '' }, @@ -794,7 +804,8 @@ export default { payment: field('下单付款(注意核对):', ['后返金额(注意核对):']), rebate: field('后返金额(注意核对):', ['订单号(需填):']), orderId: field('订单号(需填):', ['物流链接(需填):']), - logistics: field('物流链接(需填):', ['备注(下单号码有变动', '—————————', '京粉实际价格']) + logistics: field('物流链接(需填):', ['物流单号(无链接时填):', '备注(下单号码有变动', '—————————', '京粉实际价格']), + waybill: field('物流单号(无链接时填):', ['备注(下单号码有变动', '—————————', '京粉实际价格']) } } return { @@ -817,7 +828,7 @@ export default { String(parsed.buyer || '').trim() && String(parsed.payment || '').trim() && String(parsed.orderId || '').trim() - && String(parsed.logistics || '').trim() + && (String(parsed.logistics || '').trim() || String(parsed.waybill || '').trim()) ) }, isPersistFilledOrder(row) { @@ -826,7 +837,7 @@ export default { String(row.buyer || '').trim() && row.paymentAmount != null && row.paymentAmount !== '' && String(row.orderId || '').trim() - && String(row.logisticsLink || '').trim() + && (String(row.logisticsLink || '').trim() || String(row.waybillNo || '').trim()) ) }, historyItemMatchesKeyword(item, kw) { @@ -840,6 +851,8 @@ export default { item.orderId, item.distributionMark, item.thirdPartyOrderNo, + item.waybillNo, + item.logisticsLink, item.remark ].join(' ').toLowerCase() return blob.includes(kw.toLowerCase()) @@ -867,6 +880,7 @@ export default { rebateAmount: String(parsed.rebate || '').trim(), orderId: String(parsed.orderId || '').trim(), logisticsLink: String(parsed.logistics || '').trim(), + waybillNo: String(parsed.waybill || '').trim(), orderTime: parts.time, rawText: body } @@ -889,6 +903,7 @@ export default { rebateAmount: row.rebateAmount, orderId: row.orderId || '', logisticsLink: row.logisticsLink || '', + waybillNo: row.waybillNo || '', orderTime: row.orderTime || row.createTime, id: row.id } @@ -1011,6 +1026,7 @@ export default { this.form.rebateText = this.formatHistoryMoney(row.rebateAmount) this.form.orderIdText = String(row.orderId || '').trim() this.form.logisticsLink = String(row.logisticsLink || '').trim() + this.form.waybillNo = String(row.waybillNo || '').trim() this.resultText = row.rawText || '' this.historyVisible = false this.$modal.msgSuccess(row.filled ? '已回填历史记录,可修改后录单' : '已回填待填写表单,请补全后录单') diff --git a/src/views/system/jdorder/orderList.vue b/src/views/system/jdorder/orderList.vue index 93a6169..f6b4074 100644 --- a/src/views/system/jdorder/orderList.vue +++ b/src/views/system/jdorder/orderList.vue @@ -289,6 +289,12 @@ icon="el-icon-copy-document"> 复制物流链接 + + 复制物流单号 + @@ -949,6 +955,12 @@ icon="el-icon-copy-document"> 复制物流链接 + + 复制物流单号 + @@ -1007,6 +1019,7 @@ 三方 地址 物流 + 运单 篮子 退货
@@ -1646,19 +1659,21 @@ export default { this.showDesktopExpandedFilters = true } }, - /** 已发货:联盟 express_status≠10;无联盟数据时有物流链接视为已发货 */ + /** 已发货:联盟 express_status≠10;无联盟数据时有物流链接或物流单号视为已发货 */ isOrderShipped(row) { if (!row || row.isRefunded === 1) return false if (row.expressStatus != null) return row.expressStatus !== 10 const link = row.logisticsLink == null ? '' : String(row.logisticsLink).trim() - return link.length > 0 + const waybill = row.waybillNo == null ? '' : String(row.waybillNo).trim() + return link.length > 0 || waybill.length > 0 }, - /** 待发货:联盟 express_status=10;无联盟数据且无物流链接 */ + /** 待发货:联盟 express_status=10;无联盟数据且无物流链接、无物流单号 */ isOrderPendingShip(row) { if (!row || row.isRefunded === 1) return false if (row.expressStatus != null) return row.expressStatus === 10 const link = row.logisticsLink == null ? '' : String(row.logisticsLink).trim() - return link.length === 0 + const waybill = row.waybillNo == null ? '' : String(row.waybillNo).trim() + return link.length === 0 && waybill.length === 0 }, /** 凡系分销标识:历史 F 与 F-中文(如 F-王杰)等同 */ isFanDistributionMark(mark) { @@ -1735,6 +1750,9 @@ export default { case 'copyLogistics': this.copyToClipboard(row.logisticsLink) break + case 'copyWaybill': + this.copyToClipboard(row.waybillNo) + break case 'copyBasketShip': this.copyBasketShipSummary(row) break @@ -2466,7 +2484,9 @@ export default { const model = this.fullModelNumber(row) || '—' const addrRaw = row.address != null ? String(row.address).trim() : '' const addr = (addrRaw.replace(/\s+/g, '')) || '—' - const url = this.normalizeBasketLogisticsUrl(row.logisticsLink) + const url = row.logisticsLink + ? this.normalizeBasketLogisticsUrl(row.logisticsLink) + : ((row.waybillNo && String(row.waybillNo).trim()) || '—') const sep = '————————————' return `「发货摘要」\n${sep}\n型号: ${model}\n地址:${addr}\n物流:${url}\n` },