1
This commit is contained in:
@@ -226,6 +226,14 @@
|
|||||||
title="复制退货信息">
|
title="复制退货信息">
|
||||||
退货复制
|
退货复制
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-document-copy"
|
||||||
|
@click="copySingleOrderExcelText(scope.row)"
|
||||||
|
title="复制录单格式(Excel可粘贴)">
|
||||||
|
录单格式
|
||||||
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="mini"
|
size="mini"
|
||||||
@@ -1298,7 +1306,96 @@ export default {
|
|||||||
this.copyToClipboard(text)
|
this.copyToClipboard(text)
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 复制录单格式文本到剪贴板 */
|
/** 复制单条订单的录单格式文本到剪贴板 */
|
||||||
|
copySingleOrderExcelText(row) {
|
||||||
|
try {
|
||||||
|
// 日期(格式:yyyy/MM/dd)
|
||||||
|
let dateStr = ''
|
||||||
|
if (row.orderTime) {
|
||||||
|
const date = new Date(row.orderTime)
|
||||||
|
const year = date.getFullYear()
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0')
|
||||||
|
const day = String(date.getDate()).padStart(2, '0')
|
||||||
|
dateStr = `${year}/${month}/${day}`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 多多单号(第三方单号,如果没有则使用内部单号)
|
||||||
|
const duoduoOrderNo = (row.thirdPartyOrderNo && row.thirdPartyOrderNo.trim())
|
||||||
|
? row.thirdPartyOrderNo : (row.remark || '')
|
||||||
|
|
||||||
|
// 型号
|
||||||
|
const modelNumber = row.modelNumber || ''
|
||||||
|
|
||||||
|
// 数量(固定为1)
|
||||||
|
const quantity = '1'
|
||||||
|
|
||||||
|
// 姓名(下单人)
|
||||||
|
const buyer = row.buyer || ''
|
||||||
|
|
||||||
|
// 地址
|
||||||
|
const address = row.address || ''
|
||||||
|
|
||||||
|
// 售价(京粉实际价格,如果没有则用付款金额-后返金额)
|
||||||
|
let sellingPrice = row.jingfenActualPrice
|
||||||
|
if (!sellingPrice || sellingPrice === 0) {
|
||||||
|
const payment = row.paymentAmount || 0
|
||||||
|
const rebate = row.rebateAmount || 0
|
||||||
|
sellingPrice = payment - rebate
|
||||||
|
}
|
||||||
|
const sellingPriceStr = (sellingPrice && sellingPrice > 0)
|
||||||
|
? sellingPrice.toFixed(2) : ''
|
||||||
|
|
||||||
|
// 成本(售价 - 利润,利润是后返金额)
|
||||||
|
const rebate = row.rebateAmount || 0
|
||||||
|
let cost = null
|
||||||
|
if (sellingPrice && sellingPrice > 0 && rebate > 0) {
|
||||||
|
cost = sellingPrice - rebate
|
||||||
|
}
|
||||||
|
const costStr = (cost && cost > 0) ? cost.toFixed(2) : ''
|
||||||
|
|
||||||
|
// 利润(后返金额)
|
||||||
|
const profitStr = (rebate > 0) ? rebate.toFixed(2) : ''
|
||||||
|
|
||||||
|
// 京东单号
|
||||||
|
const orderId = row.orderId || ''
|
||||||
|
|
||||||
|
// 物流链接
|
||||||
|
const logisticsLink = row.logisticsLink || ''
|
||||||
|
|
||||||
|
// 下单付款
|
||||||
|
const paymentAmountStr = row.paymentAmount
|
||||||
|
? row.paymentAmount.toFixed(2) : ''
|
||||||
|
|
||||||
|
// 后返
|
||||||
|
const rebateAmountStr = row.rebateAmount
|
||||||
|
? row.rebateAmount.toFixed(2) : ''
|
||||||
|
|
||||||
|
// 按顺序拼接:日期、多多单号、型号、数量、姓名、地址、售价、成本、利润、京东单号、物流、下单付款、后返
|
||||||
|
const text = [
|
||||||
|
dateStr,
|
||||||
|
duoduoOrderNo,
|
||||||
|
modelNumber,
|
||||||
|
quantity,
|
||||||
|
buyer,
|
||||||
|
address,
|
||||||
|
sellingPriceStr,
|
||||||
|
costStr,
|
||||||
|
profitStr,
|
||||||
|
orderId,
|
||||||
|
logisticsLink,
|
||||||
|
paymentAmountStr,
|
||||||
|
rebateAmountStr
|
||||||
|
].join('\t')
|
||||||
|
|
||||||
|
this.copyToClipboard(text)
|
||||||
|
this.$message.success('已复制到剪贴板,可以直接粘贴到Excel')
|
||||||
|
} catch (e) {
|
||||||
|
this.$message.error('复制失败:' + (e.message || '未知错误'))
|
||||||
|
console.error('复制单条订单录单格式失败', e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 复制录单格式文本到剪贴板(批量) */
|
||||||
async handleCopyExcelText() {
|
async handleCopyExcelText() {
|
||||||
try {
|
try {
|
||||||
this.prepareQueryParams()
|
this.prepareQueryParams()
|
||||||
|
|||||||
Reference in New Issue
Block a user