{{ menuTitle }}
{{ notifUnread > 99 ? '99+' : notifUnread }}
{{ admin.username }} 退出
订单通知 全部已读 通知设置
暂无通知
{{ n.title }}
{{ n.content }}
{{ formatDate(n.created_at) }}

{{ dashboard.users }}

注册用户

{{ dashboard.therapists }}

入驻技师

{{ dashboard.orders }}

总订单数

¥{{ dashboard.gmv }}

平台GMV

今日概览
今日订单
{{ dashboard.todayOrders }}
已付订单
{{ dashboard.paidOrders }}
用户列表
ID昵称手机号城市实名状态注册时间操作
{{ u.id }}{{ u.nickname }}{{ u.phone }}{{ u.city }}{{ u.is_real_name ? '已实名' : '未实名' }}{{ formatDate(u.created_at) }}
技师列表
ID头像昵称手机号标签评分模式抽成(%)状态入驻押金操作
{{ t.id }} {{ t.nickname }} {{ t.phone }} {{ t.tags }} {{ t.rating }} {{ t.mode === 'self' ? '自营' : '平台' }} {{ t.commission_rate !== undefined && t.commission_rate !== null && t.commission_rate !== '' ? t.commission_rate : '默认' }} {{ t.status === 1 ? '已通过' : '待审核' }} {{ t.deposit_status==='paid'?'已缴':t.deposit_status==='refunded'?'已退':t.deposit_status==='refunding'?'退押中':'未缴' }}
订单列表
订单号用户技师服务金额模式押金时长违约金状态下单时间操作
{{ o.order_no }}{{ o.user_name }}{{ o.therapist_name }}{{ o.service_name }}¥{{ o.pay_amount }} {{ o.mode === 'self' ? '自营' : '平台' }} {{ o.deposit > 0 ? '¥' + o.deposit + '(' + (o.deposit_status === 'paid' ? '已付' : (o.deposit_status === 'released' ? '已退' : (o.deposit_status === 'deducted' ? '已扣' : '未付'))) + ')' : '无' }} {{ o.duration_minutes ? o.duration_minutes + '分' : '-' }} {{ o.cancel_fee > 0 ? '¥' + o.cancel_fee : '-' }} {{ statusText(o.status) }} {{ formatDate(o.created_at) }}
双模式运营与抽成
押金担保
技师入驻押金(与按订单押金分离;开启后未缴押金不可接单 / 上线)
地图服务(Leaflet + 国内免费瓦片,永久免费、自主可控)
底图瓦片本身免 Key;但要把「📍 24.71, 118.15」解析成某某小区 · 某路某号,需要这个 Key(免费额度足够)。在 控制台 → 应用管理 → 创建新应用 → 添加 Key → 服务平台选「Web服务」。不填则回退 OSM Nominatim(国内覆盖差,可能只能显示坐标)。
说明:默认高德免 Key 即用,无需任何地图 SDK 密钥。如需完全自托管,选「自定义瓦片源」指向你自己的瓦片服务即可。逆地理/POI 默认走 OSM Nominatim(免 Key,有速率限制),可换国内镜像以提升速度。
取消订单违约金比例(%)
服务保险
协议与合规
SOS 持续定位设置

技师发起 SOS 后,只要告警处于「待处理 / 处理中」,技师端会自动按此间隔上报一次定位并逆地理编码为文字地址。
若技师端暂时离线,可点「拉取定位」下发指令,技师端联网后会自动上报一次当前位置并清除指令。

