<template>
<div id="dynastyPie" ref="dynastyPie" class="testname">ajfldkjflk</div>
</template>
<script>
import {CanvasRenderer} from "echarts/renderers";
import * as echarts from 'echarts/core';
import { LegendComponent } from 'echarts/components';
import { ToolboxComponent } from 'echarts/components';
import axios from 'axios';
import { onMounted, ref } from 'vue';
// import { onMounted, ref } from 'vue';
export default {
name:"dynastyPie",
setup(){
let dynastyPieOption="";
let mydata=[];
let dynastyPie=ref();
console.log("dom准备好了-mount--ref");
console.log(dynastyPie);
console.log(dynastyPie.value);
return{
dynastyPieOption,
mydata,
dynastyPieCharts,
dynastyPieInit,
dynastyPie
},
onMounted(()=>{
let charDom=document.getElementById("dynastyPie")
console.log("dom准备好了-mount");
console.log(charDom);
axios({
method: 'get',
url: 'http://localhost:8090/finddynasty',
}).then((response)=> {
console.log(response.data);
mydata=response.data;
console.log(mydata);
dynastyPieInit();
dynastyPieCharts()
}).catch(function (error) {
console.log(error);
});
});
function dynastyPieInit(){
dynastyPieOption = {
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, 250],
center: ['50%', '50%'],
roseType: 'area',
itemStyle: {
borderRadius: 8
},
data: mydata
}
]
}
}
function dynastyPieCharts(){
let charDom=document.getElementById("dynastyPie")
console.log("dom准备好了");
console.log(charDom);
// let dynastyPie=ref(null);
// let myChart=echarts.init(dynastyPie);
let myChart=echarts.init(charDom);
echarts.use(CanvasRenderer);
echarts.use([LegendComponent]);
echarts.use([ToolboxComponent]);
myChart.setOption(dynastyPieOption);
}
}
}
</script>
缩减版
onMounted(()=>{
let charDom=document.getElementById("dynastyPie")
console.log("dom准备好了-mount");
console.log(charDom);
});
输出结果