机主管理后台
OWNER MANAGEMENT
欢迎登录
请输入您的账号信息
账号
密码
{{ loginError }}
{{ loggingIn ? '登录中...' : '登 录' }}
© 2026 Owner Management
{{ pageTitle }}
{{ currentUser.display_name || currentUser.username }} · {{ isAdmin ? '管理员' : '子账户' }}
·已打卡
{{ statsDate }}
今天
{{ statsWeekday }} · 50岁以上人群
OWNER MGMT · 机主后台
总看板
{{ checkinDate }} · {{ ['周日','周一','周二','周三','周四','周五','周六'][new Date().getDay()] }}
机主数量
{{ adminOverview.summary?.total_owners || 0 }}
已绑定设备的子账户
机器数量
{{ adminOverview.summary?.total_machines || 0 }}
已注册设备
今日打卡
实时打卡状态
{{ adminOverview.summary?.checked_in || 0 }}/{{ adminOverview.summary?.total_owners || 0 }}
已打卡/总机主
{{ adminOverview.summary?.checkin_approved || 0 }}
已通过
{{ adminOverview.summary?.checkin_pending || 0 }}
待审核
{{ adminOverview.summary?.checkin_rejected || 0 }}
已驳回
{{ adminOverview.summary?.not_checked_in || 0 }}
未打卡
今日检测
{{ adminOverview.summary?.today_detected || 0 }}
人次(50岁以上)
累计检测
{{ adminOverview.summary?.total_detected || 0 }}
历史总计
子账户数据
今日/历史
{{ sa.display_name || sa.username }}
{{ sa.uid }} · {{ sa.phone || '未绑定手机' }} · {{ sa.device_count }}台设备
已打卡
审核中
已驳回
未打卡
今日
{{ sa.today_detected }}
/ 历史
{{ sa.total_detected }}
加载中...
OWNER MGMT
{{ profileData.name || '管理员' }}
{{ checkinDate }} · {{ ['周日','周一','周二','周三','周四','周五','周六'][new Date().getDay()] }}
尚未打卡
待审核
已驳回
工作中
审核通过
已完成
等待管理员审核
审核通过
审核驳回
打卡于 {{ formatTime(todayCheckin.created_at) }}
请先打卡开始工作
{{ todayCheckin?.checkin_status === 'rejected' ? '重新打卡' : '去打卡' }}
已完成
数据概览
50岁以上人群检测数据
累计总计
自开始以来
{{ totalSummary.total_detected || 0 }}
人次
覆盖设备
{{ totalSummary.devices_count || 0 }}
已删除
{{ totalSummary.total_deleted || 0 }}
待结算
{{ totalSummary.total_pending_settlement || 0 }}
今日数据
{{ checkinDate }}
{{ summary.total_detected || 0 }}
人次
今日检测
待审核
{{ summary.total_pending_review || 0 }}
待结算
{{ summary.total_pending_settlement || 0 }}
已删除
{{ summary.total_deleted || 0 }}
我的设备
共 {{ devicesStats.length }} 台设备
查看全部
加载中...
暂无设备数据
{{ d.device_serial || d.device_code }}
{{ d.device_name }}
{{ d.detected || 0 }}
检测
{{ d.pending_settlement || 0 }}
待结
查看全部 {{ devicesStats.length }} 台 →
打卡审核({{ checkinDate }})
{{ tab.label }}
({{ tab.count }})
加载中...
暂无{{ reviewStatus === 'pending' ? '待审核' : reviewStatus === 'approved' ? '已通过' : reviewStatus === 'rejected' ? '已驳回' : '' }}打卡记录
{{ c.display_name || c.username }}
{{ c.uid }} · {{ c.phone || '未填手机' }}
{{ c.checkin_status === 'approved' ? '已通过' : c.checkin_status === 'rejected' ? '已驳回' : '待审核' }}
打卡时间: {{ formatTime(c.created_at) }}
完成时间: {{ formatTime(c.checkout_time) }}
{{ c.address || `坐标: ${c.latitude}, ${c.longitude}` }}
设备: {{ (c.device_codes||[]).map(code => getDeviceSerial(code)).join(', ') || '未关联' }}
驳回原因
{{ c.reject_reason }}
通过
驳回
驳回打卡申请
取消
确认驳回
请先完善个人资料
需要填写手机号后才能开始打卡
完善资料
{{ todayCheckin.status === 'active' ? '今日已打卡' : '今日已完成' }}
等待管理员审核
审核通过
审核驳回
{{ todayCheckin.reject_reason }}
打卡时间: {{ formatTime(todayCheckin.created_at) }}
出摊位置
地址
{{ todayCheckin.address || '未填写地址' }}
坐标
{{ Number(todayCheckin.latitude).toFixed(6) }}, {{ Number(todayCheckin.longitude).toFixed(6) }}
出摊照片
关联设备
{{ getDeviceSerial(c) }}
无设备
上一次打卡被驳回
原因:{{ todayCheckin.reject_reason }}
请修改后重新打卡
{{ todayCheckin?.checkin_status === 'rejected' ? '重新打卡' : '今日打卡' }}
{{ checkinStep }}/3 步
定位
照片
确认
检测位置
已定位
地图加载中...
地址
{{ checkinForm.address || '未填写地址(可手动补充)' }}
坐标
{{ checkinForm.latitude.toFixed(6) }}, {{ checkinForm.longitude.toFixed(6) }}
{{ locating ? '定位中...' : (checkinForm.latitude ? '重新定位' : '点击获取当前位置') }}
手动补充地址(选填)
检测照片
已上传
点击拍照或选择图片
关联设备
系统将自动统计以下设备的50岁以上检测人数:
{{ getDeviceSerial(c) }}
暂未绑定设备,请联系管理员
{{ submitting ? '打卡中...' : (todayCheckin?.checkin_status === 'rejected' ? '重新打卡开始工作' : '打卡开始工作') }}
创建设备
加载中...
{{ isAdmin ? '暂无设备,点击上方按钮创建' : '暂无设备' }}
{{ d.device_serial || d.device_code }}
{{ d.device_name && d.device_name !== d.device_code ? d.device_name : '' }}
{{ d.status === 'active' ? '运行中' : '停用' }}
今日检测
{{ d.today_detected || 0 }}
待审核
{{ d.today_pending_review || 0 }}
待结算
{{ d.today_pending || 0 }}
已删除
{{ d.today_deleted || 0 }}
编辑
删除
创建子账户
批量创建
加载中...
暂无子账户
{{ u.display_name || u.username }}
账号: {{ u.username }} · {{ u.phone || '未填手机' }}
设备权限({{ (u.allowed_device_codes||[]).length }}台):
未绑定
{{ getDeviceSerial(c) }}
编辑
删除
{{ isAdmin ? '总看板' : '看板' }}
{{ isAdmin ? '打卡审核' : '打卡' }}
设备
子账户
{{ currentUser.display_name || currentUser.username }}
{{ isAdmin ? '管理员' : '子账户' }}
{{ profileData.phone }}
编辑资料
退出登录
取消
选择日期
今天
{{ detailDevice.device_serial || detailDevice.device_code }}
{{ detailDevice.device_name && detailDevice.device_name !== detailDevice.device_code ? detailDevice.device_name + ' · ' : '' }}{{ statsDate }}
全部结算
检测
{{ detailDevice.detected }}
待审
{{ detailDevice.pending_review }}
待结
{{ detailDevice.pending_settlement }}
已删
{{ detailDevice.deleted }}
加载中...
无记录
{{ r.nickname || '匿名' }}
新用户
已删除
已结算
待结算
{{ r.age ? r.age + '岁' : '' }}{{ r.gender ? '·' + r.gender : '' }}
· {{ r.area_mergename.split(',').slice(-2).join('/') }}
{{ formatTime(r.created_at) }}
UID: {{ r.uid || r.legacy_username }}
标记删除
标记结算
取消结算
恢复删除
加载更多
取消
{{ editingDevice?.id ? '编辑设备' : '创建设备' }}
保存
设备编号 (xk-XXX格式)
机器码
*
设备地区
加入时间
状态
启用
停用
取消
{{ editingSub?.id ? '编辑子账户' : '创建子账户' }}
保存
UID
*
账号
*
密码 {{ editingSub?.id ? '(留空不修改)' : '
*
' }}
显示名称
手机号
可查看的设备
{{ allDevicesSelected ? '取消全选' : '全选' }}
请先到「设备管理」创建设备
{{ dev.device_serial || dev.device_code }}
{{ dev.device_name && dev.device_name !== dev.device_code ? dev.device_name : '' }}
取消
批量创建子账户
创建
账号数量 (最多100个)
{{n}}
UID前缀
账号前缀
初始密码
设备权限 (可选)
将为所有新账户绑定相同的设备权限
请先创建设备
{{ getDeviceSerial(dev.device_code) }}
预览前5个账户:
#{{i}}
UID: {{ batchForm.uidPrefix }}{{ String(i).padStart(4, '0') }} | 账号: {{ batchForm.usernamePrefix }}{{ i }}
... 还有 {{ batchCount - 5 }} 个账户
{{ batchResult.message }}
失败: {{ batchResult.errors.map(e => `${e.username || e.index}(${e.error})`).join(', ') }}
取消
编辑个人资料
保存
用户名
显示名称
手机号
*
完善手机号后才能开始打卡工作
{{ toastMsg }}