Procházet zdrojové kódy

chore: auto bump version and changelog [skip ci]

iwt před 2 měsíci
rodič
revize
8480c6f6e4

+ 38 - 11
cfc-frontend/pages/purchase/index.vue

@@ -90,7 +90,8 @@
 </template>
 
 <script>
-import { checkPurchase, createPurchaseOrder } from '../../utils/api.js'
+import { checkPurchase, createPurchaseOrder, getPurchasePayParams } from '../../utils/api.js'
+import { requestVirtualPayment } from '../../utils/api.js'
 
 export default {
   data() {
@@ -131,18 +132,44 @@ export default {
       var self = this
       self.submitting = true
       createPurchaseOrder().then(function(res) {
-        self.submitting = false
-        if (res.data && res.data.success) {
-          // 跳转到支付页面(这里先提示,实际需对接支付)
-          uni.showModal({
-            title: '确认支付',
-            content: '支付199元开启7天全功能体验,完成挑战可返还199元CF值',
-            success: function(modalRes) {
-              if (modalRes.confirm) {
-                uni.showToast({ title: '支付功能开发中', icon: 'none' })
-              }
+        if (res.data && res.data.success && res.data.orderNo) {
+          var orderNo = res.data.orderNo
+          // 获取虚拟支付参数并拉起支付
+          getPurchasePayParams(orderNo).then(function(payRes) {
+            var dto = payRes.data || {}
+            if (dto.orderInfo && dto.sign) {
+              requestVirtualPayment(dto, {
+                success: function() {
+                  self.submitting = false
+                  uni.showToast({ title: '支付成功,开通中…', icon: 'none' })
+                  setTimeout(function() {
+                    uni.redirectTo({ url: '/pages/growth/challenge-progress' })
+                  }, 800)
+                },
+                fail: function(err) {
+                  self.submitting = false
+                  var errCode = err && err.errCode
+                  var msg = '支付取消'
+                  if (errCode === -15007 || errCode === -15005) msg = '登录态已过期,请重新登录'
+                  else if (err && err.errMsg) msg = err.errMsg
+                  uni.showToast({ title: msg, icon: 'none' })
+                }
+              })
+            } else {
+              self.submitting = false
+              uni.showToast({ title: payRes.message || '支付参数获取失败', icon: 'none' })
+            }
+          }).catch(function(err) {
+            self.submitting = false
+            if (err && err.code === 46001) {
+              uni.showToast({ title: '该商品暂未开放购买', icon: 'none' })
+            } else {
+              uni.showToast({ title: (err && err.message) || '支付参数获取失败', icon: 'none' })
             }
           })
+        } else {
+          self.submitting = false
+          uni.showToast({ title: (res.data && res.data.message) || '创建订单失败', icon: 'none' })
         }
       }).catch(function(err) {
         self.submitting = false

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-d25c72fe434456b0811f94bd09f7f2d8c882451c
+5b71f33d917a4a46cf181424097fcf3b2c4e1459

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1303",
+  "version": "1.0.1304",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1303",
+      "version": "1.0.1304",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1304",
+  "version": "1.0.1305",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 19 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,25 @@
 
 ---
 
+## v1.0.1305 (2026-09-04)
+
+### 新功能
+- 迁移295补齐task_plan_instances审核/确认/激活列
+- 后台全部列表页支持点击列头排序
+
+### 其他
+- - SortInterceptor 从缓存 body 读 sort 写入 SortContext(原只读 URL query,
+-   前端发 body 永远读不到),激活代码库 307 处已有 SortUtil.applySort 无参调用
+- 前端:
+- - SortMixin 补 onSortToggle 方法(修复 20 个文件 onSortToggle is not a function)
+- - SortMixin 新增 reloadAfterSort,兼容 loadList/loadData/loadTasks/loadPlans
+-   四种加载函数名,解决点击表头不刷新问题
+- - 107 个列表页接入 SortMixin(admin/teacher/nutritionist/root 各模块)
+- - 3 个位置参数 API 封装(guidePackage/guideTask/teacherMessage)加可选 sort 参数
+- 跳过:配置页/详情页/组件/仪表盘/树形表等非列表页(23 个)
+- 
+
+
 ## v1.0.1304 (2026-09-04)
 
 ### 文档

+ 20 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1304
+> 当前版本: v1.0.1305
 
 ## 历史版本
 
@@ -8,6 +8,25 @@
 
 ---
 
+## v1.0.1305 (2026-09-04)
+
+### 新功能
+- 迁移295补齐task_plan_instances审核/确认/激活列
+- 后台全部列表页支持点击列头排序
+
+### 其他
+- - SortInterceptor 从缓存 body 读 sort 写入 SortContext(原只读 URL query,
+-   前端发 body 永远读不到),激活代码库 307 处已有 SortUtil.applySort 无参调用
+- 前端:
+- - SortMixin 补 onSortToggle 方法(修复 20 个文件 onSortToggle is not a function)
+- - SortMixin 新增 reloadAfterSort,兼容 loadList/loadData/loadTasks/loadPlans
+-   四种加载函数名,解决点击表头不刷新问题
+- - 107 个列表页接入 SortMixin(admin/teacher/nutritionist/root 各模块)
+- - 3 个位置参数 API 封装(guidePackage/guideTask/teacherMessage)加可选 sort 参数
+- 跳过:配置页/详情页/组件/仪表盘/树形表等非列表页(23 个)
+- 
+
+
 ## v1.0.1304 (2026-09-04)
 
 ### 文档