From eb2a52c672127e3ee8938658a3cb887c29a3eb10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Mon, 25 Nov 2024 16:58:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E8=88=AA=E7=BB=84?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E5=8D=A1=E7=9A=84=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/base/drag/index.vue | 21 +- .../common/subscript/subscript-index.vue | 8 +- .../common/subscript/subscript-styles.vue | 6 +- .../model-article-tabs-content.vue | 1 + src/components/model-custom/index.vue | 4 +- .../model-goods-tabs-content.vue | 1 + src/components/model-nav-group/index.ts | 18 +- src/components/model-nav-group/index.vue | 26 +- .../model-nav-group-content.vue | 248 ++++++++++++++++-- .../model-nav-group-styles.vue | 4 +- src/config/const/nav-group.ts | 95 ++++++- 11 files changed, 372 insertions(+), 60 deletions(-) diff --git a/src/components/base/drag/index.vue b/src/components/base/drag/index.vue index 98e52133..c7f90b7a 100644 --- a/src/components/base/drag/index.vue +++ b/src/components/base/drag/index.vue @@ -1,10 +1,10 @@
- +
@@ -129,6 +129,7 @@ const autoplay = ref(false); const slides_per_group = ref(1); const dot_list = ref([]); const swiper_height = ref(390); +const slides_per_view = ref(1); // 内容参数的集合 watchEffect(() => { // 是否滚动 @@ -155,6 +156,7 @@ watchEffect(() => { swiper_height.value = (form.value.height * scale.value + padding_top + padding_bottom + margin_bottom + margin_top) * form.value.data_source_carousel_col; } dot_list.value = Array(num); + slides_per_view.value = form.value.data_source_carousel_col; // 更新轮播图的key,确保更换时能重新更新轮播图 carouselKey.value = get_math(); }); diff --git a/src/components/model-goods-tabs/model-goods-tabs-content.vue b/src/components/model-goods-tabs/model-goods-tabs-content.vue index 83337896..0e728593 100644 --- a/src/components/model-goods-tabs/model-goods-tabs-content.vue +++ b/src/components/model-goods-tabs/model-goods-tabs-content.vue @@ -194,6 +194,7 @@ const tabs_add = () => { order_by_rule: '0', data_list: [], }); + form.value.tabs_active_index = form.value.tabs_list.length - 1; }; // 指定商品 diff --git a/src/components/model-nav-group/index.ts b/src/components/model-nav-group/index.ts index f4346c99..433f9689 100644 --- a/src/components/model-nav-group/index.ts +++ b/src/components/model-nav-group/index.ts @@ -1,8 +1,21 @@ +interface subscript_type { + content: { + seckill_subscript_show: string, + subscript_type: string, + subscript_img_src: uploadList[], + subscript_icon_class: string, + subscript_text: string, + }, + style: object; +} + interface nav_group { id: string; img: uploadList[]; title: string; link: object; + tabs_name: string; + subscript: subscript_type; } interface nav_group_content { @@ -11,11 +24,6 @@ interface nav_group_content { display_style: string; row: number; nav_content_list: nav_group[]; - seckill_subscript_show: string; - subscript_type: string; - subscript_img_src: uploadList[]; - subscript_icon_class: string; - subscript_text: string; } interface nav_group_styles { diff --git a/src/components/model-nav-group/index.vue b/src/components/model-nav-group/index.vue index 2f81e6bc..d78791c8 100644 --- a/src/components/model-nav-group/index.vue +++ b/src/components/model-nav-group/index.vue @@ -8,7 +8,7 @@
- +

{{ item1.title }}

@@ -174,16 +174,25 @@ const nav_content_list = computed(() => { return [{ split_list: list }]; } }); - +// 内容参数的集合 +watch(() => props.value, (val) => { + nextTick(() => { + if (!isEmpty(bannerImg.value)) { + newHeight.value = (bannerImg.value[0]?.clientHeight || 100) + 'px'; + } + }); +}, {immediate: true, deep: true}); +// 轮播数据监听 const autoplay = ref(false); const slides_per_view = ref(1); // 每个导航所占位置 const group_width = ref('100%'); -// 内容参数的集合 -watch(() => props.value, (val) => { +// 监听轮播图的变化 +watchEffect(() => { const display_is_roll = form.value.display_style == 'slide' ? new_style.value.is_roll : '0'; + const list = form.value?.nav_content_list || []; // 是否滚动 - if (display_is_roll == '1') { + if (display_is_roll == '1' && list.length > 1) { autoplay.value = { delay: (new_style.value.interval_time || 2) * 1000, pauseOnMouseEnter: true, @@ -205,12 +214,7 @@ watch(() => props.value, (val) => { } // 更新轮播图的key,确保更换时能重新更新轮播图 carouselKey.value = get_math(); - nextTick(() => { - if (!isEmpty(bannerImg.value)) { - newHeight.value = (bannerImg.value[0]?.clientHeight || 100) + 'px'; - } - }); -}, {immediate: true, deep: true}); +}); const slideChange = (swiper: { realIndex: number }) => { actived_index.value = swiper.realIndex; }; diff --git a/src/components/model-nav-group/model-nav-group-content.vue b/src/components/model-nav-group/model-nav-group-content.vue index 69b50f54..0819e6a1 100644 --- a/src/components/model-nav-group/model-nav-group-content.vue +++ b/src/components/model-nav-group/model-nav-group-content.vue @@ -36,36 +36,67 @@
内容设置从分类添加
最多添加{{ form.nav_content_list.length }}张图片,建议尺寸90*90px
- + +添加
-
- -
角标设置
- - -
diff --git a/src/components/model-nav-group/model-nav-group-styles.vue b/src/components/model-nav-group/model-nav-group-styles.vue index d4a2b4ed..b08c9e18 100644 --- a/src/components/model-nav-group/model-nav-group-styles.vue +++ b/src/components/model-nav-group/model-nav-group-styles.vue @@ -62,10 +62,10 @@ -