# 门店数据页面设计方案 ## 一、现有门店数据结构分析 ### 1.1 门店基础信息表 (lq_mdxx) **核心字段:** - **基本信息**:门店编码(mdbm)、单据门店编号(djmdbh)、店名(dm)、城市(cs)、地址(dz) - **联系信息**:姓名(xm)、电话号码(dhhm)、座机(zj) - **状态信息**:最新状态(zxzt)、开业时间(kysj)、状态(status) - **组织归属**:事业部(syb)、教育部(jyb)、科技部(kjb)、大项目部(dxmb) - **门店分类**:门店类型(StoreType: 200平门店/旗舰店)、门店类别(StoreCategory: A类/B类/C类) - **目标设置**: - 门店生命线(xsyj) - 消耗业绩(xhyj) - 项目数(xms) - 人头1(rt1)、人头2(rt2) - 人次(rc) - **人员信息**:在职人数(zzrs) ### 1.2 门店相关业务表 **开单相关:** - `lq_kd_kdjlb` - 开单记录表(门店业绩来源) - `lq_kd_pxmx` - 开单品项明细表 - `lq_kd_jksyj` - 开单健康师业绩表 **消耗相关:** - `lq_xh_hyhk` - 会员耗卡表(消耗业绩来源) - `lq_xh_pxmx` - 耗卡品项明细表 - `lq_xh_jksyj` - 耗卡健康师业绩表 - `lq_xh_kjbsyj` - 耗卡科技部业绩表 **退卡相关:** - `lq_hytk_hytk` - 会员退卡表 - `lq_tkjlb` - 退卡记录表 **统计相关:** - `lq_statistics_store_total_performance` - 门店总业绩统计表 - `lq_share_statistics_store` - 门店股份统计表 ## 二、现有门店相关接口梳理 ### 2.1 门店基础信息接口 (LqMdxxService) | 接口路径 | 方法 | 功能说明 | |---------|------|---------| | `/api/Extend/LqMdxx/{id}` | GET | 获取门店详细信息 | | `/api/Extend/LqMdxx` | GET | 获取门店列表(分页,支持多条件筛选) | | `/api/Extend/LqMdxx` | POST | 新建门店信息 | | `/api/Extend/LqMdxx/{id}` | PUT | 更新门店信息 | | `/api/Extend/LqMdxx/{id}/targets` | PUT | 更新门店目标字段 | | `/api/Extend/LqMdxx/{id}` | DELETE | 删除门店(软删除) | | `/api/Extend/LqMdxx/Selector` | GET | 获取门店下拉选择数据 | | `/api/Extend/LqMdxx/Selector/StoreCategory` | GET | 获取门店类别下拉选择 | | `/api/Extend/LqMdxx/Selector/StoreType` | GET | 获取门店类型下拉选择 | ### 2.2 门店报表接口 (LqReportService) | 接口路径 | 方法 | 功能说明 | |---------|------|---------| | `/api/Extend/LqReport/get-store-performance-trend` | POST | 获取门店业绩趋势数据(月度/周度/日度) | | `/api/Extend/LqReport/get-store-performance-ranking` | POST | 获取门店业绩排行榜 | | `/api/Extend/LqReport/get-store-item-statistics` | POST | 获取门店项目指标统计数据 | | `/api/Extend/LqReport/get-store-remaining-rights` | POST | 获取门店剩余权益统计 | | `/api/Extend/LqReport/get-store-performance-comparison` | POST | 获取门店业绩对比数据 | ### 2.3 门店日报接口 (LqDailyReportService) | 接口路径 | 方法 | 功能说明 | |---------|------|---------| | `/api/Extend/LqDailyReport/get-store-daily-statistics` | POST | 获取门店每日运营统计数据 | ### 2.4 门店统计接口 (LqStatisticsService) | 接口路径 | 方法 | 功能说明 | |---------|------|---------| | `/api/Extend/LqStatistics/GetStorePerformanceList` | GET | 获取门店业绩统计列表(消耗业绩) | | `/api/Extend/LqStatistics/GetStoreOrderPerformanceList` | GET | 获取门店开单业绩统计列表 | | `/api/Extend/LqStatistics/StoreStatistics` | POST | 获取门店统计信息(支持日期范围) | ## 三、门店数据页面可展示维度 ### 3.1 门店概览(Dashboard) **核心指标卡片:** 1. **门店总数**:当前状态为"开店"的门店数量 2. **本月总业绩**:所有门店本月开单业绩总和 3. **本月消耗业绩**:所有门店本月消耗业绩总和 4. **本月完成率**:总消耗业绩 / 总目标业绩 5. **活跃门店数**:本月有开单或消耗的门店数量 6. **平均单店业绩**:总业绩 / 门店数 **数据来源:** - 门店列表:`/api/Extend/LqMdxx` - 业绩统计:`/api/Extend/LqStatistics/GetStoreOrderPerformanceList` 或 `/api/Extend/LqStatistics/GetStorePerformanceList` ### 3.2 门店列表页 **展示内容:** - 门店基本信息:店名、编码、城市、地址、状态 - 门店分类:门店类型、门店类别 - 组织归属:所属事业部/教育部/科技部/大项目部 - 目标信息:门店生命线、消耗业绩目标、项目数目标 - 实时业绩:本月开单业绩、本月消耗业绩、完成率 - 运营指标:人头数、人次、项目数 **功能:** - 多条件筛选(城市、状态、门店类型、门店类别、组织归属) - 排序(按业绩、完成率等) - 分页展示 - 点击门店进入详情页 **数据来源:** - 门店列表:`/api/Extend/LqMdxx` - 业绩数据:`/api/Extend/LqStatistics/StoreStatistics`(实时计算) ### 3.3 门店详情页 #### 3.3.1 门店基础信息卡片 **展示内容:** - 门店基本信息:店名、编码、城市、地址、联系方式 - 门店状态:最新状态、开业时间、在职人数 - 组织归属:所属部门、归属时间范围 - 门店分类:门店类型、门店类别 - 目标设置:各项目标值(可编辑) **数据来源:** - `/api/Extend/LqMdxx/{id}` #### 3.3.2 业绩概览 **核心指标:** - **开单业绩**:本月开单金额、开单次数、平均开单金额 - **消耗业绩**:本月消耗金额、消耗次数、平均消耗金额 - **完成率**:消耗业绩 / 目标业绩 - **剩余权益**:门店会员剩余权益总额 - **退卡情况**:退卡金额、退卡次数 **数据来源:** - `/api/Extend/LqStatistics/StoreStatistics` - `/api/Extend/LqReport/get-store-remaining-rights` #### 3.3.3 业绩趋势图 **展示内容:** - 近12个月开单业绩趋势(折线图) - 近12个月消耗业绩趋势(折线图) - 开单与消耗对比(双折线图) **数据来源:** - `/api/Extend/LqReport/get-store-performance-trend` #### 3.3.4 运营指标分析 **展示内容:** - **人头数**:去重后的消费会员数 - **人次**:日度去重客户数 - **项目数**:消耗项目总数(原始项目数、加班项目数、陪同项目数) - **客单价**:消耗业绩 / 消耗人次 - **项目单价**:消耗业绩 / 项目数 **数据来源:** - `/api/Extend/LqDailyReport/get-store-daily-statistics` #### 3.3.5 项目指标统计 **展示内容:** - 消耗项目数、消耗率 - 客单项目数、消耗客单价 - 开单金额、消耗金额 - 消耗人次 **数据来源:** - `/api/Extend/LqReport/get-store-item-statistics` #### 3.3.6 品项分析 **展示内容:** - 各品项消耗金额排行(柱状图) - 各品项消耗次数排行 - 品项分类占比(饼图:生美/科美/医美/产品) **数据来源:** - `/api/Extend/LqReport/get-store-item-statistics`(需要扩展接口支持品项明细) #### 3.3.7 每日运营数据 **展示内容:** - 日期、人头数、人次、项目数、消耗业绩 - 支持时间范围筛选 - 表格展示,支持排序 **数据来源:** - `/api/Extend/LqDailyReport/get-store-daily-statistics` #### 3.3.8 门店对比分析 **展示内容:** - 与同类型门店对比(门店类型、门店类别) - 与同组织门店对比(事业部/教育部/科技部) - 业绩排名、完成率排名 **数据来源:** - `/api/Extend/LqReport/get-store-performance-comparison` - `/api/Extend/LqReport/get-store-performance-ranking` ### 3.4 门店排行榜 **展示内容:** - 门店业绩排行榜(条形图) - 门店完成率排行榜 - 门店消耗业绩排行榜 - 支持按月份筛选 **数据来源:** - `/api/Extend/LqReport/get-store-performance-ranking` ### 3.5 门店对比分析页 **展示内容:** - 多门店业绩对比(折线图) - 多门店完成率对比(柱状图) - 多门店运营指标对比(表格) **数据来源:** - `/api/Extend/LqReport/get-store-performance-comparison` ## 四、页面设计方案 ### 4.1 页面结构 ``` 门店数据页面 ├── 门店概览(Dashboard) │ ├── 核心指标卡片(6个) │ ├── 门店业绩趋势图(近12个月) │ ├── 门店排行榜(Top 10) │ └── 门店分布地图(可选) │ ├── 门店列表 │ ├── 筛选条件栏 │ ├── 门店列表表格 │ └── 分页组件 │ ├── 门店详情(点击门店进入) │ ├── 基础信息卡片 │ ├── 业绩概览卡片 │ ├── 业绩趋势图 │ ├── 运营指标分析 │ ├── 项目指标统计 │ ├── 品项分析 │ ├── 每日运营数据表格 │ └── 门店对比分析 │ └── 门店对比(多门店对比) ├── 门店选择器 ├── 业绩对比图表 └── 指标对比表格 ``` ### 4.2 页面布局建议 **参考现有页面风格:** - 使用卡片式布局(参考 `form9.vue` 领导驾驶舱) - 统一的颜色方案(主色:#409EFF) - 统计卡片高度100px,内边距12px,圆角12px - 图表使用 ECharts - 表格使用 NCC-table 或 Element UI Table ### 4.3 交互设计 **筛选功能:** - 时间范围选择(年月选择器) - 门店多选(支持全选) - 城市筛选 - 门店类型/类别筛选 - 组织归属筛选 - 状态筛选 **数据刷新:** - 手动刷新按钮 - 自动刷新(可选,如每5分钟) **数据导出:** - 支持导出Excel - 支持导出PDF(可选) ## 五、需要新增的接口 ### 5.1 门店概览数据接口 **接口路径:** `/api/Extend/LqReport/get-store-overview` **功能:** 获取门店概览的核心指标数据 **返回数据:** ```json { "totalStores": 50, "activeStores": 45, "monthBillingAmount": 1000000.00, "monthConsumeAmount": 800000.00, "completionRate": 80.00, "avgStorePerformance": 20000.00 } ``` ### 5.2 门店品项明细统计接口 **接口路径:** `/api/Extend/LqReport/get-store-item-detail-statistics` **功能:** 获取门店各品项的消耗统计(用于品项分析) **参数:** - storeId: 门店ID - startTime: 开始时间 - endTime: 结束时间 **返回数据:** ```json { "storeId": "xxx", "storeName": "xxx", "items": [ { "itemId": "xxx", "itemName": "xxx", "itemCategory": "生美", "consumeAmount": 10000.00, "consumeCount": 50, "consumeQuantity": 100 } ] } ``` ### 5.3 门店多维度对比接口(扩展) **接口路径:** `/api/Extend/LqReport/get-store-multi-comparison` **功能:** 支持多门店、多指标、多时间段的对比分析 ## 六、技术实现建议 ### 6.1 前端组件 **主要组件:** - `store-dashboard.vue` - 门店概览页 - `store-list.vue` - 门店列表页 - `store-detail.vue` - 门店详情页 - `store-comparison.vue` - 门店对比页 - `store-stat-card.vue` - 统计卡片组件(可复用) - `store-trend-chart.vue` - 趋势图组件(可复用) ### 6.2 后端服务 **建议创建:** `StoreDataService.cs` 专门用于门店数据统计 **职责:** - 聚合多个数据源的统计结果 - 提供统一的门店数据查询接口 - 缓存常用统计数据(提升性能) ### 6.3 数据缓存策略 **建议:** - 门店基础信息:缓存30分钟 - 门店业绩数据:缓存10分钟(实时性要求高) - 门店趋势数据:缓存1小时(历史数据变化少) ## 七、开发优先级建议 ### 第一阶段(核心功能) 1. ✅ 门店列表页(基础信息展示、筛选、排序) 2. ✅ 门店详情页(基础信息、业绩概览、趋势图) 3. ✅ 门店概览Dashboard(核心指标卡片) ### 第二阶段(增强功能) 4. ✅ 门店运营指标分析 5. ✅ 门店项目指标统计 6. ✅ 门店排行榜 ### 第三阶段(高级功能) 7. ✅ 门店品项分析 8. ✅ 门店对比分析 9. ✅ 门店每日运营数据表格 ### 第四阶段(优化功能) 10. ✅ 数据导出功能 11. ✅ 数据缓存优化 12. ✅ 性能优化 ## 八、注意事项 ### 8.1 数据权限 - 需要根据用户组织权限过滤门店数据 - 参考现有权限控制逻辑(如 `LqZjlMdsmxszService.GetManagedStores`) ### 8.2 数据一致性 - 统计数据和列表数据使用相同的过滤条件 - 时间范围、门店筛选保持一致 ### 8.3 性能优化 - 大数据量查询使用分页 - 复杂统计查询考虑使用统计表(如 `lq_statistics_store_total_performance`) - 避免N+1查询问题 ### 8.4 数据准确性 - 确保统计逻辑与业务逻辑一致 - 注意 `F_IsEffective = 1` 的有效数据过滤 - 注意门店状态过滤(`zxzt = '开店'`) ## 九、参考现有页面 - **领导驾驶舱** (`form9.vue`) - 参考布局和样式 - **会员画像** (`member-portrait-dialog.vue`) - 参考详情页设计 - **KPI数据穿透** (`kpi-drill-dialog.vue`) - 参考数据展示方式