| 编码 | 品名 | 规格 | 单位 | 单价(¥) | 数量 | 金额(¥) | 件数 | 备注 | 调货码 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 库存: {{ (getProductStock(row.code).totalMeters || 0).toFixed(1) }}米 ({{ (getProductStock(row.code).pieces || []).length }}件) | {{ row.name || '—' }} | {{ row.spec || '—' }} | { let v = parseFloat(e.target.value); row.price = isNaN(v) ? 0 : v; calcRowAmount(row); }" style="text-align:center;width:80px;"> | {{ row.amount.toFixed(2) }} | {{ row.pieces || 0 }} | {{ row.transferCode || '—' }} |
| 采购单号 | 日期 | 供应商 | 产品 | 采购米数 | 件数明细 | 操作 |
|---|---|---|---|---|---|---|
| {{ p.id }} | {{ p.date }} | {{ getSupplierName(p.supplierId) }} | {{ p.productCode }} | {{ p.quantity }}米 | {{ p.pieceDetails }} |
| 编码 | 品名 | 规格 | 总库存(米) | 整件(30米) | 尾数件明细 | 米单价 | 码单价 | 生产商 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ prod.code }} | {{ prod.name }} | {{ prod.spec }} | {{ (prod.totalMeters || 0).toFixed(1) }} | {{ (prod.pieces || []).filter(p => Math.abs(p.length - 30) < 0.01).length }} 件 | {{ p.length.toFixed(1) }}米 — | ¥{{ (prod.priceMeter||0).toFixed(2) }} | ¥{{ (prod.priceYard||0).toFixed(2) }} | {{ getSupplierName(prod.supplierId) }} | |
| 暂无产品 | |||||||||
| 名称 | 联系人 | 电话 | 地址 | 操作 |
|---|---|---|---|---|
| {{ s.name }} | {{ s.contact }} | {{ s.phone }} | {{ s.address }} | |
| 暂无供应商 | ||||
| 客户名称 | 联系人 | 电话 | 地址 | 操作 |
|---|---|---|---|---|
| {{ c.name }} | {{ c.contact }} | {{ c.phone }} | {{ c.address }} | |
| 暂无客户 | ||||
| 日期 | 供应商 | 产品 | 采购米数 | 实收米数 | 件数明细 | 总成本 | 付款 | 入库 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.date }} | {{ getSupplierName(p.supplierId) }} | {{ p.productCode }} | {{ p.quantity }}米 | {{ p.actualQuantity ? p.actualQuantity+'米' : '-' }} | {{ p.pieceDetails || '—' }} | ¥{{ (p.totalCost||0).toFixed(2) }} | {{ p.payableCleared?'已付':'待付' }} | {{ p.stocked?'已入库':'未入库' }} | 请到财务管理付款 |
| 暂无采购记录 | |||||||||
| 账户 | 期初余额 | 本月收入 | 本月支出 | 期末余额 |
|---|---|---|---|---|
| {{ item.account }} | ¥{{ item.startBalance.toFixed(2) }} | ¥{{ item.income.toFixed(2) }} | ¥{{ item.expense.toFixed(2) }} | ¥{{ item.endBalance.toFixed(2) }} |
| 暂无数据 | ||||
| 日期 | 账户 | 类型 | 金额 | 关联单号 | 说明 | 操作 |
|---|---|---|---|---|---|---|
| {{ f.date }} | {{ f.account }} | {{ f.type=='income'?'收入':'支出' }} | ¥{{ f.amount.toFixed(2) }} | {{ f.relatedId || '-' }} | {{ f.description || '-' }} | |
| 暂无流水记录 | ||||||
| 客户 | 销售单号 | 应收总额 | 已收金额 | 余额 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{ r.customer }} | {{ r.saleId }} | ¥{{ r.amount.toFixed(2) }} | ¥{{ (r.totalReceived||0).toFixed(2) }} | ¥{{ (r.amount - (r.totalReceived||0)).toFixed(2) }} | {{ r.status=='cleared'?'已结清':r.status=='partial'?'部分收':'未结清' }} | |
| 暂无应收记录 | ||||||
| 供应商 | 采购单号 | 金额 | 已付 | 余额 | 付款账户 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ p.supplier }} | {{ p.purchaseId }} | ¥{{ p.amount.toFixed(2) }} | ¥{{ p.paidAmount.toFixed(2) }} | ¥{{ (p.amount - p.paidAmount).toFixed(2) }} | {{ p.cleared?'已结清':'未结清' }} | ||
| 暂无应付记录 | |||||||
| 销售单号 | 日期 | 客户 | 产品 | 数量 | 收入 | 成本 | 毛利 | 毛利率 |
|---|---|---|---|---|---|---|---|---|
| {{ item.saleId }} | {{ item.date }} | {{ item.customer }} | {{ item.product }} | {{ item.qty }} | ¥{{ item.revenue.toFixed(2) }} | ¥{{ item.cost.toFixed(2) }} | ¥{{ item.grossProfit.toFixed(2) }} | {{ item.grossMargin }}% |
| 暂无销售数据 | ||||||||
| 日期 | 费用名称 | 类别 | 金额 | 支付方式 | 报销人 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ e.date }} | {{ e.name }} | {{ e.category }} | ¥{{ e.amount.toFixed(2) }} | {{ e.paymentMethod }} | {{ e.user || '—' }} | {{ e.status=='approved'?'已报销':e.status=='rejected'?'已驳回':'待审核' }} | |
| 暂无费用记录 | |||||||
| 月份 | 销售收入 (¥) | 销售成本 (¥) | 费用 (¥) | 毛利 (¥) | 净利润 (¥) |
|---|---|---|---|---|---|
| {{ m.month }}月 | {{ m.revenue.toFixed(2) }} | {{ m.cost.toFixed(2) }} | {{ m.expense.toFixed(2) }} | {{ m.grossProfit.toFixed(2) }} | {{ m.netProfit.toFixed(2) }} |
| 暂无数据 | |||||
| 季度 | 销售收入 (¥) | 销售成本 (¥) | 费用 (¥) | 毛利 (¥) | 净利润 (¥) |
|---|---|---|---|---|---|
| {{ q.quarter }} | {{ q.revenue.toFixed(2) }} | {{ q.cost.toFixed(2) }} | {{ q.expense.toFixed(2) }} | {{ q.grossProfit.toFixed(2) }} | {{ q.netProfit.toFixed(2) }} |
| 暂无数据 | |||||
| 类别 | 金额 (¥) |
|---|---|
| 销售收入 | {{ annualReport.revenue.toFixed(2) }} |
| 销售成本 | {{ annualReport.cost.toFixed(2) }} |
| 费用合计 | {{ annualReport.expense.toFixed(2) }} |
| 毛利 | {{ annualReport.grossProfit.toFixed(2) }} |
| 净利润 | {{ annualReport.netProfit.toFixed(2) }} |
客户:{{ currentReceivable?.customer }}
应收总额:¥{{ currentReceivable?.amount?.toFixed(2) }}
已收金额:¥{{ (currentReceivable?.totalReceived||0).toFixed(2) }}
剩余应收:¥{{ (currentReceivable?.amount - (currentReceivable?.totalReceived||0)).toFixed(2) }}
客户:{{ historyReceivable?.customer }}
应收总额:¥{{ historyReceivable?.amount?.toFixed(2) }}
已收合计:¥{{ (historyReceivable?.totalReceived||0).toFixed(2) }}
| 日期 | 收款方式 | 金额 | 备注 |
|---|---|---|---|
| {{ r.date }} | {{ r.account }} | ¥{{ r.amount.toFixed(2) }} | {{ r.remark || '-' }} |
| 暂无收款记录 | |||
供应商:{{ getSupplierName(currentReceivingPurchase.supplierId) }}
产品编码:{{ currentReceivingPurchase.productCode }}
采购单号:{{ currentReceivingPurchase.id }}
采购数量:{{ currentReceivingPurchase.quantity }}米 ({{ currentReceivingPurchase.pieceDetails }})
| 日期 | 费用名称 | 类别 | 金额 | 支付方式 | 报销人 | 状态 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ e.date }} | {{ e.name }} | {{ e.category }} | ¥{{ e.amount.toFixed(2) }} | {{ e.paymentMethod }} | {{ e.user || '—' }} | {{ e.status=='approved'?'已报销':e.status=='rejected'?'已驳回':'待审核' }} | {{ e.remark || '-' }} | |
| 暂无报销记录 | ||||||||
| 名称 | 联系人 | 电话 | 地址 | |
|---|---|---|---|---|
| {{ c.name }} | {{ c.contact }} | {{ c.phone }} | {{ c.address }} | |
| 暂无匹配客户 | ||||
| 单号 | 日期 | 客户 | 总金额(¥) | 状态 | 打印次数 | 操作 |
|---|---|---|---|---|---|---|
| {{ ord.saleId }} | {{ ord.date }} | {{ ord.customer }} | {{ ord.totalAmount.toFixed(2) }} | {{ ord.cleared?'已结清':'未结清' }} | 🖨️ {{ getPrintCount(ord.saleId) }} 次 | |
| 暂无销售单据 | ||||||
客户:{{ currentDetailSale?.customer }} 日期:{{ currentDetailSale?.date }} 总金额:¥{{ currentDetailSale?.totalAmount?.toFixed(2) }} 结款方式:{{ currentDetailSale?.paymentMethod }}
订单号:{{ currentDetailSale?.poNumber || '-' }} 送货地址:{{ currentDetailSale?.address || '-' }}
| 编码 | 品名 | 规格 | 单位 | 单价 | 数量 | 金额 | 件数 | 备注 |
|---|---|---|---|---|---|---|---|---|
| {{ item.code }} | {{ item.name }} | {{ item.spec }} | {{ item.unit || '米' }} | {{ item.price.toFixed(2) }} | {{ item.quantity }} | {{ item.amount.toFixed(2) }} | {{ item.pieces }} | {{ item.remark || '-' }} |
| 预警项目 | 详情 |
|---|---|
| {{ alert.type }} | {{ alert.message }} |
| ✅ 当前无预警 | |
| 编码 | 品名 | 规格 | 总销量(米) | 总销售额 | 毛利 | 毛利率 | 库存天数 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ sp.code }} | {{ sp.name }} | {{ sp.spec }} | {{ sp.totalQty }} | ¥{{ sp.totalSales.toFixed(2) }} | ¥{{ sp.totalProfit.toFixed(2) }} | {{ sp.marginRate }}% | {{ sp.stockDays }} | |
| 暂无数据 | ||||||||
| 客户 | 最近购买 | 购买次数 | 总消费 | 客单价 | 贡献毛利 | 流失风险 |
|---|---|---|---|---|---|---|
| {{ c.name }} | {{ c.lastBuy }} | {{ c.freq }} | ¥{{ c.totalSpent.toFixed(2) }} | ¥{{ c.avgOrder.toFixed(2) }} | ¥{{ c.totalProfit.toFixed(2) }} | ⚠️ 流失预警正常 |
| 暂无客户数据 | ||||||
| 排名 | 编码 | 品名 | 销售额 | 销量 |
|---|---|---|---|---|
| {{ idx+1 }} | {{ item.code }} | {{ item.name }} | ¥{{ item.totalSales.toFixed(2) }} | {{ item.totalQty }} |
| 暂无数据 | ||||
| 编码 | 品名 | 库存(米) | 最后销售日 | 呆滞天数 |
|---|---|---|---|---|
| {{ item.code }} | {{ item.name }} | {{ item.stock }} | {{ item.lastSaleDate || '从未销售' }} | {{ item.stagnantDays }} |
| 🎉 无滞销产品 | ||||
| 产品编码 | 品名 | 期初库存 | 期末库存 | 出库量 | 周转次数 | 周转天数 |
|---|---|---|---|---|---|---|
| {{ t.code }} | {{ t.name }} | {{ t.startStock }} | {{ t.endStock }} | {{ t.outQty }} | {{ t.times }} | {{ t.days }} |
| 暂无数据 | ||||||
* 基于近30天销售数据与当前库存计算
| 销售单号 | 日期 | 客户 | 产品 | 收入 | 成本 | 毛利 | 毛利率 |
|---|---|---|---|---|---|---|---|
| {{ item.saleId }} | {{ item.date }} | {{ item.customer }} | {{ item.product }} | ¥{{ item.revenue.toFixed(2) }} | ¥{{ item.cost.toFixed(2) }} | ¥{{ item.profit.toFixed(2) }} | {{ item.margin }}% |
| 暂无数据 | |||||||
| 用户名 | 角色 | 操作 |
|---|---|---|
| {{ u.username }} | {{ u.role=='admin'?'管理员':'员工' }} |
| 单号 | 日期 | 客户 | 总金额(¥) | 打印次数 | 操作 |
|---|---|---|---|---|---|
| {{ ord.saleId }} | {{ ord.date }} | {{ ord.customer }} | {{ ord.totalAmount.toFixed(2) }} | 🖨️ {{ getPrintCount(ord.saleId) }} 次 | |
| 暂无匹配的历史单据 | |||||