{{ pageTitle }}
{{ nowText }} · 版本 1.151 · 2026-11-09快速开始
1. 点击左侧「新建会员」录入第一位会员
2. 点击「会员查询」按卡号 / 手机 / 姓名检索
3. 在查询结果里点「积分」可增减积分并自动留痕
业务规则:会员信息全店/跨店可查,每位会员标注「初次注册门店」;门店经营数据统计各自独立
会员检索
会员信息全店可查(不限门店);「注册门店」为该会员初次办卡的门店
查询中…
查询结果({{ members.length }} 条)
| 会员卡号 | 姓名 | 手机 | 等级 | 可用积分 | 累计消费 | 注册门店 | 注册时间 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ m.memberCard }} | {{ m.memberName }} | {{ m.memberPhone || '-' }} | {{ m.levelName || '-' }} | {{ m.availablePoints }} | {{ m.totalConsume }} | {{ m.registrationStoreName || ('店' + m.registrationStoreId) }} | {{ (m.createdAt||'').substring(0,10) }} |
新建会员
{{ dup.message }}
点击下方按钮将提交审核申请,待店长/管理员通过后方可建卡。
查重规则:身份证号相同 → 直接拒绝;手机号相同或姓名+生日相同 → 需上级审核通过; 会员信息全店可查,建档时记录「初次注册门店」。
建卡审核 (当前账号无审批权限,仅可查看自己提交的申请)
暂无记录
| # | 申请人/门店 | 待建会员 | 重复情况 | 状态 | 提交时间 | 操作 |
|---|---|---|---|---|---|---|
| {{ r.id }} | {{ r.applicantName }} {{ r.applicantStoreName }} |
{{ r.applyName }} {{ r.applyPhone }} |
{{ dupTypeText(r.dupType) }} 已有:{{ r.dupMemberName }} {{ r.dupMemberCard }} |
待审核
已通过
已驳回
{{ r.reviewerName }}
{{ r.reviewRemark }} |
{{ (r.createdAt||'').substring(0,16) }} | — |
发起退货申请
票据 {{ rq.receiptNo || '—' }} · 会员 {{ rq.memberName }} · 金额 ¥{{ rq.amount }} · 将回冲积分 {{ rq.points }}
退货审批 仅处理开单「退货明细」提交的待审批申请;开单页负责提交,本页只审批。销售红冲走冲正中心,两者审批/审计分离;退货率不含冲正。 刷新
暂无退货记录
| 退货单号 | 原票据 | 会员 | 退货金额 | 回冲积分 | 原因 | 状态 | 发起/审核 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ x.returnNo }} {{ (x.createdAt||'').substring(0,16) }} |
{{ x.receiptNo || '—' }} | {{ x.memberName }} {{ x.memberCard }} |
¥{{ x.returnAmount }} | {{ x.returnPoints>0 ? ('-'+x.returnPoints) : '—' }} | {{ x.reason }} | 待审核 已通过 已驳回 | {{ x.requesterName }} {{ x.reviewerName || '待审' }} |
退货单详情
| 退货单号 | {{ ret.view.returnNo }} |
| 原票据编号 | {{ ret.view.receiptNo || '—' }} |
| 会员 | {{ ret.view.memberName }} · {{ ret.view.memberCard }} |
| 退货金额 | ¥{{ ret.view.returnAmount }} |
| 回冲积分 | {{ ret.view.returnPoints>0 ? ('-'+ret.view.returnPoints) : '无' }} |
| 退货原因 | {{ ret.view.reason }} |
| 退货商品 |
{{ it.barcode || '—' }} · {{ it.productName || '原单商品' }} · 数量 {{ it.quantity }} · ¥{{ it.refundAmount }}
|
| 发起 | {{ ret.view.requesterName }} · {{ (ret.view.createdAt||'').substring(0,16) }} |
| 审核 | {{ ret.view.reviewerName || '待审核' }} {{ ret.view.reviewedAt ? ('· ' + (ret.view.reviewedAt||'').substring(0,16)) : '' }} |
| 审核意见 | {{ ret.view.reviewRemarks }} |
| 状态 | 待审核 已通过 已驳回 |
审核退货申请
单号 {{ ret.reviewRow.returnNo }} · 会员 {{ ret.reviewRow.memberName }} · 金额 ¥{{ ret.reviewRow.returnAmount }} · 回冲积分 {{ ret.reviewRow.returnPoints }}
角色权限管理 勾选每个角色能用的功能;未勾选的菜单和按钮对该角色完全隐藏 刷新
改动保存后【立即生效】,该角色的在线账号无需重新登录。 超级管理员角色受系统保护,不可修改。
| 角色 | 数据范围 | 功能权限 | 员工数 | 操作 |
|---|---|---|---|---|
| {{ r.roleName }} {{ r.roleCode }} |
{{ scopeText(r.dataScope) }} | (无任何功能权限) 未映射 {{ p.code }} {{ p.name }}{{ p.code }} | {{ r.empCount }} 人 | 系统保护 |
编辑权限 · {{ roleEdit.roleName }}
勾选后该角色即可看到对应菜单与按钮;取消勾选则对该角色完全隐藏。
票据查询 输入或扫描票据编号,调出电子小票(顾客退换货、查账核对用)
{{ rc.err }}
没有找到该票据编号的记录。请核对票据编号是否输入正确。
| 票据编号 | 消费日期 | 会员 | 商品 | 实付 | 门店 | 操作 |
|---|---|---|---|---|---|---|
| {{ x.receiptNo || '—' }} | {{ x.purchaseDate }} | {{ x.memberName || '—' }} {{ x.memberCard }} |
{{ x.productName }} | ¥{{ x.purchasePrice }} | {{ x.storeName || '—' }} |
| 票据编号 | {{ rc.cur.receiptNo || '—' }} |
| 系统单号 | {{ rc.cur.billNo }} |
| 交易时间 | {{ rc.cur.purchaseDate }} {{ (rc.cur.createdAt||'').substring(11,19) }} |
| 会员 | {{ rc.cur.memberName || '—' }} |
| 会员卡号 | {{ rc.cur.memberCard || '—' }} |
| 手机号 | {{ rc.cur.memberPhone || '—' }} |
| 商品名称 | {{ rc.cur.productName }} |
| 赠品 | {{ rc.cur.giftSummary }}(¥0.00) |
| 商品编码 | {{ rc.cur.productCompanyCode || rc.cur.productBarcode }} |
| 商品金重 | {{ fmtWeight(rc.cur.itemWeight) }}g |
| 原价 | ¥{{ fmtMoney(rc.cur.originalPrice) }} |
| 折扣率 | {{ ticketDiscountLabel(rc.cur) }} |
| 优惠金额 | -¥{{ fmtMoney(rc.cur.discountAmount) }} |
| 旧金采购金额 | ¥{{ fmtMoney(rc.cur.oldGoldPurchaseAmount) }} |
| 门店应付旧金款 | ¥{{ fmtMoney(rc.cur.oldGoldPayable) }}({{ oldGoldMethodLabel(rc.cur.oldGoldPayMethod) }}) |
| 积分抵扣 | -¥{{ (Number(rc.cur.pointsUsed)/100).toFixed(2) }}({{ rc.cur.pointsUsed }} 分) |
| 实付金额 | ¥{{ fmtMoney(rc.cur.purchasePrice) }} |
| 支付方式 | 现金 ¥{{ rc.cur.payCash }} · 刷卡 ¥{{ rc.cur.payCard }} · 微信 ¥{{ rc.cur.payWechat }} · 支付宝 ¥{{ rc.cur.payAlipay }} |
| 积分变动 | 获得 +{{ rc.cur.pointsEarned }} 使用 -{{ rc.cur.pointsUsed }} 无 |
| 备注 | {{ rc.cur.remark || '—' }} |
本小票为系统电子凭证,可用于退换货与账务核对。
待升级会员 达到积分门槛即自动升级;此处可查看待升级名单并手动执行 刷新
当前没有达到升级门槛的会员
| 会员 | 手机 | 当前等级 | 累计积分 | 可升级至 | 升级礼 | 操作 |
|---|---|---|---|---|---|---|
| {{ c.memberName }} {{ c.memberCard }} |
{{ c.memberPhone || '—' }} | {{ c.oldLevelName }} | {{ c.totalPoints }} | {{ c.newLevelName }} | {{ c.upgradeGift || '—' }} |
升级记录
暂无升级记录
| 时间 | 会员 | 等级变化 | 当时积分 | 升级礼 | 操作人 |
|---|---|---|---|---|---|
| {{ (g.createdAt||'').substring(0,16) }} | {{ g.memberName }} {{ g.memberCard }} |
{{ g.fromLevelName }} → {{ g.toLevelName }} | {{ g.totalPoints }} | {{ g.upgradeGift || '—' }} | {{ g.operatorName || '系统自动' }} |
生日提醒 提前 7 天与生日当天各生成一条提醒;店长认领后负责联系并确认是否进店 刷新
仅显示分派给你的提醒;本店待认领数量见横幅
加载中…
| 会员 | 手机 | 生日 | 类型 | 门店 | 状态 | 负责人 | 已联系 | 已进店 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ r.memberName }} {{ r.memberCard }} |
{{ r.memberPhone || '—' }} | {{ r.birthdayDate }} | {{ r.remindType==='today' ? '当天' : '提前7天' }} | {{ r.storeName || '—' }} | 待认领 已认领 已升级 已关闭 | {{ r.assignedEmployeeName || r.claimedByName || '—' }} | ✓— | ✓— |
—
|
会员档案 ← 返回查询
| 初次注册门店 | {{ md.member.registrationStoreName || ('店' + md.member.registrationStoreId) }} 经办:{{ md.member.registrationEmployeeName || '—' }} |
| 建档时间 | {{ (md.member.createdAt||'').substring(0,16) }} |
| 最后消费 | {{ md.member.lastConsumeDate || '暂无消费' }} |
| 备注 | {{ md.member.remark }} |
消费记录({{ md.records.length }} 条) 可查看 {{ md.viewDays }} 天内
{{ md.err }}
| 票据编号 | 消费日期 | 业务类型 | 商品 | 金额 | 积分 | 实拍 | 门店/录入 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ r.receiptNo || '—' }} {{ r.billNo }} BILLNUM {{ r.historyBillNo }} |
{{ r.purchaseDate }} | {{ bizLabel(r.businessType) }} | {{ r.productName }} {{ fmtWeight(r.itemWeight) }}g 赠品:{{ r.giftSummary }}(¥0) |
¥{{ fmtMoney(r.businessType==='history' ? r.goodsAmount : r.purchasePrice) }} 历史补录金额(无现金) 差额 ¥{{ fmtMoney(r.reversalDifference) }} {{ ticketDiscountLabel(r) }} · 优惠¥{{ fmtMoney(r.discountAmount) }} 旧金采购¥{{ fmtMoney(r.oldGoldPurchaseAmount) }} / 应付¥{{ fmtMoney(r.oldGoldPayable) }} |
+{{ r.pointsEarned }}-{{ r.pointsUsed }}— | {{ r.photoCount }} 张— | {{ r.storeName }} 录入:{{ r.employeeName }} · 主:{{ r.mainSalesName }} · 副:{{ r.assistantSalesName }} |
该会员暂无消费记录(或超出你可查看的时间范围)
消费记录 可查看 {{ rec.viewDays>0 ? rec.viewDays+' 天' : '全部' }} 内的记录
本页列表:共 {{ rec.total }} 条 · 第 {{ rec.page }} / {{ rec.totalPages || 1 }} 页 · 本页合计 ¥{{ rec.totalAmount || '0.00' }} · 待审批 {{ rec.pendingCount || 0 }} · 已冲正 {{ rec.reversedCount || 0 }}
| 票据编号 | 消费日期 | 业务类型 | 会员 | 商品 | 金额 | 实拍 | 票据 | 门店/录入 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ r.receiptNo || '—' }} {{ r.billNo }} BILLNUM {{ r.historyBillNo }} |
{{ r.purchaseDate }} | {{ bizLabel(r.businessType) }} {{ r.pendingReversalStatus==='approved' ? '待执行' : '待审批' }}已作废已冲正正常 |
{{ r.memberName }} {{ r.memberCard }} |
{{ r.productName }} {{ fmtWeight(r.itemWeight) }}g 赠品:{{ r.giftSummary }}(¥0) |
¥{{ fmtMoney(r.businessType==='history' ? r.goodsAmount : r.purchasePrice) }} 历史补录金额(无现金) 差额 ¥{{ fmtMoney(r.reversalDifference) }} {{ ticketDiscountLabel(r) }} · 优惠¥{{ fmtMoney(r.discountAmount) }} 旧金采购¥{{ fmtMoney(r.oldGoldPurchaseAmount) }} / 应付¥{{ fmtMoney(r.oldGoldPayable) }} |
{{ r.photoCount }} 张— | 有— | {{ r.storeName }} 录入:{{ r.employeeName }} · 主:{{ r.mainSalesName }} · 副:{{ r.assistantSalesName }} |
没有符合条件的记录
销售单头 按现有功能字段
| 序号 | 商品编码 | 名称 | 金重 | 件重 | 金价 | 工费 | 结算价 | 商品实付 | 抵扣后实付 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ it.companyCode || '待补商品编码' }} | 待补金重 |
{{ goldPriceSuffix(it) }}
|
{{ laborFeeSuffix(it) }}
|
金重缺失¥{{ fmtMoney(itemTotal(it)) }} | 待补金重¥{{ fmtMoney(bItemNet(it)) }}已抵/优惠 ¥{{ fmtMoney(bItemOldAlloc(it)) }} | ||||
|
缓存字段未同步(管理员)
未建档,请补录
|
||||||||||
赠品清单(FLAG=9)
选择商品与数量加入本单赠品;金额0,不参与销售金额/折扣/积分。
| 条码 | 名称 | 参考价 | 单位 | 数量 | 操作 |
|---|---|---|---|---|---|
| {{ c.barcode }} | {{ c.goodsName }} | ¥{{ c.price }} | {{ c.unit }} |
兑新兑旧仅对「按克黄金」生效:只按按克商品金重计算可抵,按件/一口价商品正常计价、不参与1:1;纯按件黄金请走旧料回收作价。金单价为整单按克商品加权平均,只读;超重仍顾客拿走/门店收购。
回收:金单价=员工手填回收价;抵值金额=旧金重×金单价+旧金重×增值−旧金重×折旧+调整金额;成色只记录、不参与算价。
调整金额/备注在行末「详情」里填;旧料不要求编码/本店商品档案;旧料按克计算;品牌类型无数据,不显示。
| 勾选 | 序号 | 成色 | 金重(g) | 抵值金重 | 金单价 | 增值(按克) | 折旧(按克) | 抵值金额 | 超重处理 | 超重收购价 | 操作 | 详情 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ fmtWeight(oldDeducted(om)) }} | 加权平均 {{ exchangeAvgGoldPrice().toFixed(2) }} | ¥{{ oldCredit(om).toFixed(2) }} | 仅门店收购时填写 | ||||||||
|
|
||||||||||||
| {{ oldEmptyText() }} |
| 赠品条码 | 赠品名称 | 数量 | 金额 | 操作 |
|---|---|---|---|---|
| {{ g.barcode }} | {{ g.goodsName }} | ¥0.00 |
| 销售单号 | 行 | 赠品 | 数量 | 实收 | 门店 | 时间 |
|---|---|---|---|---|---|---|
| {{ g.billNo }} | {{ g.rowNo }} | {{ g.goodsName }} {{ g.barcode }} |
{{ g.amount }}{{ g.unit || '' }} | ¥{{ g.realMoney }} | {{ g.shopCode }} | {{ (g.enterTime||'').substring(0,16) }} |
A 快捷录入(管理员)
用于维修/补差/其他收入/历史补录/紧急兜底;必须填写原因并审计;不允许商品行/旧料。
消费记录查看范围配置
这里设置的天数是硬上限:下级账号最多只能查到这么久以内的消费记录,即使他自己改日期也看更早的。 填 0 表示不限。
角色查看范围
按角色限制可查看的历史消费天数。
| 角色 | 最多可查看 | 说明 |
|---|---|---|
| 超级管理员 | 天 | 0 = 不限 |
| 运营管理员 | 天 | 按 data_scope=all 判定 |
| 店长 | 天 | 本店范围 |
| 营业员 | 天 | 仅本人录入 |
照片上传设置
控制消费记录照片的数量与压缩上限。
销售冲正设置
仅最高管理员可修改;超时单需逐笔特批并记录原因。
手机动态码(第二因素)
给这个账号加一道只有你手机能过的门:开启后密码正确还不够,还要再输一次手机验证器上的 6 位数字。 门店员工的登录方式不受任何影响。
手机装任意验证器(Google Authenticator / Microsoft Authenticator / 各家"身份验证器"都行) → 选择「手动输入设置密钥」→ 粘贴下面的密钥。类型选 TOTP / 6 位 / 30 秒。
密钥只在本页显示,刷新就看不到了;重新生成会让旧密钥立刻失效。
手机丢了或换手机时,用其中一枚代替动态码登录。每枚只能用一次。
{{ c }}
危险操作硬件授权(U 盘 / U 盾)
用于拦住「重置密码 / 新建改员工 / 改角色权限」这三类操作:不插 U 盘就不放行。 授权工具在你电脑桌面 —— 第一次先双击「生成U盘密钥」,以后每次双击「危险操作授权」。 门禁开关由服务器端的文件控制(这样别人就算偷到管理员会话,也关不掉它)。
| 密钥标识 | 备注 | 注册时间 | 操作 |
|---|---|---|---|
| {{ k.keyId }} | {{ k.label }} | {{ k.createdAt }} |
还没有注册任何 U 盘密钥。插上 U 盘 → 双击桌面「生成U盘密钥」即可(详见桌面同目录的「说明.md」)。
员工账号管理
| 工号 | 姓名 | 角色 | 门店 | 状态 | 最近登录 | 操作 |
|---|---|---|---|---|---|---|
| {{ e.employeeCode }} | {{ e.employeeName }} {{ e.phone }} |
{{ e.roleName }} {{ scopeText(e.dataScope) }} |
{{ e.storeName || '—' }} | {{ e.status===1?'启用':'停用' }} | {{ e.lastLoginTime || '从未' }} |
门店管理
| 编码 | 门店名称 | 地址 | 电话 | 员工 | 会员 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ s.storeCode }} | {{ s.storeName }} | {{ s.storeAddress }} | {{ s.storePhone }} | {{ s.empCount }} | {{ s.memberCount }} | {{ s.status===1?'启用':'停用' }} |
会员等级规则
| 等级 | 积分区间 | 折扣率 | 积分倍率 | 升级礼 | 会员数 | 操作 |
|---|---|---|---|---|---|---|
| {{ l.levelName }} | {{ l.minPoints }} ~ {{ l.maxPoints || '不限' }} | {{ l.discountRate }} ({{ (l.discountRate/10).toFixed(1) }}折) | {{ l.pointsRate }} | {{ l.upgradeGift || '—' }} | {{ l.memberCount }} |
折扣率 100 = 不打折;95 = 9.5 折。积分倍率 0.05 = 每消费 1 元得 0.05 分。
操作日志
| 时间 | 操作人 | 模块 | 内容 |
|---|---|---|---|
| {{ g.createdAt }} | {{ g.employeeName }} | {{ g.moduleName }} | {{ g.operationDesc }} |
暂无日志