{{ title }}

{{ subtitle }}

{{ user.real_name || user.username }} · {{ user.role_name || roleLabel(user.role_code || user.role) }}

{{ moduleGuide.title }}

{{ moduleGuide.text }}

{{ moduleGuide.formula }}

{{ step }}
昨日销售总额{{ money(dashboard.cards.yesterdaySales) }}
当月销售总额{{ money(dashboard.cards.monthSales) }}
当年销售总额{{ money(dashboard.cards.yearSales) }}
全部销售总额{{ money(dashboard.cards.totalSales) }}
昨日利润总额{{ money(dashboard.cards.yesterdayProfit) }}
当月利润总额{{ money(dashboard.cards.monthProfit) }}
当年利润总额{{ money(dashboard.cards.yearProfit) }}
全部利润总额{{ money(dashboard.cards.totalProfit) }}
昨日销量{{ 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 }) }}
总销量{{ Number(dashboard.cards.totalSalesQty || 0).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}
采购送货运输状态每页 20 条
批次号 采购日期 仓库名 品类 车牌号 司机电话 数量 审核状态 审核人 货款 运输状态 运费付款 管理
{{ row.batch_no }} {{ 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 }} {{ row.freight_payment }} -
暂无运输数据
{{ dashboardTransportRangeText }}
{{ dashboardTransportCurrentPage }} / {{ dashboardTransportPageCount }}
仓库库存品类 / 所属仓库 / 库存数量
品类 所属仓库 库存数量
{{ row.category_name || '未分类' }} {{ row.display_warehouse_name || row.name }} {{ Number(row.stock_qty || 0).toLocaleString() }}
暂无库存数据
仓库口径 仓库是实际库存地点;外部仓库ID和明细核算仓库通过下方平台映射归入实际仓库。

平台仓库映射

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

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

维护采购、库存、划拨和 FIFO 使用的实际仓库
当前账号没有维护仓库权限

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

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

其他收入

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

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

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

收入明细

共 {{ otherIncomes.length }} 条,当前页金额 {{ money(otherIncomeSummary.amount) }}

促销和罚款

按仓库和品类筛选,促销和罚款同步扣减对应品类利润

促销

记录各仓明细产生的促销,共 {{ promotionRows.length }} 条

罚款

记录各仓明细产生的罚款,共 {{ fineRows.length }} 条

商户名称

用于数据大屏标题,例如:{{ merchantScreenTitle }}
当前账号没有维护商户名称权限
总销售额{{ 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) }}

仓库利润明细

按仓库和品类独立计算,共 {{ profit.warehouses.length }} 条明细
目前销售总额{{ 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.occupied_cash_amount) }}
库存总值(当前){{ money(collectionAccounting.summary.inventory_value) }}
实际占用{{ money(collectionAccounting.summary.actual_occupied_amount) }}
应收款{{ 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) }}

销售利润明细

{{ batchProfitActiveTitle }}:{{ batchProfitRangeText }},促销/罚款按筛选范围汇总扣减:{{ money(batchProfitSummary.promotion_amount) }}
{{ batchProfitRangeText }}
每页 {{ batchProfitCurrentPage }} / {{ batchProfitPageCount }}

销售明细

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

手动录入销售数据

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

{{ financialReportConfig.title }}

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

{{ financialReportConfig.trendTitle }}

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

{{ financialReportConfig.warehouseTitle }}

统计期间汇总

{{ financialReportConfig.categoryTitle }}

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

{{ financialReportConfig.manufacturerTitle }}

{{ financialReportConfig.isProfit ? '正数盈利,负数亏损' : '销售额占比' }}

{{ financialReportConfig.heatmapTitle }}

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

编辑销售明细

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

销售退货

共 {{ salesReturns.length }} 条

登记销售退货

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

已到货批次

共 {{ purchaseDeliveries.length }} 条,当前显示 {{ 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') }}

编辑已到货批次

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

新增采购批次

保存后进入在途运输表,到货前不进入正式采购和库存
当前账号没有新增权限
在途批次 共 {{ inTransitDeliveries.length }} 条

编辑在途运输记录

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

运费结算

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

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

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

四维库存模型

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

库存趋势

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

仓库库存

{{ inventoryReport.snapshot_date }} 快照

品类 TOP

库存数量前 10 名

厂家库存

库存占比

仓库 × 品类

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

初始化仓库库存

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

当前库存

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

仓库统计排期

共 {{ 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,不能登录本管理平台
打开APK下载页
创建时间仓库用户名报损人姓名手机号设备绑定账号状态管理
暂无云仓人员,请先选择仓库并点击“新建用户”
{{ 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 ? '编辑品类' : '新建品类' }}

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

第三方商品与品类映射

共 {{ productMappings.length }} 条映射,当前显示 {{ filteredProductMappings.length }} 条

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

第三方商品归属到系统品类,第三方仓库归属到系统仓库

生产厂家

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

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

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

供应商

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

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

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

付款单位

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

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

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

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

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

通知记录

共 {{ manufacturerDashboardNotices.length }} 条

导入销售数据

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

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

采购历史数据导出

可导出采购送货历史 Excel;超级管理员还可以生成供新系统一键导入的整套业务数据 ZIP,导出过程不会修改采购、库存和利润数据。

整套业务数据迁移包 包含合同规定的 40 张业务表和云仓报损附件,不包含账号密码、授权、支付、AI 密钥或服务器配置。

整套迁移包仅限超级管理员导出。

授权信息

当前安装实例的授权状态
{{ licenseStatusLabel }} {{ licenseInfo.status.message || '暂无授权状态' }}
授权编号
{{ licenseInfo.license.license_id || '-' }}
产品编号
{{ licenseInfo.product_code || '-' }}
签名密钥
{{ licenseInfo.key_id || '-' }}
系统版本
{{ licenseInfo.app_version || '-' }}
绑定域名
{{ licenseDomainsText }}
安装实例ID
{{ licenseInfo.installation_id || '-' }}
签名公钥
{{ licenseInfo.public_key_installed ? '已安装' : '未安装' }}
最近检查
{{ formatLicenseTime(licenseInfo.license.checked_at) }}
下次检查
{{ formatLicenseTime(licenseInfo.license.next_check_at) }}
宽限截止
{{ formatLicenseTime(licenseInfo.license.grace_until) }}
授权到期
{{ formatLicenseTime(licenseInfo.license.license_expires_at) }}
安装令牌
{{ licenseInfo.has_installation_token ? '已保存' : '未生成' }}
授权功能
{{ licenseFeaturesText }}

输入授权码

首次激活后自动生成本机授权文件
授权验证尚未启用,请先完成授权服务器、绑定域名和公钥配置。

仓库盘点

共 {{ 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 }}

数据备份