Commit Graph

26 Commits

Author SHA1 Message Date
文睿 张
bf7f7129dc feat: 审批页状态筛选补上「已取消」
下拉此前只有全部/待处理/已通过/已拒绝。既然已通过、已拒绝都列了,说明这页是想
看历史单子的,已取消的缺席就不一致。

后端无需改动:material_applications.status 是 ENUM('pending','approved',
'rejected','cancelled'),ListAll 直接 AND a.status = ?,没有白名单拦截。
StatusBadge 也已备好 cancelled 的灰色标签,筛选结果不会显示成裸英文。
2026-09-22 14:10:51 +08:00
文睿 张
4905e60f8c feat: 仓库与库位补上编辑与停用/启用入口
后端 PUT /warehouses/:id 与 PUT /warehouses/:warehouseId/locations/:locationId
本就接受 name + status(service/repository 都只改这两列),api 层的 update/updateLocation
也早已封装好,缺的只是前端入口——页面此前只有「新增」,无法改状态。

- 仓库标题栏与库位行各加「编辑」按钮,弹窗内改名称 + 启用/停用
- 标题栏按钮必须 @click.stop:el-collapse-item 整条 header 都挂着展开/收起监听
- 库位状态列从直接显示英文 inactive 改为中文 el-tag,与仓库及主数据页统一
- 编辑态编码只读且不参与必填校验(code 不可变,后端 Update 也不接收)
- 表单重置走已有的 replaceAllKeys,编辑只灌白名单字段,避免残留 id 让新增变成覆盖更新
- 库位所属仓库只存 id 不存对象,load() 整体替换列表后不会读到旧数据
- save() 显式吞掉错误:提示由 axios 响应拦截器统一负责,同时避免 @click 经
  el-button 透传到原生 button、绕过 Vue 异步错误包装而产生的 unhandled rejection
- 测试补 8 条:update/updateLocation 的参数与顺序、编辑态不误报编码、
  改完再新增仍走 create、状态列中文、编辑按钮不收起面板、失败不关窗
2026-09-21 17:49:49 +08:00
文睿 张
837cc5787b 前端问题优化 2026-09-21 16:53:44 +08:00
文睿 张
85d9683754 前端提示优化 2026-09-21 16:40:43 +08:00
文睿 张
f0722eed00 fix: 审批页申请人列去掉永远取不到的 row.applicant
后端返回里没有 applicant 键。model.ApplyOrder 确实有 Applicant 字段,但那是
另一张旧表的模型;审批页走的 MaterialApplication 只 SELECT u.username 并扫进
&app.Username(json tag 为 username)。列显示一直正常,全靠 || 后半段兜住,
左分支是死代码,去掉以免误导成还有第二个数据来源。

改为 row.username || '-'。
2026-09-21 16:19:22 +08:00
文睿 张
71d1829c29 fix: 库存列表分类筛选失效,后端补上 category 参数
前端 stores/stock.js 一直在发 category,但 handler 只读 search,service 与
repository 的方法签名里也没有这个参数,整条链路把它静默丢弃,于是选完分类
点「查询」没有任何反应。前端本来就传对了,无需改动。

repository 侧按大类 code 过滤(material_categories 里 parent_id 为空的那层,
即 SQL 里的 pc.code),与列表「大类类型」列同口径,前端下拉的 value 正是大类
code。注意 GetAllStock 的 COUNT 查询原本没有 JOIN 分类表,加 pc.code 前必须
补上与主查询一致的 LEFT JOIN,否则分页总数会和实际行数对不上、末尾多出空白
页;两张表都按主键关联,实测计数不变。小类码不会误命中(category=A01 返回 0)。

顺带修掉同一功能里的耦合缺陷:updateWarningStock 刷新列表时不传筛选参数,
筛选一旦生效,保存预警就会把列表刷回全量、而下拉框仍显示选中的分类。store
新增 stockFilters 记住当前条件,刷新时沿用。

stock_test.go 里 COUNT 的正则随 SQL 变形同步放宽,新增
TestStockRepoGetAllStockAppliesCategoryToBothQueries 覆盖两条 SQL 的成对条件
与参数顺序;前端补 4 条用例(store 沿用/清空筛选、组件查询与翻页传递分类)。
2026-09-21 16:19:18 +08:00
文睿 张
121d0c9e1f fix: 申请与审批页翻页失效,页码换算成后端认识的 limit/offset
后端 GetMyApplications / GetAllApplications 只读 limit/offset,前端原先发
page/pageSize,无法识别的参数被静默忽略并退回默认的 limit=20 offset=0,
于是翻页不报错但始终返回第一页。

转换点固定在 api/application.js,对外签名 (status, page, pageSize) 不变,
stores/application.js 与 stores/approval.js 两个调用点无需改动;同时对非法
页码兜底,避免算出负 offset。

application.test.js 覆盖换算结果与边界,其中「第 2 页不再是 offset=0」
是本次的回归点。
2026-09-21 16:00:35 +08:00
文睿 张
102c75079d refactor: 去掉 replaceAllKeys 无人使用的返回值
两处调用点都是裸语句、忽略返回值,函数保持原地修改语义,调用方行为不变。
连带删掉专门断言返回值的那个用例,其余测试不变。
2026-09-21 15:34:45 +08:00
文睿 张
f3124e96cc refactor: 抽出 replaceAllKeys 共享工具,消除两处重复的表单重置 2026-09-21 15:22:23 +08:00
文睿 张
7f19a37591 fix: 新增表单重置为干净状态,不再把上一次编辑的 id 带进请求体 2026-09-21 15:16:22 +08:00
文睿 张
cbcd54b70c fix: 伙伴列表的合作状态列显示中文,不再直接暴露英文枚举值 2026-09-21 14:56:32 +08:00
文睿 张
ea63cd9931 修改一致性问题 2026-09-21 14:13:30 +08:00
文睿 张
8a60e2cb00 前端报错提示优化 2026-09-20 17:17:28 +08:00
文睿 张
d463fbf71a 修改前端报错文案 2026-09-20 16:59:38 +08:00
文睿 张
a7c7936e0b feat: 实现物料编码按分类规则自动生成、手工修改及并发安全的流水号管理 2026-09-20 16:48:06 +08:00
文睿 张
936a8d3b61 完善库存流水 2026-09-20 14:29:41 +08:00
文睿 张
332ac1ff7a 完善出库和入库逻辑 2026-09-20 11:18:00 +08:00
文睿 张
d9da2ed672 库存,入库,出库相关问题修改 2026-09-20 10:31:28 +08:00
文睿 张
6fe9d0da40 物料分类重构、物料恢复、入库预警阈值与库存明细接口 2026-09-18 17:20:45 +08:00
文睿 张
6a443577b0 更新init.sql 2026-09-17 17:55:03 +08:00
文睿 张
bf48c5a60f chore: remove generated caches and temporary files 2026-09-17 15:17:23 +08:00
文睿 张
368c0bfb99 fix: improve material search selectors 2026-09-17 09:48:04 +08:00
文睿 张
bb195610fd fix role permission API requests 2026-09-17 00:06:27 +08:00
文睿 张
1cc3584f1a restore lost frontend and backend changes 2026-09-16 23:30:25 +08:00
文睿 张
a103549854 拆分主数据和仓库数据 2026-09-16 16:29:04 +08:00
文睿 张
31aae223c2 Initial commit 2026-09-15 16:08:18 +08:00