|
|
|
@ -95,10 +95,12 @@
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
</viewPopup>
|
|
|
|
|
<scroll-view class="list" scroll-y @scrolltolower="loadMoreGood" @scroll='hideHeadView'>
|
|
|
|
|
<view class="shop-item" v-for="(item, index) in goodList" :key="item.id" @click="openGoodPopup(item)">
|
|
|
|
|
<scroll-view class="list" id='drag_area' style="overscroll-behavior: none;" @scroll="hideHeadView"
|
|
|
|
|
scroll-y @scrolltolower="loadMoreGood">
|
|
|
|
|
<view class="shop-item" v-for="(item, index) in goodList" :key="item.id"
|
|
|
|
|
@click="openGoodPopup(item)">
|
|
|
|
|
<view class="shop-img">
|
|
|
|
|
<up-image width="160rpx" height="160rpx" :src="item.imgs"></up-image>
|
|
|
|
|
<up-image width="120rpx" height="120rpx" :src="item.imgs"></up-image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="shop-content">
|
|
|
|
|
<view class="title">
|
|
|
|
@ -152,7 +154,8 @@
|
|
|
|
|
} from "@dcloudio/uni-app"
|
|
|
|
|
import {
|
|
|
|
|
reactive,
|
|
|
|
|
ref
|
|
|
|
|
ref,
|
|
|
|
|
onMounted
|
|
|
|
|
} from "vue"
|
|
|
|
|
import {
|
|
|
|
|
goodListApi,
|
|
|
|
@ -166,13 +169,21 @@
|
|
|
|
|
import viewPopup from "@/components/viewPopup.vue"
|
|
|
|
|
import goodPopup from "@/components/goodPopup.vue"
|
|
|
|
|
import useCartStore from "@/store/cart.js"
|
|
|
|
|
import {
|
|
|
|
|
getCurrentInstance
|
|
|
|
|
} from 'vue';
|
|
|
|
|
|
|
|
|
|
/*商品列表滚动隐藏头部导航 */
|
|
|
|
|
const instance = getCurrentInstance(); // 获取组件实例
|
|
|
|
|
const targetHeight = ref(0)
|
|
|
|
|
const isScroll = ref(false)
|
|
|
|
|
let lastScollTop = 0
|
|
|
|
|
const hideHeadView = (e) => {
|
|
|
|
|
if (e.detail.scrollTop <= 0 || e.detail.scrollTop >= targetHeight.value) return
|
|
|
|
|
// num.value = e.detail.scrollTop
|
|
|
|
|
isScroll.value = e.detail.scrollTop > lastScollTop
|
|
|
|
|
lastScollTop = e.detail.scrollTop
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/*商品列表滚动隐藏头部导航结束 */
|
|
|
|
|
const test = () => {
|
|
|
|
@ -182,9 +193,7 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const cartStore = useCartStore();
|
|
|
|
|
|
|
|
|
|
const show = ref(0);
|
|
|
|
|
|
|
|
|
|
const topActive = ref(0);
|
|
|
|
|
const changeOne = (item, index) => {
|
|
|
|
|
console.log('选择', item, index);
|
|
|
|
@ -222,7 +231,7 @@
|
|
|
|
|
goods_id: id
|
|
|
|
|
}).then(res => {
|
|
|
|
|
getCartList();
|
|
|
|
|
}).catch(err=>{
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
console.log(err);
|
|
|
|
|
uni.$u.toast('添加失败')
|
|
|
|
|
})
|
|
|
|
@ -254,12 +263,12 @@
|
|
|
|
|
let class_id = rightActive.value || leftActive.value || topActive.value || '';
|
|
|
|
|
let class_all = '';
|
|
|
|
|
// 若分类没有选中时,则直接查询上一级分类
|
|
|
|
|
if(rightActive.value=='') class_all = leftActive.value;
|
|
|
|
|
if(leftActive.value=='') class_all = topActive.value;
|
|
|
|
|
if(topActive.value=='') class_all = '';
|
|
|
|
|
if(class_all) class_id = ""; //只能带其中一个
|
|
|
|
|
if (rightActive.value == '') class_all = leftActive.value;
|
|
|
|
|
if (leftActive.value == '') class_all = topActive.value;
|
|
|
|
|
if (topActive.value == '') class_all = '';
|
|
|
|
|
if (class_all) class_id = ""; //只能带其中一个
|
|
|
|
|
if (loadmore) where.value.page_no++;
|
|
|
|
|
else where.value.page_no=1;
|
|
|
|
|
else where.value.page_no = 1;
|
|
|
|
|
goodListApi({
|
|
|
|
|
...where.value,
|
|
|
|
|
class_all: class_all,
|
|
|
|
@ -363,10 +372,33 @@
|
|
|
|
|
onLoad(() => {
|
|
|
|
|
getgoodClassList();
|
|
|
|
|
getGoodList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
onShow(() => {
|
|
|
|
|
getCartList();
|
|
|
|
|
})
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
const instance = getCurrentInstance(); // 获取组件实例
|
|
|
|
|
const getWXDom = () => {
|
|
|
|
|
let query = uni.createSelectorQuery().in(instance).select("#drag_area");
|
|
|
|
|
query
|
|
|
|
|
.fields({
|
|
|
|
|
size: true,
|
|
|
|
|
scrollOffset: true,
|
|
|
|
|
},
|
|
|
|
|
(data) => {
|
|
|
|
|
targetHeight.value = data.scrollHeight - data.height
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
.exec();
|
|
|
|
|
}
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
getWXDom()
|
|
|
|
|
}, 100)
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
@ -666,8 +698,8 @@
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.shop-img {
|
|
|
|
|
height: 160rpx;
|
|
|
|
|
width: 160rpx;
|
|
|
|
|
height: 120rpx;
|
|
|
|
|
width: 120rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
border-radius: 14rpx;
|
|
|
|
|
overflow: hidden;
|
|
|
|
@ -687,7 +719,7 @@
|
|
|
|
|
.tip {
|
|
|
|
|
color: #999;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
margin: 12rpx 0;
|
|
|
|
|
margin: 2rpx 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|