1
This commit is contained in:
@@ -95,7 +95,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-divider content-position="left">落库必填(与中控录单一致)</el-divider>
|
||||
<el-divider content-position="left">落库必填(物流链接或物流单号填一项即可)</el-divider>
|
||||
<el-form-item label="下单人">
|
||||
<el-input v-model="form.buyer" placeholder="落库必填" clearable />
|
||||
</el-form-item>
|
||||
@@ -109,7 +109,10 @@
|
||||
<el-input v-model="form.orderIdText" placeholder="落库必填,与表单「订单号(需填)」一致" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="物流链接">
|
||||
<el-input v-model="form.logisticsLink" type="textarea" :rows="2" placeholder="落库必填" clearable />
|
||||
<el-input v-model="form.logisticsLink" type="textarea" :rows="2" placeholder="有链接就填;没有则可改填下方物流单号" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="物流单号">
|
||||
<el-input v-model="form.waybillNo" placeholder="无物流链接时必填,如 SF1234567890" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<div v-if="!isMobile" class="btn-row">
|
||||
@@ -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 ? '已回填历史记录,可修改后录单' : '已回填待填写表单,请补全后录单')
|
||||
|
||||
@@ -289,6 +289,12 @@
|
||||
icon="el-icon-copy-document">
|
||||
复制物流链接
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="row.waybillNo"
|
||||
:command="{action: 'copyWaybill', row: row}"
|
||||
icon="el-icon-copy-document">
|
||||
复制物流单号
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:command="{action: 'copyBasketShip', row: row}"
|
||||
icon="el-icon-document-copy">
|
||||
@@ -949,6 +955,12 @@
|
||||
icon="el-icon-copy-document">
|
||||
复制物流链接
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="scope.row.waybillNo"
|
||||
:command="{action: 'copyWaybill', row: scope.row}"
|
||||
icon="el-icon-copy-document">
|
||||
复制物流单号
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:command="{action: 'copyBasketShip', row: scope.row}"
|
||||
icon="el-icon-document-copy">
|
||||
@@ -1007,6 +1019,7 @@
|
||||
<el-button v-if="scope.row.thirdPartyOrderNo" type="text" size="mini" class="jd-act-link" icon="el-icon-copy-document" @click="copyToClipboard(scope.row.thirdPartyOrderNo)" title="复制第三方单号">三方</el-button>
|
||||
<el-button type="text" size="mini" class="jd-act-link" icon="el-icon-copy-document" @click="copyToClipboard(scope.row.address)" title="复制地址">地址</el-button>
|
||||
<el-button v-if="scope.row.logisticsLink" type="text" size="mini" class="jd-act-link" icon="el-icon-copy-document" @click="copyToClipboard(scope.row.logisticsLink)" title="复制物流链接">物流</el-button>
|
||||
<el-button v-if="scope.row.waybillNo" type="text" size="mini" class="jd-act-link" icon="el-icon-copy-document" @click="copyToClipboard(scope.row.waybillNo)" title="复制物流单号">运单</el-button>
|
||||
<el-button type="text" size="mini" class="jd-act-link" icon="el-icon-document-copy" @click="copyBasketShipSummary(scope.row)" title="复制篮子发货摘要(型号、地址、物流)">篮子</el-button>
|
||||
<el-button type="text" size="mini" class="jd-act-link" @click="copyReturnInfo(scope.row)" title="复制退货信息">退货</el-button>
|
||||
</div>
|
||||
@@ -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`
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user