Vue3+TS 添加多个echarts

<template>

    <div class="row q-pa-sm">

        <div style="margin-top:90px;margin-left:150px;">

            <div ref="chart1" style="height: 400px;width:500px;display: inline-block;"></div>

            <div ref="chart2" style="height: 400px;width:500px;display: inline-block;"></div>

        </div>

    </div>

</template>

<script lang="ts" setup>

import * as echarts from 'echarts';

import { ref,onMounted} from 'vue';




 

const chart1 = ref();

const chart2 = ref();

let myChart: echarts.ECharts;

let myChart2: echarts.ECharts;

onMounted(() => {

    myChart = echarts.init(chart1.value);

    myChart.setOption(getChartSetOption());

    myChart2 = echarts.init(chart2.value);

    myChart2.setOption(getChartSetOption2());

    window.addEventListener('resize', resizeHandler);

});

const resizeHandler = () => {

            if (myChart) {

                myChart.resize()

            }

            if (myChart2) {

                myChart2.resize()

            }

        }


 

function getChartSetOption(){

    type EChartsOption = echarts.EChartsOption;

    var option: EChartsOption;

    option = {

        xAxis: {

            type: 'category',

            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

        },

        yAxis: {

            type: 'value'

        },

        series: [

            {

            data: [120, 200, 150, 80, 70, 110, 130],

            type: 'bar',

            showBackground: true,

            backgroundStyle: {

                color: 'rgba(180, 180, 180, 0.2)'

            }

            }

        ]

    };

    return option;

}

function getChartSetOption2(){

    type EChartsOption = echarts.EChartsOption;

    var option: EChartsOption;

    option = {

    legend: {

        top: 'bottom'

    },

    toolbox: {

        show: true,

        feature: {

        mark: { show: true },

        dataView: { show: true, readOnly: false },

        restore: { show: true },

        saveAsImage: { show: true }

        }

    },

    series: [

        {

        name: 'Nightingale Chart',

        type: 'pie',

        radius: [50, 150],

        center: ['50%', '50%'],

        roseType: 'area',

        itemStyle: {

            borderRadius: 8

        },

        data: [

            { value: 40, name: 'rose 1' },

            { value: 38, name: 'rose 2' },

            { value: 32, name: 'rose 3' },

            { value: 30, name: 'rose 4' },

            { value: 28, name: 'rose 5' },

            { value: 26, name: 'rose 6' },

            { value: 22, name: 'rose 7' },

            { value: 18, name: 'rose 8' }

        ]

        }

    ]

    };

    return option;

}


 

</script>

<style></style>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 + TypeScript + Vite项目中使用echarts来请求并展示两个图表的数据,你可以按照以下步骤进行操作: 1. 在项目中安装echarts依赖。可以使用npm或yarn命令来安装echarts,例如:`npm install echarts --save`。 2. 在main.ts文件中引入echarts,并将其挂载到Vue实例上。你可以按照以下代码示例来实现: ```typescript import { createApp } from "vue"; import App from "./App.vue"; import echarts from "echarts"; const app = createApp(App); app.config.globalProperties.$echarts = echarts; ``` 通过以上代码,你已经将echarts挂载到了Vue实例的全局属性$echarts上。 3. 在需要使用echarts的组件中引入echarts,并在页面渲染完成后使用echarts来请求并展示图表数据。假设你要在App.vue组件中展示两个图表的数据,你可以按照以下代码示例来实现: ```vue <template> <div> <div ref="chart1" style="width: 400px; height: 300px;"></div> <div ref="chart2" style="width: 400px; height: 300px;"></div> </div> </template> <script> import { ref, onMounted } from "vue"; export default { name: "App", setup() { const chart1 = ref(null); const chart2 = ref(null); onMounted(() => { // 请求图表1的数据并绘制图表 const chart1Data = fetchDataForChart1(); // 根据实际情况获取图表1的数据 const chart1Instance = $echarts.init(chart1.value); chart1Instance.setOption(chart1Data); // 请求图表2的数据并绘制图表 const chart2Data = fetchDataForChart2(); // 根据实际情况获取图表2的数据 const chart2Instance = $echarts.init(chart2.value); chart2Instance.setOption(chart2Data); }); return { chart1, chart2, }; }, }; function fetchDataForChart1() { // 根据实际情况请求图表1的数据并返回 // 例如:return axios.get("/api/chart1").then((res) => res.data); } function fetchDataForChart2() { // 根据实际情况请求图表2的数据并返回 // 例如:return axios.get("/api/chart2").then((res) => res.data); } </script> ``` 在以上代码中,我们使用了`ref`和`onMounted`来获取图表的DOM元素,并在页面渲染完成后使用echarts来请求并展示图表数据。 请注意,以上代码仅为示例代码,你需要根据实际情况来实现`fetchDataForChart1`和`fetchDataForChart2`方法来请求图表数据。此外,你还需要根据实际需求来配置echarts的图表选项。 #### 引用[.reference_title] - *1* *2* [vue3+ts+vite 使用echarts](https://blog.csdn.net/gusensen/article/details/129445665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue3+vite+ts+echarts项目问题汇总](https://blog.csdn.net/weixin_41107170/article/details/126401617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值