diff --git a/pages/case/followup-detail.vue b/pages/case/followup-detail.vue
index 5625ec0..48d0a98 100644
--- a/pages/case/followup-detail.vue
+++ b/pages/case/followup-detail.vue
@@ -368,6 +368,16 @@ function markDone() {
const result = String(form.result || '').trim() || '已完成';
const r = await api('setTodoStatus', { corpId, id: taskId.value, eventStatus: 'treated', result, userId, todoMethod: methodValue });
if (!r?.success) return toast(r?.message || '操作失败');
+ if (todo.value?.benefitDeductOnComplete && todo.value?.benefitRecordId) {
+ const deductRes = await api('completeBenefitTodo', {
+ corpId,
+ todoId: taskId.value,
+ treatmentRecordId: todo.value.benefitRecordId,
+ executorUserId: userId,
+ completedAt: Date.now(),
+ });
+ if (!deductRes?.success) return toast(deductRes?.message || '待办已完成,但权益自动核销失败');
+ }
toast('操作成功');
uni.$emit('archive-detail:followup-changed');
setTimeout(() => uni.navigateBack(), 300);
diff --git a/pages/message/benefit-entry.vue b/pages/message/benefit-entry.vue
index 7e0a9ce..904d198 100644
--- a/pages/message/benefit-entry.vue
+++ b/pages/message/benefit-entry.vue
@@ -83,6 +83,17 @@
有效期
{{ projectEntry.validTime }}
+
+ 生成待办
+
+
+
+
+ 类型:{{ getTodoTypeLabel(projectEntry.todoConfig.eventType) }}
+ 回访日期{{ projectEntry.todoConfig.planDate }}截止日期{{ projectEntry.todoConfig.expireDate }}
+ {{ projectEntry.todoConfig.executorName || '请选择团队和处理人' }}
+ 完成关联核销权益
+
删除套餐
@@ -185,6 +196,17 @@
+
+ 生成待办
+
+
+
+
+ 类型:{{ getTodoTypeLabel(entry.todoConfig.eventType) }}
+ 回访日期{{ entry.todoConfig.planDate }}截止日期{{ entry.todoConfig.expireDate }}
+ {{ entry.todoConfig.executorName || '请选择团队和处理人' }}
+ 完成关联核销权益
+
计划治疗医生
@@ -211,6 +233,22 @@
添加权益项目
+
+
+
+
+
+ {{ team.name }}
+
+ {{ member.name }}已选择
+
+ 暂无团队成员
+
+ 暂无可选团队
+
+
+
+