筷马筷马ERP
仪表盘 库存管理 商品管理 门店管理 品牌管理 订单管理 同步监控 打印设备 对接指南 平台凭证 财务总览 采购管理 用户管理 数据导入 门店分析 门店启动 小K 助手 权限配置
{{ pageTitle }}
系统:筷马ERP v1.0 端口:7050 {{ erpUsername }}({{ erpRoleName }}) 个人中心 退出登录
{{ dashboard.stats.total_products || 0 }}
SKU总数
{{ dashboard.stats.total_stores || 0 }}
门店数
营业中 {{ dashboard.stats.active_stores || 0 }} · 建店中 {{ dashboard.stats.building_stores || 0 }}
{{ dashboard.stats.total_orders || 0 }}
订单总数
¥{{ dashboard.stats.total_value || 0 }}
库存总价值
{{ dashboard.stats.low_stock || 0 }}
低库存预警
{{ dashboard.stats.soldout || 0 }}
售罄SKU
{{ dashboard.stats.today_orders || 0 }}
今日订单
¥{{ dashboard.stats.today_revenue || 0 }}
今日销售额
{{ dashboard.stats.sync_health || 0 }}%
同步健康度

近14天订单趋势

库存价值 Top 门店

平台同步分布

低库存预警

最新订单

实时同步动态

{{ platformLabel(log.platform) }} {{ eventLabel(log.event_type) }} {{ log.quantity > 0 ? '+' : '' }}{{ log.quantity }}
{{ log.direction === 'push' ? '推送' : '接收' }} · {{ log.store_id ? '门店' + log.store_id : '' }} {{ log.product_id ? '· 商品' + log.product_id : '' }} · {{ log.created_at }}
将文件拖拽到此处,或 点击选择文件
支持 .csv / .xlsx / .xls(UTF-8;Excel 可直接另存为)
已选择:{{ importFile.name }} 开始导入 清除
• {{ e }}
{{ storeAnalysis.summary.store_count || 0 }}
门店数
¥{{ storeAnalysis.summary.total_inventory_value || 0 }}
库存总价值
{{ storeAnalysis.summary.total_sku || 0 }}
SKU总数
{{ storeAnalysis.summary.healthy_stores || 0 }}/{{ storeAnalysis.summary.store_count || 0 }}
同步正常门店

门店库存价值排行

同步健康分布

门店明细

{{ (launch.counts && launch.counts[st]) || 0 }}
{{ nm }}
• {{ e }}
取消 保存 确认排期 提交安装结果 提交验收 通过审批 确认驳回
将文件拖到此处,或点击上传
支持 .csv / .xlsx / .xls;若表格里出现新品牌,系统会自动创建并继续导入;若品牌列为空,会自动归入「未指定品牌」。
• {{ e }}
✓ {{ launch.csvResult.note }}
关闭
采购支出
¥{{ ((finance.data.total.purchase_expense)||0).toFixed(2) }}
销售收入
¥{{ ((finance.data.total.sales_revenue)||0).toFixed(2) }}
商品成本
¥{{ ((finance.data.total.product_cost)||0).toFixed(2) }}
毛利润
¥{{ ((finance.data.total.gross_profit)||0).toFixed(2) }} 毛利率 {{ finance.data.total.gross_margin }}%

营收 / 成本 / 利润趋势

今日概览

