From a7bd95478beb0e9a8a1e6e12c8bf05677e67ddf7 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期三, 19 三月 2025 11:48:30 +0800
Subject: [PATCH] 面议

---
 src/views/Home.vue |  745 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 662 insertions(+), 83 deletions(-)

diff --git a/src/views/Home.vue b/src/views/Home.vue
index 78f852c..bcd297e 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -1,23 +1,23 @@
 <template>
-	<div class="h-full">
+	<div class="h-full relative">
 		<!-- 杞挱鍥鹃儴鍒� -->
-		<div class="banner-carousel  relative right-[29.5%] w-screen">
+		<div class="banner-carousel relative right-[29.5%] w-screen">
 			<el-carousel height="500px" :interval="5000" arrow="always">
 				<el-carousel-item>
 					<div class="carousel-item">
-						<img src="@/assets/carousel/test/10.png" class="carousel-image" />
+						<img src="@/assets/carousel/test/15.jpg" class="carousel-image" />
 						<!-- <img src="https://www.app-i.cn/api/file?file_name=2d82602e-8797-46d7-9b5c-59d9f88bc6d9.png;杞欢涓�浣撳寲娴嬭瘯骞冲彴_鍓湰.png" class="carousel-image" /> -->
 					</div>
 				</el-carousel-item>
 				<el-carousel-item>
 					<div class="carousel-item">
-						<img src="@/assets/carousel/test/11.png" class="carousel-image" />
+						<img src="@/assets/carousel/final/2.jpg" class="carousel-image" />
 						<!-- <img src="https://www.app-i.cn/static/epidemicBanner.e4d9a821.jpg" alt=""> -->
 					</div>
 				</el-carousel-item>
 				<el-carousel-item>
 					<div class="carousel-item">
-						<img src="@/assets/carousel/test/14.png" class="carousel-image" />
+						<img src="@/assets/carousel/final/5.png" class="carousel-image" />
 						<!-- <img src="https://www.app-i.cn/api/file?file_name=072c9dda-3ffb-410d-be93-a88ec6c7e765.jpg;40鍛ㄥ勾1.jpg" alt=""> -->
 					</div>
 				</el-carousel-item>
@@ -28,14 +28,17 @@
 		</div>
 		<div class="relative z-20 2 -mt-24">
 			<!-- 鍔熻兘鎸夐挳鍖哄煙 -->
-			<div class="bg-white py-8">
+			<div class="bg-white py-8" v-if="false">
 				<div class="mx-auto px-32">
 					<div class="grid grid-cols-4 divide-x-w-default">
-						<router-link to="/subsidy-application" class="block" style="border-left: 1px solid #e3e3e3; border-right: 1px solid #e3e3e3">
+						<a @click="toSubsidy" class="block" style="border-left: 1px solid #e3e3e3; border-right: 1px solid #e3e3e3">
 							<div class="flex items-center gap-1 justify-center">
 								<div class="w-16 h-16">
 									<svg viewBox="0 0 24 24" class="w-full h-full">
-										<path fill="currentColor" d="M14,17H7V15H14V17M17,13H7V11H17V13M17,9H7V7H17V9M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,19H5V5H19V19Z"/>
+										<path
+											fill="currentColor"
+											d="M14,17H7V15H14V17M17,13H7V11H17V13M17,9H7V7H17V9M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,19H5V5H19V19Z"
+										/>
 									</svg>
 								</div>
 								<div>
@@ -43,16 +46,19 @@
 									<div class="text-sm text-info-light-3">Subsidy Application</div>
 								</div>
 							</div>
-						</router-link>
+						</a>
 						<router-link to="/certified-products" class="block" style="border-right: 1px solid #e3e3e3">
 							<div class="flex items-center gap-1 justify-center">
 								<div class="w-16 h-16">
 									<svg viewBox="0 0 24 24" class="w-full h-full">
-										<path fill="currentColor" d="M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"/>
+										<path
+											fill="currentColor"
+											d="M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"
+										/>
 									</svg>
 								</div>
 								<div>
-									<div class="text-lg font-medium">璁よ瘉浜у搧</div>
+									<div class="text-lg font-medium">鑳芥晥浜у搧</div>
 									<div class="text-sm text-info-light-3">Certified Products</div>
 								</div>
 							</div>
@@ -61,7 +67,10 @@
 							<div class="flex items-center gap-1 justify-center">
 								<div class="w-16 h-16">
 									<svg viewBox="0 0 24 24" class="w-full h-full">
-										<path fill="currentColor" d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/>
+										<path
+											fill="currentColor"
+											d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"
+										/>
 									</svg>
 								</div>
 								<div>
@@ -70,19 +79,23 @@
 								</div>
 							</div>
 						</router-link>
-						<router-link to="/" class="block" style="border-right: 1px solid #e3e3e3">
-							<div class="flex items-center gap-1 justify-center" @click="linkClick('http://xpump.net/#/Index')">
+						<a class="block" style="border-right: 1px solid #e3e3e3"  @click="linkClick">
+							<div class="flex items-center gap-1 justify-center">
 								<div class="w-16 h-16">
