| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div id='streetlightChart' style='height:150px;width:100%'></div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import echarts from 'echarts' |
| | | export default { |
| | | data () { |
| | | return { |
| | | brightNum: 0, |
| | | notBrightNum: 0 |
| | | } |
| | | }, |
| | | computed: { |
| | | streetlightList () { |
| | | return this.$store.state.home.homeStreetlightList |
| | | } |
| | | }, |
| | | watch: { |
| | | streetlightList (curVal, oldVal) { |
| | | this.notBrightNum = 0 |
| | | this.brightNum = 0 |
| | | var streetlightList = curVal |
| | | for (var i = 0; i < streetlightList.length; i++) { |
| | | if (streetlightList[i].light === 0) { |
| | | this.notBrightNum++ |
| | | } else { |
| | | this.brightNum++ |
| | | } |
| | | } |
| | | this.drawChart() |
| | | } |
| | | }, |
| | | methods: { |
| | | drawChart () { |
| | | var option = { |
| | | color: ['#09BAFE', '#FC0A15'], |
| | | title: { |
| | | text: '亮ç¯/å°', |
| | | left: 'center', |
| | | top: '45%', |
| | | textStyle: { |
| | | color: 'white', |
| | | fontSize: 13, |
| | | align: 'center' |
| | | } |
| | | }, |
| | | |
| | | graphic: [ |
| | | { |
| | | type: 'group', |
| | | left: '15%', |
| | | top: '15%', |
| | | children: [ |
| | | { |
| | | type: 'text', |
| | | z: 100, |
| | | style: { |
| | | fill: '#FC0A15', |
| | | text: [this.notBrightNum].join('\n'), |
| | | font: '14px Microsoft YaHei' |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | type: 'group', |
| | | left: '70%', |
| | | top: '15%', |
| | | children: [ |
| | | { |
| | | type: 'text', |
| | | z: 100, |
| | | left: 50, |
| | | top: 500, |
| | | style: { |
| | | fill: '#09BAFE', |
| | | text: [this.brightNum].join('\n'), |
| | | font: '14px Microsoft YaHei' |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | |
| | | tooltip: { |
| | | trigger: 'item', |
| | | // formatter: '{a} <br/>{b}: {c} ({d}%)', |
| | | formatter: '{a} <br/>{b}: {c}', |
| | | position: function (point, params, dom, rect, size) { |
| | | // å
¶ä¸point为å½åé¼ æ çä½ç½®ï¼sizeä¸æä¸¤ä¸ªå±æ§ï¼viewSizeåcontentSizeï¼åå«ä¸ºå¤å±divåtooltipæç¤ºæ¡çå¤§å° |
| | | var x = point[0] // |
| | | var y = point[1] |
| | | var boxWidth = size.contentSize[0] |
| | | var boxHeight = size.contentSize[1] |
| | | var posX = 0 // xåæ ä½ç½® |
| | | var posY = 0 // yåæ ä½ç½® |
| | | |
| | | if (x < boxWidth) { |
| | | // 左边æ¾ä¸å¼ |
| | | posX = 5 |
| | | } else { |
| | | // 左边æ¾çä¸ |
| | | posX = x - boxWidth |
| | | } |
| | | |
| | | if (y < boxHeight) { |
| | | // ä¸è¾¹æ¾ä¸å¼ |
| | | posY = 5 |
| | | } else { |
| | | // ä¸è¾¹æ¾å¾ä¸ |
| | | posY = y - boxHeight |
| | | } |
| | | |
| | | return [posX, posY] |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'ç¯æäº®ç¯æ°é', |
| | | type: 'pie', |
| | | radius: ['55%', '70%'], |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | normal: { |
| | | show: false |
| | | }, |
| | | emphasis: { |
| | | show: false, |
| | | textStyle: { |
| | | fontSize: '5', |
| | | fontWeight: 'bold' |
| | | } |
| | | } |
| | | }, |
| | | labelLine: { |
| | | normal: { |
| | | show: false |
| | | } |
| | | }, |
| | | data: [{ value: this.brightNum, name: 'äº®ç¯æ°é' }, { value: this.notBrightNum, name: 'æªäº®ç¯æ°é' }] |
| | | } |
| | | ] |
| | | } |
| | | |
| | | var streetlightChart = echarts.init(document.getElementById('streetlightChart')) |
| | | streetlightChart.setOption(option) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | </style> |