smart-power-ui/src/views/iot/project/profileV2/EEchartsPie.vue

123 lines
2.7 KiB
Vue

<template>
<div class="project-e-echarts-pie">
<div :id="eId" :style="styles"></div>
<!-- <div v-else>暂无数据</div> -->
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "echartsRadarWrap",
props: {
eId: {
type: String,
},
styles: {
type: String,
},
colorList: {
type: [Array, String],
default: "",
},
option: {
stype: Object,
default: [],
},
},
data() {
return {
chart: null,
};
},
created() {
this.chart = null;
},
mounted() {
this.drawLine();
},
methods: {
updateEchart() {
if (this.chart) {
this.chart = null;
}
this.drawLine();
},
drawLine() {
if (!this.chart) {
this.chart = echarts.init(document.getElementById(this.eId));
}
const option = {
color: this.colorList,
// legend: {
// top: "5",
// right: "10",
// type: "scroll",
// // itemWidth: 10, // legend 显示宽度
// orient: "vertical",
// pageIconColor: "#6495ed", //翻页下一页的三角按钮颜色
// pageIconInactiveColor: "#aaa", //翻页(即翻页到头时)
// pageIconSize: 10, //翻页按钮大小
// pageButtonItemGap: 1, //翻页按钮的两个之间的间距
// textStyle: {
// color: "#fff",
// fontSize: 16,
// },
// formatter: function (name) {
// return name.length > 7 ? name.substr(0, 7) + "..." : name;
// },
// },
toolbox: {
show: false,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true },
},
},
series: [
{
name: "",
type: "pie",
radius: ["40%", "70%"],
center: ["50%", "50%"],
itemStyle: {
borderRadius: 10,
borderColor: "#fff",
borderWidth: 2,
},
emphasis: {
label: {
show: false,
},
},
label: {
show: false,
},
itemStyle: {
borderRadius: 1,
},
data: this.option,
},
],
};
this.chart.setOption(option);
},
},
watch: {
option(val, oldVal) {
this.chart = null;
this.drawLine();
},
},
};
</script>
<style lang="scss">
.project-e-echarts-pie {
position: relative;
height: 100%;
top: 0px;
width: 50%;
}
</style>