Files
youlegames/codes/minipro/calculation/miniprogram/pages/profile/profile.wxml

107 lines
5.1 KiB
Plaintext

<!--pages/profile/profile.wxml-->
<scroll-view class="scrollarea" scroll-y type="list">
<view class="container">
<!-- 用户信息卡片 -->
<view class="user-card">
<view class="settings-btn" bindtap="onSettingsTap" wx:if="{{playerid}}">
<text class="settings-icon">⚙</text>
</view>
<block wx:if="{{!hasUserInfo}}">
<!-- 头像展示 -->
<view class="avatar-wrapper">
<!-- mp 模式:可点击选择头像 -->
<button wx:if="{{authMode === 'mp'}}" class="avatar-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
<image class="avatar" src="{{userInfo.avatarUrl}}"></image>
</button>
<!-- oa 模式:只读 -->
<image wx:else class="avatar" src="{{userInfo.avatarUrl}}"></image>
</view>
<!-- 昵称展示 -->
<view class="nickname-wrapper">
<!-- mp 模式:输入框 -->
<input wx:if="{{authMode === 'mp'}}" type="nickname" class="nickname-input" placeholder="请输入昵称" value="{{userInfo.nickName}}" bindchange="onNicknameChange"/>
<!-- oa 模式:文本 -->
<text wx:else class="nickname-text">{{userInfo.nickName || '授权获取微信信息'}}</text>
</view>
<!-- 玩家详细信息展示 -->
<view wx:if="{{playerid}}" class="info-grid">
<view class="info-item">
<text class="label">ID</text>
<text class="value">{{playerid}}</text>
</view>
<view class="info-item">
<text class="label">性别</text>
<view class="gender-box {{userInfo.gender == 2 ? 'female' : 'male'}}">
<text class="gender-icon">{{userInfo.gender == 2 ? '♀' : '♂'}}</text>
<text>{{userInfo.gender == 2 ? '女' : '男'}}</text>
</view>
</view>
<view class="info-item">
<text class="label">手机</text>
<text class="value" wx:if="{{phoneNumber}}">{{phoneNumber}}</text>
<text class="value" wx:else style="color: #DC8B70; font-weight: bold;">未绑定</text>
</view>
</view>
</block>
</view>
<!-- 操作区域 -->
<view class="action-area">
<!-- 提示文字 -->
<view class="login-hint">{{loginHint}}</view>
<block wx:if="{{!hasUserInfo}}">
<!-- 未登录/未授权状态:显示登录按钮 -->
<block wx:if="{{!playerid}}">
<button class="login-btn" bindtap="goOfficialAccountAuth">微信一键登录</button>
</block>
<!-- 已授权状态:显示后续操作 -->
<block wx:else>
<!-- 手机号按钮 -->
<button wx:if="{{!phoneNumber}}" class="login-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">绑定手机号</button>
<block wx:else>
<!-- 验证码区域 -->
<view class="verification-area">
<button class="login-btn" bindtap="getVerificationCode">生成随机数</button>
<view wx:if="{{verificationCode}}" class="code-display">
<text class="code-text" user-select="{{true}}">{{verificationCode}}</text>
<view class="copy-btn" bindtap="copyVerificationCode">复制</view>
</view>
</view>
<button wx:if="{{isTestEnabled}}" class="secondary-btn" bindtap="testLoginWithPhone" style="margin-top: 20rpx;">测试登录(带验证码)</button>
</block>
</block>
</block>
</view>
<!-- 更多设置菜单 (新增) -->
<view class="menu-list" style="margin-top: 30rpx; width: 100%; border-radius: 12rpx; overflow: hidden; background: #fff;">
<view class="menu-item" bindtap="goToHistory" style="padding: 30rpx; display: flex; justify-content: space-between; border-bottom: 1rpx solid #eee;">
<text>计算历史</text>
<text style="color: #999;">></text>
</view>
<view class="menu-item" bindtap="goToPrivacy" style="padding: 30rpx; display: flex; justify-content: space-between; border-bottom: 1rpx solid #eee;">
<text>隐私政策</text>
<text style="color: #999;">></text>
</view>
<view class="menu-item" bindtap="goToAbout" style="padding: 30rpx; display: flex; justify-content: space-between; border-bottom: 1rpx solid #eee;">
<text>关于我们</text>
<text style="color: #999;">></text>
</view>
<button open-type="feedback" class="menu-item" style="width: 100%; text-align: left; padding: 30rpx; display: flex; justify-content: space-between; background: #fff; font-weight: normal; margin: 0; line-height: 1.4;">
<text>意见反馈</text>
<text style="color: #999;">></text>
</button>
</view>
<!-- 隐私协议弹窗 -->
<privacy-popup></privacy-popup>
</view>
</scroll-view>