湖北各市人均 GDP 数据大屏 - 可视化驾驶舱 vue2

数据大屏

vue2 可视化驾驶舱 湖北各市人均 GDP 数据大屏

视频演示

效果截图

vue2 可视化驾驶舱 湖北各市人均 GDP 数据大屏-蓝色

项目信息

项目ID:467

开发环境:nodejs 24

开发框架:vue2 vite js

标准分辨率:1920 * 1080

演示地址

演示demo:vue2 可视化驾驶舱 湖北各市人均 GDP 数据大屏

模块列表

人均 GDP 排名

人均 GDP 排名

GDP 总量对比

GDP 总量对比

年度增速分布

年度增速分布

三次产业结构

三次产业结构

市州排名速览

市州排名速览

人口与经济散点

人口与经济散点

重点城市对比

重点城市对比

市州监测明细

市州监测明细

GDP 核心指标概览

GDP 核心指标概览

项目依赖

{
  "name": "467_renjungdp_vue2",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "build-qiniu": "vite build && node ./qiniu.js",
    "preview": "vite preview"
  },
  "dependencies": {
    "@meruem117/vue-seamless-scroll": "^0.0.19",
    "@turf/turf": "^7.3.1",
    "@vitejs/plugin-vue": "^6.0.1",
    "autoprefixer": "^10.4.21",
    "core-js": "^3.34.0",
    "echarts": "^5.4.3",
    "echarts-extension-amap": "^1.12.0",
    "echarts-gl": "^2.0.9",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "element-ui": "^2.15.14",
    "gsap": "^3.11.4",
    "lottie-web": "^5.13.0",
    "path": "^0.12.7",
    "pinia": "^2.0.36",
    "postcss": "^8.4.21",
    "postcss-loader": "^7.0.2",
    "postcss-pxtorem": "^5.1.1",
    "qiniu": "^7.8.0",
    "qs": "^6.10.1",
    "sass": "^1.57.1",
    "three": "^0.151.0",
    "vite-plugin-vue2": "^2.0.3",
    "vue": "2.6.14",
    "vue-router": "^3.0.1",
    "vuex": "3",
    "wow.js": "^1.2.2"
  },
  "devDependencies": {
    "@vitejs/plugin-vue2": "^2.2.0",
    "vite": "^7.3.1",
    "vue-template-compiler": "2.6.14"
  }
}

部分代码

<template>
<div class="home" id="home">
    <bg></bg>
    <top class="wow fadeInDown" name="湖北各市人均 GDP 数据大屏"></top>
    <div class="homeMain">
      <div class="homeMainl">
        <div class="item1">
          <item name="人均 GDP 排名" :duration="0.5"
                :lottieData="lottieIcons[0]"
                :delay="0">
            <item1 :data="cityData"></item1>
          </item>
        </div>
        <div class="item1">
          <item name="GDP 总量对比" :duration="0.5"
                :lottieData="lottieIcons[1]"
                :delay="0.5">
            <item2 :data="cityData"></item2>
          </item>
        </div>
        <div class="item1">
          <item name="年度增速分布" :duration="0.5"
                :lottieData="lottieIcons[2]"
                :delay="1">
            <item3 :data="cityData"></item3>
          </item>
        </div>
      </div>
      <div class="homeMainc">
        <div class="item0" name="GDP 核心指标概览" data-module-id="GDP 核心指标概览">
          <item7 :data="cityData"></item7>
        </div>
        <div class="item1" ref="transportModule">
          <item8 :data="cityData"></item8>
        </div>
        <div class="item3">
          <div class="item3Inner">
            <item name="三次产业结构" :duration="0.5"
                  :lottieData="lottieIcons[6]"
                  :delay="1">
              <item9 :data="cityData"></item9>
            </item>
          </div>
          <div class="item3Inner">
            <item name="市州排名速览" :duration="0.5"
                  :lottieData="lottieIcons[7]"
                  :delay="1">
              <item10 :data="cityData"></item10>
            </item>
          </div>
        </div>
      </div>
      <div class="homeMainr">
        <div class="item1">
          <item name="人口与经济散点" :duration="0.5"
                :lottieData="lottieIcons[3]"
                :delay="0">
            <item4 :data="cityData"></item4>
          </item>
        </div>
        <div class="item1">
          <item name="重点城市对比" :duration="0.5"
                :lottieData="lottieIcons[4]"
                :delay="0.5">
            <item5 :data="cityData"></item5>
          </item>
        </div>
        <div class="item1">
          <item name="市州监测明细" :duration="0.5"
                :lottieData="lottieIcons[5]"
                :delay="1">
            <item6 :data="cityData"></item6>
          </item>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import WOW from 'wow.js'
