You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.3 KiB
4.3 KiB
research: 商机列表「视图 / 自定义检索」机制(真实 demo HTML 抽取)
证据来源:
nginx/html/保伦CRM系统demo-重构版-S1_0803.html(可运行 demo,比蓝湖 analyze 归纳可靠)。 抽取自oppModule段(约 line 1192–1620)。仅记事实,不含决策。 注意:demo 是交互样例,字段名/样例数据(张三/预计成交金额…)非最终验收值。
1. 内置视图 + 自定义检索(line 1228-1229)
viewTitles = { recent:'最近访问', mine:'我负责的销售机会',
participated:'我参与的销售机会', followed:'我关注的销售机会',
custom:'自定义检索' }
viewItems = ['recent','mine','participated','followed'] // 4 个系统内置视图
- 系统内置视图 4 个:最近访问 / 我负责的 / 我参与的 / 我关注的。
- 无「领导层级下拉」——蓝湖静态图里的「商机管理(领导)▾」不是层级选择器;真实 demo 里领导/管理是另一套 workspace(
state.workspace='manage'),数据范围由数据权限决定,不是视图下拉里的层级档。
2. 视图行数据范围(line 1251 viewRows())
| 视图 | 数据范围 |
|---|---|
| recent 最近访问 | state.recentVisits({id,scene,at})按 at 倒序,见 §5 |
| mine 我负责的 | rows.filter(owner===当前用户) |
| participated 我参与的 | rows.filter(participatedIds.has(id)) |
| followed 我关注的 | followedRows()(关注集合) |
| manage 商机管理 | rows(全部,受 workspace/数据权限约束) |
| publicPool 公海 | poolRows |
3. 自定义检索(line 1279 renderCustomForm + 1254 filteredRows)
- 组成:检索名称 + 检索条件(1 组:字段 / 运算符 / 值)+ 排序(字段 + 升/降序)。
- 条件字段(demo 样例):机会名称 / 销售机会所有人 / 客户名称 / 计划成交时间。
- 运算符:等于 / 不等于 / 包含 / 不包含 / 为空 / 不为空。
- 排序字段(demo 样例):预计成交金额 / 计划成交时间;方向 desc/asc(默认 desc)。
- "+ 添加更多条件":demo 提示"本次支持保存一组检索条件"(多条件复合是方向,demo 未全实现)。
- "启用高级公式":demo 未启用(占位)。
- 动作:保存为常用检索
saveCustomSearch/ 检索runCustomSearch(不保存,临时state.customDraft);编辑态 = 另存为新检索 / 保存修改。
4. 保存的检索 = 可管理的自定义视图(line 1260-1278, 1599)
- 保存后进入「常用检索」菜单,与内置视图并列。
- 每项可:编辑检索 / 重命名 / 删除(line 1261
customMenuRow)。 - 设为默认视图:
pinView(line 1599)——内置视图或自定义检索都可 pin 为默认;state.defaultView。 - 持久化:
persistCustomSearches(line 1257)写 localStorage{savedSearches, defaultView}。
5. 最近访问(line 1222 state.recentVisits)
recentVisits:[{id:1,scene:'personal',at:now-3min}, {id:105,scene:'publicPool',...}, ...]
- 结构 =
{商机 id, 访问场景 scene, 访问时间 at}。 - 按
at倒序展示;同一商机一条(去重按 id)。 - demo 未画上限条数(→ 产品定,P2-2 拍板:配置值默认 50)。
scene(personal/manage/publicPool)= 记录当时从哪个皮肤进入(对齐详情三皮肤)。
6. 数据权限(line 2710,独立于视图的一层,faithfulAdmin 段)
角色「默认数据范围」单选:全部数据 / 本团队及下级 / 本部门及下级 / 仅本人负责·参与 / 自定义组织范围 / 按业务关系。
- 业务对象例外:商机 = "本部门及下级 + 我参与团队的商机"。
- 口径:"功能权限决定能做什么,数据权限决定能看哪些记录,最终取两者交集"。
- ⇒ 数据范围由角色数据权限决定,不是视图下拉里选层级。crm-auth
DataScopeEnum= SELF/DEPT/DEPT_AND_CHILD/ALL 四档;demo 的"本团队及下级""自定义组织范围""按业务关系"是更细档,属数据权限模块扩展,非商机模块自建。
7. 视图模式(正交于视图内容,line 1281)
分屏视图 split / 列表视图 list / 看板视图 board——展示模式切换,与"哪个视图/检索"正交。