gerson
2025-02-18 9831a1c47f949eb46f40fa468a3b476bb2bc8c72
src/views/Home.vue
@@ -1,23 +1,23 @@
<template>
   <div class="h-full">
      <!-- 轮播图部分 -->
      <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>
@@ -31,11 +31,18 @@
         <div class="bg-white py-8">
            <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">
                  <router-link
                     to="/subsidy-application"
                     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>
@@ -48,7 +55,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="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>
@@ -61,7 +71,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>
@@ -71,11 +84,15 @@
                     </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')">
                     <div class="flex items-center gap-1 justify-center" @click="linkClick(' https://www.xpump.net/')">
                        <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>
@@ -134,37 +151,36 @@
               <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>
                  <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="通知公告"
                  />
                  <div class="bg-page p-4 flex-auto">
                     <div class="font-bold text-medium over-ellipsis mb-2">
                        武汉市人民政府关于印发武汉市关于进一步促进软件和信息技术服务业高质量
                  <img class="w-[30%] flex-0 cursor-pointer" src="@/assets/home/notice.png" @click="routeClick('/news-detail/8')" alt="新闻政策" />
                  <div class="bg-page p-4 flex-auto  ">
                     <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,17 +191,17 @@
               <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" />
                     <img src="@/assets/images/china-map.png" alt="认证产品" class="w-full h-full" />
                  </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]">全国工业软件|工业APP总量</div>
                        <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">
                           4083<span class="text-base text-info-light-3 ml-1">个</span>
                        </div>
@@ -211,19 +227,10 @@
                     <span class="text-medium font-medium">工业软件|工业APP<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>
@@ -236,10 +243,16 @@
import * as echarts from 'echarts';
import { onMounted, ref } from 'vue';
import { useRouter } from 'vue-router';
import YWLogo from "@/assets/logo/yw_logo.png"
const router = useRouter();
const newsList = ref([
   {
      id:'7',
      title:'上海市人民政府关于印发《上海市推动大规模设备更新和消费品以旧换新行动计划(2024-2027年)》的通知',
      date:'2024-04-23',
      link:'test'
   },
   {
      id: '1',
      title: '上海市经济信息化委关于征集用能设备更新供应链平台的通知',
@@ -264,6 +277,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: '解读产业能效指南,推动设备对标及更新',
   //    date: '2024-08-05',
   //    link: 'https://sheitc.sh.gov.cn/djjcdt/20240805/e8b8b4db2fb445f88b22b72f45132d68.html',
   // },
   // {
   //    title: '印发推动工业领域设备更新工作实施方案的通知',
   //    date: '2024-10-22',
@@ -289,13 +314,19 @@
const linkClick = (url) => {
   window.open(url, '_blank');
};
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: 389 },
   { region: '江苏省', count: 281 },
   { region: '浙江省', count: 198 },
   { region: '湖南省', count: 125 },
   { region: '湖北省', count: 89 },
]);
const handleNewsClick = (item: any) => {
   // if (item.link) {
@@ -308,12 +339,19 @@
// 图表数据
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);
@@ -324,7 +362,7 @@
      const pieChart = echarts.init(pieChartRef.value);
      pieChart.setOption({
         title: {
            text: '总量\n4083',
            text: `总量\n${totalCount.value}`,
            left: '30%',
            top: '50%',
            textStyle: {
@@ -388,7 +426,7 @@
      const barChart = echarts.init(barChartRef.value);
      barChart.setOption({
         title: {
            text: '研发设计类产品数量统计',
            text: '能效产品分类数量统计',
            left: 'center',
            top: 10,
         },
@@ -406,7 +444,7 @@
         },
         xAxis: {
            type: 'category',
            data: ['江苏省', '北京市', '上海市', '浙江省', '广东省', '山东省'],
            data: chartData.map((item) => item.name),
            axisLabel: {
               interval: 0,
               rotate: 30,
@@ -418,7 +456,7 @@
         },
         series: [
            {
               data: [260, 240, 35, 25, 20, 8],
               data: chartData.map((item) => item.value),
               type: 'bar',
               barWidth: '40%',
               itemStyle: {
@@ -626,4 +664,17 @@
      color: #fff;
   }
}
.news-item {
   cursor: pointer;
   border-bottom: 1px solid #e3e3e3;
   &:first-child {
      border-top: 1px solid #e3e3e3;
   }
   &:last-child {
      border-bottom: none;
   }
}
</style>