Selaa lähdekoodia

feat(admin): 订单状态列显示支付超时标签

- 在订单状态列中增加支付超时判断逻辑
- 超过48小时未支付的订单状态旁显示红色"超时"标签
- 新增 isPaymentOverdue 方法用于判断支付是否超时
- 格式化支付时间展示方式
- 调整订单状态列宽度以适应新增内容
runphp 4 kuukautta sitten
vanhempi
sitoutus
b64a051e22
1 muutettua tiedostoa jossa 20 lisäystä ja 1 poistoa
  1. 20 1
      resource/admin/TradeOrder.vue

+ 20 - 1
resource/admin/TradeOrder.vue

@@ -70,7 +70,14 @@
             <span class="amount-highlight">¥{{ formatAmount(row.amount) }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="order_state_text" label="状态" width="100" />
+        <el-table-column prop="order_state_text" label="状态" width="120">
+          <template #default="{ row }">
+            <div>
+              <span>{{ row.order_state_text }}</span>
+              <el-tag v-if="isPaymentOverdue(row)" type="danger" size="mini" effect="dark">超时</el-tag>
+            </div>
+          </template>
+        </el-table-column>
         <el-table-column label="支付时间" width="150">
           <template #default="{ row }">
             <div>{{ formatPaymentTime(row.payment_time) }}</div>
@@ -211,6 +218,18 @@ export default {
       return bizTypeMap[bizType] || bizType;
     },
 
+    // 判断是否支付超时(超过48小时且订单状态为1)
+    isPaymentOverdue(row) {
+      // 判断支付时间是否超过48小时且订单状态为1
+      if (row.order_state === 1 && row.payment_time) {
+        const paymentTime = new Date(row.payment_time * 1000).getTime();
+        const currentTime = new Date().getTime();
+        const hoursDiff = (currentTime - paymentTime) / (1000 * 60 * 60);
+        return hoursDiff > 48;
+      }
+      return false;
+    },
+
     // 获取列表数据
     async fetchData() {
       if (!this.axiosInstance) {