From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/components/DiyEditor/components/mobile/Carousel/index.vue | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/src/components/DiyEditor/components/mobile/Carousel/index.vue b/src/components/DiyEditor/components/mobile/Carousel/index.vue
new file mode 100644
index 0000000..cafb534
--- /dev/null
+++ b/src/components/DiyEditor/components/mobile/Carousel/index.vue
@@ -0,0 +1,43 @@
+<template>
+ <!-- 鏃犲浘鐗� -->
+ <div
+ class="h-250px flex items-center justify-center bg-gray-3"
+ v-if="property.items.length === 0"
+ >
+ <Icon icon="tdesign:image" class="text-gray-8 text-120px!" />
+ </div>
+ <div v-else class="relative">
+ <el-carousel
+ :height="property.height + 'px'"
+ :type="property.type === 'card' ? 'card' : ''"
+ :autoplay="property.autoplay"
+ :interval="property.interval * 1000"
+ :indicator-position="property.indicator === 'number' ? 'none' : undefined"
+ @change="handleIndexChange"
+ >
+ <el-carousel-item v-for="(item, index) in property.items" :key="index">
+ <el-image class="h-full w-full" :src="item.imgUrl" />
+ </el-carousel-item>
+ </el-carousel>
+ <div
+ v-if="property.indicator === 'number'"
+ class="absolute bottom-10px right-10px rounded-xl bg-black p-x-8px p-y-2px text-10px text-white opacity-40"
+ >{{ currentIndex }} / {{ property.items.length }}</div
+ >
+ </div>
+</template>
+<script setup lang="ts">
+import { CarouselProperty } from './config'
+
+/** 杞挱鍥� */
+defineOptions({ name: 'Carousel' })
+
+defineProps<{ property: CarouselProperty }>()
+
+const currentIndex = ref(0)
+const handleIndexChange = (index: number) => {
+ currentIndex.value = index + 1
+}
+</script>
+
+<style scoped lang="scss"></style>
--
Gitblit v1.8.0