<!--pages/profile/personal-info.wxml-->
|
<view class="container">
|
<!-- 头像设置区域 -->
|
<view class="avatar-section">
|
<view class="avatar-row">
|
<view class="avatar-wrapper" bindtap="chooseAvatar">
|
<image class="avatar" src="{{userInfo.avatar || '/images/default-avatar.svg'}}" mode="aspectFill"></image>
|
<view class="avatar-overlay">
|
<text class="camera-icon">📷</text>
|
</view>
|
</view>
|
<text class="avatar-tip" bindtap="chooseAvatar">点击更换头像</text>
|
</view>
|
</view>
|
|
<!-- 个人信息表单 -->
|
<view class="form-section">
|
<!-- 姓名 -->
|
<view class="form-item">
|
<text class="label required">姓名</text>
|
<input
|
class="input"
|
value="{{userInfo.name}}"
|
placeholder="请输入姓名"
|
bindinput="onNameInput"
|
maxlength="20"
|
/>
|
</view>
|
|
<!-- 性别 -->
|
<view class="form-item">
|
<text class="label required">性别</text>
|
<view class="gender-selector">
|
<view
|
class="gender-option {{userInfo.gender === 'MALE' || userInfo.gender === '男' ? 'active' : ''}}"
|
bindtap="selectGender"
|
data-gender="MALE"
|
>
|
<text>男</text>
|
</view>
|
<view
|
class="gender-option {{userInfo.gender === 'FEMALE' || userInfo.gender === '女' ? 'active' : ''}}"
|
bindtap="selectGender"
|
data-gender="FEMALE"
|
>
|
<text>女</text>
|
</view>
|
</view>
|
</view>
|
|
<!-- 电话号码 -->
|
<view class="form-item">
|
<text class="label required">电话号码</text>
|
<view class="phone-wrapper">
|
<input
|
class="input phone-input"
|
value="{{userInfo.phone}}"
|
placeholder="请授权获取手机号"
|
disabled="{{true}}"
|
/>
|
<button
|
class="phone-btn"
|
open-type="getPhoneNumber"
|
bindgetphonenumber="getPhoneNumber"
|
wx:if="{{!userInfo.phone}}"
|
>
|
获取手机号
|
</button>
|
<text class="phone-status" wx:else>已绑定</text>
|
</view>
|
</view>
|
|
<!-- 生日 -->
|
<view class="form-item">
|
<text class="label">生日</text>
|
<picker
|
mode="date"
|
value="{{userInfo.birthday}}"
|
bindchange="onBirthdayChange"
|
start="1900-01-01"
|
end="{{currentDate}}"
|
>
|
<view class="picker-wrapper">
|
<text class="picker-text">{{userInfo.birthday || '请选择生日'}}</text>
|
<text class="picker-arrow">></text>
|
</view>
|
</picker>
|
</view>
|
|
|
</view>
|
|
<!-- 保存按钮 -->
|
<view class="save-section">
|
<button class="save-btn" bindtap="saveUserInfo" loading="{{saving}}">
|
{{saving ? '保存中...' : '保存'}}
|
</button>
|
</view>
|
</view>
|