{{ pageTitle }}

退出
🛏️
{{ dashboard.totalRooms || 0 }}
总房间
✅
{{ dashboard.vacantRooms || 0 }}
空闲房间
🏨
{{ dashboard.occupiedRooms || 0 }}
在住房间
📅
{{ dashboard.reservedRooms || 0 }}
预订房间
💰
¥{{ (dashboard.todayRevenue || 0).toFixed(2) }}
今日收入
📋
{{ dashboard.activeOrders || 0 }}
进行中订单
📈
¥{{ (dashboard.totalRevenue || 0).toFixed(2) }}
累计收入
�️
{{ dashboard.totalDevices || 0 }}
已注册设备

近 7 日营收

查看统计 →
{{ (d.date || '').slice(5) }}

最近订单

查看全部 →

最近操作日志

查看全部 →
🛏️
{{ timelineStats.totalRooms || 0 }}
总房间数
✅
{{ timelineStats.vacantRooms || 0 }}
空闲房间
🏨
{{ timelineStats.occupiedRooms || 0 }}
在住房间
📅
{{ timelineStats.reservedRooms || 0 }}
预订房间
今天 {{ timelineDateRange.length > 0 ? timelineDateRange[0] : '' }} → {{ timelineDateRange.length > 0 ? timelineDateRange[timelineDateRange.length-1] : '' }}
已预订 已入住 今日退房
房间
{{ r.roomNo }}
{{ r.floor }}F {{ r.roomTypeName.substring(0,4) }}
{{ r.statusText }}
{{ formatTimelineDay(d) }}
{{ formatTimelineDate(d) }}
{{ getBookingLabel(room, d) }}

暂无房间数据,请先添加房间

{{ checkInForm.roomNo }} {{ computedStayDays }} 天 ¥{{ (computedStayDays * checkInForm.roomPrice).toFixed(2) }}
重置
酒店结账单
订单号{{ billData.orderNo }}
房间{{ billData.roomNo }} · {{ billData.roomType }}
客人{{ billData.guestName }} · {{ billData.guestPhone }}
入住{{ billData.checkInTime }} → {{ billData.checkOutTime }}
计费{{ billData.days }} {{ billData.billUnitText || '晚' }} · 房费 ¥{{ billData.roomTotal }}
消费¥{{ billData.consumeTotal }}
应收总额¥{{ billData.totalAmount }}
押金¥{{ billData.deposit }}
应退押金¥{{ billData.refund }}
需补收¥{{ billData.needPay }}
付款{{ billData.paymentMethod }}
查询
💰
¥{{ revenueData.totalRevenue?.toFixed(2) || '0.00' }}
总收入
🏨
¥{{ revenueData.roomRevenue?.toFixed(2) || '0.00' }}
房费收入
🍹
¥{{ revenueData.consumeRevenue?.toFixed(2) || '0.00' }}
消费收入
📦
{{ revenueData.orderCount || 0 }}
订单数量

房型统计

每日收入明细

刷新
+ 添加设备
👥
{{ userStats.total || 0 }}
总用户数
✅
{{ userStats.enabled || 0 }}
启用用户
🚫
{{ userStats.disabled || 0 }}
禁用用户
👑
{{ (userStats.boss || 0) + (userStats.manager || 0) + (userStats.staff || 0) }}
员工账号
重置

角色列表

{{ role.name }}

{{ currentRoleName }} - 权限配置

全选 全不选 保存权限
超级管理员拥有所有权限,无需配置
{{ group.category }}
{{ perm.name }} - {{ perm.description }}
请先选择一个角色
重置
导出 Excel 清理旧日志
共 {{ logTotal }} 条,第 {{ logPage }}/{{ logTotalPages }} 页
{{ otaLogging['美团'] ? '登录中...' : '🔑 登录验证' }} {{ otaLoginStatus['美团'].success ? '✅ 登录成功' : '❌ 登录失败' }} {{ otaLoginStatus['美团'].message }}
{{ otaConfigs['美团'].isEnabled ? '美团渠道已启用' : '未启用' }}
{{ otaLogging['途家'] ? '登录中...' : '🔑 登录验证' }} {{ otaLoginStatus['途家'].success ? '✅ 登录成功' : '❌ 登录失败' }} {{ otaLoginStatus['途家'].message }}
{{ otaConfigs['途家'].isEnabled ? '途家渠道已启用' : '未启用' }}
{{ otaLogging['携程'] ? '登录中...' : '🔑 登录验证' }} {{ otaLoginStatus['携程'].success ? '✅ 登录成功' : '❌ 登录失败' }} {{ otaLoginStatus['携程'].message }}
{{ otaConfigs['携程'].isEnabled ? '携程渠道已启用' : '未启用' }}
保存并获取订单 {{ otaFetching[otaActiveChannel] ? '抓取中/等待登录...' : '📥 获取订单' }}
{{ otaUploading ? '上传中...' : '📤 上传Excel' }}

添加映射

添加映射

已映射房型

选择文件导入

1. 从OTA渠道后台导出订单Excel文件
2. Excel表头应包含:订单编号、入住人姓名、联系电话、房型名称、入住日期、离店日期、订单金额
3. 系统会自动匹配房型映射,分配可用房间
4. 已导入的订单(相同OTA订单号)不会重复导入
📤
将Excel文件拖到此处,或点击上传
支持 .xlsx / .xls 格式
✓ 已选择文件:{{ otaImportFile.name }}
{{ otaImportLoading ? '导入中...' : '开始导入' }}

导入结果

{{ otaImportResult.totalCount }}
总数
✅
{{ otaImportResult.successCount }}
成功
❌
{{ otaImportResult.failedCount }}
失败
🔄
{{ otaImportResult.skippedCount }}
跳过(重复)

失败明细:

查询 重置
加载中...
开启后,该设备登录后将获得超级管理员权限