-									<svg viewBox="0 0 24 24" class="w-full h-full">
-										<path fill="currentColor" d="M12,3L2,12H5V20H19V12H22L12,3M12,8.75A2.25,2.25 0 0,1 14.25,11A2.25,2.25 0 0,1 12,13.25A2.25,2.25 0 0,1 9.75,11A2.25,2.25 0 0,1 12,8.75M12,15C13.5,15 16.5,15.75 16.5,17.25V18H7.5V17.25C7.5,15.75 10.5,15 12,15Z"/>
-									</svg>
+									<!-- <svg viewBox="0 0 24 24" class="w-full h-full">
+										<path
+											fill="currentColor"
+											d="M12,3L2,12H5V20H19V12H22L12,3M12,8.75A2.25,2.25 0 0,1 14.25,11A2.25,2.25 0 0,1 12,13.25A2.25,2.25 0 0,1 9.75,11A2.25,2.25 0 0,1 12,8.75M12,15C13.5,15 16.5,15.75 16.5,17.25V18H7.5V17.25C7.5,15.75 10.5,15 12,15Z"
+										/>
+									</svg> -->
+									<img :src="YWLogo" class="h-full" />
 								</div>
 								<div>
 									<div class="text-lg font-medium">鏌ユ车缃�</div>
 									<div class="text-sm text-info-light-3">Pump Search</div>
 								</div>
 							</div>
-						</router-link>
+						</a>
 
 						<!-- <router-link to="/publish-demand" class="block">
 							<div class="function-card bg-white rounded-lg shadow-md p-6 text-center">
@@ -134,37 +147,44 @@
 					<div class="flex justify-between items-center mb-4" style="border-bottom: 1.5px solid var(--alloy-color-primary)">
 						<div class="flex items-center space-x-2 ml-2 font-bold">
 							<el-icon class="text-blue-500"><Document /></el-icon>
-							<span class="text-medium font-bold"> <span class="text-primary">閫氱煡</span>鍏憡</span>
+							<span class="text-medium font-bold"> <span class="text-primary">鏂伴椈</span>鏀跨瓥</span>
 						</div>
 						<el-button text>鏇村</el-button>
 					</div>
 					<div class="flex">
 						<img
-							class="w-[30%] flex-0"
-							src="https://www.app-i.cn/api/file?file_name=f9afde4d-6993-43e6-9ea5-fa2359161b4d.png;2(1).png"
-							alt="閫氱煡鍏憡"
+							class="w-[30%] flex-0 cursor-pointer"
+							src="@/assets/home/notice1.png"
+							@click="routeClick('/news-detail/8')"
+							alt="鏂伴椈鏀跨瓥"
 						/>
 						<div class="bg-page p-4 flex-auto">
-							<div class="font-bold text-medium over-ellipsis mb-2">
-								姝︽眽甯備汉姘戞斂搴滃叧浜庡嵃鍙戞姹夊競鍏充簬杩涗竴姝ヤ績杩涜蒋浠跺拰淇℃伅鎶�鏈湇鍔′笟楂樿川閲�
+							<div
+								class="font-bold text-large over-ellipsis mb-2 hover:text-primary cursor-pointer"
+								@click="routeClick('/news-detail/8')"
+							>
+								涓婃捣甯傜粡娴庝俊鎭寲濮斿叧浜庡紑灞�2025骞村害涓婃捣甯傚伐涓氶�氫俊涓氱敤鑳借澶囨洿鏂颁笓椤规壎鎸佽祫閲戦」鐩敵鎶ュ伐浣滅殑閫氱煡
 							</div>
 							<div class="text-small text-regular">
-								鍚勫尯浜烘皯鏀垮簻锛屽競浜烘皯鏀垮簻鍚勯儴闂細
-								缁忕爺绌讹紝鐜板皢銆婃姹夊競鍏充簬杩涗竴姝ヤ績杩涜蒋浠跺拰淇℃伅鎶�鏈湇鍔′笟楂樿川閲忓彂灞曠殑鑻ュ共鏀跨瓥鎺柦銆嬪嵃鍙戠粰浣犱滑锛岃璁ょ湡缁勭粐瀹炴柦銆�
+								鏈夊叧鍗曚綅锛�
+								涓鸿疮褰昏惤瀹炪�婁笂娴峰競鑺傝兘鍑忔帓锛堝簲瀵规皵鍊欏彉鍖栵級涓撻」璧勯噾绠$悊鍔炴硶锛堟勃鍙戞敼瑙勮寖銆�2021銆�5鍙凤級銆嬪拰銆婁笂娴峰競宸ヤ笟閫氫俊涓氱敤鑳借澶囨洿鏂颁笓椤规壎鎸佸疄鏂界粏鍒欍�嬶紙娌粡淇¤鑼冦��2025銆�1鍙凤級锛岃繘涓�姝ユ帹杩涙湰甯傚伐涓氶�氫俊涓氱敤鑳借澶囨洿鏂板伐浣滐紝鐜扮粍缁囧紑灞�2025骞村害涓婃捣甯傚伐涓氶�氫俊涓氱敤鑳借澶囨洿鏂颁笓椤规壎鎸佽祫閲戦」鐩敵鎶ュ伐浣溿��
 							</div>
