# Tasks: 资产钱包自动续费配置 ## 1. 类型与 API - [ ] 1.1 新增 `src/types/api/assetWallet.ts`:`AssetAutoRenewalConfig`(`enabled`/`enabled_name`/`scope`/`scope_name`/`package_ids`/`days_before_expiry`/`config_version`/`updater`/`updated_at`)、`UpdateAssetAutoRenewalConfigRequest`(`enabled`/`scope`/`package_ids`/`days_before_expiry`)等类型 - [ ] 1.2 `src/types/api/index.ts` 导出新类型 - [ ] 1.3 新增 `src/api/modules/assetWallet.ts`: - `getAutoRenewalConfig`:`GET /api/admin/asset-auto-renewal-config` - `saveAutoRenewalConfig`:`PUT /api/admin/asset-auto-renewal-config` - [ ] 1.4 `src/api/modules/index.ts` 导出新服务 ## 2. 配置页面 - [ ] 2.1 `src/router/routesAlias.ts` 新增资产钱包自动续费配置路由别名,`src/router/routes/asyncRoutes.ts` 在设置下注册路由与菜单(仅超级管理员与平台账号可见) - [ ] 2.2 新增 `src/views/settings/asset-wallet-auto-renewal/index.vue`:读取配置并展示总开关、适用范围、指定主套餐、统一到期前天数、配置版本、最近保存操作者与时间 - [ ] 2.3 实现保存表单:总开关(0/1)、适用范围(all/specified)、到期前天数(1–90 校验);指定范围时主套餐多选仅支持当前可售主套餐且非空 - [ ] 2.4 保存成功后使用响应刷新 `config_version`、`updater`、`updated_at`,不做新增/删除记录操作 ## 3. 通知适配 - [ ] 3.1 确认 `src/utils/business/notificationNavigation.ts` 白名单包含 `iot_card` 与 `device`,目标可用时跳转资产详情 - [ ] 3.2 确认 `src/components/core/layouts/art-notification/index.vue` 的 `expiry` 分类可展示 `asset.auto_renewal.failed`,`available=false` 时只显示正文不跳转 - [ ] 3.3 确认该类型通知计入未读数与分类汇总 ## 4. Verification - [ ] 4.1 验证 GET/PUT 字段传递与参数校验(enabled、scope、package_ids、days_before_expiry) - [ ] 4.2 验证指定范围时 package_ids 非空且仅可售主套餐 - [ ] 4.3 验证通知类型展示、目标跳转与不可用目标处理 - [ ] 4.4 验证非超级管理员/平台账号访问的 403 处理 - [ ] 4.5 运行 lint、类型检查与构建