今日销售额¥{{ (finance.data.today.sales_revenue||0).toFixed(2) }}
今日商品成本¥{{ (finance.data.today.product_cost||0).toFixed(2) }}
今日采购支出¥{{ (finance.data.today.purchase_expense||0).toFixed(2) }}
今日毛利润¥{{ (finance.data.today.gross_profit||0).toFixed(2) }}
今日毛利率{{ ((finance.data.today.gross_profit||0)/(Math.max(finance.data.today.sales_revenue,1))*100).toFixed(2) }}%
单号类型方向金额关联单据时间
{{ r.record_no }} {{ r.type==='income'?'收入':'支出' }} {{ r.direction==='in'?'入账':'出账' }} {{ r.direction==='in'?'+':'-' }}¥{{ r.amount.toFixed(2) }} {{ r.related_order_no || '-' }} {{ r.created_at }}
暂无数据
SKU产品入库数总成本均价
{{ r.sku }}{{ r.name }}{{ r.total_in_qty }}¥{{ r.total_cost.toFixed(2) }}¥{{ r.avg_cost.toFixed(2) }}
暂无数据
单号平台单号供应商门店实收成本利润状态日期操作
{{ o.order_no }} {{ o.platform_order_no }}- {{ o.supplier_name || '-' }}{{ o.store_name || '-' }} ¥{{ (o.actual_amount||0).toFixed(2) }}- ¥{{ (o.cost_amount||0).toFixed(2) }} {{ o.profit==null?'-':'¥'+(o.profit||0).toFixed(2) }} {{ o.isReview?'⏳待审核':(o.status==='completed'?'已完成':(o.status==='rejected'?'已驳回':'待入库')) }} {{ o.order_date || (o.created_at||'').slice(0,10) }}
{{ (o.created_at||'').slice(11,16) }}
待采购审核
暂无采购单 — 请调整筛选条件
新建采购单
采购明细
商品数量单价小计
¥{{ ((it.quantity||0)*(it.unitPrice||0)).toFixed(2) }}
合计: ¥{{ purchaseForm.items.reduce(function(s,it){return s+((it.quantity||0)*(it.unitPrice||0));},0).toFixed(2) }}
采购单明细
系统单号:{{ purchaseDetail.order.order_no }}
平台单号:{{ purchaseDetail.order.platform_order_no }}🔗
订单日期:{{ purchaseDetail.order.order_date || '-' }}
供应商:{{ purchaseDetail.order.supplier_name || '-' }}
门店:{{ purchaseDetail.order.store_name || '-' }}
状态:{{ (purchaseDetail.parsedRemark && purchaseDetail.parsedRemark.source==='order_review') ? '待采购审核(未推送)' : (purchaseDetail.order.status==='completed'?'已完成':(purchaseDetail.order.status==='rejected'?'已驳回':'待入库')) }}
实收:{{ purchaseDetail.order.actual_amount==null?'-':'¥'+(purchaseDetail.order.actual_amount||0).toFixed(2) }}
成本:¥{{ (purchaseDetail.order.cost_amount||0).toFixed(2) }}
利润:{{ purchaseDetail.order.profit==null?'-':'¥'+(purchaseDetail.order.profit||0).toFixed(2) }}
📊 海鼎推送对账明细
来源渠道:{{ purchaseDetail.parsedRemark.haiding_supplier }}({{ purchaseDetail.parsedRemark.channel }})
顾客实付:¥{{ (purchaseDetail.parsedRemark.customer_paid||0).toFixed(2) }}
平台面价:¥{{ (purchaseDetail.parsedRemark.platform_amount||0).toFixed(2) }}
海鼎实推净额:¥{{ (purchaseDetail.parsedRemark.haiding_net_pushed||0).toFixed(2) }}
对账应扣金额:¥{{ (purchaseDetail.parsedRemark.expected_amount||0).toFixed(2) }}(来源:{{ purchaseDetail.parsedRemark.expected_source === 'excel_combo' ? 'Excel整包结算价' : '海鼎推送明细汇总' }})
差异:¥{{ (purchaseDetail.parsedRemark.amount_diff||0).toFixed(2) }}
⚠️ 冲正原因:{{ purchaseDetail.parsedRemark.reversal_reason }}
📋 平台订单 → 采购建议(待采购审核 · 未推送海鼎)
来源渠道:{{ purchaseDetail.parsedRemark.haiding_supplier || '福建十分便利' }}(订单自动生成)
顾客实付:¥{{ (purchaseDetail.parsedRemark.customer_paid||0).toFixed(2) }}
平台面价:¥{{ (purchaseDetail.parsedRemark.platform_amount||0).toFixed(2) }}
建议采购额:¥{{ (purchaseDetail.parsedRemark.expected_amount||0).toFixed(2) }}(成本口径合计)
利润:{{ purchaseDetail.parsedRemark.profit==null?'-':'¥'+(purchaseDetail.parsedRemark.profit||0).toFixed(2) }}(实收-成本)
有效采购行:{{ purchaseDetail.parsedRemark.mapped_line_count||0 }} 行
⚠️ 需人工处理:{{ purchaseDetail.parsedRemark.review_flags.join(';') }}
{{ purchaseDetail.parsedRemark.source==='order_review' ? '📋 建议采购明细' : '🔗 海鼎推送明细' }}(共 {{ purchaseDetail.parsedRemark.push_records.length }} 条记录)
✅ 推送成功 ↩️ 已退货 ⏳ 待审核 {{ rec.status }} 套餐组件补推
auto_order_id={{ rec.auto_order_id }} · partner_num=平台单号={{ rec.partner_num }} · ¥{{ (rec.amount||0).toFixed(2) }}
海鼎商品码商品名称数量单价小计
{{ it.goods_code }}{{ it.goods_name }}⚠️ 兜底{{ it.qty }}¥{{ ((it.display_unit_price!=null?it.display_unit_price:it.price)||0).toFixed(2) }}¥{{ ((it.display_unit_price!=null?(it.display_unit_price*it.qty):it.subtotal)||0).toFixed(2) }}
(退货单无明细)
商品SKU数量单价小计
{{ it.product_name }}{{ it.product_sku || '-' }} {{ it.quantity }}¥{{ (it.unit_price||0).toFixed(2) }}¥{{ (it.subtotal||0).toFixed(2) }}
暂无明细
用户名姓名角色门店归属上级状态创建时间操作
{{ u.username }}{{ u.real_name || '-' }} {{ u.role_name }} {{ storeName(u.store_id) }} {{ u.manager_name || '-' }} {{ u.status==='active'?'正常':'禁用' }} {{ u.created_at }}
暂无用户
{{ editingUser?'编辑用户':'添加用户' }}

