星星樾体塑
员工系统
消息提醒全部已读
暂无消息
{{ m.title }}
{{ m.content }}
{{ fmtTime(m.createTime) }}
{{ (currentUser.realName||'U').slice(0,1) }} {{ currentUser.realName }}({{ currentUser.role?.name || '员工' }}) 修改密码 退出
⚠ 无法连接服务器:请确认服务已启动(双击 yimei-platform\启动系统.bat),再刷新本页。 接口地址:{{ location.origin }}/api 重试连接
给到店顾客做的 6 题自测,结果不写库、不上传服务器,关掉页面即消失。顾客想自己填,就用「复制链接」把地址发给他。
刷新 新窗口打开 复制链接
📋 预约列表 🧑⚕️ 候诊看板 📥 转入客户
全部
{{ t.label }}
开单时间:
综合搜索:
标识:
订单类型:
搜 索 重 置
+ 新增开单🎫 优惠卡销售退款申请({{ refundReqTotal }})导出数据
共 {{ total }} 条数据
搜索+ 新增项目
共 {{ projectList.length }} 条
搜索+ 新增卡项
共 {{ cardList.length }} 条
搜索重置
共 {{ customerCardTotal }} 张卡
刷新工作台
统计日期:{{ workbench?.date || '今天' }}
我今日已接待
{{ workbench.me.servedToday }}
我今日排队中
{{ workbench.me.queue }}
机构今日排队
{{ workbench.org.queue }}
其中已到店
{{ workbench.org.queueArrived }}
其中未到店
{{ workbench.org.queueNotArrived }}
机构今日已接待
{{ workbench.org.served }}
今日
本周
近30日
排队待接待客户(未到店:需先「到店登记」 / 已到店:可「接待 / 开立项目」)
当前无排队客户
已接待客户(含「市场已接待」客户,可直接开立项目;点击任意一行,下方查看该客户本次咨询开立的全部项目)
暂无已接待客户
开立项目明细 — 客户「{{ selectedServed.customer?.name || '-' }}」· 预约 {{ selectedServed.appointmentNo }}(本次咨询;缴费状态:待缴费 / 已缴费;执行状态:已执行 / 未执行) — 点击上方「已接待客户」中任意一行,查看该客户本次咨询开立的全部项目
该客户本次咨询暂无开立项目
请点击上方「已接待客户」中的客户,查看本次咨询开立的全部项目
该客户已支付未划扣项目 — 客户「{{ pendingItems.customer?.name || selectedServed.customer?.name || '-' }}」名下已结算订单中尚未划扣完的项目(含疗程剩余次数);共 {{ pendingItems.totals.count }} 项 · 剩余 {{ pendingItems.totals.remainTimes }} 次 · 已划 {{ pendingItems.totals.usedTimes }} 次
该客户暂无已支付未划扣项目
业务流程:医生接待 → 开立项目 → 客户缴费(收银台)→ 自动按明细项进入本列表(一行 = 一个执行明细项,按开立时选择的执行人区分,本列表只显示执行人是本人(当前登录人)的项目,其他人的项目不下发、不展示)。点行内「划扣」按钮即完成该明细项的执行,一次性完成(无「执行中」中间态,划扣与执行已合并为同一动作),整行按状态着色:待执行橙 → 已完成绿,已作废灰;需冲正时用行内「取消划扣」。需要加项目时用行内「追加项目」再次开立,缴费后自动进入本列表(退款见「收银台」)。第 149 轮新增疗程分次划扣:一次开立 N 次(如 12 次)的项目,每次只需划扣本次实际做的次数,金额按次自动摊销;疗程单「划扣」会弹窗让填本次次数并可选上传术前/术后照片(照片非强制),点「批次」可查历史每批次数、金额、操作人与照片,全部划完才算执行完成。
我的执行
仅显示执行人是本人的项目
全部
{{ t.label }}
创建日期:
顾客搜索:
划扣状态:
搜 索 重 置
导出数据 待执行(划扣前) 已完成(划扣后) 已作废 退款待处理(已锁定)
共 {{ total }} 条数据
综合搜索:
所属门店:
客户状态:
搜 索 重 置 {{ custQuery.expanded ? '收起筛选 ▲' : '展开更多筛选条件 ▼' }}
新建客户档案
共 {{ total }} 条数据
统计日期:
刷 新 重 置
{{ drill.note }}
区间:{{ drill.range.start || '-' }} ~ {{ drill.range.end || '-' }} 合计:{{ drillSummaryText() }} 上期:{{ drillPrevText() }} 环比:{{ drillDeltaText() }} 记录数:{{ Number(drill.summary.count || 0) }}
返回上级 导出 CSV
下钻维度: 默认 {{ d.label }} {{ drillDimLabel }} = {{ drill.dimValue }}
构成拆解(最多 20 项,点击行继续下钻)
暂无拆解数据
明细({{ drill.total }} 条)加载中…
该区间 / 维度下暂无明细
刷新树 + 新增品牌方
📊 组织树(品牌方 → 公司/分院 → 门店,支持多级)
搜索+ 新增员工
共 {{ staffTotal }} 条
机构搜索+ 新增角色
共 {{ (roleList||[]).length }} 条
刷新 + 新增规则 权限预览
共 {{ dsFilteredRules.length }} 条
员工 角色 机构 允许 拒绝(优先于允许) 数值越小越先应用
预览
{{ dsPreviewResult.realName }} 最终可见范围:
全部机构(不受限)
搜索 + 新增字典项
共 {{ dictList.length }} 条
搜索 重置 刷新 清空日志
共 {{ logPage.total }} 条
搜索
共 {{ loginLogList.length }} 条
刷新+ 新增编号规则
共 {{ numberRuleList.length }} 条
加载机构负责人
机构负责人管理:设置每个机构的负责人,负责人可管理自己和下级机构
男女
{{ customerDetail.customerNo }} {{ customerDetail.name }} {{ customerDetail.phone }} {{ customerDetail.gender===1?'男':customerDetail.gender===2?'女':'-' }} {{ fmtMoney(customerDetail.totalConsume) }} {{ fmtMoney(customerDetail.totalRefund) }} {{ fmtMoney(customerDetail.depositBalance) }} {{ fmtMoney(customerDetail.giftBalance) }} {{ customerDetail.pendingDeductCnt || 0 }} {{ customerDetail.orderCount || 0 }} {{ customerDetail.treatmentCount || 0 }} {{ customerDetail.address || '-' }} {{ customerDetail.assets || '-' }} {{ customerDetail.occupation || '-' }} {{ customerDetail.familyInfo || '-' }} {{ customerDetail.consumeHabit || '-' }}

