# Soul 小程序 - 资料完善引导流程 > **入口统一**:仅 `checkVipContactRequiredAndGuide` 被 onLaunch/onShow/登录 调度;非 VIP 时内部链式调用 `checkAvatarNicknameAndGuide`。 --- ## 〇、总览(全流程) ```mermaid flowchart TD Start([触发]) --> Trigger{触发来源} Trigger -->|onLaunch/onShow/登录| Main Trigger -->|登录返回 isNewUser| LoginBranch Trigger -->|VIP支付成功| VipPay LoginBranch[登录成功] --> NewUser{isNewUser?} NewUser -->|否| Main NewUser -->|是| NeedAN1{头像昵称未改?} NeedAN1 -->|是| ForceA[redirectTo avatar-nickname
无弹窗] NeedAN1 -->|否| Main VipPay[VIP支付成功] --> Sync[同步权益] --> ModalV[弹窗:请填写好资料] --> RedirV[redirectTo profile-edit?from=vip] Main[checkVipContactRequiredAndGuide] --> Skip{在 profile-edit
或 avatar-nickname?} Skip -->|是| End1([结束]) Skip -->|否| Fetch[请求 VIP + profile] Fetch --> IsVip{VIP?} IsVip -->|否| AvatarFlow[checkAvatarNicknameAndGuide] AvatarFlow --> A1{头像昵称已完善?} A1 -->|是| End2([结束]) A1 -->|否| A2{今日已提示?} A2 -->|是| End2 A2 -->|否| MA[弹窗:请设置头像和昵称] --> NavA[navigateTo avatar-nickname] IsVip -->|是| B1{头像昵称未改?} B1 -->|是| M1[弹窗:请完善资料] --> R1[redirectTo profile-edit] B1 -->|否| B2{有手机号?} B2 -->|否| M2[弹窗:VIP需完善手机号] --> R2[redirectTo profile-edit] B2 -->|是| B3{有微信号?} B3 -->|否| M3[弹窗:请完善微信号] --> N1[navigateTo profile-edit] B3 -->|是| End3([结束]) ``` **触发时机**:onLaunch 1.5s | onShow 0.5s(节流 5min)| 登录成功 1.2s | VIP 支付成功 即时 --- ## 一、整体流程(冷启动 / 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
或 avatar-nickname?} RouteSkip -->|是| End0 RouteSkip -->|否| FetchAPI VIPCheck --> FetchAPI[请求 API:VIP 状态 + 用户资料] 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
或 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
无弹窗,强制跳转] 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 | 即时 | --- *文档生成于资料完善引导逻辑调整后*