Просмотр исходного кода

feat(activity): activity-detail 补充 formatDate 工具方法 + paid/checkin 状态增强

User 4 месяцев назад
Родитель
Сommit
1fcf3f9060
1 измененных файлов с 41 добавлено и 0 удалено
  1. 41 0
      cfc-frontend/pages/activity/activity-detail/activity-detail.vue

+ 41 - 0
cfc-frontend/pages/activity/activity-detail/activity-detail.vue

@@ -172,6 +172,22 @@ export default {
     }
   },
   methods: {
+    // ===== 工具方法 =====
+    formatDate: function(dateStr) {
+      if (!dateStr) return ''
+      var d = new Date(dateStr.replace(/-/g, '/'))
+      if (isNaN(d.getTime())) return dateStr
+      var year = d.getFullYear()
+      var month = d.getMonth() + 1
+      var day = d.getDate()
+      var hour = d.getHours()
+      var minute = d.getMinutes()
+      var ampm = hour < 12 ? '上午' : '下午'
+      var h12 = hour % 12
+      if (h12 === 0) h12 = 12
+      var minStr = minute < 10 ? '0' + minute : minute
+      return year + '年' + month + '月' + day + '日 ' + ampm + h12 + ':' + minStr
+    },
     loadDetail: function(id) {
       var self = this
       self.loading = true
@@ -264,9 +280,33 @@ export default {
         uni.showToast({ title: '请先选择孩子身份', icon: 'none' })
         return
       }
+
+      // 付费活动 → 先确认支付
+      if (self.activity && self.activity.price > 0) {
+        uni.showModal({
+          title: '确认报名',
+          content: '该活动需支付 ¥' + self.activity.price + ',报名成功后不支持退费。是否继续?',
+          confirmText: '确认支付',
+          cancelText: '再想想',
+          success: function(confirmRes) {
+            if (confirmRes.confirm) {
+              self.doRegister(childId)
+            }
+          }
+        })
+      } else {
+        self.doRegister(childId)
+      }
+    },
+    doRegister: function(childId) {
+      var self = this
       self.registrationLoading = true
+      if (self.activity && self.activity.price > 0) {
+        self.paying = true
+      }
       registerActivity({ id: self.activity.id, childId: childId }).then(function(res) {
         self.registrationLoading = false
+        self.paying = false
         if (res && res.code === 200) {
           self.registrationStatus = 'pending'
           uni.showToast({ title: '报名成功,请等待审核', icon: 'success' })
@@ -275,6 +315,7 @@ export default {
         }
       }).catch(function(err) {
         self.registrationLoading = false
+        self.paying = false
         uni.showToast({ title: '网络异常', icon: 'none' })
       })
     },