SOS 紧急告警(用户/技师一键呼救)
ID发起方关联订单最新定位备注状态时间操作
{{ s.id }}
{{ s.role === 'therapist' ? '技师' : '用户' }}
{{ s.trigger_name || ('#' + s.user_id) }}
{{ s.trigger_phone }}
{{ s.order_id || '-' }}
{{ s.last_address }}
地址解析中…
未获取到地址(请检查地图密钥配置)
{{ Number(s.last_lat).toFixed(6) }}, {{ Number(s.last_lng).toFixed(6) }}
更新 {{ formatDate(s.last_at || s.created_at) }} · 已上报 {{ s.track_count }} 次 · 追踪中
{{ s.note || '-' }} {{ sosStatusText(s.status) }}
{{ s.handle_note }}
{{ formatDate(s.created_at) }}
暂无 SOS 告警记录
服务录音档案(长期保存 · 可溯源监管)
合规提示:录音仅用于保障服务双方人身安全与服务质量纠纷取证。系统采用 「告知 + 同意」机制:技师端录音时常驻显示录音提示条,客户拒绝录音会留痕为 refused。所有 播放 / 下载 / 删除 / 监听 操作均写入访问审计日志,可追溯到人。 请勿将录音用于与安全保障无关的商业用途,并遵守《个人信息保护法》关于告知同意与最小必要的要求。
{{ recStats.total || 0 }}
录音总数
{{ recStats.recording || 0 }}
进行中
{{ recStats.completed || 0 }}
已完成
{{ recStats.consent_refused || 0 }}
客户拒绝录音
{{ recStats.total_mb || 0 }} MB
存储占用 · 保留 {{ recStats.retention_days || 0 }} 天
录音规则配置
录音列表
ID订单号技师 / 客户服务时长大小录音状态同意状态开始时间操作
{{ r.id }} {{ r.order_no || ('#' + r.order_id) }} {{ r.therapist_name || '-' }} / {{ r.user_name || '-' }} {{ r.service_name || '-' }} {{ formatDuration(r.duration_sec) }} {{ formatSize(r.size_bytes) }} {{ recStatusText(r.status) }} {{ consentText(r.consent_status) }} {{ formatDate(r.started_at || r.created_at) }}
暂无录音记录
共 {{ recTotal }} 条 · 第 {{ recPage }} 页
正在播放:{{ playRec.order_no || ('录音#' + playRec.id) }}
{{ playRec.therapist_name }} · {{ playRec.service_name }} · {{ formatDate(playRec.started_at || playRec.created_at) }}(本次播放已记入审计日志)
实时监听控制台
合规提示:开启监听后,技师端会强制显示「平台正在监听」提示条,系统不提供静默监听模式。 每次监听均生成会话留痕(操作人 / 时间 / 触发方式),可在「录音访问审计」中追溯。 技师端 SOS 告警会自动开启应急监听。请仅在安全事件处置或确有必要时使用。
当前正在录音的订单(每 5 秒自动刷新)
当前没有正在进行的录音
#{{ m.order_no }} · {{ m.service_name }} 监听中
技师 {{ m.therapist_name }} · 客户 {{ m.user_name }} · 已录 {{ formatDuration(m.duration_sec) }} · {{ m.chunk_count || 0 }} 分片 · {{ formatSize(m.size_bytes) }} · 操作人 {{ m.monitored_by }}
地址:{{ m.address }}
正在收听订单 #{{ liveOrderNo }}
边录边听:当前片段播放完毕后会自动拉取最新分片续播(技师端约 10 秒上传一片)
状态:{{ liveStatus }}
监听事件流(实时)
  • {{ e.text }}
    {{ e.time }}
