| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class='mainSplashPan'> |
| | | <div id='splash' style='height:180px;width:100%'> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import echarts from 'echarts' |
| | | export default { |
| | | data () { |
| | | return { |
| | | deviceNum: 0 |
| | | } |
| | | }, |
| | | computed: { |
| | | streetlightList () { |
| | | return this.$store.state.home.homeStreetlightList |
| | | } |
| | | }, |
| | | watch: { |
| | | streetlightList (curVal, oldVal) { |
| | | this.deviceNum = curVal.length |
| | | let _this = this |
| | | setTimeout(function () { |
| | | _this.drawChart() |
| | | }, 1000) |
| | | } |
| | | }, |
| | | methods: { |
| | | drawChart () { |
| | | var option = { |
| | | title: { |
| | | text: 'æ»è®¾å¤\n' + this.deviceNum + '个', |
| | | left: '23%', |
| | | top: '48%', |
| | | textStyle: { |
| | | color: 'white', |
| | | fontSize: 13, |
| | | align: 'center' |
| | | } |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | right: 0, |
| | | top: 20, |
| | | data: ['ç°å°æµåº¦åè¦', '已巿´', 'æªå¼å¯çæµç¹'], |
| | | textStyle: { |
| | | color: 'white' |
| | | } |
| | | }, |
| | | 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: ['50%', '60%'], |
| | | avoidLabelOverlap: false, |
| | | center: ['30%', '50%'], |
| | | startAngle: 10, |
| | | label: { |
| | | normal: { |
| | | show: true, |
| | | formatter: function (params) { |
| | | return params.value + '个' |
| | | } |
| | | }, |
| | | emphasis: { |
| | | show: true, |
| | | textStyle: { |
| | | fontSize: '5', |
| | | fontWeight: 'bold' |
| | | } |
| | | } |
| | | }, |
| | | labelLine: { |
| | | normal: { |
| | | show: true |
| | | } |
| | | }, |
| | | data: [ |
| | | { value: 20, name: 'ç°å°æµåº¦åè¦' }, |
| | | { value: 70, name: 'æ ' } |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: function (params) { |
| | | var colorList = ['#FA3E3D', 'rgba(0,0,0,0.2)'] |
| | | return colorList[params.dataIndex] |
| | | } |
| | | }, |
| | | emphasis: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | name: 'å·æ´æ°é', |
| | | type: 'pie', |
| | | radius: ['60%', '70%'], |
| | | center: ['30%', '50%'], |
| | | avoidLabelOverlap: false, |
| | | startAngle: 10, |
| | | label: { |
| | | normal: { |
| | | show: true, |
| | | formatter: function (params) { |
| | | return params.value + '个' |
| | | } |
| | | }, |
| | | emphasis: { |
| | | show: true, |
| | | textStyle: { |
| | | fontSize: '5', |
| | | fontWeight: 'bold' |
| | | } |
| | | } |
| | | }, |
| | | labelLine: { |
| | | normal: { |
| | | show: true |
| | | } |
| | | }, |
| | | data: [ |
| | | { value: 30, name: '已巿´' }, |
| | | { value: 70, name: 'æªå·æ´' } |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: function (params) { |
| | | var colorList = ['#8A73E7', 'rgba(0,0,0,0.2)'] |
| | | return colorList[params.dataIndex] |
| | | } |
| | | }, |
| | | emphasis: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | name: 'çæµç¹', |
| | | type: 'pie', |
| | | radius: ['70%', '80%'], |
| | | center: ['30%', '50%'], |
| | | avoidLabelOverlap: false, |
| | | startAngle: 10, |
| | | label: { |
| | | normal: { |
| | | show: true, |
| | | formatter: function (params) { |
| | | return params.value + '个' |
| | | } |
| | | }, |
| | | emphasis: { |
| | | show: true, |
| | | textStyle: { |
| | | fontSize: '5', |
| | | fontWeight: 'bold' |
| | | } |
| | | } |
| | | }, |
| | | labelLine: { |
| | | normal: { |
| | | show: true |
| | | } |
| | | }, |
| | | data: [ |
| | | { value: 35, name: 'æªå¼å¯çæµç¹' }, |
| | | { value: 40, name: 'å¼å¯' } |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: function (params) { |
| | | var colorList = ['#0672FD', 'rgba(0,0,0,0.2)'] |
| | | return colorList[params.dataIndex] |
| | | } |
| | | }, |
| | | emphasis: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | |
| | | var splash = echarts.init(document.getElementById('splash')) |
| | | splash.setOption(option) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | .mainSplashPan { |
| | | background: url(~@/assets/img/home/splash/center.png) |
| | | no-repeat; |
| | | background-position: 24%; |
| | | background-size: 25% 50%; |
| | | } |
| | | </style> |