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

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——展示模式切换,与"哪个视图/检索"正交。