|
|
24b7fd8373
|
fix(audit): 模块下拉中文化,消除 image_embeddings 等英文遗留值
问题
----
模块筛选下拉仍出现 image_embeddings、purchase_request、sys_element 等
英文值。它们来自改造前的全局监听器:那时无白名单,系统表/草稿表/向量表
都会被审计,而 _infer_module_name 对未登记的类名直接回退成表名。
下拉取 DISTINCT module,这些英文值就混了进来。
处理
----
新增 moduleMap(21 项)+ moduleLabel(),并应用到**三处**渲染:
下拉选项、列表列、详情弹窗的模块标签。
value 保留原始字符串,筛选行为完全不变。
除覆盖现存 3 个英文值外,另预置了 18 个白名单表名(sys_user / stock_buy /
trans_outbound 等)。新监听器已保证 module 为中文,但若将来有数据从旧
路径写入或手工导入,这些值会再次出现,预置可避免同类问题复发。
其中 image_embeddings 标注为「图像特征(历史)」以提示其为改造前的产物。
实测:image_embeddings → 图像特征(历史),purchase_request → 采购申请,
sys_element → 系统元素;中文模块名原样保留。
|
2026-09-10 14:59:22 +08:00 |
|
|
|
6068625562
|
feat(audit): 审计日志业务化——对象名与字段中文化、操作来源与类型筛选
一、target_name 业务化(后端 audit_listener.py)
优先级:业务标识(request_no/outbound_no/borrow_no/sku/bom_no…)→
名称字段 → 关联物料名 → 「中文表名 - 业务号或ID」。
新增 TABLE_LABELS 表名到中文的映射(18 张白名单表全覆盖)。
用户看到的从 scrap_approval ID:371 变为
「出库申请单 - APR-OUT-20260805-1550-0005」这类可理解的对象描述。
二、前端字段中文化(AuditLog.vue)
· fieldMap 由 11 项扩充到 110+ 项,覆盖审批单/流水/库存/主数据/系统管理五类;
· 修复关键 bug:fieldMap 原先只作用于「变更对比」区,「删除快照」与
「新增详情」两区直接渲染原始 key(label 直接取 String(key)),
这正是详情里满是英文列名的直接原因。现三区统一经 fieldLabel() 取值。
三、时间显示修正
后端已改写北京时间,前端原先补 Z 当 UTC 解析会造成二次 +8 小时,
改为按 +08:00 理解该字符串。
四、新增两类筛选
· 操作来源(真实用户 / 系统操作 / 全部),默认「真实用户」。
历史存量含约 1.8 万条 username=system 的噪声日志,会把列表刷屏。
· 操作类型别名归一:历史数据中 action 有两套写法(早期装饰器写中文
新增/修改/删除,现行监听器写大写 CREATE/UPDATE/DELETE),导致下拉
同时出现二者、且选中文项只能搜到 3-4 月的老数据。现 ACTION_ALIASES
把任意写法归一化后展开匹配,下拉只暴露 3 个规范值,
历史数据无需迁移即可被正确检索。
|
2026-09-10 14:16:39 +08:00 |
|
|
|
9ceb6ddc1d
|
debug: 诊断出库审批/借库审批的 operationCode 是否被正确识别
|
2026-07-21 10:19:21 +08:00 |
|
|
|
29de22b575
|
fix: crossDomain 重复收集 — 真实树中的 system_mgmt/crossDomain 与虚拟 global_privileges 冲突,从真实树中移除 crossDomain 避免双重收集
|
2026-07-17 16:22:59 +08:00 |
|
|
|
0e6294890c
|
debug: crossDomain 收集逻辑加精确断点日志
|
2026-07-17 16:20:22 +08:00 |
|
|
|
0074d96163
|
fix: 权限配置页 GET 请求加 _t 防浏览器缓存 + 保存后自动刷新 UI
|
2026-07-17 16:13:12 +08:00 |
|
|
|
96eb56766e
|
fix: 回退权限保存后的 auto-refresh,改为手动刷新提示
|
2026-07-17 16:07:54 +08:00 |
|
|
|
c9cf4e0901
|
fix: 权限保存后自动刷新 UI 回显,确保勾选框状态与数据库同步
|
2026-07-17 16:02:51 +08:00 |
|
|
|
8d78ed9306
|
feat: 全局跨域公司选择器 + 权限页crossDomain开关
- 新增CompanySelector组件: 仅crossDomain权限或SUPER_ADMIN可见
- 权限分配页: 全局系统特权下新增"允许全局跨域"操作权限checkbox
- 入库汇总/出库记录搜索栏嵌入CompanySelector
- PermissionConfig: transformData识别crossDomain为操作权限码
|
2026-07-15 11:11:49 +08:00 |
|
|
|
4f5965db02
|
feat: JWT多租户数据权限隔离 & 主管系统管理权限 & 含税单价补齐
## 多租户公司数据隔离
- 新增 get_current_company_filter() 工具函数 (decorators.py)
SUPER_ADMIN: 可传company_name参数过滤或传ALL看全量
其他角色: 强制隔离到JWT中的company_name
- 重构 base_service.py / buy_service.py: 用集中式函数替换内联公司过滤
- SysRolePermission 表新增 company_name 字段,支持同角色不同公司权限
- get_user_permissions() 新增 company_name 参数,查公司定制+全局模板权限
- permission.py API 新增 @permission_required 拦截 + 公司过滤
- 19个API/service文件传递 company_name 到权限查询
## 主管系统管理权限
- delete_user() 允许SUPERVISOR删除同公司用户 (原仅SUPER_ADMIN)
- get_all_users() 新增 company_name 参数过滤
- 用户列表/权限分配 API 应用 get_current_company_filter()
- 前端 UserCreate.vue: 超管可见公司下拉框,主管隐藏部门字段
## 前端多租户适配
- material/list.vue / buy.vue: 公司下拉框仅超管可见,默认ALL
- UserCreate.vue: 新增搜索栏公司筛选,部门字段按角色显隐
- auth.ts: getUserList() 支持 params 参数
## Bug修复: 含税单价字段补齐
- buy.vue: 表格列/高级筛选/排序/权限映射新增 post_tax_unit_price
- buy_service.py: allowed_fields/sort_field_map 新增 post_tax_unit_price
|
2026-07-13 15:12:22 +08:00 |
|
|
|
1205d9c7e8
|
feat(audit): 优化审计日志的人性化展示
|
2026-04-22 10:44:13 +08:00 |
|
|
|
59a6a10803
|
fix(audit): 完善前端审计日志详情展示,支持同时渲染changes/deleted_snapshot/created结构
|
2026-04-20 16:11:14 +08:00 |
|
|
|
9a0982e76d
|
feat(audit-ui): 重新应用前端审计详情弹窗渲染逻辑,支持高级对比结构
|
2026-04-20 13:20:23 +08:00 |
|
|
|
becd3cb010
|
审计日志修改完善
|
2026-04-20 11:39:28 +08:00 |
|
|
|
7d683f3e65
|
fix: implement strict regex validation (no pure numbers, no special chars) on both frontend user creation form and backend auth service
|
2026-04-17 13:33:51 +08:00 |
|
|
|
d651d19e86
|
feat(system): implement robust batch user creation integrating existing pinyin logic and backend duplication prevention
|
2026-04-17 12:16:45 +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 |
|
|
|
bd93a3d70b
|
feat: implement clean global cross-organization permission node and backend service isolation logic
|
2026-04-17 08:59:55 +08:00 |
|
|
|
edf09508f6
|
fix(frontend): resolve cross-page selection loss, add destroy-on-close to dialogs, and fix row-key collision in stocktake
|
2026-04-02 18:35:11 +08:00 |
|
|
|
06677ee92c
|
style: format user creation time to display only date
|
2026-03-18 16:43:44 +08:00 |
|
|
|
cd192624b9
|
fix: 统一系统生成时间为北京时间(UTC+8)并优化审计日志表格列展示
|
2026-03-10 17:33:14 +08:00 |
|
|
|
be6575344a
|
feat: 新增企业级操作审计日志闭环模块(包含底层模型、记录装饰器与前端看板)
|
2026-03-10 12:15:26 +08:00 |
|
|
|
8f6d0cd40b
|
修改采购件页面金额显示,修改权限管理页面非字段级内容可见与可编辑联动
|
2026-02-28 09:10:51 +08:00 |
|
|
|
4324e5a688
|
feat: add field-level data protection for BOM and user management
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-02-27 15:16:11 +08:00 |
|
|
|
00c45c72fb
|
inventory-web/src/views/system/UserCreate.vue
```vue
<<<<<<< SEARCH
<el-button type="primary" @click="handleCreate">
+ 新增员工
</el-button>
=======
<el-button v-if="userStore.hasPermission('system_user:operation')" type="primary" @click="handleCreate">
+ 新增员工
</el-button>
>>>>>>> REPLACE
```
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-02-27 14:34:48 +08:00 |
|
|
|
6fa5233ea6
|
feat: implement RBAC and field masking for system_user module
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-02-27 14:28:48 +08:00 |
|
|
|
4c1c61065e
|
fix: exclude operation columns from field permission dropdown
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-02-27 11:08:00 +08:00 |
|
|
|
25487dbede
|
fix: operation permission detection for codes ending with :operation
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
|
2026-02-27 11:00:44 +08:00 |
|
|
|
7431f1f41e
|
权限管理,没有页面修改之前版本
|
2026-02-25 16:10:12 +08:00 |
|
|
|
82a9a4c2ba
|
修改登录,实现中文名称显示,以及修改登录逻辑
|
2026-02-25 11:18:01 +08:00 |
|
|
|
1c3f116c50
|
修改登录,添加超级管理员权限
|
2026-02-25 11:02:06 +08:00 |
|
|
|
88d32067ae
|
将邮箱设定为必选项
|
2026-02-10 11:50:07 +08:00 |
|
|
|
596f366fc4
|
进入界面的调整
|
2026-02-04 15:55:20 +08:00 |
|
|
|
ea17413bc1
|
新增用户页面更新以及调整
|
2026-02-04 15:16:14 +08:00 |
|
|
|
13590b1fac
|
超级管理员登录设置
|
2026-02-04 13:30:07 +08:00 |
|