From f3dd79ab4e9ce27816b9360b6fb749e1a05b5139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Wed, 4 Sep 2024 15:37:32 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=92=E6=9D=80?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/model-seckill/index.vue | 215 +++++++++++++++--- .../model-seckill/model-seckill-content.vue | 57 ++++- .../model-seckill/model-seckill-setting.vue | 63 +++-- .../model-seckill/model-seckill-styles.vue | 40 +++- .../layout/components/main/default/seckill.ts | 43 +++- 5 files changed, 355 insertions(+), 63 deletions(-) diff --git a/src/components/model-seckill/index.vue b/src/components/model-seckill/index.vue index 30eab72e..39775304 100644 --- a/src/components/model-seckill/index.vue +++ b/src/components/model-seckill/index.vue @@ -30,35 +30,141 @@ -
-
- -
-
{{ item.title }}
-
-
-
-
+ +
diff --git a/src/components/model-seckill/model-seckill-content.vue b/src/components/model-seckill/model-seckill-content.vue index 7e7f1985..2de0b14a 100644 --- a/src/components/model-seckill/model-seckill-content.vue +++ b/src/components/model-seckill/model-seckill-content.vue @@ -45,12 +45,12 @@
商品风格
- + {{ item.name }} - + 1个 2个 3个 @@ -70,9 +70,20 @@ - - {{ item.name }} - +
+ + +
@@ -143,6 +154,42 @@ const base_list = { { name: '售价单位', value: 'price_unit' }, { name: '原价单位', value: 'original_price_unit' }, ], + shopping_button_list: [ + { name: '文字', value: 'text' }, + { name: '图标', value: 'icon' }, + ], +}; +const is_revise = ref(false); +const change_shop_type = () => { + is_revise.value = true; +}; +// 选择某些风格时, 切换到对应的按钮 +const change_style = (val: any): void => { + form.value.theme = val; + if (!is_revise.value) { + if (['3'].includes(val) && form.value.shop_type == 'text') { + form.value.shop_type = 'icon'; + } else if (['1', '2'].includes(val) && form.value.shop_type == 'icon') { + form.value.shop_type = 'text'; + } + } + if (['1'].includes(val)) { + if (data.value.shop_img_radius.radius == props.defaultConfig.img_radius_0 || (data.value.shop_img_radius.radius_bottom_left == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_bottom_right == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_top_left == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_top_right == props.defaultConfig.img_radius_1)) { + data.value.shop_img_radius.radius = props.defaultConfig.img_radius_0; + data.value.shop_img_radius.radius_bottom_left = props.defaultConfig.img_radius_0; + data.value.shop_img_radius.radius_bottom_right = props.defaultConfig.img_radius_0; + data.value.shop_img_radius.radius_top_left = props.defaultConfig.img_radius_0; + data.value.shop_img_radius.radius_top_right = props.defaultConfig.img_radius_0; + } + } else { + if (data.value.shop_img_radius.radius == props.defaultConfig.img_radius_0 || (data.value.shop_img_radius.radius_bottom_left == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_bottom_right == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_top_left == props.defaultConfig.img_radius_1 && data.value.shop_img_radius.radius_top_right == props.defaultConfig.img_radius_1)) { + data.value.shop_img_radius.radius = props.defaultConfig.img_radius_1; + data.value.shop_img_radius.radius_bottom_left = props.defaultConfig.img_radius_1; + data.value.shop_img_radius.radius_bottom_right = props.defaultConfig.img_radius_1; + data.value.shop_img_radius.radius_top_left = props.defaultConfig.img_radius_1; + data.value.shop_img_radius.radius_top_right = props.defaultConfig.img_radius_1; + } + } }; const emit = defineEmits(['update:change-theme']); diff --git a/src/components/model-seckill/model-seckill-setting.vue b/src/components/model-seckill/model-seckill-setting.vue index b726b08a..33e9dbe1 100644 --- a/src/components/model-seckill/model-seckill-setting.vue +++ b/src/components/model-seckill/model-seckill-setting.vue @@ -1,10 +1,10 @@ @@ -22,13 +22,21 @@ const props = defineProps({ default: () => ({}), }, }); - - +//#region 默认数据 +const data_config = reactive({ + // 图片不同风格下的圆角 + img_radius_0: 4, + img_radius_1: 0, +}); const new_url = ref(''); +// 全部的默认数据 let default_data:any = {}; +// 每个样式下独立的默认数据 let default_config:any = {}; onBeforeMount(async () => { + // 获取图片的链接地址 new_url.value = await online_url('/static/plugins/seckill/images/diy/').then(res => res); + // 全部的默认数据 default_data = { content: { topic_type: 'image', @@ -72,25 +80,43 @@ onBeforeMount(async () => { content_outer_spacing: 10, // 商品间距 content_spacing: 10, content_outer_height: 232, - shop_title_color: '', - shop_title_typeface: '', - shop_title_size: 12, - price_color: '', - original_price_color: '', - seckill_subscript_location: '', - seckill_subscript_text_color: '', - seckill_subscript_bg_color: '', - progress_bg_color: '', - progress_actived_color_list: [{ color: '', color_percentage: undefined }], + shop_title_typeface: '500', + shop_title_size: 14, + shop_title_color: "#333333", + shop_price_typeface: '500', + shop_price_size: 18, + shop_price_color: "#EA3323;", + shop_button_typeface:'400', + shop_button_size: 12, + shop_button_color: [ + { + color: '#FF3D53', + color_percentage: undefined + }, + { + color: '#D73A3A', + color_percentage: undefined + } + ], + shop_button_text_color: '#fff', + shop_icon_size: 10, + shop_icon_color: "#fff", + original_price_color: '#999', + seckill_subscript_location: 'top-left', + seckill_subscript_text_color: '#fff', + seckill_subscript_bg_color: '#FF7607', + progress_bg_color: '#FFEDED', + progress_actived_color_list: [{ color: '#FF3131', color_percentage: undefined }, { color: '#FF973D', color_percentage: undefined }], progress_actived_direction: '180deg', - progress_button_color: '', - progress_button_icon_color: '', - progress_text_color: '', + progress_button_color: '#FFDE81', + progress_button_icon_color: '#FF2525', + progress_text_color: '#FF3434', is_roll: true, interval_time: 2, rolling_fashion: 'translation', } } + // 每个样式下独立的默认数据 default_config = { style: { theme_1: {}, @@ -147,12 +173,13 @@ onBeforeMount(async () => { }, }; }) +//#endregion const form = ref(props.value); +// 切换风格的时候会将对应风格的默认数据合并到form中 const change_theme = (val: string) => { if (val) { form.value.style = Object.assign({}, form.value.style, cloneDeep(default_data.style), cloneDeep((default_config.style)[`theme_${Number(val)}`].style)); form.value.content = Object.assign({}, form.value.content, cloneDeep(default_data.content), cloneDeep((default_config.style)[`theme_${Number(val)}`].content)); - console.log(form.value.content); } }; diff --git a/src/components/model-seckill/model-seckill-styles.vue b/src/components/model-seckill/model-seckill-styles.vue index 008aa52f..1e7a21b3 100644 --- a/src/components/model-seckill/model-seckill-styles.vue +++ b/src/components/model-seckill/model-seckill-styles.vue @@ -84,15 +84,36 @@ {{ item.name }} - + - +
+ + + +