系统根据用户进入的方式,将 App 划分为三种上下文模式 (Context Mode)。不同模式决定了用户的功能权限、UI 展示以及路由行为。
graph TD
Entry{用户入口}
Entry -->|打开APP/首页| Mode1[平台模式 Platform Mode]
Entry -->|扫描店铺码/点击分享链接| Mode2[店铺模式 Shop Mode]
Entry -->|扫描桌位码| Mode3[桌位模式 Table Mode]
subgraph Mode1 [平台模式 (流量分发)]
Home[首页 Index] -->|推荐| ShopList[商家列表]
Home -->|推荐| DishList[菜品列表]
ShopList -->|选择店铺| ShopMenu[店铺菜单]
DishList -->|点击菜品| ShopMenu
end
subgraph Mode2 [店铺模式 (外卖/预约)]
ShopQR[店铺码] -->|解析| ShopMenu
Note2[仅限: 外卖 / 自提 / 预约]
end
subgraph Mode3 [桌位模式 (堂食点餐)]
TableQR[桌位码] -->|解析| TableMenu[堂食菜单]
Note3[仅限: 扫码下单 / 加菜]
end
ShopMenu -.->|扫桌码升级| TableMenu
shopId 为空,tableCode 为空。/indexshopId 有值,tableCode 为空。/menu?shopId={id}shopId 和 tableCode。shopId 有值,tableCode 有值。/menu?shopId={id}&tableCode={code}在 user.ts 或 app.ts 中维护全局上下文:
interface AppContext {
mode: "platform" | "shop" | "table";
shopId?: string; // 当前锁定店铺
tableCode?: string; // 当前锁定桌位
shopInfo?: Shop; // 店铺详情缓存
}
| 路由 | 描述 | 守卫逻辑 |
|---|---|---|
/index |
平台首页 | 清除 currentShop/tableCode,进入 Platform Mode |
/scan |
扫码解析 | 解析参数 -> 判断模式 -> 写入 Store -> 跳转 |
/menu |
菜单页 | 必须有 shopId (Query 或 Store)。无 shopId -> 重定向回 /index。有 tableCode -> 显示堂食 UI。无 tableCode -> 显示外卖/预约 UI。 |
/scan)shopId (必填), tableCode (可选)。tableCode:
initGuestSession(shopId, tableCode)/menu (携带桌位信息)tableCode:
currentShopId = shopId/menu (仅店铺信息)核心目标: 帮助用户快速找到感兴趣的餐厅或美食。
页面布局:
[首页] [订单] [我的]核心目标: 展示店铺品牌形象,提供便捷的外卖/自提服务。
页面布局:
去结算 (跳转确认订单页)。核心目标: 快速下单,减少服务员介入,明确就餐状态。
页面布局:
[ A1 桌 ],旁边可有 多人点餐 状态提示。呼叫服务员 (加水/催单) 悬浮球。选好了 -> 确认下单 (直接落单到厨房,区别于外卖的"去结算")。为提高开发效率,任务可拆分为三个独立的开发轨道 (Tracks),可由多个 Agent 并行执行:
/index 平台首页及公共组件。SearchBar, ShopCard, DishCard.src/views/index/index.vue:
/menu 的外卖模式 (Shop Mode)。<ShopHeader> 组件: 展示店招、评分、配送信息。<DeliveryFooter> 组件: 购物车预览、起送价逻辑、去结算。menu.vue: 适配 shopId,集成 B 端组件。/menu 的堂食模式 (Table Mode)。<TableHeader> 组件: 桌号显示、人数切换、呼叫服务。<TableFooter> 组件: 堂食下单逻辑 (直接提交订单)。cart.ts: 区分堂食购物车(需提交)与外卖购物车(本地存储)。任务:
app.ts 状态管理无误。scan/index.vue 到各模式的跳转。subgraph Company[公司层] Owner[老板 owner] end
subgraph Shop[店铺层] Manager[店长 manager] Staff[员工 staff] end
subgraph Customer[顾客层] Customer1[顾客 customer] Guest[访客 guest] end
Admin -->|管理| Owner Owner -->|拥有多家| Shop Manager -->|管理| Staff Shop -->|服务| Customer1 Shop -->|服务| Guest
### 4.1 角色权限矩阵
功能模块 admin owner manager staff customer ────────────────────────────────────────────────────────────────── [平台管理] 查看所有公司 ✓ ✗ ✗ ✗ ✗ 创建/编辑公司 ✓ ✗ ✗ ✗ ✗
[公司/多店铺管理] 查看公司下所有店铺 ✓ ✓ ✗ ✗ ✗ 多店铺汇总报表 ✓ ✓ ✗ ✗ ✗
[单店铺管理] 店铺仪表盘 ✓ ✓ ✓ ✗ ✗ 菜单管理 ✓ ✓ ✓ ✗ ✗ 员工管理 ✓ ✓ ✓ ✗ ✗
[日常运营] 桌位管理 ✓ ✓ ✓ ✓ ✗ 订单处理 ✓ ✓ ✓ ✓ ✗ 收银结账 ✓ ✓ ✓ ✓ ✗