Files
Neo-ZQYY/apps/miniprogram/doc/TASK_ABANDON_QUICK_REFERENCE.md
2026-03-15 10:15:02 +08:00

3.8 KiB
Raw Permalink Blame History

任务放弃功能改进 - 快速参考

核心改进

1 已放弃任务长按菜单

  • 位置:任务列表页 → 已放弃区域 → 长按任务
  • 显示:单个选项"↩️ 取消放弃"
  • 行为:点击直接执行,无需二次确认

2 取消放弃流程

已放弃任务 → 长按 → 点击"取消放弃" → 直接移回一般任务区域

状态变化

  • status: abandonedpending
  • is_pinned: 保持 false
  • abandonReason: 清除

3 键盘交互优化

  • 输入框激活:键盘弹出时弹窗自动上移
  • 内容保护:添加占位区域防止被键盘遮挡
  • 按钮位置:固定在键盘上方
  • 视觉反馈:输入框获得焦点时边框变蓝

文件修改清单

文件 修改内容
P4-miniapp-core-business.md 补充任务类型与状态关系说明
task-list.wxml 长按菜单条件渲染 + 键盘事件
task-list.ts 新增 onCtxCancelAbandon + 键盘处理
task-list.wxss 键盘交互样式
task-detail.wxml 键盘事件 + 占位区域
task-detail.ts 键盘处理 + 取消放弃逻辑
task-detail.wxss 键盘交互样式

关键代码片段

长按菜单条件渲染

<!-- 已放弃任务:显示"取消放弃" -->
<block wx:if="{{contextMenuTarget.isAbandoned}}">
  <view class="ctx-item" bindtap="onCtxCancelAbandon">
    <text class="ctx-emoji">↩️</text>
    <text class="ctx-text">取消放弃</text>
  </view>
</block>
<!-- 一般/置顶任务:显示标准菜单 -->
<block wx:else>
  <!-- 置顶/备注/问问AI/放弃任务 -->
</block>

键盘高度管理

// 键盘弹出
onAbandonTextareaFocus(e: WechatMiniprogram.InputEvent) {
  const height = (e as any).detail?.height ?? 0
  this.setData({ keyboardHeight: height })
}

// 键盘收起
onAbandonTextareaBlur() {
  this.setData({ keyboardHeight: 0 })
}

动态样式绑定

<view class="abandon-overlay {{keyboardHeight > 0 ? 'abandon-overlay--keyboard-open' : ''}}">
  <view class="abandon-actions {{keyboardHeight > 0 ? 'abandon-actions--float' : ''}}" 
        style="{{keyboardHeight > 0 ? 'bottom: ' + keyboardHeight + 'px;' : ''}}">
  </view>
</view>

测试检查清单

  • 长按已放弃任务显示"取消放弃"
  • 点击"取消放弃"直接执行
  • 任务移回一般任务区域
  • 输入放弃原因时键盘不遮挡内容
  • 按钮固定在键盘上方
  • 输入框边框变蓝
  • 任务列表页和详情页行为一致

相关概念

任务类型 vs 任务状态

  • 任务类型task_type业务性质系统自动分配
    • high_priority_recall / priority_recall / follow_up_visit / relationship_building
  • 任务状态status生命周期用户或系统操作改变
    • active / inactive / completed / abandoned
  • 置顶状态is_pinned独立标记用户手动操作

前端展示规则

  • 置顶区域is_pinned=true && status=active
  • 一般任务is_pinned=false && status=active
  • 已放弃区域status=abandoned(任务类型保留但灰化)

常见问题

Q: 取消放弃后任务会回到原来的位置吗?
A: 不会。取消放弃后任务会移到一般任务区域的最后,不会回到原来的位置。

Q: 取消放弃需要输入原因吗?
A: 不需要。取消放弃是直接操作,无需任何确认或输入。

Q: 键盘弹出时弹窗会完全隐藏吗?
A: 不会。弹窗会自动上移,确保内容可见,按钮固定在键盘上方。

Q: 备注弹窗的键盘交互是否相同?
A: 是的。备注弹窗组件已经实现了相同的键盘交互,无需额外修改。


更新日期2026-03-14
相关文档docs/TASK_ABANDON_IMPROVEMENTS.md