首页 > 其他分享 >2、DevExtreme 饼状图组件

2、DevExtreme 饼状图组件

时间:2022-11-07 14:59:02浏览次数:35  
标签:pieConfig pointInfo number label DevExtreme BasePieChart 组件 状图

1、创建

创建vue文件,引入dev基本组件

import DxPieChart, {
  DxLegend,
  DxSeries,
  DxLabel,
  DxConnector,
  DxFont,
} from 'devextreme-vue/pie-chart'

源码

<!--
 * @Descripttion: 饼状图组件
 * @version: 0.0.1
 * @Author: PengShuai
 * @Date: 2022-11-07 14:29:44
 * @LastEditors: PengShuai
 * @LastEditTime: 2022-11-07 14:32:14
-->
<template>
  <div class="BasePieChart">
    <!-- palette 饼状图颜色 -->
    <DxPieChart
      id="pie"
      :data-source="pieData"
      palette="Pastel"
      :title="pieConfig.title"
    >
      <DxSeries
        :argument-field="pieConfig.argumentFieId"
        :value-field="pieConfig.valueFieId"
      >
        <DxLabel
          :visible="true"
          position="columns"
          :customize-text="formatLabel"
        >
          <DxConnector :visible="true" :width="1" format="percent" />
          <DxFont :size="pieConfig.size" />
        </DxLabel>
      </DxSeries>
      <DxLegend
        :column-count="6"
        orientation="horizontal"
        item-text-position="right"
        horizontal-alignment="center"
        vertical-alignment="bottom"
      />
    </DxPieChart>
  </div>
</template>

<script>
import DxPieChart, {
  DxLegend,
  DxSeries,
  DxLabel,
  DxConnector,
  DxFont,
} from 'devextreme-vue/pie-chart'
export default {
  name: 'BasePieChart',
  components: {
    DxPieChart,
    DxSeries,
    DxLabel,
    DxConnector,
    DxLegend,
    DxFont,
  },
  props: {
    // 饼状图数据源
    pieData: {
      type: Array,
      default: () => {
        return []
      },
    },
    // 饼状图配置
    pieConfig: {
      type: Object,
      default: () => {
        return {}
      },
    },
  },
  methods: {
    formatLabel(pointInfo) {
      let label = ''
      // 1 名称+值+百分比
      // 2 值+百分比
      // 默认 值
      if (this.pieConfig.labelType === '1') {
        label =
          pointInfo.argument +
          ' ' +
          '(' +
          pointInfo.valueText +
          ')' +
          ' ' +
          pointInfo.percentText
      } else if (this.pieConfig.labelType === '2') {
        label = pointInfo.valueText + pointInfo.percentText
      } else {
        label = pointInfo.valueText
      }
      return label
    },
  },
}
</script>

<style></style>

2、使用组件

<!--
 * @Descripttion: 饼状图
 * @version: 0.0.1
 * @Author: PengShuai
 * @Date: 2022-11-07 14:28:15
 * @LastEditors: PengShuai
 * @LastEditTime: 2022-11-07 14:36:02
-->
v
<template>
  <div class="PieChart">
    <base-pie-chart
      :pieData="pieAllData"
      :pieConfig="pieConfig"
    ></base-pie-chart>
  </div>
</template>

<script>
import BasePieChart from '@/components/BasePieChart'
export default {
  name: 'PieChart',
  components: {
    BasePieChart,
  },
  data() {
    return {
      // 饼状图数据
      pieAllData: [
        {
          label: 'A',
          number: '10',
        },
        {
          label: 'B',
          number: '15',
        },
        {
          label: 'C',
          number: '20',
        },
      ],
      // 饼状图配置
      pieConfig: {
        title: '合格率', // 标题名称
        argumentFieId: 'label', // 显示图列字段
        valueFieId: 'number', // 图表显示字段
        labelType: '1', // 默认null 值 显示值类型 1、名称+值+百分比  2 值+百分比
        size: 16, // 显示提示文字大小,类型 Number
      },
    }
  },
}
</script>

<style></style>

3、示例

标签:pieConfig,pointInfo,number,label,DevExtreme,BasePieChart,组件,状图
From: https://www.cnblogs.com/psmart/p/16865916.html

相关文章

  • 父组件访问子组件的方法或者data数据,经常出现访问失败的解决方案
    往往我们在开发项目时都经常用到$refs 来直接访问子组件的方法,但是这样调用的时候可能会导致数据的延迟滞后的问题,则会出现bug。解决方法则是推荐采取异步回调的方法,然......
  • 使用Web Component自定义组件
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="widt......
  • 组件之间的通信
    在vue开发中,组件通信尤为重要,特别是父子之间的组件通信一、父组件传递给子组件把父组件的信息,数据传给子组件,在子组件上面展示,这时候需要props即可完成二者之间的通......
  • vue在线预览word,excel , pdf组件化
    方法一:如果文件是域名的,可以使用微软免费接口//由于免费的在线查看,不支持ip+端口的形式所以单独处理this.dialog.url='http://view.officeapps.live.com/op/view.aspx?s......
  • React组件基础二
    1.注册事件React注册事件与DOM的事件语法非常像语法on+事件名={事件处理程序}比如onClick={this.handleClick}注意:React事件采用驼峰命名法,比如onMouseEnter,onClick......
  • Flutter 图表组件 charts_flutter_new
    Flutter图表插件charts_flutter_new前言也许你的项目中需要一个图标的插件,比如显示会员的消费情况。你可以看下charts_flutter_new这个插件是否合适。可以通过这......
  • 14-组件篇之消息队列(3)_ev
                                                   ......
  • 10.Vue中常用的第三方组件
    第三方插件可以增强vue,帮助我们更好的开发项目,如axios,vuex,vue-router,elementui等我们可以自定义插件,步骤如下:在vue项目下的src文件夹下创建plugins文件夹,创建一个i......
  • OrgChart树组件
    源码和包下载地址:https://gitee.com/dabeng/OrgChart/tree/master官网:GettingStarted-Docs|BALKANOrgChartJS注意官网上下载的JS版本可能无法直接使用。使用:1......
  • Django contenttypes组件
    表结构fromdjango.dbimportmodelsfromdjango.contrib.contenttypes.modelsimportContentTypefromdjango.contrib.contenttypes.fieldsimportGenericForeignKe......