From e4f9739d74323aacf09d139700f22a383910ee97 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 04 三月 2026 10:38:32 +0800
Subject: [PATCH] 合并
---
mini-program/pages/mall/mall.vue | 78 ++++++++++++++++++++++++++++----------
1 files changed, 57 insertions(+), 21 deletions(-)
diff --git a/mini-program/pages/mall/mall.vue b/mini-program/pages/mall/mall.vue
index 5b43004..6bddcae 100644
--- a/mini-program/pages/mall/mall.vue
+++ b/mini-program/pages/mall/mall.vue
@@ -8,19 +8,19 @@
<text>鍟嗗煄</text>
<view class="head-search-input">
<u-search placeholder="鎼滅储鍟嗗搧" height="30" searchIconColor="#999999" borderColor="#eeeeee"
- bgColor="rgba(255,255,255,0.9)" @custom="search" :showAction="false" v-model="form.goodsName" @search="search" />
+ bgColor="rgba(255,255,255,0.9)" @clear="search" :showAction="false" v-model="form.goodsName" @search="search" />
</view>
</view>
<view class="head-tabs">
- <u-tabs lineColor="#E4001D" :list="list" @click="clickCate"></u-tabs>
+ <u-tabs lineColor="#E4001D" :itemStyle="{ height: '100rpx' }" :list="list" @click="clickCate"></u-tabs>
</view>
</view>
<view class="head-list">
<view class="head-list-item" @click="openSearch(1)">
- <text :style="form.sortInfo ? 'color: #222222; font-weight: 500;' : ''">{{form.sortName}}</text>
- <u-icon name="arrow-down" color="#222222" size="13" v-if="form.sortInfo && !show"></u-icon>
- <u-icon name="arrow-up" color="#222222" size="13" v-else-if="form.sortInfo && show === 1"></u-icon>
+ <text :style="String(form.sortInfo) ? 'color: #222222; font-weight: 500;' : ''">{{form.sortName}}</text>
+ <u-icon name="arrow-down" color="#222222" size="13" v-if="String(form.sortInfo) && !show"></u-icon>
+ <u-icon name="arrow-up" color="#222222" size="13" v-else-if="String(form.sortInfo) && show === 1"></u-icon>
<u-icon name="arrow-down" color="#777777" size="13" v-else></u-icon>
</view>
<view class="head-list-item" @click="openSearch(2)">
@@ -44,8 +44,9 @@
</view>
</view>
<!-- 鍝佺墝 -->
- <view class="list" style="padding-top: 30rpx; box-sizing: border-box; justify-content: flex-start;" v-if="show === 2">
+ <view class="list" style="padding-top: 30rpx; box-sizing: border-box;" v-if="show === 2">
<view :class="item.active ? 'list-cate active' : 'list-cate'" v-for="(item, index) in pingpai" :key="index" @click="getXiLie(item.id, index)">{{item.name}}</view>
+ <view style="width: 216rpx; height: 0;"></view>
</view>
<!-- 绯诲垪 -->
<view class="list" v-if="show === 3">
@@ -57,11 +58,11 @@
</view>
<view class="commodity">
<view class="commodity-wu" v-if="goodsList.length === 0">
- <image src="/static/images/default_search@2x.png" mode="widthFix"></image>
+ <image src="/static/images/default_nodata_white.png" mode="widthFix"></image>
</view>
<view class="commodity-item" v-else v-for="(item, i) in goodsList" :key="i" @click="jumpDetails(item.id)">
<view class="commodity-item-image">
- <image :src="item.imgurl" mode="widthFix"></image>
+ <image :src="item.imgurl?item.imgurl:'/static/icon/default2.png'" mode="widthFix"></image>
</view>
<view class="commodity-item-box">
<view class="commodity-item-box-title">
@@ -77,19 +78,24 @@
</view>
</view>
<view class="commodity-item-shou">
- <text>宸插敭{{item.saleNum + item.realSaleNum}}</text>
+<<<<<<< HEAD
+ <text>宸插敭{{item.shou}}</text>
+=======
+ <text>宸插敭{{(item.saleNum ||0)+ (item.realSaleNum||0)}}</text>
+>>>>>>> 7b09a9950f13521190a4aef9bbc2a6163445566c
<view class="commodity-item-shou-add" @click.stop="addCard(item)">+</view>
</view>
</view>
</view>
</view>
- <view class="cart">
+ <view class="cart" @click="jumpCart">
<view class="cart-box">
<image src="/static/icon/ic_cart@2x.png" mode="widthFix"></image>
<text>璐墿杞�</text>
- <view class="cart-num">{{cardTotal}}</view>
+ <view class="cart-num" v-if="cardTotal>0">{{cardTotal}}</view>
</view>
</view>
+ <Login ref="login" />
</view>
</template>
@@ -97,9 +103,11 @@
import {
mapState
} from 'vuex'
+ import Login from '@/components/login/login.vue'
export default {
+ components: { Login },
computed: {
- ...mapState(['navHeight', 'statusbarHeight'])
+ ...mapState(['navHeight', 'statusbarHeight', 'userInfo'])
},
watch: {
paixu: {
@@ -165,14 +173,28 @@
};
},
onLoad() {
- this.getCartNum()
this.getLabels()
this.getGoodsList()
+ },
+ async onShow() {
+ await this.$onLaunched;
+ if (this.userInfo) {
+ this.getCartNum()
+ }
},
onReachBottom() {
this.getGoodsList()
},
methods: {
+ jumpCart() {
+ if (!this.userInfo) {
+ this.$refs.login.open()
+ return;
+ }
+ uni.navigateTo({
+ url: '/pages/shopping-cart/shopping-cart'
+ })
+ },
getCartNum() {
this.$u.api.cartGoodsTypeNum()
.then(res => {
@@ -188,13 +210,17 @@
this.getGoodsList()
},
addCard(e) {
+ if (!this.userInfo) {
+ this.$refs.login.open()
+ return;
+ }
this.$u.api.addCart({
goodsId: e.id,
- goodsSkuId: e.skuResponsesList[0].id,
+ goodsSkuId: e.goodsSkuResponseList[0].id,
num: 1
}).then(res => {
if (res.code === 200) {
- uni.showToast({ title: '娣诲姞鎴愬姛', icon: 'success' })
+ uni.showToast({ title: '娣诲姞鎴愬姛', icon: 'success', mask: true })
this.getCartNum()
}
})
@@ -215,6 +241,7 @@
if (res.code === 200) {
res.data.records.forEach(item => {
item.minPrice = item.minPrice.toFixed(2).split('.')
+ item.shou = (item.salenum || 0) + (item.realSaleNum || 0)
})
this.goodsList.push(...res.data.records)
this.page++
@@ -246,6 +273,8 @@
},
// 绯诲垪
getXiLie(parentId, i) {
+ this.form.seriesBrandId = ''
+ this.form.seriesBrandName = ''
this.xilie = []
this.pingpai.forEach((item, index) => {
item.active = index === i
@@ -395,11 +424,13 @@
.commodity-item-image {
width: 100%;
height: 336rpx;
+ overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
image {
width: 100%;
+ max-height:330rpx;
}
}
.commodity-item-box {
@@ -407,6 +438,11 @@
padding: 20rpx;
box-sizing: border-box;
.commodity-item-box-title {
+ width: 100%;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ overflow: hidden;
font-weight: 600;
font-size: 30rpx;
color: #222222;
@@ -497,8 +533,8 @@
.head-tabs {
width: 100%;
height: 100rpx;
- display: flex;
- align-items: flex-end;
+ // display: flex;
+ // align-items: flex-end;
border-bottom: 1rpx solid #E5E5E5;
}
}
@@ -528,10 +564,10 @@
font-size: 28rpx;
color: #333333;
margin-bottom: 24rpx;
- margin-right: 20rpx;
- &:last-child {
- margin-right: 0 !important;
- }
+ // margin-right: 20rpx;
+ // &:last-child {
+ // margin-right: 0 !important;
+ // }
}
.red {
text {
--
Gitblit v1.9.3