// 引入 gsap
import {gsap} from 'gsap'

import top from '@/components/top/index.vue'
import bg from '@/components/bg/index.vue'
import item from '@/components/item/index.vue'
import item1 from './components/item1/index.vue'
import item2 from './components/item2/index.vue'
import item3 from './components/item3/index.vue'
import item4 from './components/item4/index.vue'
import item5 from './components/item5/index.vue'
import item6 from './components/item6/index.vue'
import item7 from './components/item7/index.vue'
import item8 from './components/item8/index.vue'
import item9 from './components/item9/index.vue'
import item10 from './components/item10/index.vue'

import icon1 from '@/fonts/lottieIcon/1.json'
import icon2 from '@/fonts/lottieIcon/2.json'
import icon3 from '@/fonts/lottieIcon/3.json'
import icon4 from '@/fonts/lottieIcon/4.json'
import icon5 from '@/fonts/lottieIcon/5.json'
import icon6 from '@/fonts/lottieIcon/6.json'
import icon7 from '@/fonts/lottieIcon/7.json'
import icon8 from '@/fonts/lottieIcon/8.json'

const AUTO_REFRESH_MS = 30 * 60 * 1000

export default {
  name: 'Home',
  components: {
    top,
    bg,
    item,
    item1,
    item2,
    item3,
    item4,
    item5,
    item6,
    item7,
    item8,
    item9,
    item10
  },

  data() {
    return {
      lottieIcons: [icon1, icon2, icon3, icon4, icon5, icon6, icon7, icon8],
      refreshTimerId: null,
      cityData: [
        {
          name: '宜昌',
          perCapita: 15.8,
          gdp: 6191,
          growth: 6.2,
          pop: 392,
          rank: 1,
          group: '高位',
          industry: [12, 48, 40]
        },
        {
          name: '武汉',
          perCapita: 15.3,
          gdp: 21106,
          growth: 5.2,
          pop: 1300,
          rank: 2,
          group: '高位',
          industry: [2, 35, 63]
        },
        {
          name: '鄂州',
          perCapita: 12.5,
          gdp: 1341,
          growth: 6.0,
          pop: 107,
          rank: 3,
          group: '高位',
          industry: [6, 47, 47]
        },
        {
          name: '襄阳',
          perCapita: 11.6,
          gdp: 6102,
          growth: 5.6,
          pop: 528,
          rank: 4,
          group: '较高',
          industry: [10, 43, 47]
        },
        {
          name: '荆门',
          perCapita: 10.5,
          gdp: 2401,
          growth: 6.1,
          pop: 227,
          rank: 5,
          group: '较高',
          industry: [11, 41, 48]
        },
        {
          name: '黄石',
          perCapita: 10.4,
          gdp: 2305,
          growth: 6.8,
          pop: 221,
          rank: 6,
          group: '较高',
          industry: [7, 46, 47]
        },
        {name: '十堰', perCapita: 9.8, gdp: 2565, growth: 5.8, pop: 262, rank: 7, group: '中位', industry: [9, 39, 52]},
        {
          name: '孝感',
          perCapita: 9.2,
          gdp: 3270,
          growth: 6.4,
          pop: 355,
          rank: 8,
          group: '中位',
          industry: [12, 38, 50]
        },
        {
          name: '咸宁',
          perCapita: 8.8,
          gdp: 1700,
          growth: 6.0,
          pop: 193,
          rank: 9,
          group: '中位',
          industry: [11, 35, 54]
        },
        {
          name: '随州',
          perCapita: 8.4,
          gdp: 1250,
          growth: 5.9,
          pop: 149,
          rank: 10,
          group: '中位',
          industry: [13, 37, 50]
        },
        {
          name: '荆州',
          perCapita: 8.1,
          gdp: 3506,
          growth: 6.3,
          pop: 433,
          rank: 11,
          group: '中位',
          industry: [15, 31, 54]
        },
        {
          name: '黄冈',
          perCapita: 7.8,
          gdp: 3120,
          growth: 6.5,
          pop: 400,
          rank: 12,
          group: '中低',
          industry: [16, 30, 54]
        },
        {
          name: '仙桃',
          perCapita: 7.6,
          gdp: 1092,
          growth: 6.2,
          pop: 143,
          rank: 13,
          group: '中低',
          industry: [14, 36, 50]
        },
        {
          name: '潜江',
          perCapita: 7.2,
          gdp: 930,
          growth: 6.0,
          pop: 129,
          rank: 14,
          group: '中低',
          industry: [12, 38, 50]
        },
        {
          name: '天门',
          perCapita: 6.9,
          gdp: 780,
          growth: 6.1,
          pop: 113,
          rank: 15,
          group: '中低',
          industry: [18, 29, 53]
        },
        {
          name: '恩施州',
          perCapita: 4.9,
          gdp: 1550,
          growth: 6.6,
          pop: 318,
          rank: 16,
          group: '低位',
          industry: [18, 24, 58]
        },
        {name: '神农架', perCapita: 6.6, gdp: 39, growth: 5.4, pop: 7, rank: 17, group: '低位', industry: [15, 22, 63]}
      ],
    }
  },

  mounted() {
    const wow = new WOW({})
    wow.init()
    this.initScaleAnimation()
    // 自动刷新定时器
    this.refreshTimerId = window.setInterval(() => {
      window.location.reload()
    }, AUTO_REFRESH_MS)
  },

  methods: {
    // 缩放动画方法
    initScaleAnimation() {
      // 初始状态:缩小到0、透明
      gsap.set(this.$refs.transportModule, {
        scale: 0,
        opacity: 0,
      })

      // 执行动画:从小到大、淡入
      gsap.to(this.$refs.transportModule, {
        scale: 1,
        opacity: 1,
        duration: 1.5,      // 动画时长
        delay: 0.5,         // 延迟0.5秒播放
        ease: 'back.out(1.2)', // 弹性缓动(更流畅)
      })
    },
  },

  beforeDestroy() {
    if (this.refreshTimerId) {
      clearInterval(this.refreshTimerId)
      this.refreshTimerId = null
    }
  }
}
</script>