库存管理

本门店视角 仅显示低库存 仅显示售罄 + 补货入库 调整库存
{{ inventorySummary.total || 0 }}
库存记录数
{{ inventorySummary.low_stock || 0 }}
低库存
{{ inventorySummary.soldout || 0 }}
已售罄
{{ inventorySummary.total_qty || 0 }}
总数量

商品管理

+ 添加商品 批量导入
共 {{ productList.length }} 个 {{ b.name }} {{ productBrandCount(b.id) }} 个 当前仅显示「{{ currentBrandName() }}」
将文件拖到此处,或点击上传
支持 .csv / .xlsx / .xls;若含系统未创建的新品牌,会先弹窗确认,确认后自动创建并继续导入。
✓ 已自动创建 {{ product.importResult.created_brands.length }} 个新品牌:{{ product.importResult.created_brands.join('、') }}
• {{ e }}
关闭 开始导入

门店管理

+ 添加门店 批量导入
共 {{ storeList.length }} 家 当前仅显示「{{ storeFilterDesc() }}」
将文件拖到此处,或点击上传
支持 .csv / .xlsx / .xls;若含系统未创建的新品牌,会先弹窗确认,确认后自动创建并继续导入。
✓ 已自动创建 {{ store.importResult.created_brands.length }} 个新品牌:{{ store.importResult.created_brands.join('、') }}
• {{ e }}
关闭 开始导入

品牌管理

+ 添加品牌
共 {{ brandList.length }} 个

订单管理

重置 + 模拟下单 模拟淘宝订单 模拟海鼎订单 模拟海博订单 模拟牵牛花订单

同步监控

{{ syncStats.total || 0 }}
同步事件总数
{{ syncStats.success || 0 }}
成功
{{ syncStats.failed || 0 }}
失败
{{ syncStats.success_rate || 0 }}%
成功率

按平台统计

最近同步日志

打印设备

+ 添加设备

API 对接指南

https://nowwa-food.com (生产环境请替换为您的域名)

1. 销售回传(海鼎 → ERP)

海鼎收银时调用此接口,扣减库存、触发售罄广播:

POST /api/haiding/sale_callback

Content-Type: application/json



{

  "haiding_store_id": "HD001",      // 海鼎门店ID

  "haiding_order_no": "POS20260708001",  // 海鼎订单号

  "items": [

    {"sku": "P001", "quantity": 2, "unit_price": 12.5}

  ]

}

返回:

{

  "code": 0,

  "data": {

    "available": 28,

    "is_soldout": false,

    "broadcast_to": ["taobao", "haiding", "hiboos", "qianniuhua", "jianfu"]  // 售罄时广播的平台

  }

}

2. 库存同步(ERP → 海鼎)

系统会主动推送库存变化给海鼎,无需海鼎调用。

推送地址:海鼎提供的 webhook URL(需在海鼎后台配置)

订单回调(外卖 → ERP)

外卖平台有新订单时,调用此接口预占库存:

POST /api/takeaway/<platform>/order_callback

其中 platform = meituan | eleme | jd



Content-Type: application/json



{

  "platform_order_no": "MT202607081234",

  "platform_shop_id": "MT-S001",      // 平台店铺ID

  "items": [

    {"sku": "P001", "quantity": 1}

  ],

  "customer": {

    "name": "张三",

    "phone": "13800138000",

    "address": "北京市朝阳区..."

  },

  "total_amount": 28.5

}

返回:

