Files
2026-02-13 15:43:40 +08:00

114 lines
4.9 KiB
Plaintext
Raw Permalink 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="container">
<!-- 用户信息填写弹窗 -->
<view class="user-info-modal" wx:if="{{showUserInfoModal}}">
<view class="modal-mask"></view>
<view class="modal-content">
<view class="modal-title">填写你的信息</view>
<view class="modal-body">
<view class="avatar-section">
<button class="avatar-wrapper" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
<image class="avatar" src="{{userInfo.avatarUrl || '/images/default-avatar.png'}}" mode="aspectFill"></image>
<view class="avatar-tip">点击选择头像</view>
</button>
</view>
<input type="nickname" class="nickname-input-modal" placeholder="请输入昵称" value="{{userInfo.nickName}}" bindchange="onNicknameChange" />
</view>
<view class="modal-footer">
<button class="modal-btn cancel" bindtap="onCancelUserInfo">取消</button>
<button class="modal-btn confirm" bindtap="onConfirmUserInfo">确定</button>
</view>
</view>
</view>
<!-- 聚会信息 -->
<view class="room-info">
<view class="room-title" bindtap="onEditRoomName">{{roomName}}</view>
<view class="room-tags">
<picker mode="selector" range="{{keywordOptions}}" value="{{keywordIndex}}" bindchange="onKeywordChange">
<view class="tag keyword-tag">{{keywords}}</view>
</picker>
<view class="time-tag-picker">
<picker mode="date" value="{{meetDate}}" bindchange="onDateChange" class="time-picker">
<view class="tag time-tag">
{{meetDate || '选择日期'}}
</view>
</picker>
<picker mode="time" value="{{meetTimeOnly}}" bindchange="onTimeChange" class="time-picker">
<view class="tag time-tag">
{{meetTimeOnly || '选择时间'}}
</view>
</picker>
</view>
</view>
<!-- 特殊需求直接编辑 -->
<view class="requirements-section {{requirements || editingRequirements ? '' : 'empty'}}" bindtap="onEditRequirements">
<view class="requirements-label" wx:if="{{requirements || editingRequirements}}">特殊需求</view>
<textarea
wx:if="{{editingRequirements}}"
class="requirements-textarea"
placeholder="如需要停车位、环境安静、有Wi-Fi等"
value="{{requirements}}"
bindinput="onRequirementsInput"
bindblur="onRequirementsBlur"
bindconfirm="onRequirementsConfirm"
maxlength="200"
auto-focus="{{true}}"
show-confirm-bar="{{false}}"
/>
<view class="requirements-text" wx:elif="{{requirements}}">{{requirements}}</view>
<view class="requirements-text" wx:else>点击添加特殊需求</view>
</view>
</view>
<!-- 顶部统计信息 -->
<view class="header">
<view class="stats">
<text class="stat-item">参与成员 {{members.length}}人</text>
<text class="stat-divider">|</text>
<text class="stat-item ready-count">已就位 {{readyCount}}人</text>
</view>
<view class="limit-tip">最多8人</view>
</view>
<!-- 成员列表 -->
<scroll-view scroll-y class="member-list">
<block wx:for="{{members}}" wx:key="openid">
<view class="member-item {{item.location ? 'ready' : 'waiting'}}"
bindtap="onAddMemberLocation"
bindlongpress="{{isCreator && item.openid !== currentUserOpenId ? 'onRemoveMember' : ''}}"
data-openid="{{item.openid}}"
data-nickname="{{item.nickName}}"
data-istest="{{item.isTestMember}}">
<image class="avatar" src="{{item.avatarUrl || '/images/default-avatar.png'}}" mode="aspectFill"></image>
<view class="info">
<view class="nickname">
{{item.nickName}}
<text wx:if="{{item.openid === currentUserOpenId}}" class="me-tag">(我)</text>
</view>
<view class="status">
{{item.location ? item.location.name || '已选定位置' : '等待添加位置...'}}
</view>
</view>
<view class="status-icon">{{item.location ? '√' : '○'}}</view>
</view>
</block>
</scroll-view>
<!-- 测试按钮(浮动) - 已注释 -->
<!-- <view class="test-float-btn" bindtap="onAddTestMember" wx:if="{{true}}">
<text>+</text>
</view> -->
<!-- 底部操作按钮 -->
<view class="footer-actions">
<button class="action-btn secondary-btn" bindtap="onAddLocation">添加/修改我的位置</button>
<button class="action-btn secondary-btn" open-type="share">邀请好友</button>
<button wx:if="{{!isCreator && hasJoined}}" class="action-btn warning-btn" bindtap="onLeaveRoom">退出聚会</button>
<button class="action-btn primary-btn" bindtap="onCalculate" loading="{{calculating}}" disabled="{{calculating}}">
{{calculating ? '计算中...' : '开始计算'}}
</button>
<button class="action-btn result-btn {{hasResult ? '' : 'disabled'}}" bindtap="onViewResult">查看结果</button>
</view>
</view>