Files
sino-mci/docs/superpowers/specs/2026-07-09-system-menu-redesign-design.md

9.6 KiB
Raw Blame History

消息中台管理后台菜单重构设计

日期2026-07-09
状态:已确认,待实现
关联文档消息与客户互动中台架构设计


1. 背景与问题

当前管理后台采用 14 项平铺菜单,功能随需求逐步叠加,导致:

  • 职责割裂:同一业务对象(如渠道账号)的初始化、状态监控、登录操作分散在不同页面。
  • 工作流不连贯:运营人员完成一次“发消息”需要跳转发送记录、测试发送、发送策略等多个平级菜单。
  • 设计不统一:部分页面是对象管理 CRUD部分是流程编排部分是工具页面缺少统一的信息架构。

本设计从三类用户(平台管理员、租户管理员/技术人员、运营人员)的实际工作流出发,重新梳理菜单层级与功能定义。


2. 设计目标

  1. 按工作流组织顶层菜单:让用户按“接入 → 维护资产 → 运营发送 → 编排流程 → 系统管理”的路径找到功能。
  2. 按业务对象聚合二级功能:同一对象(渠道账号、会话、联系人)的关联操作放在同一模块下。
  3. 明确功能边界:每个菜单项都有清晰的功能定义、面向角色和与现有页面的映射关系。
  4. 预留扩展位IVR 流程等 2092 阶段功能先不实现,但保留模块位置说明。

3. 设计决策

采用 混合式组织(候选 C

  • 顶层按 工作流/职责域 划分,降低日常操作路径长度。
  • 模块内按 业务对象 分组,保持数据模型与 UI 结构一致。
  • 权限按角色控制菜单可见性,而不是为每个角色单独一套菜单。

4. 角色定义

角色 说明 典型操作
平台管理员 中台平台级管理 创建租户、维护平台角色
租户管理员 业务系统技术人员/管理员 配置渠道、管理用户、配置流程
运营人员 日常消息运营 发送、查看记录、维护联系人/群

说明:运营人员缺少部分租户内容管理,其他权限与租户管理员相同。具体可见性通过角色权限控制,不由菜单结构区分。


5. 菜单结构

5.1 一级菜单总览

一级菜单 定位 可见角色
概览 运营总览、快捷入口 全部
渠道接入 渠道资源与账号接入 租户管理员、运营人员
客户与群 联系人、会话、标签资产 租户管理员、运营人员
消息运营 发送、记录、策略、消息查询 租户管理员、运营人员
流程编排 入站消息处理配置 租户管理员
系统管理 租户、用户、角色 平台管理员、租户管理员

5.2 概览

二级菜单 功能定义 页面/备注
运营总览 展示今日发送量、成功/失败/待发送统计、最近异常、关键指标卡片 复用并增强现有 Dashboard
快捷入口 提供常用功能的一键跳转(测试发送、发送记录、渠道账号) 新增

5.3 渠道接入

二级菜单 功能定义 页面/备注
渠道主体 维护企业在各渠道的主体信息:企微 corp_id/secret、钉钉/飞书主体;支持会话存档开关 现有 ChannelSubject 页面迁移
渠道账号 维护用于收发消息的载体账号:新增、编辑、启用/停用、查看在线/登录/风控状态、强制下线 现有 ChannelAccount 页面迁移
账号初始化 统一入口引导初始化:企微员工/应用、个微扫码登录、机器人 webhook 从 ChannelAccount 页面拆分出的引导流程
应用管理 企微应用等渠道应用的配置agent_id、agent_secret、应用消息推送能力 新增(原散落在渠道账号中)

5.4 客户与群

二级菜单 功能定义 页面/备注
联系人 维护 Person业务身份含 person_code、person_type、phone、institution_id、supplier_id、contract_id支持新增/编辑/启用停用 现有 Person 页面增强
渠道身份 管理 Person 在各渠道的身份映射:企微 external_userid、个微 wxid、钉钉 userid、飞书 open_id 新增独立入口
标签体系 树形标签管理:新增/编辑/删除、查看人员与会话标签分布;标签表达角色/合同/机构/供应商等业务属性 现有 Tag 页面升级为体系化管理
会话/群聊 维护 Conversation新增、编辑、同步群成员、查看历史消息、绑定业务字段contract_id 等) 现有 Conversation 页面迁移
账号-会话绑定 为会话配置发送主备号、接收主备号及优先级;单聊约束需校验 channel_type 一致性 从 Conversation 页面拆分出的独立管理

