加载中...

商家端后台

当前门店: {{ storeInfo.storeNumber }} - {{ storeInfo.storeName }}
营业日期: {{ currentBusinessDate }}
返回主页
加载中...

欢迎,店长!

您已选择门店:{{ storeInfo.storeNumber }} - {{ storeInfo.storeName }}

日期选择

{{ errorMessage }}

营业额统计

¥{{ totalRevenue.toFixed(2) }}
总营业额
{{ transactionCount }}
交易笔数
{{ averageAmount.toFixed(2) }}
平均每笔

平台营业额

¥{{ platformRevenue.douyin.toFixed(2) }}
抖音
¥{{ platformRevenue.meituan.toFixed(2) }}
美团
¥{{ platformRevenue.cash.toFixed(2) }}
现金
¥{{ platformRevenue.scan.toFixed(2) }}
扫码
¥{{ platformRevenue.balance.toFixed(2) }}
余额支付

营业额趋势图

{{ revenueChartType === 'month' ? '当月无营业额数据' : '暂无数据' }}

交易记录

订单号 桌号 支付方式 金额 离桌信息 操作人 操作
{{ transaction.orderNumber || '-' }} {{ transaction.seatNumber || '-' }}
组合支付 {{ expandedSections['platform-' + transaction.id] ? '▼' : '▶' }}
{{ platformText(detail.platform) }} {{ detail.duration }}分钟
¥{{ detail.amount.toFixed(2) }}
{{ platformText(transaction.platform) }}
¥{{ transaction.amount.toFixed(2) }} 季卡 {{ expandedSections['amount-' + transaction.id] ? '▼' : '▶' }}
原价 ¥{{ (transaction.originalAmount || (transaction.amount + transaction.discountAmount)).toFixed(2) }}
原价 ¥{{ (transaction.amount * 2).toFixed(2) }}
优惠 -¥{{ transaction.discountAmount.toFixed(2) }}{{ transaction.couponName ? '(' + transaction.couponName + ')' : '' }}
🎫 {{ transaction.monthlyCardDiscount }}
实付 ¥{{ transaction.amount.toFixed(2) }}
¥{{ transaction.amount.toFixed(2) }}
离桌 {{ transaction.awayRecords.length }}次 {{ expandedSections['away-' + transaction.id] ? '▼' : '▶' }}
第{{ index + 1 }}次:
开始:{{ formatDateTime(record.startTime) }} 结束:{{ formatDateTime(record.endTime) }}
-
{{ transaction.checkoutUser || '-' }}
暂无交易记录
共 {{ transactions.length }} 条记录,每页 {{ pageSize }} 条,共 {{ totalPages }} 页

商城订单

订单号 交易时间 商品信息 金额 支付方式 订单状态 操作人
{{ order.orderNumber || '-' }} {{ formatDateTime(order.createdAt) }}
{{ item.productName || '-' }} {{ item.spec }} x{{ item.quantity || 1 }}
-
¥{{ order.totalAmount ? order.totalAmount.toFixed(2) : '0.00' }} {{ expandedSections['mall-amount-' + order.id] ? '▼' : '▶' }}
原价 ¥{{ (order.originalAmount || (order.totalAmount + order.discountAmount)).toFixed(2) }}
优惠 -¥{{ order.discountAmount.toFixed(2) }}{{ order.couponName ? '(' + order.couponName + ')' : '' }}
实付 ¥{{ order.totalAmount ? order.totalAmount.toFixed(2) : '0.00' }}
¥{{ order.totalAmount ? order.totalAmount.toFixed(2) : '0.00' }}
{{ order.paymentMethodText || '-' }} {{ order.orderStatusText || '-' }} {{ order.checkoutUser || '-' }}
暂无商城订单

会员统计

{{ todayRegisteredCustomers }}
今日注册会员数
{{ todayRechargeCount }}
今日充值笔数
¥{{ todayRechargeAmount.toFixed(2) }}
今日充值总额度

充值记录

订单号 用户姓名 充值金额 门店 操作人员 充值时间 操作
{{ record.orderId }} {{ record.customerName || '未知' }} ¥{{ record.amount.toFixed(2) }} {{ record.storeNumber }} - {{ record.storeName }} {{ record.operator }} {{ formatDateTime(record.createdAt) }}
暂无充值记录
共 {{ rechargeRecords.length }} 条记录,每页 {{ rechargePageSize }} 条

