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/property.vue |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 109 insertions(+), 0 deletions(-)

diff --git a/src/components/DiyEditor/components/mobile/Carousel/property.vue b/src/components/DiyEditor/components/mobile/Carousel/property.vue
new file mode 100644
index 0000000..8da98ff
--- /dev/null
+++ b/src/components/DiyEditor/components/mobile/Carousel/property.vue
@@ -0,0 +1,109 @@
+<template>
+  <ComponentContainerProperty v-model="formData.style">
+    <el-form label-width="80px" :model="formData">
+      <el-card header="鏍峰紡璁剧疆" class="property-group" shadow="never">
+        <el-form-item label="鏍峰紡" prop="type">
+          <el-radio-group v-model="formData.type">
+            <el-tooltip class="item" content="榛樿" placement="bottom">
+              <el-radio-button value="default">
+                <Icon icon="system-uicons:carousel" />
+              </el-radio-button>
+            </el-tooltip>
+            <el-tooltip class="item" content="鍗$墖" placement="bottom">
+              <el-radio-button value="card">
+                <Icon icon="ic:round-view-carousel" />
+              </el-radio-button>
+            </el-tooltip>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="楂樺害" prop="height">
+          <el-input-number class="!w-50% mr-10px" controls-position="right" v-model="formData.height" /> px
+        </el-form-item>
+        <el-form-item label="鎸囩ず鍣�" prop="indicator">
+          <el-radio-group v-model="formData.indicator">
+            <el-radio value="dot">灏忓渾鐐�</el-radio>
+            <el-radio value="number">鏁板瓧</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="鏄惁杞挱" prop="autoplay">
+          <el-switch v-model="formData.autoplay" />
+        </el-form-item>
+        <el-form-item label="鎾斁闂撮殧" prop="interval" v-if="formData.autoplay">
+          <el-slider
+            v-model="formData.interval"
+            :max="10"
+            :min="0.5"
+            :step="0.5"
+            show-input
+            input-size="small"
+            :show-input-controls="false"
+          />
+          <el-text type="info">鍗曚綅锛氱</el-text>
+        </el-form-item>
+      </el-card>
+      <el-card header="鍐呭璁剧疆" class="property-group" shadow="never">
+        <Draggable v-model="formData.items" :empty-item="{ type: 'img' }">
+          <template #default="{ element }">
+            <el-form-item label="绫诲瀷" prop="type" class="m-b-8px!" label-width="40px">
+              <el-radio-group v-model="element.type">
+                <el-radio value="img">鍥剧墖</el-radio>
+                <el-radio value="video">瑙嗛</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item
+              label="鍥剧墖"
+              class="m-b-8px!"
+              label-width="40px"
+              v-if="element.type === 'img'"
+            >
+              <UploadImg
+                v-model="element.imgUrl"
+                draggable="false"
+                height="80px"
+                width="100%"
+                class="min-w-80px"
+              />
+            </el-form-item>
+            <template v-else>
+              <el-form-item label="灏侀潰" class="m-b-8px!" label-width="40px">
+                <UploadImg
+                  v-model="element.imgUrl"
+                  draggable="false"
+                  height="80px"
+                  width="100%"
+                  class="min-w-80px"
+                />
+              </el-form-item>
+              <el-form-item label="瑙嗛" class="m-b-8px!" label-width="40px">
+                <UploadFile
+                  v-model="element.videoUrl"
+                  :file-type="['mp4']"
+                  :limit="1"
+                  :file-size="100"
+                  class="min-w-80px"
+                />
+              </el-form-item>
+            </template>
+            <el-form-item label="閾炬帴" class="m-b-8px!" label-width="40px">
+              <AppLinkInput v-model="element.url" />
+            </el-form-item>
+          </template>
+        </Draggable>
+      </el-card>
+    </el-form>
+  </ComponentContainerProperty>
+</template>
+
+<script setup lang="ts">
+import { CarouselProperty } from './config'
+import { useVModel } from '@vueuse/core'
+
+// 杞挱鍥惧睘鎬ч潰鏉�
+defineOptions({ name: 'CarouselProperty' })
+
+const props = defineProps<{ modelValue: CarouselProperty }>()
+const emit = defineEmits(['update:modelValue'])
+const formData = useVModel(props, 'modelValue', emit)
+</script>
+
+<style scoped lang="scss"></style>

--
Gitblit v1.8.0