TS写Echarts,自适应图表大小

 

<template>
  <div class="tableCss">
    <div class="title">
      <div class="title_top">
        <div class="title_content">提货单总数:50个</div>
        <div class="title_content">提货单总量:102T</div>
      </div>
      <div class="title_bottom">
        <div class="title_content">已提货单数:30个</div>
        <div class="title_content">已提货量:50T</div>
        <div class="title_content">进场车次:30车次</div>
      </div>
    </div>
    <div class="content">
      <div style="width: 100%; height: 100%" ref="chartArea"></div>
    </div>
  </div>
</template>

<script lang="ts">
import { Component, Prop, Vue, Emit, Watch } from 'vue-property-decorator'
import PageBase from '@src/views/PageBase'
import { Route } from 'vue-router'
import {} from '../../../../deliverPetroleum_apis/index_api'
import moment from 'moment'
import * as echarts from 'echarts'
@Component({
  components: {},
  name: 'sendOutGoodsMonitoring'
})
export default class Index extends PageBase {
  mounted() {
    this.drawEcharts()
  }
  activated() {}
  deactivated() {}
  // 构建echarts
  private myChart: any = null

  private drawEcharts() {
    // 如果没有charts
    // if (!this.myChart) {
    this.myChart = echarts.init(this.$refs.chartArea as any)
    // }

    this.myChart.setOption({
      // legend: {},
      tooltip: {},
      dataset: {
        dimensions: ['product', 'save', 'out'],
        source: [
          {
            product: '95#',
            save: 44,
            out: 24
          },
          { product: '92#', save: 80, out: 60 },
          { product: '98#', save: 90, out: 70 },
          { product: '0#', save: 60, out: 50 },
          { product: '甲烷', save: 70, out: 40 }
        ]
      },
      xAxis: { type: 'category' },

      yAxis: [
        {
          type: 'value',
          name: '各油品提货量(T)',
          nameTextStyle: {
            fontWeight: 'bold',
            fontSize: 18, // 设置字体大小为18
            align: 'center',
            color: '#000'
          }
        }
      ],

      series: [{ type: 'bar' }, { type: 'bar' }]
    })
    window.addEventListener('resize', this.myChart.resize)
  }
}
</script>

<style lang="less" scoped>
.tableCss {
  font-size: 14px;
  background-color: #fff;
  height: 100%;
  width: 100%;
  .title {
    width: 100%;
    height: 25%;
    font-size: 16px;
    .title_top {
      display: flex;
      flex-wrap: nowrap;
      height: 50%;
      align-items: center;
    }
    .title_bottom {
      display: flex;
      flex-wrap: nowrap;
      height: 50%;
      align-items: center;
    }
  }
  .content {
    width: 100%;
    height: 73%;
  }
  .title_content {
    margin-left: 5%;
  }
}
</style>

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Vue3 + TypeScript 中画 Echarts 环形图表,可以按照以下步骤进行: 1. 安装 Echarts 和 Vue-Echarts: ``` npm install echarts vue-echarts@5.0.0-beta.5 ``` 2. 在需要使用的组件中引入 Echarts 和 Vue-Echarts: ```typescript import { defineComponent, onMounted, ref } from 'vue' import * as echarts from 'echarts' import { use } from 'echarts/core' import { CanvasRenderer } from 'echarts/renderers' import { PieChart } from 'echarts/charts' import { LegendComponent, TooltipComponent } from 'echarts/components' import VueECharts from 'vue-echarts' use([CanvasRenderer, PieChart, LegendComponent, TooltipComponent]) export default defineComponent({ components: { VueECharts }, setup() { const chartRef = ref(null) const chart = ref<echarts.ECharts | null>(null) const options: echarts.EChartsOption = { title: { text: '环形图示例' }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, legend: { orient: 'vertical', left: 10, data: ['数据1', '数据2', '数据3', '数据4', '数据5'] }, series: [ { name: '访问来源', type: 'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, emphasis: { label: { show: true, fontSize: '30', fontWeight: 'bold' } }, labelLine: { show: false }, data: [ { value: 335, name: '数据1' }, { value: 310, name: '数据2' }, { value: 234, name: '数据3' }, { value: 135, name: '数据4' }, { value: 1548, name: '数据5' } ] } ] } onMounted(() => { if (chartRef.value) { chart.value = echarts.init(chartRef.value) chart.value.setOption(options) } }) return { chartRef, chart } } }) ``` 3. 在组件的模板中使用 Vue-Echarts 组件,并传入需要渲染的数据和 Echarts 实例: ```vue <template> <div> <vue-echarts :options="options" :auto-resize="true" :renderer="'canvas'" :chart="chartRef"></vue-echarts> </div> </template> ``` 这样就可以在 Vue3 + TypeScript 中画出一个简单的 Echarts 环形图表了。注意,在 setup 函数中,需要使用 `ref` 函数将 `chart` 和 `chartRef` 定义为响应式数据,并在 `onMounted` 钩子函数中初始化 Echarts 实例并设置选项。在模板中,需要将 `chartRef` 作为 `VueECharts` 组件的 `chart` 属性传入。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值