消费项目 (共 {{ (customerDetail.consumptions || []).length }} 项)

退款项目 (累计退款 {{ fmtMoney(customerDetail.totalRefund) }},共 {{ (customerDetail.refunds || []).length }} 笔)

咨询记录 (共 {{ consultTotal }} 条)

+ 记录咨询
历史铺垫留痕(每次提交各留一条,共 {{ groundingHistory.length }} 条)
暂无历史铺垫记录
候选为当前门店具备「项目开立」权限的人员;提交后将该预约的咨询师更新为所选人员,并提醒其接待。
{{ consultCustomer?.customerNo }} / {{ consultCustomer?.name }} {{ fmtMoney(currentOrder?.totalAmount) }}
执行人分配(收款后按执行人分派执行单并提醒,逐项必选)
该卡内没有与本单开立项目一致的项目,无法按次数/金额划扣;如卡内有现金,可在下方「卡内现金抵扣」使用。
卡内现金可抵扣上限 {{ fmtMoney(settleCardCashMax) }}
优惠卡抵扣合计:-{{ fmtMoney(settleCardOffset) }}
本单应收 ¥0(赠送项目),点「确认收款」完成收银台确认
正常停用 如需修改请用列表的「重置密码」
全选 {{ m.icon }} {{ m.name }}
勾选该角色可见的左侧菜单;未勾选则登录后不可见。
院内院外
+ 添加
{{ fmtMoney(orderForm.totalAmount) }}
{{ fmtMoney(currentOrder?.paidAmount) }} {{ transferTarget?.customer?.name || ('#' + (transferTarget?.customerId || '')) }} {{ orgName(transferTarget?.orgId) }}
该卡项为历史类型(次数型/金额型),不可改为优惠卡;其客户已购卡仍可正常划扣,新建卡项一律为优惠卡。
手动改价勾选后售价不再自动同步,可自行填写(当前自动价 ¥{{ cardAutoPrice }})
¥{{ projectUnitPrice(cp.projectId) }} × = 删
+ 添加项目
「数量」× 项目单价 = 该项目金额(自动计算);售价 = 卡内现金 + 各项目金额合计,默认自动同步(可勾选「手动改价」自行填写)。
卡内现金 ¥{{ itemForm.cashAmount || 0 }} + 项目金额合计 ¥{{ cardProjectsTotal }} = 自动售价 ¥{{ cardAutoPrice }}(已手动改为 ¥{{ itemForm.price || 0 }})
启用停用
{{ cardDetail.card.customerName }}({{ cardDetail.card.customerNo }}) {{ cardDetail.card.phone || '-' }} {{ cardDetail.card.cardName }} {{ cardDetail.card.totalTimes > 0 ? cardDetail.card.remainTimes + ' / ' + cardDetail.card.totalTimes : '-' }} {{ fmtMoney(cardDetail.card.remainAmount) }} {{ cardDetail.card.status===1 ? '有效' : '已作废' }} {{ (cardDetail.card.validStart||'').toString().slice(0,10) }} ~ {{ (cardDetail.card.validEnd||'').toString().slice(0,10) }}
卡内项目余额({{ (cardDetail.projects||[]).length }} 项)
历史使用记录(共 {{ cardDetail.summary.recordCount }} 条 / 有效 {{ cardDetail.summary.validCount }} 条 / 已冲正 {{ cardDetail.summary.cancelCount }} 条;累计划扣 {{ cardDetail.summary.totalDeductTimes }} 次,项目金额 ¥{{ cardDetail.summary.totalDeductAmount }},实收 ¥{{ cardDetail.summary.totalDeductIncome }})
{{ fmtMoney(cardSaleForm.totalAmount) }}
「开单并收款」= 提交开单 + 立即结算,结算后系统自动为该客户发卡(卡内现金与项目按卡项模板写入);「仅开单」只生成待结算订单,后续到收银台点「结算」。
机构
本执行单收款来源(退款按来源原路返还:卡内项目次数返次数、卡内金额/卡内现金返额度、微信/支付宝/现金按原支付方式退回)
加载中…
¥{{ fmtMoney(refundInfo ? refundInfo.refundableTotal : 0) }} (按上述来源自动原路返还)
申请退款属敏感操作,需输入当前登录账号的密码二次确认
¥{{ openItemAmount(item).toFixed(2) }} 赠送 删除
+ 增加项目
执行人在收银台结算时逐项选择(开立阶段不指定执行人)。
¥{{ openProjectTotal().toFixed(2) }}
客户:{{ execTarget.customerName || '-' }}
选择项目:
项目:{{ execTarget.itemName || '-' }} 当前执行人:{{ execTarget.executorName || '未指定' }}
仅「已缴费且未划扣」的项目可更换执行人;更换后新执行人会收到站内提醒。
待处理
已处理/已驳回
暂无退款申请
执行单 {{ photoTreatment.treatmentNo }} · 顾客 {{ photoTreatment.customer?.name || '-' }} · 明细项 {{ photoTreatment.itemName || '-' }}
术前 术后
本批术前({{ photoBefore.length }})最多 5 张
×
暂无
本批术后({{ photoAfter.length }})最多 5 张
×
暂无
提示:双击照片可放大查看,再双击缩小(也支持滚轮缩放 / 右上角按钮);照片上传时自动压缩(长边 ≤1920、JPEG 85%),术前 / 术后各最多 5 张。上方只统计「本批待归档」照片,历史批次不占本批额度。
当前上传:{{ photoStage==='before' ? '术前' : '术后' }} {{ photoCount }}/{{ MAX_PHOTOS }}{{ photoLimitReached ? '(已达上限,请先删除后再传)' : '' }} 上传图片 调用摄像头拍照
历史批次照片({{ photoArchivedCount }} 张)留档只读,不占本批 5 张额度
第 {{ b.batchSeq }} 批 · {{ fmtTime(b.deductTime) }} · {{ b.deductByName || '-' }} · 划扣 {{ b.deductTimes }} 次 / {{ fmtMoney(b.deductAmount) }} 已撤销 术前 {{ (b.before||[]).length }} 张 · 术后 {{ (b.after||[]).length }} 张
本批未上传照片
执行单 {{ deductDlg.row.treatmentNo }} · 顾客 {{ deductDlg.row.customer?.name || '-' }} · 明细项 {{ treatItemLabel(deductDlg.row) }}
{{ deductDlg.row.totalTimes || 1 }} {{ deductDlg.row.usedTimes || 0 }} {{ deductDlg.row.remainTimes == null ? '-' : deductDlg.row.remainTimes }}
本批照片:术前 {{ deductDlg.before.length }}/5、术后 {{ deductDlg.after.length }}/5 · 历史批次 {{ deductDlg.archivedCnt }} 张已留档,不占本批额度 · 正在加载本批照片…
本次划扣次数 可划扣 1 ~ {{ deductDlg.max }} 次(金额按次自动摊销)
本批术前({{ deductDlg.before.length }})最多 5 张
×
暂无
本批术后({{ deductDlg.after.length }})最多 5 张
×
暂无
上传术前照片 上传术后照片 照片非强制,不传也能划扣;上传后自动归档到本批次,后续可在「批次」中查看
执行单 {{ deductHistoryDlg.row.treatmentNo }} · 明细项 {{ treatItemLabel(deductHistoryDlg.row) }} · 已划 {{ deductHistoryDlg.data.usedTimes }}/{{ deductHistoryDlg.data.totalTimes }} 次,剩余 {{ deductHistoryDlg.data.remainTimes }} 次
第 {{ b.batchSeq }} 批 {{ b.deductTimes }} 次 金额 {{ fmtMoney(b.deductAmount) }} {{ b.deductNo }} 操作人 {{ b.deductByName || '-' }} {{ fmtTime(b.deductTime) }} 已撤销 · {{ fmtTime(b.cancelTime) }}
撤销原因:{{ b.cancelReason }}
卡项:{{ b.cardName }}
术前({{ (b.before || []).length }})
无
术后({{ (b.after || []).length }})
无
暂无划扣记录
本单历史照片(升级前上传、未绑定批次)
{{ (customer360.customer.name || '?').slice(0, 1) }} {{ customer360.customer.name }} {{ customer360.customer.status===1?'正常':'停用' }} 档案号 {{ customer360.customer.customerNo }} 手机 {{ customer360.customer.phone || '-' }} 性别 {{ customer360.customer.gender===1?'男':customer360.customer.gender===2?'女':'-' }} 归属 {{ orgName(customer360.customer.orgId) }}
{{ fmtMoney(customer360.customer.totalConsume) }}累计消费
{{ fmtMoney(customer360.customer.depositBalance) }}定金余额
{{ fmtMoney(customer360.customer.giftBalance) }}赠送余额
{{ customer360.customer.pendingDeductCnt || 0 }}待划扣次数
{{ customer360.summary.appointmentCount }}预约数
{{ customer360.summary.orderCount }}订单数
{{ customer360.summary.treatmentCount }}执行次数
{{ customer360.customer.customerNo }} {{ customer360.customer.name }} {{ customer360.customer.phone || '-' }} {{ customer360.customer.gender===1?'男':customer360.customer.gender===2?'女':'-' }} {{ orgName(customer360.customer.orgId) }} {{ customer360.customer.address || '-' }} {{ customer360.customer.assets || '-' }} {{ customer360.customer.occupation || '-' }} {{ customer360.customer.familyInfo || '-' }} {{ customer360.customer.consumeHabit || '-' }}
历次预约记录({{ c360Cards().length }})
{{ a.appointmentNo || '—' }} {{ a.status==null ? '-' : apptStatusText(a.status) }}
预约时间:{{ fmtTime(a.appointTimeStart) }}
医生:{{ a.doctorName || '-' }} 咨询师:{{ a.advisorName || '-' }} 市场咨询师:{{ a.marketAdvisorName || staffName(a.marketAdvisorId) }}
铺垫:{{ a.groundingNote }}
开单 {{ (a.orders||[]).length }} 笔 · 执行项目 {{ a.treatmentTotal || 0 }} 项照片 {{ c360PhotoCount(a) }}
请选择左侧的预约记录
市场铺垫记录({{ c360Selected.groundings.length }})
开立项目与费用
本预约开单金额合计:{{ fmtMoney(c360OrderTotal(c360Selected)) }}
治疗项目 / 费用 / 前后照片
已定位到执行单 {{ c360FocusNo() }}(下方黄底高亮行)
提示:点击行首 ▶ 展开「按批次」的执行信息与术前/术后照片(每次划扣为一批);照片在「划扣中心」点击该行「照片」按钮上传(可一次多选);双击缩略图放大、再双击缩小。
消费项目(已消耗 / 未消耗)  共 {{ c360ConsTotal() }} 项 · 已消耗 {{ c360ConsCount(true) }} · 未消耗 {{ c360ConsCount(false) }}
{{ c360ConsTotal() }}消费明细
{{ c360ConsCount(true) }}已消耗
{{ c360ConsCount(false) }}未消耗
{{ fmtMoney(c360ConsAmount(true)) }}已消耗金额
{{ fmtMoney(c360ConsAmount(false)) }}未消耗金额
{{ imgViewerTitle }} {{ Math.round(imgViewerZoom * 100) }}%
双击图片:放大 ⇄ 缩小 · 滚轮缩放 · 点击图片外空白或按 Esc 关闭