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

3.8 KiB
Raw Blame History

Soul 小程序 - 资料完善引导流程

入口统一:仅 checkVipContactRequiredAndGuide 被 onLaunch/onShow/登录 调度;非 VIP 时内部链式调用 checkAvatarNicknameAndGuide


一、整体流程(冷启动 / onShow

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 用户)

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

三、首次登录(新注册用户)

flowchart TD
    Login([登录成功]) --> NewUser{isNewUser?}
    NewUser -->|否| VIPFlow[checkVipContactRequiredAndGuide]
    VIPFlow --> Flow1([见流程图一])
    
    NewUser -->|是| NeedAvatar{头像/昵称未改?}
    NeedAvatar -->|否| VIPFlow
    NeedAvatar -->|是| ForceRedirect[redirectTo avatar-nickname<br/>无弹窗,强制跳转]
    ForceRedirect --> End([结束])

四、VIP 购买成功(超级个体)

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 即时

文档生成于资料完善引导逻辑调整后