暂无监听事件
录音访问审计(谁在何时播放 / 下载 / 删除 / 监听了哪条录音)
时间操作操作人录音ID详情IP
{{ formatDate(l.created_at) }} {{ auditActionText(l.action) }} {{ l.admin_name || ('管理员#' + l.admin_id) }} {{ l.recording_id || '-' }} {{ l.detail || '-' }} {{ l.ip || '-' }}
暂无审计记录
技师操作留痕(接单/到达/开始/完成/SOS/提现/上线等)
时间技师电话操作详情
{{ formatDate(l.created_at) }} {{ l.therapist_name }} {{ l.therapist_phone }} {{ l.action }} {{ l.detail }}
暂无操作记录
待派单订单
订单号服务用户金额状态操作
{{ o.order_no }} {{ o.service_name }} {{ o.user_name }} ¥{{ o.pay_amount }} {{ statusText(o.status) }}
暂无待派单订单
候选技师(按距离/评分/接单量排序)
{{ c.nickname }} 评分 {{ c.rating }}
距离 {{ c.distance != null ? c.distance.toFixed(2) + ' km' : '—' }} · 接单 {{ c.order_count }} 单 · {{ c.status === 1 ? '在线可接' : '离线' }}
暂无候选技师
服务轨迹
暂无轨迹上报
#{{ i + 1 }} · {{ t.lat }}, {{ t.lng }} · {{ formatDate(t.created_at) }}
分类列表
ID名称图标排序状态操作
{{ c.id }}{{ c.name }}{{ c.icon }}{{ c.sort }}{{ c.status === 1 ? '启用' : '禁用' }}
服务列表
ID名称分类价格时长状态操作
{{ s.id }}{{ s.name }}{{ s.category_name }}¥{{ s.price }}{{ s.duration }}分钟{{ s.status === 1 ? '启用' : '禁用' }}
广告位管理(首页/官网轮播)
ID图片标题位置排序状态操作
{{ b.id }}{{ b.title }}{{ b.position }}{{ b.sort }}{{ b.status === 1 ? '启用' : '禁用' }}
提示:此处管理的广告位会同步展示在用户端APP/小程序首页、官网首页轮播图位置。图片建议使用 800x400 比例,填写有效图片URL。
资讯文章
ID封面标题栏目热门状态发布时间操作
{{ a.id }} {{ a.title }} {{ a.category }} {{ a.is_hot ? '热门' : '-' }} {{ a.status === 1 ? '启用' : '禁用' }} {{ a.created_at || '-' }}
文章栏目管理
栏目用于给资讯文章分类,在「内容管理 → 资讯文章」中可通过下拉框选择。删除栏目前需先将其下的文章移走或删除。
ID栏目名称排序文章数状态操作
{{ c.id }}{{ c.name }}{{ c.sort }}{{ c.article_count }} {{ c.status === 1 ? '启用' : '禁用' }}
配置定时自动采集的订阅源与规则。开启「自动采集」后,系统每隔设定小时自动从各订阅源抓取最新文章并入库(可设为草稿待审或直接发布)。
上次执行:{{ collectConfig.last_run }}
解析结果预览(可调整标题/栏目后保存):
{{ collectPreview.title }}
作者:{{ collectPreview.author }} · 字数:{{ collectPreview.text_length }}
摘要:{{ collectPreview.summary }}
该文章似乎已采集过,保存时请勾选强制导入。
{{ collectSaveMsg }}
共 {{ collectFeedItems.length }} 条,勾选后批量导入
时间类型结果说明
{{ l.created_at || '-' }} {{ l.type }} {{ l.ok ? '成功' : '失败' }} {{ l.message }}
暂无日志
交易流水
ID订单号类型金额状态时间
{{ t.id }}{{ t.order_no }}{{ t.type }}¥{{ t.amount }}{{ t.status }}{{ formatDate(t.created_at) }}
技师提现申请(审核 / 打款)
ID技师电话金额收款人银行卡号状态申请时间操作
{{ w.id }} {{ w.therapist_name }} {{ w.therapist_phone }} ¥{{ w.amount }} {{ w.bank_holder }} {{ w.bank_name }} {{ w.bank_account }} {{ w.status==='pending'?'待审核':w.status==='approved'?'已打款':'已驳回' }} {{ formatDate(w.created_at) }} 已处理
暂无提现申请
技师入驻押金退审(批准后押金退回、技师暂停接单)
ID技师电话押金金额退押原因状态申请时间操作
{{ w.id }} {{ w.therapist_name }} {{ w.therapist_phone }} ¥{{ w.amount }} {{ w.reason || '—' }} {{ w.status==='pending'?'待审核':w.status==='approved'?'已退回':'已驳回' }} {{ formatDate(w.created_at) }} 已处理
暂无退押申请
系统设置
助通融合通信 · 短信接口配置
用于「手机短信登录 / 注册 / 在线申请合作」的验证码发送,采用助通模板短信接口(v2/sendSmsTp)。流程:在助通后台「报备一个验证码模板」→ 拿到 模板ID(tpId) → 在此填写账号/密码/签名/模板ID。未配置时验证码为本地演示模式,不真正下发短信。
站点内容管理
以下内容展示在官网对应页面与页脚,支持后台直接编辑。
联系方式(展示在官网页脚与「联系方式」页)
APP 页面管理
在这里新增 / 修改的页面,会实时出现在用户端 APP 与技师端 APP 的「我的」页面中(按「适用端」分发)。 类型选 内容页 则展示下方编辑的正文;选 外链 则点击后跳转到填写的网址。改完无需重新打包 APP。
排序标题图标适用端类型状态操作
{{ p.sort || 0 }} {{ p.title }}
标识:{{ p.slug }}
{{ p.icon }} {{ appPageTargetText(p.target) }} {{ p.type === 'link' ? '外链' : '内容页' }} 已启用 已隐藏
暂无页面,点击「新增页面」创建
合作到家 · 页面配置(对应官网“合作到家”页)
或直接填写图片URL:
合作优势
ID图标标题描述排序状态操作
{{ b.id }}{{ b.icon }}{{ b.title }}{{ b.desc }}{{ b.sort }} {{ b.status===1?'启用':'禁用' }}
入驻流程
ID标题描述排序操作
{{ s.id }}{{ s.title }}{{ s.desc }}{{ s.sort }}
入驻要求
ID内容排序状态操作
{{ r.id }}{{ r.content }}{{ r.sort }}{{ r.status===1?'启用':'禁用' }}
常见问题
ID问题答案排序操作
{{ f.id }}{{ f.question }}{{ f.answer }}{{ f.sort }}
入驻申请(用户在前台提交)
ID姓名城市手机号性别状态提交时间操作
{{ a.id }}{{ a.name }}{{ a.city }}{{ a.phone }}{{ a.gender }} {{ a.status==='approved'?'已通过':a.status==='rejected'?'已拒绝':'待处理' }} {{ formatDate(a.created_at) }}
暂无申请记录
营销插件 · 邀请有礼(注册即有礼 / 邀请更有奖)
新用户注册自动送积分;老用户分享邀请码,好友注册后双方得积分。
营销插件 · 每日签到
邀请排行榜
#用户邀请人数获得积分
{{ i+1 }}{{ r.nickname }}{{ r.invite_count }}{{ r.total_points }}
暂无数据
签到排行榜
#用户累计签到(天)获得积分
{{ i+1 }}{{ r.nickname }}{{ r.total_days }}{{ r.total_points }}
暂无数据
应用插件

