Skip to content

管理后台 Web

负责人:前端程序员
运行环境:浏览器(内部使用,不对外公开);需同时支持 PC 与移动端适配(响应式布局或等效方案,见下)
核心职责:为运营人员、门店店长、客服、老板/财务提供数据查看与系统管理界面


职责边界

管理后台是面向内部运营人员的 Web 应用,通过调用云端 API 实现所有功能,本身不包含业务逻辑。

核心系统(云端)持久化业务原始数据(订单流水、核销、进出事件、设备日志、配置变更等);管理后台只做展示、筛选、配置与导出,不替代账套;财务侧报表在后台基于原始数据与分润规则、成本配置等派生计算后导出,供导入第三方专业财务系统。

管理后台负责:

  • 门店、用户、订单、产品的增删改查界面
  • 数据分析图表展示
  • 硬件状态监控与远程控制操作
  • 外部券码管理
  • 多角色权限(owner / finance / manager / support / ops)及门店上下文切换

管理后台不负责:

  • 直接操作硬件(通过云端 API 下指令)
  • 用户端功能(由小程序负责)

终端与移动端适配

要求说明
布局断点适配窄屏;表格在移动端优先「卡片列表 + 横向滑动」或「关键列 + 详情抽屉」
交互触控热区足够大;远程开门等高危操作需二次确认
门店切换小屏下切换器支持全屏搜索、最近使用门店、与 门店管理 — 多维度快速搜索 相同维度的快速定位
性能列表虚拟滚动或分页;弱网下列表骨架屏与失败重试

权限与使用视角

设计权限时与 门店上下文(全体店 / 单店) 配合:manager(店长) 以「先选定门店,再操作本店数据」为主路径;support(客服) 以「先定位问题对象(人或店/设备)」为主路径;finance(财务) 以「规则配置 + 期间汇总 + 标准导出」为主路径。

管理人员统一存储于 staff 表,角色定义见 用户体系 — 管理人员角色

1. manager(店长)

  • 切换门店:通过顶部(或移动端首屏)门店切换器进入单店视角;切换器须支持多种快速搜索方式定位门店,规则与 门店管理 中「多维度快速搜索」一致(关键词、状态、类型、区域、渠道、设备/设施等,可组合)。
  • 数据范围:登录后默认仅绑定门店;仅可查看与操作本店数据;会员列表仅展示归属本店的会员(由云端按 staff_store 关联表鉴权与筛选,见 会员管理)。
  • 全体店模式manager 默认为单店视角,无全体店选项。

2. support(客服)

  • 视角:处理「某消费者」或「某门店设备/履约」问题,需少步数定位
  • 能力建议:全局搜索(消费者 ID、手机号、微信昵称、订单号);门店搜索(与店长相同维度);从消费者/订单/设备告警一键跳转到关联门店上下文与硬件面板;操作留痕,敏感能力(如删人脸)按角色收敛。

3. finance(财务)

  • 配置门店分润设置(规则、比例、参与主体、生效区间、例外门店等);店铺成本配置(固定成本、分摊规则、科目映射等与产品细化)。
  • 报表:按会计期间生成可导入第三方财务系统的导出文件(列名、币种、税率、门店维度、科目代码等与目标系统模板对齐;格式如 CSV/Excel,具体模板在实施阶段锁定)。
  • 数据依据:以核心系统原始流水为准;报表为派生结果,需支持核对明细钻取(跳转订单/核销列表)。

功能页面清单(索引)

模块文档
门店管理(列表、多维度搜索、子模块字段)门店管理
用户 / 会员管理(列表、编辑信息、店长数据范围)会员管理
订单管理(列表、详情、退款流程、数据导出)订单管理
产品管理(CRUD、上架下架、价格变更)产品管理
硬件控制面板(设备状态、远程操作、告警中心)硬件控制面板
数据分析(仪表盘、营收/用户/运营报表)数据分析
财务管理(分润配置、成本配置、期间报表)财务管理
外部券码管理(批次管理、导出、核销记录)外部券码管理

模块优先级(开发顺序建议)

