# 2026-06-09 首页岗位 & 面试页优化

## 首页热门岗位去虚构化
- 标题旁增加灰色"参考示例"标签（`.section-tag-demo`），避免用户误以为真实招聘信息
- 公司名和薪资分行展示，薪资用蓝色小标签突出
- 公司名无数据时 fallback 为 "参考公司"，薪资为 "参考薪资"
- 去掉虚构的"xx人面过"数字，改为"立即模拟"文字按钮

## 面试页顶部优化
- 岗位名 + "面试中" 状态标签，替代原来的 `{position}面试` 拼接写法
- 岗位名字体加大加粗（26rpx, 600），"面试中"用半透明白底圆角标签

## 登录页 Bug 修复
- 去掉验证码登录中多余的"获取验证码"大按钮（原第57行）
- "获取验证码"按钮改为 inline 形式，放在邮箱输入框旁边
- 按钮文字动态显示：未发送时"获取验证码"，已发送后"重新获取"，冷却中显示倒计时
- 验证码输入框在 `emailSent=true` 后正常显示
- 登录按钮始终显示，邮箱未验证或验证码为空时 disabled
- 样式更新：`.inline-row` / `.inline-input` / `.code-btn`（蓝色实心按钮）

## 后端编译错误修复
- `wechat-pay.service.ts`：`createDecipheriv` 第2个参数改为 `Buffer.from(key)`
- `positions.controller.ts`：`HotPosition & { _id?: string }` 替代 `HotPosition`
- `user.schema.ts`：去掉 `phone`/`wxOpenid`/`email` 的 `unique: true`，避免 null 值 duplicate key
- `package.json`：`postbuild` 脚本用 `fs.cpSync` 自动复制证书到 `dist/certs`
- **后端新增**：
  - `POST /api/user/register` — 邮箱+密码注册（若已存在但无密码则补设）
  - `POST /api/user/set-password` — 已登录用户设置/修改密码
  - `loginByEmail` 返回 `isNew` + `hasPassword` 标记
- **前端重构**：
  - 主 Tab：登录 | 注册 | 微信登录(小程序)
  - 登录子 Tab：密码登录(默认) | 验证码登录
  - 密码登录：邮箱 + 密码
  - 验证码登录：邮箱 + 验证码（新用户自动注册）
  - 注册：邮箱 + 密码 + 确认密码
  - 验证码登录后若 `!hasPassword`：弹出"设置登录密码"引导弹窗（可跳过）