已接入的第三方应用与扩展能力,为用户端与官网提供支撑。

营销插件邀请有礼 / 每日签到
短信插件助通融合通信
支付插件订单在线支付
存储插件图片上传
微信支付配置

模式说明:模拟(mock) 无需真实商户号即可跑通充值流程(联调/演示用);真实(real) 需填写 AppID / 商户号 / API 密钥,并配置回调地址。

积分充值套餐

用户在前端充值中心选择套餐,支付成功后按「充值金额 → 积分」发放(含额外赠送)。

充值金额(元)到账积分额外赠送
{{ p.amount }}{{ p.points }}{{ p.give }}
暂无套餐

套餐在代码 plugin_wxpay_packages 中配置,后续可扩展为后台可视化编辑。

个人微信收款码支付(无回调转账模式)

适用场景:不想接微信商户号时,用户下单后扫码付到你个人微信收款码,付款后在「订单管理」点「确认收款」即视为到账。无回调,需人工核对微信到账。

分红插件 · 配置
一键分红:按所选权重将分红池分配给全部用户,并同步发放等值积分。
分红排行榜
排名用户手机号累计分红(元)次数
{{ i+1 }}{{ r.nickname }} {{ r.phone }}{{ r.total_amount }}{{ r.count }}
暂无数据
分红明细
用户手机号期次金额(元)时间
{{ r.nickname }}{{ r.phone }}{{ r.period }}{{ r.amount }}{{ r.created_at }}
暂无数据
抽奖插件 · 配置
奖品管理
图标名称类型价值/积分概率(%)库存操作
{{ p.icon }}
暂无奖品
中奖排行榜
排名用户手机号中奖次数积分价值
{{ i+1 }}{{ r.nickname }}{{ r.phone }}{{ r.win_count }}{{ r.total_value }}
暂无数据
抽奖记录
用户手机号奖品是否中奖时间
{{ r.nickname }}{{ r.phone }}{{ r.prize_name }}{{ r.is_win ? '是' : '否' }}{{ r.created_at }}
暂无数据
🚨
紧急呼救告警
{{ sosAlert.event.role === 'therapist' ? '技师' : '用户' }}发起 · {{ formatDate(sosAlert.event.created_at) }}
发起方{{ sosAlert.event.trigger_name || '-' }}({{ sosAlert.event.trigger_phone }})
关联订单{{ sosAlert.event.order_id || '无' }}
最新位置{{ sosAlert.event.last_address || ('📍 ' + Number(sosAlert.event.last_lat).toFixed(5) + ', ' + Number(sosAlert.event.last_lng).toFixed(5)) }}
坐标{{ Number(sosAlert.event.last_lat).toFixed(6) }}, {{ Number(sosAlert.event.last_lng).toFixed(6) }}
备注{{ sosAlert.event.note }}