项目文件目录

├── .git
├── public // 静态资源公共目录
├── src // 源代码目录
│   ├── components // 可复用的 Vue 组件
│   ├── config // 配置文件目录
│   ├── fonts // 字体文件目录
│   ├── router // Vue Router 配置
│   ├── store // Vuex 状态管理
│   ├── utils // 工具函数目录
│   ├── view // 页面级组件
│   │   └── home // 【home】页面组件
│   │       └── components // 组件子目录
│   │           ├── item1
│   │           ├── item2
│   │           ├── item3
│   │           ├── item4
│   │           ├── item5
│   │           ├── item6
│   │           ├── item7
│   │           ├── item8
│   │           ├── item9
│   │           └── item10
│   ├── App.vue // 根组件
│   ├── main.js // 全局脚本文件,项目的入口
│   └── style.css
├── index.html // 入口 HTML 文件
├── jsconfig.json // JS/TS 路径映射配置
├── package.json // 项目配置文件
├── postcss.config.cjs // PostCSS 配置
├── qiniu-upload-prefiex.js // 七牛配置文件
├── qiniu.js // 七牛上传文件
├── README.md // 项目说明文件
└── vite.config.js // Vite 构建配置

项目说明

数据非真实数据,仅做效果展示

更多大屏

大数据可视化大屏案例展示

源码下载

项目基于vue2+vite+js 开发

获取代码前请确保具备相关开发基础

本项目为纯前端大屏,无后端支持

默认数据为模拟数据,实际使用时需接入真实数据源

请在确认需求后再获取相关代码

当前为vue2版本,如果需要vue3版本请访问:湖北各市人均 GDP 数据大屏 - vue3 可视化驾驶舱

相关文件下载地址
此资源需支付 ¥60 后下载
喜欢
湖北各市人均 GDP 数据大屏 - 可视化驾驶舱 vue2