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

fix(health-plan): 方案保存后自动触发每日任务生成链路

- submitTasks 改为调用 saveHealthPlan() 而非手动 createTask()
- 方案保存后后端 savePlan() 自动调用 generateDailyTasksFromPlan()
- 生成每日 Task(sourceType=plan, sourceId=plan.id)
- 修复前:方案内容未入库,后端任务生成链从未触发
Sisyphus 1 месяц назад
Родитель
Сommit
8352aac6e3
1 измененных файлов с 18 добавлено и 28 удалено
  1. 18 28
      cfc-frontend/pages/health/health-plan-summary.vue

+ 18 - 28
cfc-frontend/pages/health/health-plan-summary.vue

@@ -144,7 +144,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { getFamilyMemberList, getHealthStatus, getDietPreferences, aiSendMessage, createTask } from '../../utils/api'
+import { getFamilyMemberList, getHealthStatus, getDietPreferences, aiSendMessage, createTask, saveHealthPlan } from '../../utils/api'
 import { parseDate } from '../../utils/format'
 import { parseDate } from '../../utils/format'
 
 
 export default {
 export default {
@@ -356,36 +356,26 @@ export default {
     },
     },
     submitTasks: function() {
     submitTasks: function() {
       var self = this
       var self = this
-      var created = 0
-      var total = self.parsedTasks.length
       self.loading = true
       self.loading = true
 
 
-      self.parsedTasks.forEach(function(task, idx) {
-        var isMemberTask = task.executorId && task.executorId !== '__self__'
-        var dto = {
-          title: task.title,
-          description: task.description || '',
-          category: '健康方案',
-          executorType: isMemberTask ? 'member' : 'child',
-          memberIds: isMemberTask ? [task.executorId] : undefined
-        }
-        if (!isMemberTask && self.subjectId) {
-          dto.memberIds = [self.subjectId]
+      // 先保存方案到数据库,后端会自动生成每日任务(generateDailyTasksFromPlan)
+      var saveData = {
+        memberIds: self.selectedMemberIds.join(','),
+        dimensions: 'body',
+        goal: self.userGoal.trim(),
+        planContent: self.planContent
+      }
+      saveHealthPlan(saveData).then(function(res) {
+        self.loading = false
+        if (res && res.code === 200) {
+          self.taskSubmitted = true
+          self.taskSubmittedCount = self.parsedTasks.length
+        } else {
+          uni.showToast({ title: res && res.message ? res.message : '方案保存失败', icon: 'none' })
         }
         }
-        createTask(dto).then(function(res) {
-          if (res && res.code === 200) created++
-          if (idx === total - 1) {
-            self.loading = false
-            self.taskSubmitted = true
-            self.taskSubmittedCount = created
-          }
-        }).catch(function() {
-          if (idx === total - 1) {
-            self.loading = false
-            self.taskSubmitted = true
-            self.taskSubmittedCount = created
-          }
-        })
+      }).catch(function() {
+        self.loading = false
+        uni.showToast({ title: '请求失败,请重试', icon: 'none' })
       })
       })
     },
     },
     goBack: function() {
     goBack: function() {