-							<div
-								v-for="(item, index) in newsList"
-								:key="index"
-								class="flex text-regular justify-between items-center py-2"
-								style="border-bottom: 1px solid #e3e3e3"
-							>
-								<div class="flex items-center hover:text-primary w-full" @click="handleNewsClick(item)">
-									<!-- <div class="w-1.5 h-1.5 rounded-full bg-gray-400 mr-2"></div> -->
-									<div class="w-full text-gray-700 hover:text-blue-500 cursor-pointer text-ellipsis overflow-hidden whitespace-nowrap">
-										{{ item.title }}
+							<div class="mt-4">
+								<div
+									v-for="(item, index) in newsList"
+									:key="index"
+									class="flex text-regular justify-between items-center py-2 news-item"
+								>
+									<div class="flex items-center hover:text-primary w-full" @click="handleNewsClick(item)">
+										<!-- <div class="w-1.5 h-1.5 rounded-full bg-gray-400 mr-2"></div> -->
+										<div
+											class="w-full text-gray-700 hover:text-blue-500 cursor-pointer text-ellipsis overflow-hidden whitespace-nowrap"
+										>
+											{{ item.title }}
+										</div>
 									</div>
+									<!-- <div class="text-gray-400 text-sm">{{ item.date }}</div> -->
 								</div>
-								<!-- <div class="text-gray-400 text-sm">{{ item.date }}</div> -->
 							</div>
 						</div>
 					</div>
@@ -175,28 +195,52 @@
 					<div class="flex justify-between items-center mb-4" style="border-bottom: 1.5px solid var(--alloy-color-primary)">
 						<div class="flex items-center space-x-2 ml-2 font-bold">
 							<el-icon class="text-blue-500"><Operation /></el-icon>
-							<span class="text-medium font-bold"> <span class="text-primary">娲诲姩</span>鍚堜綔</span>
+							<span class="text-medium font-bold"> <span class="text-primary">鑳芥晥</span>浜у搧</span>
 						</div>
-						<el-button text>鏇村</el-button>
+						<el-button text @click="routeClick('/certified-products')">鏇村</el-button>
 					</div>
-					<div class="flex bg-[#f9f9f9]">
-						<div class="flex-auto">
-							<img src="@/assets/images/china-map.png" alt="娲诲姩鍚堜綔" class="w-full h-full" />
+					<div class="flex h-[360px] bg-[#f9f9f9] eec-product-div">
+						<div class="flex-auto h-full">
+							<!-- <img src="@/assets/images/china-map.png" alt="鑳芥晥浜у搧" class="w-full h-full" /> -->
+							<div id="eec-product-map" ref="EecProductMapChartRef"></div>
 						</div>
-						<div class="bg-[#393939] h-fit my-auto w-[200px] px-4 py-2 mx-10">
-							<div class="flex flex-col justify-between items-center mb-4 gap-2">
-								<div class="text-lg font-bold text-[#26c4f6]">鍏ㄥ浗鑳芥晥杞欢锝滆兘鏁圓PP鎬婚噺</div>
-								<div class="px-10 bg-[#d7ecf1] py-1.5 rounded-lg text-large font-bold text-warning">
-									4083<span class="text-base text-info-light-3 ml-1">涓�</span>
-								</div>
-							</div>
-							<div class="grid grid-cols-1 gap-4">
-								<div v-for="(item, index) in cooperationData" :key="index" class="flex justify-between items-center">
-									<span class="text-[#26c4f6]">{{ item.region }}</span>
-									<div>
-										<span class="text-white font-bold">{{ item.count }}</span>
-										<span class="text-sm text-gray-500 ml-1 text-regular">涓�</span>
+						<div class="h-fit my-auto px-4 py-4 mx-10 eec-product-num-div">
+							<div class="h-full bg-[#393939] px-4 py-4 flex-1" style="box-sizing: border-box; background-color: rgb(0 0 0 / 67%)">
+								<div class="flex flex-col justify-between items-center mb-4 gap-2">
+									<div class="text-lg font-bold text-[#26c4f6]">鍏ㄥ浗鑳芥晥浜у搧鎬婚噺</div>
+									<div class="px-10 bg-[#d7ecf1] py-1.5 rounded-lg text-large font-bold text-warning">
+										{{ m_allEecProductNumber }}<span class="text-base text-info-light-3 ml-1">涓�</span>
 									</div>
