@@ -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 }}
-
+
-
+