vue:echarts引入以及获取动态数据

本文展示了如何在Vue项目中利用Echarts库动态获取并展示人事管理系统和员工考勤数据。通过柱状图和饼图,分别呈现了人事、财务、行政、市场部门的数据以及员工的正常、迟到、早退、缺勤和请假情况。代码示例详细解释了数据获取、封装及Echarts图表配置的过程。

参考链接:echarts引入
动态获取数据:

<template>
  <el-card class="box-card">
    <h1 align="center">人事管理系统</h1>
    <div id="zhu" style="width: 100%;height: 400px;"></div>
    <div id="bin" style="width: 100%;height: 400px;"></div>
  </el-card>
</template>

<script>
  export default {
    data() {
      return {}
    },
    methods: {
      /**
       * 获取员工数据
       */
      getAllEmployee() {
        this.$axios({
          method: 'post',
          headers: {
            'Content-Type': 'application/json'
          },
          url: 'http://127.0.0.1:8080/employee/getAllEmployee',
          data: {

          }
        }).then((response) => {
          if (response.data.msg != "SUCCESS") {
            this.$message.error(response.data.msg);
          }
          //数据封装
          var data = [
            response.data.data.records[0].rs,
            response.data.data.records[0].cw,
            response.data.data.records[0].xz,
            response.data.data.records[0].sc
          ]

          this.getZhu(data);
        }).catch((error) => {
          console.log(error)
        })
      },
      //柱状图
      getZhu: function (data) {
        let myEchart = this.$echarts.init(document.getElementById("zhu"));
        myEchart.setOption({
          xAxis: {  //x轴
            //  数据条目名称
            data: ['人事', '财务', '行政', '市场']
          },
          yAxis: {}, //y轴
          series: [
            {
              type: 'bar',    //图表类别: bar :柱状图
              //  值
              data: data
            }
          ]
        })
      },
      /**
       * 获取出勤数据
       */
      getAttendanceTableDate() {
        this.$axios({
          method: 'post',
          headers: {
            'Content-Type': 'application/json'
          },
          url: 'http://127.0.0.1:8080/employeeAttendance/getAntt',
          data: {
          }
        }).then((response) => {
          if (response.data.msg != "SUCCESS") {
            this.$message.error(response.data.msg);
          }
          //数据封装
          var data = [
            {value: response.data.data.records[0].zc, name: '正常'},
            {value: response.data.data.records[0].cd, name: '迟到'},
            {value: response.data.data.records[0].zt, name: '早退'},
            {value: response.data.data.records[0].qq, name: '缺勤'},
            {value: response.data.data.records[0].qj, name: '请假'}
          ]
          this.getBin(data);
        }).catch((error) => {
          console.log(error)
        })
      },
      getBin: function (data) {
        let myEchart = this.$echarts.init(document.getElementById("bin"));
        myEchart.setOption({
          tooltip: {
            trigger: 'item'
          },
          legend: {
            orient: 'vertical',
            left: 'left'
          },
          series: [
            {
              name: '员工考勤',
              type: 'pie',
              radius: '50%',
              data: data,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ]
        });
      },
    },
    //  *注意不要写在creatd()里  会出现dom元素未加载报错
    //  推荐写在mounted()里
    mounted() {
      this.getAllEmployee();
      this.getAttendanceTableDate();
    },
    created() {

    }
  }
</script>
<style lang="less" scoped
  .box-card {
    margin: 10px;
  }
</style>

效果图:
在这里插入图片描述

<think>我们已经有了使用echartsvue中绘制地图的基本步骤(包括全国地图),现在用户需要绘制北京地区的行政地图。根据引用内容,关键步骤包括:1.安装echarts2.引入echarts(按需引入或全局引入)3.获取北京地区的GeoJSON数据(因为echarts官网并不直接提供市级地图,需要自己找)4.vue组件中注册地图数据(使用echarts.registerMap('北京',geoJson))5.初始化echarts实例,在option的geo组件中设置type为'map',并指定地图名为'北京'具体步骤:第一步:安装echarts在项目中安装echarts:`npminstallecharts--save`第二步:在vue组件中引入echarts(这里建议按需引入以减小体积,但也可以全局引入)根据引用[3]的做法,可以创建一个单独的echarts模块文件,按需引入。但为了简化,也可以在组件中直接引入需要的模块。第三步:获取北京地区的GeoJSON数据根据引用[1]和引用[4],我们知道需要自己寻找地区的json文件。用户提到他已经找到了一个(全国到县级),但我们现在只需要北京。因此,我们需要找到北京市的GeoJSON数据。可以从以下途径获取:-阿里云DataV的Geoatlas:http://datav.aliyun.com/portal/school/atlas/area_selector?spm=a2c6h.13066369.0.0.155c3bf9bN5yQ6-其他开源地图数据(如github上的项目)下载北京市的json文件(例如:beijing.json),并放入项目的某个目录(如public/map/或src/assets/)第四步:在vue组件中,在mounted生命周期钩子中初始化图,并注册地图。-注意:echarts在初始化之前需要确保dom已经存在,所以通常在mounted中初始化。-先引入echarts和北京地图的json文件。-使用echarts.registerMap('北京',beijingJson)注册地图。第五步:在option中配置地图。示例代码:```vue<template><divid="map-chart"style="width:600px;height:400px;"></div></template><script>//按需引入echarts核心模块和地图图import*asechartsfrom'echarts/core';import{MapChart}from'echarts/charts';import{GeoComponent}from'echarts/components';import{CanvasRenderer}from'echarts/renderers';//注册需要的模块echarts.use([MapChart,GeoComponent,CanvasRenderer]);//引入北京的GeoJSON数据(假设已经放到public/map/目录下,使用相对路径或public路径)//也可以使用import(如果放在src目录下)importbeijingJsonfrom'@/assets/beijing.json';//如果使用webpack,需要json-loader(vue-cli默认支持)exportdefault{name:'BeijingMap',mounted(){this.initMap();},methods:{initMap(){//注册地图echarts.registerMap('北京',beijingJson);//初始化echarts实例constchart=echarts.init(document.getElementById('map-chart'));//配置项constoption={geo:{type:'map',map:'北京',//使用注册的地图名称roam:true,//开启缩放和平移label:{show:true//显示地区名称}},series:[{type:'map',map:'北京',//和注册的地图名一致roam:true,label:{show:true}}]};chart.setOption(option);}}};</script>```注意:如果引入json文件遇到问题,可以尝试使用require或直接放在public目录下通过ajax获取。但是,在vue-cli项目中,使用import引入json文件通常没有问题(需要json-loader,但vue-cli已经内置支持)。另外,如果使用完整引入(非按需),可以:import*asechartsfrom'echarts';但是这样会
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CXY_BOY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值