48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
# Change: 列表状态字段无权限时改为隐藏而不是禁用
|
|
|
|
## Why
|
|
|
|
当前多个列表页对“状态 / 上架状态 / 激活状态”采用 `disabled` 开关来处理无权限用户。这样虽然阻止了正常点击,但仍然暴露了前端交互控件,既不符合“无权限不应展示操作入口”的权限体验,也会引发对 DOM 篡改后是否还能触发接口调用的安全疑虑。
|
|
|
|
业务现在明确要求:对于列表中的状态类交互字段,如果用户没有对应权限,则前端直接隐藏该字段,不再显示禁用态开关。
|
|
|
|
## What Changes
|
|
|
|
- 将以下列表页中的状态类交互字段统一从“无权限时禁用”改为“无权限时隐藏”:
|
|
- 角色管理:`role:update_status`
|
|
- 运营商管理:`carrier:update_status`
|
|
- 套餐系列:`package_series:update_status`
|
|
- 套餐列表-状态:`package:update_status`
|
|
- 套餐列表-上架状态:`package:update_away`
|
|
- 代理系列授权:`series_grants:update_status`
|
|
- 店铺列表:`shop:modify_status`
|
|
- 账号列表:`account:modify_status`
|
|
- 企业客户:`enterprise_customer:status`
|
|
- 微信配置-激活状态:`wechat_config:status`
|
|
- 对于无权限用户:
|
|
- 前端列表中不再渲染对应状态字段/列
|
|
- 前端不再渲染 disabled 的 `ElSwitch` 或其他禁用态交互控件作为占位
|
|
- 对于有权限用户:
|
|
- 保持现有状态切换交互与接口调用行为不变
|
|
- 套餐列表需要将“状态”和“上架状态”视为两个独立权限入口分别控制显示
|
|
- 本次仅调整列表页中的状态类交互字段展示策略,不修改搜索栏状态筛选项,也不扩展到详情页或新增/编辑弹窗中的表单字段
|
|
- 前端隐藏仅作为 UI 层权限收敛,不能替代后端接口鉴权;后端仍需继续拒绝无权限的直接状态更新请求
|
|
|
|
## Impact
|
|
|
|
- Affected specs:
|
|
- `list-status-permission-visibility`
|
|
- Affected code:
|
|
- `src/views/system/role/index.vue`
|
|
- `src/views/system/carrier-management/index.vue`
|
|
- `src/views/package-management/package-series/index.vue`
|
|
- `src/views/package-management/package-list/index.vue`
|
|
- `src/views/package-management/series-grants/index.vue`
|
|
- `src/views/shop-management/list/index.vue`
|
|
- `src/views/account-management/account/index.vue`
|
|
- `src/views/account-management/enterprise-customer/index.vue`
|
|
- `src/views/settings/wechat-config/index.vue`
|
|
- Dependencies:
|
|
- 现有 `useAuth` / `hasAuth` 权限判断
|
|
- 现有后端状态更新接口权限校验
|