完成一键登录和支付功能

This commit is contained in:
future
2026-06-28 14:49:21 +08:00
parent 74876e0923
commit 09e587cb65
94 changed files with 10283 additions and 2665 deletions
+27 -37
View File
@@ -162,50 +162,38 @@
</view>
</view>
<view class="Pixso-frame-2_858"></view>
<view class="Pixso-frame-2_859">
<view class="frame-content-2_859">
<text class="Pixso-paragraph-2_860">微信</text>
<text class="Pixso-paragraph-2_861">已授权绑定</text>
<view class="stroke-wrapper-2_862">
<view class="Pixso-frame-2_862">
<text class="Pixso-paragraph-2_863">已绑定</text>
<view class="Pixso-frame-2_864">
<view class="frame-content-2_864">
<text class="Pixso-paragraph-2_865">健身目标</text>
<view class="goal-tags">
<view
v-for="goal in fitnessGoalOptions"
:key="goal"
class="goal-tag"
:class="{ 'goal-tag--selected': isGoalSelected(goal) }"
hover-class="mi-tap-btn--hover"
:hover-stay-time="150"
@tap="toggleGoal(goal)"
>
<text class="goal-tag__text">{{ goal }}</text>
</view>
<view class="stroke-2_862"></view>
</view>
</view>
</view>
</view>
</view>
<view class="Pixso-frame-2_864">
<view class="frame-content-2_864">
<text class="Pixso-paragraph-2_865">健身目标</text>
<view class="goal-tags">
<view
v-for="goal in fitnessGoalOptions"
:key="goal"
class="goal-tag"
:class="{ 'goal-tag--selected': isGoalSelected(goal) }"
hover-class="mi-tap-btn--hover"
:hover-stay-time="150"
@tap="toggleGoal(goal)"
>
<text class="goal-tag__text">{{ goal }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="user-info-save-bar">
<view
class="user-info-save-bar__btn"
hover-class="mi-tap-save--hover"
:hover-stay-time="150"
@tap="handleSave"
>
<text class="user-info-save-bar__text">保存</text>
</view>
</view>
<view class="user-info-save-bar">
<view
class="user-info-save-bar__btn"
hover-class="mi-tap-save--hover"
:hover-stay-time="150"
@tap="handleSave"
>
<text class="user-info-save-bar__text">保存</text>
</view>
</view>
</template>
@@ -217,6 +205,7 @@ import MemberInfoSubNav from '@/components/memberInfo/MemberInfoSubNav.vue'
import { getUserInfo, updateUserInfo } from '@/api/main.js'
import { previewImage, persistChosenImage } from '@/common/memberInfo/media.js'
import { maskPhone, normalizePhoneForStore } from '@/common/memberInfo/format.js'
import { getOssUrl, OSS_BASE_URL } from '@/utils/request.js'
import {
validateName,
validatePhoneForRebind,
@@ -229,7 +218,8 @@ import {
} from '@/common/memberInfo/validate.js'
import { backToMemberCenter } from '@/common/constants/routes.js'
const DEFAULT_AVATAR = 'https://gymfuture.oss-cn-chengdu.aliyuncs.com/static/images/AvatarEditWrap.png'
const DEFAULT_AVATAR = getOssUrl('/static/headerImg/default.png')
const DEFAULT_NAME = '活氧舱用户'
const name = ref('')
const phone = ref('')
@@ -278,7 +268,7 @@ function mapApiToProfile(apiData) {
}
}
return {
name: apiData.nickname || '',
name: apiData.nickname || DEFAULT_NAME,
phone: apiData.phone || '',
gender: genderMap[apiData.gender] || 'female',
birthday: birthdayVal,