# P6→NS1/RNS1 缺失项 #15：任务卡片的长按/滑动操作

## 简要结论
- 状态：⚠️ 部分解决
- 风险等级：🟡 低
- 长按操作已完整实现（上下文菜单含置顶/备注/AI助手/放弃/取消放弃），但滑动操作（如滑动删除、滑动置顶）未实现。

## 详细审查

### 审查范围
- `apps/miniprogram/miniprogram/pages/task-list/task-list.wxml`
- `apps/miniprogram/miniprogram/pages/task-list/task-list.ts`
- `apps/miniprogram/miniprogram/pages/task-list/task-list.wxss`

### 发现

#### 已实现：长按操作
1. 所有任务卡片（置顶/一般/已放弃）均绑定了 `bindlongpress="onTaskLongPress"`
2. 长按后弹出上下文菜单（`.ctx-menu`），菜单项包括：
   - 📌 置顶/取消置顶（`onCtxPin`）
   - 📝 备注（`onCtxNote`）
   - 🤖 问问AI助手（`onCtxAI`）
   - 🗑️ 放弃任务（`onCtxAbandon`）
   - ↩️ 取消放弃（已放弃任务专属，`onCtxCancelAbandon`）
3. 菜单定位跟随手指触摸位置，有边界检测防止溢出屏幕

#### 未实现：滑动操作
1. 无 `bindtouchmove`/`bindtouchstart`/`bindtouchend` 事件
2. 无滑动删除（swipe-to-delete）UI
3. 无滑动置顶交互
4. 无 `<t-swipe-cell>` 组件使用

### 证据
task-list.wxml 中卡片事件绑定（有 longpress，无 touchmove）：
```xml
<view class="task-card ..."
  bindtap="onTaskTap" bindlongpress="onTaskLongPress">
```

task-list.ts 中长按处理完整实现：
```typescript
onTaskLongPress(e: WechatMiniprogram.TouchEvent) {
  this._longPressed = true
  // ... 获取目标任务、计算菜单位置、显示上下文菜单
  this.setData({
    contextMenuVisible: true,
    contextMenuX: x, contextMenuY: y,
    contextMenuTarget: target,
  })
}
```

### 建议
1. 考虑是否真正需要滑动操作 — 长按菜单已覆盖所有操作场景，滑动操作可能增加交互复杂度
2. 如需实现，推荐使用 TDesign 的 `<t-swipe-cell>` 组件包裹任务卡片
3. 滑动操作建议仅暴露最常用的 1-2 个操作（如置顶、放弃），避免操作过载
4. 优先级较低，可作为后续体验优化迭代
