From 37da48c07eb7ea538024940224bd8e7f175580eb Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Fri, 31 Oct 2025 17:03:07 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20header=E7=AB=96=E5=B1=8F=E9=80=82?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在竖屏情况下将网站导航与部分顶部按钮挪到drawer内 --- app/components/shared/JinshenHeader.vue | 174 +++++++++++++++++++++++- 1 file changed, 171 insertions(+), 3 deletions(-) diff --git a/app/components/shared/JinshenHeader.vue b/app/components/shared/JinshenHeader.vue index 0fd55ca..0721bba 100644 --- a/app/components/shared/JinshenHeader.vue +++ b/app/components/shared/JinshenHeader.vue @@ -1,5 +1,6 @@ + + + + + + + + + + +
+

站点导航

+ + + {{ $t('navigation.products') }} + + + {{ $t('navigation.solutions') }} + + + {{ $t('navigation.support') }} + + + {{ $t('navigation.about-us') }} + + + +

实用工具

+ + + {{ $t('navigation.calculator') }} + + +
+ + +
+
@@ -78,6 +157,7 @@ const { setLocale } = useI18n(); const activeName = ref(undefined); + const mobileMenuVisible = ref(false); const refreshMenu = () => { const path = router.currentRoute.value.path; @@ -94,6 +174,10 @@ } }; + const openExternalLink = (url: string) => { + window.open(url, '_blank'); + }; + onMounted(() => { refreshMenu(); // 监听路由变化以更新激活状态 @@ -105,10 +189,10 @@ From 06c30a7ea32c479e2ed226bfff45a51d3c645ee6 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Fri, 31 Oct 2025 17:04:12 +0800 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=E9=A1=B5=E9=9D=A2=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E7=9A=84=E7=A7=BB=E5=8A=A8=E7=AB=AF=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当竖屏时隐藏footer --- app/layouts/default.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/layouts/default.vue b/app/layouts/default.vue index 63a2fcc..68a01ef 100644 --- a/app/layouts/default.vue +++ b/app/layouts/default.vue @@ -34,4 +34,10 @@ .page-footer { padding: 0px; } + + @media (max-width: 768px) { + .page-footer { + display: none; + } + } From d076088747d9c1e11d5887cfec21d6bfddf1a0e2 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Sat, 1 Nov 2025 15:32:15 +0800 Subject: [PATCH 3/8] =?UTF-8?q?feat:=20=E9=A6=96=E9=A1=B5=E7=AB=96?= =?UTF-8?q?=E5=B1=8F=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 首页Carousel高度根据屏幕宽度变化 - 首页推荐栏目卡片数量随屏幕宽度改变 --- .../pages/homepage/HomepageCarousel.vue | 6 ++ .../pages/homepage/HomepageProductSection.vue | 61 ++++++++++++++++-- .../homepage/HomepageSolutionSection.vue | 62 +++++++++++++++++-- 3 files changed, 119 insertions(+), 10 deletions(-) diff --git a/app/components/pages/homepage/HomepageCarousel.vue b/app/components/pages/homepage/HomepageCarousel.vue index 6324594..0621c96 100644 --- a/app/components/pages/homepage/HomepageCarousel.vue +++ b/app/components/pages/homepage/HomepageCarousel.vue @@ -83,4 +83,10 @@ border-radius: 5px; font-size: 14px; } + + @media (max-width: 768px) { + .homepage-carousel .el-carousel__item { + height: 50vw; + } + } diff --git a/app/components/pages/homepage/HomepageProductSection.vue b/app/components/pages/homepage/HomepageProductSection.vue index da4540a..9a4c9b0 100644 --- a/app/components/pages/homepage/HomepageProductSection.vue +++ b/app/components/pages/homepage/HomepageProductSection.vue @@ -7,19 +7,20 @@
('auto'); + const perPage = ref(3); + const carouselItem = ref(null); + const { getImageUrl } = useDirectusImage(); + const { height } = useElementSize(carouselItem); const products = computed(() => props.homepageData?.recommendProducts || []); + const pages = computed(() => + Math.ceil(products.value.length / perPage.value) + ); + + const updatePerPage = () => { + const width = window.innerWidth; + if (width < 768) { + perPage.value = 1; + } else if (width < 1024) { + perPage.value = 2; + } else { + perPage.value = 3; + } + }; + + const pageProducts = (n: number) => { + return products.value.slice((n - 1) * perPage.value, n * perPage.value); + }; const handleProductCardClick = (documentId: string) => { // 使用路由导航到产品详情页 @@ -76,6 +100,21 @@ router.push(localePath(`/products/${documentId}`)); } }; + + watch(height, (h) => { + if (h > 0) { + carouselHeight.value = h + 40 + 'px'; + } + }); + + onMounted(() => { + updatePerPage(); + window.addEventListener('resize', updatePerPage); + }); + + onBeforeUnmount(() => { + window.removeEventListener('resize', updatePerPage); + }); diff --git a/app/components/pages/homepage/HomepageSolutionSection.vue b/app/components/pages/homepage/HomepageSolutionSection.vue index 3144c78..af1e062 100644 --- a/app/components/pages/homepage/HomepageSolutionSection.vue +++ b/app/components/pages/homepage/HomepageSolutionSection.vue @@ -5,19 +5,20 @@
('auto'); + const perPage = ref(3); + const carouselItem = ref(null); + const { getImageUrl } = useDirectusImage(); + const { height } = useElementSize(carouselItem); const solutions = computed( () => props.homepageData?.recommendSolutions || [] ); + const pages = computed(() => + Math.ceil(solutions.value.length / perPage.value) + ); + + const updatePerPage = () => { + const width = window.innerWidth; + if (width < 768) { + perPage.value = 1; + } else if (width < 1024) { + perPage.value = 2; + } else { + perPage.value = 3; + } + }; + + const pageSolutions = (n: number) => { + return solutions.value.slice((n - 1) * perPage.value, n * perPage.value); + }; const handleSolutionCardClick = (documentId: string) => { // 使用路由导航到产品详情页 @@ -76,6 +100,22 @@ router.push(localePath(`/solutions/${documentId}`)); } }; + + watch(height, (h) => { + if (h > 0) { + carouselHeight.value = h + 40 + 'px'; + console.log('carouselHeight updated:', carouselHeight.value); + } + }); + + onMounted(() => { + updatePerPage(); + window.addEventListener('resize', updatePerPage); + }); + + onBeforeUnmount(() => { + window.removeEventListener('resize', updatePerPage); + }); From 3b6857637b1de0179835ec40ffe00123f75b2428 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Sat, 1 Nov 2025 16:05:59 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4footer=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/shared/JinshenFooter.vue | 6 +++++- app/layouts/default.vue | 6 ------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/components/shared/JinshenFooter.vue b/app/components/shared/JinshenFooter.vue index 017c189..f3e388c 100644 --- a/app/components/shared/JinshenFooter.vue +++ b/app/components/shared/JinshenFooter.vue @@ -1,6 +1,6 @@