确认上传

确定要上传今日营业额数据吗?

员工注册

{{ registerError }}
{{ registerSuccess }}

店铺管理

管理所有店铺和卡密

店铺列表

门店编号 门店名称 座位数 卡密状态 卡密类型 剩余天数 详细信息 操作
{{ store.storeNumber }} {{ store.storeName }} {{ store.seatCount || 0 }} {{ store.licenseUsed ? '已激活' : '未激活' }} {{ store.licenseTypeDesc }} 未激活 永久有效 {{ store.daysRemaining }} 天 已过期
查看详情 {{ expandedSections['store-' + store.id] ? '▼' : '▶' }}
卡密: {{ store.licenseCode || '-' }}
激活时间: {{ store.activatedAt ? formatDateTime(store.activatedAt) : '-' }}
创建时间: {{ formatDateTime(store.createdAt) }}
暂无门店记录
第 {{ storeCurrentPage }} / {{ totalStorePages }} 页,共 {{ filteredStores.length }} 家门店

商品管理

管理商品库存和信息

商品列表

{{ productTotalElements }}
商品总数
{{ outOfStockCount }}
库存不足
{{ totalStock }}
当前页总库存
ID 商品图片 商品名称 分类 价格 库存 状态 操作
{{ product.id }} 无图片 {{ product.name }}
{{ product.category || '未分类' }} {{ product.productType === 'SNACK' ? '零食' : '手工' }}
¥{{ product.price.toFixed(2) }}
售罄
{{ product.stock }}(不足)
{{ product.stock }}
{{ product.enabled ? '启用' : '禁用' }}
暂无商品记录

新增商品

上传中...
{{ productError }}

编辑商品

上传中...
{{ productError }}

库存管理

商品:{{ editingStockProduct.name }}
当前库存:{{ editingStockProduct.stock }}
{{ productError }}

确认删除

确定要删除商品 "{{ deletingProduct.name }}" 吗?此操作不可恢复。

生成卡密

提示:生成卡密后,需要在"激活卡密"页面激活后才能使用。
提示:请先复制该卡密后,关闭此模态框,再重新进入生成新卡密。
{{ licenseError }}
{{ licenseSuccess }}

选择门店

{{ store.storeNumber }}
{{ store.storeName }}

新增门店

提示:创建门店后,需要使用卡密激活才能登录使用。
{{ storeError }}
{{ storeSuccess }}

激活门店

门店:{{ activatingStore.storeName }} ({{ activatingStore.storeNumber }})
{{ activateError }}
{{ activateSuccess }}

删除门店

警告:删除门店将同时删除该门店的所有座位、卡密和用户关联数据!此操作不可恢复!
门店:{{ deletingStore.storeName }} ({{ deletingStore.storeNumber }})
{{ deleteError }}
{{ deleteSuccess }}

门店配置

门店:{{ configuringStore.storeName }} ({{ configuringStore.storeNumber }})
点击上传社群二维码图片
支持 jpg, jpeg, png 格式
用户下单后会在订单详情页展示此二维码,方便扫码加入门店微信群
首页"定制拼豆图纸"点击后弹出此二维码,顾客扫码加微信手动发图定制
开启后,该门店用户可使用老拉新邀请功能,新用户消费后老用户自动获得优惠券奖励
新用户消费达标后,老用户将获得此优惠券奖励。建议优惠券模板设为无门槛,老用户拿到即可使用
新用户拼豆订单消费金额达到此数值后,老用户才能获得优惠券奖励,留空或填0表示无最低消费限制
用户选择门店进入后会弹窗显示此内容,点击"我已知晓"后关闭弹窗
关闭后,该门店将不在小程序门店列表中展示,用户无法选择进入
{{ configError }}
{{ configSuccess }}

用户管理

管理员工和店长账号

员工列表

用户名 角色 关联门店 操作
{{ user.username }} {{ user.role === 'manager' ? '店长' : (user.role === 'viewer' ? '顾客只读' : (user.role === 'boss' ? '老板' : '服务员')) }}
关联 {{ user.stores.length }} 家门店 {{ expandedSections['user-' + user.id] ? '▼' : '▶' }}
{{ store.storeNumber }} - {{ store.storeName }}
有效 未激活/过期
暂无门店
暂无用户