优先级模块理由
P0门店管理 + 会员管理基础数据管理,其他模块依赖
P0订单管理 + 产品管理核心业务闭环(购买 → 查询)
P1外部券码管理营销推广能力
P1硬件控制面板门店日常运维必备
P2数据分析经营决策支撑
P2财务管理财务对账与分润

多语言内容录入

管理后台界面可保持中文,但面向用户展示的业务内容,后台录入时必须支持多语言输入。

录入规则

  • 支持 zhen,两种语言均必填
  • 后台提交格式统一为多语言对象:{ "zh": "...", "en": "..." }
  • 表单保存前校验每个必填语言是否有值
  • 列表页默认显示中文,可切换预览英文

涉及页面

页面可译字段
产品管理产品名称、产品描述
门店管理门店名称、地址、门店简介
活动/Banner(如有)标题、文案内容

前端组件建议

为避免重复开发,建议抽象 LocalizedInput 组件,按语言 Tab 编辑同一字段不同语言值,统一用于产品、门店等表单。


角色权限矩阵

功能模块ownerfinancemanager(本店)supportops
查看所有门店数据按策略
门店切换 / 快速搜索定位✅(仅绑定店)
本店消费者与订单✅(仅本店归属)✅(处理问题时)
产品/价格管理
订单退款按策略
外部券码管理按策略
硬件远程控制按策略
消费者人脸数据管理按策略
分润 / 成本配置
财务导出(第三方导入)
数据分析查看✅(本店)按策略

详情页 Tab 权限分层策略

详情页(门店、会员、订单等)普遍采用多级 Tab 组织功能。不同角色能看到的 Tab 集合不同,遵循以下设计原则:

核心原则:总部配置集中制

  1. 平台级配置集中到专属 Tab:渠道绑定、设备增删、权限分配、账号绑定/解绑等「平台侧」管理能力,集中在总部专属 Tab 中,分店视角不可见。避免将总部专属字段零散地混在分店也能看到的 Tab 里。
  2. 共享 Tab 内按角色收敛可编辑范围:分店店长与总部都能看到的 Tab(如「基本信息」),在字段粒度上区分可编辑性 — 店长只能编辑营业时间、联系电话、门店简介等运营字段,门店名称、类型、面积等结构性字段仅总部可改。
  3. 分店视角保持简洁:店长只看到与日常运营直接相关的 Tab,减少认知负担,也减少误操作风险。

Tab 可见性规则

标记含义
全角色所有角色均可见(数据范围受门店上下文约束)
总部仅老板、财务等全局角色可见;分店店长不可见
按策略由管理员在角色权限配置中决定是否开放

各详情页 Tab 权限设计

详见各子模块文档中的 Tab 权限矩阵

前端实现

