关于echars的在VUE前后端应用(饼状图)

前端:代码(这个页面是另一个页面应用的组件)


```html
1.存放图表的位置
<template>
  <div class="className" ref="ehartContent"></div>
</template>
<script>
export default {
  name: 'maritalpie',
  components: {},
  props: {},
  返回需要的数据列表
  data() {
    return {
      worklifePieList:[]
    }
  },
  watch: {},
  mounted() {
    this.init()
  },
  beforeDestroy() {},
  
  methods: {
  调用接口
    init(){
      this.getAxios(`/Echarts/WorklifePie`).then(res=>{
        this.worklifePieList=res
        调用图表刷新
        this.drawChart()
      })
    },
    图表整体方法(官网上可以直接引用)
    drawChart() {
    实例化
      var myChart = this.$echarts.init(this.$refs.ehartContent)
      var option = {
        title: {
          left: 'center'
        },
        tooltip: {
          trigger: 'item'
        },
        legend: {
          orient: 'vertical',
          left: 'left'
        },
        工具功能,可以下载图片,看数据
         toolbox: {
          show: true,
          feature: {
            mark: { show: true },
            dataView: { show: true, readOnly: false },
            restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        series: [
          {
            name: '工作年限状态公布',
            type: 'pie',
            color:['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#fb7293'],
            radius: '70%',
            center: ['50%', '50%'],
            返回数据
            data:this.worklifePieList,
            emphasis: {
            样式
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      }
      调用
      myChart.setOption(option)
    }
  }
}
</script>

<style lang="scss">
.className {
  height: 600px;
  background-color: whitesmoke;
  border-radius: 0px,0px,10px,10px;
  box-shadow: black;
  padding: 10px;
}
</style>

后端:coreMvc框架

```html
/// <summary>
        /// 婚姻状态分布
        /// </summary>
        /// <returns></returns>
        public static List<DataResult> MaritalPie(IDatabase db,int tenantId, string fieldName)
        {
            //fieldName = "MaritalStatus";
            List<DataResult> result = new List<DataResult>();
            result.Add(new DataResult { name = "未婚", value = 0 });
            result.Add(new DataResult { name = "已婚", value = 0 });
            result.Add(new DataResult { name = "离异", value = 0 });
            result.Add(new DataResult { name = "丧偶", value = 0 });
            result.Add(new DataResult { name = "未知", value = 0 });
            //List<StaffInfo> staffs = db.Fetch<StaffInfo>("SELECT t1.* FROM HR_StaffInfos t1 LEFT JOIN HR2_Staffs t2 ON t1.StaffId = t2.Id WHERE t1.TenantId = @0 AND t2.StaffStatus = 1", tenantId);
            List<HrVData> staffs = HrVData.GetListByVule(db, tenantId, fieldName);

            foreach (var item in staffs)
                {
                    if (item.DataValue == "未婚")
                    {
                        int count = Convert.ToInt32(result[0].value);
                        count++;
                        result[0].value = count;
                    }
                    else if (item.DataValue == "已婚")
                    {
                        int count = Convert.ToInt32(result[1].value);
                        count++;
                        result[1].value = count;
                    }
                    else if (item.DataValue == "离异")
                    {
                        int count = Convert.ToInt32(result[2].value);
                        count++;
                        result[2].value = count;
                    }
                    else if (item.DataValue == "丧偶")
                    {
                        int count = Convert.ToInt32(result[3].value);
                        count++;
                        result[3].value = count;
                    }
                    else if (item.DataValue == null || item.DataValue == "" )
                    {
                        int count = Convert.ToInt32(result[4].value);
                        count++;
                        result[4].value = count;
                    }
                }
            return result;
        }
/// <summary>
        /// 图表
        /// </summary>
        /// <param name="db"></param>
        /// <param name="tenantId"></param>
        /// <param name="fieldName"></param>
        /// <returns></returns>
        public static List<HrVData> GetListByVule(IDatabase db, int tenantId, string fieldName)
        {

            var field = HRDPField.GetListByName(db, tenantId, fieldName);
            if (field==null)
            {
                return new List<HrVData>();
            }
            var groupId = field.GroupId;
            var fieldId = field.Id;

            var sql1 = Sql.Builder.Append(@"SELECT t3.DataValue as DataValue FROM users t4
		    left join hr2_staffs t1 on t4.Id=t1.userId and IFNULL(t1.StaffStatus,0)!=2
            left join hr2_vrow t2 on t1.id = t2.BizItemId and t2.GroupId = @1
            LEFT JOIN hr2_vdata t3 on t3.ROWID = t2.id and t3.FieldId = @2
            where t4.tenantId = @0  and t4.status>0 and
            IFNULL(t4.UserType,0)=0 and IFNULL(t4.IsDeleted,0)=0 and t4.loginName!='admin'
            ", tenantId, groupId, fieldId);

      //      var sql1 = Sql.Builder.Append(@"SELECT t3.DataValue as DataValue FROM users t4
		    //left join hr2_staffs t1 on t4.Id=t1.userId
      //      left join hr2_vrow t2 on t1.id = t2.BizItemId
      //      LEFT JOIN hr2_vdata t3 on t3.ROWID = t2.id
      //      where t1.tenantId = @0 and t2.GroupId = @1 and 
      //      IFNULL(t4.UserType,0)=0 and IFNULL(t1.StaffStatus,0)!=2 and t3.FieldId = @2", tenantId, groupId, fieldId);

            return db.Fetch<HrVData>(sql1);
        }

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现echarts饼状图的步骤如下: 1. 安装echarts库 在Vue项目中使用echarts,需要先安装echarts库。可以通过命令行工具在项目根目录下执行以下命令进行安装: ``` npm install echarts --save ``` 2. 引入echarts库 在需要使用echarts的组件中,可以通过import语句引入echarts库并声明一个变量来使用。 ```javascript import echarts from 'echarts'; ``` 3. 创建一个容器 在Vue组件中,需要先创建一个容器来放置echarts图表。可以在模板中添加一个div元素,并设置一个id属性。 ```html <template> <div id="chart-container"></div> </template> ``` 4. 初始化图表 在Vue组件的mounted钩子函数中,可以使用echarts库的init方法初始化一个图表,并将其渲染到之前创建的容器中。 ```javascript mounted() { // 初始化图表 var myChart = echarts.init(document.getElementById('chart-container')); // 设置图表配置项 var option = { // 配置项内容 }; // 渲染图表 myChart.setOption(option); } ``` 5. 配置图表 使用echarts库,可以通过设置option对象来配置图表。例如,实现一个简单的饼状图,可以设置以下配置项: ```javascript var option = { // 饼状图标题 title: { text: '饼状图示例', left: 'center' }, // 饼状图提示框 tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, // 饼状图图例 legend: { orient: 'vertical', left: 10, data: ['A', 'B', 'C', 'D', 'E'] }, // 饼状图数据 series: [ { name: '数据来源', type: 'pie', radius: '50%', data: [ {value: 335, name: 'A'}, {value: 310, name: 'B'}, {value: 234, name: 'C'}, {value: 135, name: 'D'}, {value: 1548, name: 'E'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; ``` 以上就是在Vue中实现echarts饼状图的主要步骤。根据实际需要,可以对图表的配置进行调整,添加更多的交互效果等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值