liujie
2026-09-09 39f6fca28e3f78abe48f08e474ec011abb990b36
mingdaojingjiang_uniapp/mingdaojingjiang_uniapp/pages/orders/index.vue
@@ -93,7 +93,7 @@
import { onLoad, onShow } from '@dcloudio/uni-app'
import AppNav from '@/components/app-nav/app-nav.vue'
import CancelOrderSheet from '@/components/cancel-order-sheet/cancel-order-sheet.vue'
import { getMiniOrders } from '@/services/order'
import { cancelTourOrder, getMiniOrders } from '@/services/order'
import { isLoggedIn, useLoginGuard } from '@/utils/auth-guard'
useLoginGuard('/pages/orders/index')
@@ -108,6 +108,7 @@
const statusTextMap = {
  pendingPay: '待付款',
  pendingAccept: '待接单',
  pendingGuide: '待讲解',
  serving: '讲解中',
  pendingReview: '待评价',
@@ -124,6 +125,7 @@
const loading = ref(false)
const cancelSheetVisible = ref(false)
const selectedCancelOrder = ref(null)
const cancelingOrder = ref(false)
let requestSequence = 0
const hasMore = computed(() => orders.value.length < total.value)
@@ -211,6 +213,13 @@
    return
  }
  if (order.status === 'pendingAccept') {
    uni.navigateTo({
      url: `/pages/order-waiting/index?orderId=${order.id}`
    })
    return
  }
  if (order.status === 'pendingGuide') {
    uni.navigateTo({
      url: `/pages/order-pending-guide/index?id=${order.id}`
@@ -272,12 +281,24 @@
  cancelSheetVisible.value = false
}
function confirmCancelOrder() {
async function confirmCancelOrder() {
  const orderId = selectedCancelOrder.value && selectedCancelOrder.value.id
  cancelSheetVisible.value = false
  if (!orderId || cancelingOrder.value) return
  cancelingOrder.value = true
  try {
    await cancelTourOrder(orderId)
  } catch (error) {
    uni.showToast({ title: error.message || '取消订单失败', icon: 'none' })
    return
  } finally {
    cancelingOrder.value = false
    selectedCancelOrder.value = null
  }
  uni.navigateTo({
    url: `/pages/order-canceled/index${orderId ? `?id=${orderId}` : ''}`
    url: `/pages/order-canceled/index?id=${orderId}`
  })
}
</script>
@@ -406,6 +427,7 @@
  color: #ff9f1a;
}
.order-card__status--pendingAccept,
.order-card__status--pendingGuide,
.order-card__status--serving {
  color: #278bff;