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`
},