修改关于海威

master
suixy 6 days ago
parent 2afcf76b85
commit 53b11c0fc2

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

@ -0,0 +1,59 @@
<template>
<div>
<div class="title">
<span>
{{ data.title }}
</span>
</div>
<div class="divider"></div>
<div class="value">
<span>
{{ data.value }}
</span>
</div>
</div>
</template>
<script>
export default {
name: "El1",
props: ['data'],
data() {
return {};
},
mounted() {
},
methods: {}
}
</script>
<style scoped>
.title {
margin-top: 5vw;
width: 100%;
text-align: center;
font-size: 1.9vw;
letter-spacing: 2px;
font-weight: 600;
color: #000;
}
.divider {
width: 4vw;
height: 4px;
background: #3372FE;
border-radius: 999px;
margin: 10px auto;
}
.value {
width: 62vw;
margin: 2vw auto 4vw auto;
text-align: left;
font-size: 1vw;
line-height: 2vw;
letter-spacing: 0.1vw;
color: #000;
text-indent: 2em;
}
</style>

@ -0,0 +1,235 @@
<template>
<div>
<div class="title">
<span>
{{ data.title }}
</span>
</div>
<div class="divider"></div>
<div style="height:35.4vw;">
<div class="swiper hero-swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item,k) in data.list" :key="k">
<el-image
style="width: 100%; height: 100%;"
:src="item.img"
fit="contain"></el-image>
<div class="slide-bg">
<div class="slide-title">
{{ item.title }}
</div>
<div class="slide-value">
{{ item.value }}
</div>
</div>
</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
</template>
<script>
import Swiper from 'swiper'
import {Autoplay, Navigation} from "swiper/modules";
Swiper.use([
Navigation,
Autoplay
])
let swiper = null
export default {
name: "El1",
props: ['data'],
data() {
return {
show: true,
};
},
mounted() {
this.initSwiper()
},
methods: {
initSwiper() {
if (swiper) {
swiper.destroy(true, true);
swiper = null;
}
swiper = new Swiper(".mySwiper", {
loop: this.data.list.length > 2,
centeredSlides: true,
slidesPerView: "auto",
spaceBetween: -24,
speed: 450,
grabCursor: true,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
pagination: {
el: ".swiper-pagination",
clickable: true,
renderBullet: function (index, className) {
console.log(123)
return '<span class="' + className + '">' + (index + 1) + "</span>";
},
},
});
},
}
}
</script>
<style scoped>
.hero-swiper {
width: 100%;
height: 22vw;
overflow: hidden;
margin-top: 2vw;
.swiper-button-next {
position: absolute;
top: 50%;
right: 5vw;
transform: translateY(-50%);
}
.swiper-button-prev {
position: absolute;
top: 50%;
left: 5vw;
transform: translateY(-50%);
}
}
.swiper-pagination {
position: absolute;
bottom: 2vw;
left: 50%;
transform: translateX(-50%);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
background: #8b93a1;
opacity: 0.45;
}
.swiper-pagination-bullet-active {
width: 22px;
border-radius: 999px;
background: #14181f;
opacity: 1;
}
.hero-swiper .swiper-wrapper {
align-items: center;
}
.hero-swiper .swiper-slide {
width: 60vw;
height: 21.25vw;
display: flex;
align-items: center;
justify-content: center;
transform: scale(0.6);
transition: transform 300ms ease, opacity 300ms ease;
opacity: 0.55;
position: relative;
.slide-bg {
display: none;
position: absolute;
width: 100%;
height: 8vw;
background-color: #0002;
bottom: 0;
.slide-title {
position: absolute;
top: 1vw;
left: 2vw;
font-size: 1.6vw;
line-height: 2vw;
font-weight: 600;
color: #fff;
}
.slide-value {
position: absolute;
text-align: left;
top: 3.2vw;
left: 2vw;
font-size: 1vw;
font-weight: 600;
width: calc(100% - 4vw);
color: #fff;
text-indent: 2em;
height: 4vw;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
line-height: 2vw;
}
}
}
.hero-swiper .swiper-slide-active {
transform: scale(1);
opacity: 1;
z-index: 2;
.slide-bg {
display: inline-block;
}
}
.hero-swiper .swiper-slide img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 18px 48px rgba(20, 24, 31, 0.22);
}
@media (max-width: 720px) {
.hero-swiper {
height: 280px;
}
.hero-swiper .swiper-slide {
width: 76vw;
}
}
.title {
margin-top: 5vw;
width: 100%;
text-align: center;
font-size: 1.9vw;
letter-spacing: 2px;
font-weight: 600;
color: #000;
}
.divider {
width: 4vw;
height: 4px;
background: #3372FE;
border-radius: 999px;
margin: 10px auto;
}
</style>

