|
@@ -1,126 +1,127 @@
|
|
|
<template>
|
|
<template>
|
|
|
<view class="edit-profile">
|
|
<view class="edit-profile">
|
|
|
- <!-- 顶部导航栏 -->
|
|
|
|
|
- <view class="header">
|
|
|
|
|
- <view class="back-btn" @click="handleBack">
|
|
|
|
|
- <text class="back-icon">←</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <text class="header-title">编辑资料</text>
|
|
|
|
|
- <view class="right-empty"></view>
|
|
|
|
|
|
|
+ <!-- 顶部导航栏 -->
|
|
|
|
|
+ <view class="header">
|
|
|
|
|
+ <view class="back-btn" @click="handleBack">
|
|
|
|
|
+ <text class="back-icon">←</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <text class="header-title">编辑资料</text>
|
|
|
|
|
+ <view class="right-empty"></view>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <scroll-view scroll-y class="content">
|
|
|
|
|
- <!-- 头像上传区域 -->
|
|
|
|
|
- <view class="avatar-section">
|
|
|
|
|
- <view class="avatar-container">
|
|
|
|
|
- <image class="avatar" :src="userInfo.avatar || defaultAvatar" mode="aspectFill"></image>
|
|
|
|
|
- <view class="avatar-upload-btn" @click="handleAvatarUpload">
|
|
|
|
|
- <text class="upload-icon">📷</text>
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+ <scroll-view scroll-y class="content">
|
|
|
|
|
+ <!-- 头像上传区域 -->
|
|
|
|
|
+ <view class="avatar-section">
|
|
|
|
|
+ <view class="avatar-container">
|
|
|
|
|
+ <image class="avatar" :src="userInfo.avatar || defaultAvatar" mode="aspectFill"></image>
|
|
|
|
|
+ <view class="avatar-upload-btn" @click="handleAvatarUpload">
|
|
|
|
|
+ <text class="upload-icon">📷</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <text class="avatar-text">更换头像</text>
|
|
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <text class="avatar-text">更换头像</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 表单区域 -->
|
|
|
|
|
- <view class="form-section">
|
|
|
|
|
- <!-- 姓名 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">👤</text>
|
|
|
|
|
- <text class="label-text">姓名</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <input
|
|
|
|
|
- class="form-input"
|
|
|
|
|
- v-model="userInfo.name"
|
|
|
|
|
- placeholder="请输入姓名"
|
|
|
|
|
- placeholder-style="color: #999"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <!-- 表单区域 -->
|
|
|
|
|
+ <view class="form-section">
|
|
|
|
|
+ <!-- 姓名 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">👤</text>
|
|
|
|
|
+ <text class="label-text">姓名</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <input
|
|
|
|
|
+ class="form-input"
|
|
|
|
|
+ v-model="userInfo.name"
|
|
|
|
|
+ placeholder="请输入姓名"
|
|
|
|
|
+ placeholder-style="color: #999"
|
|
|
|
|
+ >
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 性别 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">⚧️</text>
|
|
|
|
|
- <text class="label-text">性别</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <picker class="form-picker gender-picker" @change="handleGenderChange" :value="genderIndex" :range="genderOptions">
|
|
|
|
|
- <view class="picker-content">
|
|
|
|
|
- {{ userInfo.gender || '请选择性别' }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </picker>
|
|
|
|
|
|
|
+ <!-- 性别 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">⚧️</text>
|
|
|
|
|
+ <text class="label-text">性别</text>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
- <!-- 个人简介 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">📝</text>
|
|
|
|
|
- <text class="label-text">个人简介</text>
|
|
|
|
|
|
|
+ <picker class="form-picker gender-picker" @change="handleGenderChange" :value="genderIndex"
|
|
|
|
|
+ :range="genderOptions">
|
|
|
|
|
+ <view class="picker-content">
|
|
|
|
|
+ {{ userInfo.gender || '请选择性别' }}
|
|
|
</view>
|
|
</view>
|
|
|
- <textarea
|
|
|
|
|
- class="form-textarea"
|
|
|
|
|
- v-model="userInfo.bio"
|
|
|
|
|
- placeholder="请输入个人简介"
|
|
|
|
|
- placeholder-style="color: #999"
|
|
|
|
|
- maxlength="200"
|
|
|
|
|
- auto-height
|
|
|
|
|
- ></textarea>
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+ </picker>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 邮箱 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">📧</text>
|
|
|
|
|
- <text class="label-text">邮箱</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <input
|
|
|
|
|
- class="form-input"
|
|
|
|
|
- v-model="userInfo.email"
|
|
|
|
|
- placeholder="请输入邮箱"
|
|
|
|
|
- placeholder-style="color: #999"
|
|
|
|
|
- type="email"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <!-- 个人简介 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">📝</text>
|
|
|
|
|
+ <text class="label-text">个人简介</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <textarea
|
|
|
|
|
+ class="form-textarea"
|
|
|
|
|
+ v-model="userInfo.bio"
|
|
|
|
|
+ placeholder="请输入个人简介"
|
|
|
|
|
+ placeholder-style="color: #999"
|
|
|
|
|
+ maxlength="200"
|
|
|
|
|
+ auto-height
|
|
|
|
|
+ ></textarea>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 省市区选择 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">📍</text>
|
|
|
|
|
- <text class="label-text">所在地区</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <picker
|
|
|
|
|
- class="form-picker"
|
|
|
|
|
- mode="multiSelector"
|
|
|
|
|
- :value="multiIndex"
|
|
|
|
|
- :range="multiArray"
|
|
|
|
|
- @columnchange="handleColumnChange"
|
|
|
|
|
- @change="handleMultiPickerChange"
|
|
|
|
|
- >
|
|
|
|
|
- <view class="picker-content">{{ selectedArea || '请选择地区' }}</view>
|
|
|
|
|
- </picker>
|
|
|
|
|
|
|
+ <!-- 邮箱 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">📧</text>
|
|
|
|
|
+ <text class="label-text">邮箱</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <input
|
|
|
|
|
+ class="form-input"
|
|
|
|
|
+ v-model="userInfo.email"
|
|
|
|
|
+ placeholder="请输入邮箱"
|
|
|
|
|
+ placeholder-style="color: #999"
|
|
|
|
|
+ type="email"
|
|
|
|
|
+ >
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 详细地址 -->
|
|
|
|
|
- <view class="form-item">
|
|
|
|
|
- <view class="form-label">
|
|
|
|
|
- <text class="label-icon">🏠</text>
|
|
|
|
|
- <text class="label-text">详细地址</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <textarea
|
|
|
|
|
- class="form-textarea"
|
|
|
|
|
- v-model="userInfo.address_detail"
|
|
|
|
|
- placeholder="请输入详细地址"
|
|
|
|
|
- placeholder-style="color: #999"
|
|
|
|
|
- maxlength="255"
|
|
|
|
|
- auto-height
|
|
|
|
|
- ></textarea>
|
|
|
|
|
|
|
+ <!-- 省市区选择 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">📍</text>
|
|
|
|
|
+ <text class="label-text">所在地区</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <picker
|
|
|
|
|
+ class="form-picker"
|
|
|
|
|
+ mode="multiSelector"
|
|
|
|
|
+ :value="multiIndex"
|
|
|
|
|
+ :range="multiArray"
|
|
|
|
|
+ @columnchange="handleColumnChange"
|
|
|
|
|
+ @change="handleMultiPickerChange"
|
|
|
|
|
+ >
|
|
|
|
|
+ <view class="picker-content">{{ selectedArea || '请选择地区' }}</view>
|
|
|
|
|
+ </picker>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 保存按钮 -->
|
|
|
|
|
- <view class="save-btn-section">
|
|
|
|
|
- <button class="save-btn" @click="handleSave">保存</button>
|
|
|
|
|
|
|
+ <!-- 详细地址 -->
|
|
|
|
|
+ <view class="form-item">
|
|
|
|
|
+ <view class="form-label">
|
|
|
|
|
+ <text class="label-icon">🏠</text>
|
|
|
|
|
+ <text class="label-text">详细地址</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <textarea
|
|
|
|
|
+ class="form-textarea"
|
|
|
|
|
+ v-model="userInfo.address_detail"
|
|
|
|
|
+ placeholder="请输入详细地址"
|
|
|
|
|
+ placeholder-style="color: #999"
|
|
|
|
|
+ maxlength="255"
|
|
|
|
|
+ auto-height
|
|
|
|
|
+ ></textarea>
|
|
|
</view>
|
|
</view>
|
|
|
- </scroll-view>
|
|
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 保存按钮 -->
|
|
|
|
|
+ <view class="save-btn-section">
|
|
|
|
|
+ <button class="save-btn" @click="handleSave">保存</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </scroll-view>
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -500,7 +501,7 @@ export default {
|
|
|
|
|
|
|
|
/* 性别选择器特定样式 */
|
|
/* 性别选择器特定样式 */
|
|
|
.gender-picker {
|
|
.gender-picker {
|
|
|
- width: 10%;
|
|
|
|
|
|
|
+ width: 25%;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.form-textarea {
|
|
.form-textarea {
|