{{ requestStatus.label }}
已等待 {{ Math.max(0, Math.floor((requestClock - requestStatus.startedAt) / 1000)) }} 秒

正在等待服务器处理结果,请勿重复点击或关闭页面。

总控代管模式 · {{ tenantContext.tenant_name || '当前商户' }} 原因:{{ user.support_reason || '平台协助处理' }} · 会话到期:{{ platformSupport.expires_at || '—' }}
套餐已到期,当前为续费专用模式 经营数据和业务操作已暂停;您仍可选择套餐、扫码付款、查询或关闭自己的充值订单。

{{ title }}

{{ subtitle }}

{{ moduleGuide.title }}

{{ moduleGuide.text }}

{{ moduleGuide.formula }}

打开数据大屏 {{ publicDashboardAccess.password_configured ? '已设置访问密码' : '未设置密码,暂不可查看大屏' }}
{{ step }}
正在检查 AI 配置...

AI 经营助手尚未就绪

{{ aiSettings.configured ? 'DeepSeek API 已保存,但功能尚未启用。' : '当前商户尚未配置 DeepSeek API Key。' }}

请联系超级管理员在“数据工具 → DeepSeek API 设置”中完成配置。

DeepSeek API 设置

当前商户独立配置,API Key 加密保存在服务端,页面不会回显明文。
{{ aiSettings.configured ? '密钥已保存' : '尚未配置' }}
安全边界AI 只接收系统生成的只读经营汇总,不具备 SQL、写库、删除、审批或业务操作权限;各商户配置与数据相互隔离。
昨日销售总额{{ money(dashboard.cards.yesterdaySales) }}
当月销售总额{{ money(dashboard.cards.monthSales) }}
当年销售总额{{ money(dashboard.cards.yearSales) }}
昨日利润总额{{ money(dashboard.cards.yesterdayProfit) }}
当月利润总额{{ money(dashboard.cards.monthProfit) }}
当年利润总额{{ money(dashboard.cards.yearProfit) }}
昨日销量{{ Number(dashboard.cards.yesterdaySalesQty || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
当月销量{{ Number(dashboard.cards.monthSalesQty || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
当年销量{{ Number(dashboard.cards.yearSalesQty || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
智能补仓提示 按有效库存可售天数从少到多排列
{{ dashboardReplenishmentRows.length }} 项需关注
{{ row.warehouse_name }}{{ row.category_name }} {{ Number(row.coverage_days).toLocaleString() }}
{{ dashboardReplenishmentEmptyText }}
采购送货运输状态
共 {{ dashboardTransportTotal }} 条 · 每页 40 条
采购日期 仓库名 品类 车牌号 司机电话 数量 审核状态 审核人 货款 运输状态 管理
{{ row.purchase_date }} {{ hasTransportData(row) ? row.warehouse_name : '' }} {{ hasTransportData(row) ? (row.category_name || '未分类') : '' }} {{ row.plate_no }} {{ row.driver_phone }} {{ Number(row.quantity || 0).toLocaleString() }} {{ row.transport_reserved }} {{ row.reviewer_name }} {{ row.transport_payment }} {{ row.transport_in_transit }} -
暂无运输数据
第 {{ dashboardTransportPage }} / {{ dashboardTransportPageCount }} 页
库存预警{{ dashboardStockSubtitle }}
仓库 品类 当前库存 安全线
{{ group.warehouse_name }}
{{ row.category_name || '未分类' }} {{ Number(row.stock_qty || 0).toLocaleString() }} {{ Number(row.safety_stock_qty || 0).toLocaleString() }}
{{ dashboardStockEmptyText }}
仓库口径 仓库是实际库存地点;外部仓库ID和明细核算仓库通过下方平台映射归入实际仓库。

平台仓库映射

共 {{ warehouseMappings.length }} 条,销售导入据此把明细核算仓归入实际仓库

{{ warehouseForm.id ? '编辑仓库' : '新建仓库' }}

维护采购、库存、划拨和 FIFO 使用的实际仓库
{{ warehouseForm.coordinate_mode === 'manual' ? '手动定位说明' : '自动定位说明' }} 高德无法识别地址时,可从地图复制经纬度;经度和纬度必须同时填写。 保存时根据省份、城市和精准地址自动获取坐标;无法定位时可切换为手动输入。
当前账号没有维护仓库权限

{{ warehouseMappingForm.id ? '编辑平台仓库映射' : '新建平台仓库映射' }}

外部仓库ID和明细核算仓库来自销售平台,并映射到实际仓库

其他收入

按发生日期和仓库计入最终利润,不计入销售额或销售成本

{{ otherIncomeForm.id ? '编辑其他收入' : '新增其他收入' }}

日期、仓库、收入原因和金额均为必填项

收入明细

共 {{ otherIncomes.length }} 条,当前页金额 {{ money(otherIncomeSummary.amount) }}
总扣费金额 {{ money(promotionExpenseTotals.deduction_total) }} 当前筛选范围
总罚款金额 {{ money(promotionExpenseTotals.fine_total) }} 当前筛选范围

扣费和罚款

扣费按日期计入整体利润;仓库和品类筛选仅作用于罚款记录

扣费

不关联仓库、品类或销售明细,按日期从整体利润中扣减一次,共 {{ deductionRows.length }} 条
{{ deductionImportResult }}

导入字段:入账时间→日期,财务类型/账务类型→扣费名称,收支金额(元)→扣费金额;支出负数会按绝对值计入扣费。

新增扣费仅记录日期、扣费名称和金额,不分摊到仓库、品类或单条销售

罚款

记录各仓明细产生的罚款,共 {{ fineRows.length }} 条
新增罚款按日期、仓库和品类直接计入利润扣减

商户与地图参数

维护数据大屏标题及仓库精准地址定位服务
仓库经纬度由服务端按“省份+城市+精准地址”自动获取;Key 仅保存在服务端,不会发送到数据大屏浏览器。
当前账号没有维护系统参数权限

智能补仓

数据生成时间:{{ smartReplenishment.generated_at || '加载中' }}。按有效库存可售天数从少到多排列;数据截至昨日,可售天数减1天后直接向下取整。

补仓采购建议

可售天数按有效库存和加权日需求测算,昨日数据统一扣减1天;建议仅供采购参考,不会自动生成采购单。
短缺 {{ Number(smartReplenishment.summary.shortage_count || 0) }} 项 · 建议采购 {{ Number(smartReplenishment.summary.recommended_purchase_qty || 0).toLocaleString() }} 件
优先级仓库 / 品类可售天数库存 / 在途近{{ smartReplenishment.rules.purchase_days || smartReplenishmentPurchaseDays }}天 / 30天销量建议采购计算说明操作
{{ analyticsPlanningPriority(row.priority) }}{{ row.warehouse_name }}{{ row.category_name }}{{ row.coverage_days === null ? '无销量' : Number(row.coverage_days).toLocaleString()+' 天' }}有效库存 {{ Number(row.effective_stock_qty || 0).toLocaleString() }}{{ Number(row.current_stock_qty || 0).toLocaleString() }} / {{ Number(row.in_transit_qty || 0).toLocaleString() }}{{ Number(row.sales_qty_window || 0).toLocaleString() }} / {{ Number(row.sales_qty_30d || 0).toLocaleString() }}{{ Number(row.recommended_purchase_qty || 0).toLocaleString() }}含库损 {{ Number(row.loss_allowance_qty || 0).toLocaleString() }}{{ row.reason }}{{ row.demand_basis }};周转修正系数 {{ Number(row.turnover_factor || 1).toFixed(2) }}仅查看
当前库存、已审核在途和销量测算后暂无补仓建议
正在测算补仓建议...

经营分析

数据生成时间:{{ businessAnalytics.generated_at || '加载中' }}。周转和预计断货按近 30 天销量估算;详细预警请进入“主动预警”。

库存金额{{ money(businessAnalytics.summary.inventory_value) }}{{ Number(businessAnalytics.summary.inventory_qty || 0).toLocaleString() }} 件
近30天销售{{ money(businessAnalytics.summary.sales_amount_30d) }}{{ Number(businessAnalytics.summary.sales_qty_30d || 0).toLocaleString() }} 件
近30天利润{{ money(businessAnalytics.summary.profit_30d) }}
佣金预计影响{{ money(businessAnalytics.summary.estimated_commission_30d) }}
滞销/周转慢{{ Number(businessAnalytics.summary.slow_moving_count || 0) }}仓库品类组合
预计断货{{ Number(businessAnalytics.summary.stockout_risk_count || 0) }}7 天内
待处理预警{{ Number(businessAnalytics.summary.alert_count || 0) }}严重 {{ Number(businessAnalytics.summary.critical_alert_count || 0) }}
下架库存待处理{{ Number(businessAnalytics.summary.delisted_inventory_qty || 0).toLocaleString() }}{{ money(businessAnalytics.summary.delisted_inventory_value) }}

{{ businessAnalytics.daily_brief.title || '今日经营简报' }}

最新毛利率:{{ Number(businessAnalytics.daily_brief.latest_margin_rate || 0).toFixed(2) }}%

  • {{ item }}

库存周转、库龄与预计断货

单仓停止销售仍按正常商品显示,全部仓库停销才属于已下架。点击表头切换升序 / 降序,无数值项始终置底。
{{ row.warehouse_name }}{{ row.category_name }}{{ row.delist_status_label }}{{ Number(row.stock_qty || 0).toLocaleString() }}{{ money(row.stock_value) }}{{ row.average_age_days === null ? '—' : Number(row.average_age_days).toFixed(1)+' 天' }}{{ Number(row.sales_qty_30d || 0).toLocaleString() }}{{ row.turnover_30d === null ? '—' : Number(row.turnover_30d).toFixed(2) }}{{ row.delist_status === 'fully_delisted' ? '停止断货测算' : (row.days_supply === null ? '无销量' : Number(row.days_supply).toFixed(1)+' 天') }}{{ analyticsInventoryStatus(row.inventory_status) }}
{{ businessAnalyticsLoading ? '正在加载库存分析数据...' : (businessAnalyticsInventoryTab === 'delisted' ? '暂无已下架商品库存分析数据' : '暂无正常商品库存分析数据') }}

毛利趋势

最近 30 天 · 最新在前
销售 {{ money(row.sales_amount) }}利润 {{ money(row.profit_amount) }}{{ Number(row.gross_margin_rate || 0).toFixed(2) }}%
暂无毛利趋势

采购价格趋势

最近 90 天 · 最新在前
均价 {{ money(row.average_purchase_price) }}{{ Number(row.purchase_qty || 0).toLocaleString() }} 件{{ Number(row.batch_count || 0) }} 批
暂无采购趋势

供应商表现

近 90 天采购、合同、发票和预期毛利
供应商批次数采购数量采购金额平均采购价预期毛利合同率发票率
{{ row.supplier_name }}{{ row.batch_count }}{{ Number(row.purchase_qty || 0).toLocaleString() }}{{ money(row.purchase_amount) }}{{ money(row.average_purchase_price) }}{{ money(row.expected_gross_profit) }}{{ Number(row.contract_rate || 0).toFixed(1) }}%{{ Number(row.invoice_rate || 0).toFixed(1) }}%
暂无供应商数据

主动预警

独立检测与分页展示;点击刷新预警重新检测,查询和翻页不重复检测。
当前筛选 {{ Number(businessAnalyticsAlertPagination.total || 0).toLocaleString() }} 条
全部待处理{{ Number(businessAnalyticsAlerts.summary.total || 0).toLocaleString() }}
严重{{ Number(businessAnalyticsAlerts.summary.critical_count || 0).toLocaleString() }}
警告{{ Number(businessAnalyticsAlerts.summary.warning_count || 0).toLocaleString() }}
低于成本报价{{ Number(businessAnalyticsAlerts.summary.below_cost_quote_count || 0).toLocaleString() }}
等级预警类型预警内容仓库 / 品类最近发现
正在加载本页预警...
{{ analyticsAlertSeverity(row.severity) }} {{ analyticsAlertType(row.alert_type) }} {{ row.title }}{{ row.message }} {{ row.warehouse_name || '全部仓库' }}{{ row.category_name || '全部品类' }} {{ row.last_detected_at }}
当前筛选条件下没有待处理预警
第 {{ (businessAnalyticsAlertPagination.page - 1) * businessAnalyticsAlertPagination.pageSize + 1 }}-{{ Math.min(businessAnalyticsAlertPagination.page * businessAnalyticsAlertPagination.pageSize, businessAnalyticsAlertPagination.total) }} 条 / 共 {{ businessAnalyticsAlertPagination.total }} 条共 0 条
每页{{ businessAnalyticsAlertPagination.page }} / {{ businessAnalyticsAlertPagination.pageCount }}
总销售额{{ money(profit.total.sales) }}
总销量{{ Number(profit.total.quantity || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
总成本{{ money(profit.total.cost) }}
总利润{{ money(profit.total.profit) }}
综合毛利率{{ percent(profit.total.profit_rate) }}

利润组成

{{ profit.period_label || '' }}:总利润已包含退货冲回、其他收入、库损、扣费和罚款调整;退货金额与损失仅作明细披露,不会重复扣减
{{ row.label }} {{ row.sign }}{{ money(row.amount) }}

{{ profitDetailTab === 'ranking' ? '仓库销售排行' : '仓库利润明细' }}

按仓库和品类独立计算,共 {{ filteredProfitWarehouses.length }} 条明细;点击销售数量、销售额、利润或毛利率可排行 统计范围:{{ profit.period_label || '当前查询' }} · 共 {{ profitWarehouseRankingRows.length }} 个仓库;点击销售额、单量、销量、利润或毛利率切换升降序 共 {{ profitReturnTotal }} 条退货明细;退货金额、冲回成本和利润损失均来自原销售 FIFO 凭证
目前销售总额{{ money(collectionAccounting.summary.sales_amount) }}
总货款{{ money(collectionAccounting.summary.goods_payment_amount) }}
其它支出{{ money(collectionAccounting.summary.other_expense_amount) }}
支出合计{{ money(collectionAccounting.summary.expenditure_amount) }}
累计提现{{ money(collectionAccounting.summary.withdrawal_amount) }}
库存总值(当前){{ money(collectionAccounting.summary.inventory_value) }}
应收款{{ money(collectionAccounting.summary.receivable_amount) }}

核算口径(参考)

{{ collectionAccounting.period_label }}。支出=总货款+已付运费(含转运)+其它;应收款=销售额-提现。该页面仅供经营管理参考,不作为正式财务凭证。

{{ collectionAccountingForm.id ? '编辑回款核算记录' : (collectionAccountingForm.record_type === 'withdrawal' ? '录入提现' : '录入其它支出') }}

金额按实际发生额填写

手工流水

其它支出与提现记录,共 {{ collectionAccounting.rows.length }} 条
销售数量{{ Number(batchProfitSummary.sales_quantity || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
销售额{{ money(batchProfitSummary.sales_amount) }}
FIFO成本{{ money(batchProfitSummary.cost_amount) }}
扣费/罚款后利润{{ money(batchProfitSummary.profit_after_promotion) }}
退货数量{{ Number(profitReturnSummary.return_quantity || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
退货金额{{ money(profitReturnSummary.return_amount) }}
冲回成本{{ money(profitReturnSummary.return_cost_amount) }}
退货损失{{ money(profitReturnSummary.return_profit_loss) }}

{{ batchProfitActiveTitle }}

{{ batchProfitRangeText }},扣费/罚款按筛选范围汇总扣减:{{ money(batchProfitSummary.promotion_amount) }} {{ batchProfitRangeText }},按退货日期统计并冲回原 FIFO 库存成本

销售明细

{{ orderDetailRangeText }}
{{ orderDetailRangeText }}
每页 {{ orderDetailCurrentPage }} / {{ orderDetailPageCount }}

手动录入销售数据

按销售日期、仓库和品类匹配 FIFO 库存;成本不含云仓费用和品类平台扣费
当前账号没有录入销售数据权限

手动销售记录

按销售日期倒序排列,仅显示手动录入的销售;价格为销售单价
{{ manualSaleError }},请点击“刷新记录”重试。
正在加载手动销售记录…
正在处理删除,请勿重复操作…
共 {{ manualSaleTotal }} 条
{{ manualSalePage }} / {{ Math.max(1, Math.ceil(manualSaleTotal / manualSalePageSize)) }}

{{ financialReportConfig.title }}

{{ activeFinancialReport.period_label || `${activeFinancialReportSearch.date_start} 至 ${activeFinancialReportSearch.date_end}` }},{{ financialReportConfig.metricLabel }} {{ financialReportMetricText(activeFinancialReport.total_value) }}

{{ financialReportConfig.trendTitle }}

日期区间内每日{{ financialReportConfig.metricLabel }}

{{ financialReportConfig.warehouseTitle }}

统计期间汇总

{{ financialReportConfig.categoryTitle }}

按{{ financialReportConfig.metricLabel }}排序前 10 名

{{ financialReportConfig.manufacturerTitle }}

{{ financialReportConfig.manufacturerHint }}

{{ financialReportConfig.heatmapTitle }}

二维交叉分析
{{ financialReportConfig.title }}加载中...

编辑销售明细

保存后会按完整销售时间线重新计算库存与 FIFO 利润
请选择需要编辑的销售明细

销售退货

共 {{ salesReturnTotal }} 条

登记销售退货

保存后按退货日期记负数凭证,并回补原 FIFO 库存批次
请先在销售明细中选择需要退货的记录

已到货批次

共 {{ purchaseDeliveryTotal }} 条,当前页 {{ filteredPurchaseDeliveries.length }} 条
{{ purchaseDeliveryRangeText }}
每页 {{ purchaseDeliveryCurrentPage }} / {{ purchaseDeliveryPageCount }}
无合同批次数{{ Number(purchaseDocumentSummary.no_contract_batch_count || 0).toLocaleString() }}
无合同金额{{ money(purchaseDocumentSummary.no_contract_amount) }}
在途未开票批次{{ Number(purchaseDocumentSummary.in_transit_uninvoiced_batch_count || 0).toLocaleString() }}
在途未开票金额{{ money(purchaseDocumentSummary.in_transit_uninvoiced_amount) }}
已到货未开票批次{{ Number(purchaseDocumentSummary.arrived_uninvoiced_batch_count || 0).toLocaleString() }}
已到货未开票金额{{ money(purchaseDocumentSummary.arrived_uninvoiced_amount) }}

批次明细

共 {{ purchaseDocumentDetailRows.length }} 个在途或已到货采购批次
供应商待办统计 按当前查询结果汇总未签合同和未开票批次
共 {{ purchaseDocumentSupplierPendingStats.length }} 个供应商待完善
供应商未签合同总数未开票批总数未开票总金额
正在统计供应商待办数据...
当前查询结果中没有未签合同或未开票批次
{{ row.supplier_name }} {{ Number(row.no_contract_count || 0).toLocaleString() }} {{ Number(row.uninvoiced_batch_count || 0).toLocaleString() }} {{ money(row.uninvoiced_amount) }}
合计 {{ Number(purchaseDocumentSupplierPendingTotal.no_contract_count || 0).toLocaleString() }} {{ Number(purchaseDocumentSupplierPendingTotal.uninvoiced_batch_count || 0).toLocaleString() }} {{ money(purchaseDocumentSupplierPendingTotal.uninvoiced_amount) }}
批次号批次状态采购日期到货日期仓库品类货款总额供应商付款单位合同状态合同登记发票状态发票登记合同等待开票等待
正在加载合同发票数据...
暂无符合查询条件的采购批次
{{ row.batch_no }} {{ row.batch_status_name }} {{ row.purchase_date }} {{ row.arrival_date || '-' }} {{ row.warehouse_name }} {{ row.category_name }} {{ money(row.goods_payment_total) }} {{ row.supplier_name || '未设置供应商' }} {{ row.payment_unit_name || '未设置付款单位' }} {{ Number(row.has_contract) === 1 ? '已有合同' : '无合同' }} {{ purchaseDocumentMarkerText(row, 'contract') }} {{ Number(row.has_invoice) === 1 ? '已开票' : '未开票' }} {{ purchaseDocumentMarkerText(row, 'invoice') }} {{ purchaseDocumentWaitText(row, 'contract') }} {{ purchaseDocumentWaitText(row, 'invoice') }}

编辑已到货批次

修改正式采购批次会同步刷新库存和利润核算
请选择需要编辑的采购送货记录

新增采购批次

保存后进入在途运输表,到货前不进入正式采购和库存
{{ purchaseDeliveryForm.delist_status_label }}:{{ purchaseDeliveryForm.delist_status === 'fully_delisted' ? '该仓库品类不会参与智能补仓,继续采购必须二次确认。' : '同品类存在已下架商品,请确认本次采购对象仍在售。' }} 原因:{{ purchaseDeliveryForm.delist_reason }}
当前账号没有新增权限
在途批次 共 {{ inTransitDeliveries.length }} 条

编辑在途运输记录

这里只维护在途信息;确认到货请回首页点击“确认到货”
请选择需要编辑的在途运输记录

运费结算

共 {{ freightTotal }} 条,当前页 {{ filteredFreightRecords.length }} 条
{{ freightRangeText }}
每页 {{ freightCurrentPage }} / {{ freightPageCount }}

{{ freightForm.id ? '编辑运费记录' : '新建运费记录' }}

维护运费、到货、破损赔付和结款信息
当前账号没有维护运费权限

四维库存模型

截至 {{ inventoryReport.snapshot_date || inventoryReportSearch.date_end }},库存数量 {{ Number(inventoryReport.total_stock || 0).toLocaleString() }}

库存趋势

日期区间内每日的期末库存

仓库库存

{{ inventoryReport.snapshot_date }} 快照

品类 TOP

库存数量前 10 名

厂家库存

库存占比

仓库 × 品类

二维库存交叉分析
库存报表加载中...

初始化仓库库存

建立指定日期的期初库存批次
当前账号没有初始化库存权限

当前库存

共 {{ inventoryTotal }} 条库存记录,当前页 {{ filteredInventoryRows.length }} 条,库存总值 {{ money(inventoryTotals.stock_cost) }}
{{ inventoryRangeText }}
每页 {{ inventoryCurrentPage }} / {{ inventoryPageCount }}

库存变动流水

不可变流水记录变动前后数量、来源单据、商户操作人、平台代管人和请求编号。
共 {{ inventoryLedgerPagination.total }} 条
{{ inventoryLedgerPagination.page }} / {{ inventoryLedgerPagination.pageCount }}

仓库统计排期

共 {{ warehouseInventoryStats.length }} 条汇总记录,库存合计 {{ Number(warehouseInventoryStatTotalStock || 0).toLocaleString() }}

库存划拨

按当前库存批次划拨到目标仓库
当前账号没有库存划拨权限

库存划拨记录

共 {{ inventoryTransferRecords.length }} 条划拨记录,当前显示 {{ filteredInventoryTransfers.length }} 条

编辑库存划拨记录

只允许调整划拨数量、划拨日期和备注,源仓与目标仓不可修改
当前账号没有编辑库存划拨记录权限

库损管理

共 {{ warehouseLossRows.length }} 条普通库损,当前显示 {{ filteredWarehouseLosses.length }} 条;盘点和云仓报损请在对应模块处理

编辑库损记录

仓库、品类、厂家和采购批次不可修改;保存后完整重算库存、FIFO成本和利润
当前账号没有编辑库损记录权限

报损管理

审核按现有库存 FIFO 扣减,批次成本含云仓费用,损失冲减报损当天利润
报损日期仓库仓库类别品类报损数量报损原因现场照片报损人手机号审核状态审核人审核时间驳回原因备注管理
正在加载报损记录...
暂无符合条件的报损记录
{{ row.loss_date }} {{ row.warehouse_name }} {{ row.warehouse_category || '-' }} {{ row.category_name }} {{ row.loss_qty }} {{ row.damage_reason || '-' }} - {{ row.reporter_name }}
{{ row.report_source_label }}
{{ row.reporter_phone || '-' }} {{ row.status_label }} {{ row.reviewer_name || '-' }} {{ row.reviewed_at || '-' }} {{ row.reject_reason || '-' }} {{ row.remark || '-' }} -

云仓人员管理

账号只能登录报损 APP,不能登录本管理平台
下载云仓报损APP
创建时间仓库用户名报损人姓名手机号设备绑定账号状态管理
暂无云仓人员,请先选择仓库并点击“新建用户”
{{ row.created_at }}{{ row.warehouse_name }}{{ row.username }}{{ row.reporter_name || '未填写' }}{{ row.phone || '未填写' }} {{ row.activation_status === 'activated' ? '已绑定' : '待绑定' }}
{{ row.device_bound_at }}
{{ Number(row.status) === 1 ? '启用' : '禁用' }}

品类管理

共 {{ productCategories.length }} 个品类,当前显示 {{ filteredProductCategories.length }} 个

{{ productCategoryForm.id ? '编辑品类' : '新建品类' }}

平台扣费按品类核算,修改费率后系统会重新计算销售利润
当前账号没有维护品类权限

{{ productMappingTab === 'external' ? '第三方商品与品类映射' : '每日排期商品映射' }}

共 {{ productMappings.length }} 条映射,当前显示 {{ filteredProductMappings.length }} 条 共 {{ dailyScheduleMappings.length }} 条排期映射,当前显示 {{ filteredDailyScheduleMappings.length }} 条;排期仓库组不会再作为外部仓库ID。

{{ productMappingForm.id ? '编辑第三方商品映射' : '新建第三方商品映射' }}

第三方商品归属到系统品类,第三方仓库归属到系统仓库
该商品已有长期下架记录,映射只能调整关联,不能删除。

生产厂家

手动维护生产厂家资料,共 {{ manufacturers.length }} 个厂家,当前显示 {{ filteredManufacturers.length }} 个

厂家看板需先设置访问密码;修改密码后,原有验证立即失效。

{{ manufacturerForm.id ? '编辑生产厂家' : '新建生产厂家' }}

生产厂家用于采购批次选择和厂家库存销售看板展示
当前账号没有维护生产厂家权限

供应商

手动维护合同发票供应商资料,共 {{ suppliers.length }} 个供应商,当前显示 {{ filteredSuppliers.length }} 个

{{ supplierForm.id ? '编辑供应商' : '新建供应商' }}

供应商只用于合同发票批次归属,不参与采购、库存和利润核算
当前账号没有维护供应商权限

付款单位

手动维护付款单位资料,共 {{ paymentUnits.length }} 个单位,当前显示 {{ filteredPaymentUnits.length }} 个

{{ paymentUnitForm.id ? '编辑付款单位' : '新建付款单位' }}

付款单位用于合同发票批次归属,不生成库存销售看板
当前账号没有维护付款单位权限

{{ manufacturerDashboardNoticeForm.id ? '编辑厂家大屏通知' : '新建厂家大屏通知' }}

用于发布仓库告急、优先发货、暂停发货和商品下架等运营提醒
当前账号只能查看厂家大屏通知。

通知记录

共 {{ manufacturerDashboardNotices.length }} 条

统一导入任务中心

每次导入都先登记任务,再记录预检、成功、跳过、失败和重复文件结果;超过 3000 行的销售文件自动进入后台队列,关闭页面不会中断。

时间/文件类型进度成功跳过失败状态结果操作
{{ row.filename || '未命名文件' }}{{ row.created_at }} {{ importTaskTypeLabel(row.import_type) }} {{ Number(row.progress_percent || 0) }}%{{ row.phase }} {{ Number(row.success_rows || 0) }}{{ Number(row.skipped_rows || 0) }}{{ Number(row.failed_rows || 0) }} {{ importTaskStatusLabel(row.status, row.phase) }} {{ row.error_summary || '—' }}请求号:{{ row.request_id }}
暂无导入任务
共 {{ importTaskPagination.total }} 条
{{ importTaskPagination.page }} / {{ importTaskPagination.pageCount }}

字段映射模板

将外部表头映射为系统要求的表头,模板按商户和导入类型隔离。

{{ item.template_name }}{{ importTaskTypeLabel(item.import_type) }} · {{ item.is_default == 1 ? '默认模板' : '普通模板' }}
{{ item.mapping_json }}
暂无字段映射模板

每日排期

查看所有有效商品的当日排期;单仓停止销售仍正常显示,只有同一商品的全部有效仓库都停止销售后才进入已下架记录。
排期商品{{ dailyProductScheduleSummary.total }}
已加入销售区域{{ dailyProductScheduleSummary.joined }}
审核中{{ dailyProductScheduleSummary.reviewing }}
已下架{{ dailyProductScheduleSummary.delisted }}
{{ dailyProductScheduleImportResult }}
正在加载每日排期…

推广佣金查询

根据商品ID匹配当前商户的仓库和品类,查询商家出资佣金比例;同一商品ID对应多个仓库时,表格需提供“配送仓库组”或“仓库”列
导入必填列:商品ID、商家出资佣金比例。比例支持 5、5% 等格式,范围为 0%~100%。导入前会整表预检,任何一行无法匹配都不会写入。
{{ promotionCommissionImportResult }}
正在加载推广佣金…

导入销售数据

系统先校验整份文件:第三方仓库和商品品类必须完成映射,并按仓库、品类汇总销量检查当前库存。全部通过后才会一次性写入并执行 FIFO;任一库存不足,整份文件导入失败且不写入数据。

导出全部销售明细

导出当前商户全部销售明细,按销售日期分工作表,每个工作表的列名和顺序均与销售数据导入格式一致。

待重新检测:{{ pendingSalesImport.filename }} 共 {{ pendingSalesImport.rows.length }} 条数据,尚未写入任何正式数据
{{ message }}

数据操作

普通采购 Excel 与整套系统迁移包相互独立。整套迁移仅限当前商户超级管理员操作。

采购历史数据导入导出

导出系统中的全部采购送货历史数据,不会修改现有采购、库存和利润数据。

导入采购历史数据

请选择本页面导出的采购送货表 Excel。系统按批次号去重,已存在的批次自动跳过,只导入缺失记录;写入前会先完成整表校验和自动备份。

{{ purchaseHistoryImportResult }}

整套系统一键迁移

用于旧版本整体迁入或生成标准迁移包。迁移包不是普通 Excel,只允许导入无业务数据的目标商户。

商户强制隔离空商户才允许导入SHA-256 完整性校验 主键与关联重建事务失败自动回滚导入前完整备份
{{ dataMigrationMessage }}
校验通过,尚未写入数据 {{ dataMigrationPreview.filename }}
可安全导入
来源系统
{{ dataMigrationPreview.source_system || '-' }} {{ dataMigrationPreview.source_version || '' }}
数据总量
{{ Number(dataMigrationPreview.total_rows || 0).toLocaleString() }} 条
附件数量
{{ Number(dataMigrationPreview.attachment_count || 0).toLocaleString() }} 个
导入策略
{{ dataMigrationPreview.policy }}
源系统有 {{ Number(dataMigrationPreview.missing_attachment_count).toLocaleString() }} 条云仓报损图片记录的原文件已丢失;这些无效图片记录不会迁入,报损主记录和其他业务数据不受影响。

迁移记录与回滚

只允许回滚最近一次成功迁移;导入后数据有变化时将自动禁止回滚。

时间文件来源数据量状态导入前备份操作
{{ row.completed_at || row.rolled_back_at || row.created_at || '-' }} {{ row.original_filename || '-' }} {{ row.source_system || '-' }} {{ row.source_version || '' }} {{ Number(row.total_rows || 0).toLocaleString() }} {{ dataMigrationStatusLabel(row.status) }} {{ row.safety_backup || '-' }} -
暂无迁移记录

套餐信息

当前商户购买的套餐、服务期限和使用额度
{{ subscriptionStatusLabel }} {{ subscriptionInfo.status.message || '暂无套餐状态' }}
商户名称
{{ subscriptionInfo.tenant.tenant_name || '-' }}
商户编号
{{ subscriptionInfo.tenant.tenant_code || '-' }}
套餐名称
{{ subscriptionInfo.plan.plan_name || '-' }}
套餐编号
{{ subscriptionInfo.plan.plan_code || '-' }}
套餐价格
{{ planMoney(subscriptionInfo.plan.price || 0) }}
服务天数
{{ subscriptionInfo.plan.duration_days || 0 }} 天
开通时间
{{ formatLicenseTime(subscriptionInfo.subscription.starts_at) }}
套餐到期
{{ formatLicenseTime(subscriptionInfo.subscription.expires_at) }}
宽限期至
{{ formatLicenseTime(subscriptionInfo.subscription.grace_until) }}
用户额度
{{ subscriptionInfo.usage.active_users || 0 }} / {{ subscriptionLimitText(subscriptionInfo.plan.max_users) }}
仓库额度
{{ subscriptionInfo.usage.active_warehouses || 0 }} / {{ subscriptionLimitText(subscriptionInfo.plan.max_warehouses) }}
已开通功能
{{ subscriptionFeaturesText }}
套餐订单
{{ subscriptionInfo.subscription.payment_order_no || '平台直接开通' }}
付款状态
{{ subscriptionInfo.subscription.payment_order_no ? (subscriptionInfo.subscription.payment_status_label || rechargeOrderStatusText(subscriptionInfo.subscription.payment_status)) : '无需付款' }}
付款金额
{{ subscriptionInfo.subscription.payment_order_no ? planMoney(subscriptionInfo.subscription.payment_amount || 0) : '-' }}
付款时间
{{ subscriptionInfo.subscription.paid_at ? formatLicenseTime(subscriptionInfo.subscription.paid_at) : (subscriptionInfo.subscription.payment_order_no ? '等待确认' : '无需付款') }}

套餐购买与续费

{{ subscriptionInfo.payment.collection_mode === 'manual_qr' ? '微信扫码付款后由平台总控核对到账并确认开通' : '微信扫码付款,成功通知验签后自动开通或续期' }}
暂未开通 {{ subscriptionInfo.payment.message || '总控中心尚未开通微信支付收款' }}
{{ selectedRechargePlan.plan_name }} 应付 {{ planMoney(selectedRechargePlan.price) }},{{ subscriptionInfo.payment.collection_mode === 'manual_qr' ? '平台确认到账后' : '支付成功后自动' }}开通或续期 {{ selectedRechargePlan.duration_days === 0 ? '永久套餐' : selectedRechargePlan.duration_days + ' 天' }}。
充值支付二维码

{{ rechargeOrder.plan_name || '套餐订单' }} · 扫码支付 {{ planMoney(rechargeOrder.amount || 0) }}

已有待付款订单,本次没有重复生成新订单。

订单号:{{ rechargeOrder.order_no }}

套餐:{{ rechargeOrder.plan_name }}({{ rechargeOrder.duration_days === 0 ? '永久' : rechargeOrder.duration_days + ' 天' }})

当前状态:{{ rechargeOrder.status_label || rechargeOrderStatusText(rechargeOrder.status) }}

{{ rechargeOrder.confirmation_mode === 'manual' ? '付款确认有效期' : '二维码有效期' }}至:{{ formatLicenseTime(rechargeOrder.payment_expires_at) }}

请先使用微信扫码并核对金额。确认微信已经付款后,再点击下面的“确认已付款”。

请使用微信扫码支付,无需填写备注;支付成功通知验签后,套餐会自动开通或续期。

{{ rechargeOrder.confirmation_mode === 'manual' ? '提交后二维码会自动收起,并生成一条“等待审批”的充值记录。' : '微信确认到账后二维码会自动收起。' }}

充值记录

商户确认付款后生成;平台确认收款后状态更新为“已完成”。
充值日期套餐金额状态操作
暂无充值记录
{{ formatLicenseTime(row.recharge_date) }} {{ row.plan_name || '历史套餐订单' }}{{ row.order_no }} {{ planMoney(row.amount || 0) }} {{ row.status_label }}

仓库盘点

共 {{ stocktakes.length }} 张;审核过账后盘点单不可修改

{{ stocktakeRecord ? stocktakeRecord.stocktake_no : '新建盘点单' }}

{{ stocktakeRecord.warehouse_name }} · {{ stocktakeRecord.stocktake_date }} · {{ stocktakeRecord.status_name }} 选择仓库后,系统会生成当前库存快照

角色权限

角色决定可执行操作,仓库范围绑定到具体用户

{{ roleForm.id ? '编辑角色' : '新建角色' }}

勾选该角色允许执行的操作

用户查询

共 {{ users.length }} 条,当前显示 {{ filteredUsers.length }} 条

{{ userForm.id ? '编辑用户' : '新建用户' }}

维护后台登录账号和角色权限

操作日志

记录系统登录和业务数据变更,仅超级管理员可以查看
符合条件 {{ Number(operationLogSummary.total || 0).toLocaleString() }} 成功 {{ Number(operationLogSummary.success_count || 0).toLocaleString() }} 失败 {{ Number(operationLogSummary.failed_count || 0).toLocaleString() }}
时间操作人模块操作目标结果来源 IP详情
{{ row.created_at }} {{ row.operator_name }}{{ row.operator_username }} {{ row.module_name }} {{ row.operation_label }}{{ row.operation }} {{ row.target_label }} {{ row.result_label }} {{ row.ip_address || '-' }}
{{ row.detail_summary || '查看详情' }}
{{ row.detail_pretty }}

浏览器:{{ row.user_agent }}

{{ operationLogLoading ? '正在加载...' : '暂无操作日志' }}
{{ operationLogRangeText }}
每页 {{ operationLogPage }} / {{ operationLogPageCount }}

重建历史 FIFO

仅超级管理员可以执行
按历史日期完整重跑 FIFO

不能只修改利润字段。重算会同步更新销售成本、利润、批次剩余数量和当前库存。

注意事项

补录批次的到货日期必须不晚于对应销售日期。系统自动执行“完整备份 → 历史 FIFO 重算 → 未匹配销售检查 → 库存与利润核对”。任何检查失败都会回滚重算数据,并保留重建前备份。

正在执行历史 FIFO 重建请勿关闭页面或重复提交,完成后会自动显示核对结果。

{{ fifoRebuildResult.ok ? '重建完成' : '重建失败,数据已回滚' }}

{{ fifoRebuildResult.message }}

{{ fifoRebuildResult.ok ? '校验通过' : '未通过' }}
完整备份
{{ fifoRebuildResult.backup_file || '-' }}
一致性检查
{{ fifoRebuildResult.ok ? (fifoRebuildResult.consistency_check_count + ' 项通过') : '已停止提交' }}
耗时
{{ fifoRebuildResult.elapsed_seconds !== undefined ? fifoRebuildResult.elapsed_seconds + ' 秒' : '-' }}
销售匹配
{{ (fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).matched_count || 0 }} / {{ (fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).sale_record_count || 0 }} 条
核对项目重建前重建后变化
销售成本{{ money((fifoRebuildResult.before || {}).cost_amount) }}{{ money((fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).cost_amount) }}{{ money((fifoRebuildResult.changes || {}).cost_amount) }}
销售利润{{ money((fifoRebuildResult.before || {}).profit_amount) }}{{ money((fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).profit_amount) }}{{ money((fifoRebuildResult.changes || {}).profit_amount) }}
当前库存数量{{ Number((fifoRebuildResult.before || {}).inventory_quantity || 0).toLocaleString() }}{{ Number((fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).inventory_quantity || 0).toLocaleString() }}{{ Number((fifoRebuildResult.changes || {}).inventory_quantity || 0).toLocaleString() }}
当前库存价值{{ money((fifoRebuildResult.before || {}).inventory_value) }}{{ money((fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).inventory_value) }}{{ money((fifoRebuildResult.changes || {}).inventory_value) }}
未匹配销售数量{{ Number((fifoRebuildResult.before || {}).unmatched_quantity || 0).toLocaleString() }}{{ Number((fifoRebuildResult.after || fifoRebuildResult.attempted_after || {}).unmatched_quantity || 0).toLocaleString() }}-
失败原因

{{ failure }}

销售日期仓库品类销售数量已匹配未匹配
{{ row.sale_date }}{{ row.warehouse_name }}{{ row.category_name }}{{ row.sales_quantity }}{{ row.matched_quantity }}{{ row.unmatched_quantity }}

数据备份