店铺配置

配置各店铺的套餐价格和计费规则

店铺价格配置

管理各店铺的套餐价格和计费规则

门店编号 门店名称 抖音套餐 美团套餐 每小时价格 计费规则 状态 操作
{{ config.storeNumber }} {{ config.storeName }}
抖音套餐 ({{ getPackagesByStoreAndPlatform(config.storeId, 'douyin').length }}) {{ isStorePackagesExpanded(config.storeId, 'douyin') ? '▼' : '▶'}}
{{ formatDuration(pkg.durationMinutes) }} ¥{{ (pkg.price || 0).toFixed(2) }}
暂无套餐
共 {{ getPackagesByStoreAndPlatform(config.storeId, 'douyin').length }} 个套餐,点击展开
美团套餐 ({{ getPackagesByStoreAndPlatform(config.storeId, 'meituan').length }}) {{ isStorePackagesExpanded(config.storeId, 'meituan') ? '▼' : '▶'}}
{{ formatDuration(pkg.durationMinutes) }} ¥{{ (pkg.price || 0).toFixed(2) }}
暂无套餐
共 {{ getPackagesByStoreAndPlatform(config.storeId, 'meituan').length }} 个套餐,点击展开
现金 ¥{{ (config.cashHourlyPrice || 0).toFixed(2) }}/时
扫码 ¥{{ (config.scanHourlyPrice || 0).toFixed(2) }}/时
余额 ¥{{ (config.balanceHourlyPrice || 0).toFixed(2) }}/时
{{ config.roundUpLessThan10min ? '不计费' : '整小时' }} {{ config.published ? '已发布' : '待发布' }}
暂无店铺配置数据
共 {{ filteredStoreConfigs.length }} 家门店 第 {{ storeConfigCurrentPage }} / {{ totalStoreConfigPages }} 页

编辑店铺配置 - {{ editingConfig.storeName }}

📱 抖音套餐

暂无套餐,请先初始化

🥡 美团套餐

暂无套餐,请先初始化

💵 现金支付

📲 扫码支付

💰 余额支付

⚙️ 计费规则

勾选后,结账时间不满10分钟不计费;不勾选则按整小时计费

📶 WiFi信息

配置后将在 viewer 页面显示 WiFi 信息

📞 企业微信二维码

配置后将在 viewer 页面显示投诉入口,点击后展示店长微信二维码
{{ configError }}
{{ configSuccess }}

📦 套餐管理

管理各门店的抖音/美团套餐配置

序号 平台 套餐名称 所属模板 时长 价格 状态 操作
📦
暂无套餐数据
请先选择门店,然后点击"初始化套餐"或"新增套餐"

{{ showEditPackageModal ? '✏️ 编辑套餐' : '➕ 新增套餐' }}

{{ showEditPackageModal ? '修改套餐信息' : '添加新的套餐配置' }}

⚠️ {{ packageError }}

添加门店

用户:{{ editingUser.username }}
{{ userError }}
{{ userSuccess }}

移除门店

用户:{{ editingUser.username }}
{{ userError }}
{{ userSuccess }}

删除员工

警告:确定要删除员工 {{ deletingUser.username }} 吗?此操作不可恢复!
{{ userError }}
{{ userSuccess }}

修改员工角色

提示:正在修改员工 {{ changingRoleUser.username }} 的角色
{{ userError }}
{{ userSuccess }}

📋 套餐模板管理

管理周内和周末套餐模板

模板名称 类型 状态 创建时间 操作
暂无模板数据
{{ template.templateName }} {{ template.templateType === 'weekday' ? '周内' : '周末' }} {{ template.isActive ? '✓ 激活' : '✗ 停用' }} {{ formatDateTime(template.createdAt) }}

{{ showEditTemplateModal ? '编辑模板' : '新增模板' }}

激活后,对应时间段会自动使用该模板

{{ templateError }}

优惠券管理

管理优惠券模板、发放优惠券给用户
📋 优惠券模板
🎫 用户优惠券
🎁 发放优惠券

优惠券模板列表

