diff --git a/src/assets/image/contactUs/bg2.png b/src/assets/image/contactUs/bg2.png new file mode 100644 index 0000000..b893c26 Binary files /dev/null and b/src/assets/image/contactUs/bg2.png differ diff --git a/src/components/el/industrySolutionsEl/el1.vue b/src/components/el/industrySolutionsEl/el1.vue new file mode 100644 index 0000000..1cb346e --- /dev/null +++ b/src/components/el/industrySolutionsEl/el1.vue @@ -0,0 +1,59 @@ + + + \ No newline at end of file diff --git a/src/components/el/industrySolutionsEl/el2.vue b/src/components/el/industrySolutionsEl/el2.vue new file mode 100644 index 0000000..49f398b --- /dev/null +++ b/src/components/el/industrySolutionsEl/el2.vue @@ -0,0 +1,235 @@ + + + \ No newline at end of file diff --git a/src/components/el/industrySolutionsEl/el3.vue b/src/components/el/industrySolutionsEl/el3.vue new file mode 100644 index 0000000..cfe18aa --- /dev/null +++ b/src/components/el/industrySolutionsEl/el3.vue @@ -0,0 +1,138 @@ + + + \ No newline at end of file diff --git a/src/views/contactUs/MediaCenter.vue b/src/views/contactUs/MediaCenter.vue index 5f4debb..f27cdc7 100644 --- a/src/views/contactUs/MediaCenter.vue +++ b/src/views/contactUs/MediaCenter.vue @@ -27,7 +27,7 @@ 11月26-27日,2024智能物流装备供应链集采大会监第十二次青浦圆桌会议在南陵举办。本次大会以"向新而行、以质致远、绿色发展、共创未来"为主题,200余家智能物流装备供应链企业参加,共同探讨智能物流装备领城... @@ -248,7 +248,7 @@ export default { &::after { position: absolute; top: 50%; - right: -1vw; + right: calc(-1vw + 1px); width: 0; height: 0; border-top: 1vw solid transparent; @@ -284,20 +284,21 @@ export default { overflow: hidden; color: #000; font-size: 1.3vw; - line-height: 1.25; + line-height: 1.6vw; text-overflow: ellipsis; white-space: nowrap; + font-weight: 600; } &__desc { display: -webkit-box; - min-height: calc(0.8vw * 1.5 * 3); + height: calc(1.5vw * 3); margin-top: 1vw; overflow: hidden; color: #555; font-size: 0.9vw; text-indent: 2em; - line-height: 1.5; + line-height: 1.5vw; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } @@ -307,15 +308,15 @@ export default { align-items: center; color: #3372fe; font-size: 0.9vw; - line-height: 1; + line-height: 1.2vw; margin-top: 2vw; cursor: pointer; } &__arrow { - width: 0.45vw; - height: 0.45vw; - margin-left: 0.35vw; + width: 0.3vw; + height: 0.3vw; + margin-left: 0.1vw; border-top: 0.12vw solid currentColor; border-right: 0.12vw solid currentColor; transform: rotate(45deg); @@ -326,7 +327,7 @@ export default { padding: 2vw 2vw 2vw 0; display: block; width: 30%; - height: 100%; + height: calc(1.6vw + 1vw + calc(1.5vw * 3) + 2vw + 1.2vw); flex: 0 0 30%; object-fit: cover; } diff --git a/src/views/contactUs/enterpriseQualification.vue b/src/views/contactUs/enterpriseQualification.vue index 3aa9a6e..d791096 100644 --- a/src/views/contactUs/enterpriseQualification.vue +++ b/src/views/contactUs/enterpriseQualification.vue @@ -4,7 +4,7 @@ @@ -97,7 +97,9 @@ export default { .bg { width: 100%; height: 23.3vw; - background-color: @standard-color; + background-image: url('~@/assets/image/contactUs/bg2.png'); + background-repeat: no-repeat; + background-size: cover; position: absolute; top: 0; z-index: -1; diff --git a/src/views/contactUs/index.vue b/src/views/contactUs/index.vue index dbacadc..5c0d622 100644 --- a/src/views/contactUs/index.vue +++ b/src/views/contactUs/index.vue @@ -66,6 +66,8 @@ export default { tabsActive: 0, tabsList: [], itemId: 3, + scrollRaf: null, + scrollEl: null, data: { banner: 'http://1.13.177.47:9665/statics/2025/07/24/mesnac_20250724093713A002.jpg', tabsList: [ @@ -154,26 +156,37 @@ export default { }, mounted() { this.getData() + this.setActiveById(parseFloat(this.$route.query.id || '3')) + this.scrollEl = document.querySelector('#content') + if (this.scrollEl) { + this.scrollEl.addEventListener('scroll', this.handleScroll, {passive: true}) + } + this.$nextTick(this.updateActiveByScroll) + }, + beforeDestroy() { + if (this.scrollEl) { + this.scrollEl.removeEventListener('scroll', this.handleScroll) + this.scrollEl = null + } + if (this.scrollRaf) { + cancelAnimationFrame(this.scrollRaf) + this.scrollRaf = null + } }, watch: { '$route'() { let id = parseFloat(this.$route.query.id || '3') - if (id === 3) { - this.tabsActive = 0 - } - if (id === 8) { - this.tabsActive = 1 - } - if (id === 9) { - this.tabsActive = 2 - } - if (id === 10) { - this.tabsActive = 3 - } - this.itemId = id + this.setActiveById(id) } }, methods: { + setActiveById(id) { + const index = this.data.tabsList.findIndex(i => i.id === id) + if (index > -1) { + this.tabsActive = index + this.itemId = id + } + }, checkTabs(e, k) { this.tabsActive = k this.itemId = e.id @@ -182,12 +195,37 @@ export default { block: 'start' }) }, + handleScroll() { + if (this.scrollRaf) return + this.scrollRaf = requestAnimationFrame(() => { + this.updateActiveByScroll() + this.scrollRaf = null + }) + }, + updateActiveByScroll() { + const tabsEl = this.$el.querySelector('.tabs') + const offsetTop = tabsEl ? tabsEl.getBoundingClientRect().bottom + 1 : 0 + let activeIndex = this.tabsActive + + this.data.tabsList.forEach((item, index) => { + const el = document.querySelector('#item' + item.id) + if (el && el.getBoundingClientRect().top <= offsetTop) { + activeIndex = index + } + }) + + if (activeIndex !== this.tabsActive) { + this.tabsActive = activeIndex + this.itemId = this.data.tabsList[activeIndex].id + } + }, getData() { getAboutUsInfo().then(e => { this.banner = e.data?.[0]?.aboutUsInfoPic this.bannerTitle = e.data?.[0]?.aboutUsInfoDesc this.tabsList = e.data.slice(1, e.data.length) console.log(this.tabsList) + this.$nextTick(this.updateActiveByScroll) }) } } diff --git a/src/views/page/index.vue b/src/views/page/index.vue index f0940f5..588fd41 100644 --- a/src/views/page/index.vue +++ b/src/views/page/index.vue @@ -9,7 +9,8 @@ -
+
@@ -29,6 +30,9 @@ + + +
@@ -56,6 +60,9 @@ import EditEl14 from "@/components/el/el14.vue"; import EditEl15 from "@/components/el/el15.vue"; import EditEl16 from "@/components/el/el16.vue"; import EditEl17 from "@/components/el/el17.vue"; +import IndustrySolutionsEl1 from "@/components/el/industrySolutionsEl/el1.vue"; +import IndustrySolutionsEl2 from "@/components/el/industrySolutionsEl/el2.vue"; +import IndustrySolutionsEl3 from "@/components/el/industrySolutionsEl/el3.vue"; import Copyright from '@/components/copyright' import ContactUs from "@/views/index/contactUs.vue"; @@ -90,6 +97,9 @@ export default { EditEl15, EditEl16, EditEl17, + IndustrySolutionsEl1, + IndustrySolutionsEl2, + IndustrySolutionsEl3, }, props: ["id"], data() { @@ -124,7 +134,7 @@ export default {