+								</div>
+								<div class="grid grid-cols-1 gap-4 h-[140px]">
+									<!-- <div class="flex gap-4 items-center" v-for="(item, index) in cooperationData" :key="index">
+										<span class="text-[#26c4f6]">{{ item.region }}</span>
+										<div>
+											<span class="text-white font-bold">{{ item.count }}</span>
+											<span class="text-sm text-white-500 ml-1 text-white">涓�</span>
+										</div>
+									</div> -->
+									<swiper
+										:direction="'vertical'"
+										:slidesPerView="5"
+										:spaceBetween="10"
+										:autoplay="{
+											delay: 1500,
+											disableOnInteraction: false,
+										}"
+										:modules="SwiperModule"
+										class="mySwiper"
+									>
+										<swiper-slide v-for="(item, index) in cooperationData" :key="index" style="width: 100%; height: 20px">
+											<div style="height: 100%; width: 100%; display: flex; gap: 4px; justify-content: center">
+												<span class="text-[#26c4f6]">{{ item.region }}</span>
+												<div>
+													<span class="text-white font-bold">{{ item.count }}</span>
+													<span class="text-sm ml-1" style="color: #aaa">涓�</span>
+												</div>
+											</div>
+										</swiper-slide>
+									</swiper>
 								</div>
 							</div>
 						</div>
@@ -211,35 +255,196 @@
 							<span class="text-medium font-medium">宸ヤ笟杞欢锝滃伐涓欰PP<span class="text-primary">浜у搧鍒嗙被</span></span>
 						</div>
 					</div> -->
-					<div class="text-large flex items-center w-fit mx-auto mt-4 font-bold">鑳芥晥杞欢 | 鑳芥晥APP浜у搧鍒嗙被</div>
+					<div class="text-large flex items-center w-fit mx-auto mt-4 font-bold">鑳芥晥浜у搧鍒嗙被</div>
 					<div class="flex">
 						<div class="w-[45%] h-[400px]" ref="pieChartRef"></div>
 						<div class="w-[55%] h-[400px]" ref="barChartRef"></div>
 					</div>
 				</div>
-
-				<!-- 琛屽熀閫氫笓鍒嗙被缁熻 -->
-				<div class="w-full bg-[#f6f7f9]">
-					<div class="text-large flex items-center w-fit mx-auto mt-4 font-bold">琛屽熀閫氫笓</div>
-					<div class="flex">
-						<div class="w-[45%] h-[400px]" ref="pieChart2Ref"></div>
-						<div class="w-[55%] h-[400px]" ref="barChart2Ref"></div>
-					</div>
-				</div>
 			</div>
 		</div>
