1
This commit is contained in:
@@ -410,35 +410,35 @@
|
|||||||
<!-- 多选列(仅桌面端显示) -->
|
<!-- 多选列(仅桌面端显示) -->
|
||||||
<el-table-column v-if="!isMobile" type="selection" width="55" fixed="left" align="center"/>
|
<el-table-column v-if="!isMobile" type="selection" width="55" fixed="left" align="center"/>
|
||||||
<!-- 核心信息列 -->
|
<!-- 核心信息列 -->
|
||||||
<el-table-column label="内部单号" prop="remark" width="140" sortable :fixed="isMobile ? false : 'left'"/>
|
<el-table-column label="内部单号" prop="remark" width="120" sortable :fixed="isMobile ? false : 'left'"/>
|
||||||
<el-table-column label="订单号" prop="orderId" width="180"/>
|
<el-table-column label="订单号" prop="orderId" width="160"/>
|
||||||
<el-table-column label="第三方单号" prop="thirdPartyOrderNo" width="150">
|
<el-table-column label="第三方单号" prop="thirdPartyOrderNo" width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.thirdPartyOrderNo">{{ scope.row.thirdPartyOrderNo }}</span>
|
<span v-if="scope.row.thirdPartyOrderNo">{{ scope.row.thirdPartyOrderNo }}</span>
|
||||||
<span v-else style="color: #999;">-</span>
|
<span v-else style="color: #999;">-</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 业务信息列 -->
|
<!-- 业务信息列 -->
|
||||||
<el-table-column label="标记" prop="distributionMark" width="100"/>
|
<el-table-column label="标记" prop="distributionMark" width="70" align="center"/>
|
||||||
<el-table-column label="型号" prop="modelNumber" width="160"/>
|
<el-table-column label="型号" prop="modelNumber" width="140"/>
|
||||||
<el-table-column label="地址" prop="address" min-width="280" show-overflow-tooltip class-name="address-cell">
|
<el-table-column label="地址" prop="address" min-width="220" show-overflow-tooltip class-name="address-cell">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="font-weight: bold; display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">{{ scope.row.address }}</span>
|
<span style="font-weight: bold; display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">{{ scope.row.address }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 金额信息列 -->
|
<!-- 金额信息列 -->
|
||||||
<el-table-column label="付款金额" prop="paymentAmount" width="110" align="right">
|
<el-table-column label="付款金额" prop="paymentAmount" width="90" align="right">
|
||||||
<template slot-scope="scope">{{ toYuan(scope.row.paymentAmount) }}</template>
|
<template slot-scope="scope">{{ toYuan(scope.row.paymentAmount) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="后返金额" prop="rebateAmount" width="110" align="right">
|
<el-table-column label="后返金额" prop="rebateAmount" width="90" align="right">
|
||||||
<template slot-scope="scope">{{ toYuan(scope.row.rebateAmount) }}</template>
|
<template slot-scope="scope">{{ toYuan(scope.row.rebateAmount) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="售价渠道" prop="sellingPriceType" width="108" align="center">
|
<el-table-column label="售价渠道" prop="sellingPriceType" width="88" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="scope.row.distributionMark === 'F'">
|
<template v-if="scope.row.distributionMark === 'F'">
|
||||||
<el-select v-model="scope.row.sellingPriceType" placeholder="—" size="mini" clearable style="width: 100px;" @change="onOrderSellingPriceTypeChange(scope.row)">
|
<el-select v-model="scope.row.sellingPriceType" placeholder="—" size="mini" clearable style="width: 80px;" @change="onOrderSellingPriceTypeChange(scope.row)">
|
||||||
<el-option label="直款" value="direct" />
|
<el-option label="直款" value="direct" />
|
||||||
<el-option label="闲鱼" value="xianyu" />
|
<el-option label="闲鱼" value="xianyu" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -446,23 +446,23 @@
|
|||||||
<span v-else style="color: #c0c4cc;">—</span>
|
<span v-else style="color: #c0c4cc;">—</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="售价" prop="sellingPrice" width="128" align="right">
|
<el-table-column label="售价" prop="sellingPrice" width="100" align="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="scope.row.distributionMark === 'F'">
|
<template v-if="scope.row.distributionMark === 'F'">
|
||||||
<el-input-number v-model="scope.row.sellingPrice" :min="0" :step="1" :precision="2" size="mini" controls-position="right" style="width: 118px;" @change="onOrderSellingPriceChange(scope.row)" />
|
<el-input-number v-model="scope.row.sellingPrice" :min="0" :step="1" :precision="2" size="mini" controls-position="right" style="width: 90px;" @change="onOrderSellingPriceChange(scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
<span v-else>{{ scope.row.sellingPrice != null ? toYuan(scope.row.sellingPrice) : '—' }}</span>
|
<span v-else>{{ scope.row.sellingPrice != null ? toYuan(scope.row.sellingPrice) : '—' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="利润" prop="profit" width="128" align="right">
|
<el-table-column label="利润" prop="profit" width="100" align="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="scope.row.distributionMark === 'F' || scope.row.distributionMark === 'H-TF'">
|
<template v-if="scope.row.distributionMark === 'F' || scope.row.distributionMark === 'H-TF'">
|
||||||
<el-input-number v-model="scope.row.profit" :step="1" :precision="2" size="mini" controls-position="right" style="width: 118px;" @change="onOrderProfitChange(scope.row)" />
|
<el-input-number v-model="scope.row.profit" :step="1" :precision="2" size="mini" controls-position="right" style="width: 90px;" @change="onOrderProfitChange(scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
<span v-else>{{ scope.row.profit != null ? toYuan(scope.row.profit) : '—' }}</span>
|
<span v-else>{{ scope.row.profit != null ? toYuan(scope.row.profit) : '—' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="售价/利润" width="108" align="center">
|
<el-table-column label="快捷操作" width="90" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="scope.row.distributionMark === 'F'">
|
<template v-if="scope.row.distributionMark === 'F'">
|
||||||
<el-button type="text" size="mini" @click="fillSellingPriceFromConfig(scope.row)">填价</el-button>
|
<el-button type="text" size="mini" @click="fillSellingPriceFromConfig(scope.row)">填价</el-button>
|
||||||
@@ -474,7 +474,7 @@
|
|||||||
<span v-else style="color: #c0c4cc;">—</span>
|
<span v-else style="color: #c0c4cc;">—</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="后返备注" prop="rebateRemarkJson" min-width="200" show-overflow-tooltip>
|
<el-table-column label="后返备注" prop="rebateRemarkJson" min-width="160" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="!scope.row.rebateRemarkJson">
|
<template v-if="!scope.row.rebateRemarkJson">
|
||||||
<span style="color: #c0c4cc;">-</span>
|
<span style="color: #c0c4cc;">-</span>
|
||||||
@@ -505,106 +505,106 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="下单人" prop="buyer" width="100"/>
|
<el-table-column label="下单人" prop="buyer" width="80"/>
|
||||||
|
|
||||||
<!-- 退款状态标签列(多行显示) -->
|
<!-- 退款状态拆分为多列,避免行高被撑大 -->
|
||||||
<el-table-column label="退款状态" width="160" align="left">
|
<el-table-column label="退款" prop="isRefunded" width="70" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="display: flex; flex-direction: column; gap: 6px;">
|
<el-tag
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
:type="scope.row.isRefunded === 1 ? 'warning' : 'info'"
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">是否退款:</span>
|
size="small"
|
||||||
<el-tag
|
:title="scope.row.isRefunded === 1 && scope.row.refundDate ? '退款日期:' + parseTime(scope.row.refundDate) : ''"
|
||||||
:type="scope.row.isRefunded === 1 ? 'warning' : 'info'"
|
@click.native="toggleRefunded(scope.row)"
|
||||||
size="small"
|
style="cursor: pointer;">
|
||||||
:title="scope.row.isRefunded === 1 && scope.row.refundDate ? '退款日期:' + parseTime(scope.row.refundDate) : ''"
|
{{ scope.row.isRefunded === 1 ? '已退款' : '未退款' }}
|
||||||
@click.native="toggleRefunded(scope.row)"
|
</el-tag>
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isRefunded === 1 ? '已退款' : '未退款' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">退款给我:</span>
|
|
||||||
<el-tag
|
|
||||||
:type="scope.row.isRefundReceived === 1 ? 'success' : 'info'"
|
|
||||||
size="small"
|
|
||||||
:title="scope.row.isRefundReceived === 1 && scope.row.refundReceivedDate ? '退款到账日期:' + parseTime(scope.row.refundReceivedDate) : ''"
|
|
||||||
@click.native="toggleRefundReceived(scope.row)"
|
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isRefundReceived === 1 ? '退款到账' : '未到账' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">后返到账:</span>
|
|
||||||
<el-tag
|
|
||||||
:type="scope.row.isRebateReceived === 1 ? 'success' : 'info'"
|
|
||||||
size="small"
|
|
||||||
:title="scope.row.isRebateReceived === 1 && scope.row.rebateReceivedDate ? '后返到账日期:' + parseTime(scope.row.rebateReceivedDate) : ''"
|
|
||||||
@click.native="toggleRebateReceived(scope.row)"
|
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isRebateReceived === 1 ? '后返到账' : '未到账' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">点过价保:</span>
|
|
||||||
<el-tag
|
|
||||||
:type="scope.row.isPriceProtected === 1 ? 'warning' : 'info'"
|
|
||||||
size="small"
|
|
||||||
:title="scope.row.isPriceProtected === 1 && scope.row.priceProtectedDate ? '价保日期:' + parseTime(scope.row.priceProtectedDate) : ''"
|
|
||||||
@click.native="togglePriceProtected(scope.row)"
|
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isPriceProtected === 1 ? '点过价保' : '未点价保' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">开过专票:</span>
|
|
||||||
<el-tag
|
|
||||||
:type="scope.row.isInvoiceOpened === 1 ? 'success' : 'info'"
|
|
||||||
size="small"
|
|
||||||
:title="scope.row.isInvoiceOpened === 1 && scope.row.invoiceOpenedDate ? '开票日期:' + parseTime(scope.row.invoiceOpenedDate) : ''"
|
|
||||||
@click.native="toggleInvoiceOpened(scope.row)"
|
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isInvoiceOpened === 1 ? '开过专票' : '未开专票' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
|
||||||
<span style="min-width: 80px; font-size: 12px; color: #606266;">晒过评价:</span>
|
|
||||||
<el-tag
|
|
||||||
:type="scope.row.isReviewPosted === 1 ? 'success' : 'info'"
|
|
||||||
size="small"
|
|
||||||
:title="scope.row.isReviewPosted === 1 && scope.row.reviewPostedDate ? '评价日期:' + parseTime(scope.row.reviewPostedDate) : ''"
|
|
||||||
@click.native="toggleReviewPosted(scope.row)"
|
|
||||||
style="cursor: pointer; flex: 1;">
|
|
||||||
{{ scope.row.isReviewPosted === 1 ? '晒过评价' : '未晒评价' }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="退款到账" prop="isRefundReceived" width="80" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.isRefundReceived === 1 ? 'success' : 'info'"
|
||||||
|
size="small"
|
||||||
|
:title="scope.row.isRefundReceived === 1 && scope.row.refundReceivedDate ? '退款到账日期:' + parseTime(scope.row.refundReceivedDate) : ''"
|
||||||
|
@click.native="toggleRefundReceived(scope.row)"
|
||||||
|
style="cursor: pointer;">
|
||||||
|
{{ scope.row.isRefundReceived === 1 ? '已到账' : '未到账' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="后返到账" prop="isRebateReceived" width="76" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.isRebateReceived === 1 ? 'success' : 'info'"
|
||||||
|
size="small"
|
||||||
|
:title="scope.row.isRebateReceived === 1 && scope.row.rebateReceivedDate ? '后返到账日期:' + parseTime(scope.row.rebateReceivedDate) : ''"
|
||||||
|
@click.native="toggleRebateReceived(scope.row)"
|
||||||
|
style="cursor: pointer;">
|
||||||
|
{{ scope.row.isRebateReceived === 1 ? '已到账' : '未到账' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="价保" prop="isPriceProtected" width="66" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.isPriceProtected === 1 ? 'warning' : 'info'"
|
||||||
|
size="small"
|
||||||
|
:title="scope.row.isPriceProtected === 1 && scope.row.priceProtectedDate ? '价保日期:' + parseTime(scope.row.priceProtectedDate) : ''"
|
||||||
|
@click.native="togglePriceProtected(scope.row)"
|
||||||
|
style="cursor: pointer;">
|
||||||
|
{{ scope.row.isPriceProtected === 1 ? '是' : '否' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="专票" prop="isInvoiceOpened" width="60" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.isInvoiceOpened === 1 ? 'success' : 'info'"
|
||||||
|
size="small"
|
||||||
|
:title="scope.row.isInvoiceOpened === 1 && scope.row.invoiceOpenedDate ? '开票日期:' + parseTime(scope.row.invoiceOpenedDate) : ''"
|
||||||
|
@click.native="toggleInvoiceOpened(scope.row)"
|
||||||
|
style="cursor: pointer;">
|
||||||
|
{{ scope.row.isInvoiceOpened === 1 ? '是' : '否' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="评价" prop="isReviewPosted" width="60" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.isReviewPosted === 1 ? 'success' : 'info'"
|
||||||
|
size="small"
|
||||||
|
:title="scope.row.isReviewPosted === 1 && scope.row.reviewPostedDate ? '评价日期:' + parseTime(scope.row.reviewPostedDate) : ''"
|
||||||
|
@click.native="toggleReviewPosted(scope.row)"
|
||||||
|
style="cursor: pointer;">
|
||||||
|
{{ scope.row.isReviewPosted === 1 ? '是' : '否' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 时间信息列 -->
|
<!-- 时间信息列 -->
|
||||||
<el-table-column label="创建时间" prop="createTime" width="160" sortable="custom">
|
<el-table-column label="创建时间" prop="createTime" width="140" sortable="custom">
|
||||||
<template slot-scope="scope">{{ parseTime(scope.row.createTime) }}</template>
|
<template slot-scope="scope">{{ parseTime(scope.row.createTime) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="完成时间" prop="finishTime" width="160">
|
<el-table-column label="完成时间" prop="finishTime" width="130">
|
||||||
<template slot-scope="scope">{{ parseTime(scope.row.finishTime) || '-' }}</template>
|
<template slot-scope="scope">{{ parseTime(scope.row.finishTime) || '-' }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 其他信息列(可折叠) -->
|
<!-- 其他信息列(可折叠) -->
|
||||||
<el-table-column label="备注/状态" prop="status" min-width="120" show-overflow-tooltip/>
|
<el-table-column label="备注/状态" prop="status" min-width="100" show-overflow-tooltip/>
|
||||||
<el-table-column label="订单状态" prop="orderStatus" width="100" align="center">
|
<el-table-column label="订单状态" prop="orderStatus" width="80" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag
|
<el-tag
|
||||||
v-if="scope.row.orderStatus != null"
|
v-if="scope.row.orderStatus != null"
|
||||||
:type="getOrderStatusType(scope.row.orderStatus)"
|
:type="getOrderStatusType(scope.row.orderStatus)"
|
||||||
size="small">
|
size="small">
|
||||||
{{ getOrderStatusText(scope.row.orderStatus) }}
|
{{ getOrderStatusTextShort(scope.row.orderStatus) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<span v-else style="color: #999;">-</span>
|
<span v-else style="color: #999;">-</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 操作列(统一放在最右侧) -->
|
<!-- 操作列(统一放在最右侧) -->
|
||||||
<el-table-column label="操作" fixed="right" :width="isMobile ? 60 : 280" align="center" class-name="action-column">
|
<el-table-column label="操作" fixed="right" :width="isMobile ? 60 : 300" align="center" class-name="action-column">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- 移动端:悬浮操作按钮 -->
|
<!-- 移动端:悬浮操作按钮 -->
|
||||||
<div v-if="isMobile" class="mobile-action-wrapper">
|
<div v-if="isMobile" class="mobile-action-wrapper">
|
||||||
@@ -2310,6 +2310,44 @@ export default {
|
|||||||
return statusMap[status] || `状态${status}`
|
return statusMap[status] || `状态${status}`
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** 获取订单状态文本(短版,用于表格窄列) */
|
||||||
|
getOrderStatusTextShort(status) {
|
||||||
|
const statusMap = {
|
||||||
|
'-100': '无变化',
|
||||||
|
'-1': '未知',
|
||||||
|
2: '拆单',
|
||||||
|
3: '取消',
|
||||||
|
4: '帮帮主',
|
||||||
|
5: '账号异常',
|
||||||
|
6: '赠品不返',
|
||||||
|
7: '校园单',
|
||||||
|
8: '企业单',
|
||||||
|
9: '团购单',
|
||||||
|
11: '乡村推广',
|
||||||
|
13: '违规其他',
|
||||||
|
14: '网址不符',
|
||||||
|
15: '待付款',
|
||||||
|
16: '已付款',
|
||||||
|
17: '已完成',
|
||||||
|
19: '佣金0',
|
||||||
|
20: '首购无效',
|
||||||
|
21: '云店单',
|
||||||
|
22: 'PLUS佣金0',
|
||||||
|
23: '支付有礼',
|
||||||
|
24: '已付定',
|
||||||
|
25: '流量劫持',
|
||||||
|
26: '流量异常',
|
||||||
|
27: '违规规则',
|
||||||
|
28: '交易异常',
|
||||||
|
29: '跨屏跨店',
|
||||||
|
30: '超上限',
|
||||||
|
31: '黑名单',
|
||||||
|
33: '超市卡',
|
||||||
|
34: '推卡无效'
|
||||||
|
}
|
||||||
|
return statusMap[status] || `${status}`
|
||||||
|
},
|
||||||
|
|
||||||
/** 获取订单状态标签类型 */
|
/** 获取订单状态标签类型 */
|
||||||
getOrderStatusType(status) {
|
getOrderStatusType(status) {
|
||||||
// 取消状态(优先级最高)
|
// 取消状态(优先级最高)
|
||||||
|
|||||||
Reference in New Issue
Block a user