2.7 KiB
2.7 KiB
危化品证上传:按钮权限 设计
日期:2026-09-03
范围:web-admin 【危化品证上传】页;backend 证书上传/齐备写接口;sys_menu 按钮权限
状态:已评审(方案 A,用户确认继续)
1. 背景与目标
部分用户可进入【危化品证上传】查看计划与证书状态,但不应执行写操作。需对以下按钮加权限控制:
- 证书齐备(含批量)
- 取消齐备(含批量)
- 上传证书(含列表附件列、查看弹窗入口)
采用方案
在当前页做权限控制(不新建「危化品证上传查看」模块),对齐运输计划归档模式:前端隐藏 + 后端写接口 403。
2. 权限模型(方案 A)
| perms | menu_type | 作用 |
|---|---|---|
pl:plan-cert:list |
C(页面) | 进入页、查询、查看(已有) |
pl:plan-cert:upload |
F | 上传/保存证书附件 |
pl:plan-cert:ready |
F | 证书齐备 + 取消齐备(共用) |
super_admin 视为拥有全部权限。
角色配置示例
| 角色意图 | 勾选 |
|---|---|
| 只读(看列表/查看/预览附件) | list |
| 证书文员(上传、不确认齐备) | list + upload |
| 主管(确认齐备、不上传) | list + ready |
| 完整操作 | list + upload + ready |
迁移
对已拥有 PL_PLAN_CERT 页面权限的角色,默认补勾 upload + ready,避免现网行为回退。
3. 前端行为
入口:web-admin/src/views/pl/plan-cert/index.vue
权限读取:fetchGetMenuCodes()(同 plan-archive)。
无 pl:plan-cert:upload
- 工具栏「上传证书」隐藏
- 查看弹窗 hero「上传证书」隐藏
- 列表「计划附件」列:
clickable=false(仍可预览已有附件,不可打开上传弹窗) handleUploadCert二次校验并提示
无 pl:plan-cert:ready
- 工具栏「证书齐备」「取消齐备」隐藏
- 查看弹窗 hero 对应按钮隐藏
仍可见(只读)
筛选、列表、查看弹窗、导出、附件预览。
4. 后端
| 接口 | 所需 perms |
|---|---|
PATCH /transport/plan/{id}/product-certs |
pl:plan-cert:upload |
PATCH /transport/plan/{id}/hazard-cert-ready |
pl:plan-cert:ready |
实现:app/services/pl_plan_cert_perm.py + plan.py 入口校验。
5. 非目标
- 运输计划主列表上的证书能力(本页独立)
- 证书齐备业务规则变更
- 菜单角标算法
6. 验收
| 场景 | 期望 |
|---|---|
仅 list |
能看列表/查看/预览;三按钮不可见;写接口 403 |
list + upload |
能上传;不能齐备/取消 |
list + ready |
能齐备/取消;不能上传 |
| 全权限 | 与现网一致 |
super_admin |
全能力 |