Compare commits

...

4 Commits

Author SHA1 Message Date
赵毅
51874e8dab 优化我的工单页面布局 2025-12-31 10:36:23 +08:00
赵毅
ec7f284035 优化积分兑换详情页控制台报错问题 2025-12-29 17:17:27 +08:00
赵毅
7b46c3637a 优化积分商城商品跳转逻辑 2025-12-29 17:08:06 +08:00
赵毅
5e5043b878 修改积分商城模块登录的逻辑 2025-12-29 15:01:16 +08:00
4 changed files with 30 additions and 13 deletions

View File

@ -43,7 +43,8 @@
<text class="points-label">当前积分{{ userPoints }}</text> <text class="points-label">当前积分{{ userPoints }}</text>
</view> </view>
<view v-if="userPoints < selectedGoodsInfo.points" class="insufficient-points"> <view v-if="userPoints < selectedGoodsInfo.points" class="insufficient-points">
积分不足还差{{ selectedGoodsInfo.points - userPoints }}积分哦 <text v-if="!isLoggedIn" >暂未登录,请先登录</text>
<text v-else>积分不足还差{{ selectedGoodsInfo.points - userPoints }}积分哦</text>
</view> </view>
<button v-else class="exchange-btn" @click="showSpecPopup = true">立即兑换</button> <button v-else class="exchange-btn" @click="showSpecPopup = true">立即兑换</button>
<!-- <button class="exchange-btn" @click="showSpecPopup = true">立即兑换</button> --> <!-- <button class="exchange-btn" @click="showSpecPopup = true">立即兑换</button> -->
@ -111,7 +112,8 @@ export default {
selectedSpecId: 1, selectedSpecId: 1,
selectedSpec: '', selectedSpec: '',
quantity: 1, quantity: 1,
selectedGoodsInfo: {} selectedGoodsInfo: {},
isLoggedIn: false
}; };
}, },
computed: { computed: {
@ -171,6 +173,9 @@ export default {
}, },
// //
getPointNum() { getPointNum() {
if (!uni.getStorageSync("ctoken")) {
return 0;
}
request(apiArr2.getUserInfo, 'POST', {}, { silent: false }).then(res => { request(apiArr2.getUserInfo, 'POST', {}, { silent: false }).then(res => {
this.userPoints = res.points; this.userPoints = res.points;
}); });
@ -178,9 +183,13 @@ export default {
}, },
onshow() { onshow() {
this.getPointNum(); this.getPointNum();
//
this.isLoggedIn = !!uni.getStorageSync("ctoken");
}, },
onLoad(options) { onLoad(options) {
this.getPointNum(); this.getPointNum();
//
this.isLoggedIn = !!uni.getStorageSync("ctoken");
const orderInfo = JSON.parse(options.product); const orderInfo = JSON.parse(options.product);
const params = { const params = {
id: orderInfo.id id: orderInfo.id

View File

@ -38,9 +38,9 @@
<scroll-view scroll-y="true" @scrolltolower="loadMore" style="height: calc(100vh - 300rpx);"> <scroll-view scroll-y="true" @scrolltolower="loadMore" style="height: calc(100vh - 300rpx);">
<view class="product-list"> <view class="product-list">
<view v-for="(product, index) in products" :key="index" class="product-item"> <view v-for="(product, index) in products" :key="index" class="product-item">
<image class="product-image" :src="product.commodity_pic" mode="aspectFill"></image> <image class="product-image" :src="product.commodity_pic" mode="aspectFill" @click="toDetail(product)"></image>
<view class="product-title">{{ product.commodity_name }}</view> <view class="product-title" @click="toDetail(product)">{{ product.commodity_name }}</view>
<view class="product-info"> <view class="product-info" @click="toDetail(product)">
<view class="product-points">{{ product.goods_info_list[0].points }} 积分</view> <view class="product-points">{{ product.goods_info_list[0].points }} 积分</view>
<view class="product-sold">已兑换{{ product.exchange_count }}</view> <view class="product-sold">已兑换{{ product.exchange_count }}</view>
</view> </view>
@ -90,6 +90,9 @@ export default {
}, },
methods: { methods: {
getNum() { getNum() {
if (!uni.getStorageSync("ctoken")) {
return 0;
}
request(apiArr2.getUserInfo, 'POST', {}, { silent: false }).then(res => { request(apiArr2.getUserInfo, 'POST', {}, { silent: false }).then(res => {
this.pointsNum = res.points; this.pointsNum = res.points;
}); });
@ -153,7 +156,7 @@ export default {
} }
}, },
toDetail(product) { toDetail(product) {
NavgateTo('/packages/jfShop/detail/index?product=' + JSON.stringify(product) + '&pointNum=' + this.pointsNum); NavgateTo('/packages/jfShop/detail/index?product=' + JSON.stringify(product) + '&pointNum=' + this.pointsNum, { isLogin: false });
} }
} }
} }

View File

@ -136,6 +136,9 @@ page {
.orderItem_row_label { .orderItem_row_label {
width: 200rpx; width: 200rpx;
} }
.orderItem_row_status{
min-width: 90rpx;
}
.orderItem_row_state { .orderItem_row_state {
font-size: 28rpx; font-size: 28rpx;

View File

@ -37,7 +37,7 @@
<view class="orderItem_row_con">{{ item.room.name }}</view> <view class="orderItem_row_con">{{ item.room.name }}</view>
</view> </view>
<view :class="['orderItem_row_state', statusType[item.status].color]"> <view class="orderItem_row_status" :class="['orderItem_row_state', statusType[item.status].color]">
{{ statusType[item.status].desc }} {{ statusType[item.status].desc }}
</view> </view>
</view> </view>
@ -183,7 +183,9 @@ export default {
const meun = menuButtonInfo(); const meun = menuButtonInfo();
this.top = meun.top; this.top = meun.top;
this.localHeight = meun.height; this.localHeight = meun.height;
if (options.communityId) {
this.communityId = JSON.parse(options.communityId); this.communityId = JSON.parse(options.communityId);
}
}, },
onShow() { onShow() {
this.page_num = 1; this.page_num = 1;
@ -193,7 +195,7 @@ export default {
}, },
onReachBottom() { onReachBottom() {
if (this.flag) { if (this.flag) {
this.init(); this.getTabsList();
} }
}, },
} }