vue3 echarts使用

<template>
  <div id="app-container-radr">
    <div
      ref="chartRef"
      class="radar"
      :style="{ height:height + 'px'}"
    ></div>
  </div>
</template>

<script setup>
import * as echarts from "echarts";
const { proxy } = getCurrentInstance();

const chartRef = ref(null);
let chart = ref(null);
const width = ref(300);
const height = ref(200);

const data = reactive({
  option :{
  xAxis: {
    type: 'category',
    data: ['极限温度', '极限湿度', '极限压力', '极限蒸汽']
  },
  yAxis: {
    type: 'value'
  },
  tooltip: {},
  series: [
    {
      data: [4, 3, 2, 1],
      type: 'bar',
      showBackground: true,
      backgroundStyle: {
        color: 'rgba( 228, 57, 97, 0.2)'
      }
    }
  ]
}
});

const { option } = toRefs(data);
const props = defineProps({
  optionsData: {
    type: Object,
    default: undefined,
  },
}); 

function getInit() {
  const screenWidth = window.innerWidth; 
  if (screenWidth <= 1360) { 
    height.value = 280;
  } else if (screenWidth > 1360) { 
    height.value = 280;
  } else { 
    height.value = 280; // 默认宽度
  }
  // console.log('数据',option.value);
  // console.log( '盒子',chartRef.value)
  chart.value = echarts.getInstanceByDom(chartRef.value) || echarts.init(chartRef.value);
  // 渲染图表
  chart.value.setOption(option.value);  
  window.addEventListener("resize", () => chart.value.resize());
}

onMounted(() => {
  getInit();
});

onUpdated(() => {
  getInit();
});

watchEffect(() => { 
  // console.log(props.optionsData);
});
</script>

<style lang="scss" scoped>
.radar {
  // width: 300px;
  height: 280px;
}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值