仪表盘 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }} 📊 {{ hqViewMode === '汇总' ? '全部门店汇总' : (stores.find(s=>s._id===currentStoreId)?.name || '本店') }}
¥{{ fmt(hqStats.totalMonthRevenue||0) }}
本月消费总额
¥{{ fmt(hqStats.totalMonthAchievement||0) }}
本月业绩总额
{{ hqStats.totalCustomers||0 }}
会员总数
{{ hqStats.totalEmployees||0 }}
员工总数
各店本月数据
| 门店 | 本月消费 | 本月业绩 | 会员数 |
|---|---|---|---|
| {{ s.storeName }} | ¥{{ fmt(s.monthRevenue) }} | ¥{{ fmt(s.monthAchievement) }} | {{ s.customerCount }} |
¥{{ fmt(stats.todayRevenue||0) }}
今日消费
¥{{ fmt(stats.todayAchievement||0) }}
今日业绩
{{ stats.todayBookings }}
今日预约
{{ stats.pendingBookings }}
待确认预约
¥{{ fmt(stats.monthRevenue||0) }}
本月消费
¥{{ fmt(stats.monthAchievement||0) }}
本月业绩
{{ stats.totalCustomers }}
会员总数
{{ stats.totalEmployees }}
员工总数
员工业绩排行(本店)
| 姓名 | 角色 | 消费金额 | 业绩金额 | 累计提成 | 服务次数 |
|---|---|---|---|---|---|
| {{ e.name }} | {{ e.role||'美容师' }} | ¥{{ fmt(e.serviceAmount) }} | ¥{{ fmt(e.achievementAmount) }} | ¥{{ fmt(e.totalCommission) }} | {{ e.serviceCount||0 }} |
📋 待办提醒({{ todoReminders.length }})
✅ 暂无待办提醒
🎂
⚠️
{{ r.customerName }}
{{ r.phone }}
生日 {{ r.birthday }}({{ r.daysUntil }}天后)
{{ r.daysSince }}天未到店(上次 {{ r.lastVisit }})
⬇ 下载数据备份
建议每次修改前先下载一份,以防万一
顾客管理 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
💡 小程序顾客的余额/积分存储在云端。点击"云端同步"可从云端更新本地顾客的余额/积分数据。
| 姓名 | 手机号 | 门店 | 余额 | 积分 | 本年消费额 | 本年业绩额 | 到店次数 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ c.name }} | {{ c.phone }} | {{ stores.find(s=>s._id===c.storeId)?.name || '-' }} | ¥{{ fmt(c.balance) }} | {{ c.points }} | ¥{{ fmt(c.yearConsume) }} | ¥{{ fmt(c.yearAchievement) }} | {{ c.visitCount }} | 已授权 授权通知 详情 编辑 删除 |
暂无顾客数据
新增顾客
编辑顾客
顾客详情 - {{ customerDetail.name }}
手机号: {{ customerDetail.phone || '-' }}
生日: {{ customerDetail.birthday || '-' }}
门店: {{ stores.find(s=>s._id===customerDetail.storeId)?.name || '-' }}
余额: ¥{{ fmt(customerDetail.balance) }}
积分: {{ customerDetail.points }}
到店次数: {{ customerDetail.visitCount }}
| 时间 | 类型 | 项目/套餐 | 金额 | 员工 | 提成 | 操作后余额 |
|---|---|---|---|---|---|---|
| {{ fmtTime(t.createdAt) }} | {{ t.type }} | {{ t.projectName || t.packageName || '-' }} | {{ t.type==='消费'?'-':'+' }}¥{{ fmt(t.amount) }} | {{ t.employeeName || '-' }} | ¥{{ fmt(t.commission) }} | ¥{{ fmt(t.balanceAfter) }} |
授权通知
用微信扫描下方二维码
在微信里点"允许"即可授权
生成中...
扫描后按提示完成授权
收银台 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
{{ c.name }}({{ c.phone }})余额: ¥{{ fmt(c.balance) }}
搜索中...
未找到匹配顾客
当前顾客: {{ cashierCustomer.name }}({{ cashierCustomer.phone }})余额: ¥{{ fmt(cashierCustomer.balance) }}
💳
搜索顾客后开始操作
项目管理
| 名称 | 分类 | 价格 | 时长 | 次数 | 默认提成 | 操作 |
|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.category==='face'?'面部':p.category==='body'?'身体':'套餐卡' }} | ¥{{ p.price }} | {{ p.duration }}分钟 | {{ p.totalTimes||1 }}次 | {{ p.defaultCommission||0 }}% | 编辑 删除 |
{{ editingProject?'编辑项目':'新增项目' }}
员工管理 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
| 姓名 | 手机号 | 角色 | 门店 | 累计提成 | 服务次数 | 操作 |
|---|---|---|---|---|---|---|
| {{ e.name }} | {{ e.phone||'-' }} | {{ e.role||'美容师' }} | {{ e.storeId ? (stores.find(s=>s._id===e.storeId)?.name || e.storeId) : '总部' }} | ¥{{ fmt(e.totalCommission) }} | {{ e.serviceCount||0 }} | 业绩 编辑 删除 |
{{ editingEmployee?'编辑员工':'新增员工' }}
{{ employeeDetailShow.name }} - 业绩详情
角色: {{ employeeDetailShow.role||'美容师' }}
门店: {{ employeeDetailShow.storeId ? (stores.find(s=>s._id===employeeDetailShow.storeId)?.name || employeeDetailShow.storeId) : '总部' }}
累计提成: ¥{{ fmt(employeeDetailShow.totalCommission) }}
服务次数: {{ employeeDetailShow.serviceCount||0 }}
| 日期 | 类型 | 顾客 | 项目 | 金额 | 提成 |
|---|---|---|---|---|---|
| {{ fmtTime(t.createdAt) }} | {{ t.type }} | {{ t.customerName }} | {{ t.projectName || t.packageName || '-' }} | ¥{{ fmt(t.amount) }} | ¥{{ fmt(t.commission) }} |
预约管理 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
共 {{ boardCards.length }} 个预约
待确认 {{ boardCards.filter(function(c){return c.status==='待确认'}).length }}
已确认 {{ boardCards.filter(function(c){return c.status==='已确认'}).length }}
员工
{{ row.name.charAt(0) }}
{{ row.name }}
{{ (h+9) + ':00' }}
{{ card.customerName || '-' }}
{{ card.maskedPhone }}
{{ card.projectName || '未指定' }}
{{ card.time }} - {{ card.endTime }}
{{ bookingDate === new Date().toISOString().slice(0,10) ? '今日' : bookingDate }}暂无预约
| 顾客姓名 | 门店 | 项目 | 价格 | 预约时间 | 手机号 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ b.customerName||'-' }} | {{ b.storeName||'-' }} | {{ b.projectName||'-' }} | ¥{{ b.projectPrice||0 }} | {{ b.date }} {{ b.time }}{{ b.endTime && b.endTime!==b.time ? ' - '+b.endTime : '' }} | {{ b.phone||'-' }} | {{ b.status }} | 确认 取消 完成 |
{{ bookingDate === new Date().toISOString().slice(0,10) ? '今日' : bookingDate }}暂无预约
历史之前的预约已自动隐藏,可切换日期查询
预约详情
{{ boardCardDetail.customerName||'-' }}
{{ boardCardDetail.phone||'-' }}
{{ boardCardDetail.beauticianName||'未分配' }}
{{ boardCardDetail.projectName||'未指定' }}
{{ boardCardDetail.date }} {{ boardCardDetail.time }} - {{ boardCardDetail.endTime }}
{{ boardCardDetail.storeName||'-' }}
¥{{ boardCardDetail.projectPrice||0 }}
{{ boardCardDetail.status }}
新增预约
📅 {{ fmtDateCN(bookingDate) }}
👤 {{ boardAddForm.beauticianName }}
🏠 {{ stores.find(function(s){return s._id===boardAddForm.storeId})?.name || '' }}
⏰ {{ boardAddForm.time }} - {{ boardAddForm.endTime }}({{ boardAddForm.duration }}分钟)
{{ c.name }} {{ c.phone }} 余额 ¥{{ fmt(c.balance) }}
搜索中...
已选顾客: {{ boardAddForm.customerName }}({{ boardAddForm.phone }})
添加预约
{{ c.name }} {{ c.phone }} 余额 ¥{{ fmt(c.balance) }}
搜索中...
已选顾客: {{ addBookingForm.customerName }}({{ addBookingForm.phone }})
加载中...
{{ slot.time }}
{{ slot.customerName }}
数据报表 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
¥{{ fmt(reportData.summary.totalRevenue) }}
消费金额
¥{{ fmt(reportData.summary.totalAchievement) }}
业绩金额
¥{{ fmt(reportData.summary.totalCommission) }}
总提成
{{ reportData.summary.transactionCount }}
交易笔数
手工提成排行(消费+核销)
| 员工 | 门店 | 服务次数 | 消费总额 | 手工提成 |
|---|---|---|---|---|
| {{ e.name }} | {{ e.storeId ? (stores.find(s=>s._id===e.storeId)?.name || e.storeId) : '-' }} | {{ e.count }} | ¥{{ fmt(e.revenue) }} | ¥{{ fmt(e.manualCommission||0) }} |
暂无数据
业绩提成排行(充值+购卡)
| 员工 | 门店 | 业绩金额 | 业绩提成 |
|---|---|---|---|
| {{ e.name }} | {{ e.storeId ? (stores.find(s=>s._id===e.storeId)?.name || e.storeId) : '-' }} | ¥{{ fmt(e.achievement) }} | ¥{{ fmt(e.achievementCommission||0) }} |
暂无数据
前20消费贡献排行(顾客)
| 排名 | 顾客 | 消费次数 | 消费总额 |
|---|---|---|---|
| {{ i+1 }} | {{ c.name }} | {{ c.count }} | ¥{{ fmt(c.totalAmount) }} |
前20业绩贡献排行(顾客)
| 排名 | 顾客 | 充值/购卡次数 | 业绩总额 |
|---|---|---|---|
| {{ i+1 }} | {{ c.name }} | {{ c.count }} | ¥{{ fmt(c.totalAmount) }} |
前10业绩贡献排行(项目)
| 排名 | 项目 | 购买次数 | 业绩总额 |
|---|---|---|---|
| {{ i+1 }} | {{ p.name }} | {{ p.count }} | ¥{{ fmt(p.amount) }} |
项目销售排行
| 项目 | 销售次数 | 销售额 |
|---|---|---|
| {{ p.name }} | {{ p.count }} | ¥{{ fmt(p.revenue) }} |
账单明细导出
共 {{ billList.length }} 条记录,总金额 ¥{{ fmt(billTotal) }}
| 时间 | 顾客 | 类型 | 项目 | 员工 | 金额 |
|---|---|---|---|---|---|
| {{ fmtTime(t.createdAt) }} | {{ t.customerName || '-' }} | {{ t.type }} | {{ t.projectName || t.packageName || '-' }} | {{ t.employeeName || '-' }} | {{ t.type==='消费'?'-':'+' }}¥{{ fmt(t.amount) }} |
💸 支出管理 {{ stores.find(s=>s._id===currentStoreId)?.name || '本店' }}
¥{{ fmt(expenseSummary['租金']||0) }}
租金
¥{{ fmt(expenseSummary['工资']||0) }}
工资
¥{{ fmt(expenseSummary['进货']||0) }}
进货
¥{{ fmt(expenseSummary['水电']||0) }}
水电
¥{{ fmt(expenseSummary['营销']||0) }}
营销
¥{{ fmt(expenseSummary['其他']||0) }}
其他
| 日期 | 分类 | 明细 | 门店 | 金额 | 操作 |
|---|---|---|---|---|---|
| {{ e.date }} | {{ e.category }} | {{ e.description || '-' }}{{ e.subCategory ? ' (' + e.subCategory + ')' : '' }} | {{ e.storeId ? (stores.find(s=>s._id===e.storeId)?.name || '-') : '-' }} | ¥{{ fmt(e.amount) }} | 详情 编辑 删除 |
暂无支出记录
💰 工资明细
| 月份 | 员工 | 门店 | 基本工资 | 提成 | 奖金 | 扣款 | 实发 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ s.month }} | {{ s.employeeName }} | {{ s.storeId ? (stores.find(st=>st._id===s.storeId)?.name || '-') : '-' }} | ¥{{ fmt(s.baseSalary) }} | ¥{{ fmt(s.commission) }} | ¥{{ fmt(s.bonus) }} | -¥{{ fmt(s.deduction) }} | ¥{{ fmt(s.total) }} | 编辑 删除 |
暂无工资记录
{{ editingExpense ? '编辑支出' : '新增支出' }}
{{ editingSalary ? '编辑工资' : '发放工资' }}
🏪 门店管理
| 门店名称 | 联系电话 | 地址 | 操作 |
|---|---|---|---|
| {{ s.name }} | {{ s.phone||'-' }} | {{ s.address||'-' }} | 编辑 |
{{ editingStore?'编辑门店':'新增门店' }}