From ec90cbd7680a6f927cb1cea43f33ab7df6d0864c Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 11 十一月 2025 09:23:22 +0800
Subject: [PATCH] -
---
src/uni_modules/uview-plus/components/u-swiper/u-swiper.vue | 81 +++++++++++++++++++++-------------------
1 files changed, 42 insertions(+), 39 deletions(-)
diff --git a/src/uni_modules/uview-plus/components/u-swiper/u-swiper.vue b/src/uni_modules/uview-plus/components/u-swiper/u-swiper.vue
index 39ed792..11fea9a 100644
--- a/src/uni_modules/uview-plus/components/u-swiper/u-swiper.vue
+++ b/src/uni_modules/uview-plus/components/u-swiper/u-swiper.vue
@@ -11,7 +11,7 @@
class="u-swiper__loading"
v-if="loading"
>
- <u-loading-icon mode="circle"></u-loading-icon>
+ <up-loading-icon mode="circle"></up-loading-icon>
</view>
<swiper
v-else
@@ -38,53 +38,55 @@
v-for="(item, index) in list"
:key="index"
>
- <view
- class="u-swiper__wrapper__item__wrapper"
- :style="[itemStyle(index)]"
- >
- <!-- 鍦╪vue涓紝image鍥剧墖鐨勫搴﹂粯璁や负灞忓箷瀹藉害锛岄渶瑕侀�氳繃flex:1鎾戝紑锛屽彟澶栧繀椤昏缃珮搴︽墠鑳芥樉绀哄浘鐗� -->
- <image
- class="u-swiper__wrapper__item__wrapper__image"
- v-if="getItemType(item) === 'image'"
- :src="getSource(item)"
- :mode="imgMode"
- @tap="clickHandler(index)"
- :style="{
- height: addUnit(height),
- borderRadius: addUnit(radius)
- }"
- ></image>
- <video
- class="u-swiper__wrapper__item__wrapper__video"
- v-if="getItemType(item) === 'video'"
- :id="`video-${index}`"
- :enable-progress-gesture="false"
- :src="getSource(item)"
- :poster="getPoster(item)"
- :title="showTitle && testObject(item) && item.title ? item.title : ''"
- :style="{
- height: addUnit(height)
- }"
- controls
- @tap="clickHandler(index)"
- ></video>
- <text
- v-if="showTitle && testObject(item) && item.title && testImage(getSource(item))"
- class="u-swiper__wrapper__item__wrapper__title u-line-1"
- >{{ item.title }}</text>
- </view>
+ <slot :item="item" :index="index">
+ <view
+ class="u-swiper__wrapper__item__wrapper"
+ :style="[itemStyle(index)]"
+ >
+ <!-- 鍦╪vue涓紝image鍥剧墖鐨勫搴﹂粯璁や负灞忓箷瀹藉害锛岄渶瑕侀�氳繃flex:1鎾戝紑锛屽彟澶栧繀椤昏缃珮搴︽墠鑳芥樉绀哄浘鐗� -->
+ <image
+ class="u-swiper__wrapper__item__wrapper__image"
+ v-if="getItemType(item) === 'image'"
+ :src="getSource(item)"
+ :mode="imgMode"
+ @tap="clickHandler(index)"
+ :style="{
+ height: addUnit(height),
+ borderRadius: addUnit(radius)
+ }"
+ ></image>
+ <video
+ class="u-swiper__wrapper__item__wrapper__video"
+ v-if="getItemType(item) === 'video'"
+ :id="`video-${index}`"
+ :enable-progress-gesture="false"
+ :src="getSource(item)"
+ :poster="getPoster(item)"
+ :title="showTitle && testObject(item) && item.title ? item.title : ''"
+ :style="{
+ height: addUnit(height)
+ }"
+ controls
+ @tap="clickHandler(index)"
+ ></video>
+ <view v-if="showTitle && testObject(item) && item.title && testImage(getSource(item))"
+ class="u-swiper__wrapper__item__wrapper__title">
+ <text class="u-line-1">{{ item.title }}</text>
+ </view>
+ </view>
+ </slot>
</swiper-item>
</swiper>
<view class="u-swiper__indicator" :style="[addStyle(indicatorStyle)]">
<slot name="indicator">
- <u-swiper-indicator
+ <up-swiper-indicator
v-if="!loading && indicator && !showTitle"
:indicatorActiveColor="indicatorActiveColor"
:indicatorInactiveColor="indicatorInactiveColor"
:length="list.length"
:current="currentIndex"
:indicatorMode="indicatorMode"
- ></u-swiper-indicator>
+ ></up-swiper-indicator>
</slot>
</view>
</view>
@@ -141,7 +143,7 @@
this.currentIndex = val; // 鍜屼笂娓告暟鎹叧鑱斾笂
}
},
- emits: ["click", "change"],
+ emits: ["click", "change", "update:current"],
computed: {
itemStyle() {
return index => {
@@ -187,6 +189,7 @@
} = e.detail
this.pauseVideo(this.currentIndex)
this.currentIndex = current
+ this.$emit('update:current', this.currentIndex)
this.$emit('change', e.detail)
},
// 鍒囨崲杞挱鏃讹紝鏆傚仠瑙嗛鎾斁
--
Gitblit v1.9.1