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