parent
8ba5e3e174
commit
d543b868b1
|
|
@ -723,3 +723,96 @@ ALTER TABLE pg_student DROP COLUMN member_id;
|
|||
变更前:会员 --1:N--> 学生(通过 pg_student.member_id)
|
||||
变更后:会员 --N:M--> 学生(通过 pg_member_student 关联表)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 附录C:H5 前端同步变更
|
||||
|
||||
> 完成时间:2026-02-03
|
||||
> 项目:user_authentication_center_front
|
||||
|
||||
### C.1 变更概述
|
||||
|
||||
H5 前端同步适配后端「会员教育信息重构」和「学生多会员绑定」变更。
|
||||
|
||||
### C.2 注册流程简化
|
||||
|
||||
删除注册页面的身份类型选择步骤:
|
||||
|
||||
| 变更前 | 变更后 |
|
||||
|--------|--------|
|
||||
| 步骤1: 基本信息 → 步骤2: 身份选择 → 步骤3: 详细信息 | 仅基本信息,注册后跳转用户中心 |
|
||||
|
||||
**涉及文件**:
|
||||
- `views/register/index.vue` - 删除身份选择和详细信息步骤
|
||||
|
||||
### C.3 教育身份改为数组
|
||||
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `stores/user.ts` | 删除 `identityType`,`education: any` → `educations: any[]` |
|
||||
| `api/user.js` | 接口路径 `/h5/member/education` → `/h5/member/educations` |
|
||||
| `views/userCenter/index.vue` | 列表展示多教育身份,支持删除指定 ID |
|
||||
|
||||
**接口变更**:
|
||||
|
||||
```javascript
|
||||
// 变更前
|
||||
POST /h5/member/education // 新增(覆盖式)
|
||||
GET /h5/member/education // 获取单个
|
||||
DELETE /h5/member/education // 删除
|
||||
|
||||
// 变更后
|
||||
POST /h5/member/educations // 新增
|
||||
PUT /h5/member/educations/{id} // 修改
|
||||
GET /h5/member/educations // 获取列表
|
||||
DELETE /h5/member/educations/{id} // 删除指定
|
||||
PUT /h5/member/educations/{id}/default // 设为默认
|
||||
```
|
||||
|
||||
### C.4 基础数据前端缓存
|
||||
|
||||
新建 `stores/baseData.ts` 实现区域和学科数据的前端缓存:
|
||||
|
||||
```typescript
|
||||
// 缓存结构
|
||||
{
|
||||
regionTree: [], // 区域树
|
||||
subjects: [], // 学科列表
|
||||
expire: timestamp, // 过期时间(24小时)
|
||||
}
|
||||
|
||||
// 存储位置
|
||||
localStorage.setItem('h5:baseData', JSON.stringify(data))
|
||||
```
|
||||
|
||||
**数据流**:
|
||||
|
||||
```
|
||||
用户登录成功
|
||||
↓
|
||||
强制刷新基础数据(fetchRegionTree(true), fetchSubjects(true))
|
||||
↓
|
||||
存入 Pinia Store + localStorage
|
||||
↓
|
||||
后续页面从 Store 读取,秒加载
|
||||
```
|
||||
|
||||
**涉及文件**:
|
||||
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `stores/baseData.ts` | **新建** - 基础数据 Store |
|
||||
| `views/login/index.vue` | 登录成功后调用 `fetchRegionTree(true)` 和 `fetchSubjects(true)` |
|
||||
| `components/TeacherIdentityForm.vue` | 区域和学科使用 Store 缓存 |
|
||||
| `components/ParentChildrenForm.vue` | 区域使用 Store 缓存 |
|
||||
|
||||
### C.5 缓存策略说明
|
||||
|
||||
| 数据 | 是否缓存 | 原因 |
|
||||
|------|----------|------|
|
||||
| 区域树 `/h5/base/regions` | ✅ 缓存 | 数据量大且变化少 |
|
||||
| 学科列表 `/h5/base/subjects` | ✅ 缓存 | 基础数据,变化少 |
|
||||
| 学校列表 `/h5/base/schools` | ❌ 不缓存 | 依赖区域动态查询 |
|
||||
| 年级列表 `/h5/base/grades` | ❌ 不缓存 | 依赖学校动态查询 |
|
||||
| 班级列表 `/h5/base/classes` | ❌ 不缓存 | 依赖学校+年级动态查询 |
|
||||
|
|
|
|||
Loading…
Reference in New Issue