|
|
355a21e94c
|
物料搜索:el-select 重构为 el-autocomplete Regression 修复(value-key 缺失 + parentNameInput 未声明 + onChildClear 不完整)
|
2026-06-05 11:02:35 +08:00 |
|
|
|
ff5418afa3
|
入库模块:物料搜索点击无感修复 + 类别校验白名单准入制
前端(buy/semi/product/service.vue,4 文件):
修复物料搜索"点击已聚焦 input 时内容被清空"交互 bug。
el-select 在 filterable+remote 模式下点击已聚焦的 input 时,el-select 内部
会 emit query='' 触发 remote-method,绕过 handleMaterialDropdownVisible
入口保护,直接清空 searchKeyword 和 materialOptions,导致用户被迫重写。
新增两层防御实现"编辑无感":
1) handleMaterialDropdownVisible 入口拦截:已选过物料(form.base_id 有值)
时下拉打开直接 return,不请求默认列表
2) handleSearchMaterial 内部拦截:拦截 el-select 内部 emit 的空 query,
仅在 form.base_id 有值 + safeQuery 为空 + 列表非空时 return
后端(buy/semi/product_service.py,3 文件):
入库类别校验从黑名单改为白名单准入制,彻底杜绝"成品进半成品库"
等非法组合(d94b52b 黑名单方案"成品不能进采购库"已挡不住这种组合)。
- buy_service.py: 黑名单(禁半成品/成品进采购)→ 白名单(必须含"原材料")
- semi_service.py: 统一错误信息格式为"只有【半成品】才允许半成品入库!"
- product_service.py: 统一错误信息格式为"只有【成品】才允许成品入库!"
- 三处空 category 统一显示为"未分类"
配合前端已修复的 catch 块(e.response.data.msg 精准提取),后端新错误
信息可原样弹窗给用户。
|
2026-06-04 17:57:17 +08:00 |
|
|
|
cdac915a4b
|
半成品/成品入库:物料/BOM 远程搜索粘贴失效 Bug 修复(三层防御)
- 深度净化 query:剔除零宽字符(U+200B-U+200D)/BOM(U+FEFF)/控制字符(U+0000-U+001F,U+007F-U+009F),应对外部复制粘贴混入隐形 Unicode 导致 ilike 匹配失败的场景
- 显式 reserve-keyword="true" / default-first-option="true":物料与 BOM 两个 <el-select> 全部显式标注,防止 Element 框架在选择后清空关键字(BOM 下拉框原缺失)
- handleMaterialDropdownVisible 竞态守卫:粘贴时 remote-method 与 @visible-change 同时触发,后者会 clearTimeout 前者的 debounce 定时器并加载默认列表覆盖结果。新增 !searchKeyword 守卫 + 主动 clearTimeout 互斥
|
2026-06-04 16:34:36 +08:00 |
|
|
|
8a2da1ac1e
|
半成品/成品入库:BOM 编号下拉按父件规格联动过滤(前后端双端改造)
- 后端 /inbound/{semi,product}/search-bom 增加 parent_spec 可选参数,Service 层在 MaterialBase.spec_model 上加等值过滤
|
2026-06-04 16:01:48 +08:00 |
|
|
|
d51c6f147f
|
前端:所有 <el-dialog> 统一添加 :close-on-click-modal="false" 防误触关闭(保留 Esc 关闭)
|
2026-06-04 15:16:16 +08:00 |
|
|
|
a3d47f6328
|
入库管理三页面类别搜索统一为级联选择器;基础信息“俗名”改名为“出厂名称”
|
2026-06-04 11:05:58 +08:00 |
|
|
|
034418df8a
|
V3.38版本修改,三种入库按照基础信息内容进行修改
|
2026-05-29 14:26:52 +08:00 |
|
|
|
895d78a5e7
|
版本变更V3.33添加支持更新后识图功能
|
2026-05-25 11:20:45 +08:00 |
|
|
|
567c3175f6
|
fix: 审计日志跳过向量字段,修复 numpy 数组比较异常;补全三大入库单更新向量提取,统一删除确认弹窗
|
2026-05-25 11:11:10 +08:00 |
|
|
|
ee893485bb
|
feat: 推广粘贴上传功能至所有图片上传页面(purchase/buy/product/semi)
|
2026-05-15 14:29:25 +08:00 |
|
|
|
97e7618bf3
|
feat(bom+inbound): BOM子件跳转规格修复 + 成品/半成品按钮迁移到标题行
|
2026-04-28 10:10:45 +08:00 |
|
|
|
ec71cb24f4
|
feat: 新增物料/成品/半成品页面一键直达BOM管理功能
|
2026-04-27 15:24:07 +08:00 |
|
|
|
6c0e13e52d
|
fix(frontend): reclassify global cross-company privilege as an operation to fix UI placement, and strictly enforce permission-driven table columns by bypassing localstorage
|
2026-04-17 09:36:23 +08:00 |
|
|
|
c72e6e198e
|
fix(inbound): remove redundant /api prefix in history location requests
|
2026-04-08 17:38:19 +08:00 |
|
|
|
4a4baa2f8f
|
fix: sort warehouse tree by name, fix tree batch delete cascade, and implement safe history location autofill
|
2026-04-08 17:32:00 +08:00 |
|
|
|
08c921fe66
|
feat: standardize default page size to 20, add pagination to pick list, and fix table horizontal scrollbar visibility
|
2026-03-23 14:38:08 +08:00 |
|
|
|
2242aca6fe
|
feat: implement user-specific column preferences and remove hardcoded defaults in inbound tables
|
2026-03-23 11:57:45 +08:00 |
|
|
|
f701ed7fc8
|
fix: disable clickable material name links for users without edit permissions across all inbound tables
|
2026-03-23 11:19:25 +08:00 |
|
|
|
2574da03e5
|
fix: remove duplicate permissionMap declaration and eliminate infinite polling interval in stocktake page
|
2026-03-23 11:03:55 +08:00 |
|
|
|
6dfc540dc1
|
fix: enforce field-level permission checks for semi-finished and finished goods tables
|
2026-03-23 10:58:28 +08:00 |
|
|
|
e6dafc7775
|
feat: add global toast message on form validation failure for inbound operations
|
2026-03-18 17:25:14 +08:00 |
|
|
|
878d11af28
|
fix: reset stock quantity color and enforce location validation for all inbound operations
|
2026-03-18 17:04:23 +08:00 |
|
|
|
3ba4e74a60
|
fix: support multiple copies printing natively in backend print service
|
2026-03-13 10:06:28 +08:00 |
|
|
|
9b290506da
|
feat: lock dialog and disable close actions during image upload to prevent orphan files and state errors
|
2026-03-13 09:23:35 +08:00 |
|
|
|
d8e86959b8
|
fix: 基础信息排序问题
|
2026-03-12 09:29:50 +08:00 |
|
|
|
25fbb293df
|
fix: 禁用高级筛选内下拉框的 teleport,解决选择选项后导致 Popover 意外关闭的问题
|
2026-03-11 15:09:49 +08:00 |
|
|
|
31d91bceb0
|
fix: 恢复搜索框原有的动态搜索功能,并与指定字段精确搜索前缀完美融合
|
2026-03-11 13:43:43 +08:00 |
|
|
|
b1cc280a71
|
feat: 重构全局搜索框为复合条件选择,支持按名称、俗名、规格进行精准查杂
|
2026-03-11 13:37:52 +08:00 |
|
|
|
6fc6851e57
|
perf: 开启列表图片懒加载并优化分页大小
|
2026-03-10 09:29:49 +08:00 |
|
|
|
43d16cd196
|
feat: 列表页搜索框增加即时搜索与防抖机制
|
2026-03-09 17:36:54 +08:00 |
|
|
|
5d813c24bc
|
feat: 采购/半成品/成品列表拆分SKU独立搜索框
|
2026-03-09 17:29:24 +08:00 |
|
|
|
646baa08fe
|
feat: 采购/半成品/成品列表支持基于SKU的模糊搜索
|
2026-03-09 17:21:00 +08:00 |
|
|
|
f9eb3e9646
|
feat: 封装下钻式库位选择器,并修复层级颜色识别问题
|
2026-03-06 15:11:30 +08:00 |
|
|
|
8aaf45468e
|
style: 优化库位树层级颜色,并升级入库页面的库位选择为树形选择器
|
2026-03-06 15:00:04 +08:00 |
|
|
|
7201b658fb
|
feat: 优化库位树UI层级颜色,并将入库页面库位输入升级为级联选择器
|
2026-03-06 14:52:47 +08:00 |
|
|
|
e39c3fd030
|
筛选高级权限修改,基础信息启用禁用修改
|
2026-03-03 17:29:21 +08:00 |
|
|
|
d095a370ad
|
feat: 统一半成品和成品入库页面的高级筛选权限管理
- 将semi.vue和product.vue的fieldOptions改为computed属性,根据用户权限动态过滤
- 确保筛选字段与后端支持的字段完全一致
- 完善permissionMap,添加缺失的字段权限映射
- 遵循buy.vue和material/list.vue的权限管理模式
|
2026-03-03 03:08:29 +00:00 |
|
|
|
09db84b0ce
|
fix: sync advanced filter field options with actual form fields
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 17:00:30 +08:00 |
|
|
|
06ec540c41
|
fix: correct advanced filter field options in semi.vue
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 16:54:47 +08:00 |
|
|
|
71e763bcb6
|
feat: calculate semi-inbound cost based on BOM code
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 16:47:49 +08:00 |
|
|
|
b377c93e1f
|
feat: support filtering for all table headers in semi-inbound
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 16:28:35 +08:00 |
|
|
|
465daca758
|
feat: Add sorting and advanced filters to inbound semi view
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 16:21:16 +08:00 |
|
|
|
37f4b1a94f
|
feat: add full-column sorting and advanced filtering to semi module
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 16:18:51 +08:00 |
|
|
|
f49f8dba04
|
修改半成品价格名称
|
2026-03-02 13:41:15 +08:00 |
|
|
|
b08196c479
|
refactor: replace manual_cost with unit_total_cost and total_price
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 11:39:49 +08:00 |
|
|
|
68ea351c99
|
refactor: replace manual_cost with unit_total_cost and total_price
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 11:35:55 +08:00 |
|
|
|
f001be9eef
|
feat: replace manual cost with unit total cost in inbound forms
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 10:28:43 +08:00 |
|
|
|
545cd86632
|
refactor: simplify cost calculation to 3 fields, drop manual_cost
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-03-02 10:24:51 +08:00 |
|
|
|
646804bb98
|
修改半成品的分为单价和总价格
|
2026-03-02 09:22:41 +08:00 |
|
|
|
e61c179d77
|
修改半成品和成品新增时候搜索下拉框显示问题,新增负责人和生产人历史记录功能
|
2026-02-28 17:27:57 +08:00 |
|