Files
CloudHome-Ops/docs/sequence-diagram.mermaid

71 lines
2.2 KiB
Plaintext

%% 主流程:门店编辑(省市区+主题+品牌)
sequenceDiagram
actor U as 用户
participant S as _StoreFormSheet
participant RP as RegionPicker
participant RD as RegionData
participant TG as StoreThemeGrid
participant TP as StoreThemePreview
participant BE as BrandingEditor
participant IP as image_picker
participant OS as OrgService
participant LC as StoreLocalCache
U->>S: 打开新增/编辑门店
S->>RD: load() (懒加载 province.json)
U->>RP: 点「地址」
RP->>RD: citiesOf/ districtsOf
RP-->>S: provinceCode/cityCode/districtCode + text
U->>TG: 点「主题皮肤」
TG->>TP: 选 themeId → 预览模拟头部
TG-->>S: themeId
U->>BE: 点「启动图/Logo」
BE->>IP: 选图
IP-->>BE: XFile.path
BE-->>S: splashUrl/logoUrl (本地路径)
U->>S: 点「保存」
S->>OS: saveStore(data) [占位]
OS->>LC: saveTheme/saveBranding/saveRegion
OS-->>S: 完成(未真实上报 TODO)
S-->>U: 关闭 sheet, 刷新列表
%% 设备扫码:查询模式
sequenceDiagram
actor U as 用户
participant DL as device_list_page
participant SP as device_scan_page
participant MS as mobile_scanner
participant DS as DeviceService
U->>DL: AppBar 扫码图标
DL->>SP: go('/device/scan?mode=query')
SP->>MS: 实时扫码 / 相册识别
MS-->>SP: scanPayload (mac/sn)
SP->>DS: fetchDevices(mac: payload)
DS-->>SP: Device?
alt 命中
SP-->>U: go('/device/:id') 跳详情
else 未命中
SP-->>U: 提示「未找到设备」
end
%% 设备扫码:绑定模式
sequenceDiagram
actor U as 用户
participant DD as device_detail_page
participant SP as device_scan_page
participant MS as mobile_scanner
participant DS as DeviceService
participant LC as StoreLocalCache
U->>DD: 「扫二维码绑定」
DD->>SP: go('/device/scan?mode=bind&deviceId=xxx')
SP->>MS: 扫码得门店/分组码
MS-->>SP: scanPayload
SP->>U: 弹窗确认绑定门店/分组
U->>SP: 确认
SP->>DS: bindDeviceByScan(payload, storeId, groupId) [占位]
DS->>LC: updateDevice(groupId/storeName)
DS-->>SP: 完成(真实 POST TODO)
SP-->>DD: 返回, 展示更新归属