This commit is contained in:
Leo
2025-11-21 20:57:46 +08:00
parent 6ef5d644a1
commit bea1e46deb

View File

@@ -226,6 +226,14 @@
title="复制退货信息">
退货复制
</el-button>
<el-button
type="text"
size="mini"
icon="el-icon-document-copy"
@click="copySingleOrderExcelText(scope.row)"
title="复制录单格式Excel可粘贴">
录单格式
</el-button>
<el-button
type="text"
size="mini"
@@ -1298,7 +1306,96 @@ export default {
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() {
try {
this.prepareQueryParams()