|
|
@@ -0,0 +1,73 @@
|
|
|
+# 隐藏「采集专员」可见 UI(预签改名「市场专员」)
|
|
|
+
|
|
|
+## Goal
|
|
|
+
|
|
|
+- 用户界面不再展示「采集专员」文案(采集协议单、科研捐赠、缴费确认时间线等)。
|
|
|
+- 预签约订单例外:控件与展示保留,可见文案一律改为「市场专员」;接口字段仍为 `collectorUserId`(转正式依赖该字段)。
|
|
|
+- 后台字段与 API 契约保留;新建默认当前登录用户;编辑不得清空已有值。
|
|
|
+
|
|
|
+## Non-goals
|
|
|
+
|
|
|
+- 不删库列、不改 API 字段名、不改转正式 `resolve_convert_staff_fields` 映射逻辑。
|
|
|
+- 不改 Demo HTML / 静态原型页。
|
|
|
+- `mobile-h5` 无独立协议/预签表单(WebView 承载 `mobile-oa-h5`),无单独改动。
|
|
|
+
|
|
|
+## Approach
|
|
|
+
|
|
|
+前端逐处隐藏或改名(方案 1)。不引入全局展示开关;不强制后端写死覆盖。
|
|
|
+
|
|
|
+## Module matrix
|
|
|
+
|
|
|
+| 模块 | 用户可见「采集专员」 | 行为 |
|
|
|
+|------|---------------------|------|
|
|
|
+| 采集协议单(Web + mobile-oa-h5) | 隐藏(表单 / 列表 / 详情) | 静默写 `collectorUserId` |
|
|
|
+| 科研捐赠(Web + mobile-oa-h5 若有) | 隐藏(表单 / 列表 / 详情) | 同上 |
|
|
|
+| 缴费确认时间线等外围展示 | 隐藏 | 仅展示层 |
|
|
|
+| **预签约订单**(Web + mobile-oa-h5) | **不隐藏** | 表单 label、列表、详情、转正式提示等文案改为 **「市场专员」**;`collectorUserId` 不变 |
|
|
|
+
|
|
|
+## Silent write rules(协议单 / 科研捐赠)
|
|
|
+
|
|
|
+### Create
|
|
|
+
|
|
|
+- 无采集专员控件时,仍将 `collectorUserId` 设为当前登录用户(沿用现有默认:Web 表单初始化、Web API 空值回落、移动 specialist 强制当前用户、`protocol-form-defaults` 等)。
|
|
|
+
|
|
|
+### Edit
|
|
|
+
|
|
|
+- 提交时必须继续带上已有 `collectorUserId`(从详情/列表回填)。
|
|
|
+- **禁止**因隐藏控件而提交空串,导致更新把历史值清成 `null`。
|
|
|
+- 实现要点:隐藏 UI 后保留内部状态回填;或更新 payload 在空值时省略该字段(以现有各端提交路径为准,择一保证不清空)。
|
|
|
+
|
|
|
+### Presign
|
|
|
+
|
|
|
+- 控件保留,可选可改。
|
|
|
+- 所有用户可见「采集专员」改为「市场专员」(含选择器 title、列表字段 label、详情字段、转正式确认文案等)。
|
|
|
+- `v-model` / 请求体仍为 `collectorUserId`;转正式仍走现有映射(预签采集专员 → 正式单采集专员 + 市场专员)。
|
|
|
+
|
|
|
+## Primary touchpoints
|
|
|
+
|
|
|
+### web-admin
|
|
|
+
|
|
|
+- 协议:`ProtocolFormDialog.vue`、`ProtocolViewDialog.vue`、`protocol/index.vue`
|
|
|
+- 科研捐赠:`DonationFormDialog.vue`、`DonationViewDialog.vue`、`research-donation/list/index.vue`
|
|
|
+- 外围:`clinical-payment-confirm-timeline/index.vue`(及任何其它用户可见「采集专员」处)
|
|
|
+- 预签:`PresignOrderFormDialog.vue`、预签列表/详情相关文案、`presign-order/index.vue` 转正式确认语
|
|
|
+
|
|
|
+### mobile-oa-h5
|
|
|
+
|
|
|
+- 协议:`modules/protocol.js` 表单字段与详情、`list-presenter.js` 等
|
|
|
+- 预签:`PresignOrderForm.vue`、`presign-list-model.js`、`modules/presign.js` 详情与相关测试期望文案
|
|
|
+- 科研捐赠:若存在可见「采集专员」字段/列,一并隐藏
|
|
|
+- 默认值:`protocol-form-defaults.js` 等静默默认逻辑保留
|
|
|
+
|
|
|
+## Testing
|
|
|
+
|
|
|
+- 更新/调整断言:协议与科研捐赠不再期望可见「采集专员」文案或表单字段。
|
|
|
+- 预签相关测试:可见文案期望改为「市场专员」;字段 key 仍为 `collectorUserId` / `collectorUserName`。
|
|
|
+- 回归关注:新建后库中 `collector_user_id` 有值;编辑保存后原值不被清空;预签转正式人员映射不变。
|
|
|
+
|
|
|
+## Acceptance
|
|
|
+
|
|
|
+1. 协议单、科研捐赠、缴费确认时间线等界面无「采集专员」可见文案与选择控件。
|
|
|
+2. 预签全链路可见文案为「市场专员」,字段仍写 `collectorUserId`,转正式行为与改前一致。
|
|
|
+3. 新建协议/捐赠静默写入当前用户;编辑不清空历史 `collectorUserId`。
|
|
|
+4. 后端 schema / DB 无破坏性变更。
|