原型管理系统
PM Prototype Management
0
目录 /
3
文件
Home
AI CRM
v2.3.3 APP-线索设为无效
PRD-APP-设为无效页面改造.md
Markdown 文档 · 在线预览
返回目录
# PRD:APP 端「设为无效」页面改造 | 文档信息 | 内容 | |---|---| | 产品 | AI超级销售 | | 模块 | APP · 线索详情 · 设为无效 | | 版本 | **V1.3** | | 状态 | 待研发评审 | | 作者 | 产品 | | 日期 | 2026-09-07 | | 原型/UI | `设为无效-PC与APP原型.html`(统一入口;侧栏含 APP / PC / 需求说明) | | 业务规则对齐 | `PRD-设为无效理由闭环.md`(**V2.3**,PC/服务端口径) | | 交互对标 | APP 现网「跟进记录」独立表单页 | > **26-09-01修改:** 腾讯广告使用独立理由枚举。 > **26-09-03 / 26-09-04修改:** 选「其他」交互对齐抖音来客(必填 1~50 字);CRM 展示「其他:{原因}」;**整单不回传腾讯**。 --- ## 1. 目标 将 APP「设为无效」从**底部理由列表(点选即提交)**,改为与「跟进记录」一致的**独立表单页**:必选无效原因;普通渠道选「其它」、腾讯广告选「其他」均必填具体原因(对齐抖音来客)。腾讯「其他」仅 CRM 落库,**整单不回传**腾讯。 | 现状 | 改造后 | |---|---| | 线索管理 `···` / 公海直出按钮点选理由即提交(或无表单) | 进入独立表单页 → 按渠道选原因 → 提交 | | 普通「其它」无法填具体原因 | 普通渠道支持 1~50 字具体原因 | | 腾讯广告理由与 PC 不一致 | **26-09-01修改:** 腾讯专用 6 项;**26-09-03修改:**「其他」必填具体原因,不回传腾讯 | --- ## 2. 背景与问题 | 问题 | 影响 | |---|---| | 现网底部列表仅支持点选 6 项理由,无输入区 | 选「其它」无法填写真实原因,无法审计 | | PC 已按 V2.2 要求全渠道(含腾讯广告)必填理由 +「其它」展开输入 | APP 仍为旧交互,两端体验与数据不一致 | | 底部 Sheet 空间不足以承载「选择 + 条件输入 + 校验」 | 需改为独立表单页(对标跟进记录) | 现网无效理由枚举: **普通渠道** 1. 拨打5次以上未接通 2. 空号/停机/关机 3. 反馈未在营销留资 4. 接通但无意向 5. 黑脏词 6. 其它 **26-09-01修改:腾讯广告(渠道 = 腾讯广告)** 1. 多次未接通 2. 空号 3. 非本人 4. 定向外 5. 接通无需求 6. 其他 --- ## 3. 范围 ### 3.1 In Scope | ID | 需求 | 验收要点 | |---|---|---| | A1 | 入口改为进入独立「设为无效」页 | 线索管理 `···` / 公海底栏「设为无效」跳转表单页,不再点选即提交 | | A2 | 表单页版式对标「跟进记录」 | 顶栏 + 白卡片分区 + 底栏主按钮;灰底 | | A3 | 必选无效原因 | 未选不可提交;点击行打开理由选择器 | | A4 | 普通渠道选「其它」展开具体原因 | 必填 1~50 字;字数统计;未填/超限不可提交 | | A5 | 选非「其它/其他」隐藏并清空具体原因 | 提交时 `reasonRemark` 为空 | | A6 | **26-09-01修改:腾讯广告独立枚举** | 腾讯广告线索选择器仅展示专用 6 项 | | A7 | **26-09-03/04修改:腾讯「其他」须填原因** | 选「其他」展开输入、必填 1~50;displayReason=`其他:{原因}`;整单不回传腾讯 | | A8 | 提交成功后的闭环 | 返回详情;状态/标签/操作记录/读模型与 PC 一致;轻弹窗「已设为无效」 | ### 3.2 Out of Scope - 不做理由配置化(枚举以 PRD V2.3 固化为准) - 不改造「取消无效」为表单页;APP 取消无效**无二次确认弹窗**,直接成功轻弹窗「已设为有效」 - 不新增附件上传(跟进记录页的附件区不照搬) - 不规定安卓/iOS 原生组件实现细节 - 腾讯广告 API 回传细节(见调研文档;本需求保证 APP 提交理由可落库) --- ## 4. 用户流程 ``` 线索详情 └─ 点击底栏「···」→ 按钮上方白底气泡菜单(设为无效 / 添加协作员) └─ 点击「设为无效」 └─ 进入「设为无效」表单页 ├─ 点击「无效原因」→ 底部选择器选一项 ├─ 若选「其它」(普通渠道)→ 展开「具体原因」输入框(必填) ├─ 若选「其他」(腾讯广告)→ 同样展开必填(对齐抖音来客);提交后仅 CRM 记录,整单不回传腾讯 ├─ 点击「提交」 │ ├─ 校验失败 → Toast / 行内提示,停留本页 │ └─ 校验通过 → 调设无效接口 → 轻弹窗「已设为无效」→ 返回线索详情(已无效) └─ 点击返回 / 物理返回 → 放弃本次操作,不落库 ``` --- ## 5. 页面结构与交互 ### 5.1 页面信息架构(对标跟进记录) | 区域 | 内容 | |---|---| | 顶栏 | 左:返回;中:标题「设为无效」 | | 卡片 1 · 无效信息 | 行:「无效原因 *」|右侧展示已选文案或「请选择」+ `>` | | 卡片 2 · 具体原因(条件显隐) | 普通 `other` 或腾讯 `tx_other` 时展示;多行输入 + `0/50` | | 底栏 | 主按钮「提交」(主色蓝,通栏圆角) | 不展示:跟进人、时间、附件等跟进记录专属字段。 ### 5.2 无效原因选择器 - 点击「无效原因」行,自底部弹出选择器。 - **按线索渠道渲染列表**:普通 = 通用 6 项;腾讯广告 = 专用 6 项(见第 2 节)。 - 标题:「选择无效原因」;左「取消」或点遮罩关闭,不改变已选值。 - 从「其它/其他」切到预设项时:隐藏具体原因区,并清空已输入内容。 - **26-09-03修改:** 腾讯广告选「其他」时展开具体原因区(对齐抖音来客)。 ### 5.3 具体原因输入 | 项 | 规则 | |---|---| | 显隐 | 普通选「其它」或腾讯选「其他」时显示 | | 必填 | 是(红 `*`) | | 长度 | 1~50;前端限制 maxlength=50,并做提交校验 | | 占位 | 请输入具体无效原因 | | 字数 | 右下角 `当前字数/50` | | 校验失败文案 | 请填写具体原因 | ### 5.4 提交校验 | 条件 | 结果 | |---|---| | 未选无效原因 | 不可提交;提示「请选择无效原因」 | | 普通渠道选「其它」且具体原因为空或仅空白 | 不可提交;提示「请填写具体原因」 | | 腾讯广告选「其他」且具体原因为空或仅空白 | 不可提交;提示「请填写具体原因」 | | 腾讯广告选「其他」且已填原因 | 可提交;CRM 落库「其他:{原因}」;**整单不回传腾讯** | 提交中按钮置为 loading / 防重复点击。 ### 5.5 返回与放弃 - 顶栏返回、系统返回:直接离开,不保存草稿(与跟进记录常见行为一致;若现网跟进有二次确认则对齐现网)。 - 不提供底栏「取消」按钮(跟进记录页亦以返回放弃)。 --- ## 6. 业务规则(与 PC V2.3 对齐,APP 侧摘要) ### 6.1 写入 | 步骤 | 规则 | |---|---| | 1 | 必须选择一项 `reasonCode`(按渠道取对应枚举) | | 2 | 普通 `other` 与腾讯 `tx_other`:`reasonRemark` 均必填 1~50 | | 3 | 服务端生成 `displayReason`:预设=枚举名;普通其它=`其它:{remark}`;**腾讯其他=`其他:{remark}`** | | 4 | 写无效标记、标签、操作记录(文案:`变更线索状态为"无效",无效原因【{displayReason}】`) | | 5 | **腾讯 `tx_other`:整单不回传腾讯**;其它腾讯预设理由按映射回传 | ### 6.2 标签 | 设无效方式 | 标签 | |---|---| | 预设理由 | 「无效」+ 对应理由标签 | | 普通「其它」/ 腾讯「其他」 | 仅「无效」,不打「其它/其他」标签 | ### 6.3 取消无效(本页不承载,入口保留) 仍在详情无效态通过现网入口触发;**APP 无二次确认弹窗**,点「取消无效」后直接恢复并轻弹窗「已设为有效」。业务清理规则见 PC PRD 4.3。 --- ## 7. 数据与接口 与 PC V2.3 共用契约。腾讯广告选「其他」示例: ```json { "action": "set_invalid", "leadId": "LD_xxx", "reasonCode": "tx_other", "reasonRemark": "客户明确表示近三个月不做" } ``` | 字段 | APP 提交要求 | |---|---| | reasonCode | 必填(腾讯用专用码) | | reasonRemark | 普通 `other`、腾讯 `tx_other` 均必传且 1~50 | | displayReason | 不传;以服务端为准(腾讯其他 = `其他:{remark}`) | 废弃:任何 `skipReason`(整单免选)客户端逻辑。 --- ## 8. 文案 | 用途 | 文案 | |---|---| | 页标题 | 设为无效 | | 分区标题 | 无效信息 | | 原因行标签 | 无效原因 | | 原因未选占位 | 请选择 | | 具体原因标签 | 具体原因 | | 具体原因占位 | 请输入具体无效原因 | | 提交按钮 | 提交 | | 未选原因 | 请选择无效原因 | | 其它未填 | 请填写具体原因 | | 提交成功(轻弹窗) | 已设为无效 | | 取消无效成功(轻弹窗) | 已设为有效 | 成功反馈均为深色轻弹窗(绿勾 + 文案),与设计稿一致。选择器内理由文案按渠道枚举展示。 --- ## 9. 验收标准 ### 9.1 入口与版式 - [ ] 线索管理 `···` →「设为无效」进入独立表单页 - [ ] 公海底栏「设为无效」进入同一套表单页 - [ ] 版式对标跟进记录:顶栏、白卡片、底栏蓝按钮、浅灰背景 ### 9.2 交互与校验 - [ ] 未选原因点提交 → 提示「请选择无效原因」 - [ ] 普通渠道选预设 → 无具体原因区 → 可提交 - [ ] 普通渠道选「其它」→ 展开具体原因;空提交 →「请填写具体原因」 - [ ] **26-09-01修改:** 腾讯广告选择器为专用 6 项 - [ ] **26-09-03修改:** 腾讯选「其他」→ 展开具体原因;空提交 →「请填写具体原因」;invalidReason=`其他:{原因}`;不回传腾讯 - [ ] 具体原因最多 50 字,有字数统计(普通「其它」与腾讯「其他」) ### 9.3 闭环(与服务端/PC V2.3 一致) - [ ] 预设:invalidReason = 枚举名;标签含「无效」+ 理由标签 - [ ] 普通其它:invalidReason = `其它:{具体原因}`;仅「无效」标签 - [ ] 腾讯其他:invalidReason = `其他:{具体原因}`;仅「无效」标签;整单不回传腾讯 - [ ] 操作记录含 `无效原因【{displayReason}】` - [ ] 成功后返回详情,线索呈无效态;轻弹窗「已设为无效」 - [ ] 取消无效后轻弹窗「已设为有效」(无二次确认弹窗) --- ## 10. 影响面 | 端/能力 | 改动 | |---|---| | APP 线索管理更多菜单 | 「设为无效」跳转表单页 | | APP 公海底栏 | 「设为无效」跳转表单页 | | APP 新增页 | 「设为无效」表单 + 按渠道理由选择器 | | 设无效接口 | 复用 PC;腾讯独立枚举 +「其他」必填 remark、不回传 | --- ## 11. 版本记录 | 版本 | 日期 | 说明 | |---|---|---| | V1.0 | 2026-08-31 | 初版:底部 Sheet 改为跟进记录风格独立表单页;对齐 PC V2.2 | | V1.1 | 2026-09-01 | **26-09-01修改:** 对齐 PC V2.3:腾讯广告独立理由枚举;选「其他」无需填写具体原因 | | V1.2 | 2026-09-02 | **26-09-02修改:** 字段「线索来源」更名为「线索渠道详情」 | | V1.3 | 2026-09-07 | **26-09-03/04修改:** 腾讯选「其他」必填具体原因(对齐抖音来客);CRM 展示「其他:{原因}」;整单不回传腾讯 |
© 2026 Qimall OS · Prototype Management System
PHP 8.3+
Tailwind CSS