| | |
| | | <script> |
| | | //引入echart |
| | | import * as echarts from "echarts"; |
| | | let myChart; |
| | | export default { |
| | | components: {}, |
| | | props: {}, |
| | | props: { |
| | | chartData: { |
| | | type: Object, |
| | | require: true, |
| | | default: () => { |
| | | return { |
| | | datax: [], |
| | | datay: [], |
| | | }; |
| | | }, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | chartData: { |
| | | datax: [ |
| | | "设备1", |
| | | "设备2", |
| | | "设备3", |
| | | "设备4", |
| | | "设备5", |
| | | "设备6", |
| | | "设备7", |
| | | "设备8", |
| | | "设备9", |
| | | ], |
| | | datay: [10, 20, 15, 38, 47, 50, 20, 33, 25, 48], |
| | | }, |
| | | startValue: 0, |
| | | endValue: 5, |
| | | chartTimer: null, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.pieChart("chart", this.chartData); |
| | | watch: { |
| | | "chartData.datay"(val) { |
| | | this.startValue = 0; |
| | | this.endValue = 5; |
| | | this.pieChart("chart", this.chartData); |
| | | }, |
| | | }, |
| | | watch: {}, |
| | | mounted() {}, |
| | | methods: { |
| | | //在职 |
| | | pieChart(chartName, data) { |
| | | let that = this; |
| | | clearInterval(this.chartTimer); |
| | | let chartDom = this.$refs[chartName]; |
| | | let myChart = echarts.init(chartDom); |
| | | if (myChart != null && myChart != "" && myChart != undefined) { |
| | | myChart.dispose(); //销毁 |
| | | } |
| | | myChart = echarts.init(chartDom); |
| | | let option; |
| | | let lineColor = "#35ddc74d"; |
| | | if (data) { |
| | |
| | | grid: { |
| | | right: "80px", |
| | | bottom: "60px", |
| | | left: "60px", |
| | | left: "70px", |
| | | top: "30px", |
| | | }, |
| | | dataZoom: [ |
| | |
| | | type: "inside", |
| | | yAxisIndex: 0, |
| | | show: false, |
| | | startValue: 0, // 从头开始 |
| | | endValue: 5, // 一次性展示几个 |
| | | startValue: that.startValue, // 从头开始 |
| | | endValue: that.endValue, // 一次性展示几个 |
| | | }, |
| | | ], |
| | | legend: { |
| | |
| | | // rotate:45, |
| | | margin: 10, |
| | | show: true, |
| | | fontSize:12, |
| | | textStyle: { |
| | | color: function (params, index) { |
| | | let colorList = ["#dcb018", "#00FFFF"]; |
| | |
| | | return colorList[1]; |
| | | } |
| | | }, |
| | | }, |
| | | formatter: function (value) { |
| | | if (value.length > 5) { |
| | | return `${value.slice(0, 4)}...`; |
| | | } |
| | | return value; |
| | | }, |
| | | }, |
| | | data: data.datax ? data.datax : [], |
| | |
| | | ], |
| | | }; |
| | | |
| | | setInterval(function () { |
| | | // 每次向左滑动一个,最后一个从头开始。 |
| | | if (option.dataZoom[0].endValue == that.chartData.datay.length) { |
| | | option.dataZoom[0].startValue = 0; |
| | | option.dataZoom[0].endValue = 5; |
| | | this.chartTimer = setInterval(function () { |
| | | if (option.dataZoom[0].endValue == data.datay.length) { |
| | | option.dataZoom[0].startValue = that.startValue; |
| | | option.dataZoom[0].endValue = that.endValue; |
| | | } else { |
| | | option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1; |
| | | option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1; |