后端 API:AI 对话/报告/余额告警 等服务与路由;小程序 tabBar 配置与分润相关能力;出站推送 Webhook 与管理端调试;飞书留资、小程序数据分析 等支撑;多份 数据库迁移(AI 聊天、灵魂文章、tabBar、分润等)。 管理端 / 超管:看板、用户/订单/分销/财务、设置与 小程序 tabBar 管理、分润规则、灵魂文章、AI 配置与监控 等大量页面与能力扩展;主题与布局更新。 抖音小程序:与微信侧在 结果页/购买/个人中心 等方向做了同步或优化。 另含 部署/脚本、开发文档 等配套更新。 邀请码与解锁:后端 分销/邀请码 接口与 add_invite_codes 等 SQL;小程序侧 邀请码弹窗组件、个人中心/推广/多类结果页 的填写入口与 解锁门控(inviteCodeGate、unlockGate);并补充 《小程序解锁引导与邀请码方案》 文档。 超管后台:路由与 企业中心(EnterpriseHub) 等交互与结构优化。 小程序体验:在 首页结果、推广、各测评结果页 上继续打磨;与 邀请码门控、审核门控 小步联动。
469 lines
23 KiB
Plaintext
469 lines
23 KiB
Plaintext
<!--pages/index/result.wxml - AI分析结果(按旧版模板重构)-->
|
||
<view class="container">
|
||
<!-- 分析中状态 -->
|
||
<view class="analyzing-modal" wx:if="{{isAnalyzing}}">
|
||
<view class="analyzing-content">
|
||
<view class="analyzing-icon">
|
||
<view class="spinner"></view>
|
||
</view>
|
||
<text class="analyzing-title">{{analyzingTitle || '正在分析中'}}</text>
|
||
<text class="analyzing-desc">{{analyzingTip}}</text>
|
||
<view class="analyzing-bar">
|
||
<view class="analyzing-bar-fill" style="width: {{progress}}%"></view>
|
||
</view>
|
||
<text class="analyzing-hint">这个过程可能需要30秒到1分钟,请耐心等待...</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 无人脸错误状态 -->
|
||
<view class="no-face-wrap" wx:if="{{!isAnalyzing && noFaceError}}">
|
||
<view class="no-face-card">
|
||
<view class="no-face-icon">
|
||
<text class="no-face-emoji">🚫</text>
|
||
</view>
|
||
<text class="no-face-title">未检测到人脸</text>
|
||
<text class="no-face-desc">{{noFaceMessage}}</text>
|
||
<view class="no-face-tips">
|
||
<text class="no-face-tips-title">拍摄建议:</text>
|
||
<text class="no-face-tip-item">• 确保面部完整出现在画面中</text>
|
||
<text class="no-face-tip-item">• 保持光线充足,避免逆光</text>
|
||
<text class="no-face-tip-item">• 正对镜头,不要遮挡面部</text>
|
||
<text class="no-face-tip-item">• 保持适当距离,不要过近或过远</text>
|
||
</view>
|
||
<view class="no-face-btn" bindtap="retake">
|
||
<text class="no-face-btn-text">重新拍摄</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 分析结果 -->
|
||
<view wx:if="{{!isAnalyzing && showResult}}">
|
||
<!-- 状态横幅 -->
|
||
<view class="status-banner {{hasError ? 'error-banner' : ''}}">
|
||
<view class="status-dot {{hasError ? 'error-dot' : ''}}"></view>
|
||
<text class="status-text">{{hasError ? '分析出现异常' : '分析完成,以下是您的个性化报告'}}</text>
|
||
</view>
|
||
|
||
<view class="invite-fill-entry invite-fill-entry--face" wx:if="{{!hasError && !fromShare && !hideInviteCodeEntry}}" bindtap="openInviteCodeFill">
|
||
<text class="invite-fill-entry__icon">🔗</text>
|
||
<view class="invite-fill-entry__main">
|
||
<text class="invite-fill-entry__title">填写好友邀请码</text>
|
||
<text class="invite-fill-entry__sub">绑定推广关系 · 可选</text>
|
||
</view>
|
||
<text class="invite-fill-entry__arrow">›</text>
|
||
</view>
|
||
|
||
<!-- 错误内容 -->
|
||
<view class="error-content" wx:if="{{hasError}}">
|
||
<text class="error-title">错误信息</text>
|
||
<text class="error-message">{{errorMessage}}</text>
|
||
<view class="retry-btn" bindtap="retake">
|
||
<text class="retry-text">重新分析</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 资料未齐:摘要 + 授权手机 / 完善资料(分享落地 fs=1 不挡) -->
|
||
<block wx:elif="{{phoneLoginGate}}">
|
||
<view class="report-gate-wrap">
|
||
<view class="card personality-card">
|
||
<text class="card-title">性格类型分析</text>
|
||
<view class="personality-type">
|
||
<text class="type-code">{{result.mbti}}</text>
|
||
<text class="type-name">{{result.title}}</text>
|
||
<text class="type-desc">{{result.summary}}</text>
|
||
</view>
|
||
<view class="type-details type-details--wrap">
|
||
<view class="type-box pdp-box">
|
||
<text class="type-emoji" wx:if="{{result.pdpEmoji}}">{{result.pdpEmoji}}</text>
|
||
<text class="type-label">PDP主性格</text>
|
||
<text class="type-value">{{result.pdp || '--'}}</text>
|
||
<text class="type-sub" wx:if="{{result.pdpAux}}">辅助: {{result.pdpAux}}</text>
|
||
</view>
|
||
<view class="type-box disc-box">
|
||
<text class="type-emoji type-emoji--disc">◎</text>
|
||
<text class="type-label">DISC类型</text>
|
||
<text class="type-value">{{result.disc || '--'}}型</text>
|
||
<text class="type-sub" wx:if="{{result.discAux}}">辅助: {{result.discAux}}</text>
|
||
</view>
|
||
<view
|
||
class="type-box sbti-box"
|
||
wx:if="{{showSbtiFace && (result.sbtiCode || result.sbtiCn)}}"
|
||
>
|
||
<text class="type-emoji">✨</text>
|
||
<text class="type-label">SBTI解读</text>
|
||
<text class="type-value">{{result.sbtiCode}}({{result.sbtiCn}})</text>
|
||
<text class="type-desc-small">{{result.sbtiMainTypeDesc}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="report-gate-cta-wrap phone-login-gate-cta" id="unlock-gate-anchor">
|
||
<view class="report-gate-panel">
|
||
<text class="paywall-fake-title">查看完整报告</text>
|
||
<text class="paywall-tip">授权手机号并设置头像、昵称后即可查看完整报告(与下方按钮为同一条流程)。</text>
|
||
<button
|
||
wx:if="{{!hasPhone}}"
|
||
class="paywall-btn paywall-btn-inline paywall-btn--compact"
|
||
open-type="getPhoneNumber"
|
||
bindgetphonenumber="onPhoneLoginForFaceResult"
|
||
>
|
||
<text class="paywall-btn-main">登录</text>
|
||
</button>
|
||
<button
|
||
wx:else
|
||
class="paywall-btn paywall-btn-inline paywall-btn--compact"
|
||
bindtap="goToCompleteProfile"
|
||
>
|
||
<text class="paywall-btn-main">完善资料 · 查看完整报告</text>
|
||
</button>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
|
||
<block wx:else>
|
||
<!-- 支付成功后:引导手机号 → 完善资料(不挡报告阅读) -->
|
||
<view class="post-pay-guide" id="unlock-gate-anchor" wx:if="{{payInfo.isPaid && (!hasPhone || !isProfileComplete)}}">
|
||
<text class="post-pay-guide-title">再完成两步,报告更好归属到您的账号</text>
|
||
<text class="post-pay-guide-desc">① 授权手机号 ② 完善头像与昵称(「我的」- 个人资料)</text>
|
||
<view class="post-pay-guide-actions">
|
||
<button
|
||
wx:if="{{!hasPhone}}"
|
||
class="post-pay-guide-btn phone"
|
||
open-type="getPhoneNumber"
|
||
bindgetphonenumber="onPostPayBindPhone"
|
||
>授权手机号</button>
|
||
<view wx:if="{{hasPhone && !isProfileComplete}}" class="post-pay-guide-btn profile" bindtap="goToCompleteProfile">去完善资料</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 报告预览区:未解锁时整区加盖高遮罩,避免概述/盖洛普等全文外露 -->
|
||
<view class="report-gate-wrap">
|
||
<view
|
||
class="card personality-card {{(payInfo.requiresPayment && !payInfo.isPaid) ? 'personality-card--locked' : ''}}"
|
||
>
|
||
<text class="card-title">性格类型分析</text>
|
||
|
||
<view class="personality-type">
|
||
<text class="type-code">{{result.mbti}}</text>
|
||
<text class="type-name">{{result.title}}</text>
|
||
<text class="type-desc">{{result.summary}}</text>
|
||
</view>
|
||
|
||
<view class="type-details type-details--wrap">
|
||
<view class="type-box pdp-box">
|
||
<text class="type-emoji" wx:if="{{result.pdpEmoji}}">{{result.pdpEmoji}}</text>
|
||
<text class="type-label">PDP主性格</text>
|
||
<text class="type-value">{{result.pdp || '--'}}</text>
|
||
<text class="type-sub" wx:if="{{result.pdpAux}}">辅助: {{result.pdpAux}}</text>
|
||
</view>
|
||
<view class="type-box disc-box">
|
||
<text class="type-emoji type-emoji--disc">◎</text>
|
||
<text class="type-label">DISC类型</text>
|
||
<text class="type-value">{{result.disc || '--'}}型</text>
|
||
<text class="type-sub" wx:if="{{result.discAux}}">辅助: {{result.discAux}}</text>
|
||
</view>
|
||
<!-- SBTI:重构为盒子家族成员,占据全宽 -->
|
||
<view
|
||
class="type-box sbti-box"
|
||
wx:if="{{showSbtiFace && (result.sbtiCode || result.sbtiCn)}}"
|
||
>
|
||
<text class="type-emoji">✨</text>
|
||
<text class="type-label">SBTI解读</text>
|
||
<text class="type-value">{{result.sbtiCode}}({{result.sbtiCn}})</text>
|
||
<text class="type-desc-small">{{result.sbtiMainTypeDesc}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="advantages-box" wx:if="{{result.traits.length > 0}}">
|
||
<text class="advantages-label">主要优势</text>
|
||
<view class="advantages-list">
|
||
<view class="advantage-pill" wx:for="{{result.traits}}" wx:key="*this">
|
||
<text class="advantage-pill-text">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
|
||
<view
|
||
class="card report-gate-teaser {{(payInfo.requiresPayment && !payInfo.isPaid) ? 'report-gate-teaser--locked' : ''}}"
|
||
wx:if="{{result.summary}}"
|
||
>
|
||
<text class="card-title">📝 性格概述</text>
|
||
<text class="card-text">{{result.summary}}</text>
|
||
</view>
|
||
|
||
<view
|
||
class="card gallup-card report-gate-teaser {{(payInfo.requiresPayment && !payInfo.isPaid) ? 'report-gate-teaser--locked' : ''}}"
|
||
wx:if="{{result.gallupTop3.length > 0}}"
|
||
>
|
||
<text class="card-title">盖洛普前三大优势</text>
|
||
<view class="gallup-list">
|
||
<view class="gallup-item" wx:for="{{result.gallupTop3}}" wx:key="*this">
|
||
<text class="gallup-rank">{{index + 1}}</text>
|
||
<text class="gallup-text">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 未解锁:三大生活场景仅标题 + 占位行(正文付费后见) -->
|
||
<view class="card scene-teaser-bundle" wx:if="{{payInfo.requiresPayment && !payInfo.isPaid}}">
|
||
<text class="scene-bundle-hint">以下版块解锁后展示完整正文</text>
|
||
<view class="scene-teaser-item">
|
||
<text class="scene-teaser-title">职业发展方向</text>
|
||
<view class="scene-teaser-lines">
|
||
<view class="scene-teaser-line"></view>
|
||
<view class="scene-teaser-line scene-teaser-line--short"></view>
|
||
</view>
|
||
</view>
|
||
<view class="scene-teaser-item">
|
||
<text class="scene-teaser-title">家庭亲子关系</text>
|
||
<view class="scene-teaser-lines">
|
||
<view class="scene-teaser-line"></view>
|
||
<view class="scene-teaser-line scene-teaser-line--short"></view>
|
||
</view>
|
||
</view>
|
||
<view class="scene-teaser-item scene-teaser-item--last">
|
||
<text class="scene-teaser-title">寻找合伙人</text>
|
||
<view class="scene-teaser-lines">
|
||
<view class="scene-teaser-line"></view>
|
||
<view class="scene-teaser-line scene-teaser-line--short"></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 全幅遮罩 + 底部操作(覆盖性格概述、盖洛普等主要预览,仅留顶部少量「悬念」) -->
|
||
<view
|
||
class="report-gate-overlay"
|
||
wx:if="{{payInfo.requiresPayment && !payInfo.isPaid}}"
|
||
>
|
||
<view class="report-gate-gradient"></view>
|
||
<view class="report-gate-cta-wrap" id="unlock-gate-anchor">
|
||
<view class="report-gate-panel">
|
||
<text class="paywall-fake-title">完整版深度解析</text>
|
||
<text class="paywall-tip">含面相、骨相、人际与职业 / 家庭 / 合伙三大场景</text>
|
||
<view class="paywall-btn paywall-btn-inline paywall-btn--compact" bindtap="onTapUnlockPay">
|
||
<text class="paywall-btn-main">{{payInfo.amountYuan || 1}} 元解锁</text>
|
||
</view>
|
||
<text class="paywall-tip paywall-tip-panel">解锁后可在「历史记录」再次查看;绑定手机与资料见上方绿色提示条</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- ========== 详细分析区(解锁后可见) ========== -->
|
||
<block wx:if="{{!payInfo.requiresPayment || payInfo.isPaid}}">
|
||
|
||
<!-- 生活场景深度分析(AI 或本地兜底) -->
|
||
<view class="card scene-detail-card" wx:if="{{result.careerDevelopment}}">
|
||
<text class="card-title">职业发展方向</text>
|
||
<text class="card-text">{{result.careerDevelopment}}</text>
|
||
</view>
|
||
<view class="card scene-detail-card" wx:if="{{result.familyParenting}}">
|
||
<text class="card-title">家庭亲子关系</text>
|
||
<text class="card-text">{{result.familyParenting}}</text>
|
||
</view>
|
||
<view class="card scene-detail-card" wx:if="{{result.partnerCofounder}}">
|
||
<text class="card-title">寻找合伙人</text>
|
||
<text class="card-text">{{result.partnerCofounder}}</text>
|
||
</view>
|
||
|
||
<!-- 面相分析 -->
|
||
<block wx:if="{{result.faceAnalysis}}">
|
||
<!-- 完整结构化面相(旧 object 格式) -->
|
||
<view class="card" wx:if="{{result.faceAnalysis.facialFeatures && result.faceAnalysis.facialFeatures.length > 0}}">
|
||
<text class="card-title">面部特征分析</text>
|
||
<view class="feature-list">
|
||
<view class="feature-item" wx:for="{{result.faceAnalysis.facialFeatures}}" wx:key="label">
|
||
<text class="feature-label">{{item.label}}:</text>
|
||
<text class="feature-desc">{{item.description}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<!-- 字符串版面相(新 prompt 返回) -->
|
||
<view class="card" wx:elif="{{result.faceAnalysisText}}">
|
||
<text class="card-title">面相分析</text>
|
||
<text class="card-text">{{result.faceAnalysisText}}</text>
|
||
</view>
|
||
|
||
<!-- 骨相分析 -->
|
||
<block wx:if="{{result.boneAnalysis && result.boneAnalysis.boneFormSummary}}">
|
||
<!-- 完整结构化骨相(旧 object 格式) -->
|
||
<view class="card">
|
||
<text class="card-title">骨相分析(《冰鉴》八骨)</text>
|
||
<view class="bone-content">
|
||
<view class="bone-item" wx:if="{{result.boneAnalysis.boneFormSummary.elementType}}">
|
||
<text class="bone-label">五行形相:</text>
|
||
<text class="bone-text">{{result.boneAnalysis.boneFormSummary.elementType}}</text>
|
||
</view>
|
||
<view class="bone-item" wx:if="{{result.boneAnalysis.boneFormSummary.boneFleshRelation}}">
|
||
<text class="bone-label">骨肉关系:</text>
|
||
<text class="bone-text">{{result.boneAnalysis.boneFormSummary.boneFleshRelation}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<!-- 字符串版骨相(新 prompt 返回) -->
|
||
<view class="card" wx:elif="{{result.boneAnalysisText}}">
|
||
<text class="card-title">骨相分析(《冰鉴》八骨)</text>
|
||
<text class="card-text">{{result.boneAnalysisText}}</text>
|
||
</view>
|
||
|
||
<!-- 人际关系 -->
|
||
<view class="card" wx:if="{{result.relationship}}">
|
||
<text class="card-title">人际关系与团队合作</text>
|
||
<text class="card-text">{{result.relationship}}</text>
|
||
</view>
|
||
|
||
<!-- 企业版:简历亮点 -->
|
||
<view class="card" wx:if="{{result.resumeHighlights}}">
|
||
<text class="card-title">简历亮点</text>
|
||
<text class="card-text">{{result.resumeHighlights}}</text>
|
||
</view>
|
||
|
||
<!-- 企业版:职业画像 portrait -->
|
||
<view class="card" wx:if="{{result.portrait}}">
|
||
<text class="card-title">职业画像</text>
|
||
<view class="enterprise-section" wx:if="{{result.portrait.coreStrengths && result.portrait.coreStrengths.length > 0}}">
|
||
<text class="enterprise-label">核心优势</text>
|
||
<view class="enterprise-tags">
|
||
<text class="enterprise-tag" wx:for="{{result.portrait.coreStrengths}}" wx:key="*this">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="enterprise-section" wx:if="{{result.portrait.coreRisks && result.portrait.coreRisks.length > 0}}">
|
||
<text class="enterprise-label">潜在风险</text>
|
||
<view class="enterprise-tags">
|
||
<text class="enterprise-tag risk" wx:for="{{result.portrait.coreRisks}}" wx:key="*this">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="enterprise-section" wx:if="{{result.portrait.workStyle}}">
|
||
<text class="enterprise-label">工作风格</text>
|
||
<text class="card-text">{{result.portrait.workStyle}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 企业版:HR视角 hrView -->
|
||
<view class="card" wx:if="{{result.hrView}}">
|
||
<text class="card-title">HR视角</text>
|
||
<view class="enterprise-section" wx:if="{{result.hrView.roleRecommend}}">
|
||
<text class="enterprise-label">岗位推荐</text>
|
||
<view wx:if="{{result.hrView.roleRecommend.bestFit && result.hrView.roleRecommend.bestFit.length > 0}}">
|
||
<text class="enterprise-sublabel">最适合</text>
|
||
<view class="enterprise-tags">
|
||
<text class="enterprise-tag" wx:for="{{result.hrView.roleRecommend.bestFit}}" wx:key="*this">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
<view wx:if="{{result.hrView.roleRecommend.notSuitable && result.hrView.roleRecommend.notSuitable.length > 0}}" style="margin-top: 12rpx;">
|
||
<text class="enterprise-sublabel">不适合</text>
|
||
<view class="enterprise-tags">
|
||
<text class="enterprise-tag risk" wx:for="{{result.hrView.roleRecommend.notSuitable}}" wx:key="*this">{{item}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="enterprise-section" wx:if="{{result.hrView.lifecycle}}">
|
||
<text class="enterprise-label">成长周期</text>
|
||
<view class="lifecycle-list">
|
||
<view class="lifecycle-item" wx:if="{{result.hrView.lifecycle.onboarding}}">
|
||
<text class="lifecycle-key">入职适应</text>
|
||
<text class="lifecycle-val">{{result.hrView.lifecycle.onboarding}}</text>
|
||
</view>
|
||
<view class="lifecycle-item" wx:if="{{result.hrView.lifecycle.probation}}">
|
||
<text class="lifecycle-key">试用期</text>
|
||
<text class="lifecycle-val">{{result.hrView.lifecycle.probation}}</text>
|
||
</view>
|
||
<view class="lifecycle-item" wx:if="{{result.hrView.lifecycle.growth}}">
|
||
<text class="lifecycle-key">成长期</text>
|
||
<text class="lifecycle-val">{{result.hrView.lifecycle.growth}}</text>
|
||
</view>
|
||
<view class="lifecycle-item" wx:if="{{result.hrView.lifecycle.retention}}">
|
||
<text class="lifecycle-key">留人因素</text>
|
||
<text class="lifecycle-val">{{result.hrView.lifecycle.retention}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="enterprise-section" wx:if="{{result.hrView.performance}}">
|
||
<text class="enterprise-label">绩效潜力</text>
|
||
<text class="card-text" wx:if="{{result.hrView.performance.potential}}">潜力:{{result.hrView.performance.potential}}</text>
|
||
<view wx:if="{{result.hrView.performance.drivers && result.hrView.performance.drivers.length > 0}}" style="margin-top: 8rpx;">
|
||
<text class="enterprise-sublabel">驱动因子:</text>
|
||
<text class="card-text">{{result.hrView.performance.drivers.join('、')}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="enterprise-section" wx:if="{{result.hrView.teamFit}}">
|
||
<text class="enterprise-label">团队适配</text>
|
||
<text class="card-text">{{result.hrView.teamFit.bestTeam || ''}}</text>
|
||
<text class="card-text" wx:if="{{result.hrView.teamFit.manageAdvice}}" style="margin-top: 8rpx; display: block;">管理建议:{{result.hrView.teamFit.manageAdvice}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 企业版:老板视角 bossView -->
|
||
<view class="card boss-card" wx:if="{{result.bossView}}">
|
||
<text class="card-title">老板视角</text>
|
||
<text class="boss-headline" wx:if="{{result.bossView.headline}}">{{result.bossView.headline}}</text>
|
||
<view class="boss-metrics" wx:if="{{result.bossView.metrics && result.bossView.metrics.length > 0}}">
|
||
<view class="boss-metric" wx:for="{{result.bossView.metrics}}" wx:key="label">
|
||
<text class="boss-metric-label">{{item.label}}</text>
|
||
<text class="boss-metric-value {{item.level}}">{{item.value}}</text>
|
||
</view>
|
||
</view>
|
||
<text class="card-text" wx:if="{{result.bossView.costInsight}}" style="margin-top: 16rpx;">用人成本预判:{{result.bossView.costInsight}}</text>
|
||
</view>
|
||
|
||
</block>
|
||
|
||
<!-- 成交链路已迁至底部固定操作栏 -->
|
||
<view class="face-journey-deprecated" wx:if="{{false}}">
|
||
<view class="face-journey__title">
|
||
<text class="face-journey__title-main">继续下一步</text>
|
||
<text class="face-journey__title-sub">完整面相 + 性格报告只差两步</text>
|
||
</view>
|
||
|
||
<view class="face-journey-step face-journey-step--purple" bindtap="goToQuestionnaireFromFace">
|
||
<view class="face-journey-step__no">01</view>
|
||
<view class="face-journey-step__body">
|
||
<text class="face-journey-step__title">补做四套性格测评</text>
|
||
<text class="face-journey-step__desc">MBTI · PDP · DISC · SBTI 各测一次,面相 + 问卷组合才解锁完整人格画像。</text>
|
||
</view>
|
||
<text class="face-journey-step__arrow">›</text>
|
||
</view>
|
||
|
||
<view class="face-journey-step face-journey-step--indigo" bindtap="goToDeepServiceFromFace">
|
||
<view class="face-journey-step__no">02</view>
|
||
<view class="face-journey-step__body">
|
||
<text class="face-journey-step__title">升级深度解读方案</text>
|
||
<text class="face-journey-step__desc">个人深读 / 团队适配 / 企业岗位匹配。综合面相、性格与行为风格出具可落地建议。</text>
|
||
</view>
|
||
<text class="face-journey-step__arrow">›</text>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
</view>
|
||
|
||
<!-- 固定底部操作栏:三按钮常驻 -->
|
||
<view class="result-action-bar" wx:if="{{!isAnalyzing && showResult && !hasError && !phoneLoginGate}}">
|
||
<view class="result-action-bar__btn result-action-bar__btn--test" bindtap="goToQuestionnaireFromFace">
|
||
<text class="result-action-bar__ic">🧠</text>
|
||
<text class="result-action-bar__label">详细性格测试</text>
|
||
</view>
|
||
<view class="result-action-bar__btn result-action-bar__btn--deep" bindtap="goToDeepServiceFromFace">
|
||
<text class="result-action-bar__ic">💎</text>
|
||
<text class="result-action-bar__label">找专家·深度解读</text>
|
||
</view>
|
||
<button class="result-action-bar__btn result-action-bar__btn--share" open-type="share">
|
||
<text class="result-action-bar__ic">📣</text>
|
||
<view class="result-action-bar__share-body">
|
||
<text class="result-action-bar__label">分享赚</text>
|
||
<text class="result-action-bar__label-hl">90%</text>
|
||
</view>
|
||
</button>
|
||
</view>
|
||
|
||
<invite-code-dialog
|
||
visible="{{showInviteCodeDialog}}"
|
||
bind:skip="onInviteCodeSkip"
|
||
bind:success="onInviteCodeSuccess"
|
||
/>
|
||
</view>
|