Compare commits

...

2 Commits

Author SHA1 Message Date
@zuopngfei
26563409c9 wewe 2025-11-27 18:18:37 +08:00
@zuopngfei
d13d026852 wewe 2025-11-27 09:38:39 +08:00
4 changed files with 55 additions and 27 deletions

View File

@ -20,12 +20,12 @@ function request(url, method = 'GET', data = {}) {
header, header,
success(res) { success(res) {
if (res.data.code) { if (res.data.code) {
if (res.data.code == 10103 || res.data.code == 10104) { if (res.data.code == 10103 || res.data.code == 10101) {
wx.removeStorageSync('access_token'); wx.removeStorageSync('access_token');
// wx.navigateTo({ // wx.navigateTo({
// url: '/pages/login/login', // url: '/pages/login/index',
// }); // });
reject(res.data); // reject(res.data);
return; return;
} }
wx.showToast({ wx.showToast({

View File

@ -216,7 +216,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="logout-btn">退出登录</view> <view class="logout-btn" @click="logout">退出登录</view>
</view> </view>
<view class="quick-card"> <view class="quick-card">
<view class="quick-title">快捷功能</view> <view class="quick-title">快捷功能</view>
@ -797,6 +797,12 @@ export default {
uni.navigateTo({ uni.navigateTo({
url: '/pages/my/editInfo/index' url: '/pages/my/editInfo/index'
}); });
},
logout() {
wx.removeStorageSync('access_token');
uni.reLaunch({
url: '/pages/login/index'
});
} }
} }
}; };

View File

@ -43,7 +43,7 @@
<view class="product-price"> <view class="product-price">
<text class="current-price">¥{{ formatPrice(currentPrice) }}</text> <text class="current-price">¥{{ formatPrice(currentPrice) }}</text>
<text class="original-price" v-if="originalPrice > currentPrice">¥{{ formatPrice(originalPrice) <text class="original-price" v-if="originalPrice > currentPrice">¥{{ formatPrice(originalPrice)
}}</text> }}</text>
</view> </view>
<view class="sku-hint" v-if="skuList.length > 1 && !selectedSku"> <view class="sku-hint" v-if="skuList.length > 1 && !selectedSku">
请选择规格 请选择规格
@ -147,17 +147,17 @@
<view class="note-item"> <view class="note-item">
<text class="note-label">前调</text> <text class="note-label">前调</text>
<text class="note-content">{{ productInfo.scent_level.top_note || '柠檬、佛手柑、粉红胡椒' <text class="note-content">{{ productInfo.scent_level.top_note || '柠檬、佛手柑、粉红胡椒'
}}</text> }}</text>
</view> </view>
<view class="note-item"> <view class="note-item">
<text class="note-label">中调</text> <text class="note-label">中调</text>
<text class="note-content">{{ productInfo.scent_level.middle_note || '玫瑰、茉莉、牡丹' <text class="note-content">{{ productInfo.scent_level.middle_note || '玫瑰、茉莉、牡丹'
}}</text> }}</text>
</view> </view>
<view class="note-item"> <view class="note-item">
<text class="note-label">后调</text> <text class="note-label">后调</text>
<text class="note-content">{{ productInfo.scent_level.base_note || '白麝香、雪松、香草' <text class="note-content">{{ productInfo.scent_level.base_note || '白麝香、雪松、香草'
}}</text> }}</text>
</view> </view>
</view> </view>
</view> </view>
@ -605,11 +605,22 @@ export default {
// //
goToCart() { goToCart() {
const token = await uni.getStorageSync('access_token')
if (!token) {
uni.navigateTo({
url: '/pages/login/index'
})
return
}
uni.navigateTo({ uni.navigateTo({
url: '/pages/shoppingCart/index' url: '/pages/shoppingCart/index'
}); });
}, },
async fetchCartSelectedCount() { async fetchCartSelectedCount() {
const token = await uni.getStorageSync('access_token')
if (!token) {
return
}
try { try {
const res = await request('xcx/carts', 'GET', { page: 1, page_size: 99 }); const res = await request('xcx/carts', 'GET', { page: 1, page_size: 99 });
const list = res.list || res.data || res || []; const list = res.list || res.data || res || [];

View File

@ -19,7 +19,8 @@
<view class="item-price-row"> <view class="item-price-row">
<view class="item-price"> <view class="item-price">
<text class="price-symbol"></text> <text class="price-symbol"></text>
<text class="price-value">{{ formatPrice(item.price) || formatPrice(item.sku_price) }}</text> <text class="price-value">{{ formatPrice(item.price) || formatPrice(item.sku_price)
}}</text>
</view> </view>
<view class="item-count"> <view class="item-count">
<view class="count-btn" @click="decreaseCount(index)">-</view> <view class="count-btn" @click="decreaseCount(index)">-</view>
@ -101,27 +102,37 @@ export default {
} }
}, },
onLoad() { onLoad() {
this.loadCartList(); this.getUserIsLogin();
}, },
onShow() { onShow() {
// this.getUserIsLogin();
this.loadCartList();
}, },
methods: { methods: {
formatPrice(value) { async getUserIsLogin() {
if(!value) { const token = await uni.getStorageSync('access_token')
return 0.00; if (token) {
} //
// this.loadCartList();
value = value / 100; } else {
// uni.navigateTo({
return value.toFixed(2); url: '/pages/login/index'
}, })
}
},
formatPrice(value) {
if (!value) {
return 0.00;
}
//
value = value / 100;
//
return value.toFixed(2);
},
// //
async loadCartList() { async loadCartList() {
try { try {
this.loading = true; this.loading = true;
const res = await request('xcx/carts', 'GET', {page: 1, page_size: 99}); const res = await request('xcx/carts', 'GET', { page: 1, page_size: 99 });
// //
const list = res.list || res.data || res || []; const list = res.list || res.data || res || [];
// selected12 // selected12
@ -291,7 +302,7 @@ export default {
margin-bottom: 20rpx; margin-bottom: 20rpx;
padding: 30rpx 24rpx; padding: 30rpx 24rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
position: relative; position: relative;
} }
.item-checkbox { .item-checkbox {
@ -425,9 +436,9 @@ export default {
margin-left: 20rpx; margin-left: 20rpx;
padding: 10rpx; padding: 10rpx;
box-sizing: border-box; box-sizing: border-box;
position: absolute; position: absolute;
top: 20rpx; top: 20rpx;
right: 20rpx; right: 20rpx;
} }
.item-delete:active { .item-delete:active {