Commit e743c4af authored by spc's avatar spc

fixed

parent 3add8d9d
...@@ -55,23 +55,23 @@ ...@@ -55,23 +55,23 @@
<view v-else-if="item.type === 'display'" class="form-input-box"> <view v-else-if="item.type === 'display'" class="form-input-box">
<view class="form-input" style="color: #222">{{ <view class="form-input" style="color: #222">{{
formData[item.name] || item.placeholder formData[item.name] || item.placeholder
}}</view> }}</view>
</view> </view>
<view v-else-if="item.type === 'display-obj'" class="form-input-box"> <view v-else-if="item.type === 'display-obj'" class="form-input-box">
<view class="form-input" style="color: #222">{{ <view class="form-input" style="color: #222">{{
getLabelByValue(item, formData[item.name]) getLabelByValue(item, formData[item.name])
}}</view> }}</view>
</view> </view>
<!-- 选择器类型 --> <!-- 选择器类型 -->
<picker-custom v-else-if="item.type === 'picker'" :mode="item.mode" :range="item.range" :value="item.mode === 'date' <picker-custom v-else-if="item.type === 'picker'" :mode="item.mode" :range="item.range" :value="item.mode === 'date'
? formData[item.name] ? formData[item.name]
: getPickerIndex(item) : getPickerIndex(item)
" :onPickerChange="(e) => onPickerChange(e, item.name)" " :onPickerChange="(e) => onPickerChange(e, item.name)"
:onLayerVisibleChange="(e) => (pageStatus.btnStatus = !e)" :onStatusChange="onDateStatusChange"> :onLayerVisibleChange="(e) => (pageStatus.btnStatus = !e)" :onStatusChange="onDateStatusChange">
<view class="form-input-box"> <view class="form-input-box">
<view class="form-input">{{ <view class="form-input">{{
getLabelByValue(item, formData[item.name]) || item.placeholder getLabelByValue(item, formData[item.name]) || item.placeholder
}}</view> }}</view>
<image class="form-input-icon" :src="$baseUrl + 'person/icon_arrow_yellow_right.png'" /> <image class="form-input-icon" :src="$baseUrl + 'person/icon_arrow_yellow_right.png'" />
</view> </view>
</picker-custom> </picker-custom>
...@@ -280,15 +280,7 @@ const formItems = ref([ ...@@ -280,15 +280,7 @@ const formItems = ref([
range: babyGenderMap.map((i) => i.label), range: babyGenderMap.map((i) => i.label),
mode: "custom", mode: "custom",
}, },
{ { label: "喂养方式", name: "feedingType", required: true, placeholder: "未选择", type: "picker", range: ["奶粉喂养", "母乳喂养", "母乳奶粉混合喂养"], mode: "custom", },
label: "喂养方式",
name: "feedingType",
required: false,
placeholder: "未选择",
type: "picker",
range: ["奶粉喂养", "母乳喂养", "母乳奶粉混合喂养"],
mode: "custom",
},
{ {
label: "孕周", label: "孕周",
name: "gestationalWeeks", name: "gestationalWeeks",
...@@ -543,7 +535,7 @@ const checkAndUpdateTaskResult = async () => { ...@@ -543,7 +535,7 @@ const checkAndUpdateTaskResult = async () => {
await integralStore.queryTodoResultServer(); await integralStore.queryTodoResultServer();
console.log('queryTodoResult:', integralStore.queryTodoResult); console.log('queryTodoResult:', integralStore.queryTodoResult);
if(integralStore.queryTodoResult?.success && integralStore.queryTodoResult?.data?.length > 0) { if (integralStore.queryTodoResult?.success && integralStore.queryTodoResult?.data?.length > 0) {
globalStore.isShowTaskComplete = true; globalStore.isShowTaskComplete = true;
globalStore.taskCompletePoints = integralStore.queryTodoResult.data[0]?.actualCredits; globalStore.taskCompletePoints = integralStore.queryTodoResult.data[0]?.actualCredits;
globalStore.taskCompleteTitle = integralStore.queryTodoResult.data[0]?.taskName; globalStore.taskCompleteTitle = integralStore.queryTodoResult.data[0]?.taskName;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<view class="form-item"> <view class="form-item">
<text class="label">收货人</text> <text class="label">收货人</text>
<input class="input" v-model="formData.name" placeholder="请输入收货人姓名" maxlength="30" <input class="input" v-model="formData.name" placeholder="请输入收货人姓名" maxlength="30"
@input="limitNameInput" /> @input="limitNameInput" placeholder-style="color: #BFBFBF;" />
<view class="wechat-import" @tap="importFromWechat"> <view class="wechat-import" @tap="importFromWechat">
<image class="wechat-icon" :src="$baseUrl + 'homepage/Q3Res/wechatIcon.png'" mode="aspectFit"> <image class="wechat-icon" :src="$baseUrl + 'homepage/Q3Res/wechatIcon.png'" mode="aspectFit">
</image> </image>
...@@ -14,14 +14,15 @@ ...@@ -14,14 +14,15 @@
<view class="form-item"> <view class="form-item">
<text class="label">手机号码</text> <text class="label">手机号码</text>
<input class="input" :class="{ 'error': phoneError }" v-model="formData.phone" placeholder="请输入手机号码" <input class="input" :class="{ 'error': phoneError }" v-model="formData.phone" placeholder="请输入手机号码"
type="number" maxlength="11" @input="validatePhone" /> type="number" maxlength="11" @input="validatePhone" placeholder-style="color: #BFBFBF;" />
<text v-if="phoneError" class="error-text">请输入正确的手机号码</text> <text v-if="phoneError" class="error-text">请输入正确的手机号码</text>
</view> </view>
<view class="form-item"> <view class="form-item">
<text class="label">所在地区</text> <text class="label">所在地区</text>
<view class="region-select" @tap="showRegionPicker"> <view class="region-select" @tap="showRegionPicker">
<text class="region-text">{{ formData.region || '请选择省/市/区' }}</text> <text class="region-text" :class="{ 'placeholder-color': !formData.region }">{{ formData.region ||
'请选择省/市/区' }}</text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" /> <image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view> </view>
</view> </view>
...@@ -29,20 +30,20 @@ ...@@ -29,20 +30,20 @@
<view class="form-item"> <view class="form-item">
<text class="label">详细地址</text> <text class="label">详细地址</text>
<input class="textarea" v-model="formData.detailAddress" placeholder="请填写详细地址" maxlength="100" <input class="textarea" v-model="formData.detailAddress" placeholder="请填写详细地址" maxlength="100"
@input="limitDetailAddress" /> @input="limitDetailAddress" placeholder-style="color: #BFBFBF;" />
<text class="char-count">{{ formData.detailAddress.length }}/100</text> <text class="char-count">{{ formData.detailAddress.length }}/100</text>
</view> </view>
<view class="form-item"> <view class="form-item">
<text class="label">门牌号</text> <text class="label">门牌号</text>
<input class="input" v-model="formData.houseNumber" placeholder="街道、门牌号等" maxlength="50" <input class="input" v-model="formData.houseNumber" placeholder="街道、门牌号等" maxlength="50"
@input="limitHouseNumber" /> @input="limitHouseNumber" placeholder-style="color: #BFBFBF;" />
<text class="char-count">{{ formData.houseNumber.length }}/50</text> <text class="char-count">{{ formData.houseNumber.length }}/50</text>
</view> </view>
<view class="default-switch" @tap="toggleDefault"> <view class="default-switch">
<text class="switch-text">设为默认地址</text> <text class="switch-text">设为默认地址</text>
<view class="switch" :class="{ 'active': formData.isDefault }"> <view class="switch" @tap="toggleDefault" :class="{ 'active': formData.isDefault }">
<view class="switch-dot" :class="{ 'active': formData.isDefault }"></view> <view class="switch-dot" :class="{ 'active': formData.isDefault }"></view>
</view> </view>
</view> </view>
...@@ -356,13 +357,13 @@ export default { ...@@ -356,13 +357,13 @@ export default {
isItemSelected(item, index) { isItemSelected(item, index) {
switch (this.currentLevel) { switch (this.currentLevel) {
case 0: case 0:
return this.selectedProvince && this.selectedProvince.id === item.code; return this.selectedProvince && this.selectedProvince.code === item.code;
case 1: case 1:
return this.selectedCity && this.selectedCity.id === item.code; return this.selectedCity && this.selectedCity.code === item.code;
case 2: case 2:
return this.selectedDistrict && this.selectedDistrict.id === item.code; return this.selectedDistrict && this.selectedDistrict.code === item.code;
case 3: case 3:
return this.selectedStreet && this.selectedStreet.id === item.code; return this.selectedStreet && this.selectedStreet.code === item.code;
default: default:
return false; return false;
} }
...@@ -398,9 +399,9 @@ export default { ...@@ -398,9 +399,9 @@ export default {
this.districts = []; this.districts = [];
this.streets = []; this.streets = [];
// 更新picker值并加载城市 // 更新picker值并加载城市,使用code而不是id
this.pickerValue = [provinceIndex, 0, 0, 0]; this.pickerValue = [provinceIndex, 0, 0, 0];
await this.loadCities(this.selectedProvince.id); await this.loadCities(this.selectedProvince.code);
} }
// 城市变化 // 城市变化
...@@ -412,9 +413,9 @@ export default { ...@@ -412,9 +413,9 @@ export default {
this.districts = []; this.districts = [];
this.streets = []; this.streets = [];
// 更新picker值并加载区县 // 更新picker值并加载区县,使用code而不是id
this.pickerValue = [provinceIndex, cityIndex, 0, 0]; this.pickerValue = [provinceIndex, cityIndex, 0, 0];
await this.loadDistricts(this.selectedCity.id); await this.loadDistricts(this.selectedCity.code);
} }
// 区县变化 // 区县变化
...@@ -424,9 +425,9 @@ export default { ...@@ -424,9 +425,9 @@ export default {
this.selectedStreet = null; this.selectedStreet = null;
this.streets = []; this.streets = [];
// 更新picker值并加载街道 // 更新picker值并加载街道,使用code而不是id
this.pickerValue = [provinceIndex, cityIndex, districtIndex, 0]; this.pickerValue = [provinceIndex, cityIndex, districtIndex, 0];
await this.loadStreets(this.selectedDistrict.id); await this.loadStreets(this.selectedDistrict.code);
} }
// 街道变化 // 街道变化
...@@ -682,7 +683,7 @@ export default { ...@@ -682,7 +683,7 @@ export default {
uni.showToast({ uni.showToast({
title: '已设为默认地址', title: '已设为默认地址',
icon: 'success' icon: 'none'
}); });
} catch (error) { } catch (error) {
console.error('设置默认地址失败:', error); console.error('设置默认地址失败:', error);
...@@ -946,17 +947,14 @@ export default { ...@@ -946,17 +947,14 @@ export default {
<style scoped> <style scoped>
.address-edit-container { .address-edit-container {
padding-bottom: 200rpx; background: var(--B10, #FAFAFA);
/* background-color: #F8F8F8; */ top: 0;
min-height: 100vh; height: 100vh;
} }
.form-container { .form-container {
padding: 10rpx; background: var(--B10, #FAFAFA);
/* background-color: #FFFFFF; */
border-radius: 20rpx;
margin: 20rpx;
overflow: hidden; overflow: hidden;
} }
...@@ -975,34 +973,42 @@ export default { ...@@ -975,34 +973,42 @@ export default {
font-size: 24rpx; font-size: 24rpx;
color: #999999; color: #999999;
margin-left: 20rpx; margin-left: 20rpx;
margin-right: 40rpx;
} }
.form-item { .form-item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 0; margin-bottom: 0;
padding: 20rpx; padding: 0 20rpx;
height: 104rpx;
border-bottom: 1rpx solid #f0f0f0; border-bottom: 1rpx solid #f0f0f0;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
.label { .label {
font-size: 30rpx; font-size: 26rpx;
color: #333333; color: #000;
width: 120rpx; width: 120rpx;
flex-shrink: 0; flex-shrink: 0;
margin-right: 20rpx; margin-left: 54rpx;
margin-right: 80rpx;
font-weight: 400;
} }
.input { .input {
flex: 1; flex: 1;
font-size: 30rpx; font-size: 24rpx;
color: #000;
padding: 0; padding: 0;
border: none; border: none;
outline: none; outline: none;
} }
/* 占位符样式已通过placeholder-style属性设置 */
.wechat-import { .wechat-import {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -1019,7 +1025,7 @@ export default { ...@@ -1019,7 +1025,7 @@ export default {
.textarea { .textarea {
flex: 1; flex: 1;
font-size: 30rpx; font-size: 24rpx;
min-height: 80rpx; min-height: 80rpx;
padding: 0; padding: 0;
resize: none; resize: none;
...@@ -1039,28 +1045,35 @@ export default { ...@@ -1039,28 +1045,35 @@ export default {
} }
.region-text { .region-text {
font-size: 30rpx; font-size: 24rpx;
color: #999999; color: #000;
}
.region-text.placeholder-color {
color: #BFBFBF;
} }
.arrow { .arrow {
width: 14rpx; width: 14rpx;
height: 23rpx; height: 23rpx;
margin-right: 40rpx;
} }
.default-switch { .default-switch {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 20rpx; padding: 0 20rpx;
height: 104rpx;
border-bottom: 1rpx solid #f0f0f0; border-bottom: 1rpx solid #f0f0f0;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
.switch-text { .switch-text {
font-size: 30rpx; font-size: 26rpx;
color: #333333; color: #000;
margin-left: 54rpx;
} }
.switch { .switch {
...@@ -1069,6 +1082,7 @@ export default { ...@@ -1069,6 +1082,7 @@ export default {
background-color: #E5E5E5; background-color: #E5E5E5;
border-radius: 48rpx; border-radius: 48rpx;
position: relative; position: relative;
margin-right: 40rpx;
transition: background-color 0.3s ease; transition: background-color 0.3s ease;
} }
......
...@@ -190,7 +190,7 @@ export default { ...@@ -190,7 +190,7 @@ export default {
if (this.isSubmitting) return; if (this.isSubmitting) return;
// 检查地址数量限制 // 检查地址数量限制
if (this.addressList.length >= 21) { if (this.addressList.length >= 20) {
uni.showToast({ uni.showToast({
title: '地址添加已经达到上限啦~', title: '地址添加已经达到上限啦~',
icon: 'none', icon: 'none',
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<text class="detail-title">详情信息</text> <text class="detail-title">详情信息</text>
<view class="detail-banner" v-if="goodsData.goodsContent"> <view class="detail-banner" v-if="goodsData.goodsContent">
<rich-text style="width: 100%; /* 或设置为具体的像素值 */ overflow-x: hidden;" class="banner-text" <rich-text style="width: 100%; /* 或设置为具体的像素值 */ overflow-x: hidden;" class="banner-text"
:nodes="formatRichText(goodsData.goodsContent)"></rich-text> :nodes="formatRichText(goodsData.goodsContent)"></rich-text>
</view> </view>
</view> </view>
</view> </view>
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
</view> </view>
<view class="product-details"> <view class="product-details">
<text class="product-points">{{ goodsData.points }}{{ goodsData.creditsTypeName || '积分' <text class="product-points">{{ goodsData.points }}{{ goodsData.creditsTypeName || '积分'
}}</text> }}</text>
<text class="product-stock">库存 {{ formatCount(goodsData.exchangeCount) }}</text> <text class="product-stock">库存 {{ formatCount(goodsData.exchangeCount) }}</text>
</view> </view>
</view> </view>
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<text class="quantity-label">选择数量 <text class="limit-text" v-if="goodsData.goodsLimit">(限购{{ <text class="quantity-label">选择数量 <text class="limit-text" v-if="goodsData.goodsLimit">(限购{{
goodsData.goodsLimit }}件)</text></text> goodsData.goodsLimit }}件)</text></text>
<view class="quantity-selector"> <view class="quantity-selector">
<image class="quantity-bg" :src="$baseUrl + 'homepage/Q3Res/objectSelectConBg.png'" <image class="quantity-bg" :src="$baseUrl + 'homepage/Q3Res/objectSelectConBg2.png'"
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="quantity-btn " @click="decreaseQuantity" :disabled="quantity <= 1">-</view> <view class="quantity-btn " @click="decreaseQuantity" :disabled="quantity <= 1">-</view>
<text class="quantity-value">{{ quantity }}</text> <text class="quantity-value">{{ quantity }}</text>
...@@ -599,16 +599,16 @@ export default { ...@@ -599,16 +599,16 @@ export default {
}; };
return levelMap[memberLevelName] || 1; return levelMap[memberLevelName] || 1;
}, },
// 富文本格式化处理函数 // 富文本格式化处理函数
formatRichText(html) { formatRichText(html) {
let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) { let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) {
match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, ''); match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, ''); match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, ''); match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
return match; return match;
}); });
newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) { newContent = newContent.replace(/style="[^"]+"/gi, function (match, capture) {
match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;'); match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
return match; return match;
}); });
...@@ -841,16 +841,19 @@ export default { ...@@ -841,16 +841,19 @@ export default {
break; break;
case 'canExchange': case 'canExchange':
default: default:
message = '可以兑换'; // message = '可以兑换';
break; break;
} }
} }
uni.showToast({ if (message) {
title: message, uni.showToast({
icon: 'none', title: message,
duration: 2000 icon: 'none',
}); duration: 2000
});
}
}, },
// 关闭规格选择弹窗 // 关闭规格选择弹窗
...@@ -1493,8 +1496,8 @@ page { ...@@ -1493,8 +1496,8 @@ page {
} }
.service-icon { .service-icon {
width: 60rpx; width: 96rpx;
height: 60rpx; height: 96rpx;
} }
.exchange-btn { .exchange-btn {
...@@ -1713,7 +1716,7 @@ page { ...@@ -1713,7 +1716,7 @@ page {
font-size: 40rpx; font-size: 40rpx;
font-weight: bold; font-weight: bold;
display: flex; display: flex;
align-items: center; /* align-items: center; */
justify-content: center; justify-content: center;
z-index: 2; z-index: 2;
border-right: none; border-right: none;
......
...@@ -83,10 +83,7 @@ export default { ...@@ -83,10 +83,7 @@ export default {
doTerminate().then(res => { doTerminate().then(res => {
uni.hideLoading(); uni.hideLoading();
if (res.ok) { if (res.ok) {
uni.showToast({
title: '注销申请已提交',
icon: 'success'
});
// 可以跳转到登录页面或首页 // 可以跳转到登录页面或首页
setTimeout(() => { setTimeout(() => {
uni.reLaunch({ uni.reLaunch({
......
This diff is collapsed.
...@@ -50,20 +50,20 @@ ...@@ -50,20 +50,20 @@
<!-- 配送方式 --> <!-- 配送方式 -->
<view class="delivery-section"> <view class="delivery-section">
<text class="delivery-label">配送方式</text> <text class="delivery-label" style="font-weight: bold;">配送方式</text>
<text class="delivery-method">快递邮寄</text> <text class="delivery-method">快递邮寄</text>
</view> </view>
<!-- 订单备注 --> <!-- 订单备注 -->
<view class="notes-section"> <view class="notes-section">
<text class="notes-label">订单备注</text> <text class="notes-label" style="font-weight: bold;">订单备注</text>
<text class="notes-hint">选填:对本次交易的说明(最多40字)</text> <text class="notes-hint">选填:对本次交易的说明(最多40字)</text>
<input class="notes-input" placeholder="请输入订单备注" maxlength="40" v-model="orderNotes" /> <input class="notes-input" placeholder="请输入订单备注" maxlength="40" v-model="orderNotes" />
</view> </view>
<!-- 订单汇总 --> <!-- 订单汇总 -->
<view class="summary-section"> <view class="summary-section">
<text class="summary-label">{{ goodsInfo.quantity }}</text> <text class="summary-label" style="font-weight: bold;">{{ goodsInfo.quantity }}</text>
<text class="summary-price">小计:{{ goodsInfo.points * goodsInfo.quantity }}{{ <text class="summary-price">小计:{{ goodsInfo.points * goodsInfo.quantity }}{{
goodsInfo.creditsTypeName }}</text> goodsInfo.creditsTypeName }}</text>
</view> </view>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<!-- 底部提交栏 --> <!-- 底部提交栏 -->
<view class="bottom-bar"> <view class="bottom-bar">
<view class="total-info"> <view class="total-info">
<text class="total-label">商品积分</text> <text class="total-label" style="font-weight: bold;">商品积分</text>
<text class="total-price">{{ goodsInfo.points * goodsInfo.quantity }}{{ goodsInfo.creditsTypeName <text class="total-price">{{ goodsInfo.points * goodsInfo.quantity }}{{ goodsInfo.creditsTypeName
}}</text> }}</text>
</view> </view>
...@@ -155,35 +155,35 @@ import { jump, JumpType } from '../../utils'; ...@@ -155,35 +155,35 @@ import { jump, JumpType } from '../../utils';
export default { export default {
data() { data() {
return { return {
orderNotes: '', orderNotes: '',
// 订单来源子渠道 // 订单来源子渠道
orderSubSource: '', orderSubSource: '',
// 订单参数 // 订单参数
orderParams: {}, orderParams: {},
priceData: null, priceData: null,
// 地址信息 // 地址信息
selectedAddress: null, selectedAddress: null,
hasAddress: false, hasAddress: false,
fullAddress: '', fullAddress: '',
recipientName: '', recipientName: '',
recipientPhone: '', recipientPhone: '',
// 商品信息 // 商品信息
goodsInfo: { goodsInfo: {
name: '', name: '',
spec: '', spec: '',
points: 0, points: 0,
quantity: 1 quantity: 1
}, },
// 商店信息 // 商店信息
homeStore: null, homeStore: null,
// 弹窗状态 // 弹窗状态
showConfirmModal: false, showConfirmModal: false,
showAddressModal: false, showAddressModal: false,
showSelectAddressModal: false, showSelectAddressModal: false,
// 用于防连点 // 用于防连点
isSubmitting: false isSubmitting: false
} }
}, },
onLoad(options) { onLoad(options) {
console.log('结算页面参数:', options); console.log('结算页面参数:', options);
...@@ -345,12 +345,12 @@ export default { ...@@ -345,12 +345,12 @@ export default {
closeAddressModal() { closeAddressModal() {
this.showAddressModal = false; this.showAddressModal = false;
}, },
// 关闭选择地址提示弹窗 // 关闭选择地址提示弹窗
closeSelectAddressModal() { closeSelectAddressModal() {
this.showSelectAddressModal = false; this.showSelectAddressModal = false;
}, },
// 处理选择地址 // 处理选择地址
handleGoSelectAddress() { handleGoSelectAddress() {
this.closeSelectAddressModal(); this.closeSelectAddressModal();
...@@ -578,34 +578,39 @@ export default { ...@@ -578,34 +578,39 @@ export default {
} }
.modal-content { .modal-content {
background-color: #fff; width: 546rpx;
border-radius: 30rpx; height: 418rpx;
padding: 40rpx; flex-shrink: 0;
width: 80%; border-radius: 38rpx;
max-width: 600rpx; background: linear-gradient(180deg, #FFE9C5 0%, #FFF 52.87%);
box-sizing: border-box;
} }
.modal-title { .modal-title {
font-size: 36rpx;
font-weight: bold;
color: #333; color: #D3A458;
text-align: center; text-align: center;
margin-bottom: 30rpx; font-size: 40rpx;
font-style: normal;
font-weight: 600;
line-height: normal;
margin-top: 62rpx;
} }
.modal-message { .modal-message {
font-size: 28rpx; color: var(--B900, #000);
color: #666;
text-align: center; text-align: center;
margin-bottom: 40rpx; font-size: 28rpx;
line-height: 1.5; font-style: normal;
font-weight: 400;
line-height: normal;
margin-top: 22rpx;
} }
.modal-buttons { .modal-buttons {
display: flex; display: flex;
gap: 20rpx; gap: 20rpx;
margin-bottom: 30rpx; margin-top: 60rpx;
justify-content: center; justify-content: center;
} }
...@@ -634,6 +639,7 @@ export default { ...@@ -634,6 +639,7 @@ export default {
color: #999; color: #999;
text-align: center; text-align: center;
line-height: 1.4; line-height: 1.4;
margin-top: 40rpx;
} }
.modal-close-btn { .modal-close-btn {
...@@ -697,11 +703,13 @@ export default { ...@@ -697,11 +703,13 @@ export default {
margin-bottom: 10rpx; margin-bottom: 10rpx;
display: block; display: block;
overflow: hidden; overflow: hidden;
font-weight: bold;
} }
.address-text.no-address { .address-text.no-address {
color: #999; color: #999;
font-style: italic; font-style: italic;
font-weight: 500;
} }
.recipient-info { .recipient-info {
...@@ -837,7 +845,7 @@ export default { ...@@ -837,7 +845,7 @@ export default {
.delivery-label { .delivery-label {
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #A8A8A8;
} }
.delivery-method { .delivery-method {
...@@ -862,7 +870,7 @@ export default { ...@@ -862,7 +870,7 @@ export default {
.notes-hint { .notes-hint {
font-size: 24rpx; font-size: 24rpx;
color: #999; color: #A8A8A8;
margin-bottom: 10rpx; margin-bottom: 10rpx;
margin-left: 20rpx; margin-left: 20rpx;
display: inline-block; display: inline-block;
...@@ -888,12 +896,13 @@ export default { ...@@ -888,12 +896,13 @@ export default {
margin-bottom: 0; margin-bottom: 0;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: flex-end;
} }
.summary-label { .summary-label {
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
margin-right: 20rpx;
} }
.summary-price { .summary-price {
...@@ -909,7 +918,6 @@ export default { ...@@ -909,7 +918,6 @@ export default {
right: 30rpx; right: 30rpx;
width: 96rpx; width: 96rpx;
height: 96rpx; height: 96rpx;
background-color: #D3A458;
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -919,8 +927,8 @@ export default { ...@@ -919,8 +927,8 @@ export default {
} }
.service-icon { .service-icon {
width: 60rpx; width: 96rpx;
height: 60rpx; height: 96rpx;
} }
/* 底部提交栏 */ /* 底部提交栏 */
...@@ -943,13 +951,15 @@ export default { ...@@ -943,13 +951,15 @@ export default {
width: 60%; width: 60%;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-left: 20rpx;
margin-right: 20rpx; margin-right: 20rpx;
align-items: center; align-items: center;
} }
.total-label { .total-label {
font-size: 24rpx; font-size: 24rpx;
color: #666; color: #000;
font-weight: bold;
} }
.total-price { .total-price {
...@@ -965,11 +975,12 @@ export default { ...@@ -965,11 +975,12 @@ export default {
height: 74rpx; height: 74rpx;
background-color: #D3A458; background-color: #D3A458;
color: #fff; color: #fff;
font-size: 28rpx; font-size: 30rpx;
border-radius: 37rpx; border-radius: 37rpx;
border: none; border: none;
line-height: 74rpx; line-height: 74rpx;
padding: 0; padding: 0;
font-weight: bold;
} }
.submit-btn:active { .submit-btn:active {
......
...@@ -2617,13 +2617,13 @@ export default { ...@@ -2617,13 +2617,13 @@ export default {
.gold-coin { .gold-coin {
position: absolute; position: absolute;
width: 167rpx; width: 333rpx;
height: 162rpx; height: 333rpx;
animation-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); animation-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
} }
.gold-coin-1 { .gold-coin-1 {
animation: goldCoinFly 1.5s ease-out 1; animation: goldCoinFly 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) 1s 1;
z-index: 5; z-index: 5;
} }
...@@ -2650,59 +2650,17 @@ export default { ...@@ -2650,59 +2650,17 @@ export default {
} }
} }
/* 单个金币从中间飞向底部导航"我的"图标的动画 - 自然延续的曲线波动 */ /* 单个金币从上方中间飞向底部导航"我的"图标的动画 - 简化为贝塞尔曲线直线运动 */
@keyframes goldCoinFly { @keyframes goldCoinFly {
0% { 0% {
transform: translate(0, 0) scale(1.3) rotate(0deg); transform: translate(-50%, -50%) scale(1.3) rotate(0deg);
opacity: 1; opacity: 1;
left: 50%; left: 50%;
top: 50%; top: 50%;
} }
20% {
transform: translate(100rpx, 120rpx) scale(1.25) rotate(10deg);
opacity: 1;
left: 50%;
top: 50%;
}
40% {
transform: translate(160rpx, 280rpx) scale(1.2) rotate(15deg);
opacity: 1;
left: 50%;
top: 50%;
}
60% {
transform: translate(190rpx, 380rpx) scale(1.1) rotate(25deg);
opacity: 0.95;
left: 50%;
top: 50%;
}
70% {
transform: translate(200rpx, 420rpx) scale(0.9) rotate(30deg);
opacity: 0.8;
left: 50%;
top: 50%;
}
80% {
transform: translate(208rpx, 460rpx) scale(0.7) rotate(38deg);
opacity: 0.6;
left: 50%;
top: 50%;
}
90% {
transform: translate(215rpx, 500rpx) scale(0.3) rotate(42deg);
opacity: 0.3;
left: 50%;
top: 50%;
}
100% { 100% {
transform: translate(220rpx, 550rpx) scale(0) rotate(45deg); transform: translate(145rpx, 480rpx) scale(0) rotate(45deg);
opacity: 0; opacity: 0;
left: 50%; left: 50%;
top: 50%; top: 50%;
......
...@@ -191,8 +191,8 @@ ...@@ -191,8 +191,8 @@
buttonName: '隐私协议', buttonName: '隐私协议',
}" @click="handleHot" data-type="privacy"></view> }" @click="handleHot" data-type="privacy"></view>
</view> --> </view> -->
<RegisterLayer v-model="showRegisterLayer" @confirm="onRegisterConfirm" />
</view> </view>
<RegisterLayer v-model="showRegisterLayer" @confirm="onRegisterConfirm" @cancel="onRegisterCancel" />
<!-- 生日弹窗 type 3 钻石、4 星光、5 星耀 --> <!-- 生日弹窗 type 3 钻石、4 星光、5 星耀 -->
<!-- <popup-shengri v-if="isTip" type="3" @close="isTip = false"></popup-shengri> --> <!-- <popup-shengri v-if="isTip" type="3" @close="isTip = false"></popup-shengri> -->
...@@ -515,7 +515,13 @@ const handleEditProfile = (e) => { ...@@ -515,7 +515,13 @@ const handleEditProfile = (e) => {
} }
}; };
const onRegisterConfirm = (data) => { const onRegisterConfirm = async () => {
await pageCfgStore.fetchCfg();
// 只调用一次initData,loadMemberInfo已在initData内部处理
initData();
showRegisterLayer.value = false;
};
const onRegisterCancel = () => {
showRegisterLayer.value = false; showRegisterLayer.value = false;
}; };
...@@ -650,7 +656,6 @@ const getRealtimePhoneNumber = async (e) => { ...@@ -650,7 +656,6 @@ const getRealtimePhoneNumber = async (e) => {
return; return;
} }
await userStore.phoneCallback(e.detail, async () => { await userStore.phoneCallback(e.detail, async () => {
showRegisterLayer.value = true;
// 简化回调,避免重复调用接口 // 简化回调,避免重复调用接口
showLoading(); showLoading();
await pageCfgStore.fetchCfg(); await pageCfgStore.fetchCfg();
...@@ -689,6 +694,9 @@ const handleChangeBaby = (e) => { ...@@ -689,6 +694,9 @@ const handleChangeBaby = (e) => {
showBabySwitcher.value = true; showBabySwitcher.value = true;
}; };
async function onSelectBaby(baby) { async function onSelectBaby(baby) {
// 处理宝宝切换逻辑 // 处理宝宝切换逻辑
showBabySwitcher.value = false; showBabySwitcher.value = false;
...@@ -707,12 +715,8 @@ async function onSelectBaby(baby) { ...@@ -707,12 +715,8 @@ async function onSelectBaby(baby) {
} }
function handleAddBabyInfoClick() { function handleAddBabyInfoClick() {
md.sensorLogTake({ // 显示RegisterLayer弹窗
xcxClick: "我的页面点击", showRegisterLayer.value = true;
pageName: "我的页面",
buttonName: "去添加宝宝信息",
});
navigateTo("/pages/person/person?type=add");
} }
function onAddBaby() { function onAddBaby() {
...@@ -1258,4 +1262,4 @@ defineExpose({}); ...@@ -1258,4 +1262,4 @@ defineExpose({});
} }
} }
} }
</style> </style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment