This commit is contained in:
van
2026-06-28 12:23:02 +08:00
parent 67fc599031
commit 6a863d3bc7
2 changed files with 106 additions and 2 deletions

View File

@@ -1584,8 +1584,8 @@ export default {
this._patchRowTimers = {} this._patchRowTimers = {}
this._persistOrderTimers = {} this._persistOrderTimers = {}
this._persistOrderPendingMsg = {} this._persistOrderPendingMsg = {}
// 设置默认日期为今天
this.setDefaultDateRange() this.setDefaultDateRange()
this.applyRouteSearchQuery()
this.getListWithFallback() this.getListWithFallback()
this.loadShopOptions() this.loadShopOptions()
this.handleOAuthMessage = (event) => { this.handleOAuthMessage = (event) => {
@@ -1775,6 +1775,19 @@ export default {
this.queryParams.beginTime = todayStr this.queryParams.beginTime = todayStr
this.queryParams.endTime = todayStr this.queryParams.endTime = todayStr
}, },
/** 从路由参数带入慢单搜索(京粉列表跳转) */
applyRouteSearchQuery() {
const q = this.$route.query || {}
if (!q.orderSearch) {
return
}
this.queryParams.orderSearch = q.orderSearch
if (q.allDates === '1') {
this.dateRange = []
this.queryParams.beginTime = undefined
this.queryParams.endTime = undefined
}
},
/** 格式化日期为 yyyy-MM-dd 格式 */ /** 格式化日期为 yyyy-MM-dd 格式 */
formatDate(date) { formatDate(date) {
const year = date.getFullYear() const year = date.getFullYear()

View File

@@ -173,7 +173,36 @@
<span>{{ getAdminName(scope.row.unionId) }}</span> <span>{{ getAdminName(scope.row.unionId) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单号" align="center" prop="orderId" width="120" /> <el-table-column label="订单号" align="center" prop="orderId" width="148">
<template slot-scope="scope">
<span class="order-id-text">{{ scope.row.orderId }}</span>
<el-popover
v-if="scope.row.linkedJdOrder"
placement="right"
width="340"
trigger="click"
>
<div class="linked-jd-popover">
<div class="linked-jd-title">已关联本地慢单</div>
<div class="linked-jd-row"><span>内部单号</span>{{ scope.row.linkedJdOrder.remark || '-' }}</div>
<div class="linked-jd-row"><span>型号</span>{{ formatLinkedModel(scope.row.linkedJdOrder) }}</div>
<div class="linked-jd-row"><span>下单人</span>{{ scope.row.linkedJdOrder.buyer || '-' }}</div>
<div class="linked-jd-row"><span>付款</span>¥{{ scope.row.linkedJdOrder.paymentAmount != null ? scope.row.linkedJdOrder.paymentAmount : '-' }}</div>
<div class="linked-jd-row"><span>后返</span>¥{{ scope.row.linkedJdOrder.rebateAmount != null ? scope.row.linkedJdOrder.rebateAmount : '-' }}</div>
<div class="linked-jd-row"><span>状态</span>{{ scope.row.linkedJdOrder.status || '-' }}</div>
<div class="linked-jd-actions">
<el-button type="primary" size="mini" @click="goToSlowOrder(scope.row)">打开慢单</el-button>
</div>
</div>
<i
slot="reference"
class="el-icon-link linked-jd-icon"
title="已关联慢单,点击查看"
@click.stop
/>
</el-popover>
</template>
</el-table-column>
<el-table-column label="商品名称" align="center" prop="skuName" :show-overflow-tooltip="true" min-width="200" /> <el-table-column label="商品名称" align="center" prop="skuName" :show-overflow-tooltip="true" min-width="200" />
<el-table-column label="计佣金额" align="center" prop="estimateCosPrice" width="100" sortable="custom" @sort-change="handleSortChange"> <el-table-column label="计佣金额" align="center" prop="estimateCosPrice" width="100" sortable="custom" @sort-change="handleSortChange">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -235,6 +264,13 @@
<!-- 基本信息 --> <!-- 基本信息 -->
<el-descriptions-item label="订单号">{{ currentOrder.orderId }}</el-descriptions-item> <el-descriptions-item label="订单号">{{ currentOrder.orderId }}</el-descriptions-item>
<el-descriptions-item label="主单号">{{ currentOrder.parentId || '-' }}</el-descriptions-item> <el-descriptions-item label="主单号">{{ currentOrder.parentId || '-' }}</el-descriptions-item>
<el-descriptions-item label="本地慢单" :span="2" v-if="currentOrder.linkedJdOrder">
<span>{{ currentOrder.linkedJdOrder.remark || '-' }}</span>
<span v-if="formatLinkedModel(currentOrder.linkedJdOrder) !== '-'" style="margin-left: 8px; color: #909399;">
{{ formatLinkedModel(currentOrder.linkedJdOrder) }}
</span>
<el-button type="text" size="mini" style="margin-left: 8px;" @click="goToSlowOrder(currentOrder)">打开慢单</el-button>
</el-descriptions-item>
<el-descriptions-item label="商品ID">{{ currentOrder.skuId }}</el-descriptions-item> <el-descriptions-item label="商品ID">{{ currentOrder.skuId }}</el-descriptions-item>
<el-descriptions-item label="商品名称" :span="2">{{ currentOrder.skuName }}</el-descriptions-item> <el-descriptions-item label="商品名称" :span="2">{{ currentOrder.skuName }}</el-descriptions-item>
<el-descriptions-item label="店铺名称" :span="2">{{ goodsDetailShopName }}</el-descriptions-item> <el-descriptions-item label="店铺名称" :span="2">{{ goodsDetailShopName }}</el-descriptions-item>
@@ -914,6 +950,25 @@ export default {
this.backfillLoading = false this.backfillLoading = false
}) })
}, },
formatLinkedModel(linked) {
if (!linked) return '-'
const model = linked.modelNumber || ''
const shop = linked.modelShop || ''
if (model && shop) return model + shop
return model || shop || '-'
},
goToSlowOrder(row) {
const linked = row && row.linkedJdOrder
if (!linked) return
const orderSearch = row.orderId != null ? String(row.orderId) : linked.orderId
this.$router.push({
path: '/sloworder/index',
query: {
orderSearch,
allDates: '1'
}
})
},
/** 切换统计显示 */ /** 切换统计显示 */
toggleStatistics() { toggleStatistics() {
this.showStatistics = !this.showStatistics; this.showStatistics = !this.showStatistics;
@@ -1039,6 +1094,42 @@ export default {
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
} }
.order-id-text {
vertical-align: middle;
}
.linked-jd-icon {
margin-left: 4px;
color: #67c23a;
cursor: pointer;
font-weight: bold;
vertical-align: middle;
}
.linked-jd-popover .linked-jd-title {
font-weight: bold;
margin-bottom: 8px;
color: #303133;
}
.linked-jd-popover .linked-jd-row {
margin-bottom: 6px;
font-size: 13px;
line-height: 1.5;
word-break: break-all;
}
.linked-jd-popover .linked-jd-row span {
display: inline-block;
width: 56px;
color: #909399;
}
.linked-jd-popover .linked-jd-actions {
margin-top: 10px;
text-align: right;
}
/* 主容器布局 */ /* 主容器布局 */
.app-container { .app-container {
display: flex; display: flex;