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