今日销售
{{fmt(dash.today_sale)}}
共 {{dash.today_count}} 单 · 今日回款 {{fmt(dash.today_pay)}}
本月销售
{{fmt(dash.month_sale)}}
{{ym}} 销售合计
应收欠款
{{fmt(dash.receivable)}}
{{dash.receivable_count}} 笔未结 · 逾期 {{dash.overdue_count}} 笔
快捷操作
最近单据
全部单据 →
暂无单据
| 单号 | 客户 | 日期 | 金额 | 状态 | |
|---|---|---|---|---|---|
| {{o.order_no}} | {{o.customer_name}} | {{o.order_date}} | {{fmt(o.final_amount)}} | {{o.paid_amount>=o.final_amount&&o.final_amount>0?'结清':o.paid_amount>0?'部分':'未收'}} |
库存预警(显示前 10 条,共 {{dashAlerts.length}} 条)
全部 →
库存充足
| 商品 | 规格 | 库存 | 下限 |
|---|---|---|---|
| {{p.name}} | {{p.spec}} | {{qfmt(p.stock)}} | {{qfmt(p.stock_low)}} |
扫码
联想结果(点击直接加入)
{{p.path||p.series||p.category||'—'}}
{{p.name}}
{{p.spec}}
{{fmt(p.retail_price)}}库存{{qfmt(p.stock)}}
| # | 商品 / 编码 | 规格 | 单位 | 单价 | 数量 | 折扣% | 金额 | 备注 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{g.no}}
{{g.no}}
|
{{g.r.path||g.r.series}}
{{g.r.name}} ⇄ 更换
{{g.r.code}} · {{g.r.barcodes.split(',').filter(b => b !== g.r.code).join(' / ')}}
库存不足(现 {{qfmt(g.r.stock)}})
|
{{g.r.spec}} | {{g.r.unit}} | {{fmt(g.r.amount)}} | + 点击选择商品(Tab 也可继续添加) | |||||||||||||
合计 {{fmt(sale.total)}} · {{sale.rows.length}} 行
商品合计{{fmt(sale.total)}}
整单折扣 %
应收总金额{{fmt(sale.final)}}
欠款金额{{fmt(Math.max(sale.final-sale.paidTotal,0))}}
收款方式
本次收款 {{fmt(sale.paidTotal)}}
| 单号 | 日期 | 客户 | 业务员 | 商品合计 | 应收 | 已收 | 收款 | 操作 |
|---|---|---|---|---|---|---|---|---|
没有符合条件的单据 | ||||||||
| {{o.order_no}} | {{o.order_date}} | {{o.customer_name}} | {{o.salesperson||'—'}} | {{fmt(o.total_amount)}} | {{fmt(o.final_amount)}} | {{fmt(o.paid_amount)}} | 已作废 结清 部分 未收 |
|
共 {{ord.total}} 条
{{ord.page}} / {{Math.max(1,Math.ceil(ord.total/ord.size))}}
| 编号 | 名称 | 联系人 | 电话 | 分类 | 等级 | 账期 | 累计销售 | 未结欠款 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
暂无客户 | |||||||||
| {{c.code||'—'}} | {{c.name}} | {{c.contact_person||'—'}} | {{c.phone||'—'}} | {{c.category||'—'}} | {{c.level}}普通 | {{c.credit_days||0}} 天 | {{fmt(statsOf(c.id).sale_total ?? c.sale_total ?? 0)}} | {{fmt(statsOf(c.id).arrear ?? c.arrear ?? 0)}}结清 |
|
共 {{cust.total}} 条
{{cust.page}} / {{Math.max(1,Math.ceil(cust.total/cust.size))}}
| 编码 | 名称 | 条码 | 分类 | 规格 | 单位 | 零售价 | 批发价 | 等级价 | 成本 | 库存 | 下限 | 操作 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
暂无商品 | |||||||||||||
| {{p.code||'—'}} | {{p.name}} | {{p.bar_code||'—'}} | {{p.path||p.series||p.category||'—'}} | {{p.spec||'—'}} | {{p.unit}} | {{fmt(p.retail_price)}} | {{perms.isSuper?fmt(p.wholesale_price):'—'}} | {{perms.isSuper?fmt(p.level_price):'—'}} | {{fmt(p.cost_price)}} | {{qfmt(p.stock)}} | {{qfmt(p.stock_low)}} |
|
共 {{prod.total}} 条 · 已选 {{prod.sel.length}}
{{prod.page}} / {{Math.max(1,Math.ceil(prod.total/prod.size))}}
库存明细
库存预警
库存流水
采购入库
销售退货
库存盘点
| 编码 | 名称 | 分类 | 规格 | 单位 | 当前库存 | 库存下限 | 状态 |
|---|---|---|---|---|---|---|---|
暂无库存 | |||||||
| {{p.code||'—'}} | {{p.name}} | {{p.path||p.series||p.category||'—'}} | {{p.spec||'—'}} | {{p.unit}} | {{qfmt(p.stock)}} | {{qfmt(p.stock_low)}} | {{p.is_alert?'低于下限':'充足'}} |
| 编码 | 名称 | 规格 | 单位 | 当前库存 | 库存下限 | 缺货量 |
|---|---|---|---|---|---|---|
| {{p.code||'—'}} | {{p.name}} | {{p.spec||'—'}} | {{p.unit}} | {{qfmt(p.stock)}} | {{qfmt(p.stock_low)}} | {{qfmt(Number(p.stock_low)-Number(p.stock))}} |
库存充足,无预警 | ||||||
| 时间 | 商品 | 类型 | 数量 | 结存 | 单据号 | 操作人 |
|---|---|---|---|---|---|---|
| {{f.created_at}} | {{f.product_name}} | {{f.type_name}} | {{f.qty>0?'+':''}}{{qfmt(f.qty)}} | {{qfmt(f.remain)}} | {{f.ref_no||'—'}} | {{f.op_user||'—'}} |
暂无流水 | ||||||
共 {{stk.flowTotal}} 条
{{stk.flowPage}} / {{Math.max(1,Math.ceil(stk.flowTotal/30))}}
入库后自动增加库存并记录采购成本
| 单号 | 供应商 | 日期 | 金额 | 状态 | 操作人 | 操作 |
|---|---|---|---|---|---|---|
| {{p.order_no}} | {{p.supplier_name||'—'}} | {{p.order_date}} | {{fmt(p.total_amount)}} | {{p.status==='confirmed'?'已入库':'作废'}} | {{p.op_user||'—'}} | |
暂无入库单 | ||||||
退货后库存回加、冲减客户欠款
| 单号 | 客户 | 原销售单 | 日期 | 金额 | 操作人 |
|---|---|---|---|---|---|
| {{p.order_no}} | {{p.customer_name}} | {{p.source_order_no||'—'}} | {{p.order_date}} | {{fmt(p.total_amount)}} | {{p.op_user||'—'}} |
暂无退货单 | |||||
录入实盘数量,审核后库存更新为盘点值并保留日志
| 单号 | 日期 | 盘差金额 | 状态 | 操作人 | 备注 |
|---|---|---|---|---|---|
| {{p.order_no}} | {{p.take_date}} | {{fmt(p.diff_amount)}} | 已审核 | {{p.op_user||'—'}} | {{p.remark||'—'}} |
暂无盘点记录 | |||||
欠款总表
逾期单据
回款明细
预收款台账
共 {{rev.totalArrear_text}} 元未结
| 客户 | 分类 | 等级 | 账期 | 应收合计 | 已收 | 未结欠款 | 未结单据 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{c.name}} | {{c.category||'—'}} | {{c.level||'普通'}} | {{c.credit_days||0}} 天 | {{fmt(c.total_should)}} | {{fmt(c.total_paid)}} | {{fmt(c.arrear)}} | {{c.open_count}} 单 | |
暂无欠款,全部结清 ✓ | ||||||||
逾期单据按账期自动识别,红色为已逾期单据,建议尽快催收。
| 单号 | 客户 | 业务员 | 单据日期 | 账期 | 已逾期 | 欠款 | 操作 |
|---|---|---|---|---|---|---|---|
| {{o.order_no}} | {{o.customer_name}} | {{o.salesperson||'—'}} | {{o.order_date}} | {{o.credit_days||0}} 天 | {{o.overdue_days}} 天 | {{fmt(o.left_amount)}} | |
没有逾期单据 ✓ | |||||||
| 回款单号 | 客户 | 类型 | 方式 | 金额 | 备注 | 操作人 | 时间 | |
|---|---|---|---|---|---|---|---|---|
| {{p.pay_no||'—'}} | {{p.customer_name||'—'}} | {{p.type==='prepay'?'预收款':p.type==='prepay_use'?'抵扣':'回款'}} | {{p.method}} | {{fmt(p.amount)}} | {{p.remark}} | {{p.op_user||'—'}} | {{p.created_at}} | |
暂无回款记录 | ||||||||
共 {{rev.payTotal}} 条
{{rev.payPage}} / {{Math.max(1,Math.ceil(rev.payTotal/30))}}
预收款可开单抵扣。开单收款方式选择「订金抵扣」即可自动冲减余额。
| 时间 | 单号 | 客户 | 类型 | 方式 | 金额 | 备注 |
|---|---|---|---|---|---|---|
| {{p.created_at}} | {{p.pay_no||'—'}} | {{p.customer_name||'—'}} | {{p.type==='prepay'?'入账':'抵扣'}} | {{p.method}} | {{p.type==='prepay'?'+':'-'}}{{fmt(p.amount)}} | {{p.remark}} |
暂无预收款记录 | ||||||
销售汇总
商品排行
应收报表
回款明细
库存报表
利润分析
| 日期 | 单数 | 销售金额 | 实收金额 | |||||
|---|---|---|---|---|---|---|---|---|
| 业务员 / 客户 | 单数 | 销售金额 | 回款金额 | 未结欠款 | ||||
| # | 商品 | 规格 | 销售数量 | 销售金额 | ||||
| 客户 | 累计应收 | 累计已收 | 未结欠款 | |||||
| 时间 | 单号 | 客户 | 类型 | 方式 | 金额 | 备注 | ||
| 编码 | 商品 | 分类 | 规格 | 单位 | 库存 | 下限 | 成本价 | 库存金额 |
| # | 商品 | 数量 | 销售额 | 成本 | 毛利 | 毛利率 | ||
| {{r.label}} | {{r.order_count||r.orders}} | {{fmt(r.sale_amount)}} | {{fmt((r.group==='day'||r.group==='month')?r.paid:(r.sale_amount||0))}} | |||||
该时间段暂无数据 | ||||||||
| {{r.label}} | {{r.order_count}} | {{fmt(r.sale_amount)}} | {{fmt(r.paid||0)}} | {{fmt(r.arrear||0)}} | ||||
该时间段暂无数据 | ||||||||
| {{i+1}} | {{r.label}} | {{r.spec}} | {{qfmt(r.qty)}} | {{fmt(r.amount)}} | ||||
暂无数据 | ||||||||
| {{r.label}} | {{fmt(r.total_should)}} | {{fmt(r.total_paid)}} | {{fmt(r.arrear)}} | |||||
所有客户已结清 | ||||||||
| {{r.created_at}} | {{r.pay_no||'—'}} | {{r.customer_name||'—'}} | {{r.type_name}} | {{r.method}} | {{fmt(r.amount)}} | {{r.remark}} | ||
暂无数据 | ||||||||
| {{r.code||'—'}} | {{r.name}} | {{r.category||'—'}} | {{r.spec||'—'}} | {{r.unit}} | {{qfmt(r.stock)}} | {{qfmt(r.stock_low)}} | {{fmt(r.cost_price)}} | {{fmt(r.stock_value)}} |
暂无库存 | ||||||||
| {{i+1}} | {{r.label}} | {{qfmt(r.qty)}} | {{fmt(r.sale_amount)}} | {{fmt(r.cost_amount)}} | {{fmt(r.profit)}} | {{r.sale_amount?Math.round(r.profit/r.sale_amount*100)+'%':'—'}} | ||
暂无数据 | ||||||||
公司信息
单号规则
系统参数
打印设置
分类单位
供应商
账号管理
备份恢复
数据打通
操作日志
系统设置只读,如需调整请到主业务系统
商品分类只读
{{c.name}}
✕
计量单位只读
{{u.name}}
✕
供应商用于采购入库
| 名称 | 联系人 | 电话 | 地址 | 备注 | 操作 |
|---|---|---|---|---|---|
| {{s.name}} | {{s.contact_person||'—'}} | {{s.phone||'—'}} | {{s.address||'—'}} | {{s.remark||'—'}} | |
暂无供应商 | |||||
角色:超级管理员 / 开单员 / 财务 / 只读查看
| 账号 | 姓名 | 手机号 | 角色 | 状态 | 备注 | 操作 |
|---|---|---|---|---|---|---|
| {{u.username}} | {{u.nickname||'—'}} | {{u.phone||'—'}} | {{roleNameOf(u.role)}} | {{u.status?'启用':'禁用'}} | {{u.remark||'—'}} | |
暂无账号 | ||||||
手动备份
一键备份全部业务数据;每日自动执行一次,按保留份数清理。
恢复数据
从备份文件恢复整套数据(将覆盖当前数据,请谨慎操作)。
| 备份文件 | 大小 | 操作 |
|---|---|---|
| {{f.name}} | {{f.size}} KB | |
暂无备份 | ||
与现有业务库数据打通
开单系统与您现有系统共用同一个数据库(shop),通过「源表 → 本地工作副本」方式自动读取账号、商品与客户,无需重复录入。同步后本系统内仍可自由调整价格、库存与账号角色,不会被源覆盖。
| 源数据表(现有系统) | 读取方式 | 映射到 | 说明 |
|---|---|---|---|
| admins | 同库直读 · 增量导入 | billing_users | 员工/管理员账号,登录自动复用;禁用状态跟随 admins |
| products + product_skus | 同库直读 · SKU 粒度 | billing_products | 商品按 SKU 导入(附带条码),名称/规格/分类/图片跟随源,价格与库存以本系统为准 |
| categories | 同库直读 | 商品分类文本 | 分类名称随商品写入 |
| users | 同库直读 · 手机号去重 | billing_customers | 商城会员自动成为客户(等级随 member_levels) |
| user_product_prices | 同库直读 · 仅新增 | customer_prices | 会员专属价自动带入,之后由本系统维护 |
同步统计
最近同步:账号 {{ fmtTime(syncInfo.last_sync && syncInfo.last_sync.users) }} · 商品 {{ fmtTime(syncInfo.last_sync && syncInfo.last_sync.products) }} · 客户 {{ fmtTime(syncInfo.last_sync && syncInfo.last_sync.customers) }}
源账号 admins
{{ syncInfo.src && syncInfo.src.admins }}
源商品 SKU
{{ syncInfo.src && syncInfo.src.skus }}
本地同步商品
{{ syncInfo.local && syncInfo.local.synced_products }}
本地商品共 {{ syncInfo.local && syncInfo.local.products }}
源会员客户
{{ syncInfo.src && syncInfo.src.users }}
已导入 {{ syncInfo.local && syncInfo.local.customers }}
专属价
{{ syncInfo.local && syncInfo.local.cust_prices }}
手动同步服务器启动与每 30 分钟也会自动执行一次全量同步
| 时间 | 操作人 | 类型 | 内容 |
|---|---|---|---|
| {{l.created_at}} | {{l.username||'—'}} | {{l.type}} | {{l.content}} |
暂无日志 | |||
共 {{lg.total}} 条
{{lg.page}} / {{Math.max(1,Math.ceil(lg.total/30))}}