xiangqinxiaochengxu/miniprogram/pages/match/match.wxml
wsb1224 0b590ee580 6-28 完结修复
1. 互选页面分组显示
2. 加入ID查找用户的功能
3. 根据ID排序
2026-06-28 13:56:56 +08:00

144 lines
7.2 KiB
Plaintext
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.

<view class="page match-page {{source === 'activity' ? 'match-page-activity' : ''}}">
<view wx:if="{{source === 'activity'}}" class="activity-mode-panel">
<view class="activity-mode-pill">活动模式</view>
<view class="activity-mode-title">{{activityTitle || '活动专属匹配'}}</view>
<view class="activity-mode-meta">
<view wx:if="{{stageText}}" class="activity-mode-meta-item">{{stageText}}</view>
<view wx:if="{{selectionSummaryText}}" class="activity-mode-meta-item">{{selectionSummaryText}}</view>
<view wx:if="{{activityMatchText}}" class="activity-mode-meta-item">{{activityMatchText}}</view>
</view>
<view class="activity-mode-actions">
<button class="ghost-btn activity-mode-btn" bindtap="goMyMatches">我的选择与结果</button>
</view>
</view>
<view wx:if="{{source !== 'activity'}}" class="hero-box">
<view>
<view class="hero-title">展示</view>
</view>
<button class="ai-btn {{aiMatching ? 'ai-btn-loading' : ''}}" bindtap="triggerAi" disabled="{{aiMatching}}">{{aiMatching ? '匹配中...' : '随机展示'}}</button>
</view>
<view wx:if="{{source === 'activity'}}" class="activity-ai-row">
<button class="ai-btn ai-btn-activity {{aiMatching ? 'ai-btn-loading' : ''}}" bindtap="triggerAi" disabled="{{aiMatching}}">{{aiMatching ? 'AI 推荐中...' : 'AI 智能推荐'}}</button>
</view>
<view wx:if="{{aiSuggestionCount || aiMatching}}" class="ai-status">{{getAiStatusText()}}<text wx:if="{{aiSuggestionCount}}"> · 共 {{aiSuggestionCount}} 人</text></view>
<view wx:if="{{loading}}" class="loading-tip">正在加载推荐候选人...</view>
<view wx:if="{{!loading && candidates.length}}" class="candidate-list">
<view
wx:for="{{candidates}}"
wx:key="user_id"
class="candidate-item"
data-index="{{index}}"
bindtap="openCandidateDetail"
>
<image wx:if="{{item.avatar_url}}" class="candidate-avatar" src="{{item.avatar_url}}" mode="aspectFill" />
<view wx:else class="candidate-avatar avatar-placeholder">用户</view>
<view class="candidate-content">
<view class="candidate-name-row">
<view class="candidate-name">{{item.nicknameText}}</view>
<view wx:if="{{item.hasMatchScore}}" class="score-chip-inline score-chip-inline--{{item.matchScoreLevel}}">{{item.matchScoreText}}</view>
</view>
<view class="candidate-meta">{{item.cityText}} · {{item.birthYearRangeText}}</view>
<view wx:if="{{item.educationText && item.educationText !== '学历未知'}}" class="candidate-meta">{{item.educationText}}</view>
<view wx:if="{{item.hobbiesText}}" class="candidate-meta">{{item.hobbiesText}}</view>
<view wx:if="{{item.personality_tags.length}}" class="candidate-tags">
<text wx:for="{{item.personality_tags}}" wx:for-item="tag" wx:key="*this" class="tag">{{tag}}</text>
</view>
</view>
<view class="candidate-arrow"></view>
</view>
</view>
<view wx:elif="{{!loading && !candidates.length}}" class="empty-card">
<view class="empty-title">{{source === 'activity' ? '本活动可匹配的候选人已看完' : '暂无活动'}}</view>
</view>
<view wx:if="{{activeCandidate}}" class="mask" bindtap="closeCard">
<view class="sheet" catchtap="noop">
<view class="sheet-header">
<image wx:if="{{activeCandidate.avatar_url}}" class="sheet-avatar" src="{{activeCandidate.avatar_url}}" mode="aspectFill" />
<view wx:else class="sheet-avatar sheet-avatar-placeholder">头像</view>
<view class="sheet-header-info">
<view class="sheet-nickname">{{activeCandidate.nicknameText}}</view>
<view class="sheet-meta">{{activeCandidate.cityText}} · {{activeCandidate.birthYearRangeText}}</view>
</view>
</view>
<view wx:if="{{activeCandidate.profileImages.length}}" class="sheet-gallery">
<image wx:for="{{activeCandidate.profileImages}}" wx:key="*this" class="sheet-gallery-image" src="{{item}}" mode="aspectFill" />
</view>
<view wx:if="{{activeCandidate.hasMatchScore}}" class="sheet-score">
<view class="sheet-score-label">匹配度</view>
<view class="sheet-score-value">{{activeCandidate.matchScoreText}}</view>
</view>
<view wx:if="{{activeCandidate.cityText && activeCandidate.cityText !== '城市未知'}}" class="sheet-section">
<view class="sheet-label">城市</view>
<view class="sheet-value">{{activeCandidate.cityText}}</view>
</view>
<view wx:if="{{activeCandidate.educationText && activeCandidate.educationText !== '学历未知'}}" class="sheet-section">
<view class="sheet-label">学历</view>
<view class="sheet-value">{{activeCandidate.educationText}}</view>
</view>
<view wx:if="{{activeCandidate.ageText}}" class="sheet-section">
<view class="sheet-label">年龄</view>
<view class="sheet-value">{{activeCandidate.ageText}}</view>
</view>
<view wx:if="{{activeCandidate.hobbiesText}}" class="sheet-section">
<view class="sheet-label">爱好</view>
<view class="sheet-value">{{activeCandidate.hobbiesText}}</view>
</view>
<view wx:if="{{activeCandidate.jobIndustryText}}" class="sheet-section">
<view class="sheet-label">行业</view>
<view class="sheet-value">{{activeCandidate.jobIndustryText}}</view>
</view>
<view wx:if="{{activeCandidate.jobCompanyText}}" class="sheet-section">
<view class="sheet-label">工作单位</view>
<view class="sheet-value">{{activeCandidate.jobCompanyText}}</view>
</view>
<view wx:if="{{activeCandidatePersonalityText}}" class="sheet-section">
<view class="sheet-label">性格</view>
<view class="sheet-value">{{activeCandidatePersonalityText}}</view>
</view>
<view wx:if="{{activeCandidate.selfIntroText}}" class="sheet-section sheet-section-intro">
<view class="sheet-label">自我介绍</view>
<view class="sheet-value sheet-intro">{{activeCandidate.selfIntroText}}</view>
</view>
<view wx:if="{{activeCandidate.hasMatchReasons}}" class="sheet-reasons">
<view class="sheet-reasons-title">推荐理由</view>
<view class="sheet-reasons-text">{{activeCandidate.matchReasonsText}}</view>
</view>
<view class="sheet-actions">
<button class="ghost-btn sheet-skip-btn" data-id="{{activeCandidate.user_id}}" bindtap="skipUser">跳过</button>
<button class="primary-btn sheet-like-btn" data-id="{{activeCandidate.user_id}}" bindtap="likeUser">{{source === 'activity' ? '加入我的选择' : '感兴趣'}}</button>
</view>
</view>
</view>
<view wx:if="{{mutualMatchVisible}}" class="success-mask" bindtap="closeMutualMatch">
<view class="success-card" catchtap="noop">
<view class="success-badge">MATCH</view>
<view class="success-title">匹配成功</view>
<view class="success-desc">你和 {{mutualMatchName}} 互相感兴趣,快去"我的选择与结果"查看更完整的信息吧。</view>
<view class="success-actions">
<button class="ghost-btn success-ghost-btn" bindtap="closeMutualMatch">稍后查看</button>
<button class="primary-btn" bindtap="goMyMatches">查看结果</button>
</view>
</view>
</view>
</view>