权限判断统一由 composables/usePermission.ts 提供:

  • isHQ:当前用户是否为总部视角(owner / finance / ops 角色,或处于全体店模式)
  • isBranch:当前用户是否为分店视角(manager 角色,单店模式)
  • can(action):细粒度能力检查,action 格式为 domain:action(如 store:channelsmember:binding

Tab 定义中使用 requireHQ: true 标记总部专属 Tab,组件层自动过滤不可见的 Tab。共享 Tab 内部的字段级权限控制也通过 isHQ / can() 实现。


页面结构(路由规划)

/login                         # 登录页
/dashboard                     # 经营仪表盘(默认首页)
/stores                        # 门店列表
/stores/:id                    # 门店详情
/users                         # 用户/会员列表
/users/:id                     # 用户详情
/orders                        # 订单列表
/orders/:id                    # 订单详情
/products                      # 产品管理列表
/products/new                  # 新增产品
/products/:id/edit             # 编辑产品
/hardware                      # 硬件总览面板
/hardware/:storeId             # 单店硬件面板
/hardware/alerts               # 告警中心
/analytics                     # 数据分析(默认营收分析)
/analytics/revenue             # 营收分析
/analytics/users               # 用户分析
/analytics/operations          # 运营分析
/analytics/feishu              # 飞书同步管理
/finance/profit-sharing        # 分润配置
/finance/costs                 # 成本配置
/finance/reports               # 财务报表
/voucher-batches               # 外部券码批次列表
/voucher-batches/new           # 新建券码批次
/voucher-batches/:id           # 批次详情
/voucher-batches/:id/records   # 核销记录
/settings                      # 系统设置(账号管理、门店配置)

技术选型建议(Nuxt UI)

管理台希望视觉与交互更现代、且兼顾 PC + 移动端,建议采用 Nuxt 3 + Nuxt UI 作为主栈;文档站仍可为 VitePress,二者同属 Vue 生态,组件不强制复用。官方文档:Nuxt UI

组件建议方案备注
框架Nuxt 3 + TypeScript约定式路由、布局、中间件,适合后台多模块;内部使用可按需关闭 SSR(如仅 ssr: false 或按路由规则),便于对接浏览器端 WS、长连接与纯前端会话
UI 与样式Nuxt UI@nuxt/ui)+ Tailwind CSS设计语言统一、默认观感优于传统企业组件库;内置响应式、暗色模式、无障碍基础;复杂表格用 UTableTanStack Table + Nuxt UI 原子组件拼装
状态管理Pinia@pinia/nuxt门店上下文、用户信息、筛选条件;持久化策略与 门店上下文系统 一致
数据请求$fetch / useFetch(ofetch)Nuxt 内置,可封装统一 baseURL、JWT 注入、错误与 401 处理;若团队更熟 Axios 也可并存
表单与校验Zod + Nuxt UI 表单模式与 TypeScript 类型对齐,减少手写校验分支
图表ECharts + vue-echarts(或等价封装)数据分析页;移动端减少系列数量、优先单图单指标
图标Nuxt Icon(Iconify)与 Nuxt UI 搭配成本低
构建Vite(Nuxt 内置)
实时状态WebSocketSSE硬件状态推送;注意与 SSR 关闭策略、断线重连与页面可见性
质量与体验ESLint + Prettier、Vitest(可选)表格/财务导出等关键路径可补 e2e(Playwright)

为何不优先 Ant Design Vue / Element Plus:二者偏「传统企业后台」视觉路径,定制主题后仍易同质化;Nuxt UI + Tailwind 更易做出品牌一致、信息密度可控的界面,且移动端断点下用同一套 token 收敛样式成本更低。


待确认事项

  • [ ] 飞书数据同步的展示形式(直接跳转飞书 vs 内嵌展示)
  • [ ] 硬件状态实时刷新方式(WebSocket vs 定时轮询)
  • [ ] 第三方财务系统导入模板字段清单(与实施财务软件对齐)
  • [ ] 客服角色默认是否全门店可读、是否需工单系统承接

扩展范围:营销中心

营销中心用于建立用户画像 → 人群圈选 → 精准触达 → 效果追踪的闭环营销能力,未纳入当前后台核心交付范围。

核心能力

能力说明依赖
用户画像分析基于用户标签、消费行为、到访数据自动生成用户画像用户标签体系(已在会员管理中设计)
人群圈选根据画像维度、标签、行为数据组合筛选目标用户群用户标签体系
微信模板消息推送对圈选用户群发送微信订阅消息 / 模板消息微信小程序订阅消息能力
定向产品推荐对特定用户群推送定制化产品或优惠产品管理系统
定向活动投放创建营销活动,定向投放给特定用户群产品管理 + 券码系统

用户画像分析

画像维度

维度数据来源说明
基础属性用户资料性别、年龄段、城市、来源渠道
消费特征订单系统累计消费、客单价、购买频次、偏好产品类型、首次/最近购买时间
到访行为进出记录到访频次、偏好时段(晨练/午间/晚间)、偏好门店、平均停留时长
会员状态会员系统当前是否有效卡、卡类型、即将到期(7天内)、已过期
标签画像标签系统手动标签 + 自动标签(参见会员管理 — 用户标签体系)

画像分析页面

功能说明
用户画像总览全量用户的画像分布(性别、年龄段、消费层级、活跃度分布图)
单用户画像会员详情页中展示该用户的完整画像雷达图
画像趋势按月查看用户画像分布的变化趋势

