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) }}