5.5 消息运营

二级菜单 功能定义 页面/备注
发送记录 按任务查询发送明细、状态、结果、重试记录;支持取消待发送任务 现有 SendRecord 页面迁移
测试发送 模拟发送,不实际调用渠道,用于业务系统联调和发送逻辑验证 现有 MessageTest 页面迁移并改名
发送策略 策略组配置:频率控制、时间窗口、黑名单、重试、主备切换 现有 SendPolicy 页面迁移
消息查询 统一查询入站/出站消息事件MessageEvent支持按会话、人员、账号、来源realtime / session_archive筛选 新增

5.6 流程编排

二级菜单 功能定义 页面/备注
入站 Webhook 配置业务系统接收入站消息的 webhook URL、签名方式、测试连通性 现有 InboundWebhook 页面迁移
入站流程 轻量画布配置入站消息处理流程receive → intent → condition → webhook/reply 现有 InboundFlow 页面迁移

本期不做IVR 流程2092 阶段接入)。

5.7 系统管理

二级菜单 功能定义 页面/备注
租户管理 平台管理员创建/编辑租户;租户管理员维护本租户基础信息、认证配置、入站 webhook 现有 TenantManagement 页面增强
用户管理 中台用户增删改查、重置密码、启用/停用、绑定角色 现有 UserManagement 页面迁移
角色权限 平台角色 admin/operator/viewer 的权限配置与分配 新增(首期角色固定,可配置权限列表)

6. 现有菜单调整映射

当前菜单 调整方式 新位置
概览 保留并增强 概览 → 运营总览
渠道主体 保留 渠道接入 → 渠道主体
渠道账号 拆分 渠道接入 → 渠道账号 / 账号初始化 / 应用管理
会话/群聊 拆分 客户与群 → 会话/群聊 / 账号-会话绑定
联系人 保留,增强 客户与群 → 联系人
标签 升级为体系 客户与群 → 标签体系
发送记录 保留 消息运营 → 发送记录
消息测试 保留,改名 消息运营 → 测试发送
发送策略 保留 消息运营 → 发送策略
入站流程 保留 流程编排 → 入站流程
IVR 流程 本期移除
入站 Webhook 保留 流程编排 → 入站 Webhook
流程追踪 合并 消息运营 → 发送记录(详情)/ 消息查询
用户管理 保留 系统管理 → 用户管理
租户管理 保留 系统管理 → 租户管理

7. 新增页面清单

页面 所属模块 功能说明
账号初始化 渠道接入 引导式初始化各渠道账号
应用管理 渠道接入 企微应用等渠道应用配置
渠道身份 客户与群 管理 Person 在各渠道的身份映射
账号-会话绑定 客户与群 会话与收发账号的绑定管理
消息查询 消息运营 统一查询入站/出站消息事件
角色权限 系统管理 中台角色与权限配置

8. 不在本期范围内的功能

功能 原因 后续阶段
IVR 流程 属于 2092 IVR 语音配置需求,本期聚焦 1851 企微场景 2092 阶段
模板管理 中台不保存模板,由业务系统自行维护 不涉及
业务触发规则 中台不承载业务系统触发规则 不涉及

9. 实现要点

  1. 前端路由:按新菜单结构重排 admin-web/src/router/index.ts,路径建议保持语义化,如 /channel-subject/channel-account/init/customer/person/message/record
  2. 布局组件Layout.vue 从平铺 el-menu-item 改为分组 el-sub-menu,支持一级展开/收起。
  3. 权限控制:菜单可见性通过 authStore.roleCodes 或后端返回的权限列表控制URL 级权限同步调整。
  4. 页面拆分
    • Conversation.vue 中的“绑定账号”功能拆出为 ConversationAccountBinding.vue
    • ChannelAccount.vue 中的初始化流程拆出为 ChannelAccountInit.vue
  5. 空状态处理:新增页面先实现最小可用版本,避免阻塞菜单上线。

10. 验收标准

  • 左侧导航按新 6 大模块分组展示,无 IVR 流程入口。
  • 每个二级菜单有明确页面,无 404。
  • 租户管理员、运营人员、平台管理员看到的菜单符合角色定义。
  • 现有功能在迁移后行为保持一致。
  • 新增页面至少具备列表/查询能力,复杂编辑可二期补齐。