ID 名称 类型 面额 最低消费 有效期(天) 已发/总量 状态 操作
{{ template.id }} {{ template.name }} 新人专享 {{ template.type === 'PERCENT' ? '折扣' : '固定金额' }} {{ template.type === 'PERCENT' ? template.amount + '%' : '¥' + template.amount }} {{ template.minConsumption > 0 ? '¥' + template.minConsumption : '无门槛' }} {{ template.validDays }} {{ template.usedCount || 0 }} / {{ template.totalCount || '不限' }} {{ template.enabled ? '启用' : '禁用' }}
暂无优惠券模板

用户优惠券列表

ID 用户姓名 手机号 优惠券 所属门店 面额 状态 获取时间 过期时间 使用时间 操作
{{ coupon.id }} {{ coupon.customerName || '-' }} {{ coupon.phoneNumber || '-' }} {{ coupon.couponName || '-' }} {{ coupon.storeName || ('门店' + coupon.storeId) }} {{ coupon.storeName || '通用' }} {{ coupon.type === 'PERCENT' ? coupon.amount + '%' : '¥' + coupon.amount }} {{ getCouponStatusText(coupon.status) }} {{ formatTime(coupon.createdAt) }} {{ formatTime(coupon.expireTime) }} {{ formatTime(coupon.usedTime) }}
暂无用户优惠券

发放优惠券给用户

💡 仅可发放给已注册的手机号用户

{{ issueCouponError }}
{{ issueCouponSuccess }}

批量发放优惠券

💡 多个手机号用逗号或换行分隔

{{ batchIssueError }}
{{ batchIssueSuccess }}

发放给全部小程序用户

💡 无需输入手机号,将给所有已注册小程序的用户每人发放一张该优惠券

⚠️ 该操作会影响所有已注册用户且不可撤销,请确认所选模板的发行量充足。若模板设置了发行量上限,超出部分将发放失败。
{{ allUserIssueError }}
{{ allUserIssueSuccess }}

编辑优惠券模板

领取当天不可使用,延迟 N 天后(自然日)方可使用
开启后,新用户首次进入小程序"我的"页面时可领取该优惠券
{{ couponTemplateError }}

新增优惠券模板

领取当天不可使用,延迟 N 天后(自然日)方可使用
开启后,新用户首次进入小程序"我的"页面时可领取该优惠券
{{ couponTemplateError }}

🗑 删除用户优惠券

确定要删除该用户的优惠券吗?

优惠券ID:{{ deletingUserCoupon.id }}
用户:{{ deletingUserCoupon.customerName || '-' }} ({{ deletingUserCoupon.phoneNumber || '-' }})
优惠券:{{ deletingUserCoupon.couponName || '-' }}
{{ deleteUserCouponError }}

积分商城

配置积分兑换商品,核销顾客兑换码
🏆 积分商品
🎟️ 兑换核销
🎰 抽奖大转盘

积分商品列表

ID 图片 名称 所需小谷币 门店 库存 每人限兑 状态 操作
{{ pp.id }} 无图 {{ pp.name }} {{ pp.pointsRequired }} {{ pp.storeId ? getStoreName(pp.storeId) : '全门店' }} {{ pp.stock }} {{ pp.limitPerUser > 0 ? pp.limitPerUser : '不限' }} {{ pp.enabled ? '上架' : '下架' }}
暂无积分商品,点击右上角新增

新增积分商品

配置后,用户兑换该商品时直接发放对应门店的优惠券到卡包,无需到店核销
{{ pointsProductError }}

编辑积分商品

配置后,用户兑换该商品时直接发放对应门店的优惠券到卡包,无需到店核销
{{ pointsProductError }}

核销兑换码

核销成功:{{ redeemResult.productName }} ×{{ redeemResult.quantity }}(会员 {{ redeemResult.customerName || redeemResult.customerId }},消耗 {{ redeemResult.pointsCost }} 小谷币)
{{ redeemError }}
待核销
已核销
全部
兑换码 会员 商品 数量 消耗小谷币 状态 核销时间
{{ rr.redeemCode }} {{ rr.customerName || ('ID:' + rr.customerId) }} {{ rr.productName }} ×{{ rr.quantity }} {{ rr.pointsCost }} {{ rr.status === 'REDEEMED' ? '已核销' : (rr.status === 'CANCELLED' ? '已作废' : '待核销') }} {{ rr.redeemedAt ? String(rr.redeemedAt).replace('T', ' ').substring(0, 19) : '—' }}
暂无兑换记录