人群圈选

圈选条件

条件类别可选条件组合逻辑
基础属性性别、年龄段、城市、来源渠道AND / OR
标签用户标签(多选)AND / OR
消费行为累计消费范围、购买次数范围、偏好产品类型AND / OR
到访行为到访频次范围、偏好时段、偏好门店、最近到访时间AND / OR
会员状态是否有效卡、卡类型、即将到期、已过期AND / OR
风险等级低/中/高/黑名单AND / OR

多个条件类别之间为 AND 关系,同一类别内多条件为 OR 关系。圈选结果实时预览命中用户数。

人群管理

功能说明
保存人群将圈选条件保存为命名人群,如「即将到期的月卡用户」
人群列表查看已保存的人群,展示命中用户数、上次更新时间
动态更新人群用户列表每日凌晨自动刷新(基于最新数据)
人群导出导出人群用户列表为 Excel

Push 推送(微信订阅消息)

推送能力

功能说明
模板消息推送对圈选用户群或指定人群发送微信小程序订阅消息
推送模板管理管理可用的消息模板(标题、内容、跳转页面)
推送记录查看历史推送任务的状态和效果数据

推送流程

  1. 选择目标用户:从保存的人群中选择,或即时圈选
  2. 选择消息模板:从模板库中选择(如「续费提醒」「新品上线」「活动通知」)
  3. 编辑推送内容:模板变量填充(如用户名、卡类型、到期日期等)
  4. 选择跳转页面:推送后点击跳转的小程序页面(如产品详情、活动页)
  5. 设置推送时间:立即推送 / 定时推送
  6. 预览 & 确认:预览推送内容,确认后发送
  7. 效果追踪:推送后查看送达率、打开率、转化率

推送限制

限制[建议值]说明
同一用户推送频率每日最多 1 条避免打扰
单次推送上限10,000 人微信接口限制
推送时段08:00 - 21:00非营业时间不推送
订阅状态检查仅推送给已订阅用户微信订阅消息需要用户主动授权

推送效果数据

指标说明
目标用户数圈选命中用户数
可推送用户数已订阅消息的用户数
实际推送数成功调用微信 API 发送的数量
送达率实际推送数 / 目标用户数
打开率点击消息跳转小程序的用户数 / 实际推送数
转化率产生购买/续费等目标行为的用户数 / 打开数

定向产品推荐

功能说明
定价策略为特定人群设置专属价格或优惠(如即将到期用户续费 8 折)
推荐展示小程序端为匹配用户群的用户展示定向推荐产品
推荐记录查看定向推荐的历史配置和效果

定向活动投放

活动管理

功能说明
创建活动设置活动名称、时间、目标人群、活动产品/优惠
活动类型限时优惠 / 续费促销 / 新品体验 / 节日活动
活动追踪实时查看活动参与人数、转化率、GMV
活动复盘活动结束后生成效果报告

营销中心页面路由(规划)

/marketing                         # 营销中心首页(数据概览)
/marketing/portraits                # 用户画像分析
/marketing/audiences                # 人群管理
/marketing/audiences/new            # 新建人群圈选
/marketing/audiences/:id            # 人群详情
/marketing/push                     # Push 推送管理
/marketing/push/new                 # 新建推送任务
/marketing/push/:id                 # 推送详情(效果数据)
/marketing/promotions               # 定向产品推荐
/marketing/campaigns                # 活动管理
/marketing/campaigns/new            # 新建活动
/marketing/campaigns/:id            # 活动详情(数据追踪)

营销中心权限(规划)

功能owneropsfinancemanagersupport
用户画像查看✅ 全店✅ 全店✅ 全店✅ 本店
人群圈选
Push 推送
定向产品推荐
活动管理✅(查看)

设计说明:营销中心涉及定价策略和用户触达,属于总部运营策略级能力,managersupport 不开放操作权限。manager 可通过「门店概览」Tab 查看本店用户画像数据。

飞创 Fitron 内部规划文档