75 lines
3.2 KiB
Markdown
75 lines
3.2 KiB
Markdown
# 2026-07-14 全面优化:下单确认弹窗/反馈图片/权限配置大改
|
||
|
||
## 今日所有优化内容速览
|
||
|
||
### 1. 计划预测下单确认弹窗优化
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 计划预测里面优化一下几点:
|
||
> BOM弹窗把包材下单数量更改为0保存后,点击下单按钮之后的弹窗核对信息中,包材下单数量还是默认的实际下单数量,不是对应保存的0
|
||
> 点击下单按钮之后的弹窗信息中,删除内料物料名称,只显示非内料之外的包材数据
|
||
|
||
**OpenClaw 响应:**
|
||
- 修复 `renderPlanConfirmDialog` 中包材实际数量取值逻辑:`||`改为`in`检查,0不再被判定为falsy
|
||
- 确认弹窗新增内料过滤,与BOM弹窗行为一致
|
||
|
||
**修改文件:** `static/js/app.js`
|
||
|
||
### 2. 测试问题反馈图片修复
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 测试问题中,有一些图片还是无法查看
|
||
|
||
**OpenClaw 响应:**
|
||
排查发现9个图片文件从磁盘丢失(数据库中仍有引用)。前端修复:
|
||
- 图片加载失败时自动显示为文件链接(橙色提示"文件缺失"),可点击下载
|
||
- 新增 `fbImgError` 函数兜底处理
|
||
- 新增 `.fb-attach-broken` 样式
|
||
|
||
**修改文件:** `static/js/app.js`
|
||
|
||
### 3. 权限配置页面重构:按角色分区
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 把权限配置下分为三个部分,超级管理员、管理员、查看者
|
||
> 三个部分标题的右侧添加一个权限配置按钮
|
||
|
||
**OpenClaw 响应:**
|
||
- 权限配置页面原按"管理员/其他成员"分两组 → 改为按"超级管理员/管理员/查看者"三个角色分区
|
||
- 每个分区标题右侧增加「⚙️ 权限配置」按钮
|
||
- 按钮挨着标题文字右侧显示(`justify-content:space-between`改为`gap:10px`)
|
||
|
||
**修改文件:** `static/js/app.js`
|
||
|
||
### 4. 角色操作权限:从通用6操作改为页面实际功能
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 查看 查询 导出 导入 提交反馈 新增产品...这些东西我看不懂
|
||
> 权限配置里面内容太通用,只有查看编辑新增删除导入导出
|
||
|
||
**OpenClaw 响应:**
|
||
- 全新的卡片式布局,按菜单分组显示
|
||
- 每个页面只显示它实际有的操作按钮(如计划预测:查看、编辑产品、删除、字段设置、冻结列)
|
||
- 超级管理员/管理员默认全部勾选,查看者仅查看,其余角色按职能预填
|
||
- 预填默认值后自动同步到数据库
|
||
|
||
**新增文件:** `routes/auth.py` 新增 `operation_required()` 函数
|
||
**修改文件:** `static/js/app.js`、`routes/products.py`、`app.py`
|
||
|
||
### 5. 权限后端API改用role_operation_permissions表
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 我使用查看者账号编辑供应商时提示仅管理员可操作
|
||
|
||
**OpenClaw 响应:**
|
||
- 后端API硬编码 `session.get("role") not in ("admin", "super_admin")` 改为查 `role_operation_permissions` 表
|
||
- 供应商管理新增 `create` 权限(新增供应商按钮)
|
||
- `_hasPagePerm` 默认返回 `true` → 改为 `false`(角色级权限兜底)
|
||
|
||
**修改文件:** `routes/auth.py`、`routes/products.py`、`static/js/app.js`
|
||
|
||
---
|
||
|
||
**涉及数据库表:** `role_operation_permissions`(新建,含所有角色×页面×功能的默认权限)
|
||
**涉及修改文件:** `static/js/app.js`、`routes/auth.py`、`routes/products.py`、`app.py`
|