Files
Neo 6f8f12314f feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 00:03:48 +08:00

55 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P6→NS1/RNS1 缺失项 #4放弃/取消放弃的二次确认弹窗
## 简要结论
- 状态:✅ 已解决
- 风险等级:🟡 低
- 放弃操作已实现完整的二次确认弹窗abandon-modal 组件),含原因输入、确认/取消按钮。取消放弃在 task-detail 页面无二次确认(直接执行),在 task-list 页面通过长按菜单触发也无二次确认。
## 详细审查
### 审查范围
- `apps/miniprogram/miniprogram/components/abandon-modal/abandon-modal.wxml` — 弹窗模板
- `apps/miniprogram/miniprogram/components/abandon-modal/abandon-modal.ts` — 弹窗逻辑
- `apps/miniprogram/miniprogram/pages/task-list/task-list.ts` — 列表页放弃/取消放弃流程
- `apps/miniprogram/miniprogram/pages/task-detail/task-detail.ts` — 详情页放弃/取消放弃流程
### 发现
**放弃操作(完整实现):**
`abandon-modal` 组件实现了完整的二次确认弹窗:
- ⚠️ 警告图标 + 标题「放弃 {客户名}」
- 描述文案「确定放弃该客户的维护任务?请填写原因:」
- 必填原因输入框maxlength=200
- 「确认放弃」按钮(原因为空时禁用)+ 「取消」按钮
- 键盘弹出时自适应布局
task-list 和 task-detail 页面均引用了此组件:
- task-list长按菜单 → 点击「放弃任务」→ 打开 abandon-modal
- task-detail点击右上角「放弃」按钮 → 打开 abandon-modal
**取消放弃操作(简化实现):**
- task-list长按已放弃任务 → 菜单显示「↩️ 取消放弃」→ 直接执行showLoading → showToast无二次确认弹窗
- task-detail点击右上角「取消放弃」→ 直接执行 `cancelAbandon()`,无二次确认
### 证据
abandon-modal.wxml 核心结构:
```html
<view class="modal-header">
<text class="modal-emoji">⚠️</text>
<text class="modal-title">放弃 <text class="modal-name">{{customerName}}</text></text>
</view>
<view class="modal-desc-wrap">
<text class="modal-desc">确定放弃该客户的维护任务?请填写原因:</text>
</view>
<textarea maxlength="200" ... />
<view class="confirm-btn" bindtap="onConfirm">确认放弃</view>
<view class="cancel-btn" bindtap="onCancel">取消</view>
```
### 建议(如未完全解决)
- 取消放弃操作风险较低(恢复任务),不设二次确认是合理的 UX 决策
- 如 P6 严格要求取消放弃也需二次确认,可复用 `wx.showModal` 实现简单确认弹窗