# Console 端工作记忆

## 2026-03-31

### Console 端功能完善 - 5项任务全部完成

1. **优惠券页面** (`coupons.vue`)
   - 接入 `shopUserCoupon` API 替换空数组，加载真实优惠券数据
   - 实现 `pageShopUserCoupon` 按状态筛选（可用/已使用/已过期）
   - 兑换功能：通过 `listShopCoupon` 查找模板 + `addShopUserCoupon` 领取
   - 添加 loading 状态，stats 改为 computed

2. **应用中心** (`apps.vue`)
   - "已购应用" Tab 从硬编码数据改为 `pageShopOrder` API 加载
   - `transformOrderToApp` 函数将订单转换为应用卡片格式
   - 续费/查看详情/退订按钮改为真实页面跳转（market/orders/tickets）

3. **账号安全** (`account/security.vue`)
   - 新增安全概览卡片（密码强度/登录设备/异常登录）
   - 安全建议改为图标+标题+描述的卡片式布局
   - 接入 `pageLoginRecords` API 展示最近登录记录表格
   - 支持登录类型/设备/浏览器/IP 显示和复制

4. **发票记录** (`invoices.vue`)
   - 移除 localStorage 演示提示，改为正式提示文案
   - 新增统计概览卡片（全部/已提交/已开具）
   - 添加订单关联选择器：`pageShopOrder` 加载已支付订单
   - 表格和详情弹窗增加"关联订单"列
   - 新增 `orderNo` 字段到表单和记录类型

5. **未开通产品** (`tenant/unopened.vue`)
   - 从空壳页面改为完整产品展示页
   - 接入 `pageCmsWebsiteAll` API 加载可用产品
   - 支持分类 Tab 切换（全部/企业官网/电商系统/小程序/插件）
   - 产品卡片展示（图标/名称/描述/价格/标签）
   - 立即开通/了解详情按钮跳转到应用商店
   - 定制方案引导区域

## 项目 API 模式备忘
- `pageXxx` 返回 `PageResult<T>` (已解包)，直接 `.list` `.count`
- `getUserInfo()` 返回 `Promise<User>` 含 `userId`
- SSR 守卫：`import.meta.client` 保护 localStorage
- 优惠券有三套 API：shopCoupon(模板)、shopUserCoupon(管理侧)、userCoupon(前台)
