From b8fe6fc9b09ecf0e7f128b151d09966942ce5a5e Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 23 Feb 2026 00:50:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(order):=20=E5=89=8D=E7=AB=AF=E5=85=9C?= =?UTF-8?q?=E5=BA=95=E8=AE=A1=E7=AE=97=E8=AE=A2=E5=8D=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=8A=B6=E6=80=81=EF=BC=8C=E4=B8=8D=E4=BE=9D=E8=B5=96=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=20displayStatusText?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getDisplayStatus() 方法,优先使用后端 displayStatusText - 后端未部署时,前端根据 status + assessmentStatus 自行计算显示状态 - 修复订单状态不显示的问题 --- uniapp/pages/order/list/index.vue | 37 ++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/uniapp/pages/order/list/index.vue b/uniapp/pages/order/list/index.vue index fc9e332..45d6eda 100644 --- a/uniapp/pages/order/list/index.vue +++ b/uniapp/pages/order/list/index.vue @@ -32,14 +32,39 @@ const pageSize = ref(10) const total = ref(0) const noMore = ref(false) +/** + * 获取订单的综合显示状态文本 + * 优先使用后端返回的 displayStatusText,否则前端根据订单状态和测评状态计算 + */ +function getDisplayStatus(order) { + if (order.displayStatusText) return order.displayStatusText + + // 前端兜底计算:根据订单状态和测评记录状态 + const orderStatus = order.status + const assessmentStatus = order.assessmentStatus + + // 退款/取消/待支付优先 + if (orderStatus === 4) return '退款中' + if (orderStatus === 5) return '已退款' + if (orderStatus === 6) return '已取消' + if (orderStatus === 1) return '待支付' + + // 已支付/已完成的订单,根据测评记录状态显示 + if (assessmentStatus) { + const map = { 1: '待测评', 2: '测评中', 3: '测评生成中', 4: '已测评' } + return map[assessmentStatus] || order.statusText || '已支付' + } + + return order.statusText || '已支付' +} + /** * 根据当前tab过滤订单列表 - * 前端过滤,tab分类基于 displayStatusText 的混合状态 */ const filteredList = computed(() => { if (activeTab.value === 'all') return orderList.value return orderList.value.filter(order => { - const dst = order.displayStatusText + const dst = getDisplayStatus(order) if (activeTab.value === 'completed') return dst === '已测评' if (activeTab.value === 'pending') return dst === '待测评' || dst === '测评中' if (activeTab.value === 'refunded') return dst === '已退款' || dst === '退款中' @@ -51,7 +76,7 @@ const filteredList = computed(() => { * 获取显示状态的样式类 */ function getStatusClass(order) { - const dst = order.displayStatusText + const dst = getDisplayStatus(order) if (dst === '已测评' || dst === '待测评') return 'status-green' if (dst === '测评生成中' || dst === '退款中' || dst === '已退款') return 'status-red' return 'status-gray' @@ -148,14 +173,14 @@ function startAssessment(order) { * 判断是否显示查看结果按钮 */ function showViewResultBtn(order) { - return order.displayStatusText === '已测评' + return getDisplayStatus(order) === '已测评' } /** * 判断是否显示开始测评按钮 */ function showStartBtn(order) { - return order.displayStatusText === '待测评' + return getDisplayStatus(order) === '待测评' } onShow(() => { @@ -216,7 +241,7 @@ onShow(() => { 订单状态 - {{ order.displayStatusText }} + {{ getDisplayStatus(order) }}