升级日志 v1.4.4
发布日期:2026-08-05 · 浦沱鑫进货联动管理系统(数据隔离与确认权收敛)
需求 1单据打印按公司隔离
- 公司账号(立立橙 / 浦沱鑫 / 四方 / 爱鲜生 / 耀杰)点「打印单据」,只列出与本公司相关的入库单 / 出库单,不再展示整条链路的全部单据。
- 过滤规则:仅保留
s.payer===ME || s.payee===ME 的环节。
- 只有管理员账号(含订单 / 财务等人员角色)可查看整条链路的全部单据。
- 公司账号若本单无相关单据,显示「暂无本公司相关单据」兜底提示。
- 该口径与链路视图保持一致:链路弹窗本就仅管理员可见。
需求 2收付款确认改为单向,并提供管理员开关
- 此前 a 公司出货台账与 b 公司进货台账双方都能点确认收款 / 标记开票,容易互相覆盖。
- 新增全局开关
DB.settings.singleSidePay,位置:设置页 → 收付款确认模式(联动开关),仅管理员可见可改。
- 开启(默认):仅收款方(出货方 / 卖方)可确认收款 / 标记开票;付款方(下游进货台账)只读展示状态,不可点击。
- 关闭:恢复 v1.4.3 的双向确认行为,买卖双方均可操作。
- 只读态仍完整展示状态与日期:
✓已付 2025-08-03 / 未付 / ✓已取得 / 未取得,联动展示不受影响。
- 管理员、财务角色不受开关限制;账号级权限覆盖(
permOp)优先级仍最高。
- 开关保存后立即对所有账号生效(写入共享 DB 并刷新当前页)。
| 角色 | 开关开启(默认) | 开关关闭 |
| 收款方(出货方 / 卖方) | 可确认收款 / 开票 | 可确认 |
| 付款方(进货方 / 买方) | 只读,不可点击 | 可确认 |
| 无关公司 | 不可见不可操作 | 不可操作 |
| 管理员 / 财务 | 不受限 | 不受限 |
需求 3进货台账「供货方」改为上游公司
- 原「供货方」列固定显示源头厂家(
l.supplier),导致下游公司能看到货源来自哪里。
- 现改为显示本公司的上游交易对手:取本公司作为付款方那一段的收款方(
myPay.payee),并以公司全称展示。
- 效果:四方看到「浦沱鑫」、爱鲜生看到「四方」、耀杰看到「爱鲜生」;立立橙之后的公司均无法得知源头厂家。
- 浦沱鑫作为链路首环节,供货方仍为立立橙(符合实际交易关系)。
- 管理员视角不受影响,仍可通过链路视图查看完整来源。
技术变更点
afterLoad():新增 DB.settings 初始化,singleSidePay 缺省置 true。
canPaySeg(s) / canInvSeg(s):开关开启时收敛为 ME===s.payee;两者逻辑对称。
saveSingleSide():设置页开关保存函数。
openDocList(lotId):新增 scoped = !scopeAll() 公司过滤。
ledgerBody():供货方列改为 companyFull(myPay?myPay.payee:l.supplier);付款 / 开票列在无权限时降级为只读状态标签。
测试与验证
node --check 主脚本语法校验 通过
test_v144.js 单元测试 29 / 29 通过(开关四象限、权限优先级、单据隔离、供货方口径、只读态回归)
- 线上 8 条路由可访问性与
/peisong/ 404 校验 通过
升级注意
- 本版本默认开启单向确认。上线后下游公司在进货台账将无法再点击付款 / 取得发票按钮,只能查看状态。如需恢复旧行为,管理员到设置页关闭开关即可,无需重新发版。
- 历史数据不受影响:
seg.paid / seg.invoiced 仍是买卖双方共享的唯一数据源,联动展示照常。
- 建议上线后通知各公司接口人:确认收款 / 开票统一由收款方操作。