+
+		<!-- 娴姩鍙充晶鏍� -->
+		<div class="fixed right-[60px] bottom-[128px] z-50">
+			<div class="flex flex-col">
+				<!-- 璐墿杞� -->
+				<div class="group relative" v-if="false">
+					<div
+						class="bg-white w-14 h-14 flex items-center justify-center cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							class="h-6 w-6 text-gray-600"
+							fill="none"
+							viewBox="0 0 24 24"
+							stroke="currentColor"
+						>
+							<path
+								stroke-linecap="round"
+								stroke-linejoin="round"
+								stroke-width="2"
+								d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"
+							/>
+						</svg>
+					</div>
+					<div class="hidden group-hover:block absolute right-full top-0 mr-2 whitespace-nowrap card-hover-style">
+						<div class="bg-gray-800 text-white text-sm py-1 px-3 rounded text-black" style="text-align: center">璐墿杞�</div>
+					</div>
+				</div>
+
+				<!-- 鎴戠殑 -->
+				<div class="group relative" v-if="false">
+					<div
+						class="bg-white w-14 h-14 flex items-center justify-center cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							class="h-6 w-6 text-gray-600"
+							fill="none"
+							viewBox="0 0 24 24"
+							stroke="currentColor"
+						>
+							<path
+								stroke-linecap="round"
+								stroke-linejoin="round"
+								stroke-width="2"
+								d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
+							/>
+						</svg>
+					</div>
+					<div class="hidden group-hover:block absolute right-full top-0 mr-2 whitespace-nowrap card-hover-style">
+						<div class="bg-gray-800 text-white text-sm py-1 px-3 rounded text-black" style="text-align: center">鎴戠殑</div>
+					</div>
+				</div>
+
+				<!-- 瀹㈡湇 -->
+				<div class="group relative">
+					<div
+						class="py-1.5 text-primary bg-white opacity-95 rounded-lg shadow size-19 flex items-center justify-center cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200 flex-col"
+						@click="showCustomerService = true"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							class="h-6 w-6 text-gray-600"
+							fill="none"
+							viewBox="0 0 24 24"
+							stroke="currentColor"
+						>
+							<path
+								stroke-linecap="round"
+								stroke-linejoin="round"
+								stroke-width="2"
+								d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z"
+							/>
+						</svg>
+						<div class="bg-gray-800 text-sm py-1 px-3 rounded text-primary" style="text-align: center">AI瀹㈡湇</div>
+					</div>
+					<!-- <div class="hidden group-hover:block absolute right-full top-0 mr-2 whitespace-nowrap card-hover-style">
+						<img :src="CallMe" width="150" height="150" />
+					</div> -->
+				</div>
+
+				<!-- 鍙嶉 -->
+				<!-- <div class="group relative" @click="toFeedBack">
+					<div
+						class="bg-white w-14 h-14 flex items-center justify-center cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200 flex-col"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							class="h-6 w-6 text-gray-600"
+							fill="none"
+							viewBox="0 0 24 24"
+							stroke="currentColor"
+						>
+							<path
+								stroke-linecap="round"
+								stroke-linejoin="round"
+								stroke-width="2"
+								d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
+							/>
+						</svg>
+						<div class="bg-gray-800 text-sm py-1 px-3 rounded text-black" style="text-align: center">鍙嶉</div>
+					</div>
+				</div>
+				<div class="group relative">
+					<div
+						class="bg-white w-14 h-14 flex items-center justify-center cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200 flex-col"
+					>
+						<svg
+							t="1740060002788"
+							class="icon h-6 w-6 text-gray-600"
+							viewBox="0 0 1024 1024"
+							version="1.1"
+							xmlns="http://www.w3.org/2000/svg"
+							p-id="13742"
+							width="128"
+							height="128"
+						>
+							<path
+								d="M767.818667 409.173333C867.338667 444.266667 938.666667 539.136 938.666667 650.666667c0 42.709333-10.496 83.978667-30.261334 120.842666-1.792 3.338667-4.992 8.928-9.696 16.96l14.613334 53.557334c6.506667 23.893333-15.402667 45.813333-39.296 39.296l-53.642667-14.634667-6.229333 3.669333A254.933333 254.933333 0 0 1 682.666667 906.666667c-77.994667 0-147.84-34.88-194.805334-89.888a352.608 352.608 0 0 1-56.64 4.554666c-63.338667 0-124.266667-16.853333-177.472-48.298666-1.834667-1.088-6.410667-3.733333-13.632-7.893334l-80.544 21.653334c-23.914667 6.432-45.76-15.573333-39.146666-39.434667l21.792-78.752a961.205333 961.205333 0 0 1-15.904-27.317333A336.384 336.384 0 0 1 85.333333 480c0-188.618667 154.965333-341.333333 345.888-341.333333 159.914667 0 297.984 108.010667 335.818667 259.296 0.949333 3.765333 1.173333 7.552 0.778667 11.2z m-68.106667-13.952C662.88 282.037333 555.178667 202.666667 431.221333 202.666667 275.434667 202.666667 149.333333 326.933333 149.333333 480c0 46.272 11.498667 90.837333 33.194667 130.698667 2.88 5.290667 10.176 17.706667 21.621333 36.746666a32 32 0 0 1 3.413334 25.013334l-10.517334 37.994666 39.232-10.549333a32 32 0 0 1 24.234667 3.146667c14.272 8.192 22.773333 13.098667 25.802667 14.890666A283.882667 283.882667 0 0 0 431.221333 757.333333c6.154667 0 12.288-0.192 18.389334-0.576A255.061333 255.061333 0 0 1 426.666667 650.666667c0-141.386667 114.613333-256 256-256 5.728 0 11.413333 0.192 17.045333 0.554666z m133.706667 397.056a32 32 0 0 1 3.338666-24.725333 996.672 996.672 0 0 0 15.242667-26.293333A190.997333 190.997333 0 0 0 874.666667 650.666667c0-106.037333-85.962667-192-192-192s-192 85.962667-192 192 85.962667 192 192 192a190.933333 190.933333 0 0 0 98.570666-27.2c2.208-1.322667 8.288-4.874667 18.517334-10.837334a32 32 0 0 1 24.522666-3.210666l12.565334 3.424-3.424-12.565334zM330.666667 426.666667a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z m192 0a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z m85.333333 202.666666a32 32 0 1 1 0-64 32 32 0 0 1 0 64z m149.333333 0a32 32 0 1 1 0-64 32 32 0 0 1 0 64z"
+								fill="#000000"
+								p-id="13743"
+							></path>
+						</svg>
+						<div class="bg-gray-800 text-sm py-1 px-3 rounded text-black" style="text-align: center">寰俊</div>
+					</div>
+					<div class="hidden group-hover:block absolute right-full top-0 mr-2 whitespace-nowrap card-hover-style">
+						<img :src="CallMe" width="150" height="150" />
+					</div>
+				</div> -->
+
+				<!-- 杩斿洖椤堕儴 -->
+				<!-- <div class="group relative" @click="scrollToTop">
+					<div
+						class="bg-white w-14 h-14 flex items-center justify-center flex-col cursor-pointer border border-gray-200 hover:bg-blue-50 transition-colors duration-200"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							class="h-6 w-6 text-gray-600"
+							fill="none"
+							viewBox="0 0 24 24"
+							stroke="currentColor"
+						>
+							<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18" />
+						</svg>
+						<div class="bg-gray-800 text-sm py-1 px-3 rounded text-black" style="text-align: center">椤堕儴</div>
+					</div>
+				</div> -->
+			</div>
+		</div>
+		<!-- 瀹㈡湇瀵硅瘽妗� -->
+		<customer-service
+			class="fixed right-[150px] bottom-[17px] z-50 w-[440px] h-[calc(80vh-30px)] shadow-lg rounded-lg"
+			v-show="showCustomerService"
+			@close="showCustomerService = false"
+		/>
 	</div>
 </template>
 
 <script setup lang="ts">
 import { Document, Operation } from '@element-plus/icons-vue';
 import * as echarts from 'echarts';
