Commit d74a8012 authored by spc's avatar spc

fixed

parent e62296b6
......@@ -3,7 +3,9 @@
<view class="answer-popup-container">
<view class="answer-popup">
<!-- 关闭按钮 -->
<view class="close-btn" @tap="handleClose">×</view>
<view class="close-btn" @tap="handleClose">
<image :src="`${$baseUrl}homepage/Q3Res/canEatCloseBtn.png`" mode="aspectFit"></image>
</view>
<!-- 结果标题和图标 -->
<view class="result-header">
......@@ -94,11 +96,11 @@ export default {
// 根据fallResult或allResult字符串生成显示用的选项分布数据
displayOptionDistribution() {
const labels = ['能吃', '少吃', '慎吃', '禁吃'];
// 确保所有数据都被正确记录
console.log('AllResult数据:', this.allResult, '类型:', typeof this.allResult);
console.log('FallResult数据:', this.fallResult, '类型:', typeof this.fallResult);
// 首先检查fallResult
if (this.fallResult && this.fallResult !== null && this.fallResult.trim() !== '' && this.fallResult.includes('|')) {
try {
......@@ -112,7 +114,7 @@ export default {
console.error('处理fallResult时出错:', error);
}
}
// 然后检查allResult,使用更宽松的判断条件
if (this.allResult && this.allResult !== null && typeof this.allResult === 'string') {
// 即使不包含|符号,也尝试处理
......@@ -129,7 +131,7 @@ export default {
percentage: `${percent}%`
}));
}
// 最后使用默认的optionDistribution
console.log('使用默认optionDistribution');
return this.optionDistribution;
......@@ -191,11 +193,15 @@ export default {
right: 20rpx;
width: 60rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
font-size: 40rpx;
color: #999;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
}
.close-btn image {
width: 100%;
height: 100%;
}
.result-header {
......@@ -241,7 +247,7 @@ export default {
.option-distribution {
display: flex;
gap: 5rpx;
gap: 3rpx;
margin-bottom: 30rpx;
align-items: center;
width: 100%;
......@@ -264,18 +270,22 @@ export default {
/* 从左到右4种颜色 - 反转顺序 */
.option-bar:nth-child(1) {
border-radius: 50rpx 20rpx 50rpx 50rpx;
background: #D3A458;
}
.option-bar:nth-child(2) {
border-radius: 20rpx 10rpx 20rpx 10rpx;
background: #B27C1E;
}
.option-bar:nth-child(3) {
border-radius: 20rpx 10rpx 20rpx 10rpx;
background: #8D5C05;
}
.option-bar:nth-child(4) {
border-radius: 20rpx 50rpx 50rpx 20rpx;
background: #644104;
}
......@@ -298,8 +308,8 @@ export default {
.question-answer-section {
background: #FFFFFF;
height: 164rpx;
padding: 20rpx;
/* height: 164rpx; */
padding: 40rpx;
border-radius: 20rpx;
margin-bottom: 30rpx;
overflow-y: auto;
......@@ -309,6 +319,7 @@ export default {
font-size: 28rpx;
color: #333;
display: block;
font-weight: bolder;
margin-bottom: 15rpx;
line-height: 1.6;
}
......@@ -317,13 +328,13 @@ export default {
font-size: 28rpx;
color: #D3A358;
display: block;
font-weight: bold;
/* font-weight: bold; */
}
.analysis-section {
background: #FFFFFF;
height: 446rpx;
padding: 20rpx;
padding: 40rpx;
border-radius: 36rpx;
margin-bottom: 40rpx;
overflow-y: auto;
......@@ -331,15 +342,15 @@ export default {
.analysis-title {
font-size: 30rpx;
font-weight: bold;
color: #333;
font-weight: bolder;
color: #000;
display: block;
margin-bottom: 15rpx;
}
.analysis-content {
font-size: 28rpx;
color: #333;
color: #999999;
line-height: 1.8;
white-space: pre-wrap;
}
......
......@@ -89,7 +89,7 @@
</view>
</view>
<view class="agreement_section">
<!-- <view class="agreement_section">
<view class="agreement_checkbox">
<view class="checkbox" :class="{ checked: agreementChecked }" @click="agreementChecked = !agreementChecked">
<text v-if="agreementChecked" class="checkmark"></text>
......@@ -98,7 +98,7 @@
data-type="member">《星妈会用户注册协议》</text><text class="agreement_link" @click="openAgreement"
data-type="privacy">《星妈会隐私政策》</text></text>
</view>
</view>
</view> -->
<button v-if="pageStatus.btnStatus" form-type="submit" class="form_btn" :class="{ disabled: !isBtnActive }">
完成
......
......@@ -103,14 +103,14 @@
</view>
</view>
<view class="agreement_section">
<!-- <view class="agreement_section">
<view class="agreement_checkbox">
<view class="checkbox" :class="{ checked: agreementChecked }" @click="toggleAgreement">
<text v-if="agreementChecked" class="checkmark"></text>
</view>
<text class="agreement_text">我已阅读并同意<text class="agreement_link" @click="handleAgreementClick('member')">《星妈会用户注册协议》</text><text class="agreement_link" @click="handleAgreementClick('privacy')">《星妈会隐私政策》</text></text>
</view>
</view>
</view> -->
<button v-if="pageStatus.btnStatus" form-type="submit" class="form_btn" :class="{ disabled: !agreementChecked }">
完成
......
......@@ -67,10 +67,10 @@
<!-- 悬浮授权手机号模块 -->
<view class="auth-phone-module" v-if="!userStore.memberInfo?.mobile">
<image class="auth-phone-bg" :src="$baseUrl + 'homepage/Q3Res/accessBg2.png'"></image>
<view class="auth-phone-module" v-if="true ||!userStore.memberInfo?.mobile">
<image class="auth-phone-bg" :src="$baseUrl + 'homepage/Q3Res/accessBg3.png'"></image>
<view class="auth-phone-btn-container">
<image class="auth-phone-btn" :src="$baseUrl + 'homepage/Q3Res/accessBtn2.png'" @tap="handleAuthPhoneClick">
<image class="auth-phone-btn" :src="$baseUrl + 'homepage/Q3Res/accessBtn3.png'" @tap="handleAuthPhoneClick">
</image>
</view>
</view>
......
......@@ -21,7 +21,7 @@
<text class="label">所在地区</text>
<view class="region-select" @tap="showRegionPicker">
<text class="region-text">{{ formData.region || '请选择省/市/区' }}</text>
<text class="arrow">{{ ">" }}</text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
</view>
......@@ -993,14 +993,14 @@ export default {
<style scoped>
.address-edit-container {
padding-bottom: 200rpx;
background-color: #F8F8F8;
/* background-color: #F8F8F8; */
min-height: 100vh;
}
.form-container {
padding: 0;
background-color: #FFFFFF;
padding: 10rpx;
/* background-color: #FFFFFF; */
border-radius: 20rpx;
margin: 20rpx;
overflow: hidden;
......@@ -1090,8 +1090,8 @@ export default {
}
.arrow {
font-size: 36rpx;
color: #999999;
width: 14rpx;
height: 23rpx;
}
.default-switch {
......
......@@ -30,14 +30,22 @@
<!-- 删除确认弹窗 -->
<view v-if="showDeleteConfirm" class="modal-overlay" @tap="cancelDelete">
<view class="modal-container" @tap.stop>
<view class="modal-content" @tap.stop>
<view class="modal-title">确认删除</view>
<view class="modal-content">确定要删除该收货地址吗?</view>
<view class="modal-message">确定要删除该收货地址吗?</view>
<view class="modal-buttons">
<view class="modal-cancel" @tap="cancelDelete">取消</view>
<view class="modal-confirm" @tap="deleteAddress">删除</view>
<view class="modal-btn cancel-btn" @tap="cancelDelete">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @tap="deleteAddress">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @tap="cancelDelete">
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFill"></image>
</view>
</view>
</view>
</template>
......@@ -485,47 +493,60 @@ export default {
z-index: 200;
}
.modal-container {
width: 600rpx;
.modal-content {
width: 550rpx;
background-color: #ffffff;
border-radius: 20rpx;
overflow: hidden;
padding: 50rpx;
text-align: center;
}
.modal-title {
text-align: center;
font-size: 34rpx;
font-weight: bold;
padding: 30rpx;
border-bottom: 1rpx solid #e0e0e0;
margin-bottom: 30rpx;
text-align: center;
}
.modal-content {
text-align: center;
.modal-message {
font-size: 32rpx;
color: #333333;
padding: 40rpx 30rpx;
margin-bottom: 30rpx;
text-align: center;
}
.modal-buttons {
display: flex;
border-top: 1rpx solid #e0e0e0;
justify-content: space-between;
gap: 30rpx;
}
.modal-cancel,
.modal-confirm {
flex: 1;
text-align: center;
padding: 30rpx;
font-size: 32rpx;
.modal-btn {
height: 78rpx;
}
.modal-cancel {
color: #666666;
border-right: 1rpx solid #e0e0e0;
.modal-btn image {
width: 220rpx !important;
height: 78rpx !important;
}
.cancel-btn {
margin-right: 20rpx;
}
.confirm-btn {
margin-left: 20rpx;
}
.modal-close-btn {
position: absolute;
top: 30rpx;
right: 30rpx;
z-index: 201;
}
.modal-confirm {
color: #ff4444;
.modal-close-btn image {
width: 40rpx;
height: 40rpx;
}
</style>
......@@ -56,11 +56,18 @@
<!-- 底部兑换按钮 -->
<view class="bottom-bar">
<button class="exchange-btn" :class="getButtonClass()" :disabled="!canExchange" @click="handleExchange">
<button class="exchange-btn" :class="getButtonClass()" @click="handleExchange">
{{ getButtonText() }}
</button>
</view>
<!-- 悬浮客服按钮 -->
<view class="service-btn" @click="handleServiceClick">
<image class="service-icon" :src="$baseUrl + 'homepage/Q3Res/settlementCenter_serviceBtn.png'"
mode="aspectFit">
</image>
</view>
<!-- 规格选择弹窗 -->
<view class="spec-modal-overlay" v-if="showSpecModal" @click="closeSpecModal">
<view class="spec-modal-content" @click.stop>
......@@ -77,8 +84,7 @@
<text v-else class="image-placeholder">商品图片</text>
</view>
<view class="product-details">
<text class="product-points">{{ goodsData.points }}{{ goodsData.creditsTypeName || '积分'
}}</text>
<text class="product-points">{{ goodsData.points }}{{ goodsData.creditsTypeName || '积分' }}</text>
<text class="product-stock">库存 {{ formatCount(goodsData.exchangeCount) }}</text>
</view>
</view>
......@@ -101,6 +107,8 @@
<text class="quantity-label">选择数量 <text class="limit-text" v-if="goodsData.goodsLimit">(限购{{
goodsData.goodsLimit }}件)</text></text>
<view class="quantity-selector">
<image class="quantity-bg" :src="$baseUrl + 'homepage/Q3Res/objectSelectConBg.png'"
mode="aspectFill"></image>
<view class="quantity-btn " @click="decreaseQuantity" :disabled="quantity <= 1">-</view>
<text class="quantity-value">{{ quantity }}</text>
<view class="quantity-btn " @click="increaseQuantity"
......@@ -126,14 +134,18 @@
<view class="modal-title">兑换确认</view>
<view class="modal-message">本次兑换需要消耗{{ goodsData.points }}{{ goodsData.creditsTypeName || '积分' }}</view>
<view class="modal-buttons">
<button class="modal-btn cancel-btn" @click="closeModal">取消</button>
<button class="modal-btn confirm-btn" @click="confirmExchange">确定</button>
<view class="modal-btn cancel-btn" @click="closeModal">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @click="confirmExchange">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
<view class="modal-disclaimer">{{ isPhysicalGoods() ? '已发货商品非质量问题不退不换' : '兑换完成后不退不换' }}</view>
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @click="closeModal">
<text class="modal-close-icon">×</text>
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFit"></image>
</view>
</view>
</view>
......@@ -143,6 +155,7 @@
import { fetchGoodsDetail, fetchSeckillDetail, fetchGoodsPrice, fetchTradeCredits, fetchSeckillTakeOrder } from '@/api/goods.js';
import { useUserStore } from '@/stores/user';
import { jump, JumpType } from '../../utils';
import { useHomeStore } from '../../stores/home';
export default {
data() {
......@@ -345,6 +358,27 @@ export default {
uni.navigateBack();
},
// 客服按钮点击事件
handleServiceClick() {
// 客服功能逻辑,可根据实际需求调整
console.log('客服按钮点击');
// 可以跳转到客服页面或打开客服弹窗
console.log('客服点击');
const homeStore = useHomeStore();
const {
memberId,
mobile,
openId,
unionId
} = homeStore.homeInfo;
const customerUrl =
`https://intelcc-user.icsoc.net/?channelKey=45839e0505554f8c8aea3c7b6259b049&init=1&crmld=${memberId}&mobile=${mobile}&openId=${openId}&unionId=${unionId}`;
jump({
type: JumpType.H5,
url: customerUrl
});
},
// 初始化用户状态
async initUserStatus() {
// 获取用户store实例
......@@ -729,8 +763,14 @@ export default {
// 处理兑换
handleExchange() {
console.log('handleExchange 被调用');
console.log('登录状态:', this.cfgStatus.isRegister);
console.log('canExchange:', this.canExchange);
console.log('goodsState:', this.goodsData.goodsState);
if (!this.cfgStatus.isRegister) {
// 未登录,跳转到登录注册页面
console.log('未登录,跳转到登录页面');
jump({
type: JumpType.INNER,
url: "/pages/activity/register",
......@@ -738,10 +778,13 @@ export default {
return;
}
if (!this.canExchange) {
console.log('不可兑换,显示提示信息');
this.showStatusMessage();
return;
}
console.log('可以兑换,继续执行兑换流程');
// 根据商品类型决定弹窗流程
if (this.isPhysicalGoods()) {
// 实物商品:显示规格选择弹窗
......@@ -1073,7 +1116,7 @@ export default {
orderId: orderData ? (orderData.orderId || orderData.orderNo || orderData.id) : '',
// 积分信息
pointsValue: `${this.goodsData.points}${this.goodsData.creditsTypeName || '积分'}`,
pointsValue: `${this.goodsData.points}`,
creditsTypeName: this.goodsData.creditsTypeName || '积分',
// 商品信息
......@@ -1134,14 +1177,15 @@ export default {
min-height: 100vh;
background-color: #f5f5f5;
box-sizing: border-box;
overflow-x: hidden; /* 禁止横向滚动 */
overflow-x: hidden;
/* 禁止横向滚动 */
position: relative;
}
/* 禁止整个页面横向滚动 */
page {
overflow-x: hidden;
width: 100%;
width: 100%;
}
/* 确保所有内容区域都不会超出屏幕宽度 */
......@@ -1203,7 +1247,7 @@ page {
.goods-carousel {
width: 100%;
height: 750rpx;
margin-bottom: 20rpx;
/* margin-bottom: 20rpx; */
}
.carousel-swiper {
......@@ -1390,9 +1434,10 @@ page {
.detail-banner {
width: 100%;
min-height: 200rpx;
background-color: #f8f8f8;
padding: 30rpx;
border-radius: 10rpx;
overflow: hidden;
/* background-color: #f8f8f8; */
/* padding: 30rpx; */
/* border-radius: 10rpx; */
}
.banner-text {
......@@ -1413,6 +1458,26 @@ page {
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.1);
}
/* 悬浮客服按钮 */
.service-btn {
position: fixed;
bottom: 200rpx;
right: 30rpx;
width: 96rpx;
height: 96rpx;
background-color: #d3a458;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
z-index: 100;
}
.service-icon {
width: 60rpx;
height: 60rpx;
}
.exchange-btn {
width: 100%;
height: 90rpx;
......@@ -1605,28 +1670,39 @@ page {
.quantity-selector {
display: flex;
align-items: center;
justify-content: center;
gap: 0;
border: 2rpx solid #A8A8A8;
border-radius: 8rpx;
padding: 0;
width: fit-content;
position: relative;
width: 204rpx;
height: 58rpx;
margin-right: auto;
}
.quantity-bg {
position: absolute;
width: 204rpx;
height: 58rpx;
z-index: 1;
}
.quantity-btn {
width: 60rpx;
height: 60rpx;
border-right: 1rpx solid #A8A8A8;
background-color: #fff;
color: #A8A8A8;
font-size: 32rpx;
/* background-color: #F5F5F5; */
color: #333;
font-size: 40rpx;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
z-index: 2;
border-right: none;
}
.quantity-btn:last-child {
border-right: none;
border-left: 1rpx solid #A8A8A8;
/* border-right: none;
border-left: 1rpx solid #A8A8A8; */
}
.quantity-btn:disabled {
......@@ -1635,12 +1711,13 @@ page {
}
.quantity-value {
margin: 0 30rpx;
font-size: 32rpx;
color: #333;
font-weight: 500;
min-width: 80rpx;
min-width: 40rpx;
text-align: center;
padding: 0 20rpx;
z-index: 2;
padding: 0;
}
/* 秒杀商品数量显示 */
......@@ -1721,13 +1798,12 @@ page {
align-items: center;
justify-content: center;
margin: 40rpx auto 0;
background-color: #B0B0B0;
border-radius: 50%;
}
.modal-close-icon {
font-size: 40rpx;
color: #fff;
.modal-close-btn {
width: 56rpx;
height: 56rpx;
}
.modal-title {
......@@ -1748,30 +1824,25 @@ page {
.modal-buttons {
display: flex;
gap: 20rpx;
margin-top: 25rpx;
justify-content: space-between;
/* gap: 30rpx; */
}
.modal-btn {
flex: 1;
height: 80rpx;
border-radius: 40rpx;
font-size: 28rpx;
border: none;
display: flex;
align-items: center;
justify-content: center;
height: 78rpx;
}
.modal-btn image {
width: 220rpx !important;
height: 78rpx !important;
}
.cancel-btn {
background-color: #fff;
color: #D3A458;
border: 2rpx solid #D3A458;
/* margin-right: 20rpx; */
}
.confirm-btn {
background-color: #D3A458;
color: #fff;
/* margin-left: 20rpx; */
}
.modal-disclaimer {
......
......@@ -22,7 +22,7 @@
</view>
<text class="menu-text">异业合作</text>
</view>
<text class="arrow"></text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @tap="handleItemTap('feedback')">
......@@ -33,7 +33,7 @@
</view>
<text class="menu-text">意见反馈</text>
</view>
<text class="arrow"></text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @tap="handleItemTap('userPolicy')">
......@@ -44,7 +44,7 @@
</view>
<text class="menu-text">用户政策</text>
</view>
<text class="arrow"></text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @tap="handleItemTap('privacyPolicy')">
......@@ -55,7 +55,7 @@
</view>
<text class="menu-text">隐私协议</text>
</view>
<text class="arrow"></text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item cancel-account" @tap="handleItemTap('cancelAccount')">
......@@ -68,7 +68,7 @@
</view>
<view class="cancel-text-container">
<text class="cancel-text">注销后无法恢复</text>
<text class="arrow"></text>
<image class="arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
</view>
</view>
......@@ -219,8 +219,8 @@ export default {
}
.arrow {
font-size: 40rpx;
color: #C8C8C8;
width: 14rpx;
height: 23rpx;
}
/* 注销账号特殊样式 */
......@@ -232,6 +232,6 @@ export default {
.cancel-text {
font-size: 26rpx;
color: #999999;
margin-right: 10rpx;
margin-right: 30rpx;
}
</style>
......@@ -2,6 +2,8 @@
<view class="container">
<!-- 内容区域 -->
<view class="content">
<!-- 顶部背景渐变 -->
<view class="top-gradient-bg"></view>
<!-- 订单状态 -->
<view class="status-section" :class="statusClass">
<image class="status-icon" :src="getStatusIcon()" mode="aspectFit"></image>
......@@ -56,11 +58,19 @@
<view
v-if="orderData.virtualType === 'card' && orderData.coupon && orderData.coupon.cards && orderData.coupon.cards.length > 0 && orderData.coupon.cards[0].code"
class="coupon-code-item">
<text class="coupon-label">券码</text>
<!-- 当只有code没有pwd时显示券码,否则显示卡号 -->
<text class="coupon-label">{{ orderData.coupon.cards[0].pwd ? '卡号' : '券码' }}</text>
<view class="coupon-code-content">
<text class="coupon-code">{{ orderData.coupon.cards[0].code }}</text>
<text class="copy-btn" @click="copyCouponCode(orderData.coupon.cards[0].code)">复制</text>
</view>
<!-- 卡密展示 - 如果存在pwd字段 -->
<text v-if="orderData.coupon.cards[0].pwd" class="coupon-label">卡密</text>
<view v-if="orderData.coupon.cards[0].pwd" class="coupon-code-content">
<text class="coupon-code">{{ orderData.coupon.cards[0].pwd }}</text>
<text class="copy-btn" @click="copyCouponCode(orderData.coupon.cards[0].pwd)">复制</text>
</view>
</view>
<!-- 过期时间 -->
......@@ -172,14 +182,18 @@
<view class="modal-title">确认退货</view>
<view class="modal-message">确定要申请退货吗?</view>
<view class="modal-buttons">
<button class="modal-btn cancel-btn" @click="closeRefundModal">取消</button>
<button class="modal-btn confirm-btn" @click="confirmRefund">确定</button>
<view class="modal-btn cancel-btn" @click="closeRefundModal">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @click="confirmRefund">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
<view class="modal-disclaimer">申请退货后将由客服进行审核处理</view>
<!-- <view class="modal-disclaimer">申请退货后将由客服进行审核处理</view> -->
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @click="closeRefundModal">
<text class="modal-close-icon">×</text>
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFit"></image>
</view>
</view>
</template>
......@@ -749,6 +763,7 @@ export default {
min-height: 100vh;
background-color: #f5f5f5;
box-sizing: border-box;
overflow: hidden;
}
/* 内容区域 */
......@@ -757,12 +772,21 @@ export default {
box-sizing: border-box;
}
/* 顶部背景渐变 */
.top-gradient-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 200rpx;
background: linear-gradient(180deg, #ECC990 0%, rgba(211, 164, 88, 0) 100%);
}
/* 订单状态 */
.status-section {
padding: 40rpx 20rpx;
padding: 20rpx 80rpx;
display: flex;
align-items: center;
background: linear-gradient(180deg, #ECC990 0%, rgba(211, 164, 88, 0) 100%);
position: relative;
margin: 0 -20rpx;
width: calc(100% + 40rpx);
......@@ -807,6 +831,8 @@ export default {
/* 收货地址 */
.address-section {
z-index: 1;
position: relative;
background-color: #fff;
padding: 30rpx 20rpx;
margin-bottom: 20rpx;
......@@ -1185,6 +1211,8 @@ export default {
.module-payment,
.module-order-info,
.module-logistics {
z-index: 1;
position: relative;
background-color: #fff;
padding: 30rpx 20rpx;
margin-bottom: 20rpx;
......@@ -1228,8 +1256,8 @@ export default {
position: fixed;
bottom: 200rpx;
right: 30rpx;
width: 120rpx;
height: 120rpx;
width: 96rpx;
height: 96rpx;
background-color: #d3a458;
border-radius: 50%;
display: flex;
......@@ -1255,6 +1283,7 @@ export default {
align-items: center;
justify-content: center;
z-index: 9999;
flex-direction: column;
}
.modal-content {
......@@ -1289,23 +1318,20 @@ export default {
}
.modal-btn {
flex: 1;
height: 88rpx;
line-height: 88rpx;
text-align: center;
font-size: 32rpx;
border-radius: 44rpx;
border: none;
height: 78rpx;
}
.modal-btn image {
width: 220rpx !important;
height: 78rpx !important;
}
.cancel-btn {
background-color: #f5f5f5;
color: #666;
margin-right: 20rpx;
}
.confirm-btn {
background-color: #d3a458;
color: #fff;
margin-left: 20rpx;
}
.modal-disclaimer {
......@@ -1316,18 +1342,17 @@ export default {
}
.modal-close-btn {
position: absolute;
top: -80rpx;
right: 20rpx;
width: 60rpx;
height: 60rpx;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 80rpx;
}
.modal-close-icon {
font-size: 60rpx;
color: #fff;
.modal-close-btn {
width: 56rpx;
height: 56rpx;
}
</style>
......@@ -6,7 +6,9 @@
<view class="result-section">
<!-- 状态图标 -->
<view class="result-icon" :class="resultIconClass">
<text class="icon-text">{{ resultIcon }}</text>
<image
:src="$baseUrl + (isSuccess ? 'homepage/Q3Res/payResultSucIcon.png' : 'homepage/Q3Res/payResultFailIcon.png')"
mode="aspectFit" class="result-icon-img"></image>
</view>
<!-- 状态文字 -->
......@@ -15,12 +17,12 @@
<!-- 成功状态显示积分信息 -->
<view v-if="isSuccess" class="points-info">
<text class="points-value">{{ pointsValue }}</text>
<!-- <text class="points-unit">{{ resultData.creditsTypeName || '积分' }}</text> -->
<text class="points-unit">{{ resultData.creditsTypeName || '积分' }}</text>
</view>
<!-- 失败状态显示失败原因 -->
<view v-if="!isSuccess" class="failure-info">
<text class="failure-reason">{{ failureReason }}</text>
<text class="failure-reason">失败原因:{{ failureReason }}</text>
</view>
<!-- 支付方式信息 - 仅成功状态显示 -->
......@@ -34,7 +36,11 @@
<!-- 底部操作按钮 -->
<view class="action-section">
<button class="action-btn" @click="handleAction">{{ actionButtonText }}</button>
<view class="action-btn" @click="handleAction">
<image
:src="$baseUrl + (isSuccess ? 'homepage/Q3Res/payResultLookOrderBtn.png' : 'homepage/Q3Res/payResultBackHome.png')"
mode="aspectFit" class="action-btn-img"></image>
</view>
</view>
<!-- 活动banner -->
......@@ -224,7 +230,7 @@ export default {
// 处理活动banner点击
handleVipActiveClick(index, item) {
console.log('活动banner点击:', item);
// 只保留跳转功能,从item.link获取跳转参数
const url = item?.link?.url || item?.linkUrl || '';
const type = item?.link?.type || (item?.linkType === 'h5' ? JumpType.H5 : JumpType.PAGE);
......@@ -246,6 +252,7 @@ export default {
min-height: 100vh;
background-color: #f5f5f5;
box-sizing: border-box;
background-color: #fff;
}
......@@ -253,16 +260,18 @@ export default {
.content {
padding: 0;
box-sizing: border-box;
background-color: #fff;
}
/* 支付结果状态 */
.result-section {
background-color: #fff;
padding: 80rpx 30rpx 40rpx;
padding: 60rpx 30rpx 30rpx;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
margin-bottom: 20rpx;
}
.result-icon {
......@@ -272,34 +281,42 @@ export default {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 30rpx;
margin-bottom: 20rpx;
}
.result-icon.icon-success {
background-color: #d3a458;
/* background-color: #d3a458; */
}
.result-icon.icon-failure {
background-color: #d3a458;
/* background-color: #d3a458; */
}
.icon-text {
font-size: 60rpx;
color: #fff;
font-weight: bold;
.result-icon-img {
width: 80rpx;
height: 80rpx;
}
.action-btn-img {
width: 100%;
height: 88rpx;
}
.result-text {
font-size: 36rpx;
font-weight: bold;
color: #333;
margin-bottom: 20rpx;
margin-bottom: 25rpx;
padding: 10rpx 30rpx;
border-radius: 10rpx;
}
.points-info {
display: flex;
align-items: baseline;
margin-bottom: 30rpx;
margin-bottom: 25rpx;
padding: 10rpx 30rpx;
border-radius: 10rpx;
}
.points-value {
......@@ -315,7 +332,9 @@ export default {
}
.failure-info {
margin-bottom: 30rpx;
margin-bottom: 60rpx;
padding: 10rpx 30rpx;
border-radius: 10rpx;
}
.failure-reason {
......@@ -325,6 +344,9 @@ export default {
.payment-info {
width: 100%;
padding: 10rpx 30rpx;
border-radius: 10rpx;
margin-bottom: 10rpx;
}
.payment-row {
......@@ -341,13 +363,14 @@ export default {
.payment-value {
font-size: 28rpx;
color: #999;
color: #000;
}
/* 操作按钮区域 */
.action-section {
padding: 40rpx 30rpx;
padding: 30rpx 30rpx;
background-color: #fff;
margin-bottom: 20rpx;
}
.action-btn {
......@@ -357,8 +380,8 @@ export default {
font-size: 32rpx;
font-weight: bold;
background-color: #fff;
color: #333;
border: 1rpx solid #ddd;
color: #000000;
/* border: 2rpx solid #000000; */
}
/* 活动banner区域 */
......@@ -383,8 +406,8 @@ export default {
position: fixed;
bottom: 200rpx;
right: 30rpx;
width: 120rpx;
height: 120rpx;
width: 96rpx;
height: 96rpx;
background-color: #d3a458;
border-radius: 50%;
display: flex;
......
......@@ -16,7 +16,9 @@
</view>
</view>
</view>
<view class="arrow-icon">{{ ">" }}</view>
<view class="arrow-icon">
<image :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFill"></image>
</view>
</view>
<!-- 订单信息模块 -->
......@@ -91,14 +93,18 @@
<view class="modal-message">本次兑换需要消耗{{ goodsInfo.points * goodsInfo.quantity }}{{ goodsInfo.creditsTypeName
|| '积分' }}</view>
<view class="modal-buttons">
<button class="modal-btn cancel-btn" @click="closeModal">取消</button>
<button class="modal-btn confirm-btn" @click="confirmExchange">确定</button>
<view class="modal-btn cancel-btn" @click="closeModal">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @click="confirmExchange">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
<view class="modal-disclaimer">{{ isPhysicalGoods() ? '已发货商品非质量问题不退不换' : '兑换完成后不退不换' }}</view>
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @click="closeModal">
<text class="modal-close-icon">×</text>
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFit"></image>
</view>
</view>
<!-- 地址添加确认弹窗 -->
......@@ -107,13 +113,36 @@
<view class="modal-title">提示</view>
<view class="modal-message">您还没有收货地址,是否添加地址?</view>
<view class="modal-buttons">
<button class="modal-btn cancel-btn" @click="handleAddressCancel">取消</button>
<button class="modal-btn confirm-btn" @click="confirmAddAddress">添加地址</button>
<view class="modal-btn cancel-btn" @click="handleAddressCancel">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @click="confirmAddAddress">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @click="closeAddressModal">
<text class="modal-close-icon">×</text>
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFit"></image>
</view>
</view>
<!-- 选择地址提示弹窗 -->
<view class="modal-overlay" v-if="showSelectAddressModal" @click="closeSelectAddressModal">
<view class="modal-content" @click.stop>
<view class="modal-title">提示</view>
<view class="modal-message">请先选择收货地址</view>
<view class="modal-buttons">
<view class="modal-btn cancel-btn" @click="closeSelectAddressModal">
<image :src="$baseUrl + 'homepage/Q3Res/buyCancelBtn.png'" mode="aspectFill"></image>
</view>
<view class="modal-btn confirm-btn" @click="handleGoSelectAddress">
<image :src="$baseUrl + 'homepage/Q3Res/buyComfirmBtn.png'" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 关闭按钮 -->
<view class="modal-close-btn" @click="closeSelectAddressModal">
<image :src="$baseUrl + 'homepage/Q3Res/commonCloseBtn1.png'" mode="aspectFit"></image>
</view>
</view>
</template>
......@@ -126,34 +155,35 @@ import { jump, JumpType } from '../../utils';
export default {
data() {
return {
orderNotes: '',
// 订单来源子渠道
orderSubSource: '',
// 订单参数
orderParams: {},
priceData: null,
// 地址信息
selectedAddress: null,
hasAddress: false,
fullAddress: '',
recipientName: '',
recipientPhone: '',
// 商品信息
goodsInfo: {
name: '',
spec: '',
points: 0,
quantity: 1
},
// 商店信息
homeStore: null,
// 弹窗状态
showConfirmModal: false,
showAddressModal: false,
// 用于防连点
isSubmitting: false
}
return {
orderNotes: '',
// 订单来源子渠道
orderSubSource: '',
// 订单参数
orderParams: {},
priceData: null,
// 地址信息
selectedAddress: null,
hasAddress: false,
fullAddress: '',
recipientName: '',
recipientPhone: '',
// 商品信息
goodsInfo: {
name: '',
spec: '',
points: 0,
quantity: 1
},
// 商店信息
homeStore: null,
// 弹窗状态
showConfirmModal: false,
showAddressModal: false,
showSelectAddressModal: false,
// 用于防连点
isSubmitting: false
}
},
onLoad(options) {
console.log('结算页面参数:', options);
......@@ -204,8 +234,11 @@ export default {
}
}
// 页面显示时重新检查地址(从地址编辑页面返回时或无选中地址时)
this.checkAddress();
// 只有在没有选中地址的情况下才重新检查地址
// 这样当用户从地址选择页返回但没有选择新地址时,会保留之前已有的地址
if (!this.selectedAddress || !this.hasAddress) {
this.checkAddress();
}
// 如果已经有地址了,关闭地址弹窗
if (this.hasAddress && this.showAddressModal) {
......@@ -312,6 +345,17 @@ export default {
closeAddressModal() {
this.showAddressModal = false;
},
// 关闭选择地址提示弹窗
closeSelectAddressModal() {
this.showSelectAddressModal = false;
},
// 处理选择地址
handleGoSelectAddress() {
this.closeSelectAddressModal();
this.selectAddress();
},
// 处理地址弹窗取消
handleAddressCancel() {
......@@ -360,17 +404,8 @@ export default {
try {
// 检查是否有收货地址
if (!this.hasAddress || !this.selectedAddress) {
uni.showModal({
title: '提示',
content: '请先选择收货地址',
confirmText: '去选择',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
this.selectAddress();
}
}
});
// 显示选择地址提示弹窗
this.showSelectAddressModal = true;
return;
}
......@@ -467,7 +502,7 @@ export default {
orderId: orderId,
// 积分信息
pointsValue: `${this.goodsInfo.points * this.goodsInfo.quantity}${this.goodsInfo.creditsTypeName}`,
pointsValue: `${this.goodsInfo.points * this.goodsInfo.quantity}`,
creditsTypeName: this.goodsInfo.creditsTypeName,
// 商品信息
......@@ -539,6 +574,7 @@ export default {
align-items: center;
justify-content: center;
z-index: 9999;
flex-direction: column;
}
.modal-content {
......@@ -570,27 +606,27 @@ export default {
display: flex;
gap: 20rpx;
margin-bottom: 30rpx;
justify-content: center;
}
.modal-btn {
flex: 1;
height: 88rpx;
border-radius: 44rpx;
font-size: 30rpx;
line-height: 88rpx;
padding: 0;
width: 220rpx !important;
height: 78rpx !important;
position: relative;
}
.modal-btn image {
width: 220rpx !important;
height: 78rpx !important;
}
.cancel-btn {
background-color: #f5f5f5;
color: #666;
border: none;
}
.confirm-btn {
background-color: #e6a23c;
color: #fff;
border: none;
margin-left: 20rpx;
}
.modal-disclaimer {
......@@ -601,22 +637,16 @@ export default {
}
.modal-close-btn {
position: absolute;
bottom: -100rpx;
width: 80rpx;
height: 80rpx;
background-color: #fff;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
margin-top: 80rpx;
}
.modal-close-icon {
font-size: 50rpx;
color: #999;
}
.container {
width: 100%;
......@@ -657,6 +687,7 @@ export default {
.address-info {
flex: 1;
margin-right: 20rpx;
}
.address-text {
......@@ -685,8 +716,13 @@ export default {
}
.arrow-icon {
font-size: 32rpx;
color: #999;
width: 20rpx;
height: 32rpx;
}
.arrow-icon image {
width: 100%;
height: 100%;
}
/* 订单信息模块 */
......@@ -770,7 +806,7 @@ export default {
.product-price {
font-size: 32rpx;
color: #e6a23c;
color: #D3A458;
font-weight: bold;
display: inline-block;
margin-right: 20rpx;
......@@ -862,29 +898,29 @@ export default {
.summary-price {
font-size: 28rpx;
color: #e6a23c;
color: #D3A458;
font-weight: bold;
}
/* 客服按钮 */
.service-btn {
position: fixed;
bottom: 200rpx;
bottom: 220rpx;
right: 30rpx;
width: 120rpx;
height: 120rpx;
background-color: #e6a23c;
width: 96rpx;
height: 96rpx;
background-color: #D3A458;
border-radius: 50%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 100;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.2);
}
.service-icon {
width: 100%;
height: 100%;
width: 60rpx;
height: 60rpx;
}
/* 底部提交栏 */
......@@ -894,42 +930,46 @@ export default {
left: 0;
right: 0;
background-color: #fff;
padding: 20rpx 30rpx 40rpx;
padding: 40rpx 20rpx 60rpx 20rpx;
box-sizing: border-box;
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.1);
display: flex;
align-items: center;
justify-content: flex-end;
justify-content: space-between;
width: 100%;
}
.total-info {
width: 60%;
display: flex;
flex-direction: column;
flex-direction: row;
margin-right: 20rpx;
align-items: center;
}
.total-label {
font-size: 24rpx;
color: #666;
margin-bottom: 5rpx;
}
.total-price {
font-size: 32rpx;
color: #e6a23c;
color: #D3A458;
font-weight: bold;
margin-left: 20rpx;
display: block;
}
.submit-btn {
width: 200rpx;
height: 80rpx;
background-color: #e6a23c;
width: 248rpx;
height: 74rpx;
background-color: #D3A458;
color: #fff;
font-size: 28rpx;
border-radius: 40rpx;
border-radius: 37rpx;
border: none;
display: flex;
align-items: center;
justify-content: center;
line-height: 74rpx;
padding: 0;
}
.submit-btn:active {
......
......@@ -1036,6 +1036,15 @@ export default {
// 处理能不能吃答题
async handleCanEatAnswer(answerIndex) {
// 添加登录检查
if (!this.homeStore.isLogin) {
jump({
type: JumpType.INNER,
url: "/pages/activity/register",
});
return;
}
if (!this.canEatData || !this.canEatData.id) {
uni.showToast({
title: '数据异常,请稍后重试',
......
......@@ -146,7 +146,7 @@
}">
<image class="menu-icon" :src="$baseUrl + 'homepage/Q3Res/myIcon_myOrder.png'" mode="aspectFit" />
<text class="menu-title">我的订单</text>
<text class="menu-arrow"></text>
<image class="menu-arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @click="navigateToWithLogin('/v3/addressList/addressList')" :data-log="{
xcxClick: '我的页面点击',
......@@ -155,7 +155,7 @@
}">
<image class="menu-icon" :src="$baseUrl + 'homepage/Q3Res/myIcon_address.png'" mode="aspectFit" />
<text class="menu-title">收货地址管理</text>
<text class="menu-arrow"></text>
<image class="menu-arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @click="navigateToCouponWithLogin()" :data-log="{
xcxClick: '我的页面点击',
......@@ -164,7 +164,7 @@
}">
<image class="menu-icon" :src="$baseUrl + 'homepage/Q3Res/myIcon_myCupon.png'" mode="aspectFit" />
<text class="menu-title">我的优惠券</text>
<text class="menu-arrow"></text>
<image class="menu-arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
<view class="menu-item" @click="navigateToWithLogin('/v3/more/index')" :data-log="{
xcxClick: '我的页面点击',
......@@ -173,7 +173,7 @@
}">
<image class="menu-icon" :src="$baseUrl + 'homepage/Q3Res/myIcon_more.png'" mode="aspectFit" />
<text class="menu-title">更多</text>
<text class="menu-arrow"></text>
<image class="menu-arrow" :src="$baseUrl + 'homepage/Q3Res/rightArrowBtn.png'" mode="aspectFit" />
</view>
</view>
......@@ -211,6 +211,7 @@
.menu-container {
width: 702rpx;
margin: 0 auto;
margin-bottom: 100rpx;
}
.menu-item {
......@@ -227,7 +228,7 @@
.menu-icon {
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
margin-right: 35rpx;
}
.menu-title {
......@@ -237,8 +238,8 @@
}
.menu-arrow {
font-size: 24rpx;
color: #999999;
width: 14rpx;
height: 23rpx;
}
/* 任务模块样式 */
......
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