{{ 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) }}
实时监听控制台
合规提示:开启监听后,技师端会强制显示「平台正在监听」提示条,系统不提供静默监听模式。
每次监听均生成会话留痕(操作人 / 时间 / 触发方式),可在「录音访问审计」中追溯。
技师端 SOS 告警会自动开启应急监听。请仅在安全事件处置或确有必要时使用。
当前正在录音的订单(每 5 秒自动刷新)
当前没有正在进行的录音
#{{ m.order_no }} · {{ m.service_name }}
监听中
正在收听订单 #{{ liveOrderNo }}
状态:{{ 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 }}
暂无候选技师
服务轨迹
暂无轨迹上报
#{{ 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' ? '外链' : '内容页' }} | 已启用 已隐藏 | |
| 暂无页面,点击「新增页面」创建 | ||||||
{{ appPageForm.id ? '编辑页面' : '新增页面' }}
预览: 常用:fa-gift / fa-bullhorn / fa-question-circle / fa-star / fa-tags
取消
合作到家 · 页面配置(对应官网“合作到家”页)
或直接填写图片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) }} |
暂无申请记录