-import { onMounted, ref } from 'vue';
+import { onMounted, ref, nextTick } from 'vue';
 import { useRouter } from 'vue-router';
+import YWLogo from '@/assets/logo/yw_logo.png';
+import CallMe from '@/assets/qrcode/callme.jpg';
+import axios from 'axios';
+import CustomerService from '@/components/CustomerService.vue';
 
+import { Swiper, SwiperSlide } from 'swiper/vue';
+import { Autoplay } from 'swiper/modules';
+import 'swiper/css';
+
+const SwiperModule = [Autoplay];
 const router = useRouter();
 
 const newsList = ref([
+	{
+		id: '7',
+		title: '涓婃捣甯備汉姘戞斂搴滃叧浜庡嵃鍙戙�婁笂娴峰競鎺ㄥ姩澶ц妯¤澶囨洿鏂板拰娑堣垂鍝佷互鏃ф崲鏂拌鍔ㄨ鍒掞紙2024-2027骞达級銆嬬殑閫氱煡',
+		date: '2024-04-23',
+		link: 'test',
+	},
 	{
 		id: '1',
 		title: '涓婃捣甯傜粡娴庝俊鎭寲濮斿叧浜庡緛闆嗙敤鑳借澶囨洿鏂颁緵搴旈摼骞冲彴鐨勯�氱煡',
@@ -264,6 +469,18 @@
 		date: '2024-10-22',
 		link: 'https://gxj.quanzhou.gov.cn/zwgk/zfxxgk/fdzdgknr/gzdt/202410/t20241022_3093021.htm',
 	},
+	{
+		id: '5',
+		title: '鍏充簬銆婁笂娴峰競宸ヤ笟閫氫俊涓氱敤鑳借澶囨洿鏂颁笓椤规斂绛栧疄鏂界粏鍒欙紙寰佹眰鎰忚绋匡級銆嬪叕寮�寰佹眰鎰忚鐨勫叕鍛�',
+		date: '2024-12-18',
+		link: 'https://sheitc.sh.gov.cn/gg/20241218/517c960cef5d40f0bb04b1099c64d9eb.html',
+	},
+	// {
+	// 	id: '6',
+	// 	title: '瑙h浜т笟鑳芥晥鎸囧崡锛屾帹鍔ㄨ澶囧鏍囧強鏇存柊',
+	// 	date: '2024-08-05',
+	// 	link: 'https://sheitc.sh.gov.cn/djjcdt/20240805/e8b8b4db2fb445f88b22b72f45132d68.html',
+	// },
 	// {
 	// 	title: '鍗板彂鎺ㄥ姩宸ヤ笟棰嗗煙璁惧鏇存柊宸ヤ綔瀹炴柦鏂规鐨勯�氱煡',
 	// 	date: '2024-10-22',
@@ -286,15 +503,154 @@
 	// },
 ]);
 
