vue3+ts - 折线图和柱状图综合使用

本文介绍了如何在Vue3项目中结合TypeScript使用ECharts实现折线图和柱状图的综合效果。通过示例代码展示具体实现过程,适合需要在图表中同时展示柱状和折线数据的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  近期,在做项目的时候有涉及到柱状图和折线图共同放在一个图表里面的效果,所以在这里简单总结一下,有需要的朋友们可自行参考。

一、效果图

请添加图片描述

二、全部代码

<template>
  <div class="chart" id="participationEchart"></div>
</template>

<script setup lang="ts">
import {
    onMounted, inject, watch } from "vue";

const props = defineProps({
   
  xAxisList: {
   
    type: Array,
    default: [],
  },
  participationObj: {
   
    type: Object,
    default: {
   },
  },
  isRefres: {
    // 用于判断是否刷新页面
    type: Boolean,
    default: false
  }
});

type EChartsOption = echarts.EChartsOption;
const echarts: <
在uniapp中使用TypeScriptVue 3ECharts实现一个带有折线图柱状图的tabs界面,可以按照以下步骤进行: 1. **安装必要的依赖**: 确保你已经安装了`uni-app`、`vue``echarts`相关的依赖。 ```bash npm install echarts vue@next typescript ``` 2. **配置TypeScript**: 在项目根目录下创建一个`tsconfig.json`文件,并添加以下配置: ```json { "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, "jsx": "preserve", "moduleResolution": "node", "resolveJsonModule": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] } ``` 3. **创建图表组件**: 在`src/components`目录下创建一个`Chart.vue`组件: ```vue <template> <div ref="chart" class="chart"></div> </template> <script lang="ts" setup> import { ref, onMounted, watch } from &#39;vue&#39;; import * as echarts from &#39;echarts&#39;; const props = defineProps<{ option: echarts.EChartsOption; }>(); const chart = ref<HTMLDivElement | null>(null); const renderChart = () => { if (chart.value) { const chartInstance = echarts.init(chart.value); chartInstance.setOption(props.option); } }; onMounted(() => { renderChart(); }); watch( () => props.option, () => { renderChart(); } ); </script> <style scoped> .chart { width: 100%; height: 400px; } </style> ``` 4. **创建主页面**: 在`src/pages`目录下创建一个`Home.vue`页面: ```vue <template> <view> <view class="tabs"> <view :class="[&#39;tab&#39;, { active: activeTab === &#39;line&#39; }]" @click="activeTab = &#39;line&#39;">折线图</view> <view :class="[&#39;tab&#39;, { active: activeTab === &#39;bar&#39; }]" @click="activeTab = &#39;bar&#39;">柱状图</view> </view> <chart :option="chartOption"></chart> </view> </template> <script lang="ts" setup> import Chart from &#39;@/components/Chart.vue&#39;; import { ref } from &#39;vue&#39;; const activeTab = ref(&#39;line&#39;); const chartData = { xAxis: { type: &#39;category&#39;, data: [&#39;Mon&#39;, &#39;Tue&#39;, &#39;Wed&#39;, &#39;Thu&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;] }, yAxis: { type: &#39;value&#39; }, series: [ { data: [150, 230, 224, 218, 135, 147, 260], type: &#39;line&#39; } ] }; const chartOption = ref(chartData); watch( () => activeTab.value, (newVal) => { if (newVal === &#39;line&#39;) { chartOption.value = chartData; } else if (newVal === &#39;bar&#39;) { chartOption.value = { ...chartData, series: [ { data: [150, 230, 224, 218, 135, 147, 260], type: &#39;bar&#39; } ] }; } } ); </script> <style scoped> .tabs { display: flex; justify-content: center; margin-bottom: 20px; } .tab { padding: 10px 20px; cursor: pointer; border: 1px solid #ccc; border-radius: 5px; margin: 0 10px; } .active { background-color: #007AFF; color: white; border: 1px solid #007AFF; } </style> ``` 5. **运行项目**: 在项目根目录下运行以下命令,将项目运行到手机app上: ```bash npm run dev:%PLATFORM% ``` 通过以上步骤,你就可以在uniapp中使用TypeScriptVue 3ECharts实现一个带有折线图柱状图的tabs界面,并在点击不同的tabs时切换图表类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值