- 超级个体:去掉首位特例;列表仅展示有头像且非微信默认昵称(vip.go) - 个人资料:居中头像、低调联系方式、点头像优先走存客宝 lead(ckbLeadToken) - 阅读页分享朋友圈复制与 toast 去重 - soul-api: miniprogram users 带 ckbLeadToken;其它 handler 与路由调整 - 脚本:content_upload、miniprogram 上传辅助等 Made-with: Cursor
191 lines
9.7 KiB
Plaintext
191 lines
9.7 KiB
Plaintext
<!-- 卡若创业派对 - 超级个体详情(居中头像区 + 低调联系方式 + 信息卡) -->
|
||
<view class="page">
|
||
<view class="nav-bar" style="padding-top: {{statusBarHeight}}px;">
|
||
<view class="nav-back" bindtap="goBack">
|
||
<icon name="chevron-left" size="44" color="#5EEAD4" customClass="nav-icon"></icon>
|
||
</view>
|
||
<text class="nav-title">个人资料</text>
|
||
<view class="nav-placeholder"></view>
|
||
</view>
|
||
<view style="height: {{statusBarHeight + 44}}px;"></view>
|
||
|
||
<scroll-view scroll-y class="scroll-wrap" style="height: calc(100vh - {{navBarTotalPx}}px);" wx:if="{{member}}">
|
||
<!-- 首屏:居中头像 + 昵称 + 标签;点头像走添加微信引导(无独立「链接 TA」大按钮) -->
|
||
<view class="shell">
|
||
<view class="shell-glow"></view>
|
||
<view class="hero-profile">
|
||
<view class="hero-avatar-block" bindtap="startLinkFlow" hover-class="hero-avatar-block-hover" hover-stay-time="80">
|
||
<view class="avatar-outer">
|
||
<view class="avatar-wrap {{member.isVip ? 'vip-ring' : ''}}">
|
||
<image class="avatar-img" wx:if="{{member.avatar}}" src="{{member.avatar}}" mode="aspectFill"/>
|
||
<view class="avatar-ph" wx:else><text>{{(member.name && member.name[0]) || '创'}}</text></view>
|
||
</view>
|
||
<view class="vip-tag" wx:if="{{member.isVip}}">VIP</view>
|
||
</view>
|
||
<text class="profile-name">{{member.name}}</text>
|
||
<view class="profile-tags profile-tags-modern" wx:if="{{member.mbti || member.region}}">
|
||
<text class="tag tag-mbti" wx:if="{{member.mbti}}">{{member.mbti}}</text>
|
||
<view class="tag tag-region" wx:if="{{member.region}}">
|
||
<icon name="map-pin" size="22" color="currentColor" customClass="pin-icon"></icon>
|
||
<text>{{member.region}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="contact-rows contact-rows-subtle">
|
||
<view
|
||
class="link-chip link-chip-subtle {{member.contactUnlocked ? 'link-chip-open' : ''}}"
|
||
wx:if="{{member.contactRaw || member.contactDisplay}}"
|
||
catchtap="tapContactRow"
|
||
>
|
||
<view class="link-chip-icon link-chip-icon-phone link-chip-icon-subtle">
|
||
<icon name="smartphone" size="26" color="rgba(148,163,184,0.85)" customClass="lc-ic"></icon>
|
||
</view>
|
||
<view class="link-chip-main">
|
||
<text class="link-chip-label link-chip-label-subtle">手机</text>
|
||
<text class="link-chip-val mono link-chip-val-subtle">{{member.contactDisplay || member.contactRaw}}</text>
|
||
</view>
|
||
<view class="link-chip-action link-chip-action-subtle">
|
||
<text>{{member.contactUnlocked ? '复制' : '解锁'}}</text>
|
||
<icon wx:if="{{!member.contactUnlocked}}" name="chevron-right" size="22" color="rgba(100,116,139,0.8)" customClass="lc-arr"></icon>
|
||
</view>
|
||
</view>
|
||
|
||
<view
|
||
class="link-chip link-chip-subtle {{member.wechatUnlocked ? 'link-chip-open' : ''}}"
|
||
wx:if="{{member.wechatRaw || member.wechatDisplay}}"
|
||
catchtap="tapWechatRow"
|
||
>
|
||
<view class="link-chip-icon link-chip-icon-wx link-chip-icon-subtle">
|
||
<icon name="message-circle" size="26" color="rgba(148,163,184,0.85)" customClass="lc-ic"></icon>
|
||
</view>
|
||
<view class="link-chip-main">
|
||
<text class="link-chip-label link-chip-label-subtle">微信</text>
|
||
<text class="link-chip-val mono link-chip-val-subtle">{{member.wechatDisplay || member.wechatRaw}}</text>
|
||
</view>
|
||
<view class="link-chip-action link-chip-action-subtle">
|
||
<text>{{member.wechatUnlocked ? '复制' : '解锁'}}</text>
|
||
<icon wx:if="{{!member.wechatUnlocked}}" name="chevron-right" size="22" color="rgba(100,116,139,0.8)" customClass="lc-arr"></icon>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="link-empty link-empty-subtle" wx:if="{{!(member.contactRaw || member.contactDisplay) && !(member.wechatRaw || member.wechatDisplay)}}">
|
||
<text class="link-empty-txt">暂未公开联系方式</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 一体化信息区(单卡片内分区) -->
|
||
<view class="mono-card mono-card-compact" wx:if="{{member.industry || member.position || member.businessScale || member.skills || member.bestMonth || member.achievement || member.turningPoint || member.canHelp || member.needHelp || member.project}}">
|
||
<!-- 职业画像 -->
|
||
<view class="mono-sec mono-sec-tight" wx:if="{{member.industry || member.position || member.businessScale}}">
|
||
<view class="mono-sec-head mono-sec-head-tight">
|
||
<text class="mono-sec-title">职业画像</text>
|
||
</view>
|
||
<view class="kv-grid">
|
||
<view class="kv-cell" wx:if="{{member.industry}}">
|
||
<text class="kv-k">行业</text>
|
||
<text class="kv-v">{{member.industry}}</text>
|
||
</view>
|
||
<view class="kv-cell" wx:if="{{member.position}}">
|
||
<text class="kv-k">职位</text>
|
||
<text class="kv-v">{{member.position}}</text>
|
||
</view>
|
||
<view class="kv-cell kv-cell-full" wx:if="{{member.businessScale}}">
|
||
<text class="kv-k">业务体量</text>
|
||
<text class="kv-v">{{member.businessScale}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="mono-divider" wx:if="{{(member.industry || member.position || member.businessScale) && member.skills}}"></view>
|
||
|
||
<!-- 核心能力 -->
|
||
<view class="mono-sec mono-sec-tight skills-showcase" wx:if="{{member.skills}}">
|
||
<view class="mono-sec-head mono-sec-head-tight">
|
||
<text class="mono-sec-title">我擅长</text>
|
||
</view>
|
||
<view class="skills-quote">
|
||
<text class="skills-quote-text">{{member.skills}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="mono-divider" wx:if="{{member.skills && (member.bestMonth || member.achievement || member.turningPoint)}}"></view>
|
||
|
||
<!-- 个人故事 -->
|
||
<view class="mono-sec mono-sec-tight" wx:if="{{member.bestMonth || member.achievement || member.turningPoint}}">
|
||
<view class="mono-sec-head mono-sec-head-tight">
|
||
<text class="mono-sec-title">个人故事</text>
|
||
</view>
|
||
<view class="story story-compact" wx:if="{{member.bestMonth}}">
|
||
<view class="story-head"><icon name="trophy" size="24" color="#FBBF24" customClass="story-icon"></icon><text class="story-q">最赚钱的一个月</text></view>
|
||
<text class="story-a">{{member.bestMonth}}</text>
|
||
</view>
|
||
<view class="story-gap story-gap-tight" wx:if="{{member.bestMonth && (member.achievement || member.turningPoint)}}"></view>
|
||
<view class="story story-compact" wx:if="{{member.achievement}}">
|
||
<view class="story-head"><icon name="star" size="24" color="#FBBF24" customClass="story-icon"></icon><text class="story-q">最有成就感的事</text></view>
|
||
<text class="story-a">{{member.achievement}}</text>
|
||
</view>
|
||
<view class="story-gap story-gap-tight" wx:if="{{member.achievement && member.turningPoint}}"></view>
|
||
<view class="story story-compact" wx:if="{{member.turningPoint}}">
|
||
<view class="story-head"><icon name="refresh-cw" size="24" color="#FBBF24" customClass="story-icon"></icon><text class="story-q">人生的转折点</text></view>
|
||
<text class="story-a">{{member.turningPoint}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="mono-divider" wx:if="{{(member.bestMonth || member.achievement || member.turningPoint) && (member.canHelp || member.needHelp)}}"></view>
|
||
|
||
<!-- 互助 -->
|
||
<view class="mono-sec mono-sec-tight" wx:if="{{member.canHelp || member.needHelp}}">
|
||
<view class="mono-sec-head mono-sec-head-tight">
|
||
<text class="mono-sec-title">互助需求</text>
|
||
</view>
|
||
<view class="help-grid">
|
||
<view class="help-tile help-give" wx:if="{{member.canHelp}}">
|
||
<text class="help-tile-tag">我能帮你</text>
|
||
<text class="help-tile-txt">{{member.canHelp}}</text>
|
||
</view>
|
||
<view class="help-tile help-need" wx:if="{{member.needHelp}}">
|
||
<text class="help-tile-tag need">我需要</text>
|
||
<text class="help-tile-txt">{{member.needHelp}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="mono-divider" wx:if="{{(member.canHelp || member.needHelp) && member.project}}"></view>
|
||
|
||
<view class="mono-sec mono-sec-tight" wx:if="{{member.project}}">
|
||
<view class="mono-sec-head mono-sec-head-tight">
|
||
<text class="mono-sec-title">项目介绍</text>
|
||
</view>
|
||
<text class="proj-body proj-body-compact">{{member.project}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 底部:分享 + 双入口(同一视觉块) -->
|
||
<view class="footer-panel">
|
||
<view class="footer-pills">
|
||
<view class="pill pill-gold" bindtap="goToVip">
|
||
<icon name="sparkles" size="30" color="#FBBF24" customClass="pill-ic"></icon>
|
||
<text class="pill-txt">成为超级个体</text>
|
||
</view>
|
||
<view class="pill pill-teal" bindtap="goToMatch">
|
||
<icon name="users" size="30" color="#5EEAD4" customClass="pill-ic"></icon>
|
||
<text class="pill-txt">找更多伙伴</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="scroll-pad"></view>
|
||
</scroll-view>
|
||
|
||
<view class="state-wrap" wx:if="{{loading}}">
|
||
<view class="loading-dot"></view>
|
||
<text class="state-txt">加载中...</text>
|
||
</view>
|
||
<view class="state-wrap" wx:if="{{!loading && !member}}">
|
||
<icon name="user" size="80" color="#3a3a3c" customClass="state-emoji"></icon>
|
||
<text class="state-txt">暂无该超级个体信息</text>
|
||
</view>
|
||
</view>
|