Files
Mycontent/miniprogram/docs/资料完善引导流程图.md

120 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Soul 小程序 - 资料完善引导流程
> **入口统一**:仅 `checkVipContactRequiredAndGuide` 被 onLaunch/onShow/登录 调度;非 VIP 时内部链式调用 `checkAvatarNicknameAndGuide`。
---
## 一、整体流程(冷启动 / onShow
```mermaid
flowchart TD
Start([入口onLaunch 1.5s / onShow 0.5s]) --> CheckLogin{已登录?}
CheckLogin -->|否| End1([结束])
CheckLogin -->|是| VIPCheck[checkVipContactRequiredAndGuide]
VIPCheck --> CoolDown{3秒内已执行过?}
CoolDown -->|是| End0([结束,防重复])
CoolDown -->|否| RouteSkip{当前在 profile-edit<br/>或 avatar-nickname?}
RouteSkip -->|是| End0
RouteSkip -->|否| FetchAPI
VIPCheck --> FetchAPI[请求 APIVIP 状态 + 用户资料]
FetchAPI --> UpdateIsVip[更新 globalData.isVip]
UpdateIsVip --> IsVip{VIP?}
IsVip -->|否| AvatarCheck[checkAvatarNicknameAndGuide]
AvatarCheck --> End2([结束])
IsVip -->|是| SkipProfile{当前在 profile-edit?}
SkipProfile -->|是| End3([结束])
SkipProfile -->|否| NeedAvatar{头像/昵称未改?}
NeedAvatar -->|是| Modal1[弹窗:为了更好为您服务,请完善资料]
Modal1 --> Redirect1[redirectTo profile-edit]
Redirect1 --> End4([结束])
NeedAvatar -->|否| HasPhone{有手机号?}
HasPhone -->|否| Modal2[弹窗VIP会员需完善手机号...]
Modal2 --> Redirect2[redirectTo profile-edit]
Redirect2 --> End5([结束])
HasPhone -->|是| HasWechat{有微信号?}
HasWechat -->|是| End6([结束])
HasWechat -->|否| Modal3[弹窗:请到资料页完善微信号]
Modal3 --> Nav1[navigateTo profile-edit]
Nav1 --> End7([结束])
```
---
## 二、头像/昵称引导(非 VIP 用户)
```mermaid
flowchart TD
A([checkAvatarNicknameAndGuide]) --> B{globalData.isVip?}
B -->|是| X([跳过,由 VIP 检测处理])
B -->|否| C{头像/昵称已完善?}
C -->|是| Y([结束])
C -->|否| D{当前在 profile-edit<br/>或 avatar-nickname?}
D -->|是| Z([结束])
D -->|否| E{今日已提示过?}
E -->|是| W([结束])
E -->|否| F[弹窗:请设置头像和昵称]
F --> G{点击去完善?}
G -->|是| H[navigateTo avatar-nickname]
G -->|否 稍后| I([结束])
H --> I
```
---
## 三、首次登录(新注册用户)
```mermaid
flowchart TD
Login([登录成功]) --> NewUser{isNewUser?}
NewUser -->|否| VIPFlow[checkVipContactRequiredAndGuide]
VIPFlow --> Flow1([见流程图一])
NewUser -->|是| NeedAvatar{头像/昵称未改?}
NeedAvatar -->|否| VIPFlow
NeedAvatar -->|是| ForceRedirect[redirectTo avatar-nickname<br/>无弹窗,强制跳转]
ForceRedirect --> End([结束])
```
---
## 四、VIP 购买成功(超级个体)
```mermaid
flowchart TD
Pay([VIP 支付成功]) --> Sync[同步权益 / 拉取 VIP 状态]
Sync --> Modal[弹窗:为了更好为您服务,请填写好资料]
Modal --> Redirect[redirectTo profile-edit?from=vip]
Redirect --> End([结束])
```
---
## 五、页面职责
| 页面 | 用途 |
|------|------|
| **avatar-nickname** | 仅头像 + 昵称,专注引导新用户/非 VIP |
| **profile-edit** | 完整资料手机号、微信号、MBTI、行业等VIP 用户统一跳转 |
---
## 六、触发时机汇总
| 时机 | 执行的函数 | 延迟 |
|------|------------|------|
| onLaunch | checkVipContactRequiredAndGuide | 1500ms |
| onShow | checkVipContactRequiredAndGuide | 500ms节流 5min|
| login 成功 | checkVipContactRequiredAndGuide | 1200ms |
| getOpenId 返回 user | checkVipContactRequiredAndGuide | 1200ms |
| loginWithPhone 成功 | checkVipContactRequiredAndGuide | 1200ms |
| VIP 支付成功 | _onVipPaymentSuccess | 即时 |
---
*文档生成于资料完善引导逻辑调整后*