diff --git a/src/assets/icons/iconfont.css b/src/assets/icons/iconfont.css index c1e7cc85..64f2555b 100644 --- a/src/assets/icons/iconfont.css +++ b/src/assets/icons/iconfont.css @@ -1,9 +1,9 @@ @font-face { font-family: "iconfont"; /* Project id 4607934 */ - src: url('iconfont.woff2?t=1725414216013') format('woff2'), - url('iconfont.woff?t=1725414216013') format('woff'), - url('iconfont.ttf?t=1725414216013') format('truetype'), - url('iconfont.svg?t=1725414216013#iconfont') format('svg'); + src: url('iconfont.woff2?t=1726043407380') format('woff2'), + url('iconfont.woff?t=1726043407380') format('woff'), + url('iconfont.ttf?t=1726043407380') format('truetype'), + url('iconfont.svg?t=1726043407380#iconfont') format('svg'); } .iconfont { @@ -14,6 +14,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-bofang:before { + content: "\e798"; +} + .icon-a-miaosha:before { content: "\e797"; } diff --git a/src/assets/icons/iconfont.js b/src/assets/icons/iconfont.js index 14b37eea..b4a7f7d2 100644 --- a/src/assets/icons/iconfont.js +++ b/src/assets/icons/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_4607934='',(l=>{var h=(a=(a=document.getElementsByTagName("script"))[a.length-1]).getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var o,v,m,t,c,i=function(h,a){a.parentNode.insertBefore(h,a)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}o=function(){var h,a=document.createElement("div");a.innerHTML=l._iconfont_svg_string_4607934,(a=a.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",a=a,(h=document.body).firstChild?i(a,h.firstChild):h.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),o()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(m=o,t=l.document,c=!1,d(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,z())})}function z(){c||(c=!0,m())}function d(){try{t.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}z()}})(window); \ No newline at end of file +window._iconfont_svg_string_4607934='',(l=>{var h=(a=(a=document.getElementsByTagName("script"))[a.length-1]).getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var o,v,m,t,c,i=function(h,a){a.parentNode.insertBefore(h,a)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}o=function(){var h,a=document.createElement("div");a.innerHTML=l._iconfont_svg_string_4607934,(a=a.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",a=a,(h=document.body).firstChild?i(a,h.firstChild):h.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),o()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(m=o,t=l.document,c=!1,d(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,z())})}function z(){c||(c=!0,m())}function d(){try{t.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}z()}})(window); \ No newline at end of file diff --git a/src/assets/icons/iconfont.json b/src/assets/icons/iconfont.json index 0c021b17..5b319137 100644 --- a/src/assets/icons/iconfont.json +++ b/src/assets/icons/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "icon-", "description": "web端", "glyphs": [ + { + "icon_id": "41814968", + "name": "播放 (2)", + "font_class": "bofang", + "unicode": "e798", + "unicode_decimal": 59288 + }, { "icon_id": "41708758", "name": "秒杀", diff --git a/src/assets/icons/iconfont.svg b/src/assets/icons/iconfont.svg index 79f7ed66..0a11a889 100644 --- a/src/assets/icons/iconfont.svg +++ b/src/assets/icons/iconfont.svg @@ -14,6 +14,8 @@ /> + + diff --git a/src/assets/icons/iconfont.ttf b/src/assets/icons/iconfont.ttf index 22e8e5a4..bb4a4717 100644 Binary files a/src/assets/icons/iconfont.ttf and b/src/assets/icons/iconfont.ttf differ diff --git a/src/assets/icons/iconfont.woff b/src/assets/icons/iconfont.woff index 4c156f0f..0b7888c8 100644 Binary files a/src/assets/icons/iconfont.woff and b/src/assets/icons/iconfont.woff differ diff --git a/src/assets/icons/iconfont.woff2 b/src/assets/icons/iconfont.woff2 index ee7784b2..6fe90784 100644 Binary files a/src/assets/icons/iconfont.woff2 and b/src/assets/icons/iconfont.woff2 differ diff --git a/src/components/common/upload/index.vue b/src/components/common/upload/index.vue index 146f934a..64386cb2 100644 --- a/src/components/common/upload/index.vue +++ b/src/components/common/upload/index.vue @@ -209,7 +209,7 @@
-
+
diff --git a/src/components/model-carousel/index.vue b/src/components/model-carousel/index.vue index 6c3e9473..ba706243 100644 --- a/src/components/model-carousel/index.vue +++ b/src/components/model-carousel/index.vue @@ -25,16 +25,34 @@ @slide-change="slideChange" > -
+
+
+ + + {{ item.video_title }} +
-
+
+
+ + + {{ item.video_title }} +
-
+
diff --git a/src/components/model-carousel/model-carousel-content.vue b/src/components/model-carousel/model-carousel-content.vue index ee08f758..a97d4487 100644 --- a/src/components/model-carousel/model-carousel-content.vue +++ b/src/components/model-carousel/model-carousel-content.vue @@ -32,19 +32,19 @@
-

上传图片

+ 上传图片
- -

上传视频

+ + 上传视频
- - + +
@@ -72,6 +72,7 @@ const add = () => { carousel_img: [], carousel_video: [], carousel_link: {}, + video_title: "视频名称" }); }; const remove = (index: number) => { @@ -84,6 +85,10 @@ const remove = (index: number) => { padding-left: 1.6rem; padding-right: 2rem; padding-top: 4.6rem; + padding-bottom: 1.6rem; + :deep(.el-form-item) { + margin-bottom: 0; + } } .upload_style { width: 100%; @@ -93,10 +98,8 @@ const remove = (index: number) => { color: $cr-info-dark; } .upload-text { - font-weight: 500; font-size: 1.4rem; color: #999999; - line-height: 2rem; text-align: left; font-style: normal; } diff --git a/src/components/model-carousel/model-carousel-styles.vue b/src/components/model-carousel/model-carousel-styles.vue index 005f6ebc..76a567dc 100644 --- a/src/components/model-carousel/model-carousel-styles.vue +++ b/src/components/model-carousel/model-carousel-styles.vue @@ -18,16 +18,60 @@ -
- -
视频按钮是否显示
- - - - - - -
+
@@ -41,20 +85,29 @@ const props = defineProps({ type: Object, default: () => {}, }, + content: { + type: Object, + default: () => {}, + } }); const state = reactive({ form: props.value, + new_content: props.content, }); // 如果需要解构,确保使用toRefs -const { form } = toRefs(state); +const { form, new_content } = toRefs(state); + +const is_video = computed(() => new_content.value.carousel_list.length > 0 && (new_content.value.carousel_list.findIndex((item: any) => item.carousel_video.length > 0)) > 0); -// 监听整个form对象,发生变化的时候触发emit -const emit = defineEmits(['update:value']); // 图片圆角 const radius_change = (radius: any) => { form.value = Object.assign(form.value, pick(radius, ['radius', 'radius_top_left', 'radius_top_right', 'radius_bottom_left', 'radius_bottom_right'])); - emit('update:value', form.value); +}; + +const mult_color_picker_event = (arry: color_list[], type: number) => { + form.value.video_color_list = arry; + form.value.video_direction = type.toString(); }; // 通用样式处理 const common_styles_update = (val: Object) => { diff --git a/src/components/model-goods-list/index.vue b/src/components/model-goods-list/index.vue index b66169bf..9f0f4d6c 100644 --- a/src/components/model-goods-list/index.vue +++ b/src/components/model-goods-list/index.vue @@ -469,10 +469,7 @@ watchEffect(() => { notice_length: notice_length, }; // 更新轮播图的key,确保更换时能重新更新轮播图 - // 添加节流处理,一秒只执行一次 - throttle(() => { - carouselKey.value = get_math(); - }, 1000); + carouselKey.value = get_math(); } }); //#endregion diff --git a/src/components/model-nav-group/index.vue b/src/components/model-nav-group/index.vue index f0427223..4652b6e3 100644 --- a/src/components/model-nav-group/index.vue +++ b/src/components/model-nav-group/index.vue @@ -141,10 +141,7 @@ watch(props.value, (val) => { is_roll: display_is_roll, }; // 更新轮播图的key,确保更换时能重新更新轮播图 - // 添加节流处理,一秒只执行一次 - throttle(() => { - carouselKey.value = get_math(); - }, 1000); + carouselKey.value = get_math(); } nextTick(() => { if (!isEmpty(bannerImg.value)) { diff --git a/src/components/model-notice/index.vue b/src/components/model-notice/index.vue index 3938cbfe..221a84db 100644 --- a/src/components/model-notice/index.vue +++ b/src/components/model-notice/index.vue @@ -76,7 +76,7 @@ const container_background_style = computed(() => { return gradient_computer(styles) + radius_computer(new_style.value.container_radius) + background_computer(styles) + `overflow:hidden;`; }); // 图片设置 -const img_style = ref(''); +const img_style = computed(() => `height: ${ new_style.value.title_height }px; width: ${ new_style.value.title_width }px`); // 标题的设置 const topic_style = computed(() => { // 标题渐变色处理 @@ -108,14 +108,6 @@ const notice_list = computed(() => { // 内容参数的集合 watchEffect(() => { - //#region 标题设置 - if (form.value.notice_style == 'card') { - img_style.value = `height: ${ new_style.value.title_height }px; width: ${ new_style.value.title_width }px`; - } else if (!isEmpty(form.value.img)) { - img_style.value = `height: ${ new_style.value.title_height }px; width: ${ new_style.value.title_width }px`; - } - //#endregion - //#region 轮播图设置 const time = (new_style.value?.interval_time || 2) * 1000; const direction = form.value.direction; @@ -134,10 +126,7 @@ watchEffect(() => { notice_length: notice_length }; // 更新轮播图的key,确保更换时能重新更新轮播图 - // 添加节流处理,一秒只执行一次 - throttle(() => { - carouselKey.value = get_math(); - }, 1000); + carouselKey.value = get_math(); } //#endregion }); diff --git a/src/components/model-seckill/index.vue b/src/components/model-seckill/index.vue index c94303d1..81c13cd6 100644 --- a/src/components/model-seckill/index.vue +++ b/src/components/model-seckill/index.vue @@ -434,10 +434,7 @@ watchEffect(() => { // 判断是平移还是整屏滚动 slides_per_group.value = new_style.value.rolling_fashion == 'translation' ? 1 : form.value.carousel_col; // 更新轮播图的key,确保更换时能重新更新轮播图 - // 添加节流处理,一秒只执行一次 - throttle(() => { - carouselKey.value = get_math(); - }, 1000); + carouselKey.value = get_math(); }); //容器高度 diff --git a/src/views/layout/components/main/default/carousel.ts b/src/views/layout/components/main/default/carousel.ts index 197139de..e6751668 100644 --- a/src/views/layout/components/main/default/carousel.ts +++ b/src/views/layout/components/main/default/carousel.ts @@ -5,6 +5,7 @@ interface carousel_list { carousel_img: uploadList[]; carousel_video: uploadList[]; carousel_link: object; + video_title: string; } interface defaultSearch { content: { @@ -27,6 +28,19 @@ interface defaultSearch { indicator_size: number; indicator_bottom: number; indicator_radius: radiusStyle; + video_is_show: string; + video_type: string; + video_radius: radiusStyle; + video_padding: paddingStyle; + video_img: uploadList[]; + video_icon_class: string; + video_icon_color: string; + video_location: string; + video_bottom: number; + video_title_color: string; + video_title_size: number; + video_color_list: color_list[]; + video_direction: string; actived_color: string; color: string; common_style: object; @@ -42,17 +56,20 @@ const defaultSearch: defaultSearch = { { carousel_img: [], carousel_video: [], - carousel_link: {} + carousel_link: {}, + video_title: '视频名称' }, { carousel_img: [], carousel_video: [], - carousel_link: {} + carousel_link: {}, + video_title: '视频名称' }, { carousel_img: [], carousel_video: [], - carousel_link: {} + carousel_link: {}, + video_title: '视频名称' } ] }, @@ -75,6 +92,31 @@ const defaultSearch: defaultSearch = { radius_bottom_left: 4, radius_bottom_right: 4, }, + video_is_show: '1', + video_type: 'icon', + video_radius: { + radius: 20, + radius_top_left: 20, + radius_top_right: 20, + radius_bottom_left: 20, + radius_bottom_right: 20, + }, + video_padding: { + padding: 0, + padding_top: 3, + padding_bottom: 3, + padding_left: 6, + padding_right: 12, + }, + video_img: [], + video_icon_class: '', + video_icon_color: '#ff6868', + video_location: 'center', + video_bottom: 20, + video_title_color: '#666', + video_title_size: 12, + video_color_list: [{ color: '#F0F0F0', color_percentage: undefined }], + video_direction: '180deg', actived_color: '#2A94FF', color: '#DDDDDD', common_style: {