From 4ffe82b5315aa3a15b988ea7a400dd3829bff979 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 23 六月 2025 15:33:20 +0800
Subject: [PATCH] update 解决商品广场瀑布流两列长度跨度大问题
---
pages/commodity-square/commoditySquare.vue | 48 +++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/pages/commodity-square/commoditySquare.vue b/pages/commodity-square/commoditySquare.vue
index 2fdf32b..f5ac205 100644
--- a/pages/commodity-square/commoditySquare.vue
+++ b/pages/commodity-square/commoditySquare.vue
@@ -75,6 +75,9 @@
export default {
data() {
return {
+ //璁板綍涓ゅ垪楂樺害
+ listHeight1: 0,
+ listHeight2: 0,
//鏄惁鏄剧ず鎵撳紑宸︿晶寮圭獥
showLeft: false,
//鍟嗗搧瀵艰埅鍒嗙被
@@ -126,9 +129,24 @@
const height = e.detail.height;
this[arrName][index].width = 310 + 'rpx';
//璁$畻瀹介珮姣�
- const videoHeight = 310 / (wight / height)
- this[arrName][index].height = Math.floor(videoHeight) + 'rpx';
+ const videoHeight = Math.floor(310 / (wight / height))
+ this[arrName][index].height = videoHeight + 'rpx';
this[arrName][index].show = true;
+ //璁$畻闆嗗悎楂樺害
+ if (arrName === 'goodsList2') {
+ if (videoHeight > 300) {
+ this.listHeight2 += videoHeight;
+ } else if (videoHeight < 300) {
+ this.listHeight2 -= videoHeight;
+ }
+ }
+ if (arrName === 'goodsList1') {
+ if (videoHeight > 300) {
+ this.listHeight1 += videoHeight;
+ } else if (videoHeight < 300) {
+ this.listHeight1 -= videoHeight;
+ }
+ }
console.log(this[arrName][index].width, this[arrName][index].height)
this.flushDom = new Date();
},
@@ -158,11 +176,35 @@
item.goodsVideo = stsUrl + '/' + item.goodsVideo
}
})
+ //璁$畻涓や釜鏁扮粍鐨勯暱搴� 鐢ㄤ簬瑙e喅鐎戝竷娴佷袱杈归珮搴︿笉涓�鑷撮棶棰�
//骞冲垎缁欎袱涓暟缁�
- const middle = Math.ceil(goodsList.data.result.records.length / 2);
+ const goodsSize = goodsList.data.result.records.length;
+ let middle = Math.ceil(goodsSize / 2);
+ //鍒ゆ柇閭d釜闆嗗悎闀垮害楂� 閲嶆柊鍒嗛厤闆嗗悎鏁版嵁
+ const diffHeight = this.listHeight1 - this.listHeight2;
+ //list1闀垮害澶т簬list2
+ if (diffHeight > 0) {
+ const needCount = Math.floor(diffHeight / 300)
+ if (needCount > 6) {
+ middle = 0;
+ } else {
+ middle -= needCount;
+ }
+ } else if(diffHeight < 0) {
+ const needCount = Math.abs(Math.floor(diffHeight / 300))
+ if (needCount > 6) {
+ middle += 6
+ } else {
+ middle = needCount;
+ }
+ }
this.goodsList1 = [...this.goodsList1, ...goodsList.data.result.records.slice(0, middle)];
this.goodsList2 = [...this.goodsList2, ...goodsList.data.result.records.slice(middle)];
this.maxPages = goodsList.data.result.pages
+
+ // if(this.listHeight1===0||this.listHeight2===0)}
+ this.listHeight1 += middle * 300;
+ this.listHeight2 += (goodsSize - middle) * 300
},
async chooseCategory(id) {
this.canLoadMore = false;
--
Gitblit v1.8.0