@ -0,0 +1,138 @@
<template>
<div>
<div class="title">
<span>
{{ data.title }}
</span>
</div>
<div class="divider"></div>
<div class="list">
<div class="item" @click="toLink(i)" v-for=" (i,k) in data.list">
<div class="img1">
<div class="img">
<el-image
style="width: 100%; height: 100%;"
:src="i.img"
fit="contain"></el-image>
</div>
</div>
<div class="title1">{{ i.title }}</div>
<i class="el-icon-right icon"></i>
</div>
</div>
</div>
</template>
<script>
export default {
name: "El1",
props: ['data'],
data() {
return {};
},
mounted() {
},
methods: {
toLink(e) {
if (e.toLink[0] && e.toLink[1] && e.toLink[2]) {
this.$router.push(`/productCenter/detail?type=${e.toLink[0]}&typeId=${e.toLink[1]}&id=${e.toLink[2]}`)
}
},
}
}
</script>
<style scoped>
.title {
margin-top: 5vw;
width: 100%;
text-align: center;
font-size: 1.9vw;
letter-spacing: 2px;
font-weight: 600;
color: #000;
}
.divider {
width: 4vw;
height: 4px;
background: #3372FE;
border-radius: 999px;
margin: 10px auto;
}
.list {
width: 62vw;
margin: 3vw auto 0;
.item {
margin-right: 3vw;
width: calc(50% - 3vw);
display: inline-block;
margin-bottom: 1.4vw;
vertical-align: top;
position: relative;
&:hover {
.img1 {
.img {
transform: scale(1.2);
}
}
.icon {
right: 0;
}
}
.img1 {
overflow: hidden;
width: 100%;
height: calc((90vw * 0.33 - 3vw) * 1080 / 1920);
.img {
transition: all .5s;
width: 100%;
height: 100%;
}
}
.title1 {
margin-top: 1vw;
font-size: 1.3vw;
padding-left: 2vw;
position: relative;
text-align: left;
&::before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 2px;
height: 100%;
background: blue;
}
}
.icon {
font-size: 1.3vw;
position: absolute;
right: 2vw;
bottom: 1vw;
transform: translateY(50%);
transition: all .5s;
cursor: pointer;
}
&:nth-child(2n) {
margin-right: 0%;
}
}
}
</style>

@ -27,7 +27,7 @@
11月26-272024智能物流装备供应链集采大会监第十二次青浦圆桌会议在南陵举办本次大会以"向新而行、以质致远、绿色发展、共创未来"为主题200余家智能物流装备供应链企业参加共同探讨智能物流装备领城...
</div>
<div class="info-image-card__link">
<span>查看</span>
<span>查看详情</span>
<span class="info-image-card__arrow"></span>
</div>
</div>
@ -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;
}

@ -4,7 +4,7 @@
<TitleGroup>
<template slot="subTitle">
<span class="subTitle">
合作伙伴
企业资质
</span>
</template>
</TitleGroup>
@ -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;

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

@ -9,7 +9,8 @@
<ContactUs class="contactUs"/>
<Copyright class="copyright"/>
</div>
<div v-if="$route.query.id !== '1'" class="component" v-for="(i,k) in components">
<div v-if="$route.query.id !== '1'" class="component" v-for="(i,k) in components"
:style="{backgroundColor: (k % 2 ===0 ? '#fff':'#F5F8FE'),display: 'flow-root'}">
<Carousel v-if="i.type === 'carousel'" :data="i.value"/>
<Carousel1 v-if="i.type === 'carousel1'" :data="i.value"/>
<EditEl1 v-if="i.type === 1" :data="i.value"/>
@ -29,6 +30,9 @@
<EditEl15 v-if="i.type === 15" :data="i.value"/>
<EditEl16 v-if="i.type === 16" :data="i.value"/>
<EditEl17 v-if="i.type === 17" :data="i.value"/>
<IndustrySolutionsEl1 v-if="i.type === 'industrySolutionsEl1'" :data="i.value"/>
<IndustrySolutionsEl2 v-if="i.type === 'industrySolutionsEl2'" :data="i.value"/>
<IndustrySolutionsEl3 v-if="i.type === 'industrySolutionsEl3'" :data="i.value"/>
</div>
@ -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 {
<style scoped lang="less">
.container {
width: 90%;
width: 100%;
text-align: left;
margin: 0 auto;
}

Loading…
Cancel
Save