3.8 KiB
3.8 KiB
任务放弃功能改进 - 快速参考
核心改进
1️⃣ 已放弃任务长按菜单
- 位置:任务列表页 → 已放弃区域 → 长按任务
- 显示:单个选项"↩️ 取消放弃"
- 行为:点击直接执行,无需二次确认
2️⃣ 取消放弃流程
已放弃任务 → 长按 → 点击"取消放弃" → 直接移回一般任务区域
状态变化:
status:abandoned→pendingis_pinned: 保持falseabandonReason: 清除
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