# 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` 权限判断 - 现有后端状态更新接口权限校验