| | |
| | | <template /> |
| | | <template> |
| | | <div> |
| | | <div class="body" :style="{height:mainHeight+'px'}"> |
| | | <div style="margin: 30px auto;width: 1600px;" :style="{height:mainHeight+'px'}"> |
| | | <div id="Echarts" style="width: 100%;height: 100%" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts' |
| | | import { QuaneryDefectReportSearch } from '@/api/bbgl' |
| | | |
| | | export default { |
| | | name: 'Pzyc' |
| | | name: 'Pzyc', |
| | | data() { |
| | | return { |
| | | mainHeight: 400, |
| | | echartsData: [] |
| | | } |
| | | }, |
| | | created() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | mounted() { |
| | | this.getQuaneryDefectReportSearch() |
| | | }, |
| | | methods: { |
| | | // 获取页面高度 |
| | | getHeight() { |
| | | this.$nextTick(() => { |
| | | this.mainHeight = window.innerHeight - 85 |
| | | }) |
| | | }, |
| | | async getQuaneryDefectReportSearch() { |
| | | const res = await QuaneryDefectReportSearch() |
| | | if (res.code === '200') { |
| | | this.echartsData = res.data |
| | | this.getEcharts() |
| | | } |
| | | }, |
| | | getEcharts() { |
| | | const option = { |
| | | title: { |
| | | text: '品质异常排行报表', |
| | | left: '50%', |
| | | top: '5%', |
| | | textAlign: 'center', |
| | | textStyle: { |
| | | // color: '#fff', |
| | | color: '#00ffff', |
| | | fontSize: '20', |
| | | fontWeight: 'bolder' |
| | | } |
| | | }, |
| | | backgroundColor: '#323a5e', |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { // 坐标轴指示器,坐标轴触发有效 |
| | | type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | left: '2%', |
| | | right: '4%', |
| | | bottom: '10%', |
| | | top: '15%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | data: ['1', '2', '3'], |
| | | right: 10, |
| | | top: 12, |
| | | textStyle: { |
| | | color: '#fff' |
| | | }, |
| | | itemWidth: 12, |
| | | itemHeight: 10 |
| | | // itemGap: 35 |
| | | }, |
| | | xAxis: { |
| | | name: '种类', |
| | | nameTextStyle: { |
| | | // color: , |
| | | fontSize: 16, |
| | | lineHeight: 20 |
| | | }, |
| | | type: 'category', |
| | | data: this.echartsData.map(r => r.name), |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: 'white' |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | interval: 0, |
| | | rotate: 20, |
| | | textStyle: { |
| | | fontSize: 16, |
| | | fontFamily: 'Microsoft YaHei' |
| | | } |
| | | } |
| | | }, |
| | | yAxis: { |
| | | name: '数量', |
| | | nameTextStyle: { |
| | | // color: , |
| | | fontSize: 16, |
| | | lineHeight: 20 |
| | | }, |
| | | type: 'value', |
| | | // max: '1200', |
| | | axisLine: { |
| | | show: false, |
| | | lineStyle: { |
| | | color: 'white' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: 'rgba(255,255,255,0.3)' |
| | | } |
| | | }, |
| | | axisLabel: {} |
| | | }, |
| | | dataZoom: [{ |
| | | show: true, |
| | | height: 30, |
| | | xAxisIndex: [ |
| | | 0 |
| | | ], |
| | | bottom: 30, |
| | | start: 10, |
| | | end: 80, |
| | | handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z', |
| | | handleSize: '110%', |
| | | handleStyle: { |
| | | color: '#d3dee5' |
| | | |
| | | }, |
| | | textStyle: { |
| | | color: '#fff' |
| | | }, |
| | | borderColor: '#90979c' |
| | | |
| | | }, { |
| | | type: 'inside', |
| | | show: true, |
| | | height: 15, |
| | | start: 1, |
| | | end: 35 |
| | | }], |
| | | series: [{ |
| | | name: '数量', |
| | | type: 'bar', |
| | | barWidth: '15%', |
| | | itemStyle: { |
| | | normal: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | offset: 0, |
| | | color: '#fccb05' |
| | | }, { |
| | | offset: 1, |
| | | color: '#f5804d' |
| | | }]), |
| | | barBorderRadius: 12 |
| | | } |
| | | }, |
| | | data: this.echartsData.map(r => r.cont) |
| | | } |
| | | // { |
| | | // name: '2', |
| | | // type: 'bar', |
| | | // barWidth: '15%', |
| | | // itemStyle: { |
| | | // normal: { |
| | | // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | // offset: 0, |
| | | // color: '#8bd46e' |
| | | // }, { |
| | | // offset: 1, |
| | | // color: '#09bcb7' |
| | | // }]), |
| | | // barBorderRadius: 11, |
| | | // } |
| | | |
| | | // }, |
| | | // data: [400, 500, 500, 500, 500, 400,400, 500, 500] |
| | | // }, |
| | | // { |
| | | // name: '3', |
| | | // type: 'bar', |
| | | // barWidth: '15%', |
| | | // itemStyle: { |
| | | // normal: { |
| | | // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | // offset: 0, |
| | | // color: '#248ff7' |
| | | // }, { |
| | | // offset: 1, |
| | | // color: '#6851f1' |
| | | // }]), |
| | | // barBorderRadius: 11, |
| | | // } |
| | | // }, |
| | | // data: [400, 600, 700, 700, 1000, 400, 400, 600, 700] |
| | | // } |
| | | ] |
| | | } |
| | | |
| | | var app = { |
| | | currentIndex: -1 |
| | | } |
| | | |
| | | const myChart = echarts.init(document.getElementById('Echarts')) |
| | | |
| | | setInterval(function() { |
| | | var dataLen = option.series[0].data.length |
| | | |
| | | // 取消之前高亮的图形 |
| | | myChart.dispatchAction({ |
| | | type: 'downplay', |
| | | seriesIndex: 0, |
| | | dataIndex: app.currentIndex |
| | | }) |
| | | app.currentIndex = (app.currentIndex + 1) % dataLen |
| | | // console.log(app.currentIndex); |
| | | // 高亮当前图形 |
| | | myChart.dispatchAction({ |
| | | type: 'highlight', |
| | | seriesIndex: 0, |
| | | dataIndex: app.currentIndex |
| | | }) |
| | | // 显示 tooltip |
| | | myChart.dispatchAction({ |
| | | type: 'showTip', |
| | | seriesIndex: 0, |
| | | dataIndex: app.currentIndex |
| | | }) |
| | | }, 1000) |
| | | |
| | | if (option.textStyle == null) { |
| | | option.textStyle = { |
| | | fontFamily: 'Microsoft YaHei', |
| | | color: '#ffffff' |
| | | } |
| | | } |
| | | |
| | | // 使用刚指定的配置项和数据显示图表。 |
| | | myChart.clear() |
| | | myChart.setOption(option, true) |
| | | |
| | | window.addEventListener('resize', function() { |
| | | myChart.resize() |
| | | }) |
| | | |
| | | return myChart |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |