Gauge组件修改

This commit is contained in:
不做码农 2022-01-08 21:48:30 +08:00
parent 58bbb2b967
commit 8661aca703

View File

@ -3,72 +3,97 @@
</template> </template>
<script> <script>
import * as echarts from 'echarts'; import * as echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import { debounce } from '@/utils' import { debounce } from "@/utils";
export default { export default {
props: { props: {
name: {
type: String,
default: "业务指标",
},
min: {
type: [Object, Number],
default: 0,
},
max: {
type: [Object, Number],
default: 0,
},
data: {
type: Array,
default: () => [
{
value: "",
name: "占比",
},
],
},
className: { className: {
type: String, type: String,
default: 'chart' default: "chart",
}, },
width: { width: {
type: String, type: String,
default: '100%' default: "100%",
}, },
height: { height: {
type: String, type: String,
default: '300px' default: "300px",
} },
}, },
data() { data() {
return { return {
chart: null chart: null,
} };
}, },
mounted() { mounted() {
this.initChart() this.initChart();
this.__resizeHandler = debounce(() => { this.__resizeHandler = debounce(() => {
if (this.chart) { if (this.chart) {
this.chart.resize() this.chart.resize();
} }
}, 100) }, 100);
window.addEventListener('resize', this.__resizeHandler) window.addEventListener("resize", this.__resizeHandler);
}, },
beforeDestroy() { beforeDestroy() {
if (!this.chart) { if (!this.chart) {
return return;
} }
window.removeEventListener('resize', this.__resizeHandler) window.removeEventListener("resize", this.__resizeHandler);
this.chart.dispose() this.chart.dispose();
this.chart = null this.chart = null;
}, },
methods: { methods: {
initChart() { initChart() {
this.chart = echarts.init(this.$el, 'macarons') this.chart = echarts.init(this.$el, "macarons");
this.chart.setOption({ this.chart.setOption({
tooltip: { tooltip: {
formatter: '{a} <br/>{b} : {c}%' formatter: "{a} <br/>{b} : {c}",
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
}, },
// toolbox: {
// feature: {
// restore: {},
// saveAsImage: {},
// },
// },
series: [ series: [
{ {
name: '业务指标', name: this.name,
type: 'gauge', type: "gauge",
detail: { formatter: '{value}%' }, min: this.min,
data: [{ value: 50, name: '完成率' }] max: this.max,
} detail: {
] formatter: "{value}%",
}) },
} data: this.data,
} },
} ],
});
},
},
};
</script> </script>