Prechádzať zdrojové kódy

✨ feat(order): 添加订单流程用户反馈提示

- 手机号获取成功/失败时显示对应提示
- 添加乘客前检查手机号并提示
- 乘客添加成功/已存在时显示对应提示
- 删除乘客时显示删除成功提示
- 支付前检查手机号、乘客数量、座位数并提示
- 支付失败时显示错误提示
yourname 3 mesiacov pred
rodič
commit
ae04db9246
1 zmenil súbory, kde vykonal 56 pridanie a 7 odobranie
  1. 56 7
      mini/src/pages/order/index.tsx

+ 56 - 7
mini/src/pages/order/index.tsx

@@ -129,15 +129,29 @@ export default function OrderPage() {
       // TODO: 实际项目中需要发送code到后端获取手机号
       setPhoneNumber('138****8888')
       setHasPhoneNumber(true)
+      showToast({
+        title: '手机号获取成功',
+        icon: 'success',
+        duration: 2000
+      })
     } else {
       console.error('获取手机号失败:', e.detail.errMsg)
+      showToast({
+        title: '获取手机号失败,请重试',
+        icon: 'error',
+        duration: 2000
+      })
     }
   }
 
   // 添加乘客
   const handleAddPassenger = () => {
     if (isWeapp() && !hasPhoneNumber) {
-      // TODO: 显示提示
+      showToast({
+        title: '请先获取手机号',
+        icon: 'none',
+        duration: 2000
+      })
       return
     }
 
@@ -155,19 +169,34 @@ export default function OrderPage() {
     // 检查是否已经添加过这个乘车人
     const existingPassenger = passengers.find(p => p.idNumber === passenger.idNumber)
     if (existingPassenger) {
-      // TODO: 显示提示
+      showToast({
+        title: '该乘车人已添加',
+        icon: 'none',
+        duration: 2000
+      })
       return
     }
 
     setPassengers([...passengers, passenger])
     setShowPassengerSelector(false)
+    showToast({
+      title: '乘客添加成功',
+      icon: 'success',
+      duration: 1500
+    })
   }
 
   // 删除乘客
   const handleDeletePassenger = (index: number) => {
     const newPassengers = [...passengers]
+    const deletedPassenger = newPassengers[index]
     newPassengers.splice(index, 1)
     setPassengers(newPassengers)
+    showToast({
+      title: `已删除 ${deletedPassenger.name}`,
+      icon: 'success',
+      duration: 1500
+    })
   }
 
   // 添加新乘客
@@ -189,23 +218,39 @@ export default function OrderPage() {
   // 创建订单并支付
   const handlePay = async () => {
     if (!hasPhoneNumber) {
-      // TODO: 显示提示
+      showToast({
+        title: '请先获取手机号',
+        icon: 'none',
+        duration: 2000
+      })
       return
     }
 
     if (passengers.length === 0) {
-      // TODO: 显示提示
+      showToast({
+        title: '请至少添加一个乘车人',
+        icon: 'none',
+        duration: 2000
+      })
       return
     }
 
     if (!schedule) {
-      // TODO: 显示提示
+      showToast({
+        title: '路线数据加载中,请稍后',
+        icon: 'none',
+        duration: 2000
+      })
       console.error('路线数据未加载完成')
       return
     }
 
     if (!isCharter && passengers.length > (schedule.availableSeats || 0)) {
-      // TODO: 显示提示
+      showToast({
+        title: `座位不足,最多可购买${schedule.availableSeats}张票`,
+        icon: 'none',
+        duration: 2000
+      })
       return
     }
 
@@ -247,7 +292,11 @@ export default function OrderPage() {
 
     } catch (error) {
       console.error('支付失败:', error)
-      // TODO: 显示错误提示
+      showToast({
+        title: '支付失败,请重试',
+        icon: 'error',
+        duration: 2000
+      })
     }
   }