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/PromotionPoint/property.vue | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 154 insertions(+), 0 deletions(-)
diff --git a/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue b/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue
new file mode 100644
index 0000000..ea20776
--- /dev/null
+++ b/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue
@@ -0,0 +1,154 @@
+<template>
+ <ComponentContainerProperty v-model="formData.style">
+ <el-form :model="formData" label-width="80px">
+ <el-card class="property-group" header="绉垎鍟嗗煄娲诲姩" shadow="never">
+ <PointShowcase v-model="formData.activityIds" />
+ </el-card>
+ <el-card class="property-group" header="鍟嗗搧鏍峰紡" shadow="never">
+ <el-form-item label="甯冨眬" prop="type">
+ <el-radio-group v-model="formData.layoutType">
+ <el-tooltip class="item" content="鍗曞垪澶у浘" placement="bottom">
+ <el-radio-button value="oneColBigImg">
+ <Icon icon="fluent:text-column-one-24-filled" />
+ </el-radio-button>
+ </el-tooltip>
+ <el-tooltip class="item" content="鍗曞垪灏忓浘" placement="bottom">
+ <el-radio-button value="oneColSmallImg">
+ <Icon icon="fluent:text-column-two-left-24-filled" />
+ </el-radio-button>
+ </el-tooltip>
+ <el-tooltip class="item" content="鍙屽垪" placement="bottom">
+ <el-radio-button value="twoCol">
+ <Icon icon="fluent:text-column-two-24-filled" />
+ </el-radio-button>
+ </el-tooltip>
+ <!--<el-tooltip class="item" content="涓夊垪" placement="bottom">
+ <el-radio-button value="threeCol">
+ <Icon icon="fluent:text-column-three-24-filled" />
+ </el-radio-button>
+ </el-tooltip>-->
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍚嶇О" prop="fields.name.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.name.color" />
+ <el-checkbox v-model="formData.fields.name.show" />
+ </div>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧绠�浠�" prop="fields.introduction.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.introduction.color" />
+ <el-checkbox v-model="formData.fields.introduction.show" />
+ </div>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧浠锋牸" prop="fields.price.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.price.color" />
+ <el-checkbox v-model="formData.fields.price.show" />
+ </div>
+ </el-form-item>
+ <el-form-item label="甯傚満浠�" prop="fields.marketPrice.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.marketPrice.color" />
+ <el-checkbox v-model="formData.fields.marketPrice.show" />
+ </div>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧閿�閲�" prop="fields.salesCount.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.salesCount.color" />
+ <el-checkbox v-model="formData.fields.salesCount.show" />
+ </div>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧搴撳瓨" prop="fields.stock.show">
+ <div class="flex gap-8px">
+ <ColorInput v-model="formData.fields.stock.color" />
+ <el-checkbox v-model="formData.fields.stock.show" />
+ </div>
+ </el-form-item>
+ </el-card>
+ <el-card class="property-group" header="瑙掓爣" shadow="never">
+ <el-form-item label="瑙掓爣" prop="badge.show">
+ <el-switch v-model="formData.badge.show" />
+ </el-form-item>
+ <el-form-item v-if="formData.badge.show" label="瑙掓爣" prop="badge.imgUrl">
+ <UploadImg v-model="formData.badge.imgUrl" height="44px" width="72px">
+ <template #tip> 寤鸿灏哄锛�36 * 22</template>
+ </UploadImg>
+ </el-form-item>
+ </el-card>
+ <el-card class="property-group" header="鎸夐挳" shadow="never">
+ <el-form-item label="鎸夐挳绫诲瀷" prop="btnBuy.type">
+ <el-radio-group v-model="formData.btnBuy.type">
+ <el-radio-button value="text">鏂囧瓧</el-radio-button>
+ <el-radio-button value="img">鍥剧墖</el-radio-button>
+ </el-radio-group>
+ </el-form-item>
+ <template v-if="formData.btnBuy.type === 'text'">
+ <el-form-item label="鎸夐挳鏂囧瓧" prop="btnBuy.text">
+ <el-input v-model="formData.btnBuy.text" />
+ </el-form-item>
+ <el-form-item label="宸︿晶鑳屾櫙" prop="btnBuy.bgBeginColor">
+ <ColorInput v-model="formData.btnBuy.bgBeginColor" />
+ </el-form-item>
+ <el-form-item label="鍙充晶鑳屾櫙" prop="btnBuy.bgEndColor">
+ <ColorInput v-model="formData.btnBuy.bgEndColor" />
+ </el-form-item>
+ </template>
+ <template v-else>
+ <el-form-item label="鍥剧墖" prop="btnBuy.imgUrl">
+ <UploadImg v-model="formData.btnBuy.imgUrl" height="56px" width="56px">
+ <template #tip> 寤鸿灏哄锛�56 * 56</template>
+ </UploadImg>
+ </el-form-item>
+ </template>
+ </el-card>
+ <el-card class="property-group" header="鍟嗗搧鏍峰紡" shadow="never">
+ <el-form-item label="涓婂渾瑙�" prop="borderRadiusTop">
+ <el-slider
+ v-model="formData.borderRadiusTop"
+ :max="100"
+ :min="0"
+ :show-input-controls="false"
+ input-size="small"
+ show-input
+ />
+ </el-form-item>
+ <el-form-item label="涓嬪渾瑙�" prop="borderRadiusBottom">
+ <el-slider
+ v-model="formData.borderRadiusBottom"
+ :max="100"
+ :min="0"
+ :show-input-controls="false"
+ input-size="small"
+ show-input
+ />
+ </el-form-item>
+ <el-form-item label="闂撮殧" prop="space">
+ <el-slider
+ v-model="formData.space"
+ :max="100"
+ :min="0"
+ :show-input-controls="false"
+ input-size="small"
+ show-input
+ />
+ </el-form-item>
+ </el-card>
+ </el-form>
+ </ComponentContainerProperty>
+</template>
+
+<script lang="ts" setup>
+import { PromotionPointProperty } from './config'
+import { useVModel } from '@vueuse/core'
+import PointShowcase from '@/views/mall/promotion/point/components/PointShowcase.vue'
+
+// 绉掓潃灞炴�ч潰鏉�
+defineOptions({ name: 'PromotionPointProperty' })
+
+const props = defineProps<{ modelValue: PromotionPointProperty }>()
+const emit = defineEmits(['update:modelValue'])
+const formData = useVModel(props, 'modelValue', emit)
+</script>
+
+<style lang="scss" scoped></style>
--
Gitblit v1.8.0