⚙️ 抽奖设置

每抽消耗小谷币:

🎁 奖品配置(按中奖率 % 配置,剩余概率自动为谢谢参与)

已配置 {{ lotteryConfiguredProb }}%,剩余 {{ Math.max(0, 100 - lotteryConfiguredProb) }}% 为谢谢参与
ID 类型 奖品名称 门店 中奖率 状态 操作
{{ lp.id }} {{ lp.prizeType === 'COUPON' ? '优惠券' : (lp.prizeType === 'PRODUCT' ? '积分商品' : '谢谢参与') }} {{ lp.prizeName }} {{ lp.storeId ? getStoreName(lp.storeId) : '全门店' }} {{ lp.weight }}% {{ lp.enabled ? '启用' : '停用' }}
暂无奖品,点击右上角新增(建议保留一个"谢谢参与"档位控制中奖率)

📋 抽奖记录

会员 奖品 消耗 状态 核销码 时间
{{ lr.customerName || ('ID:' + lr.customerId) }} {{ lr.prizeName }} {{ lr.costPoints }} {{ lr.status === 'WON' ? '已中奖' : (lr.status === 'PENDING' ? '待领取' : (lr.status === 'CLAIMED' ? '已领取' : '谢谢参与')) }} {{ lr.pointsRedeemId ? '已生成' : '—' }} {{ lr.createdAt ? String(lr.createdAt).replace('T', ' ').substring(0, 19) : '' }}
暂无抽奖记录

{{ showAddLotteryPrizeModal ? '新增奖品' : '编辑奖品' }}

盘面格子从顶部顺时针:1=一等奖(与君相遇)、2=二等奖(好运常在)、3=三等奖(孤芳赏)、4=四等奖(唯美如你)、5=五等奖(岁月静好)、6=六等奖(花开富贵)
中奖率总和不能超过 100%,剩余自动为谢谢参与(其他奖品已配置 {{ currentOtherProb }}% + 本次 {{ lotteryPrizeForm.weight || 0 }}% = {{ (currentOtherProb + (parseInt(lotteryPrizeForm.weight) || 0)) }}%)
{{ lotteryPrizeError }}

会员等级

按累计消费金额升级会员,达到等级自动发放优惠券

等级规则

等级 等级名称 升级门槛(累计消费) 自动发放优惠券 状态 操作
Lv{{ lv.level }} {{ lv.levelName }} ¥{{ lv.minConsumption }} {{ memberLevelCouponName(lv.couponTemplateId) }} {{ lv.enabled ? '启用' : '停用' }}
暂无等级配置,点击右上角新增
说明:会员结账时按累计消费金额自动判断等级;首次达到某等级且该等级绑定了优惠券模板时,自动发放一次到会员卡包。

🎁 手动补发等级优惠券

{{ reissueResult }}
{{ reissueError }}

📤 批量补发等级优惠券

将向该等级所有会员各发放 1 张该等级绑定的优惠券(重复点击会重复发放,请谨慎操作)
{{ batchReissueResult }}
{{ batchReissueError }}

{{ showAddMemberLevelModal ? '新增等级' : '编辑等级' }}

{{ memberLevelError }}

📱 小程序用户管理

管理微信小程序注册用户,支持删除用户以便测试新用户功能

加载中...
ID 姓名 手机号 所属门店 账户余额 注册时间 操作
{{ customer.id }} {{ customer.name }} {{ customer.phoneNumber }} {{ customer.rechargeStoreName || '未分配' }} ¥{{ customer.accountBalance.toFixed(2) }} {{ formatDateTime(customer.createdAt) }}
暂无小程序用户记录

🖼️ 轮播图管理

管理小程序 Viewer 页面轮播图,支持上传本地图片

加载中...

暂无轮播图,点击右上角添加

{{ editingBanner.id ? '✏️ 编辑轮播图' : '🖼️ 添加轮播图' }}

⚠️ 确认删除

确定要删除轮播图 {{ deletingBannerTitle }} 吗?

⚠️ 确认删除

确定要删除用户 {{ deletingCustomerName }}(手机号:{{ deletingCustomerPhone }})吗?

删除后该用户将成为新用户,可重新参与老拉新活动

🔥 大家都在玩

