fix(diy-article): display-multiple-items 不能大于 swiper-item 数量

This commit is contained in:
2025-12-23 17:59:23 +08:00
parent d54a7e9f13
commit d2da799dfc

View File

@@ -10,7 +10,7 @@
:circular="swiperConfig.circular !== false" :circular="swiperConfig.circular !== false"
:interval="swiperConfig.interval || 3000" :interval="swiperConfig.interval || 3000"
:duration="swiperConfig.duration || 500" :duration="swiperConfig.duration || 500"
:display-multiple-items="swiperConfig.displayMultipleItems || 3"> :display-multiple-items="safeDisplayMultipleItems">
<swiper-item v-for="(item, index) in list" :key="index" @click="toDetail(item)"> <swiper-item v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<view class="swiper-item-content"> <view class="swiper-item-content">
<view :class="['item', value.ornament.type]" :style="itemCss"> <view :class="['item', value.ornament.type]" :style="itemCss">
@@ -73,6 +73,12 @@
swiperConfig() { swiperConfig() {
return this.value?.swiperConfig || {}; return this.value?.swiperConfig || {};
}, },
// 安全的display-multiple-items值确保不大于swiper-item数量
safeDisplayMultipleItems() {
const displayCount = this.swiperConfig.displayMultipleItems || 3;
const actualCount = this.list.length;
return actualCount > 0 ? Math.min(displayCount, actualCount) : 1;
},
warpCss() { warpCss() {
var obj = ''; var obj = '';
obj += 'background-color:' + this.value.componentBgColor + ';'; obj += 'background-color:' + this.value.componentBgColor + ';';