Commit Graph

  • 4b62c81baa feat(purchase): 采购申请批量审批(解决循环提交需多次审批) yueli 2026-08-31 13:41:25 +08:00
  • b68dfbf23d feat(purchase): 商家链接改为每行独立 yueli 2026-08-31 13:35:34 +08:00
  • efb88c8f9c fix(purchase): 税率列加宽以完整显示两位数字+% yueli 2026-08-31 13:33:58 +08:00
  • 3a9ec81c51 fix(purchase): 照片删除加确认 + 修复同步照片跨行删除导致图片缺失 yueli 2026-08-31 13:31:08 +08:00
  • 25bb35e265 feat(purchase): 表格列宽优化 + 迷你上传框 + 照片同步所有 yueli 2026-08-31 13:24:17 +08:00
  • f18e61a71a fix(purchase): 修复 Copy 图标不存在导致的模块加载错误 yueli 2026-08-31 13:18:44 +08:00
  • 9e393ff998 feat(purchase): 弹窗加大 + 移除公共图片 + 每行照片必填 yueli 2026-08-31 13:16:52 +08:00
  • 8d90b3c774 feat(purchase): 采购申请弹窗加大 + 每行独立备注/照片 + 备注一键同步 yueli 2026-08-31 13:10:59 +08:00
  • 021c92ee8a feat(purchase): 采购申请改为动态明细表,支持一行多物料批量提交 yueli 2026-08-31 13:05:29 +08:00
  • 5abc504619 feat(outbound): 审批列表页增加完结按钮 + 优化缺货提示文案 yueli 2026-08-31 10:46:33 +08:00
  • bf104535e5 V3.69,8.31推送 yueli 2026-08-31 10:30:03 +08:00
  • 3a07f1a272 fix(bom): BOM 详情查询改为 LEFT JOIN,子件物料被删后仍返回父件结构 yueli 2026-08-31 10:28:22 +08:00
  • 36e9f500aa feat(borrow): 借库未归还直接报废功能(关联报废单流程) yueli 2026-08-31 10:21:28 +08:00
  • 39f3f8af45 feat(outbound): 审批单手动完结/作废功能 yueli 2026-08-31 10:15:33 +08:00
  • b6ec45a8b8 feat(outbound): 出库流程强化(缺料防漏 + 完全移除直接出库) yueli 2026-08-31 09:37:14 +08:00
  • a4bd6f54d4 feat(outbound): BOM 出库增加清单打印与缺货持久化提醒 yueli 2026-08-31 09:26:53 +08:00
  • fe52da77e9 feat(deploy): 部署脚本优化 yueli 2026-08-31 09:21:00 +08:00
  • 0c3e57f5b5 fix(nginx): 生产 nginx 代理指向容器名 inventory_api_prod 避免 DNS 冲突 yueli 2026-08-28 16:46:02 +08:00
  • 2ff0f92f94 fix(stocktake): 修复盘点报告导出 500 错误 yueli 2026-08-28 15:53:03 +08:00
  • 57a6ab38d1 fix(outbound): 修复选单列表移除按钮排序后索引错位导致删错行 yueli 2026-08-13 17:17:54 +08:00
  • 7e4524ae42 fix(warning): 预警字段被 field_permissions Default Deny 规则错误过滤 yueli 2026-08-11 13:28:47 +08:00
  • 9c0414b802 fix(outbound): 出库备注改为必填,按单出库自动填充申请原因 yueli 2026-08-07 15:58:59 +08:00
  • 7b5846b489 V3.68,8.3推送 yueli 2026-08-03 15:53:52 +08:00
  • d0776f1036 feat(import): 前端导入策略选择器 + 部分导入支持 yueli 2026-08-03 15:53:24 +08:00
  • 22c7d352d6 refactor(import): API 层支持导入策略参数 yueli 2026-08-03 15:53:15 +08:00
  • 95057dedf5 refactor(import): 导入服务核心逻辑改造 yueli 2026-08-03 15:53:10 +08:00
  • bc9cc18142 V3.67,8.3推送 yueli 2026-08-03 13:26:08 +08:00
  • 6c7f8dbe61 fix: 修复搜索跳转弹窗无法打开的问题 yueli 2026-08-03 13:25:54 +08:00
  • b84fffbd37 V3.66,8.3推送 yueli 2026-08-03 09:47:10 +08:00
  • 65aba4b313 fix: token 刷新时缺少 company_name 导致多租户过滤返回空数据 yueli 2026-08-03 09:22:50 +08:00
  • 60c6f634ce V3.65,8.3推送 yueli 2026-08-03 09:15:45 +08:00
  • d68ba1e987 fix: 页面刷新时主动续期 access_token,避免过期 token 触发 401 竞态导致权限空白 yueli 2026-07-23 09:48:33 +08:00
  • 5cb1f3b24b V3.64 yueli 2026-07-21 10:21:27 +08:00
  • 9ceb6ddc1d debug: 诊断出库审批/借库审批的 operationCode 是否被正确识别 yueli 2026-07-21 10:19:21 +08:00
  • d7d7d65a4f fix: inbound_summary 页面 v-if 从不存在权限码 inbound_summary:view 改为菜单权限 inbound_summary yueli 2026-07-21 10:11:13 +08:00
  • 01122a58f3 debug: inbound_summary 加日志确认 list.value 数据加载状态 yueli 2026-07-21 10:06:55 +08:00
  • 63c36d1466 fix: 借库记录签名改回 null(始终可见),暂等 sys_element 补齐权限码 yueli 2026-07-21 09:59:14 +08:00
  • ca21294580 fix: transactions filter_item_by_permissions 只保留签名过滤,基础字段不再剥离 yueli 2026-07-21 09:56:34 +08:00
  • 30f336779e fix: outbound filter_item_by_permissions 只过滤敏感金额字段,基础明细字段不再剥离 yueli 2026-07-21 09:53:47 +08:00
  • a8a0290cd8 fix: outbound total_amount 改为需权限 outbound_list:total_amount,库管无此权限则隐藏总金额 yueli 2026-07-21 09:49:46 +08:00
  • 4ab7b6f541 fix: borrow/return/records permissionMap 基础列改为 null 始终可见,对齐 inbound 模式,移除 records alwaysVisible 硬编码 yueli 2026-07-21 09:40:58 +08:00
  • 35690c5b8f fix: 出库列表 permissionMap 基础列改为 null(始终可见),对齐 inbound 模式;单价/小计保留权限控制 yueli 2026-07-21 09:39:16 +08:00
  • 451d7b5719 V3.63 yueli 2026-07-20 14:33:26 +08:00
  • d80edc961c fix: 三个模块 update endpoint 统一 Default Deny + 权限码全量对齐 sys_element yueli 2026-07-20 14:26:22 +08:00
  • 3dca2b9254 fix: buy.py update field_to_perm 库位权限码 inbound_buy:warehouse_location → inbound_buy:warehouse_loc,对齐 sys_element yueli 2026-07-20 14:21:22 +08:00
  • f6c1dedd22 V3.62,库管权限修改内容 yueli 2026-07-17 17:06:27 +08:00
  • 097fbb319f fix: validateUnique 编辑模式下值未变时跳过重复校验,仅值改变时才检查冲突 yueli 2026-07-17 17:04:10 +08:00
  • 1f43de4ccc debug: buy.vue validateUnique 加详细日志——打印 form.id/row.id/value 比对过程 yueli 2026-07-17 17:02:25 +08:00
  • 9bcd02c742 fix: update_buy perm_code=None 导致 NoneType 崩溃 + validateUnique 编辑时排除自身改用 Number() 防类型不一致 yueli 2026-07-17 16:57:46 +08:00
  • a8fb0cfc94 debug: validateUnique 加详细日志追踪编辑时误报重复编号问题 yueli 2026-07-17 16:53:57 +08:00
  • 76c7e3d3dc V3.61,出库审批的可编辑即可操作 yueli 2026-07-17 16:31:33 +08:00
  • 29de22b575 fix: crossDomain 重复收集 — 真实树中的 system_mgmt/crossDomain 与虚拟 global_privileges 冲突,从真实树中移除 crossDomain 避免双重收集 yueli 2026-07-17 16:22:59 +08:00
  • 0e6294890c debug: crossDomain 收集逻辑加精确断点日志 yueli 2026-07-17 16:20:22 +08:00
  • c45e7b5a52 debug: assign_permissions 加详细日志追踪 crossDomain 删除/插入/提交后状态 yueli 2026-07-17 16:18:05 +08:00
  • 0074d96163 fix: 权限配置页 GET 请求加 _t 防浏览器缓存 + 保存后自动刷新 UI yueli 2026-07-17 16:13:12 +08:00
  • 96eb56766e fix: 回退权限保存后的 auto-refresh,改为手动刷新提示 yueli 2026-07-17 16:07:54 +08:00
  • c9cf4e0901 fix: 权限保存后自动刷新 UI 回显,确保勾选框状态与数据库同步 yueli 2026-07-17 16:02:51 +08:00
  • de2d13fa68 fix: 全局权限码 crossDomain/global:cross_company_op 强制存为 company_name='',防止按公司隔离失效 yueli 2026-07-17 15:50:06 +08:00
  • 266a0e011f fix: 防自锁 — 操作者修改自己角色时强制保留 system_permission + system_permission:operation yueli 2026-07-17 15:42:31 +08:00
  • efe04c5d42 fix: assign_permissions 删除逻辑对齐 get_user_permissions 查询逻辑 — 公司定制+全局模板一起替换 yueli 2026-07-17 15:38:14 +08:00
  • 9c3fcbca4c migration: 补齐 sys_element 缺失的 :operation 权限码 + 角色分配 SQL yueli 2026-07-17 15:29:59 +08:00
  • f3c946d584 fix: 借库审批同样修复 — sys_element 补充 op_borrow_approval:operation,can_approve 增加 RBAC 权限判断 yueli 2026-07-17 15:22:54 +08:00
  • 05832e913b fix: can_approve 增加 outbound_approval:operation RBAC 权限判断,前端按钮权限与后端审批权限统一对齐 yueli 2026-07-17 15:17:26 +08:00
  • 686186d7d6 fix: Create/Update 成本字段分离 — Create 保留 BOM 自动计算值,Update 按 hasFormFieldPermission 剥离敏感字段 yueli 2026-07-17 14:50:06 +08:00
  • 8b6539b976 fix: semi/product 对话框中成本字段添加 v-if 权限守卫,与 buy.vue 的 hasFormFieldPermission 模式对齐 yueli 2026-07-17 14:43:08 +08:00
  • 1cc7d51e03 fix: semi/product submit 响应用 apply_strict_rbac 替代硬编码 resp.pop,成本字段纳入 RBAC 统一管控 yueli 2026-07-17 14:36:26 +08:00
  • cac8a360ec V3.60,邮件发送失败问题修复 yueli 2026-07-17 14:28:40 +08:00
  • fd506775c1 fix: send_email_async 主线程预取 config 传入 daemon 线程,修复异步邮件因丢失 Flask context 导致 MAIL_ENABLED=false yueli 2026-07-17 14:27:39 +08:00
  • 5b57895b99 fix: docker-compose 添加 MAIL_* 环境变量,确保 daemon 线程中邮件配置不丢失 yueli 2026-07-17 14:27:32 +08:00
  • a4a6d027fe V3.59,紧急修复出入库问题 yueli 2026-07-17 14:04:18 +08:00
  • 036d756fbd fix: 前端 product.vue permissionMap null→显式权限码 + fetchMaterialSuggestions 改用 async/await 修复首次搜索空白 yueli 2026-07-17 13:45:38 +08:00
  • 9fe64847a7 fix: 前端 buy/semi permissionMap 数量字段 null→显式权限码,与后端 RBAC 统一对齐 yueli 2026-07-17 13:45:32 +08:00
  • 61b60f7aa0 fix: 修复 semi/product 物料搜索空白 — search_base 移除错误地对 MaterialBase 数据使用 Stock 表映射过滤 yueli 2026-07-17 13:45:28 +08:00
  • 08b7674610 fix: 后端数量字段纳入RBAC — StockBuy/Semi/Product 的 in_quantity/stock_quantity/available_quantity 从 None 改为显式权限码 yueli 2026-07-17 13:45:23 +08:00
  • 3c0954598c perf: 综合安全加固 — RBAC严格映射+异步邮件+字段权限白名单+前端对齐+导入模板 yueli 2026-07-17 13:07:12 +08:00
  • 2e903cff2c perf: 规格连号助手优化 — 流式查询+宽松regex+Redis缓存 yueli 2026-07-16 18:15:43 +08:00
  • d647af6bc3 fix: Odoo页面排序失效 — 排序参数未传递+缓存未清除 yueli 2026-07-16 17:34:30 +08:00
  • 754c46bd59 feat: 采购申请字段级价格权限 — 库管看不到采购价格 yueli 2026-07-16 17:34:24 +08:00
  • 6e064064d5 V3.58 yueli 2026-07-16 14:28:37 +08:00
  • 23fc10a25f fix: Day2就绪 — 删除硬化+索引补全+全局异常处理 yueli 2026-07-16 14:14:43 +08:00
  • 382b461b68 feat: 挂载ImportDialog + 修复路由白屏 yueli 2026-07-16 14:00:44 +08:00
  • ebe79be9cb feat: ImportDialog组件 — 三步骤批量导入弹窗(拖拽上传+预览+执行) yueli 2026-07-16 14:00:36 +08:00
  • 5411cabd0a feat: Excel批量导入后端 — 模板下载+预览验证+执行导入 yueli 2026-07-16 14:00:28 +08:00
  • 5b1cd4d8d0 fix: 扫码出库类型改为必选,移除默认值SALES yueli 2026-07-16 13:13:08 +08:00
  • 3290f206c6 perf: 导出OOM修复(yield_per流式) + 采购模糊匹配安全防护 yueli 2026-07-16 13:08:45 +08:00
  • 347f20497c feat: Redis幂等锁 + 关键端点防重复提交 yueli 2026-07-16 13:08:37 +08:00
  • 8c10bb0903 feat: 盘点合并列表 — 服务端JOIN+DB分页,消除99999全量加载 yueli 2026-07-16 13:08:29 +08:00
  • e313f575bf perf: 系统级异步邮件 — 消除SMTP阻塞导致的10-15秒UI冻结 yueli 2026-07-16 11:26:12 +08:00
  • c07f25b646 fix: Fail-Closed 字段级安全加固 — 堵住15+端点价格泄露 yueli 2026-07-16 11:26:05 +08:00
  • 128985af17 feat: 采购模块重构 — 权限驱动的可见性 + 严格操作权限 yueli 2026-07-16 11:25:53 +08:00
  • 0b75740ae0 feat: 权限系统重构 — 操作权限双向展开 + 启动时自动补全默认权限 yueli 2026-07-16 11:25:41 +08:00
  • 329820117f perf: 消除 outbound/borrow BOM 匹配的 while(true) 全量加载 yueli 2026-07-15 17:52:08 +08:00
  • 2556b77530 perf: 系统级性能优化与并发安全修复 yueli 2026-07-15 17:37:57 +08:00
  • 4934cd4d8f feat: 采购管理税率+分开单价总价列 + 按单出/借库锁定扫描 + 含税法计算 yueli 2026-07-15 16:07:59 +08:00
  • 4b1a86a870 fix: 对齐field_to_perm与sys_element权限码 + 税率6% + 含税总价反算 yueli 2026-07-15 15:03:37 +08:00
  • 0651eb07fa fix: 彻底解耦出库/借库权限联动 + 路由去硬编码roles + 补API权限保护 yueli 2026-07-15 14:33:11 +08:00
  • 9988d1b7eb fix: 补全审计/出库审批/采购管理/借库审批的权限保护+公司隔离 yueli 2026-07-15 11:49:53 +08:00
  • 8d78ed9306 feat: 全局跨域公司选择器 + 权限页crossDomain开关 yueli 2026-07-15 11:11:49 +08:00
  • e1417d740a feat: 全模块公司隔离 + crossDomain权限码动态跨域控制 yueli 2026-07-15 11:11:40 +08:00
  • 56edb92d80 fix: 入库列表缓存被权限清空时回退到全显示, 防止空表头 yueli 2026-07-15 09:22:58 +08:00