2025-05-22 18:30:57 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div style="width: 100%;">
|
|
|
|
|
<!-- Swiper 容器 -->
|
|
|
|
|
<div class="group_666" style="position: relative;height: 250px;">
|
|
|
|
|
<swiper class="swiper-container h-full" @swiper="onSwiperNews" v-bind="swiperOptionsNews">
|
|
|
|
|
<swiper-slide>
|
|
|
|
|
<img :src="`${cdnUrl}/img/societyduty/shehui.png`" style="width: 100%;height: 100%;object-fit: cover;">
|
|
|
|
|
</swiper-slide>
|
|
|
|
|
<swiper-slide>
|
|
|
|
|
<img :src="`${cdnUrl}/img/societyduty/shehui.png`" style="width: 100%;height: 100%;object-fit: cover;">
|
|
|
|
|
</swiper-slide>
|
|
|
|
|
</swiper>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box_11 flex-col bottom_imgss">
|
2025-05-24 10:44:22 +08:00
|
|
|
|
<div class="service_top1">
|
|
|
|
|
<NuxtLink to="/phone_societyDutyNew/" style="cursor: pointer;width: 50%;text-align: center;">
|
|
|
|
|
<div style="color: #999999;">
|
|
|
|
|
公司动态
|
|
|
|
|
</div>
|
|
|
|
|
</NuxtLink>
|
|
|
|
|
<div style="cursor: pointer;width: 50%;text-align: center;">
|
|
|
|
|
<div style="color: #FC7428;margin-bottom: 10px;font-weight: 600;">活动影集(部分)</div>
|
|
|
|
|
<div style="background-color: #FC7428;width:20%;height: 4px;margin: 0 auto;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="background-color: #eeeeee;width:100%;height: 0.5px;"></div>
|
2025-05-22 18:30:57 +08:00
|
|
|
|
<!-- <div class="text-wrapper_10">
|
|
|
|
|
<span class="text_41">公司荣誉</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="text-wrapper_11">
|
|
|
|
|
<span class="text_42">Company Honors </span>
|
|
|
|
|
</div> -->
|
2025-05-24 10:44:22 +08:00
|
|
|
|
<!-- <div class="group_14 flex-row justify-between align-center" style="flex-wrap: wrap;width: 95%;padding-top: 30px;">
|
2025-05-22 18:30:57 +08:00
|
|
|
|
<div class="flex-row">
|
|
|
|
|
<div class="text_25">
|
|
|
|
|
<span>
|
|
|
|
|
<NuxtLink to="/phone_societyDutyNew/">
|
|
|
|
|
公司动态
|
|
|
|
|
</NuxtLink>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="text_25">
|
|
|
|
|
<span style="color: rgb(252, 116, 40);">活动影集(部分)</span>
|
|
|
|
|
<div
|
|
|
|
|
style="left: 20px;width: 100%;height: 1px;background-color: #fc7428;position: absolute;bottom: -21px;">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="group_15" style="flex: 0 0 100%;"></div>
|
2025-05-24 10:44:22 +08:00
|
|
|
|
</div> -->
|
2025-05-22 18:30:57 +08:00
|
|
|
|
|
|
|
|
|
<div class="boxgs flex-row flex-wrap">
|
|
|
|
|
|
2025-05-28 17:54:36 +08:00
|
|
|
|
<div class="box_con flex-col" v-for="(item,index) in newsList" :key="index">
|
2025-05-22 18:30:57 +08:00
|
|
|
|
<div class="align-center" style="justify-content: center;">
|
2025-05-28 17:54:36 +08:00
|
|
|
|
<img :src="item.image" style="width: 100%;">
|
2025-05-22 18:30:57 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="flex-col" style="justify-content: center;margin-top: 5px;">
|
|
|
|
|
<span class="text_tt">
|
2025-05-28 17:54:36 +08:00
|
|
|
|
{{item.name}}
|
2025-05-22 18:30:57 +08:00
|
|
|
|
</span>
|
|
|
|
|
<!-- <span class="text_cc">
|
|
|
|
|
{{item.value}}
|
|
|
|
|
</span> -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-05-28 17:54:36 +08:00
|
|
|
|
<div class="flex flex-row justify-center py-5" style="background-color: #F8F8F8;padding-bottom: 40px;">
|
|
|
|
|
<n-pagination v-model:page="page" :page-sizes="[10]" :item-count="total" size="large"
|
|
|
|
|
@update:page="getPageList">
|
|
|
|
|
</n-pagination>
|
|
|
|
|
</div>
|
2025-05-22 18:30:57 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
2025-05-28 17:54:36 +08:00
|
|
|
|
import { NPagination } from 'naive-ui'
|
2025-05-22 18:30:57 +08:00
|
|
|
|
import { Swiper, SwiperSlide } from 'swiper/vue'
|
|
|
|
|
import { nextTick, ref } from 'vue'
|
|
|
|
|
import 'swiper/css'
|
|
|
|
|
import { Autoplay, Navigation, Pagination, Scrollbar, A11y, EffectCoverflow,EffectFade } from "swiper/modules";
|
|
|
|
|
import ScrollReveal from 'scrollreveal';
|
|
|
|
|
import { NNumberAnimation } from 'naive-ui'
|
|
|
|
|
let modules = [Autoplay, A11y, EffectCoverflow,EffectFade];
|
|
|
|
|
|
|
|
|
|
import "swiper/css";
|
|
|
|
|
import "swiper/css/navigation";
|
|
|
|
|
import "swiper/css/pagination";
|
|
|
|
|
import 'swiper/css/effect-coverflow';
|
|
|
|
|
import 'swiper/css/mousewheel'
|
|
|
|
|
import 'swiper/css/grid'
|
|
|
|
|
import 'swiper/css/effect-fade'
|
|
|
|
|
import 'swiper/css/autoplay'
|
|
|
|
|
import * as swiperAni from '@/assets/animate/animate.js'
|
|
|
|
|
import $api from '@/service/webRequest'
|
|
|
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
|
import { useStore } from '~/store'
|
|
|
|
|
const { locale } = useI18n()
|
|
|
|
|
const cdnUrl = useCdn()
|
|
|
|
|
let newsSwiper: any = null
|
|
|
|
|
const onSwiperNews = (swiper: any) => {
|
|
|
|
|
newsSwiper = swiper
|
|
|
|
|
}
|
|
|
|
|
const swiperOptionsNews = {
|
|
|
|
|
autoplay: {
|
|
|
|
|
delay: 5000,
|
|
|
|
|
disableOnInteraction: false,
|
|
|
|
|
},
|
|
|
|
|
direction: 'horizontal',
|
|
|
|
|
slidesPerView: 1,
|
|
|
|
|
speed: 500,
|
|
|
|
|
effect: 'fade',
|
|
|
|
|
loop: true,
|
|
|
|
|
modules: [EffectFade,Autoplay,Navigation],
|
|
|
|
|
navigation: {
|
|
|
|
|
nextEl: '#swipen_prev',
|
|
|
|
|
prevEl: '#swipen_next',
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let vesSwiper: any = null
|
|
|
|
|
const onSwiperExp = (swiper: any) => {
|
|
|
|
|
vesSwiper = swiper
|
|
|
|
|
}
|
|
|
|
|
const swiper_exp = ref();
|
|
|
|
|
const lists = ref([
|
|
|
|
|
{title: '21年西工硅巷青创加速营仪式开营'},
|
|
|
|
|
{title: '21年西工硅巷青创加速营活动进行中'},
|
|
|
|
|
{title: '香港青英会15 周年、第16 届执委会暨第7屆理事会就职仪式'},
|
|
|
|
|
{title: '青年企业家助力河南高质量发展暨河南青年创新创业论坛'},
|
|
|
|
|
{title: '郑州市儿童福利院慰问活动'},
|
|
|
|
|
{title: '河南青年科技创新论坛'},
|
|
|
|
|
{title: '洛阳市青年联合会第九届委员会常务委员第一次会议'},
|
|
|
|
|
{title: '团省委省青联2023年新春送温暖慰问活动'},
|
|
|
|
|
{title: '荥阳市乔楼镇付河村“扶贫助困 情系家乡”志愿活动'},
|
|
|
|
|
{title: '东方医院活动'},
|
|
|
|
|
{title: '中国青年梦想季活动-中国'},
|
|
|
|
|
{title: '河南省青年企业家协会第十一届常务理事选举'}
|
|
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
// 新闻数据
|
|
|
|
|
onMounted(() => {
|
2025-05-28 17:54:36 +08:00
|
|
|
|
getIndexNews();
|
2025-05-22 18:30:57 +08:00
|
|
|
|
nextTick(() => {
|
|
|
|
|
animate()
|
|
|
|
|
})
|
|
|
|
|
})
|
2025-05-28 17:54:36 +08:00
|
|
|
|
const page = ref(1);
|
|
|
|
|
const total = ref(0);
|
|
|
|
|
const getPageList = async () => {
|
|
|
|
|
page.value = page.value + 1;
|
|
|
|
|
getIndexNews();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const newsList = ref([])
|
|
|
|
|
const getIndexNews = () => {
|
|
|
|
|
$api.get(`/api/home.news/images?page=${page.value}limit=12`)
|
|
|
|
|
.then((res: any) => {
|
|
|
|
|
console.log(res)
|
|
|
|
|
newsList.value = res.data.data.list
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.dir(err)
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-05-22 18:30:57 +08:00
|
|
|
|
const numberAnimationInstRef = ref()
|
|
|
|
|
const numberAnimationInstRefKH = ref()
|
|
|
|
|
const numberAnimationInstRefJS = ref()
|
|
|
|
|
const numberAnimationInstRefHY = ref()
|
|
|
|
|
const animate = () => {
|
|
|
|
|
|
|
|
|
|
const sr = ScrollReveal();
|
|
|
|
|
sr.reveal('.leftBox', {
|
|
|
|
|
origin: "left",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 100,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
})
|
|
|
|
|
sr.reveal('.rightBox', {
|
|
|
|
|
origin: "right",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 100,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
})
|
|
|
|
|
sr.reveal('.topBox', {
|
|
|
|
|
origin: "top",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 100,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
})
|
|
|
|
|
sr.reveal('.bottomBox', {
|
|
|
|
|
origin: "bottom",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 100,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
})
|
|
|
|
|
sr.reveal('.numberTopBox', {
|
|
|
|
|
origin: "top",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 100,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
beforeReveal: function (el: any) {
|
|
|
|
|
numberAnimationInstRef.value.play()
|
|
|
|
|
numberAnimationInstRefKH.value.play()
|
|
|
|
|
numberAnimationInstRefJS.value.play()
|
|
|
|
|
numberAnimationInstRefHY.value.play()
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
sr.reveal('.topSj', {
|
|
|
|
|
origin: "bottom",
|
|
|
|
|
distance: "1000px",
|
|
|
|
|
duration: 1300,
|
|
|
|
|
delay: 5,
|
|
|
|
|
opacity: 0,
|
|
|
|
|
scale: 0.9,
|
|
|
|
|
reset: true,
|
|
|
|
|
mobile: true,
|
|
|
|
|
useDelay: 'always',
|
|
|
|
|
interval: 50,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
@import "@/assets/animate/animate.min.css";
|
|
|
|
|
@import "@/assets/index.scss";
|
|
|
|
|
|
2025-05-28 17:54:36 +08:00
|
|
|
|
::v-deep .n-pagination .n-pagination-item:not(.n-pagination-item--disabled).n-pagination-item--active {
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
background-color: #FC7428;
|
|
|
|
|
border: 1px solid #FC7428;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .n-pagination .n-pagination-item:not(.n-pagination-item--disabled):hover.n-pagination-item--button {
|
|
|
|
|
color: #FC7428;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .n-pagination .n-pagination-item:not(.n-pagination-item--disabled):hover {
|
|
|
|
|
color: #FC7428;
|
|
|
|
|
border: 1px solid #FC7428;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .n-pagination .n-pagination-item {
|
|
|
|
|
border: 1px solid #999999;
|
|
|
|
|
}
|
2025-05-22 18:30:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.group_666 .swiper-slide img {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 500px;
|
|
|
|
|
height: auto;
|
|
|
|
|
transition: 1s linear 2s;
|
|
|
|
|
transform: scale(1.1, 1.1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.group_666 .swiper-slide-active img,
|
|
|
|
|
.swiper-slide-duplicate-active img {
|
|
|
|
|
transition: 6s linear;
|
|
|
|
|
transform: scale(1, 1);
|
|
|
|
|
}
|
|
|
|
|
.bottom_imgss{
|
|
|
|
|
// background: url(/public/img/customer/bg-s.png);
|
|
|
|
|
background: #F8F8F8;
|
|
|
|
|
height: auto;
|
|
|
|
|
// background-size: 100%;
|
|
|
|
|
}
|
|
|
|
|
.boxgs{
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
.box_con{
|
|
|
|
|
margin:10px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: auto;
|
|
|
|
|
font-family: Microsoft YaHei UI-Regular;
|
|
|
|
|
border-radius:4px;
|
|
|
|
|
.text_tt{
|
|
|
|
|
display: inline-block;
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin-top: 15px;
|
|
|
|
|
color: #3D3D3D ;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 0 25px 20px 25px;
|
|
|
|
|
}
|
|
|
|
|
.text_cc{
|
|
|
|
|
display: inline-block;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 30px;
|
|
|
|
|
overflow-wrap: break-word;
|
|
|
|
|
color: #999999 ;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
text-align: center;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-05-24 10:44:22 +08:00
|
|
|
|
.service_top1 {
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
padding-top: 10px;
|
|
|
|
|
z-index: 30;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-22 18:30:57 +08:00
|
|
|
|
</style>
|