| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div id='chart' style='height:150px;width:100%'></div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import echarts from 'echarts' |
| | | export default { |
| | | data () { |
| | | return { |
| | | onlineNum: 0, |
| | | outlineNum: 0 |
| | | } |
| | | }, |
| | | activated () { |
| | | this.getOnlineCamera() |
| | | }, |
| | | methods: { |
| | | getOnlineCamera () { |
| | | this.$http({ |
| | | url: this.$http.adornUrl('/pole/polecamera/getOnline'), |
| | | method: 'get' |
| | | }).then(({data}) => { |
| | | var onlineList = data.list // å°æææ°æ®ä¿å |
| | | this.onlineNum = 0 |
| | | this.outlineNum = 0 |
| | | for (var i = 0; i < onlineList.length; i++) { |
| | | if (onlineList[i].onlineStatus === 1) { |
| | | this.onlineNum++ |
| | | } else { |
| | | this.outlineNum++ |
| | | } |
| | | } |
| | | this.drawChart() |
| | | }) |
| | | }, |
| | | 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.outlineNum].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.onlineNum].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.onlineNum, name: 'å¨çº¿' }, { value: this.outlineNum, name: 'ä¸å¨çº¿' }] |
| | | } |
| | | ] |
| | | } |
| | | |
| | | var echart = echarts.init(document.getElementById('chart')) |
| | | echart.setOption(option) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | </style> |