{

  "code": 0,

  "data": {

    "order_no": "ORD20260708001",

    "status": "confirmed",

    "reserved": 1  // 预占数量

  },

  "msg": "订单已确认"

}

库存推送(ERP → 外卖)

售罄时系统自动推送售罄信息到外卖平台,无需平台调用。

推送地址:各外卖平台开放平台 webhook URL(在 ERP 端配置)

1. 提交小票打印

POST /api/print/receipt

Content-Type: application/json



{

  "device_id": "PRINT-001",

  "order_no": "ORD20260708001",

  "items": [

    {"name": "金枪鱼饭团", "qty": 2, "price": 12.5, "subtotal": 25}

  ],

  "total": 25.0

}

2. 提交标签打印

POST /api/print/label

Content-Type: application/json



{

  "device_id": "PRINT-L01",

  "product_name": "金枪鱼饭团",

  "price": 12.5,

  "production_time": "2026-07-08 06:00:00",

  "shelf_life_hours": 12

}

每个门店都需要独立配置各平台 ID:

修改路径:菜单 → 门店管理 → 点击「编辑」


   ┌─────────┐

   │ 美团/饿了么/京东 │ ──订单回调──> ERP库存中心 ──预占库存──> 确认接单

   └─────────┘                  │

                                ├── 库存变化时

                                ▼

                          ┌──────────┐

                          │ 推送库存 │

                          └──────────┘

                                │

                ┌───────────────┼───────────────┐

                ▼               ▼               ▼

            ┌──────┐        ┌──────┐        ┌──────┐

            │ 海鼎  │        │ 淘宝  │        │ 海博 │   ← 售罄时立即同步

            └──────┘        └──────┘        └──────┘

                                              │

                                              ▼

                                        ┌─────────┐

                                        │ 京东     │

                                        └─────────┘



   ┌─────────┐

   │  海鼎POS  │ ──销售回传──> ERP库存中心 ──扣减库存──> 触发各平台同步

   └─────────┘

                            

当前为演示版本,未启用签名验证。

生产环境建议:

  • 所有 API 调用加 timestamp + sign 签名
  • 使用 HTTPS 传输
  • 每个平台/门店分配独立 app_keyapp_secret
  • IP 白名单限制

平台凭证配置

真实对接需要客户提供各平台的开放平台账号。
• 海鼎:API 需付费签约,文档只给签约客户
• 美团/饿了么/京东:需要客户用已上线店铺资质申请开放平台(1-2 周审核)
• 拿到 app_key + app_secret 后,关闭 mock 模式即可真实对接
选择门店
保存 测试连接 当前: MOCK 模式 当前: 真实模式 保存 测试连接 当前: MOCK 模式 当前: 真实模式 保存 测试连接 当前: MOCK 模式 当前: 真实模式 保存 测试连接 当前: MOCK 模式 当前: 真实模式 保存 测试连接 当前: MOCK 模式 当前: 真实模式 保存 测试连接 当前: MOCK 模式 当前: 真实模式 关闭 mock 前请确保各平台已正确配置凭证 保存

权限配置

以系统所有者(king)身份,为各角色开关功能权限。修改后该角色重新登录或刷新即生效。

选择角色
king 为系统所有者,权限固定全开,不可配置。
功能权限({{ permSelectedRole }}) 全选 清空
{{ grp }}
{{ p.name }}
保存配置 保存后即覆盖该角色现有权限。
取消 确认入库 入库(+) 报损(-) 取消 确认

给当前账号单独开通或关闭功能权限。未勾选时,继承该角色默认权限。

{{ grp }}
取消 保存
{{ productForm.shelf_life_unit === 'd' ? '将按 ' + productForm.shelf_life_value + ' 天 = ' + (productForm.shelf_life_value * 24) + ' 小时 存库' : '将按 ' + productForm.shelf_life_value + ' 小时 存库' }}
取消 保存
平台配置(一对一) 取消 保存 取消 保存
{{ selectedOrder.order_no }} {{ platformLabel(selectedOrder.platform) }} {{ selectedOrder.store_name }} ¥{{ selectedOrder.total_amount }} {{ selectedOrder.customer_name }} {{ selectedOrder.customer_phone }} {{ selectedOrder.delivery_address }} {{ selectedOrder.remark || '-' }} {{ statusLabel(selectedOrder.status) }} {{ selectedOrder.created_at }}

商品明细

用户名{{ erpUsername }}
角色{{ erpRoleName }}
手机号 {{ erpPhone }} 已绑定 未绑定
修改密码
确认修改
绑定手机号
确认绑定