-const linkClick = (url) => {
-	window.open(url, '_blank');
+const linkClick = () => {
+	router.push('/select-selpara')
+};
+
+const routeClick = (url) => {
+	router.push(url);
 };
 const cooperationData = ref([
-	{ region: '绂忓缓鐪�', count: 7 },
-	{ region: '閲嶅簡甯�', count: 6 },
-	{ region: '涓婃捣甯�', count: 184 },
-	{ region: '婀栧寳鐪�', count: 4 },
-	{ region: '骞夸笢鐪�', count: 249 },
+	{
+		region: '鍖椾含',
+		count: 408,
+	},
+	{
+		region: '澶╂触',
+		count: 339,
+	},
+	{
+		region: '涓婃捣',
+		count: 489,
+	},
+	{
+		region: '閲嶅簡',
+		count: 23,
+	},
+	{
+		region: '娌冲寳',
+		count: 440,
+	},
+	{
+		region: '娌冲崡',
+		count: 432,
+	},
+	{
+		region: '浜戝崡',
+		count: 442,
+	},
+	{
+		region: '杈藉畞',
+		count: 8,
+	},
+	{
+		region: '榛戦緳姹�',
+		count: 363,
+	},
+	{
+		region: '婀栧崡',
+		count: 134,
+	},
+	{
+		region: '瀹夊窘',
+		count: 474,
+	},
+	{
+		region: '灞变笢',
+		count: 438,
+	},
+	{
+		region: '鏂扮枂',
+		count: 334,
+	},
+	{
+		region: '姹熻嫃',
+		count: 129,
+	},
+	{
+		region: '娴欐睙',
+		count: 433,
+	},
+	{
+		region: '姹熻タ',
+		count: 197,
+	},
+	{
+		region: '婀栧寳',
+		count: 315,
+	},
+	{
+		region: '骞胯タ',
+		count: 69,
+	},
+	{
+		region: '鐢樿們',
+		count: 630,
+	},
+	{
+		region: '灞辫タ',
+		count: 495,
+	},
+	{
+		region: '鍐呰挋鍙�',
+		count: 283,
+	},
+	{
+		region: '闄曡タ',
+		count: 156,
+	},
+	{
+		region: '鍚夋灄',
+		count: 485,
+	},
+	{
+		region: '绂忓缓',
+		count: 411,
+	},
+	{
+		region: '璐靛窞',
+		count: 496,
+	},
+	{
+		region: '骞夸笢',
+		count: 451,
+	},
+	{
+		region: '闈掓捣',
+		count: 387,
+	},
+	{
+		region: '瑗胯棌',
+		count: 356,
+	},
+	{
+		region: '鍥涘窛',
+		count: 414,
+	},
+	{
+		region: '瀹佸',
+		count: 470,
+	},
+	{
+		region: '娴峰崡',
+		count: 437,
+	},
+	{
+		region: '鍙版咕',
+		count: 165,
+	},
+	{
+		region: '棣欐腐',
+		count: 94,
+	},
+	{
+		region: '婢抽棬',
+		count: 437,
+	},
+	{
+		region: '鍗楁捣璇稿矝',
+		count: 0,
+	},
 ]);
 
 const handleNewsClick = (item: any) => {
@@ -308,23 +664,33 @@
 
 // 鍥捐〃鏁版嵁
 const chartData = [
-	{ name: '鐮斿彂璁捐绫�', value: 644, percentage: '15.77%' },
-	{ name: '鐢熶骇鍒堕�犵被', value: 1058, percentage: '25.91%' },
-	{ name: '杩愮淮鏈嶅姟绫�', value: 934, percentage: '22.88%' },
-	{ name: '缁忚惀绠$悊绫�', value: 1035, percentage: '25.35%' },
-	{ name: '鏀拺淇濋殰绫�', value: 412, percentage: '10.09%' },
+	{ name: '娉�', value: 7185, percentage: '18.89%' },
+	{ name: '绌哄帇鏈�', value: 4875, percentage: '12.82%' },
+	{ name: '閫氶鏈�', value: 895, percentage: '2.35%' },
+	{ name: '鍐锋按鏈虹粍', value: 2184, percentage: '5.74%' },
+	{ name: '鐢靛姏鍙樺帇鍣�', value: 1896, percentage: '4.99%' },
+	{ name: '宸ヤ笟閿呯倝', value: 2897, percentage: '7.62%' },
+	{ name: '鐢垫満', value: 18865, percentage: '47.59%' },
 ];
+
+// 璁$畻鎬婚噺
+const totalCount = computed(() => {
+	return chartData.reduce((sum, item) => sum + item.value, 0);
+});
 
 const pieChartRef = ref<HTMLElement | null>(null);
 const barChartRef = ref<HTMLElement | null>(null);
 
 onMounted(() => {
+	nextTick(() => {
+		initMapChart();
+	});
 	if (pieChartRef.value && barChartRef.value) {
 		// 鍒濆鍖栭ゼ鍥�
 		const pieChart = echarts.init(pieChartRef.value);
 		pieChart.setOption({
 			title: {
-				text: '鎬婚噺\n4083',
+				text: `鎬婚噺\n${totalCount.value}`,
 				left: '30%',
 				top: '50%',
 				textStyle: {
@@ -388,7 +754,7 @@
 		const barChart = echarts.init(barChartRef.value);
 		barChart.setOption({
 			title: {
-				text: '鐮斿彂璁捐绫讳骇鍝佹暟閲忕粺璁�',
+				text: '鑳芥晥浜у搧鍒嗙被鏁伴噺缁熻',
 				left: 'center',
 				top: 10,
 			},
@@ -406,7 +772,7 @@
 			},
 			xAxis: {
 				type: 'category',
-				data: ['姹熻嫃鐪�', '鍖椾含甯�', '涓婃捣甯�', '娴欐睙鐪�', '骞夸笢鐪�', '灞变笢鐪�'],
+				data: chartData.map((item) => item.name),
 				axisLabel: {
 					interval: 0,
 					rotate: 30,
@@ -418,7 +784,7 @@
 			},
 			series: [
 				{
-					data: [260, 240, 35, 25, 20, 8],
+					data: chartData.map((item) => item.value),
 					type: 'bar',
 					barWidth: '40%',
 					itemStyle: {
@@ -582,6 +948,173 @@
 		});
 	}
 });
+const EecProductMapChartRef = ref<HTMLElement | null>(null);
+const m_allEecProductNumber = ref(0);
+const initMapChart = () => {
+	let allEecProductNumber = 0;
+	let mapData = cooperationData.value.map((item) => {
+		allEecProductNumber += item.count;
+		return {
+			name: item.region,
+			value: item.count,
+		};
+	});
+	m_allEecProductNumber.value = allEecProductNumber;
+	axios({
+		url: 'static/Data/ChinaGeoJsonData.json',
+		method: 'get',
+	})
+		.then((res) => {
+			const GeoData = res.data;
+			if (EecProductMapChartRef.value) {
+				echarts.registerMap('china', GeoData);
+				const EecProductMapChart = echarts.init(EecProductMapChartRef.value);
+				EecProductMapChart.setOption({
+					tooltip: {
+						show: true,
+						formatter: function (params) {
+							if (params.data) return params.name + '锛�' + params.data['value'];
+						},
+					},
+					visualMap: {
+						min: 0,
+						max: 100000,
+						right: 26,
+						bottom: 40,
+						showLabel: true,
+						text: ['', ''],
+						pieces: [
+							{
+								gt: 5001,
+								label: '> 5000',
+								color: '#FF4500',
+							},
+							{
+								gte: 1001,
+								lte: 5000,
+								label: '1001 - 5000',
+								color: '#FF8300',
+							},
+							{
+								gte: 601,
+								lte: 1000,
+								label: '601 - 1000',
+								color: '#FFC100',
+							},
+							{
+								gte: 401,
+								lt: 600,
+								label: '401 - 600',
+								color: '#FFFF00',
+							},
+							{
+								gte: 201,
+								lt: 400,
+								label: '201 - 400',
+								color: '#D7EF53',
+							},
+							{
+								gte: 1,
+								lt: 200,
+								label: '1 - 200',
+								color: '#AFDEA7',
+							},
+							{
+								lt: 0,
+								label: '0',
+								color: '#87CEFA',
+							},
+						],
+						show: true,
+					},
+					geo: {
+						map: 'china',
+						roam: true,
+						scaleLimit: {
+							min: 1,
+							max: 2,
+						},
+						zoom: 1.13,
+						top: 50,
+						label: {
+							show: true,
+							fontSize: '14',
+							color: 'rgba(0,0,0,0.7)',
+							formatter: (params) => {
+								return params.name + '鐪�';
+							},
+						},
+						itemStyle: {
+							borderColor: 'rgba(0, 0, 0, 0.2)',
+						},
+						emphasis: {
+							areaColor: '#f2d5ad',
+							shadowOffsetX: 0,
+							shadowOffsetY: 0,
+							borderWidth: 0,
+							itemStyle: {
+								color: '#f4f4f4', // 榧犳爣鎮仠鏃剁殑棰滆壊
+							},
+						},
+					},
+					series: [
+						{
+							name: '鑳芥晥浜у搧',
+							type: 'map',
+							map: 'china',
+							geoIndex: 0,
+							data: mapData,
+							emphasis: {
+								itemStyle: {
+									color: 'rgba(0,0,0,0.7)', // 榧犳爣鎮仠鏃剁殑棰滆壊
+								},
+							},
+						},
+						// {
+						// 	name: '鑳芥晥浜у搧',
+						// 	type: 'map',
+						// 	mapType: 'china',
+						// 	selectedMode: 'false',
+						// 	label: {
+						// 		normal: {
+						// 			show: true,
+						// 		},
+						// 		emphasis: {
+						// 			show: false,
+						// 		},
+						// 	},
+						// 	data: mapData,
+						// },
+					],
+				});
+				// 鐩戝惉绐楀彛澶у皬鍙樺寲
+				window.addEventListener('resize', () => {
+					EecProductMapChart.resize();
+				});
+			}
+		})
+		.catch((err) => {
+			console.log(err);
+		});
+};
+const toFeedBack = () => {
+	router.push('/feedback');
+};
+const toSubsidy = () => {
+	// 璺宠浆鍒拌缃戦〉
+	window.open('https://www.sheitc.sh.gov.cn/', '_blank');
+};
+const scrollToTop = () => {
+	nextTick(() => {
+		// console.log('鎴戣鎵撳嵃浜�');
+		document.getElementById('app-page').scrollTo({
+			top: 0,
+			behavior: 'smooth',
+		});
+	});
+};
+
+const showCustomerService = ref(false);
 </script>
 
 <style scoped>
@@ -610,7 +1143,34 @@
 	transform: translateY(-4px);
 	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
 }
-
+.eec-product-div {
+	background-image: url('@/assets/home/eec_product_bg.jpg');
+}
+.eec-product-num-div {
+	min-width: 230px;
+	border: 1px solid rgb(28, 151, 183);
+	height: 100%;
+	display: flex;
+	overflow: hidden;
+	height: 255px;
+}
+#eec-product-map {
+	width: 100%;
+	height: 100%;
+}
+.mySwiper {
+	width: 100%;
+	height: 100%;
+}
+.card-hover-style {
+	/* display: flex;
+	justify-content: center;
+	align-items: center; */
+	/* transform: translateY(50%); */
+	background-color: #fff;
+	color: #000;
+	margin-right: unset;
+}
 :deep(.el-carousel__arrow) {
 	background-color: rgba(0, 0, 0, 0.5);
 	border: none;
@@ -626,4 +1186,23 @@
 		color: #fff;
 	}
 }
+
+.news-item {
+	cursor: pointer;
+	border-bottom: 1px solid #e3e3e3;
+	&:first-child {
+		border-top: 1px solid #e3e3e3;
+	}
+	&:last-child {
+		border-bottom: none;
+	}
+}
+
+:deep(.customer-service-dialog .el-dialog__body) {
+	padding: 0;
+}
+
+:deep(.customer-service-dialog .el-dialog__header) {
+	display: block;
+}
 </style>

--
Gitblit v1.9.3