管理首页"大家都在玩"模块商品(图片、名称、价格、排序)

商品列表

排序 图片 名称 会员价 门店价 省价标签 所属门店 启用 操作
暂无商品,点击右上角"新增商品"添加
{{ hp.sortOrder }} 无图 {{ hp.name }} {{ hp.memberPrice }} {{ hp.storePrice }} {{ hp.saveText }} {{ storeNameById(hp.storeId) }}

{{ hotForm.id ? '编辑商品' : '新增商品' }}

上传中...
{{ hotError }}

🏆 悬赏管理

商家发布悬赏任务,用户接取完成得小谷币
标题 奖励(小谷币) 名额 门店 状态 操作
暂无任务,点击"发布任务"创建
{{ t.title }} {{ t.points }} {{ (t.acceptedCount || 0) }} / {{ t.totalSlots }} {{ storeNameById(t.storeId) }}

接取记录({{ rewardAcceptanceTaskTitle }})

用户 状态 提交内容 提交时间 操作
{{ a.customerName || ('用户#' + a.customerId) }} {{ rewardStatusText(a.status) }} {{ a.submitContent || '-' }} {{ formatRewardTime(a.submittedAt) }} -
任务 用户 奖励 提交内容 提交时间 操作
暂无待审核的提交
{{ rewardTaskTitle(a.taskId) }} {{ a.customerName || ('用户#' + a.customerId) }} {{ a.rewardPoints }} {{ a.submitContent }} {{ formatRewardTime(a.submittedAt) }}

{{ rewardForm.id ? '编辑任务' : '发布任务' }}

同一用户接取该任务后,需间隔 N 天才能再次接取(对已完成/已驳回的历史记录同样生效)
{{ rewardError }}

🪑 座位管理

管理门店的座位,支持添加和删除座位

请先选择一个门店

{{ seatTotal }} 个座位 空闲 {{ seatAvailable }} 占用 {{ seatOccupied }} 离桌 {{ seatAway }}

加载中...

暂无座位,点击右上角添加

🔒
{{ seat.seatNumber }}
{{ seat.status === 'available' ? '空闲' : seat.status === 'occupied' ? '占用' : '离桌' }}
占用中

✨ 添加座位

{{ seatFormError }}

📦 批量添加座位

将自动接续现有座位号

{{ seatFormError }}

⚠️ 确认删除

确定要删除座位 {{ deletingSeatNumber }} 吗?

仅能删除空闲状态的座位

⚠️ 确认批量删除

确定要删除选中的 {{ selectedSeatIds.length }} 个座位吗?

仅能删除空闲状态的座位

⚠️ 确认清空

确定要删除当前门店所有空闲座位吗?

此操作将删除所有空闲座位,占用/离桌的座位不受影响

📉 损耗录入

自定义上传物品、录入损耗,自动扣减库存;仅后台可见,不对外展示

物品列表(剩余库存)

图片 物品名称 剩余库存 操作
暂无物品,点击右上角新增
无图 {{ item.name }} {{ item.stock }}

新增物品

{{ lossError }}

编辑物品

{{ lossError }}

录入损耗

物品:{{ lossForm.itemName }}(当前剩余 {{ lossForm.stock }})
{{ lossError }}

损耗记录

物品 损耗数量 备注 操作人 时间
暂无损耗记录
{{ r.itemName }} -{{ r.quantity }} {{ r.remark || '-' }} {{ r.operatorName || '-' }} {{ formatLossTime(r.createdAt) }}

🎫 会员季卡

用户:{{ monthlyCardCustomer ? monthlyCardCustomer.name : '' }}({{ monthlyCardCustomer ? monthlyCardCustomer.phoneNumber : '' }})
价格与有效期(天)全局配置,仅 admin 可修改
✅ 季卡有效中
开通:{{ monthlyCardStartTime ? formatDateTime(monthlyCardStartTime) : '-' }} 到期:{{ monthlyCardExpireTime ? formatDateTime(monthlyCardExpireTime) : '-' }}
⚠️ 季卡已过期
到期:{{ monthlyCardExpireTime ? formatDateTime(monthlyCardExpireTime) : '-' }}
未开通季卡
开通当天桌位结账免费,季卡有效期内桌位结账半价
{{ monthlyCardError }}

确认删除

确定要删除该顾客吗?此操作不可恢复。