大屏展示功能
This commit is contained in:
		
							parent
							
								
									09017036ce
								
							
						
					
					
						commit
						3406c10a28
					
				
							
								
								
									
										19645
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										19645
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/center.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/center.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 387 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/normal_bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/normal_bg.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/normal_title.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/normal_title.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/sensitive_bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/sensitive_bg.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 45 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/sensitive_title.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/sensitive_title.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.8 KiB | 
							
								
								
									
										65
									
								
								src/assets/less/index.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/assets/less/index.less
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| @import '~iview/src/styles/index.less'; | ||||
| 
 | ||||
| @primary-color: #75deef; | ||||
| 
 | ||||
| .title { | ||||
|     position: absolute; | ||||
|     display: inline-block; | ||||
|     color: #6EDDF1; | ||||
|     background: #14418E; | ||||
|     left: 50%; | ||||
|     transform: translate(-50%, -50%); | ||||
|     font-size: 15px; | ||||
|     .title-gradient { | ||||
|         display: inline-block; | ||||
|         padding: 5px 14px; | ||||
|         background: radial-gradient(55% 55% ellipse, rgba(7, 9, 34, .8) 60%, rgb(21, 67, 145)); | ||||
|     } | ||||
| } | ||||
| .angle1 { | ||||
|     display: inline-block; | ||||
|     position: absolute; | ||||
|     width: 10px; | ||||
|     height: 10px; | ||||
|     top: 0; | ||||
|     left: 0; | ||||
|     border-top: 1px solid #1C5AB3; | ||||
|     border-left: 1px solid #1C5AB3; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| .angle2 { | ||||
|     display: inline-block; | ||||
|     position: absolute; | ||||
|     width: 10px; | ||||
|     height: 10px; | ||||
|     top: 0; | ||||
|     right: 0; | ||||
|     border-top: 1px solid #1C5AB3; | ||||
|     border-right: 1px solid #1C5AB3; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| .angle3 { | ||||
|     display: inline-block; | ||||
|     position: absolute; | ||||
|     width: 10px; | ||||
|     height: 10px; | ||||
|     bottom: 0; | ||||
|     left: 0; | ||||
|     border-bottom: 1px solid #1C5AB3; | ||||
|     border-left: 1px solid #1C5AB3; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| .angle4 { | ||||
|     display: inline-block; | ||||
|     position: absolute; | ||||
|     width: 10px; | ||||
|     height: 10px; | ||||
|     bottom: 0; | ||||
|     right: 0; | ||||
|     border-bottom: 1px solid #1C5AB3; | ||||
|     border-right: 1px solid #1C5AB3; | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										46
									
								
								src/lib/china.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/lib/china.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										7
									
								
								src/lib/img.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/lib/img.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| export default { | ||||
|     center:require('../assets/images/center.gif'), | ||||
|     normal_bg:require('../assets/images/normal_bg.png'), | ||||
|     normal_title:require('../assets/images/normal_title.png'), | ||||
|     sensitive_bg:require('../assets/images/sensitive_bg.png'), | ||||
|     sensitive_title:require('../assets/images/sensitive_title.png') | ||||
| } | ||||
							
								
								
									
										15
									
								
								src/lib/utils.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/lib/utils.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| export default { | ||||
|     install: function (Vue) { | ||||
|         Vue.prototype.$debounce = function ( fn,delay){ | ||||
|             let timer = null //借助闭包
 | ||||
|             return function() { | ||||
|                 if(timer){ | ||||
|                     clearTimeout(timer) //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
 | ||||
|                     timer = setTimeout(fn,delay) | ||||
|                 }else{ | ||||
|                     timer = setTimeout(fn,delay) // 进入该分支说明当前并没有在计时,那么就开始一个计时
 | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										20
									
								
								src/lib/world.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/lib/world.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										234
									
								
								src/views/modules/monitoring/components/areaChart.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								src/views/modules/monitoring/components/areaChart.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,234 @@ | ||||
| <template> | ||||
|     <div class="area"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: "areaChart", | ||||
|     props: [ 'config', 'selectRangeDate'], | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setData(type) { | ||||
|             let arr = []; | ||||
|             switch (type) { | ||||
|                 case 'x': | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push(this.selectRangeDate[i][1] + "." + this.selectRangeDate[i][2]) | ||||
|                     } | ||||
|                     break; | ||||
|                 case 's' : | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push((Math.random() * 250).toFixed(0)) | ||||
|                     } | ||||
|                     break; | ||||
| 
 | ||||
|                 default: | ||||
|                     break; | ||||
|             } | ||||
| 
 | ||||
|             return arr; | ||||
|         }, | ||||
|         setSeriesData() { | ||||
|             let arr = []; | ||||
|             this.config.data.forEach(item=> { | ||||
|                 let obj = { | ||||
|                     name: item.name, | ||||
|                     type: 'line', | ||||
|                     smooth: true, | ||||
|                     symbol: "none", | ||||
|                     areaStyle: { | ||||
|                         opacity: 1, | ||||
|                         color: { | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 0, | ||||
|                             y2: 1, | ||||
|                             colorStops: [{ | ||||
|                                 offset: 0, color: item.color[0] // 0% 处的颜色 | ||||
|                             }, | ||||
|                                 { | ||||
|                                     offset: 0.4, color: item.color[0] // 40% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: item.color[1] // 100% 处的颜色 | ||||
|                                 }], | ||||
|                             global: false // 缺省为 false | ||||
|                         } | ||||
|                         // color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{ | ||||
|                         //     offset: 0, color: item.color[0] // 0% 处的颜色 | ||||
|                         // }, | ||||
|                         //     { | ||||
|                         //         offset: 0.4, color: item.color[0] // 0% 处的颜色 | ||||
|                         //     }, { | ||||
|                         //         offset: 1, color: item.color[1] // 100% 处的颜色 | ||||
|                         //     }]), //背景渐变色 | ||||
|                         // origin: 'start' | ||||
|                     }, | ||||
|                     lineStyle: { | ||||
|                         width: 0, | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: item.color[0] | ||||
|                     }, | ||||
|                     data: this.setData('s') | ||||
|                 } | ||||
|                 arr.push(obj) | ||||
|             }) | ||||
|             return arr; | ||||
|         }, | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: { | ||||
|                     show: !!this.config.title, | ||||
|                     text: this.config.title, | ||||
|                     textStyle: { | ||||
|                         color: this.config.color, | ||||
|                         fontSize: 12, | ||||
|                         fontWeight: 'normal' | ||||
|                     }, | ||||
|                     top: '12%', | ||||
|                     left: '38%' | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
| 
 | ||||
|                     formatter: function (params) { | ||||
|                         let str = params[0].name; | ||||
|                         params.forEach(item=> { | ||||
|                             str += `<br> ${item.seriesName}: ${item.value}` | ||||
|                         }) | ||||
|                         return str | ||||
|                     } | ||||
|                 }, | ||||
|                 legend: | ||||
|                     { | ||||
|                         top: this.config.title?'23%': '11%', | ||||
|                         left: 'center', | ||||
|                         itemWidth: 7, | ||||
|                         itemHeight:7, | ||||
|                         textStyle: { | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 12 | ||||
|                         }, | ||||
|                     }, | ||||
|                 grid: | ||||
|                     { | ||||
|                         top: this.config.title?'40%': '14%', | ||||
|                         left: '5%', | ||||
|                         right: '5%', | ||||
|                         bottom: '5%', | ||||
|                         containLabel: true | ||||
|                     }, | ||||
|                 xAxis: | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         boundaryGap: false, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 9, | ||||
|                             align: 'center' | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58', | ||||
|                                 width: 2, | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: {show: false}, | ||||
|                         data: this.setData('x') | ||||
|                     }, | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 9, | ||||
|                             showMaxLabel: false, | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3 | ||||
|                         }, | ||||
|                         name: this.config.name[0], | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 9, | ||||
|                             align: 'right' | ||||
|                         }, | ||||
|                         splitLine: {show: false} | ||||
| 
 | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3 | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 9, | ||||
|                             showMaxLabel: false, | ||||
|                         }, | ||||
|                         name: this.config.name[1], | ||||
|                         nameTextStyle: { | ||||
|                             color: this.config.color, | ||||
|                             fontSize: 9, | ||||
|                             align: 'left' | ||||
|                         }, | ||||
|                         nameGap: -5, | ||||
|                         splitLine: {show: false} | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: this.setSeriesData() | ||||
|             }; | ||||
|             if (this.selectRangeDate.length > 7) { | ||||
|                 option.xAxis.axisLabel.interval = 3; | ||||
|                 option.xAxis.axisLabel.showMaxLabel = false; | ||||
|                 option.xAxis.axisLabel.align = 'left'; | ||||
|             } | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .area { | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										448
									
								
								src/views/modules/monitoring/components/page1/center.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										448
									
								
								src/views/modules/monitoring/components/page1/center.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,448 @@ | ||||
| <template> | ||||
|     <div class="main"> | ||||
|         <svg class="guideLine" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 783 500"> | ||||
|             <image x="5%" y="20" :xlink:href="$images.center" width="90%" height="100%"/> | ||||
|             <image v-if='!status' x="250" y="320" :style="{opacity: number}" :xlink:href="$images.normal_bg" width="250" | ||||
|                    height="170"/> | ||||
|             <image v-else id="textBox_1" x="220" y="110" :xlink:href="$images.sensitive_bg" width="300" height="170"/> | ||||
|             <template> | ||||
|                 <g v-for="(item, index) in swiperData" :key="item.title"> | ||||
|                     <image class="bg_img" :x="item.image.x" :y="item.image.y" | ||||
|                            :xlink:href="item.status?$images.sensitive_title:$images.normal_title" width="130" | ||||
|                            height="50"/> | ||||
|                     <foreignObject class="title_1" @mouseenter="onmouseenter" @mouseleave="onmouseleave" :x="item.pos.x" :y="item.pos.y" :id="'title_'+ (index + 1)" width="100" height="40"> | ||||
|                         <div class="title-text-box" xmlns="http://www.w3.org/1999/xhtml"> | ||||
|                             <p :style="{color:item.status?'#FFDBDB':''}"> | ||||
|                                 <span class="titleText">{{ item.title }}</span> | ||||
|                                 <Rate :show-text="false" disabled v-model="item.rate"></Rate> | ||||
|                             </p> | ||||
|                         </div> | ||||
|                     </foreignObject> | ||||
|                     <foreignObject class="text" x="250" y="320" ref="textBox" width="250" height="170"> | ||||
|                         <div class="text-box" xmlns="http://www.w3.org/1999/xhtml"> | ||||
|                             <div class="promptBox"> | ||||
|                                 <div class="promptTitle">{{item.title}}</div> | ||||
|                                 <div class="psychologyContent"> | ||||
|                                     对当前模块的一些描述... | ||||
|                                 </div> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </foreignObject> | ||||
|                     <path :id="'line_'+ (index + 1)" :class='item.path.className' :d="item.path.d" stroke="#AFE5FB" stroke-width="2" | ||||
|                           fill="none"/> | ||||
|                 </g> | ||||
|             </template> | ||||
|         </svg> | ||||
| 
 | ||||
|     </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| 
 | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         selectRangeDate: Array, | ||||
|         _width: Number | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             timer1: null, | ||||
|             status: false, | ||||
|             timer: null, | ||||
|             rid: null, | ||||
|             index: 0, | ||||
|             number: 0, | ||||
|             length: 0, | ||||
|             frames: 0, | ||||
|             isIE: false, | ||||
|             swiperData: [ | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 85, | ||||
|                         y: 354 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题一', | ||||
|                     pos: { | ||||
|                       x: 102, | ||||
|                       y:364 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M150,402 L150,432 250,432', | ||||
|                         className: 'swap1' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 58, | ||||
|                         y: 224 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题二', | ||||
|                     pos: { | ||||
|                       x: 76, | ||||
|                       y:232 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M125,272 L125,337 250,337', | ||||
|                         className: 'swap2' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 87, | ||||
|                         y: 110 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题三', | ||||
|                     pos: { | ||||
|                         x: 105, | ||||
|                         y:118 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M207,135 L260,135 260,322', | ||||
|                         className: 'swap3' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 310, | ||||
|                         y: 40 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题四', | ||||
|                     pos: { | ||||
|                       x: 328, | ||||
|                       y: 49 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M319,66 L279,66 279,321', | ||||
|                         className: 'swap4' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 522, | ||||
|                         y: 110 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题五', | ||||
|                     pos: { | ||||
|                         x: 538, | ||||
|                         y: 118 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M538,135 L485,135 485,322', | ||||
|                         className: 'swap3' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 560, | ||||
|                         y: 224 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题六', | ||||
|                     pos: { | ||||
|                         x: 578, | ||||
|                         y: 230 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M625,272 L625,337 500,337', | ||||
|                         className: 'swap2' | ||||
|                     } | ||||
|                 }, | ||||
|                 { | ||||
|                     image: { | ||||
|                         x: 538, | ||||
|                         y: 354 | ||||
|                     }, | ||||
|                     status: false, | ||||
|                     rate:0, | ||||
|                     title: '标题七', | ||||
|                     pos: { | ||||
|                         x: 555, | ||||
|                         y: 364 | ||||
|                     }, | ||||
|                     path: { | ||||
|                         d: 'M600,402 L600,432 500,432', | ||||
|                         className: 'swap1' | ||||
|                     } | ||||
|                 } | ||||
|             ], | ||||
|             psychologicalRate: 0, | ||||
|             speechRate: 0, | ||||
|             internetPreferenceRate: 0, | ||||
|             riskRate: 0, | ||||
|             makeFriendRate: 0, | ||||
|             entertainmentPreferenceRate: 0, | ||||
|             consumptionCharacteristicsRate: 0, | ||||
|             psychologicalStatus: false, | ||||
|             speechStatus: false, | ||||
|             internetPreferenceStatus: false, | ||||
|             riskStatus: false, | ||||
|             entertainmentPreferenceStatus: false, | ||||
|             makeFriendStatus: false, | ||||
|             consumptionCharacteristicsStatus: false, | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // mouseenter | ||||
|         onmouseenter(e) { | ||||
|             document.querySelectorAll('.text').forEach(item=>item.style.opacity = 0); | ||||
|             document.querySelectorAll('.swap1').forEach(item=>item.style.strokeDashoffset = 130); | ||||
|             document.querySelectorAll('.swap2').forEach(item=>item.style.strokeDashoffset = 190); | ||||
|             document.querySelectorAll('.swap3').forEach(item=>item.style.strokeDashoffset = 240); | ||||
|             document.querySelectorAll('.swap4').forEach(item=>item.style.strokeDashoffset = 295); | ||||
|             cancelAnimationFrame(this.rid); | ||||
|             this.rid = null; | ||||
|             clearTimeout(this.timer) | ||||
|             this.timer = null; | ||||
|             this.animation(Number(e.currentTarget.id.substr(e.currentTarget.id.length - 1, 1)), true); | ||||
|         }, | ||||
|         //mouseleave | ||||
|         onmouseleave() { | ||||
|             this.animation(1, false); | ||||
|         }, | ||||
|         frame() { | ||||
|             cancelAnimationFrame(this.rid); | ||||
|             this.rid = null; | ||||
|             this.rid = requestAnimationFrame(this.frame); | ||||
|             let line = document.querySelector("#line_" + this.index); | ||||
|             line.style.strokeDashoffset = this.frames; | ||||
|             line.getPointAtLength(this.length - this.frames); | ||||
|             line.getPointAtLength((this.length - this.frames + 2) % this.length); | ||||
|             if (this.index > 1) { | ||||
|                 line = document.querySelector("#line_" + (this.index - 1)); | ||||
|                 this.$refs.textBox[this.index - 2].style.opacity = 0; | ||||
|                 line.style.strokeDashoffset = line.style.strokeDasharray; | ||||
|             } | ||||
|             if (this.index === 1) { | ||||
|                 for (let i = 2; i < 8; i++) { | ||||
|                     line = document.querySelector("#line_" + i); | ||||
|                     this.$refs.textBox[i - 1].style.opacity = 0; | ||||
|                     line.style.strokeDashoffset = line.style.strokeDasharray; | ||||
|                 } | ||||
|             } | ||||
|             this.$refs.textBox[this.index - 1].style.opacity = this.number; | ||||
|             this.number += 5 / this.length; | ||||
|             this.frames -= 5; | ||||
|             if (this.frames <= -5) { | ||||
|                 cancelAnimationFrame(this.rid); | ||||
|                 this.rid = null; | ||||
|             } | ||||
|         }, | ||||
|         animation(i, boolean) { | ||||
|             clearTimeout(this.timer); | ||||
|             cancelAnimationFrame(this.rid); | ||||
|             this.rid = null; | ||||
|             this.timer = null; | ||||
|             if (i > 7) { | ||||
|                 i = 1; | ||||
|             } | ||||
|             this.swiperData.forEach(item=>item.status = false); | ||||
|             this.swiperData[i-1].status = true; | ||||
|             const line = document.querySelector("#line_" + i); | ||||
|             this.length = line.getTotalLength(); | ||||
|             line.style.strokeDasharray = this.length; | ||||
|             line.style.strokeDashoffset = this.length; | ||||
|             this.frames = this.length; | ||||
|             this.index = i; | ||||
|             this.number = 0; | ||||
|             this.frame(); | ||||
|             if (!boolean) { | ||||
|                 clearTimeout(this.timer); | ||||
|                 this.timer = null; | ||||
|                 this.timer = setTimeout(() => { | ||||
|                     this.animation(i + 1, boolean); | ||||
|                 }, 5000); | ||||
|             } | ||||
|         }, | ||||
|         // 中心图 | ||||
|         setChart() { | ||||
|             clearTimeout(this.timer1); | ||||
|             clearTimeout(this.timer); | ||||
|             cancelAnimationFrame(this.rid); | ||||
|             this.frames = 0; | ||||
|             this.rid = null; | ||||
|             this.timer = null; | ||||
|             this.timer1 = null | ||||
|             this.timer1 = setTimeout(() => { | ||||
|                 this.animation(1, false); | ||||
|             }, 5000); | ||||
| 
 | ||||
|         } | ||||
|     }, | ||||
|     watch: { | ||||
|         selectRangeDate: function () { | ||||
|             this.setChart() | ||||
|         } | ||||
|     }, | ||||
|     created() { | ||||
|         if (!window.SVGForeignObjectElement) { | ||||
|             this.isIE = true; | ||||
|         } | ||||
|     }, | ||||
|     beforeDestroy() { // 离开页面动画初始化 | ||||
|         document.querySelectorAll('.text').forEach(item=>item.style.opacity = 0); | ||||
|         document.querySelectorAll('.swap1').forEach(item=>item.style.strokeDashoffset = 130); | ||||
|         document.querySelectorAll('.swap2').forEach(item=>item.style.strokeDashoffset = 190); | ||||
|         document.querySelectorAll('.swap3').forEach(item=>item.style.strokeDashoffset = 240); | ||||
|         document.querySelectorAll('.swap4').forEach(item=>item.style.strokeDashoffset = 295); | ||||
|         cancelAnimationFrame(this.rid); | ||||
|         this.rid = null; | ||||
|         clearTimeout(this.timer) | ||||
|         clearTimeout(this.timer1) | ||||
|         this.timer = null; | ||||
|         this.timer1 = null; | ||||
|         this.swiperData.forEach(item=>item.status = false); | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .main { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
|     position: relative; | ||||
| 
 | ||||
|     .guideLine { | ||||
|         width: 100%; | ||||
|         height: 100%; | ||||
| 
 | ||||
|         #textBox_1 { | ||||
|             opacity: 0; | ||||
|         } | ||||
| 
 | ||||
|         .title_1 { | ||||
|             font-size: 15px; | ||||
|             cursor: pointer; | ||||
| 
 | ||||
|             .title-text-box { | ||||
|                 background: rgba(0, 0, 0, 0); | ||||
|                 justify-content: center; //子元素水平居中 | ||||
|                 align-items: center; //子元素垂直居中 | ||||
|                 display: -webkit-flex; | ||||
|                 height: 100%; | ||||
| 
 | ||||
|                 p { | ||||
|                     width: 100%; | ||||
|                     background: rgba(0, 0, 0, 0); | ||||
|                     color: #A0E8FF; | ||||
|                     font-size: 15px; | ||||
|                     text-align: center; | ||||
| 
 | ||||
|                     .titleText { | ||||
|                         margin-left: -5px; | ||||
|                         font-size: 15px; | ||||
|                         display: block; | ||||
|                     } | ||||
| 
 | ||||
|                     /deep/ .ivu-rate { | ||||
|                         font-size: 14px; | ||||
| 
 | ||||
|                         .ivu-rate-star { | ||||
|                             margin-right: 6px; | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         .text { | ||||
|             opacity: 0; | ||||
|             color: #fff; | ||||
|             font-size: 15px; | ||||
|             text-align: center; | ||||
| 
 | ||||
|             .text-box { | ||||
|                 background: rgba(0, 0, 0, 0); | ||||
|                 justify-content: center; //子元素水平居中 | ||||
|                 align-items: center; //子元素垂直居中 | ||||
|                 display: -webkit-flex; | ||||
| 
 | ||||
|                 .promptBox { | ||||
|                     width: 100%; | ||||
|                     height: 100%; | ||||
|                     padding: 10px 20px; | ||||
| 
 | ||||
|                     .promptTitle { | ||||
|                         color: #fff; | ||||
|                         font-size: 16px; | ||||
|                         font-weight: bold; | ||||
|                         margin-bottom: 5px; | ||||
|                     } | ||||
| 
 | ||||
|                     p { | ||||
|                         background: rgba(0, 0, 0, 0); | ||||
|                         color: #A0E8FF; | ||||
|                         font-size: 16px; | ||||
|                         text-align: left; | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 .psychologyContent { | ||||
|                     color: #AFE5FB; | ||||
|                     font-size: 16px; | ||||
|                     text-align: left; | ||||
| 
 | ||||
|                     div { | ||||
|                         line-height: 2em; | ||||
| 
 | ||||
|                         span { | ||||
|                             &:first-child { | ||||
|                                 color: #FED723; | ||||
|                                 cursor: pointer; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         .swap1 { | ||||
|             stroke-dasharray: 130; | ||||
|             stroke-dashoffset: 130; | ||||
|         } | ||||
| 
 | ||||
|         .swap2 { | ||||
|             stroke-dasharray: 190; | ||||
|             stroke-dashoffset: 190; | ||||
|         } | ||||
| 
 | ||||
|         .swap3 { | ||||
|             stroke-dasharray: 240; | ||||
|             stroke-dashoffset: 240; | ||||
|         } | ||||
| 
 | ||||
|         .swap4 { | ||||
|             stroke-dasharray: 295; | ||||
|             stroke-dashoffset: 295; | ||||
|         } | ||||
| 
 | ||||
|         .circle-point { | ||||
|             &:hover { | ||||
|                 fill: #000; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // .swap4{ | ||||
|         // stroke-dasharray: 110; | ||||
|         // stroke-dashoffset: 110; | ||||
|         // } | ||||
|     } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										477
									
								
								src/views/modules/monitoring/components/page1/chart1.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										477
									
								
								src/views/modules/monitoring/components/page1/chart1.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,477 @@ | ||||
| <template> | ||||
|     <div class="doubleArea"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         selectRangeDate: Array | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setData(type) { // 数据模拟 | ||||
|             let arr = []; | ||||
|             switch (type) { | ||||
|                 case 'x': // 设置横坐标 时间数据 | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push(this.selectRangeDate[i][0] + '.' + this.selectRangeDate[i][1] + '.' + this.selectRangeDate[i][2]) | ||||
|                     } | ||||
|                     break; | ||||
|                 case 's':// 访问次数数据模拟 | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push((Math.random() * 6).toFixed(0)) | ||||
|                     } | ||||
|                     break; | ||||
|                 case 'n': // 访问人数数据 | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push((Math.random() * 600).toFixed(0)) | ||||
|                     } | ||||
|                     break; | ||||
| 
 | ||||
|                 default: | ||||
|                     break; | ||||
|             } | ||||
|             return arr; | ||||
| 
 | ||||
|         }, | ||||
|         // 上网行为分析 | ||||
|         setChart() { | ||||
|             let option = { | ||||
| 
 | ||||
|                 legend: { // 图例信息 | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 12, | ||||
|                     }, | ||||
|                     right: '5%', | ||||
|                     top: '5%', | ||||
|                 }, | ||||
|                 grid: [ | ||||
|                     { // 上区域图 | ||||
|                         top: '20%', | ||||
|                         bottom: '45%', | ||||
|                         left: "8%", | ||||
|                         right: '5%', | ||||
|                         containLabel: false | ||||
|                     }, | ||||
|                     { // 下区域图 | ||||
|                         top: '55%', | ||||
|                         bottom: '10%', | ||||
|                         left: "8%", | ||||
|                         right: '5%', | ||||
|                         containLabel: false | ||||
| 
 | ||||
|                     }, | ||||
|                 ], | ||||
|                 yAxis: [{ // 上区域图 y轴 | ||||
|                     type: 'value', | ||||
|                     inverse: false, | ||||
|                     splitNumber: 3, | ||||
|                     axisLine: { | ||||
|                         show: true, | ||||
|                         lineStyle: { | ||||
|                             color: '#1a3c58' | ||||
|                         } | ||||
|                     }, | ||||
|                     name: "(次)", | ||||
|                     nameTextStyle: { | ||||
|                         color: "#75deef", | ||||
|                         fontSize: 10, | ||||
|                         padding: [0, 15, -10, 0] | ||||
|                     }, | ||||
|                     axisTick: { | ||||
|                         show: true | ||||
| 
 | ||||
|                     }, | ||||
|                     axisLabel: { | ||||
|                         showMaxLabel: true, | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 9, | ||||
|                         fontWeight: 'normal' | ||||
|                     }, | ||||
|                     splitLine: { | ||||
|                         show: false, | ||||
|                     } | ||||
|                 }, | ||||
|                     { // 下区域图 y轴 | ||||
|                         gridIndex: 1, | ||||
|                         splitNumber: 3, | ||||
|                         inverse: true, | ||||
|                         type: 'value', | ||||
|                         name: "(人)", | ||||
|                         nameLocation: 'end', | ||||
|                         nameTextStyle: { | ||||
|                             color: "#75deef", | ||||
|                             fontSize: 10, | ||||
|                             padding: [-10, 25, 0, 0] | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true | ||||
|                         }, | ||||
|                         position: 'bottom', | ||||
|                         axisLabel: { | ||||
|                             show: true, | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             fontWeight: 'normal', | ||||
|                             showMaxLabel: true, | ||||
| 
 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                             lineStyle: { | ||||
|                                 width: 0 | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 ], | ||||
|                 xAxis: [ | ||||
|                     { // 上图x轴 | ||||
|                         type: 'category', | ||||
|                         boundaryGap: false, | ||||
|                         z: 2, | ||||
|                         nameGap: 0, | ||||
|                         axisLine: { | ||||
|                             show: false, | ||||
| 
 | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         data: this.setData('x') | ||||
| 
 | ||||
|                     }, | ||||
|                     { // 下图x轴 | ||||
|                         gridIndex: 1, | ||||
|                         type: 'category', | ||||
|                         boundaryGap: false, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [4, 8], | ||||
|                             symbolOffset: [0, 8], | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         z: 2, | ||||
|                         axisTick: { | ||||
|                             show: false, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         data: this.setData('x') | ||||
|                     }, | ||||
|                     { // 最下刻度轴 | ||||
|                         gridIndex: 1, | ||||
|                         position: 'bottom', | ||||
|                         type: 'category', | ||||
|                         name: "日", | ||||
|                         nameLocation: 'end', | ||||
|                         nameTextStyle: { | ||||
|                             color: "#75deef", | ||||
|                             fontSize: 9, | ||||
|                             padding: [25, 0, 0, -25] | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         axisLine: { // 轴线 | ||||
|                             show: true, | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [4, 8], | ||||
|                             symbolOffset: [0, 8], | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         z: 2, | ||||
|                         axisTick: { // 刻度 | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { // 标签 | ||||
|                             show: true, | ||||
|                             interval: 0, | ||||
|                             showMaxLabel: false, | ||||
|                             align: "left", | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             fontWeight: 'normal', | ||||
| 
 | ||||
|                         }, | ||||
|                         data: this.setData('x') | ||||
| 
 | ||||
|                     } | ||||
|                 ], | ||||
|                 tooltip: { // hover 提示框 | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: { | ||||
|                         type: 'line' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     formatter: (data) => { | ||||
|                         if (data[0].componentIndex == 0) { // hover 到上图的时候 | ||||
|                             return data[0].name + '<br>' + data[0].seriesName + ":" + data[0].value + "次" + '<br>' + data[1].seriesName + ":" + data[1].value + "次" | ||||
|                         } else { | ||||
|                             return data[0].name + '<br>' + data[0].seriesName + ":" + data[0].value + "人" + '<br>' + data[1].seriesName + ":" + data[1].value + "人" | ||||
|                         } | ||||
|                     } | ||||
|                 }, | ||||
|                 series: [ // 面积图 | ||||
|                     { | ||||
|                         name: '数据1', | ||||
|                         type: 'line', | ||||
|                         symbol: 'none', | ||||
|                         smooth: true, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 1, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(250, 206, 21, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(253, 116, 48, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             opacity: .18, | ||||
|                             color: 'rgba(243, 121, 46, 1)' | ||||
|                         }, | ||||
| 
 | ||||
|                         itemStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(250, 206, 21, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(253, 116, 48, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.setData('s') | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '数据2', | ||||
|                         type: 'line', | ||||
|                         symbol: 'none', | ||||
|                         smooth: true, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 1, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(51, 231, 252, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(11, 120, 227, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             opacity: .5, | ||||
|                             color: 'rgba(19, 34, 96, 1)' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(51, 231, 252, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(11, 120, 227, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.setData('s') | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '数据1', | ||||
|                         type: 'line', | ||||
|                         symbol: 'none', | ||||
|                         smooth: true, | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 1, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(250, 206, 21, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(253, 116, 48, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             opacity: .18, | ||||
|                             color: 'rgba(243, 121, 46, 1)' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(250, 206, 21, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(253, 116, 48, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.setData('n') | ||||
|                     }, | ||||
| 
 | ||||
|                     { | ||||
|                         name: '数据2', | ||||
|                         type: 'line', | ||||
|                         symbol: 'none', | ||||
|                         smooth: true, | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 1, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(51, 231, 252, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(11, 120, 227, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             opacity: .5, | ||||
|                             color: 'rgba(19, 34, 96, 1)' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(51, 231, 252, 1)' // 0% 处的颜色 | ||||
|                                     }, | ||||
|                                     { | ||||
|                                         offset: 1, color: 'rgba(11, 120, 227, 1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.setData('n') | ||||
|                     }, | ||||
| 
 | ||||
|                 ] | ||||
|             }; | ||||
|             if (this.selectRangeDate.length > 7) { // 当x轴数据超过7个的时候 x轴刻度显示 | ||||
|                 option.xAxis[2].axisLabel.interval = 3; // x轴刻度隔3个显示 | ||||
|                 option.xAxis[2].axisLabel.showMaxLabel = false; | ||||
| 
 | ||||
|             } | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     watch: { | ||||
|         selectRangeDate: function () { // 检测selectRangeDate 数据变化 | ||||
|             this.setChart() | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .doubleArea { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										145
									
								
								src/views/modules/monitoring/components/page1/chart2.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								src/views/modules/monitoring/components/page1/chart2.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,145 @@ | ||||
| <template> | ||||
|     <div class="webBar"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setData() { | ||||
|             var max = Math.max.apply(null, this.data.value); | ||||
|             var arr = [] | ||||
|             for (let i = 0; i < 6; i++) { | ||||
|                 arr.push(max / 10) | ||||
|             } | ||||
|             return arr; | ||||
|         }, | ||||
|         // 网站 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     formatter: (params) => { | ||||
|                         params[1].number = this.data.number | ||||
|                         return params[1].name + "<br>" + params[1].seriesName + ":" + params[1].number + "/" + params[1].value + "人" | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     left: '4%', | ||||
|                     top: '5%', | ||||
|                     bottom: 10, | ||||
| 
 | ||||
|                     containLabel: true, | ||||
|                 }, | ||||
|                 yAxis: | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         inverse: true, | ||||
|                         position: 'left', | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             show: true, | ||||
|                             margin: 13, | ||||
|                             fontSize: 10, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         data: this.data.data | ||||
|                     }, | ||||
|                 xAxis: | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         } | ||||
|                     } | ||||
|                 , | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barCategoryGap: 20, | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: this.setData() | ||||
|                     }, | ||||
|                     { | ||||
|                         name: this.data.name, | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barCategoryGap: 20, | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgb(' + this.data.color + ',0.1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgb(' + this.data.color + ',1)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: this.data.value | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .webBar { | ||||
|     float: left; | ||||
|     width: 60%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										357
									
								
								src/views/modules/monitoring/components/page1/chart3.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								src/views/modules/monitoring/components/page1/chart3.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,357 @@ | ||||
| <template> | ||||
|     <div class="popularBar"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: 'popularBar', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setOptionData() { | ||||
|             let nameData = ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '其他']; | ||||
|             let data = [45, 33, 13, 25, 30, 35, 45]; | ||||
|             let colorList = ['#2871ea', '#fbe831', '#2ea5fe', '#fc662f', '#9f56f0', '#bf232c', '#64cef2']; | ||||
|             let arr = []; | ||||
|             for (let i = 0; i < data.length; i++) { | ||||
|                 let obj = { | ||||
|                     name: nameData[i], | ||||
|                     value: data[i], | ||||
|                     itemStyle: { | ||||
|                         color: { | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 1, | ||||
|                             y2: 0, | ||||
|                             colorStops: [{ | ||||
|                                 offset: 0, color: colorList[i] // 0% 处的颜色 | ||||
|                             }, { | ||||
|                                 offset: 1, color: '#922aea' // 100% 处的颜色 | ||||
|                             }], | ||||
|                             globalCoord: false // 缺省为 false | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 arr.push(obj) | ||||
|             } | ||||
|             return arr; | ||||
|         }, | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 grid: [{ | ||||
|                     top: '10%', | ||||
|                     bottom: '15%', | ||||
|                     right: '5%', | ||||
|                     left: '55.5%' | ||||
|                 }, | ||||
|                     { | ||||
|                         top: '10%', | ||||
|                         bottom: '15%', | ||||
|                         right: '52.5%', | ||||
|                         left: '8%' | ||||
|                     } | ||||
|                 ], | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     formatter: (params) => { | ||||
|                         if (params[5].seriesName == '人数') { | ||||
|                             return params[5].name + ':' + params[5].value + '人' | ||||
|                         } else { | ||||
|                             return params[5].name + ':' + params[5].value + '次' | ||||
|                         } | ||||
| 
 | ||||
|                     } | ||||
|                 }, | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         data: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '其他'], | ||||
|                         axisTick: { | ||||
|                             show: true, | ||||
|                             inside: true, | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         axisLabel: { | ||||
|                             show: false, | ||||
|                             fontSize: 10, | ||||
|                             margin: 4, | ||||
|                             inside: true, | ||||
|                             color: 'rgb(113,227,247)' | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         data: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '其他'], | ||||
|                         gridIndex: 1, | ||||
|                         position: 'right', | ||||
|                         axisTick: { | ||||
|                             show: true, | ||||
|                             inside: true, | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         axisLabel: { | ||||
|                             show: false, | ||||
|                             fontSize: 10, | ||||
|                             margin: 4, | ||||
|                             inside: true, | ||||
|                             color: 'rgb(113,227,247)' | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 xAxis: [{ | ||||
|                     type: 'value', | ||||
| 
 | ||||
|                     splitLine: {show: false}, | ||||
|                     axisTick: {show: true}, | ||||
|                     axisLabel: { | ||||
|                         show: true, | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 9, | ||||
|                         showMaxLabel: false, | ||||
|                     }, | ||||
|                     name: '(人)', | ||||
|                     nameGap: -5, | ||||
|                     nameTextStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 9, | ||||
|                         align: 'left', | ||||
|                         padding: [0, 0, -24, 0] | ||||
|                     }, | ||||
|                     max: 60, | ||||
|                     splitNumber: 6, | ||||
|                     min: 10, | ||||
|                     scale: true, | ||||
|                     axisLine: { | ||||
|                         show: true, | ||||
|                         lineStyle: { | ||||
|                             color: '#1a3c58' | ||||
|                         } | ||||
|                     }, | ||||
|                 }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         inverse: true, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisTick: {show: true}, | ||||
|                         gridIndex: 1, | ||||
|                         axisLabel: { | ||||
|                             show: true, | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             showMaxLabel: false, | ||||
|                         }, | ||||
|                         name: '(次)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 0, -24, 0] | ||||
|                         }, | ||||
|                         max: 60, | ||||
|                         splitNumber: 7, | ||||
|                         min: 10, | ||||
|                         scale: true, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         stack: 'a', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [15, 15, 15, 15, 15, 15, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         stack: 'a', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [13, 13, 13, 13, 13, 13, 13] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'bar', | ||||
|                         stack: 'a', | ||||
|                         silent: true, | ||||
|                         barWidth: 5, | ||||
|                         barGap: '-100%', // Make series be overlap | ||||
|                         data: [50, 50, 50, 50, 50, 50, 50], | ||||
|                         itemStyle: { | ||||
|                             color: '#242346' | ||||
|                         } | ||||
| 
 | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         stack: 'b', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [15, 15, 15, 15, 15, 15, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         stack: 'b', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: '#c0232a' | ||||
|                         }, | ||||
|                         data: [13, 13, 13, 13, 13, 13, 13] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '人数', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 5, | ||||
|                         stack: 'b', | ||||
|                         barCategoryGap: 20, | ||||
|                         z: 10, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             formatter: '{b}', | ||||
|                             position: 'insideBottomLeft', | ||||
|                             offset: [-10, 0], | ||||
|                             fontSize: 12, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         data: this.setOptionData(), | ||||
| 
 | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         type: 'bar', | ||||
|                         stack: 'c', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [15, 15, 15, 15, 15, 15, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         stack: 'c', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [13, 13, 13, 13, 13, 13, 13] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         stack: 'c', | ||||
|                         silent: true, | ||||
|                         barWidth: 5, | ||||
|                         barGap: '-100%', // Make series be overlap | ||||
|                         data: [50, 50, 50, 50, 50, 50, 50], | ||||
|                         itemStyle: { | ||||
|                             color: '#242346' | ||||
|                         } | ||||
| 
 | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         type: 'bar', | ||||
|                         stack: 'd', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgba(0,0,0,0)' | ||||
|                         }, | ||||
|                         data: [15, 15, 15, 15, 15, 15, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         stack: 'd', | ||||
|                         barWidth: 5, | ||||
|                         itemStyle: { | ||||
|                             color: '#c0232a' | ||||
|                         }, | ||||
|                         data: [13, 13, 13, 13, 13, 13, 13] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '次数', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 5, | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         stack: 'd', | ||||
|                         barCategoryGap:20, | ||||
|                         z: 10, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             formatter: '{b}', | ||||
|                             position: 'insideBottomRight', | ||||
|                             offset: [10, 0], | ||||
|                             fontSize: 12, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         data: this.setOptionData(), | ||||
| 
 | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .popularBar { | ||||
|     height: 100%; | ||||
|     width: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										81
									
								
								src/views/modules/monitoring/components/page1/chart4.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								src/views/modules/monitoring/components/page1/chart4.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | ||||
| <template> | ||||
|     <div class="ring"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: { | ||||
|                     text: '【' + this.data.title + '】', | ||||
|                     top: 20, | ||||
|                     x: 'center', | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 14, | ||||
|                         fontWeight: 'normal' | ||||
|                     } | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     formatter: "{b}: {c} ({d}%)", | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: this.data.title, | ||||
|                         type: 'pie', | ||||
|                         radius: ['40%', '60%'], | ||||
|                         center: ['50%', '55%'], | ||||
|                         avoidLabelOverlap: true, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'outside', | ||||
|                             fontSize: 10, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             show: true, | ||||
|                             length: 8, | ||||
|                             length2: 5, | ||||
|                             lineStyle: { | ||||
|                                 color: '#303851' | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.data.data | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart= this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
| 
 | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .ring { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										438
									
								
								src/views/modules/monitoring/components/page1/chart5.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										438
									
								
								src/views/modules/monitoring/components/page1/chart5.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,438 @@ | ||||
| <template> | ||||
|     <div class="lines"> | ||||
|         <div class="switchButton"> | ||||
|             <a :class="{'active':value==1}" @click="handleSelect(1)">月</a><a :class="{'active':value==2}" | ||||
|                                                                              @click="handleSelect(2)">日</a> | ||||
|         </div> | ||||
|         <div id="bottom_1"> | ||||
| 
 | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             value: 2, | ||||
|             xAxisData: [], | ||||
|             seriesData: [], | ||||
|             selected: {}, | ||||
|             legendData: [], | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         handleSelect(val) { | ||||
|             this.xAxisData = []; | ||||
|             this.seriesData = []; | ||||
|             this.legendData = []; | ||||
|             this.selected = {}; | ||||
|             this.value = val; | ||||
|             let curYear = new Date().getFullYear(); | ||||
|             let curMonth = new Date().getMonth(); | ||||
| 
 | ||||
|             let colorList = ['#bf232a', '#feed2c', '#2c7bfe', '#feac2c', '#ff7b7e', '#2cd9fe', '#a262f2', '#2ca8fe']; | ||||
|             if (val == 1) { | ||||
|                 let year = [curYear - 1, curYear]; | ||||
|                 for (let i = 0; i < 12; i++) { | ||||
|                     this.xAxisData.push((i + 1) + '月'); | ||||
|                 } | ||||
|                 for (let i = 0; i < year.length; i++) { | ||||
|                     this.legendData.push(year[i] + '年'); | ||||
|                     let obj = { | ||||
|                         name: year[i] + '年', | ||||
|                         type: 'line', | ||||
|                         symbol: 'circle', | ||||
|                         smooth: false, | ||||
|                         itemStyle: { | ||||
|                             color: colorList[i % 8] | ||||
|                         }, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: colorList[i % 8], | ||||
|                         }, | ||||
|                         data: [] | ||||
|                     } | ||||
|                     for (let j = 0; j < 12; j++) { | ||||
|                         obj.data.push((Math.random() * 300).toFixed(0)); | ||||
|                     } | ||||
|                     let obj1 = { | ||||
|                         name: year[i] + '年', | ||||
|                         type: 'line', | ||||
|                         symbol: 'circle', | ||||
|                         smooth: false, | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         itemStyle: { | ||||
|                             color: colorList[i % 8] | ||||
|                         }, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: colorList[i % 8], | ||||
|                         }, | ||||
|                         data: [] | ||||
|                     } | ||||
|                     for (let j = 0; j < 12; j++) { | ||||
|                         obj1.data.push((Math.random() * 300).toFixed(0)); | ||||
|                     } | ||||
|                     this.seriesData.push(obj); | ||||
|                     this.seriesData.push(obj1); | ||||
|                 } | ||||
| 
 | ||||
|             } else { | ||||
|                 let dateLength = new Date(curYear, curMonth, 0).getDate(); | ||||
|                 for (let i = 0; i < dateLength; i++) { | ||||
|                     this.xAxisData.push((i + 1) + '号'); | ||||
| 
 | ||||
|                 } | ||||
|                 for (let i = 0; i < 12; i++) { | ||||
|                     this.legendData.push((i + 1) + '月'); | ||||
|                     this.selected[(i + 1) + '月'] = false; | ||||
|                     if (i < 4) { | ||||
|                         this.selected[(i + 1) + '月'] = true; | ||||
|                     } | ||||
|                     let obj = { | ||||
|                         name: (i + 1) + '月', | ||||
|                         type: 'line', | ||||
|                         symbol: 'circle', | ||||
|                         smooth: false, | ||||
|                         itemStyle: { | ||||
|                             color: colorList[i % 8] | ||||
|                         }, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: colorList[i % 8], | ||||
|                         }, | ||||
|                         data: [] | ||||
|                     } | ||||
|                     for (let j = 0; j < dateLength; j++) { | ||||
|                         obj.data.push((Math.random() * 300).toFixed(0)); | ||||
|                     } | ||||
|                     let obj1 = { | ||||
|                         name: (i + 1) + '月', | ||||
|                         type: 'line', | ||||
|                         symbol: 'circle', | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         smooth: false, | ||||
|                         itemStyle: { | ||||
|                             color: colorList[i % 8] | ||||
|                         }, | ||||
|                         lineStyle: { | ||||
|                             width: 1, | ||||
|                             color: colorList[i % 8], | ||||
|                         }, | ||||
|                         data: [] | ||||
|                     } | ||||
|                     for (let j = 0; j < dateLength; j++) { | ||||
|                         obj1.data.push((Math.random() * 300).toFixed(0)); | ||||
|                     } | ||||
| 
 | ||||
|                     this.seriesData.push(obj); | ||||
|                     this.seriesData.push(obj1); | ||||
|                 } | ||||
| 
 | ||||
|             } | ||||
|             this.setChart() | ||||
|         }, | ||||
|         // 金钱交易分析 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: '【交易笔数分析】', | ||||
|                         textStyle: { | ||||
|                             fontSize: 12, | ||||
|                             color: '#75deef', | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '24%', | ||||
|                         left: '20%' | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '【交易金额分析】', | ||||
|                         textStyle: { | ||||
|                             fontSize: 12, | ||||
|                             color: '#75deef', | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '24%', | ||||
|                         right: '12%' | ||||
|                     }, | ||||
|                 ], | ||||
|                 grid: [ | ||||
|                     { | ||||
|                         show: false, | ||||
|                         left: '2%', | ||||
|                         top: '38%', | ||||
|                         right: '51%', | ||||
|                         bottom: 0, | ||||
|                         containLabel: true, | ||||
|                     }, | ||||
|                     { | ||||
|                         show: false, | ||||
|                         left: '51%', | ||||
|                         top: "38%", | ||||
|                         bottom: 0, | ||||
|                         right: '2%', | ||||
|                         containLabel: true, | ||||
| 
 | ||||
|                     }, | ||||
|                 ], | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: { | ||||
|                         type: 'none', | ||||
| 
 | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     formatter: (params) => { | ||||
|                         let seriesId = params.seriesId.substr(params.seriesId.length - 1, 1) | ||||
|                         if (seriesId == 0) { | ||||
|                             return params.seriesName + "/" + params.name + "<br>" + "交易笔数:" + params.value + '笔' | ||||
|                         } else { | ||||
|                             return params.seriesName + "/" + params.name + "<br>" + "交易金额:" + params.value + '元' | ||||
|                         } | ||||
| 
 | ||||
|                     }, | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     type: 'scroll', | ||||
|                     top: '10%', | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         padding: [3, 0, 0, 0], | ||||
|                         fontSize: 12 | ||||
|                     }, | ||||
|                     pageTextStyle: { | ||||
|                         color: '#75deef' | ||||
|                     }, | ||||
|                     pageIconSize: 10, | ||||
|                     pageIconColor: '#75deef', | ||||
|                     itemWidth: 12, | ||||
|                     itemHeight: 7, | ||||
|                     right: "15%", | ||||
|                     left: '15%', | ||||
|                     selected: this.selected, | ||||
|                     data: this.legendData | ||||
|                 }, | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         data: this.xAxisData, | ||||
|                         boundaryGap: false, | ||||
|                         axisLabel: { | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef', | ||||
|                             interval: 0, | ||||
|                             showMaxLabel: true, | ||||
|                             showMinLabel: true, | ||||
|                             formatter: (value, index) => { | ||||
|                                 if (this.value == 1) { | ||||
|                                     if (index % 2 == 1) { | ||||
|                                         return value | ||||
|                                     } | ||||
|                                 } else { | ||||
|                                     if ((index + 1) % 5 == 0) { | ||||
|                                         return value | ||||
|                                     } | ||||
|                                 } | ||||
|                                 if (index == 0) { | ||||
|                                     return value | ||||
|                                 } | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true, | ||||
|                             inside: true | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 1, | ||||
|                         type: 'category', | ||||
|                         data: this.xAxisData, | ||||
|                         axisLabel: { | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef', | ||||
|                             interval: 0, | ||||
|                             showMaxLabel: true, | ||||
|                             showMinLabel: true, | ||||
|                             formatter: (value, index) => { | ||||
|                                 if (this.value == 1) { | ||||
|                                     if (index % 2 == 1) { | ||||
|                                         return value | ||||
|                                     } | ||||
|                                 } else { | ||||
|                                     if ((index + 1) % 5 == 0) { | ||||
|                                         return value | ||||
|                                     } | ||||
|                                 } | ||||
|                                 if (index == 0) { | ||||
|                                     return value | ||||
|                                 } | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLine: { | ||||
| 
 | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true, | ||||
|                             inside: true | ||||
|                         } | ||||
|                     }, | ||||
| 
 | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         splitNumber: 5, | ||||
|                         axisLabel: { | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         name: '(笔)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3, | ||||
|                         } | ||||
|                     }, | ||||
| 
 | ||||
|                     { | ||||
|                         gridIndex: 1, | ||||
|                         type: 'value', | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         interval: 50, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         name: '(元)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3, | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: this.seriesData | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(document.getElementById('bottom_1')); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|             this.myChart.on('legendselectchanged', (params) => { | ||||
|                 let arr = []; | ||||
|                 for (let i in params.selected) { | ||||
|                     if (params.selected[i] == true) { | ||||
|                         arr.push(params.selected[i]) | ||||
|                     } | ||||
|                 } | ||||
|                 if (arr.length > 4) { | ||||
|                     this.$Modal.error({ | ||||
|                         content: "<p>当前最多显示4个图例</p>" | ||||
|                     }); | ||||
|                     this.myChart.dispatchAction({ | ||||
|                         type: 'legendUnSelect', | ||||
|                         // 图例名称 | ||||
|                         name: params.name | ||||
|                     }) | ||||
|                 } | ||||
| 
 | ||||
|             }); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.handleSelect(this.value); | ||||
|         // this.setChart (); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .lines { | ||||
|     height: 100%; | ||||
|     width: 100%; | ||||
| 
 | ||||
|     #bottom_1 { | ||||
|         height: 100%; | ||||
|         width: 100%; | ||||
|     } | ||||
| 
 | ||||
|     position: relative; | ||||
| 
 | ||||
|     .switchButton { | ||||
|         position: absolute; | ||||
|         z-index: 5; | ||||
|         right: 10px; | ||||
|         top: 15px; | ||||
|         border: 1px solid #028bff; | ||||
|         border-radius: 5px; | ||||
|         padding: 0; | ||||
| 
 | ||||
|         .active { | ||||
|             background: #0454a1; | ||||
|         } | ||||
| 
 | ||||
|         a { | ||||
|             display: inline-block; | ||||
|             color: #fff; | ||||
|             padding: 1px 8px; | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										119
									
								
								src/views/modules/monitoring/components/page1/chart6.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								src/views/modules/monitoring/components/page1/chart6.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| <template> | ||||
|     <div class="pieMain"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 交易支出 饼图 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: { | ||||
|                     text: '【' + this.data.title + '】', | ||||
|                     x: 'center', | ||||
|                     top: 0, | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 12, | ||||
|                         fontWeight: 'normal' | ||||
|                     } | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     formatter: "{b} : {c} ({d}%)", | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         type: 'pie', | ||||
|                         startAngle: 160, | ||||
|                         radius: [0, '30%'], | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'inside', | ||||
|                             fontSize: 10, | ||||
|                         }, | ||||
|                         center: ['50%', '60%'], | ||||
|                         data: this.data.data, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'pie', | ||||
|                         startAngle: 160, | ||||
|                         radius: ['52%', '72%'], | ||||
|                         labelLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#444b62', | ||||
| 
 | ||||
|                             }, | ||||
|                             length: 5, | ||||
|                             length2: 5, | ||||
| 
 | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             label: { | ||||
|                                 color: '#fff', | ||||
|                                 show: true, | ||||
|                             }, | ||||
|                             itemStyle: { | ||||
|                                 shadowBlur: 10, | ||||
|                                 shadowOffsetX: 0, | ||||
|                                 shadowColor: 'rgba(0, 0, 0, 0.5)' | ||||
|                             } | ||||
|                         }, | ||||
|                         label: { | ||||
|                             position: 'outside', | ||||
|                             borderRadius: 4, | ||||
|                             color: '#fff', | ||||
|                             fontSize: 10, | ||||
|                             padding: 0, | ||||
|                             backgroundColor: '#183566', | ||||
|                             formatter: "{b}{c}笔/{d}%" | ||||
|                         }, | ||||
|                         center: ['50%', '60%'], | ||||
|                         data: this.data.data1 | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if(!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
| 
 | ||||
|             this.myChart.setOption(option); | ||||
|             let obj = { | ||||
|                 type: 'highlight', | ||||
|                 name: [] | ||||
|             }; | ||||
|             for (let i = 0; i < this.data.data.length - 1; i++) { | ||||
|                 obj.name.push(this.data.data[i].name) | ||||
|             } | ||||
|             this.myChart.dispatchAction(obj); | ||||
|             this.myChart.on('mouseout', function () { | ||||
|                 this.myChart.dispatchAction(obj); | ||||
|             }); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .pieMain { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										137
									
								
								src/views/modules/monitoring/components/page1/chart7.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								src/views/modules/monitoring/components/page1/chart7.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,137 @@ | ||||
| <template> | ||||
|     <div class="behaviorBar"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Array | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: { | ||||
|                     text: '【柱图数据标题】', | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 12, | ||||
|                         fontWeight: 'normal' | ||||
|                     }, | ||||
|                     top: '5%', | ||||
|                     left: '31%' | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     formatter: "{b}:{c1}", | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 grid: | ||||
|                     { | ||||
|                         top: '25%', | ||||
|                         left: '1%', | ||||
|                         right: '4%', | ||||
|                         bottom: '4%', | ||||
|                         containLabel: true, | ||||
| 
 | ||||
|                     }, | ||||
|                 xAxis: | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             showMinLabel: true | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58', | ||||
|                                 width: 2 | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: {show: false}, | ||||
| 
 | ||||
|                         data: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8'] | ||||
|                     }, | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         axisLabel: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             showMaxLabel: false, | ||||
|                         }, | ||||
|                         name: '(个)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3 | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
| 
 | ||||
|                         splitLine: {show: false} | ||||
| 
 | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '辅助', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 12, | ||||
|                         itemStyle: { | ||||
|                             color: "#252448", | ||||
|                         }, | ||||
|                         data: [300, 300, 300, 300, 300, 300, 300, 300] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '数据', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 12, | ||||
|                         barGap: '-100%', | ||||
| 
 | ||||
|                         data: this.data | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .behaviorBar { | ||||
|     height: 45%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										128
									
								
								src/views/modules/monitoring/components/page1/chart8.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								src/views/modules/monitoring/components/page1/chart8.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,128 @@ | ||||
| <template> | ||||
|     <div class="funnel"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 手机安全分析 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     formatter: "{b} : {c}", | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
| 
 | ||||
|                 legend: { | ||||
|                     top: '25%', | ||||
|                     right: "7%", | ||||
|                     orient: "vertical", | ||||
|                     itemWidth: 0, | ||||
|                     itemGap: 27, | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 14 | ||||
|                     }, | ||||
|                     data: ['数据1', '数据2', '数据3', '数据4', '数据5'] | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '预期', | ||||
|                         type: 'funnel', | ||||
|                         left: '6%', | ||||
|                         width: '60%', | ||||
|                         height: '75%', | ||||
|                         label: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             borderWidth: 0, | ||||
|                             opacity: .7, | ||||
|                             color: function (params) { | ||||
| 
 | ||||
|                                 var colorList = [ | ||||
|                                     '#2c7afc', '#bd2229', '#a262f2', '#fe672c', '#27fcfe' | ||||
|                                 ]; | ||||
|                                 return colorList[params.dataIndex]; | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             {value: 100, name: '数据1'}, | ||||
|                             {value: 80, name: '数据2'}, | ||||
|                             {value: 60, name: '数据3'}, | ||||
|                             {value: 40, name: '数据4'}, | ||||
|                             {value: 20, name: '数据5'} | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '实际', | ||||
|                         type: 'funnel', | ||||
|                         left: '6%', | ||||
|                         height: '75%', | ||||
|                         width: '60%', | ||||
|                         maxSize: '60%', | ||||
|                         z: 3, | ||||
|                         label: { | ||||
|                             position: 'inside', | ||||
|                             formatter: '{c}个', | ||||
|                             color: '#fff' | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             label: { | ||||
|                                 position: 'inside', | ||||
|                             } | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             opacity: .5, | ||||
|                             borderWidth: 0, | ||||
|                             color: function (params) { | ||||
|                                 var colorList = [ | ||||
|                                     'rgb(44,123,254)', 'rgb(194,35,42)', 'rgb(162,98,242)', 'rgb(254,103,44)', 'rgb(44,252,254)' | ||||
|                                 ]; | ||||
|                                 return colorList[params.dataIndex]; | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                           {value: 100, name: '数据1'}, | ||||
|                           {value: 80, name: '数据2'}, | ||||
|                           {value: 60, name: '数据3'}, | ||||
|                           {value: 40, name: '数据4'}, | ||||
|                           {value: 20, name: '数据5'} | ||||
|                         ] | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
| 
 | ||||
|             if(!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .funnel { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										438
									
								
								src/views/modules/monitoring/components/page1/chart9.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										438
									
								
								src/views/modules/monitoring/components/page1/chart9.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,438 @@ | ||||
| <template> | ||||
|     <div style="height:100%;"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null, | ||||
|             seriesData: [ | ||||
|               {name: '分类1', value: 380, data: [3600, 7200, 4800, 9000, 5200, 1800, 2400, 600]}, | ||||
|               {name: '分类2', value: 300, data: [2800, 5800, 3600, 7000, 6400, 3600, 5400, 4600]}, | ||||
|               {name: '分类3', value: 240, data: [2600, 3200, 5800, 2000, 3200, 5800, 7400, 2600]}, | ||||
|               {name: '分类4', value: 200, data: [1600, 4200, 2800, 1000, 7200, 5800, 3400, 5600]}, | ||||
|               {name: '分类5', value: 150, data: [5600, 6200, 6800, 3000, 1200, 5800, 4400, 2500]}, | ||||
|               {name: '分类6', value: 100, data: [6600, 8200, 5800, 4000, 2200, 3800, 7400, 3600]}, | ||||
|               {name: '分类7', value: 100, data: [7600, 1200, 3800, 7000, 1200, 3800, 5400, 2600]}, | ||||
|               {name: '分类8', value: 50, data: [6600, 1200, 2800, 3000, 6200, 5800, 4400, 1600]} | ||||
|             ] | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setOptionData() { | ||||
|             let colorList = ['#2c7bfe', '#c2232a', '#feed2c', '#a262f2', '#62d5f2', '#fe672c', '#2c7bfe', '#69f262']; | ||||
|             let arr = []; | ||||
|             for (let i = 0; i < this.seriesData.length; i++) { | ||||
|                 let values = [0, 0, 0, 0, 0, 0, 0, 0]; | ||||
|                 values.splice(i, 1, this.seriesData[i].value); | ||||
|                 let obj = { | ||||
|                     name: this.seriesData[i].name, | ||||
|                     type: 'bar', | ||||
|                     z: 3, | ||||
|                     barWidth: 10, | ||||
|                     barGap: '-100%', | ||||
|                     itemStyle: { | ||||
|                         color: colorList[i] | ||||
|                     }, | ||||
|                     data: values | ||||
|                 } | ||||
| 
 | ||||
|                 arr.push(obj); | ||||
|             } | ||||
|             for (let i = 0; i < this.seriesData.length; i++) { | ||||
|                 let obj = { | ||||
|                     type: 'line', | ||||
|                     name: this.seriesData[i].name, | ||||
|                     symbol: 'circle', | ||||
|                     smooth: true, | ||||
|                     symbolSize: 4, | ||||
|                     xAxisIndex: 2, | ||||
|                     yAxisIndex: 3, | ||||
|                     data: this.seriesData[i].data, | ||||
|                     lineStyle: { | ||||
|                         width: 1 | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: colorList[i] | ||||
|                     } | ||||
|                 }; | ||||
|                 let obj1 = { | ||||
|                     type: 'line', | ||||
|                     name: this.seriesData[i].name, | ||||
|                     symbol: 'circle', | ||||
|                     symbolSize: 4, | ||||
|                     smooth: true, | ||||
|                     xAxisIndex: 3, | ||||
|                     yAxisIndex: 5, | ||||
|                     data: this.seriesData[i].data, | ||||
|                     lineStyle: { | ||||
|                         width: 1 | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: colorList[i] | ||||
|                     } | ||||
|                 }; | ||||
| 
 | ||||
|                 arr.push(obj); | ||||
|                 arr.push(obj1); | ||||
|             } | ||||
|             let arr1 = [ | ||||
|                 { | ||||
|                     name: '辅助', | ||||
|                     type: 'bar', | ||||
|                     barWidth: 10, | ||||
|                     barGap: '-100%', | ||||
|                     itemStyle: { | ||||
|                         color: '#252448' | ||||
|                     }, | ||||
|                     data: [500, 500, 500, 500, 500, 500, 500, 500] | ||||
|                 }, | ||||
|                 { | ||||
|                     name: '辅助', | ||||
|                     xAxisIndex: 1, | ||||
|                     yAxisIndex: 1, | ||||
|                     type: 'bar', | ||||
|                     barWidth: 10, | ||||
|                     barGap: '-100%', | ||||
|                     itemStyle: { | ||||
|                         color: '#252448' | ||||
|                     }, | ||||
|                     data: [500, 500, 500, 500, 500, 500, 500] | ||||
|                 }, | ||||
|                 { | ||||
|                     xAxisIndex: 1, | ||||
|                     yAxisIndex: 1, | ||||
|                     type: 'bar', | ||||
|                     z: 3, | ||||
|                     barWidth: 10, | ||||
|                     itemStyle: { | ||||
|                         color: '#2c7bfe' | ||||
|                     }, | ||||
|                     data: [390, 330, 280, 220, 160, 100, 40] | ||||
|                 }, | ||||
|             ] | ||||
|             arr = arr.concat(arr1); | ||||
| 
 | ||||
|             return arr; | ||||
|         }, | ||||
|         /** | ||||
|          * 时间秒数格式化 | ||||
|          * @param s 时间戳(单位:秒) | ||||
|          * @returns {*} 格式化后的时分秒 | ||||
|          */ | ||||
|         formateData(s) { | ||||
|             var t; | ||||
|             if (s > -1) { | ||||
|                 var hour = Math.floor(s / 3600); | ||||
|                 var min = Math.floor(s / 60) % 60; | ||||
|                 var sec = s % 60; | ||||
|                 if (hour != 0) { | ||||
|                     t = hour + "时"; | ||||
|                 } else { | ||||
|                     t = ""; | ||||
|                 } | ||||
|                 t += min + "分"; | ||||
|                 t += sec + "秒"; | ||||
|             } | ||||
|             return t; | ||||
|         }, | ||||
|         // 应用使用行为 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     formatter: (data) => { | ||||
|                         if (data.componentSubType == 'bar' && data.seriesName != '辅助') { | ||||
|                             return data.name + ":" + data.value | ||||
|                         } else if (data.componentSubType == 'line') { | ||||
|                             return data.name + "<br>" + data.seriesName + ":" + this.formateData(data.value) | ||||
|                         } | ||||
|                     } | ||||
|                 }, | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: '【类型统计】', | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '12%', | ||||
|                         left: '15%' | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '【时长TOP10】', | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '12%', | ||||
|                         right: '14%' | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '【使用时长日分布】', | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '53%', | ||||
|                         left: '14%' | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '【使用时长时段分布】', | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal' | ||||
|                         }, | ||||
|                         top: '53%', | ||||
|                         right: '12%' | ||||
|                     } | ||||
|                 ], | ||||
|                 legend: [ | ||||
|                     { | ||||
|                         top: '6%', | ||||
|                         left: 'center', | ||||
|                         itemWidth: 7, | ||||
|                         itemHeight: 7, | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                         }, | ||||
|                         z: 2, | ||||
|                         data: this.seriesData.map(item=>({name: item.name, icon: 'circle'})) | ||||
|                     } | ||||
|                 ], | ||||
|                 grid: [ | ||||
|                     { | ||||
|                         left: '5%', | ||||
|                         top: '20%', | ||||
|                         right: '52%', | ||||
|                         bottom: '53%', | ||||
|                         containLabel: false | ||||
|                     }, | ||||
|                     { | ||||
|                         left: '52%', | ||||
|                         top: "20%", | ||||
|                         right: '3%', | ||||
|                         bottom: "53%", | ||||
|                         containLabel: false | ||||
|                     }, | ||||
|                     { | ||||
|                         left: '8%', | ||||
|                         top: '62%', | ||||
|                         right: '52%', | ||||
|                         bottom: '8%', | ||||
|                         containLabel: false | ||||
|                     }, | ||||
|                     { | ||||
|                         left: '55%', | ||||
|                         top: "62%", | ||||
|                         right: '5%', | ||||
|                         bottom: "8%", | ||||
|                         containLabel: false | ||||
|                     }, | ||||
|                 ], | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         data: this.seriesData.map(item => item.name), | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         gridIndex: 1, | ||||
|                         data: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7'], | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         gridIndex: 2, | ||||
|                         boundaryGap: false, | ||||
|                         data: ['8.1', '8.2', '8.3', '8.4', '8.5', '8.6', '8.7'], | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         gridIndex: 3, | ||||
|                         boundaryGap: false, | ||||
|                         data: ['0.00', '4.00', '8.00', '12.00', '16.00', '20.00', '24.00'], | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef' | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         gridIndex: 1, | ||||
|                         axisLabel: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         gridIndex: 2, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef', | ||||
|                             showMaxLabel: false | ||||
|                         }, | ||||
|                         name: '(小时)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 4, 0, 0] | ||||
|                         }, | ||||
|                         min: 0, | ||||
|                         max: 6, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         gridIndex: 2, | ||||
|                         axisLabel: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         gridIndex: 3, | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             fontSize: 9, | ||||
|                             color: '#75deef', | ||||
|                             showMaxLabel: false | ||||
|                         }, | ||||
|                         name: '(小时)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 4, 0, 0] | ||||
|                         }, | ||||
|                         min: 0, | ||||
|                         max: 6, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
| 
 | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#1a3c58' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: true | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         gridIndex: 3, | ||||
|                         axisLabel: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: this.setOptionData() | ||||
|             }; | ||||
|             if(!this.myChart) this.myChart =  this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										623
									
								
								src/views/modules/monitoring/components/page1/worldMap.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										623
									
								
								src/views/modules/monitoring/components/page1/worldMap.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,623 @@ | ||||
| <template> | ||||
|     <div class="worldMap"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import "@/lib/world.js" | ||||
| 
 | ||||
| export default { | ||||
|     name: 'worldMap', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 通讯行为分析 | ||||
|         setChart() { | ||||
|             var geoCoordMap = { | ||||
|                 "海门": [121.15, 31.89], | ||||
|                 "鄂尔多斯": [109.781327, 39.608266], | ||||
|                 "招远": [120.38, 37.35], | ||||
|                 "舟山": [122.207216, 29.985295], | ||||
|                 "齐齐哈尔": [123.97, 47.33], | ||||
|                 "盐城": [120.13, 33.38], | ||||
|                 "赤峰": [118.87, 42.28], | ||||
|                 "青岛": [120.33, 36.07], | ||||
|                 "乳山": [121.52, 36.89], | ||||
|                 "金昌": [102.188043, 38.520089], | ||||
|                 "泉州": [118.58, 24.93], | ||||
|                 "莱西": [120.53, 36.86], | ||||
|                 "日照": [119.46, 35.42], | ||||
|                 "胶南": [119.97, 35.88], | ||||
|                 "南通": [121.05, 32.08], | ||||
|                 "拉萨": [91.11, 29.97], | ||||
|                 "云浮": [112.02, 22.93], | ||||
|                 "梅州": [116.1, 24.55], | ||||
|                 "文登": [122.05, 37.2], | ||||
|                 "上海": [121.48, 31.22], | ||||
|                 "攀枝花": [101.718637, 26.582347], | ||||
|                 "威海": [122.1, 37.5], | ||||
|                 "承德": [117.93, 40.97], | ||||
|                 "厦门": [118.1, 24.46], | ||||
|                 "汕尾": [115.375279, 22.786211], | ||||
|                 "潮州": [116.63, 23.68], | ||||
|                 "丹东": [124.37, 40.13], | ||||
|                 "太仓": [121.1, 31.45], | ||||
|                 "曲靖": [103.79, 25.51], | ||||
|                 "烟台": [121.39, 37.52], | ||||
|                 "福州": [119.3, 26.08], | ||||
|                 "瓦房店": [121.979603, 39.627114], | ||||
|                 "即墨": [120.45, 36.38], | ||||
|                 "抚顺": [123.97, 41.97], | ||||
|                 "玉溪": [102.52, 24.35], | ||||
|                 "张家口": [114.87, 40.82], | ||||
|                 "阳泉": [113.57, 37.85], | ||||
|                 "莱州": [119.942327, 37.177017], | ||||
|                 "湖州": [120.1, 30.86], | ||||
|                 "汕头": [116.69, 23.39], | ||||
|                 "昆山": [120.95, 31.39], | ||||
|                 "宁波": [121.56, 29.86], | ||||
|                 "湛江": [110.359377, 21.270708], | ||||
|                 "揭阳": [116.35, 23.55], | ||||
|                 "荣成": [122.41, 37.16], | ||||
|                 "连云港": [119.16, 34.59], | ||||
|                 "葫芦岛": [120.836932, 40.711052], | ||||
|                 "常熟": [120.74, 31.64], | ||||
|                 "东莞": [113.75, 23.04], | ||||
|                 "河源": [114.68, 23.73], | ||||
|                 "淮安": [119.15, 33.5], | ||||
|                 "泰州": [119.9, 32.49], | ||||
|                 "南宁": [108.33, 22.84], | ||||
|                 "营口": [122.18, 40.65], | ||||
|                 "惠州": [114.4, 23.09], | ||||
|                 "江阴": [120.26, 31.91], | ||||
|                 "蓬莱": [120.75, 37.8], | ||||
|                 "韶关": [113.62, 24.84], | ||||
|                 "嘉峪关": [98.289152, 39.77313], | ||||
|                 "广州": [113.23, 23.16], | ||||
|                 "延安": [109.47, 36.6], | ||||
|                 "太原": [112.53, 37.87], | ||||
|                 "清远": [113.01, 23.7], | ||||
|                 "中山": [113.38, 22.52], | ||||
|                 "昆明": [102.73, 25.04], | ||||
|                 "寿光": [118.73, 36.86], | ||||
|                 "盘锦": [122.070714, 41.119997], | ||||
|                 "长治": [113.08, 36.18], | ||||
|                 "深圳": [114.07, 22.62], | ||||
|                 "珠海": [113.52, 22.3], | ||||
|                 "宿迁": [118.3, 33.96], | ||||
|                 "咸阳": [108.72, 34.36], | ||||
|                 "铜川": [109.11, 35.09], | ||||
|                 "平度": [119.97, 36.77], | ||||
|                 "佛山": [113.11, 23.05], | ||||
|                 "海口": [110.35, 20.02], | ||||
|                 "江门": [113.06, 22.61], | ||||
|                 "章丘": [117.53, 36.72], | ||||
|                 "肇庆": [112.44, 23.05], | ||||
|                 "大连": [121.62, 38.92], | ||||
|                 "临汾": [111.5, 36.08], | ||||
|                 "吴江": [120.63, 31.16], | ||||
|                 "石嘴山": [106.39, 39.04], | ||||
|                 "沈阳": [123.38, 41.8], | ||||
|                 "苏州": [120.62, 31.32], | ||||
|                 "茂名": [110.88, 21.68], | ||||
|                 "嘉兴": [120.76, 30.77], | ||||
|                 "长春": [125.35, 43.88], | ||||
|                 "胶州": [120.03336, 36.264622], | ||||
|                 "银川": [106.27, 38.47], | ||||
|                 "张家港": [120.555821, 31.875428], | ||||
|                 "三门峡": [111.19, 34.76], | ||||
|                 "锦州": [121.15, 41.13], | ||||
|                 "南昌": [115.89, 28.68], | ||||
|                 "柳州": [109.4, 24.33], | ||||
|                 "三亚": [109.511909, 18.252847], | ||||
|                 "自贡": [104.778442, 29.33903], | ||||
|                 "吉林": [126.57, 43.87], | ||||
|                 "阳江": [111.95, 21.85], | ||||
|                 "泸州": [105.39, 28.91], | ||||
|                 "西宁": [101.74, 36.56], | ||||
|                 "宜宾": [104.56, 29.77], | ||||
|                 "呼和浩特": [111.65, 40.82], | ||||
|                 "成都": [104.06, 30.67], | ||||
|                 "大同": [113.3, 40.12], | ||||
|                 "镇江": [119.44, 32.2], | ||||
|                 "桂林": [110.28, 25.29], | ||||
|                 "张家界": [110.479191, 29.117096], | ||||
|                 "宜兴": [119.82, 31.36], | ||||
|                 "北海": [109.12, 21.49], | ||||
|                 "西安": [108.95, 34.27], | ||||
|                 "金坛": [119.56, 31.74], | ||||
|                 "东营": [118.49, 37.46], | ||||
|                 "牡丹江": [129.58, 44.6], | ||||
|                 "遵义": [106.9, 27.7], | ||||
|                 "绍兴": [120.58, 30.01], | ||||
|                 "扬州": [119.42, 32.39], | ||||
|                 "常州": [119.95, 31.79], | ||||
|                 "潍坊": [119.1, 36.62], | ||||
|                 "重庆": [106.54, 29.59], | ||||
|                 "台州": [121.420757, 28.656386], | ||||
|                 "南京": [118.78, 32.04], | ||||
|                 "滨州": [118.03, 37.36], | ||||
|                 "贵阳": [106.71, 26.57], | ||||
|                 "无锡": [120.29, 31.59], | ||||
|                 "本溪": [123.73, 41.3], | ||||
|                 "克拉玛依": [84.77, 45.59], | ||||
|                 "渭南": [109.5, 34.52], | ||||
|                 "马鞍山": [118.48, 31.56], | ||||
|                 "宝鸡": [107.15, 34.38], | ||||
|                 "焦作": [113.21, 35.24], | ||||
|                 "句容": [119.16, 31.95], | ||||
|                 "北京": [116.46, 39.92], | ||||
|                 "徐州": [117.2, 34.26], | ||||
|                 "衡水": [115.72, 37.72], | ||||
|                 "包头": [110, 40.58], | ||||
|                 "绵阳": [104.73, 31.48], | ||||
|                 "乌鲁木齐": [87.68, 43.77], | ||||
|                 "枣庄": [117.57, 34.86], | ||||
|                 "杭州": [120.19, 30.26], | ||||
|                 "淄博": [118.05, 36.78], | ||||
|                 "鞍山": [122.85, 41.12], | ||||
|                 "溧阳": [119.48, 31.43], | ||||
|                 "库尔勒": [86.06, 41.68], | ||||
|                 "安阳": [114.35, 36.1], | ||||
|                 "开封": [114.35, 34.79], | ||||
|                 "济南": [117, 36.65], | ||||
|                 "德阳": [104.37, 31.13], | ||||
|                 "温州": [120.65, 28.01], | ||||
|                 "九江": [115.97, 29.71], | ||||
|                 "邯郸": [114.47, 36.6], | ||||
|                 "临安": [119.72, 30.23], | ||||
|                 "兰州": [103.73, 36.03], | ||||
|                 "沧州": [116.83, 38.33], | ||||
|                 "临沂": [118.35, 35.05], | ||||
|                 "南充": [106.110698, 30.837793], | ||||
|                 "天津": [117.2, 39.13], | ||||
|                 "富阳": [119.95, 30.07], | ||||
|                 "泰安": [117.13, 36.18], | ||||
|                 "诸暨": [120.23, 29.71], | ||||
|                 "郑州": [113.65, 34.76], | ||||
|                 "哈尔滨": [126.63, 45.75], | ||||
|                 "聊城": [115.97, 36.45], | ||||
|                 "芜湖": [118.38, 31.33], | ||||
|                 "唐山": [118.02, 39.63], | ||||
|                 "平顶山": [113.29, 33.75], | ||||
|                 "邢台": [114.48, 37.05], | ||||
|                 "德州": [116.29, 37.45], | ||||
|                 "济宁": [116.59, 35.38], | ||||
|                 "荆州": [112.239741, 30.335165], | ||||
|                 "宜昌": [111.3, 30.7], | ||||
|                 "义乌": [120.06, 29.32], | ||||
|                 "丽水": [119.92, 28.45], | ||||
|                 "洛阳": [112.44, 34.7], | ||||
|                 "秦皇岛": [119.57, 39.95], | ||||
|                 "株洲": [113.16, 27.83], | ||||
|                 "石家庄": [114.48, 38.03], | ||||
|                 "莱芜": [117.67, 36.19], | ||||
|                 "常德": [111.69, 29.05], | ||||
|                 "保定": [115.48, 38.85], | ||||
|                 "湘潭": [112.91, 27.87], | ||||
|                 "金华": [119.64, 29.12], | ||||
|                 "岳阳": [113.09, 29.37], | ||||
|                 "长沙": [113, 28.21], | ||||
|                 "衢州": [118.88, 28.97], | ||||
|                 "廊坊": [116.7, 39.53], | ||||
|                 "菏泽": [115.480656, 35.23375], | ||||
|                 "合肥": [117.27, 31.86], | ||||
|                 "武汉": [114.31, 30.52], | ||||
|                 "大庆": [125.03, 46.58], | ||||
|                 '阿富汗': [67.709953, 33.93911], | ||||
|                 '安哥拉': [17.873887, -11.202692], | ||||
|                 '阿尔巴尼亚': [20.168331, 41.153332], | ||||
|                 '阿联酋': [53.847818, 23.424076], | ||||
|                 '阿根廷': [-63.61667199999999, -38.416097], | ||||
|                 '亚美尼亚': [45.038189, 40.069099], | ||||
|                 '法属南半球和南极领地': [69.348557, -49.280366], | ||||
|                 '澳大利亚': [133.775136, -25.274398], | ||||
|                 '奥地利': [14.550072, 47.516231], | ||||
|                 '阿塞拜疆': [47.576927, 40.143105], | ||||
|                 '布隆迪': [29.918886, -3.373056], | ||||
|                 '比利时': [4.469936, 50.503887], | ||||
|                 '贝宁': [2.315834, 9.30769], | ||||
|                 '布基纳法索': [-1.561593, 12.238333], | ||||
|                 '孟加拉国': [90.356331, 23.684994], | ||||
|                 '保加利亚': [25.48583, 42.733883], | ||||
|                 '巴哈马': [-77.39627999999999, 25.03428], | ||||
|                 '波斯尼亚和黑塞哥维那': [17.679076, 43.915886], | ||||
|                 '白俄罗斯': [27.953389, 53.709807], | ||||
|                 '伯利兹': [-88.49765, 17.189877], | ||||
|                 '百慕大': [-64.7505, 32.3078], | ||||
|                 '玻利维亚': [-63.58865299999999, -16.290154], | ||||
|                 '巴西': [-51.92528, -14.235004], | ||||
|                 '文莱': [114.727669, 4.535277], | ||||
|                 '不丹': [90.433601, 27.514162], | ||||
|                 '博茨瓦纳': [24.684866, -22.328474], | ||||
|                 '中非共和国': [20.939444, 6.611110999999999], | ||||
|                 '加拿大': [-106.346771, 56.130366], | ||||
|                 '瑞士': [8.227511999999999, 46.818188], | ||||
|                 '智利': [-71.542969, -35.675147], | ||||
|                 '中国': [104.195397, 35.86166], | ||||
|                 '象牙海岸': [-5.547079999999999, 7.539988999999999], | ||||
|                 '喀麦隆': [12.354722, 7.369721999999999], | ||||
|                 '刚果民主共和国': [21.758664, -4.038333], | ||||
|                 '刚果共和国': [15.827659, -0.228021], | ||||
|                 '哥伦比亚': [-74.297333, 4.570868], | ||||
|                 '哥斯达黎加': [-83.753428, 9.748916999999999], | ||||
|                 '古巴': [-77.781167, 21.521757], | ||||
|                 '北塞浦路斯': [33.429859, 35.126413], | ||||
|                 '塞浦路斯': [33.429859, 35.126413], | ||||
|                 '捷克共和国': [15.472962, 49.81749199999999], | ||||
|                 '德国': [10.451526, 51.165691], | ||||
|                 '吉布提': [42.590275, 11.825138], | ||||
|                 '丹麦': [9.501785, 56.26392], | ||||
|                 '多明尼加共和国': [-70.162651, 18.735693], | ||||
|                 '阿尔及利亚': [1.659626, 28.033886], | ||||
|                 '厄瓜多尔': [-78.18340599999999, -1.831239], | ||||
|                 '埃及': [30.802498, 26.820553], | ||||
|                 '厄立特里亚': [39.782334, 15.179384], | ||||
|                 '西班牙': [-3.74922, 40.46366700000001], | ||||
|                 '爱沙尼亚': [25.013607, 58.595272], | ||||
|                 '埃塞俄比亚': [40.489673, 9.145000000000001], | ||||
|                 '芬兰': [25.748151, 61.92410999999999], | ||||
|                 '斐': [178.065032, -17.713371], | ||||
|                 '福克兰群岛': [-59.523613, -51.796253], | ||||
|                 '法国': [2.213749, 46.227638], | ||||
|                 '加蓬': [11.609444, -0.803689], | ||||
|                 '英国': [-3.435973, 55.378051], | ||||
|                 '格鲁吉亚': [-82.9000751, 32.1656221], | ||||
|                 '加纳': [-1.023194, 7.946527], | ||||
|                 '几内亚': [-9.696645, 9.945587], | ||||
|                 '冈比亚': [-15.310139, 13.443182], | ||||
|                 '几内亚比绍': [-15.180413, 11.803749], | ||||
|                 '赤道几内亚': [10.267895, 1.650801], | ||||
|                 '希腊': [21.824312, 39.074208], | ||||
|                 '格陵兰': [-42.604303, 71.706936], | ||||
|                 '危地马拉': [-90.23075899999999, 15.783471], | ||||
|                 '法属圭亚那': [-53.125782, 3.933889], | ||||
|                 '圭亚那': [-58.93018, 4.860416], | ||||
|                 '洪都拉斯': [-86.241905, 15.199999], | ||||
|                 '克罗地亚': [15.2, 45.1], | ||||
|                 '海地': [-72.285215, 18.971187], | ||||
|                 '匈牙利': [19.503304, 47.162494], | ||||
|                 '印尼': [113.921327, -0.789275], | ||||
|                 '印度': [78.96288, 20.593684], | ||||
|                 '爱尔兰': [-8.24389, 53.41291], | ||||
|                 '伊朗': [53.688046, 32.427908], | ||||
|                 '伊拉克': [43.679291, 33.223191], | ||||
|                 '冰岛': [-19.020835, 64.963051], | ||||
|                 '以色列': [34.851612, 31.046051], | ||||
|                 '意大利': [12.56738, 41.87194], | ||||
|                 '牙买加': [-77.297508, 18.109581], | ||||
|                 '约旦': [36.238414, 30.585164], | ||||
|                 '日本': [138.252924, 36.204824], | ||||
|                 '哈萨克斯坦': [66.923684, 48.019573], | ||||
|                 '肯尼亚': [37.906193, -0.023559], | ||||
|                 '吉尔吉斯斯坦': [74.766098, 41.20438], | ||||
|                 '柬埔寨': [104.990963, 12.565679], | ||||
|                 '韩国': [127.766922, 35.907757], | ||||
|                 '科索沃': [20.902977, 42.6026359], | ||||
|                 '科威特': [47.481766, 29.31166], | ||||
|                 '老挝': [102.495496, 19.85627], | ||||
|                 '黎巴嫩': [35.862285, 33.854721], | ||||
|                 '利比里亚': [-9.429499000000002, 6.428055], | ||||
|                 '利比亚': [17.228331, 26.3351], | ||||
|                 '斯里兰卡': [80.77179699999999, 7.873053999999999], | ||||
|                 '莱索托': [28.233608, -29.609988], | ||||
|                 '立陶宛': [23.881275, 55.169438], | ||||
|                 '卢森堡': [6.129582999999999, 49.815273], | ||||
|                 '拉脱维亚': [24.603189, 56.879635], | ||||
|                 '摩洛哥': [-7.092619999999999, 31.791702], | ||||
|                 '摩尔多瓦': [28.369885, 47.411631], | ||||
|                 '马达加斯加': [46.869107, -18.766947], | ||||
|                 '墨西哥': [-102.552784, 23.634501], | ||||
|                 '马其顿': [21.745275, 41.608635], | ||||
|                 '马里': [-3.996166, 17.570692], | ||||
|                 '缅甸': [95.956223, 21.913965], | ||||
|                 '黑山': [19.37439, 42.708678], | ||||
|                 '蒙古': [103.846656, 46.862496], | ||||
|                 '莫桑比克': [35.529562, -18.665695], | ||||
|                 '毛里塔尼亚': [-10.940835, 21.00789], | ||||
|                 '马拉维': [34.301525, -13.254308], | ||||
|                 '马来西亚': [101.975766, 4.210484], | ||||
|                 '纳米比亚': [18.49041, -22.95764], | ||||
|                 '新喀里多尼亚': [165.618042, -20.904305], | ||||
|                 '尼日尔': [8.081666, 17.607789], | ||||
|                 '尼日利亚': [8.675277, 9.081999], | ||||
|                 '尼加拉瓜': [-85.207229, 12.865416], | ||||
|                 '荷兰': [5.291265999999999, 52.132633], | ||||
|                 '挪威': [8.468945999999999, 60.47202399999999], | ||||
|                 '尼泊尔': [84.12400799999999, 28.394857], | ||||
|                 '新西兰': [174.885971, -40.900557], | ||||
|                 '阿曼': [55.923255, 21.512583], | ||||
|                 '巴基斯坦': [69.34511599999999, 30.375321], | ||||
|                 '巴拿马': [-80.782127, 8.537981], | ||||
|                 '秘鲁': [-75.015152, -9.189967], | ||||
|                 '菲律宾': [121.774017, 12.879721], | ||||
|                 '巴布亚新几内亚': [143.95555, -6.314992999999999], | ||||
|                 '波兰': [19.145136, 51.919438], | ||||
|                 '波多黎各': [-66.590149, 18.220833], | ||||
|                 '北朝鲜': [127.510093, 40.339852], | ||||
|                 '葡萄牙': [-8.224454, 39.39987199999999], | ||||
|                 '巴拉圭': [-58.443832, -23.442503], | ||||
|                 '卡塔尔': [51.183884, 25.354826], | ||||
|                 '罗马尼亚': [24.96676, 45.943161], | ||||
|                 '俄罗斯': [105.318756, 61.52401], | ||||
|                 '卢旺达': [29.873888, -1.940278], | ||||
|                 '西撒哈拉': [-12.885834, 24.215527], | ||||
|                 '沙特阿拉伯': [45.079162, 23.885942], | ||||
|                 '苏丹': [30.217636, 12.862807], | ||||
|                 '南苏丹': [31.3069788, 6.876991899999999], | ||||
|                 '塞内加尔': [-14.452362, 14.497401], | ||||
|                 '所罗门群岛': [160.156194, -9.64571], | ||||
|                 '塞拉利昂': [-11.779889, 8.460555], | ||||
|                 '萨尔瓦多': [-88.89653, 13.794185], | ||||
|                 '索马里兰': [46.8252838, 9.411743399999999], | ||||
|                 '索马里': [46.199616, 5.152149], | ||||
|                 '塞尔维亚共和国': [21.005859, 44.016521], | ||||
|                 '苏里南': [-56.027783, 3.919305], | ||||
|                 '斯洛伐克': [19.699024, 48.669026], | ||||
|                 '斯洛文尼亚': [14.995463, 46.151241], | ||||
|                 '瑞典': [18.643501, 60.12816100000001], | ||||
|                 '斯威士兰': [31.465866, -26.522503], | ||||
|                 '叙利亚': [38.996815, 34.80207499999999], | ||||
|                 '乍得': [18.732207, 15.454166], | ||||
|                 '多哥': [0.824782, 8.619543], | ||||
|                 '泰国': [100.992541, 15.870032], | ||||
|                 '塔吉克斯坦': [71.276093, 38.861034], | ||||
|                 '土库曼斯坦': [59.556278, 38.969719], | ||||
|                 '东帝汶': [125.727539, -8.874217], | ||||
|                 '特里尼达和多巴哥': [-61.222503, 10.691803], | ||||
|                 '突尼斯': [9.537499, 33.886917], | ||||
|                 '土耳其': [35.243322, 38.963745], | ||||
|                 '坦桑尼亚联合共和国': [34.888822, -6.369028], | ||||
|                 '乌干达': [32.290275, 1.373333], | ||||
|                 '乌克兰': [31.16558, 48.379433], | ||||
|                 '乌拉圭': [-55.765835, -32.522779], | ||||
|                 '美国': [-95.712891, 37.09024], | ||||
|                 '乌兹别克斯坦': [64.585262, 41.377491], | ||||
|                 '委内瑞拉': [-66.58973, 6.42375], | ||||
|                 '越南': [108.277199, 14.058324], | ||||
|                 '瓦努阿图': [166.959158, -15.376706], | ||||
|                 '西岸': [35.3027226, 31.9465703], | ||||
|                 '也门': [48.516388, 15.552727], | ||||
|                 '南非': [22.937506, -30.559482], | ||||
|                 '赞比亚': [27.849332, -13.133897], | ||||
|                 '津巴布韦': [29.154857, -19.015438] | ||||
|             }; | ||||
|             var BJData = [ | ||||
|                 [{name: '北京'}, {name: '阿根廷', value: 95}], | ||||
|                 [{name: '北京'}, {name: '美国', value: 90}], | ||||
|                 [{name: '北京'}, {name: '南昌', value: 80}], | ||||
|             ]; | ||||
|             var convertData = function (data) { | ||||
|                 var res = []; | ||||
|                 for (var i = 0; i < data.length; i++) { | ||||
|                     var dataItem = data[i]; | ||||
|                     var fromCoord = geoCoordMap[dataItem[0].name]; | ||||
|                     var toCoord = geoCoordMap[dataItem[1].name]; | ||||
|                     if (fromCoord && toCoord) { | ||||
|                         res.push({ | ||||
|                             fromName: dataItem[0].name, | ||||
|                             toName: dataItem[1].name, | ||||
|                             coords: [fromCoord, toCoord] | ||||
|                         }); | ||||
|                     } | ||||
|                 } | ||||
|                 return res; | ||||
|             }; | ||||
| 
 | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'none'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     formatter: function (data) { | ||||
|                         if (data.componentSubType === 'effectScatter') { | ||||
|                             return data.data.name + ":" + data.data.value[2] + "次" | ||||
| 
 | ||||
|                         } else { | ||||
|                             console.log(data); | ||||
| 
 | ||||
|                         } | ||||
| 
 | ||||
| 
 | ||||
|                     } | ||||
|                 }, | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: '通话走势', | ||||
|                         bottom: '10%', | ||||
|                         left: '2%', | ||||
|                         textStyle: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 12, | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 legend: { | ||||
|                     orient: 'horizontal', | ||||
|                     top: '5%', | ||||
|                     right: '5%', | ||||
|                     data: ['通话'], | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#75deef', | ||||
|                         fontSize: 12 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: | ||||
|                     { | ||||
|                         top: '88%', | ||||
|                         left: '3%', | ||||
|                         right: '3%', | ||||
|                         bottom: '2%', | ||||
| 
 | ||||
|                     }, | ||||
|                 xAxis: | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], | ||||
|                         axisLabel: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: true, | ||||
|                             lineStyle: { | ||||
|                                 color: '#3F4527' | ||||
|                             } | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                     }, | ||||
|                 yAxis: | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         axisLabel: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                 geo: { | ||||
|                     map: 'world', | ||||
|                     zoom: 1.1, | ||||
|                     aspectScale: 1, | ||||
|                     top: '14%', | ||||
|                     left: '8%', | ||||
|                     right: '8%', | ||||
|                     bottom: '15%', | ||||
|                     emphasis: { | ||||
|                         itemStyle: { | ||||
|                             areaColor: '#2a333d' | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false | ||||
|                         } | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         areaColor: 'rgb(40,113,234)', | ||||
|                         borderColor: '#111' | ||||
|                     } | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         type: 'lines', | ||||
|                         coordinateSystem: 'geo', | ||||
|                         lineStyle: { | ||||
|                             color: '#f1e816' | ||||
|                         }, | ||||
|                         data: convertData(BJData) | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '通话', | ||||
|                         type: 'effectScatter', | ||||
|                         coordinateSystem: 'geo', | ||||
|                         data: BJData.map(function (dataItem) { | ||||
|                             return { | ||||
|                                 name: dataItem[0].name + '-' + dataItem[1].name, | ||||
|                                 value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]) | ||||
|                             }; | ||||
|                         }), | ||||
|                         symbolSize: function (val) { | ||||
|                             return val[2] / 10; | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             itemStyle: { | ||||
|                                 borderColor: '#fff', | ||||
|                                 borderWidth: 1 | ||||
|                             } | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: 'rgb(230,215,5)' | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [ | ||||
| 
 | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 23, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 12, symbol: 'none'}, | ||||
|                             {value: 24, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 23, symbol: 'none'}, | ||||
|                             {value: 24, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             { | ||||
|                                 value: 24, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(228,234,40,.8)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                         ], | ||||
| 
 | ||||
|                         type: 'line', | ||||
|                         name: '通话', | ||||
|                         symbol: 'none', | ||||
|                         smooth: true, | ||||
| 
 | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(228,234,40,.8)', | ||||
|                             width: 1, | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [ | ||||
|                                     {offset: 0, color: 'rgba(228,234,40,.8)'}, | ||||
|                                     {offset: 0.5, color: 'rgba(228,234,40,.5)'}, | ||||
|                                     {offset: 1, color: 'rgba(228,234,40,.1)'} | ||||
|                                 ], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
| 
 | ||||
|                 ] | ||||
|             } | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .worldMap { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										142
									
								
								src/views/modules/monitoring/components/page2/chart1.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/views/modules/monitoring/components/page2/chart1.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,142 @@ | ||||
| <template> | ||||
|     <div class="barChart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     left: "11%", | ||||
|                     top: "15%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#5CB1C1', | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: '12%', | ||||
|                     bottom: '12%', | ||||
|                     left: "10%", | ||||
|                     right: '10%', | ||||
|                     containLabel: false | ||||
|                 }, | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         boundaryGap: true, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             symbolOffset: [0, 10], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 10, | ||||
|                             interval: 0, | ||||
|                         }, | ||||
|                         data: ["分类1", "分类2", "分类3", "分类4", "分类5", "分类6", "分类7", "分类8", "分类9", "分类10"], | ||||
|                     } | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         scale: true, | ||||
|                         max: 400, | ||||
|                         min: 0, | ||||
|                         interval: 50, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         name: '(小时)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 4, 0, 0] | ||||
|                         }, | ||||
|                     } | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '数据', | ||||
|                         type: 'bar', | ||||
|                         itemStyle: { | ||||
|                             color:{ | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: '#50A2F6' // 0% 处的颜色 | ||||
|                                 }, | ||||
|                                     { | ||||
|                                         offset: 0.4, color: '#9490F9' // 40% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: '#DF7DFD' // 100% 处的颜色 | ||||
|                                     }], | ||||
|                                 global: false // 缺省为 false | ||||
|                             } //背景渐变色 | ||||
|                         }, | ||||
|                         barWidth: 10, | ||||
|                         barCategoryGap: 10, | ||||
|                         data: [213, 190, 137, 99, 63, 196, 248, 212, 248, 112] | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .barChart { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										156
									
								
								src/views/modules/monitoring/components/page2/chart2.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								src/views/modules/monitoring/components/page2/chart2.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,156 @@ | ||||
| <template> | ||||
|     <div class="doubleBarChart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 legend: [ | ||||
|                     { | ||||
|                         top: '8%', | ||||
|                         right: '5%', | ||||
|                         itemWidth: 7, | ||||
|                         itemHeight: 7, | ||||
|                         textStyle: { | ||||
|                             color: '#5CB1C1', | ||||
|                         } | ||||
|                     }, | ||||
|                 ], | ||||
|                 grid: | ||||
|                     { | ||||
|                         top: '15%', | ||||
|                         left: '3%', | ||||
|                         right: '5%', | ||||
|                         bottom: '8%', | ||||
|                         containLabel: true, | ||||
|                     }, | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         axisLabel: { | ||||
|                             interval: 0, | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             symbolOffset: [0, 5], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: {show: false}, | ||||
|                         data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月'] | ||||
|                     }, | ||||
|                 ], | ||||
|                 yAxis: | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         min: 0, | ||||
|                         max: 300, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             showMaxLabel: false, | ||||
|                         }, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             symbolOffset: [0, 5], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             length: 3 | ||||
|                         }, | ||||
|                         name: '(人)', | ||||
|                         nameGap: -5, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                         splitLine: {show: false} | ||||
| 
 | ||||
|                     }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '新增', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 7, | ||||
|                         stack: '总数', | ||||
|                         itemStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: '#FC9386' // 0% 处的颜色 | ||||
|                                 }, | ||||
|                                     { | ||||
|                                         offset: 0.4, color: '#F87B86' // 40% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: '#F36087' // 100% 处的颜色 | ||||
|                                     }], | ||||
|                                 global: false // 缺省为 false | ||||
|                             }, //背景渐变色 | ||||
|                             borderRadius: [3.5, 3.5, 0, 0], | ||||
|                         }, | ||||
|                         data: [120, 102, 101, 134, 190, 130, 120, 190, 130, 120] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '总数', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 7, | ||||
|                         stack: '总数', | ||||
|                         itemStyle: { | ||||
|                             color: '#8C14EA', | ||||
|                             borderRadius: [3.5, 3.5, 0, 0,], | ||||
|                         }, | ||||
|                         data: [120, 132, 101, 134, 90, 130, 110, 90, 130, 120] | ||||
|                     }, | ||||
| 
 | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .doubleBarChart { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										187
									
								
								src/views/modules/monitoring/components/page2/chart3.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								src/views/modules/monitoring/components/page2/chart3.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,187 @@ | ||||
| <template> | ||||
|     <div class="singleAreaChart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         selectRangeDate: Array | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setData(type) { | ||||
|             let arr = []; | ||||
|             switch (type) { | ||||
|                 case 'x': | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push(this.selectRangeDate[i][1] + "." + this.selectRangeDate[i][2]) | ||||
|                     } | ||||
|                     break; | ||||
|                 case 's' : | ||||
|                     for (let i = 0; i < this.selectRangeDate.length; i++) { | ||||
|                         arr.push((Math.random() * 250).toFixed(0)) | ||||
|                     } | ||||
|                     break; | ||||
| 
 | ||||
|                 default: | ||||
|                     break; | ||||
|             } | ||||
| 
 | ||||
|             return arr; | ||||
|         }, | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'line'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: '12%', | ||||
|                     bottom: '12%', | ||||
|                     left: '5%', | ||||
|                     right: '5%', | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     right: '5%', | ||||
|                     top: '10%', | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#5CB1C1', | ||||
|                     } | ||||
|                 }, | ||||
|                 xAxis: { | ||||
|                     type: 'category', | ||||
|                     boundaryGap: false, | ||||
|                     axisLabel: { | ||||
|                         color: '#61B9C8', | ||||
|                         fontSize: 10, | ||||
|                     }, | ||||
|                     axisLine: { | ||||
|                         symbol: ['none', 'arrow'], | ||||
|                         symbolSize: [6, 6], | ||||
|                         symbolOffset: [0, 5], | ||||
|                         lineStyle: { | ||||
|                             color: '#122C49' | ||||
|                         } | ||||
|                     }, | ||||
|                     axisTick: { | ||||
|                         color: '#122C49', | ||||
|                         inside: true | ||||
|                     }, | ||||
|                     z: 2, | ||||
|                     data: this.setData('x') | ||||
|                 }, | ||||
|                 yAxis: | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         interval: 50, | ||||
|                         min: 0, | ||||
|                         max: 400, | ||||
|                         splitNumber: 7, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         name: '(个)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                     }, | ||||
| 
 | ||||
|                 series: [{ | ||||
|                     name: '图例', | ||||
|                     type: 'line', | ||||
|                     symbol: 'none', | ||||
|                     smooth: true, | ||||
|                     data: this.setData('s'), | ||||
|                     lineStyle: { | ||||
|                         width: 1, | ||||
|                         color:{ | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 0, | ||||
|                             y2: 1, | ||||
|                             colorStops: [{ | ||||
|                                 offset: 0, color: '#B21356' // 0% 处的颜色 | ||||
|                             }, | ||||
|                                 { | ||||
|                                     offset: 0.5, color: '#B21356' // 40% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: '#F59111' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                             global: false // 缺省为 false | ||||
|                         } //背景渐变色 | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: 'rgb(212,37,43)' | ||||
|                     }, | ||||
|                     areaStyle: { | ||||
|                         color: { | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 0, | ||||
|                             y2: 1, | ||||
|                             colorStops: [{ | ||||
|                                 offset: 0, color: '#A41B68' // 0% 处的颜色 | ||||
|                             }, | ||||
|                                 { | ||||
|                                     offset: 0.5, color: 'rgba(112,20,82,1)' // 40% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(112,20,82,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                             global: false // 缺省为 false | ||||
|                         }, //背景渐变色 | ||||
|                         origin: 'start' | ||||
|                     } | ||||
|                 }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .singleAreaChart { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										166
									
								
								src/views/modules/monitoring/components/page2/chart4.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								src/views/modules/monitoring/components/page2/chart4.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,166 @@ | ||||
| <template> | ||||
|     <div class="doubleLine"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis' | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     left: "11%", | ||||
|                     top: "10%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#5CB1C1', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: '12%', | ||||
|                     left: '10%', | ||||
|                     right: '10%', | ||||
|                     bottom: '10%', | ||||
|                     containLabel: false | ||||
|                 }, | ||||
| 
 | ||||
|                 xAxis: { | ||||
|                     type: 'category', | ||||
|                     boundaryGap: false, | ||||
|                     axisLine: { | ||||
|                         symbol: ['none', 'arrow'], | ||||
|                         symbolSize: [6, 6], | ||||
|                         symbolOffset: [0, 10], | ||||
|                         lineStyle: { | ||||
|                             color: '#122C49' | ||||
|                         } | ||||
|                     }, | ||||
|                     axisTick: {show: false}, | ||||
|                     axisLabel: { | ||||
|                         color: '#61B9C8', | ||||
|                         fontSize: 9 | ||||
|                     }, | ||||
|                     data: ["2017", "4", "7", "10", "2018", "4", "7"] | ||||
|                 }, | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         scale: true, | ||||
|                         max: 400, | ||||
|                         min: 0, | ||||
|                         interval: 50, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 9 | ||||
|                         }, | ||||
|                         name: '(次)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         scale: true, | ||||
|                         max: 400, | ||||
|                         min: 0, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 9 | ||||
|                         }, | ||||
|                         name: '(个)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'left', | ||||
|                             padding: [0, 0, 0, 6] | ||||
|                         }, | ||||
|                         interval: 50, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                     } | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '次数', | ||||
|                         type: 'line', | ||||
|                         smooth: true, | ||||
|                         symbol: 'none', | ||||
|                         lineStyle: { | ||||
|                             color: '#F39800', | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: '#F39800' | ||||
|                         }, | ||||
|                         data: [50, 132, 100, 300, 90, 230, 210] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '人数', | ||||
|                         yAxisIndex: 1, | ||||
|                         type: 'line', | ||||
|                         smooth: true, | ||||
|                         symbol: 'none', | ||||
|                         lineStyle: { | ||||
|                             color: '#BF232A', | ||||
| 
 | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: '#BF232A' | ||||
|                         }, | ||||
|                         data: [330, 310, 132, 100, 300, 90, 230] | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .doubleLine { | ||||
|     height: 100%; | ||||
|     width: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										181
									
								
								src/views/modules/monitoring/components/page2/chart5.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								src/views/modules/monitoring/components/page2/chart5.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,181 @@ | ||||
| <template> | ||||
|     <div class="doubleBars"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 legend: { | ||||
|                     left: "8%", | ||||
|                     top: "10%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#5CB1C1', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: [{ | ||||
|                     show: false, | ||||
|                     left: '6%', | ||||
|                     top: '17%', | ||||
|                     bottom: '3%', | ||||
|                     containLabel: true, | ||||
|                     width: '40%', | ||||
|                 }, { | ||||
|                     show: false, | ||||
|                     left: '53%', | ||||
|                     top: '17%', | ||||
|                     bottom: '3%', | ||||
|                     width: '1%', | ||||
|                 }, { | ||||
|                     show: false, | ||||
|                     right: '6%', | ||||
|                     top: '17%', | ||||
|                     bottom: '3%', | ||||
|                     containLabel: true, | ||||
|                     width: '40%', | ||||
|                 },], | ||||
|                 xAxis: [{ | ||||
|                     splitNumber: 8, | ||||
|                     type: 'value', | ||||
|                     inverse: true, | ||||
|                     axisLine: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                     position: 'bottom', | ||||
|                     axisLabel: {show: false}, | ||||
|                     splitLine: {show: false} | ||||
|                 }, { | ||||
|                     gridIndex: 1, | ||||
|                     show: false | ||||
|                 }, { | ||||
|                     gridIndex: 2, | ||||
|                     splitNumber: 8, | ||||
|                     type: 'value', | ||||
|                     axisLine: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                     position: 'bottom', | ||||
|                     axisLabel: {show: false}, | ||||
|                     splitLine: {show: false} | ||||
|                 } | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     //左边的标尺 | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         inverse: true, | ||||
|                         position: 'left', | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                     }, | ||||
|                     //中间的标尺 | ||||
|                     { | ||||
|                         gridIndex: 1, | ||||
|                         type: 'category', | ||||
|                         inverse: true, | ||||
|                         position: 'left', | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLabel: { | ||||
|                             show: true, | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 8, | ||||
|                             showMinLabel: true, | ||||
|                             showMaxLabel: true, | ||||
|                             interval: 0 | ||||
|                         }, | ||||
|                         data: ["1部", "2部", "3部", "4部", "5部", "6部", "7部", "8部", "9部", '10部', "11部"] | ||||
|                     }, | ||||
|                     //右边的标尺 | ||||
|                     { | ||||
|                         gridIndex: 2, | ||||
|                         type: 'category', | ||||
|                         inverse: true, | ||||
|                         offset: 50, | ||||
|                         position: 'left', | ||||
|                         axisLine: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLabel: {show: false} | ||||
|                     } | ||||
|                 ], | ||||
|                 series: [{ | ||||
|                     name: '次数', | ||||
|                     type: 'bar', | ||||
|                     barGap: 10, | ||||
|                     barWidth: "40%", | ||||
|                     emphasis: { | ||||
|                         show: false | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: { | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 1, | ||||
|                             y2: 0, | ||||
|                             colorStops: [ | ||||
|                                 {offset: 0, color: 'rgba(1,176,223,1)'}, | ||||
|                                 {offset: 1, color: 'rgba(1,176,223,0)'} | ||||
|                             ], | ||||
|                             global: false // 缺省为 false | ||||
|                         }, | ||||
|                         borderRadius: 5, | ||||
|                     }, | ||||
|                     data: [320, 302, 341, 374, 390, 450, 420, 374, 390, 450, 420] | ||||
|                 }, { | ||||
|                     name: '人数', | ||||
|                     type: 'bar', | ||||
|                     barGap: 10, | ||||
|                     barWidth: "40%", | ||||
|                     xAxisIndex: 2, | ||||
|                     yAxisIndex: 2, | ||||
|                     emphasis: { | ||||
|                         show: false | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: { | ||||
|                             type: 'linear', | ||||
|                             x: 0, | ||||
|                             y: 0, | ||||
|                             x2: 1, | ||||
|                             y2: 0, | ||||
|                             colorStops: [ | ||||
|                                 {offset: 0, color: 'rgba(126,19,212,0)'}, | ||||
|                                 {offset: 1, color: 'rgba(126,19,212,1)'} | ||||
|                             ], | ||||
|                             global: false // 缺省为 false | ||||
|                         }, | ||||
|                         borderRadius: 5, | ||||
|                     }, | ||||
|                     data: [320, 302, 341, 374, 390, 450, 420, 374, 390, 450, 420] | ||||
|                 }] | ||||
|             }; | ||||
| 
 | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .doubleBars { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										245
									
								
								src/views/modules/monitoring/components/page2/chart6.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										245
									
								
								src/views/modules/monitoring/components/page2/chart6.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,245 @@ | ||||
| <template> | ||||
|     <div class="threeBarChart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 grid: { | ||||
|                     top: "20%", | ||||
|                     bottom: "15%", | ||||
|                     left: 40, | ||||
|                     right: 40, | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis' | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     left: "8%", | ||||
|                     top: "10%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#5CB1C1', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 calculable: true, | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: 'category', | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         data: ['2017', '4', '7', '10', '2018', '4', '7', '0'] | ||||
|                     } | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         interval: 50, | ||||
|                         min: 0, | ||||
|                         max: 400, | ||||
|                         splitNumber: 7, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         name: '(元)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'right', | ||||
|                             padding: [0, 6, 0, 0] | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         interval: 50, | ||||
|                         position: "right", | ||||
|                         offset: -35, | ||||
|                         min: 0, | ||||
|                         max: 400, | ||||
|                         splitNumber: 7, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         name: '(人)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'left', | ||||
|                             padding: [0, 0, 0, 6] | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         position: "right", | ||||
|                         interval: 50, | ||||
|                         min: 0, | ||||
|                         max: 400, | ||||
|                         splitNumber: 7, | ||||
|                         axisLine: { | ||||
|                             symbol: ['none', 'arrow'], | ||||
|                             symbolSize: [6, 6], | ||||
|                             lineStyle: { | ||||
|                                 color: '#122C49' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#61B9C8', | ||||
|                             showMaxLabel: false, | ||||
|                             fontSize: 10 | ||||
|                         }, | ||||
|                         splitLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         name: '(次)', | ||||
|                         nameGap: -10, | ||||
|                         nameTextStyle: { | ||||
|                             color: '#61B9C8', | ||||
|                             fontSize: 9, | ||||
|                             align: 'left', | ||||
|                             padding: [0, 0, 0, 6] | ||||
|                         } | ||||
|                     } | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '金额', | ||||
|                         type: 'bar', | ||||
|                         barGap: 0, | ||||
|                         barWidth: 6, | ||||
|                         data: [200, 49, 70, 232, 256, 76.7, 135.6], | ||||
|                         itemStyle: { | ||||
|                             borderRadius: [3, 3, 0, 0], | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(252,145,134,1)' // 0% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: 'rgba(241,88,135,1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 global: false // 缺省为 false | ||||
|                             } //背景渐变色 | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '人数', | ||||
|                         type: 'bar', | ||||
|                         barGap: 0, | ||||
|                         barWidth: 6, | ||||
|                         data: [26, 59, 90, 264, 287, 70.7, 175.6], | ||||
|                         itemStyle: { | ||||
|                             borderRadius: [3, 3, 0, 0], | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(144,20,238,1)' // 0% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: 'rgba(74,8,211,1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 global: false // 缺省为 false | ||||
|                             } //背景渐变色 | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '次数', | ||||
|                         type: 'bar', | ||||
|                         barGap: 0, | ||||
|                         barWidth: 6, | ||||
|                         data: [264, 287, 150, 175.6, 182.2, 48.7, 18.8], | ||||
|                         itemStyle: { | ||||
|                             borderRadius: [3, 3, 0, 0], | ||||
|                             color:  { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [ | ||||
|                                     { | ||||
|                                         offset: 0, color: 'rgba(0,204,255,1)' // 0% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: 'rgba(8,59,126,1)' // 100% 处的颜色 | ||||
|                                     } | ||||
|                                 ], | ||||
|                                 global: false // 缺省为 false | ||||
|                             } //背景渐变色 | ||||
|                         } | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .threeBarChart { | ||||
|     height: 100%; | ||||
|     width: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										200
									
								
								src/views/modules/monitoring/components/page2/chart7.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								src/views/modules/monitoring/components/page2/chart7.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,200 @@ | ||||
| <template> | ||||
|     <div class="pieChart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: "【金额】", | ||||
|                         left: '12%', | ||||
|                         bottom: '6%', | ||||
|                         textStyle: { | ||||
|                             color: "#fff", | ||||
|                             fontSize: 12 | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: "【人数】", | ||||
|                         left: '46%', | ||||
|                         bottom: '6%', | ||||
|                         textStyle: { | ||||
|                             color: "#fff", | ||||
|                             fontSize: 12 | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: "【次数】", | ||||
|                         right: '12%', | ||||
|                         bottom: '6%', | ||||
|                         textStyle: { | ||||
|                             color: "#fff", | ||||
|                             fontSize: 12 | ||||
|                         } | ||||
|                     } | ||||
|                 ], | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     formatter: "{a} <br/>{b} : {c} ({d}%)" | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     data: [ | ||||
|                         {name: '分类1', icon: 'circle'}, | ||||
|                         {name: '分类2', icon: 'circle'}, | ||||
|                         {name: '分类3', icon: 'circle'}, | ||||
|                         {name: '分类4', icon: 'circle'}, | ||||
|                         {name: '分类5', icon: 'circle'}, | ||||
|                     ], | ||||
|                     left: "8%", | ||||
|                     top: "10%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#00CCFF', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '【金额】', | ||||
|                         type: 'pie', | ||||
|                         radius: '40%', | ||||
|                         center: ['17%', '60%'], | ||||
|                         data: [ | ||||
|                             {value: 335, name: '分类1'}, | ||||
|                             {value: 310, name: '分类2'}, | ||||
|                             {value: 234, name: '分类3'}, | ||||
|                             {value: 135, name: '分类5'}, | ||||
|                             {value: 1548, name: '分类5'} | ||||
|                         ], | ||||
|                         label: { | ||||
|                             fontSize: 8, | ||||
|                             color: '#00CCFF' | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             length: 15, | ||||
|                             length2: 10, | ||||
|                             lineStyle: { | ||||
|                                 color: '#3F3F5C' | ||||
|                             } | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: function (params) { | ||||
|                                 var colorList = ['#F74F64', '#00CCFF', '#315371', '#142AFE', '#9814FE']; | ||||
|                                 return colorList[params.dataIndex]; | ||||
|                             }, | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             itemStyle: { | ||||
|                                 shadowBlur: 10, | ||||
|                                 shadowOffsetX: 0, | ||||
|                                 shadowColor: 'rgba(0, 0, 0, 0.5)' | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '【人数】', | ||||
|                         type: 'pie', | ||||
|                         radius: '40%', | ||||
|                         center: ['50%', '60%'], | ||||
|                         data: [ | ||||
|                             {value: 545, name: '分类1'}, | ||||
|                             {value: 210, name: '分类2'}, | ||||
|                             {value: 2534, name: '分类3'}, | ||||
|                             {value: 1335, name: '分类4'}, | ||||
|                             {value: 1548, name: '分类5'} | ||||
|                         ], | ||||
|                         label: { | ||||
|                             fontSize: 8, | ||||
|                             color: '#00CCFF' | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             length: 15, | ||||
|                             length2: 10, | ||||
|                             lineStyle: { | ||||
|                                 color: '#3F3F5C' | ||||
|                             } | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: function (params) { | ||||
|                                 var colorList = ['#F74F64', '#00CCFF', '#315371', '#142AFE', '#9814FE']; | ||||
|                                 return colorList[params.dataIndex]; | ||||
|                             }, | ||||
| 
 | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             itemStyle: { | ||||
|                                 shadowBlur: 10, | ||||
|                                 shadowOffsetX: 0, | ||||
|                                 shadowColor: 'rgba(0, 0, 0, 0.5)' | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '【次数】', | ||||
|                         type: 'pie', | ||||
|                         radius: '40%', | ||||
|                         center: ['82%', '60%'], | ||||
|                         data: [ | ||||
|                             {value: 435, name: '分类1'}, | ||||
|                             {value: 310, name: '分类2'}, | ||||
|                             {value: 334, name: '分类3'}, | ||||
|                             {value: 1135, name: '分类4'}, | ||||
|                             {value: 1548, name: '分类5'} | ||||
|                         ], | ||||
|                         label: { | ||||
|                             fontSize: 8, | ||||
|                             color: '#00CCFF' | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             length: 15, | ||||
|                             length2: 10, | ||||
|                             lineStyle: { | ||||
|                                 color: '#3F3F5C' | ||||
|                             } | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                            itemStyle: { | ||||
|                                shadowBlur: 10, | ||||
|                                shadowOffsetX: 0, | ||||
|                                shadowColor: 'rgba(0, 0, 0, 0.5)' | ||||
|                            } | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: function (params) { | ||||
|                                 var colorList = ['#F74F64', '#00CCFF', '#315371', '#142AFE', '#9814FE']; | ||||
|                                 return colorList[params.dataIndex]; | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .pieChart { | ||||
|     height: 100%; | ||||
|     width: 100%; | ||||
|     padding: 0 20px; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										139
									
								
								src/views/modules/monitoring/components/page3/chart1.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								src/views/modules/monitoring/components/page3/chart1.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,139 @@ | ||||
| <template> | ||||
|     <div class="leftBar"></div> | ||||
| </template> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .leftBar { | ||||
|     height: 100%; | ||||
|     width: 45%; | ||||
|     float: left; | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     props: { | ||||
|         title: String, | ||||
|         data: Array, | ||||
|     }, | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setTrenchData(type) { // 数据 | ||||
|             let arr = []; | ||||
|             let obj = {}; | ||||
|             for (let i = 0; i < this.data.length; i++) { | ||||
|                 switch (type) { | ||||
|                     case 't': | ||||
|                         obj = { | ||||
|                             subtext: this.data[i].subtitle, | ||||
|                             top: this.data[i].top, | ||||
|                             left: 10, | ||||
|                             subtextStyle: { | ||||
|                                 color: '#8CBCCD', | ||||
|                                 fontSize: 9 | ||||
|                             } | ||||
|                         } | ||||
|                         break; | ||||
|                     case 'd': | ||||
|                         obj = this.data[i].data | ||||
|                         break; | ||||
|                     case 'b': | ||||
|                         obj = 100; | ||||
|                         break; | ||||
|                     default: | ||||
|                         break; | ||||
|                 } | ||||
| 
 | ||||
|                 arr.push(obj); | ||||
|             } | ||||
|             if (type === 't') { | ||||
|                 arr.unshift({ | ||||
|                     text: this.title, | ||||
|                     top: '8%', | ||||
|                     left: '5%', | ||||
|                     textStyle: { | ||||
|                         color: '#fff', | ||||
|                         fontSize: 12 | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|             return arr; | ||||
|         }, | ||||
| 
 | ||||
|         // 渠道分析 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                 }, | ||||
|                 title: this.setTrenchData('t'), | ||||
|                 grid: { | ||||
|                     top: '15%', | ||||
|                     bottom: '3%', | ||||
|                     left: '5%', | ||||
|                 }, | ||||
|                 yAxis: { | ||||
|                     data: [], | ||||
|                     inverse: true, | ||||
|                     axisLabel: {show: false}, | ||||
|                     axisLine: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                 }, | ||||
|                 xAxis: { | ||||
|                     splitLine: {show: false}, | ||||
|                     axisLabel: {show: false}, | ||||
|                     axisLine: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                 }, | ||||
|                 series: [{ | ||||
|                     type: 'bar', | ||||
|                     silent: true, | ||||
|                     barWidth: 15, | ||||
|                     barGap: '-100%', // Make series be overlap | ||||
|                     itemStyle: { | ||||
|                         color: '#1F1E4E' | ||||
|                     }, | ||||
|                     data: this.setTrenchData('b') | ||||
|                 }, { | ||||
|                     type: 'bar', | ||||
|                     barWidth:15, | ||||
|                     z: 2, | ||||
|                     label: { | ||||
|                         show: true, | ||||
|                         position: "insideLeft", | ||||
|                         color: "#fff", | ||||
|                         offset: [0, 1], | ||||
|                         fontSize: 9, | ||||
|                         formatter: function (params) { | ||||
|                             return params.name | ||||
|                         }, | ||||
|                     }, | ||||
|                     itemStyle: { | ||||
|                         color: function (params) { | ||||
|                             return params.data.color; | ||||
|                         } | ||||
|                     }, | ||||
|                     data: this.setTrenchData('d') | ||||
|                 }] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
| 
 | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
							
								
								
									
										150
									
								
								src/views/modules/monitoring/components/page3/chart2.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								src/views/modules/monitoring/components/page3/chart2.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,150 @@ | ||||
| <template> | ||||
|     <div class="rightBar"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Array | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setSoliderData(type) { | ||||
|             let arr = []; | ||||
|             let obj = {}; | ||||
|             for (let i = 0; i < this.data.length; i++) { | ||||
|                 switch (type) { | ||||
|                     case 'g': | ||||
|                         obj = { | ||||
|                             top: this.data[i].top, | ||||
|                             left: 8, | ||||
|                             right: 30, | ||||
|                             height: "13.5%" | ||||
|                         }; | ||||
|                         break; | ||||
|                     case 'x': | ||||
|                         obj = { | ||||
|                             axisLine: {show: false}, | ||||
|                             axisTick: {show: false, interval: 0}, | ||||
|                             splitLine: {show: false}, | ||||
|                             type: 'category', | ||||
|                             boundaryGap: false, | ||||
|                             gridIndex: i, | ||||
|                             axisLabel: { | ||||
|                                 show: false | ||||
|                             }, | ||||
|                             data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                         }; | ||||
|                         break; | ||||
|                     case 'y': | ||||
|                         obj = { | ||||
|                             type: "value", | ||||
|                             axisLine: {show: false}, | ||||
|                             gridIndex: i, | ||||
|                             axisTick: {show: false}, | ||||
|                             splitLine: {show: false}, | ||||
|                             axisLabel: {show: false} | ||||
|                         }; | ||||
|                         break; | ||||
|                     case 's': | ||||
|                         obj = { | ||||
|                             type: "bar", | ||||
|                             barWidth: 2, | ||||
|                             data: this.data[i].data, | ||||
|                             label: { | ||||
|                                 show: true, | ||||
|                                 position: "insideBottomLeft", | ||||
|                                 offset: [3, 0], | ||||
|                                 distance: 2, | ||||
|                                 color: '#88B6C7', | ||||
|                                 fontSize: 9, | ||||
|                                 lineHeight: 9, | ||||
|                                 rich: { | ||||
|                                     a: { | ||||
|                                         // 没有设置 `verticalAlign`,则 `verticalAlign` 为 bottom | ||||
|                                     } | ||||
|                                 }, | ||||
|                                 formatter: function (data) { | ||||
|                                     if (data.data.name.length == 2) { | ||||
|                                         return data.data.name.split("").join("\n\n"); | ||||
|                                     } else { | ||||
|                                         return data.data.name.split("").join("\n"); | ||||
|                                     } | ||||
| 
 | ||||
|                                 }, | ||||
|                             }, | ||||
|                             itemStyle: { | ||||
|                                 color: { // 颜色线性渐变 | ||||
|                                     type: 'linear', | ||||
|                                     x: 0, | ||||
|                                     y: 0, | ||||
|                                     x2: 0, | ||||
|                                     y2: 1, | ||||
|                                     colorStops: [{ | ||||
|                                         offset: 0, color: 'rgba(' + this.data[i].color + ',1)' // 0% 处的颜色 | ||||
|                                     }, { | ||||
|                                         offset: 1, color: 'rgba(' + this.data[i].color + ',0)' // 100% 处的颜色 | ||||
|                                     }], | ||||
|                                     globalCoord: false // 缺省为 false | ||||
|                                 } | ||||
|                             }, | ||||
|                             xAxisIndex: i, | ||||
|                             yAxisIndex: i, | ||||
|                         }; | ||||
|                         break; | ||||
|                     default: | ||||
|                         break; | ||||
|                 } | ||||
|                 arr.push(obj) | ||||
|             } | ||||
|             return arr; | ||||
|         }, | ||||
|         // 用户排名 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                     formatter: "{b}:{c}" | ||||
|                 }, | ||||
|                 title: { | ||||
|                     text: '重点关注用户排名', | ||||
|                     left: 0, | ||||
|                     top: 10, | ||||
|                     textStyle: { | ||||
|                         fontSize: 12, | ||||
|                         color: "#FFF" | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: this.setSoliderData('g'), | ||||
|                 xAxis: this.setSoliderData('x'), | ||||
|                 yAxis: this.setSoliderData('y'), | ||||
|                 series: this.setSoliderData('s') | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .rightBar { | ||||
|     height: 100%; | ||||
|     width: 55%; | ||||
|     float: left; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										149
									
								
								src/views/modules/monitoring/components/page3/chart3.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								src/views/modules/monitoring/components/page3/chart3.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,149 @@ | ||||
| <template> | ||||
|     <div class="redPocket"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: 'redPocket', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 红包装账 | ||||
|         setPocket() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                 }, | ||||
|                 title: { | ||||
|                     text: "散点图数据分析", | ||||
|                     top: "6%", | ||||
|                     left: '2%', | ||||
|                     textStyle: { | ||||
|                         color: '#fff', | ||||
|                         fontSize: 14 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: "23%", | ||||
|                     bottom: '10%' | ||||
|                 }, | ||||
|                 xAxis: { | ||||
|                     scale: true, | ||||
|                     name: '次数', | ||||
|                     nameTextStyle: { | ||||
|                         color: "#0FB9CD", | ||||
|                         fontSize: 10 | ||||
|                     }, | ||||
|                     axisLine: { | ||||
|                         show: false | ||||
|                     }, | ||||
|                     axisLabel: { | ||||
|                         color: '#0FB9CD', | ||||
|                         fontSize: 8 | ||||
|                     }, | ||||
|                     axisTick: { | ||||
|                         color: '#14336D' | ||||
|                     }, | ||||
|                     splitLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#14336D' | ||||
|                         } | ||||
| 
 | ||||
|                     } | ||||
| 
 | ||||
|                 }, | ||||
|                 yAxis: { | ||||
|                     scale: true, | ||||
|                     name: '金额', | ||||
|                     nameTextStyle: { | ||||
|                         color: "#0FB9CD", | ||||
|                         fontSize: 10, | ||||
|                         padding: [0, 65, -10, 0] | ||||
|                     }, | ||||
|                     axisTick: {show: false}, | ||||
|                     axisLabel: { | ||||
|                         color: '#0FB9CD', | ||||
|                         fontSize: 8 | ||||
|                     }, | ||||
|                     axisLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#134076' | ||||
|                         } | ||||
|                     }, | ||||
|                     splitLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#14336D' | ||||
|                         } | ||||
|                     } | ||||
|                 }, | ||||
|                 series: [{ | ||||
|                     type: 'effectScatter', | ||||
|                     symbolSize: 10, | ||||
|                     z: 10, | ||||
|                     itemStyle: { | ||||
|                         color: '#FF1200' | ||||
|                     }, | ||||
|                     data: [ | ||||
|                         [172.7, 105.2], | ||||
|                         [153.4, 42] | ||||
|                     ] | ||||
|                 }, { | ||||
|                     type: 'scatter', | ||||
|                     itemStyle: { | ||||
|                         color: '#0E4CFF' | ||||
|                     }, | ||||
|                     data: [ | ||||
|                         [162.8, 58.0], [167.0, 59.8], [60.0, 54.8], [160.0, 43.2], [168.9, 60.5], | ||||
|                         [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [67.1, 62.2], [158.0, 55.5], | ||||
|                         [122.6, 57.8], [26.0, 54.6], [162.1, 59.2], [133.4, 52.7], [59.8, 53.2], | ||||
|                         [70.5, 64.5], [159.2, 51.8], [57.5, 56.0], [61.3, 63.6], [132.6, 63.2], | ||||
|                         [60.0, 59.5], [168.9, 56.8], [65.1, 64.1], [132.6, 50.0], [165.1, 72.3], | ||||
|                         [66.4, 55.0], [60.0, 55.9], [52.4, 60.4], [140.2, 69.1], [12.6, 84.5], | ||||
|                         [70.2, 55.9], [158.8, 55.5], [112.7, 69.5], [67.6, 76.4], [162.6, 61.4], | ||||
|                         [87.6, 65.9], [56.2, 58.6], [175.2, 66.8], [72.1, 56.6], [162.6, 58.6], | ||||
|                         [90.0, 55.9], [165.1, 59.1], [102.9, 81.8], [66.4, 70.7], [125.1, 56.8], | ||||
|                         [102.7, 75.9] [101.3, 57.3], [167.6, 55.0], [65.1, 65.5], | ||||
|                         [157.5, 48.6], [63.8, 58.6], [67.6, 63.6], [65.1, 55.2], | ||||
| 
 | ||||
|                     ], | ||||
|                 }, | ||||
|                     { | ||||
|                         type: 'scatter', | ||||
|                         itemStyle: { | ||||
|                             color: '#2E62F9' | ||||
|                         }, | ||||
|                         data: [[161.2, 2.6], [127.5, 59.0], [159.5, 49.2], [17.0, 63.0], [155.8, 53.6], | ||||
|                             [170.0, 59.0], [19.1, 47.6], [166.0, 69.8], [116.2, 66.8], [160.2, 75.2], | ||||
|                             [172.5, 55.2], [110.9, 54.2], [12.9, 62.5], [153.4, 42.0], [110.0, 50.0], | ||||
|                             [10.2, 49.8], [88.2, 49.2], [175.0, 73.2], [157.0, 47.8], [67.6, 68.8], | ||||
|                             [159.5, 50.6], [175.0, 82.5], [86.8, 57.2], [96.5, 87.8], [90.2, 72.8], | ||||
|                             [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [110.5, 67.8], [60.0, 47.0], | ||||
|                             [154.4, 46.2], [82.0, 55.0], [86.5, 83.0], [10.0, 54.4], [52.0, 45.8], | ||||
|                             [162.1, 53.6], [170.0, 73.2], [60.2, 52.1], [121.3, 67.9], [116.4, 56.6], | ||||
| 
 | ||||
|                         ], | ||||
|                     }] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, mounted() { | ||||
|         this.setPocket(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .redPocket { | ||||
|     height: 100% | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										142
									
								
								src/views/modules/monitoring/components/page3/chart4.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/views/modules/monitoring/components/page3/chart4.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,142 @@ | ||||
| <template> | ||||
|     <div class="chart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .chart { | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                 }, | ||||
|                 title: | ||||
| 
 | ||||
|                     { | ||||
|                         text: this.data.title, | ||||
|                         top: "5%", | ||||
|                         left: '5%', | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                         } | ||||
|                     }, | ||||
|                 legend: | ||||
|                     { | ||||
|                         data: [ | ||||
|                             {name: this.data.data[0].name, icon: 'circle'}, | ||||
|                             {name: this.data.data[1].name, icon: 'circle'}, | ||||
|                         ], | ||||
|                         left: "center", | ||||
|                         top: "17%", | ||||
|                         orient: 'horizontal', | ||||
|                         itemWidth: 7, | ||||
|                         itemHeight: 7, | ||||
|                         itemGap: 10, | ||||
|                         textStyle: { | ||||
|                             color: '#67C3D6', | ||||
|                             fontSize: 10 | ||||
|                         } | ||||
|                     }, | ||||
|                 grid: | ||||
|                     { | ||||
|                         left: "5%", | ||||
|                         top: '35%', | ||||
|                         right: '5%', | ||||
|                         bottom: '15%' | ||||
|                     }, | ||||
|                 xAxis: | ||||
|                     { | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#2B427F' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisLabel: { | ||||
|                             color: '#0DF5F8', | ||||
|                             fontSize: 8, | ||||
|                             interval: 0, | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             inside: true, | ||||
|                             alignWithLabel: true, | ||||
|                             interval: 0, | ||||
|                             color: '#2B427F' | ||||
|                         }, | ||||
|                         data: ['TOP1', 'TOP2', 'TOP3', 'TOP4', 'TOP5', 'TOP6'] | ||||
|                     }, | ||||
| 
 | ||||
| 
 | ||||
|                 yAxis: | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         axisLine: { | ||||
|                             show: false, | ||||
|                         }, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#2B427F' | ||||
|                             } | ||||
| 
 | ||||
|                         } | ||||
| 
 | ||||
|                     }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         type: 'bar', | ||||
|                         name: this.data.data[0].name, | ||||
|                         barWidth: 4, | ||||
|                         barGap: 0, | ||||
|                         itemStyle: { | ||||
|                             borderRadius: 2, | ||||
|                             color: this.data.data[0].color | ||||
|                         }, | ||||
|                         data: this.data.data[0].value | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'bar', | ||||
|                         name: this.data.data[1].name, | ||||
|                         barWidth: 4, | ||||
|                         barGap: 0, | ||||
|                         itemStyle: { | ||||
|                             borderRadius: 2, | ||||
|                             color: this.data.data[1].color | ||||
|                         }, | ||||
|                         data: this.data.data[1].value | ||||
|                     }, | ||||
|                 ] | ||||
| 
 | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
							
								
								
									
										212
									
								
								src/views/modules/monitoring/components/page3/chart5.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										212
									
								
								src/views/modules/monitoring/components/page3/chart5.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,212 @@ | ||||
| <template> | ||||
|     <div class="webcastsRisk"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: 'webcastsRisk', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 网播风险分析 | ||||
|         setWebcasts() { | ||||
|             let option = { | ||||
| 
 | ||||
|                 title: { | ||||
|                     text: '重点用户关注排行', | ||||
|                     textStyle: { | ||||
|                         color: "#fff", | ||||
|                         fontSize: 12 | ||||
|                     }, | ||||
|                     top: '4%', | ||||
|                     left: '4%' | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     } | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     data: [ | ||||
|                         {name: '分类1', icon: 'circle'}, | ||||
|                         {name: '分类2', icon: 'circle'}, | ||||
|                         {name: '分类3', icon: 'circle'}, | ||||
|                         {name: '其他', icon: 'circle'}, | ||||
|                     ], | ||||
|                     gridIndex: 3, | ||||
|                     right: "5%", | ||||
|                     top: "6%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#00CCFF', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: '15%', | ||||
|                     left: '3%', | ||||
|                     right: '50%', | ||||
|                     bottom: '5%', | ||||
|                     containLabel: true | ||||
|                 }, | ||||
|                 xAxis: { | ||||
|                     type: 'value', | ||||
|                     axisLabel: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                     splitLine: {show: false}, | ||||
|                     axisLine: {show: false} | ||||
|                 }, | ||||
|                 yAxis: { | ||||
|                     type: 'category', | ||||
|                     axisTick: {show: false}, | ||||
|                     splitLine: {show: false}, | ||||
|                     axisLine: {show: false}, | ||||
|                     axisLabel: { | ||||
|                         color: '#fff', | ||||
|                         backgroundColor: '#4A7AFF', | ||||
|                         borderRadius: 3, | ||||
|                         margin: 0, | ||||
|                         padding: [1, 3, 1, 3] | ||||
|                     }, | ||||
|                     inverse: true, | ||||
|                     data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '分类1', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#142AFE', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
| 
 | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类2', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#1456FE', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类3', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#1493FE', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '其他', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 8, | ||||
|                         stack: '总量', | ||||
|                         itemStyle: { | ||||
|                             color: '#00CCFF', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'pie', | ||||
|                         radius: ['20%', '21%'], | ||||
|                         center: ['72%', '60%'], | ||||
|                         data: [{value: '1'}], | ||||
|                         label: {show: false}, | ||||
|                         itemStyle: { | ||||
|                             color: '#7D7DA2' | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'pie', | ||||
|                         radius: ['40%', '65%'], | ||||
|                         roseType: 'area', | ||||
|                         center: ['72%', '60%'], | ||||
|                         avoidLabelOverlap: true, | ||||
|                         startAngle: 180, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             padding: [0, -30], | ||||
|                             formatter: '{c} \n\n', | ||||
|                             position: 'outside', | ||||
|                             color: '#fff', | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             label: { | ||||
|                                 show: true, | ||||
|                                 fontSize: '30', | ||||
|                                 fontWeight: 'bold' | ||||
|                             } | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             show: true, | ||||
|                             length2: 30, | ||||
|                             lineStyle: { | ||||
|                                 //color:["#408BE8",'#FE405C',"#3E3E7F","#FFC740"] | ||||
|                             }, | ||||
| 
 | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: function (params) { | ||||
|                                 let corList = ["#142AFE", '#3FA0FF', "#00CCFF", "#1456FE"]; | ||||
|                                 return corList[params.dataIndex] | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             {value: 535, name: '分类1'}, | ||||
|                             {value: 310, name: '分类2'}, | ||||
|                             {value: 135, name: '分类3'}, | ||||
|                             {value: 254, name: '其他'}, | ||||
|                         ] | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setWebcasts() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .webcastsRisk { | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										249
									
								
								src/views/modules/monitoring/components/page3/chart6.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										249
									
								
								src/views/modules/monitoring/components/page3/chart6.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,249 @@ | ||||
| <template> | ||||
|     <div class='deviceSafeRisk'></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: 'deviceSafeRisk', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 设备安全性风险 | ||||
|         setDeviceSafe() { | ||||
|             let option = { | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: '重点用户关注排行', | ||||
|                         textStyle: { | ||||
|                             color: "#fff", | ||||
|                             fontSize: 12 | ||||
|                         }, | ||||
|                         top: '4%', | ||||
|                         left: '4%' | ||||
|                     }, | ||||
|                     { | ||||
|                         text: "分类排行标题", | ||||
|                         textStyle: { | ||||
|                             color: "#fff", | ||||
|                             fontSize: 12 | ||||
|                         }, | ||||
|                         top: '4%', | ||||
|                         left: '55%' | ||||
|                     }, | ||||
|                 ], | ||||
|                 tooltip: { | ||||
|                     trigger: 'axis', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     } | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     data: [ | ||||
|                         {name: '人数', icon: 'circle'}, | ||||
|                         {name: '金额', icon: 'circle'}, | ||||
| 
 | ||||
|                     ], | ||||
|                     gridIndex: 3, | ||||
|                     orient: 'vertical', | ||||
|                     right: "44%", | ||||
|                     bottom: "6%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#00CCFF', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: { | ||||
|                     top: '15%', | ||||
|                     left: '3%', | ||||
|                     right: '50%', | ||||
|                     bottom: '5%', | ||||
|                     containLabel: true | ||||
|                 }, | ||||
|                 xAxis: { | ||||
|                     type: 'value', | ||||
|                     axisLabel: {show: false}, | ||||
|                     axisTick: {show: false}, | ||||
|                     splitLine: {show: false}, | ||||
|                     axisLine: {show: false} | ||||
|                 }, | ||||
|                 yAxis: { | ||||
|                     type: 'category', | ||||
|                     axisTick: {show: false}, | ||||
|                     splitLine: {show: false}, | ||||
|                     axisLine: {show: false}, | ||||
|                     axisLabel: { | ||||
|                         color: '#fff', | ||||
|                         backgroundColor: '#A34FFA', | ||||
|                         borderRadius: 3, | ||||
|                         margin: 0, | ||||
|                         padding: [1, 3, 1, 3] | ||||
|                     }, | ||||
|                     inverse: true, | ||||
|                     data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] | ||||
|                 }, | ||||
|                 angleAxis: { | ||||
|                     type: 'category', | ||||
|                     axisLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#172E6E' | ||||
|                         } | ||||
|                     }, | ||||
|                     startAngle: 135, | ||||
|                     axisLabel: { | ||||
|                         color: '#04E8EB', | ||||
|                         fontSize: 10 | ||||
|                     }, | ||||
|                     axisTick: {show: false}, | ||||
|                     data: ['分类1', '分类2', '分类3', '分类4'], | ||||
|                     z: 10 | ||||
|                 }, | ||||
|                 radiusAxis: { | ||||
|                     splitLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#172E6E' | ||||
|                         } | ||||
|                     }, | ||||
|                     axisTick: {show: false}, | ||||
|                     axisLabel: {show: false}, | ||||
|                     axisLine: { | ||||
|                         show: false | ||||
|                     } | ||||
|                 }, | ||||
|                 polar: { | ||||
|                     center: ['72%', '55%'], | ||||
|                     radius: "65%", | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '分类1', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#5304EC', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
| 
 | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类2', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#6829EE', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类3', | ||||
|                         type: 'bar', | ||||
|                         stack: '总量', | ||||
|                         barWidth: 8, | ||||
|                         itemStyle: { | ||||
|                             color: '#8040ED', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '其他', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 8, | ||||
|                         stack: '总量', | ||||
|                         itemStyle: { | ||||
|                             color: '#9D50EC', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '其他', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 8, | ||||
|                         stack: '总量', | ||||
|                         itemStyle: { | ||||
|                             color: '#A77BDE', | ||||
|                             borderRadius: [0, 8, 8, 0] | ||||
|                         }, | ||||
|                         label: { | ||||
|                             show: false, | ||||
|                             position: 'insideRight' | ||||
|                         }, | ||||
|                         data: [100, 90, 80, 70, 60, 50, 40, 30, 20, 15] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'bar', | ||||
|                         data: [1, 2, 3, 4], | ||||
|                         coordinateSystem: 'polar', | ||||
|                         name: '金额', | ||||
|                         itemStyle: { | ||||
|                             color: '#0AB9FE' | ||||
|                         }, | ||||
|                         stack: 'a' | ||||
|                     }, { | ||||
|                         type: 'bar', | ||||
|                         data: [2, 4, 6, 1], | ||||
|                         coordinateSystem: 'polar', | ||||
|                         name: '人数', | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 1, | ||||
|                                 x2: 0, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(104,18,147,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: '#1D2584' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         stack: 'a' | ||||
|                     } | ||||
| 
 | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setDeviceSafe(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .deviceSafeRisk { | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										79
									
								
								src/views/modules/monitoring/components/page3/chart7.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/views/modules/monitoring/components/page3/chart7.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,79 @@ | ||||
| <template> | ||||
|     <div class="ring"> | ||||
|         <canvas :id="id"></canvas> | ||||
|     </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     props: { | ||||
|         id: String, | ||||
|         title: String, | ||||
|         color: String | ||||
|     }, | ||||
|     name: '', | ||||
|     data() { | ||||
|         return {} | ||||
|     }, | ||||
|     methods: { | ||||
|         drawRing() { | ||||
|             var canvas = document.getElementById(this.id); | ||||
|             var context = canvas.getContext('2d'); | ||||
|             canvas.width = this.$el.offsetWidth; | ||||
|             canvas.height = this.$el.offsetHeight; | ||||
|             context.lineWidth = 1; | ||||
|             context.strokeStyle = "#16417F"; | ||||
|             context.save(); | ||||
|             context.beginPath(); | ||||
|             context.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2 - 6, 0, 2 * Math.PI, false); | ||||
|             context.stroke(); | ||||
|             context.restore(); | ||||
|             context.save(); | ||||
|             context.beginPath(); | ||||
|             context.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2 - 12, 0, 2 * Math.PI, false); | ||||
|             context.stroke(); | ||||
|             context.restore(); | ||||
|             var percent1 = 60; | ||||
|             var percent2 = 60; | ||||
|             var angle1 = percent1 * 3.6 - 90; | ||||
|             var angle2 = percent2 * 3.6 - 60; | ||||
|             context.lineWidth = 4; | ||||
| 
 | ||||
|             context.lineCap = 'round'; | ||||
|             context.save(); | ||||
|             context.strokeStyle = "#035EFF"; | ||||
|             context.beginPath(); | ||||
|             context.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2 - 6, -Math.PI / 2, angle1 * Math.PI / 180, false); | ||||
|             context.stroke(); | ||||
|             context.restore(); | ||||
|             context.save(); | ||||
|             context.beginPath(); | ||||
|             context.strokeStyle = this.color; | ||||
|             context.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2 - 12, -Math.PI / 6, angle2 * Math.PI / 180, false); | ||||
|             context.stroke(); | ||||
|             context.restore(); | ||||
|             context.save(); | ||||
|             context.font = '10px Microsoft YaHei'; | ||||
|             context.fillStyle = '#fff'; | ||||
|             if (this.title.length > 4) { | ||||
|                 context.fillText(this.title, canvas.width / 2 - 25, canvas.height / 2 + 3); | ||||
|             } else { | ||||
|                 context.fillText(this.title, canvas.width / 2 - 20, canvas.height / 2 + 3); | ||||
|             } | ||||
| 
 | ||||
|             context.restore(); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.drawRing(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .ring { | ||||
|     width: 100%; | ||||
|     height: 33.33333%; | ||||
|     text-align: center; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										633
									
								
								src/views/modules/monitoring/components/page3/chart8.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										633
									
								
								src/views/modules/monitoring/components/page3/chart8.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,633 @@ | ||||
| <template> | ||||
|     <div class="hotWords"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: 'hotWords', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         // 舆论、心里风险分析 | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     data: [ | ||||
|                         {name: '分类排行', icon: 'circle'}, | ||||
|                         {name: '用户排行', icon: 'circle'}, | ||||
| 
 | ||||
|                     ], | ||||
|                     gridIndex: 3, | ||||
|                     left: "28.5%", | ||||
|                     top: "4%", | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#00CCFF', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 grid: [ | ||||
|                     { | ||||
|                         left: "10%", | ||||
|                         top: '12%', | ||||
|                         bottom: "64%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                     { | ||||
|                         left: "48%", | ||||
|                         top: '12%', | ||||
|                         bottom: "64%", | ||||
|                         width: 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         right: "15%", | ||||
|                         top: '12%', | ||||
|                         bottom: "64%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                     { | ||||
|                         left: "10%", | ||||
|                         top: '41.5%', | ||||
|                         bottom: "35%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                     { | ||||
|                         left: "48%", | ||||
|                         top: '41.5%', | ||||
|                         bottom: "35%", | ||||
|                         width: 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         right: "15%", | ||||
|                         top: '41.5%', | ||||
|                         bottom: "35%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                     { | ||||
|                         left: "10%", | ||||
|                         top: '70%', | ||||
|                         bottom: "5%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                     { | ||||
|                         left: "48%", | ||||
|                         top: '70%', | ||||
|                         bottom: "5%", | ||||
|                         width: 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         right: "15%", | ||||
|                         top: '70%', | ||||
|                         bottom: "5%", | ||||
|                         width: '35%' | ||||
|                     }, | ||||
|                 ], | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         inverse: true, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 1, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 2, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 3, | ||||
|                         inverse: true, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 4, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 5, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 6, | ||||
|                         inverse: true, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 7, | ||||
|                     }, | ||||
|                     { | ||||
|                         type: "value", | ||||
|                         gridIndex: 8, | ||||
|                         splitLine: {show: false}, | ||||
|                         axisLine: {show: false}, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                     }, | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 1, | ||||
|                         offset: -1, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 1, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         gridIndex: 2, | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         gridIndex: 3, | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 4, | ||||
|                         offset: -1, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 4, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         gridIndex: 5, | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         gridIndex: 6, | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 7, | ||||
|                         offset: -1, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2], | ||||
|                         gridIndex: 7, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#153575' | ||||
|                             } | ||||
|                         }, | ||||
|                         axisTick: { | ||||
|                             color: '#153575' | ||||
|                         }, | ||||
|                         boundaryGap: false, | ||||
|                         showMinLabel: true, | ||||
|                         showMaxLabel: true, | ||||
|                         axisLabel: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         data: [1, 2, 3, 4, 5], | ||||
|                         gridIndex: 8, | ||||
|                         inverse: true, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: {show: false} | ||||
|                     }, | ||||
|                 ], | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '分类排行', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 6, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'left', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(4,85,229,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(4,85,229,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '分类数据1' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '分类数据2' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '分类数据3' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '分类数据4' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '分类数据5' | ||||
|                             }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '用户排行', | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 2, | ||||
|                         yAxisIndex: 3, | ||||
|                         barWidth: 6, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'right', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(1,176,223,0)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(1,176,223,1)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '张学友' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '刘德华' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '郭富城' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '黎明' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '周华健' | ||||
|                             }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类排行', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 6, | ||||
|                         xAxisIndex: 3, | ||||
|                         yAxisIndex: 4, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'left', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(4,85,229,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(4,85,229,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '分类数据1' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '分类数据2' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '分类数据3' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '分类数据4' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '分类数据5' | ||||
|                             }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '用户排行', | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 5, | ||||
|                         yAxisIndex: 7, | ||||
|                         barWidth: 6, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'right', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(1,176,223,0)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(1,176,223,1)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '张学友' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '刘德华' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '郭富城' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '黎明' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '周华健' | ||||
|                             }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '分类排行', | ||||
|                         type: 'bar', | ||||
|                         barWidth: 6, | ||||
|                         xAxisIndex: 6, | ||||
|                         yAxisIndex: 8, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'left', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(4,85,229,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(4,85,229,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '分类数据1' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '分类数据2' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '分类数据3' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '分类数据4' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '分类数据5' | ||||
|                             }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         name: '用户排行', | ||||
|                         type: 'bar', | ||||
|                         xAxisIndex: 8, | ||||
|                         yAxisIndex: 11, | ||||
|                         barWidth: 6, | ||||
|                         label: { | ||||
|                             show: true, | ||||
|                             position: 'right', | ||||
|                             formatter: "{b}", | ||||
|                             color: '#6EDDF2' | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: { // 颜色线性渐变 | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 1, | ||||
|                                 y2: 0, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(1,176,223,0)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(1,176,223,1)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             }, | ||||
|                             borderRadius: 5, | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 500, | ||||
|                                 name: '张学友' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 424, | ||||
|                                 name: '刘德华' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 332, | ||||
|                                 name: '郭富城' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 264, | ||||
|                                 name: '黎明' | ||||
|                             }, | ||||
|                             { | ||||
|                                 value: 144, | ||||
|                                 name: '周华健' | ||||
|                             }, | ||||
|                         ] | ||||
|                     } | ||||
|                 ] | ||||
| 
 | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .hotWords { | ||||
|     height: 100%; | ||||
|     width: 70%; | ||||
|     float: right; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										845
									
								
								src/views/modules/monitoring/components/page3/chinaMap.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										845
									
								
								src/views/modules/monitoring/components/page3/chinaMap.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,845 @@ | ||||
| <template> | ||||
|     <div class="chinaMap"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import "@/lib/china.js" | ||||
| 
 | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setMap() { | ||||
|             var data = [ | ||||
|                 {name: '鄂尔多斯', value: 125}, | ||||
|                 {name: '广州', value: 238}, | ||||
|                 {name: '贵阳', value: 171}, | ||||
|                 {name: '宝鸡', value: 272}, | ||||
|                 {name: '长沙', value: 175}, | ||||
|                 {name: '衢州', value: 177}, | ||||
|                 {name: '廊坊', value: 193}, | ||||
|                 {name: '菏泽', value: 194}, | ||||
|                 {name: '合肥', value: 229}, | ||||
|                 {name: '大庆', value: 279} | ||||
|             ]; | ||||
|             var geoCoordMap = { | ||||
|                 '海门': [121.15, 31.89], | ||||
|                 '鄂尔多斯': [109.781327, 39.608266], | ||||
|                 '招远': [120.38, 37.35], | ||||
|                 '舟山': [122.207216, 29.985295], | ||||
|                 '齐齐哈尔': [123.97, 47.33], | ||||
|                 '盐城': [120.13, 33.38], | ||||
|                 '赤峰': [118.87, 42.28], | ||||
|                 '青岛': [120.33, 36.07], | ||||
|                 '乳山': [121.52, 36.89], | ||||
|                 '金昌': [102.188043, 38.520089], | ||||
|                 '泉州': [118.58, 24.93], | ||||
|                 '莱西': [120.53, 36.86], | ||||
|                 '日照': [119.46, 35.42], | ||||
|                 '胶南': [119.97, 35.88], | ||||
|                 '南通': [121.05, 32.08], | ||||
|                 '拉萨': [91.11, 29.97], | ||||
|                 '云浮': [112.02, 22.93], | ||||
|                 '梅州': [116.1, 24.55], | ||||
|                 '文登': [122.05, 37.2], | ||||
|                 '上海': [121.48, 31.22], | ||||
|                 '攀枝花': [101.718637, 26.582347], | ||||
|                 '威海': [122.1, 37.5], | ||||
|                 '承德': [117.93, 40.97], | ||||
|                 '厦门': [118.1, 24.46], | ||||
|                 '汕尾': [115.375279, 22.786211], | ||||
|                 '潮州': [116.63, 23.68], | ||||
|                 '丹东': [124.37, 40.13], | ||||
|                 '太仓': [121.1, 31.45], | ||||
|                 '曲靖': [103.79, 25.51], | ||||
|                 '烟台': [121.39, 37.52], | ||||
|                 '福州': [119.3, 26.08], | ||||
|                 '瓦房店': [121.979603, 39.627114], | ||||
|                 '即墨': [120.45, 36.38], | ||||
|                 '抚顺': [123.97, 41.97], | ||||
|                 '玉溪': [102.52, 24.35], | ||||
|                 '张家口': [114.87, 40.82], | ||||
|                 '阳泉': [113.57, 37.85], | ||||
|                 '莱州': [119.942327, 37.177017], | ||||
|                 '湖州': [120.1, 30.86], | ||||
|                 '汕头': [116.69, 23.39], | ||||
|                 '昆山': [120.95, 31.39], | ||||
|                 '宁波': [121.56, 29.86], | ||||
|                 '湛江': [110.359377, 21.270708], | ||||
|                 '揭阳': [116.35, 23.55], | ||||
|                 '荣成': [122.41, 37.16], | ||||
|                 '连云港': [119.16, 34.59], | ||||
|                 '葫芦岛': [120.836932, 40.711052], | ||||
|                 '常熟': [120.74, 31.64], | ||||
|                 '东莞': [113.75, 23.04], | ||||
|                 '河源': [114.68, 23.73], | ||||
|                 '淮安': [119.15, 33.5], | ||||
|                 '泰州': [119.9, 32.49], | ||||
|                 '南宁': [108.33, 22.84], | ||||
|                 '营口': [122.18, 40.65], | ||||
|                 '惠州': [114.4, 23.09], | ||||
|                 '江阴': [120.26, 31.91], | ||||
|                 '蓬莱': [120.75, 37.8], | ||||
|                 '韶关': [113.62, 24.84], | ||||
|                 '嘉峪关': [98.289152, 39.77313], | ||||
|                 '广州': [113.23, 23.16], | ||||
|                 '延安': [109.47, 36.6], | ||||
|                 '太原': [112.53, 37.87], | ||||
|                 '清远': [113.01, 23.7], | ||||
|                 '中山': [113.38, 22.52], | ||||
|                 '昆明': [102.73, 25.04], | ||||
|                 '寿光': [118.73, 36.86], | ||||
|                 '盘锦': [122.070714, 41.119997], | ||||
|                 '长治': [113.08, 36.18], | ||||
|                 '深圳': [114.07, 22.62], | ||||
|                 '珠海': [113.52, 22.3], | ||||
|                 '宿迁': [118.3, 33.96], | ||||
|                 '咸阳': [108.72, 34.36], | ||||
|                 '铜川': [109.11, 35.09], | ||||
|                 '平度': [119.97, 36.77], | ||||
|                 '佛山': [113.11, 23.05], | ||||
|                 '海口': [110.35, 20.02], | ||||
|                 '江门': [113.06, 22.61], | ||||
|                 '章丘': [117.53, 36.72], | ||||
|                 '肇庆': [112.44, 23.05], | ||||
|                 '大连': [121.62, 38.92], | ||||
|                 '临汾': [111.5, 36.08], | ||||
|                 '吴江': [120.63, 31.16], | ||||
|                 '石嘴山': [106.39, 39.04], | ||||
|                 '沈阳': [123.38, 41.8], | ||||
|                 '苏州': [120.62, 31.32], | ||||
|                 '茂名': [110.88, 21.68], | ||||
|                 '嘉兴': [120.76, 30.77], | ||||
|                 '长春': [125.35, 43.88], | ||||
|                 '胶州': [120.03336, 36.264622], | ||||
|                 '银川': [106.27, 38.47], | ||||
|                 '张家港': [120.555821, 31.875428], | ||||
|                 '三门峡': [111.19, 34.76], | ||||
|                 '锦州': [121.15, 41.13], | ||||
|                 '南昌': [115.89, 28.68], | ||||
|                 '柳州': [109.4, 24.33], | ||||
|                 '三亚': [109.511909, 18.252847], | ||||
|                 '自贡': [104.778442, 29.33903], | ||||
|                 '吉林': [126.57, 43.87], | ||||
|                 '阳江': [111.95, 21.85], | ||||
|                 '泸州': [105.39, 28.91], | ||||
|                 '西宁': [101.74, 36.56], | ||||
|                 '宜宾': [104.56, 29.77], | ||||
|                 '呼和浩特': [111.65, 40.82], | ||||
|                 '成都': [104.06, 30.67], | ||||
|                 '大同': [113.3, 40.12], | ||||
|                 '镇江': [119.44, 32.2], | ||||
|                 '桂林': [110.28, 25.29], | ||||
|                 '张家界': [110.479191, 29.117096], | ||||
|                 '宜兴': [119.82, 31.36], | ||||
|                 '北海': [109.12, 21.49], | ||||
|                 '西安': [108.95, 34.27], | ||||
|                 '金坛': [119.56, 31.74], | ||||
|                 '东营': [118.49, 37.46], | ||||
|                 '牡丹江': [129.58, 44.6], | ||||
|                 '遵义': [106.9, 27.7], | ||||
|                 '绍兴': [120.58, 30.01], | ||||
|                 '扬州': [119.42, 32.39], | ||||
|                 '常州': [119.95, 31.79], | ||||
|                 '潍坊': [119.1, 36.62], | ||||
|                 '重庆': [106.54, 29.59], | ||||
|                 '台州': [121.420757, 28.656386], | ||||
|                 '南京': [118.78, 32.04], | ||||
|                 '滨州': [118.03, 37.36], | ||||
|                 '贵阳': [106.71, 26.57], | ||||
|                 '无锡': [120.29, 31.59], | ||||
|                 '本溪': [123.73, 41.3], | ||||
|                 '克拉玛依': [84.77, 45.59], | ||||
|                 '渭南': [109.5, 34.52], | ||||
|                 '马鞍山': [118.48, 31.56], | ||||
|                 '宝鸡': [107.15, 34.38], | ||||
|                 '焦作': [113.21, 35.24], | ||||
|                 '句容': [119.16, 31.95], | ||||
|                 '北京': [116.46, 39.92], | ||||
|                 '徐州': [117.2, 34.26], | ||||
|                 '衡水': [115.72, 37.72], | ||||
|                 '包头': [110, 40.58], | ||||
|                 '绵阳': [104.73, 31.48], | ||||
|                 '乌鲁木齐': [87.68, 43.77], | ||||
|                 '枣庄': [117.57, 34.86], | ||||
|                 '杭州': [120.19, 30.26], | ||||
|                 '淄博': [118.05, 36.78], | ||||
|                 '鞍山': [122.85, 41.12], | ||||
|                 '溧阳': [119.48, 31.43], | ||||
|                 '库尔勒': [86.06, 41.68], | ||||
|                 '安阳': [114.35, 36.1], | ||||
|                 '开封': [114.35, 34.79], | ||||
|                 '济南': [117, 36.65], | ||||
|                 '德阳': [104.37, 31.13], | ||||
|                 '温州': [120.65, 28.01], | ||||
|                 '九江': [115.97, 29.71], | ||||
|                 '邯郸': [114.47, 36.6], | ||||
|                 '临安': [119.72, 30.23], | ||||
|                 '兰州': [103.73, 36.03], | ||||
|                 '沧州': [116.83, 38.33], | ||||
|                 '临沂': [118.35, 35.05], | ||||
|                 '南充': [106.110698, 30.837793], | ||||
|                 '天津': [117.2, 39.13], | ||||
|                 '富阳': [119.95, 30.07], | ||||
|                 '泰安': [117.13, 36.18], | ||||
|                 '诸暨': [120.23, 29.71], | ||||
|                 '郑州': [113.65, 34.76], | ||||
|                 '哈尔滨': [126.63, 45.75], | ||||
|                 '聊城': [115.97, 36.45], | ||||
|                 '芜湖': [118.38, 31.33], | ||||
|                 '唐山': [118.02, 39.63], | ||||
|                 '平顶山': [113.29, 33.75], | ||||
|                 '邢台': [114.48, 37.05], | ||||
|                 '德州': [116.29, 37.45], | ||||
|                 '济宁': [116.59, 35.38], | ||||
|                 '荆州': [112.239741, 30.335165], | ||||
|                 '宜昌': [111.3, 30.7], | ||||
|                 '义乌': [120.06, 29.32], | ||||
|                 '丽水': [119.92, 28.45], | ||||
|                 '洛阳': [112.44, 34.7], | ||||
|                 '秦皇岛': [119.57, 39.95], | ||||
|                 '株洲': [113.16, 27.83], | ||||
|                 '石家庄': [114.48, 38.03], | ||||
|                 '莱芜': [117.67, 36.19], | ||||
|                 '常德': [111.69, 29.05], | ||||
|                 '保定': [115.48, 38.85], | ||||
|                 '湘潭': [112.91, 27.87], | ||||
|                 '金华': [119.64, 29.12], | ||||
|                 '岳阳': [113.09, 29.37], | ||||
|                 '长沙': [113, 28.21], | ||||
|                 '衢州': [118.88, 28.97], | ||||
|                 '廊坊': [116.7, 39.53], | ||||
|                 '菏泽': [115.480656, 35.23375], | ||||
|                 '合肥': [117.27, 31.86], | ||||
|                 '武汉': [114.31, 30.52], | ||||
|                 '大庆': [125.03, 46.58] | ||||
|             }; | ||||
| 
 | ||||
|             var convertData = function (data) { | ||||
|                 var res = []; | ||||
|                 for (var i = 0; i < data.length; i++) { | ||||
|                     var geoCoord = geoCoordMap[data[i].name]; | ||||
|                     if (geoCoord) { | ||||
|                         res.push({ | ||||
|                             name: data[i].name, | ||||
|                             value: geoCoord.concat(data[i].value) | ||||
|                         }); | ||||
|                     } | ||||
|                 } | ||||
|                 return res; | ||||
|             }; | ||||
| 
 | ||||
|             let option = { | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: '数据1', | ||||
|                         top: '4.8%', | ||||
|                         left: '7.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '数据2', | ||||
|                         top: '11.5%', | ||||
|                         left: '7.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '数据3', | ||||
|                         top: '4.8%', | ||||
|                         left: '37.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '数据4', | ||||
|                         top: '11.5%', | ||||
|                         left: '37.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '数据5', | ||||
|                         top: '4.8%', | ||||
|                         left: '67.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '数据6', | ||||
|                         top: '11.5%', | ||||
|                         left: '67.5%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#fff', | ||||
|                             fontSize: 12, | ||||
|                             fontWeight: 'normal', | ||||
|                         } | ||||
|                     } | ||||
|                 ], | ||||
|                 grid: [ | ||||
|                     { | ||||
|                         top: '3%', | ||||
|                         left: '17.5%', | ||||
|                         height: '5%', | ||||
|                         right: "67.5%" | ||||
|                     }, | ||||
|                     { | ||||
|                         top: '10%', | ||||
|                         height: '5%', | ||||
|                         left: '15.5%', | ||||
|                         right: "67.5%" | ||||
|                     }, | ||||
|                     { | ||||
|                         top: '3%', | ||||
|                         left: '47.5%', | ||||
|                         height: '5%', | ||||
|                         right: "37.5%" | ||||
|                     }, | ||||
|                     { | ||||
|                         top: '10%', | ||||
|                         height: '5%', | ||||
|                         left: '47.5%', | ||||
|                         right: "37.5%" | ||||
|                     }, | ||||
|                     { | ||||
|                         top: '3%', | ||||
|                         left: '77.5%', | ||||
|                         height: '5%', | ||||
|                         right: "7.5%" | ||||
|                     }, | ||||
|                     { | ||||
|                         top: '10%', | ||||
|                         height: '5%', | ||||
|                         left: '77.5%', | ||||
|                         right: "7.5%" | ||||
|                     } | ||||
|                 ], | ||||
|                 xAxis: [ | ||||
|                     { | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#4F2561' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 1, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#51323E' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 2, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#55594B' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 3, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#451C45' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 4, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#1E5A79' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 5, | ||||
|                         axisLabel: {show: false}, | ||||
|                         axisTick: {show: false}, | ||||
|                         axisLine: { | ||||
|                             lineStyle: { | ||||
|                                 color: '#172E6F' | ||||
|                             } | ||||
|                         }, | ||||
|                         inverse: true, | ||||
|                         boundaryGap: false, | ||||
|                         data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||||
|                     }, | ||||
|                 ], | ||||
|                 yAxis: [ | ||||
|                     { | ||||
|                         type: 'value', | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false} | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 1, | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         type: 'value' | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 2, | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         type: 'value' | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 3, | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         type: 'value' | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 4, | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         type: 'value' | ||||
|                     }, | ||||
|                     { | ||||
|                         gridIndex: 5, | ||||
|                         axisLabel: {show: false}, | ||||
|                         position: "right", | ||||
|                         axisLine: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                         axisTick: {show: false}, | ||||
|                         splitLine: {show: false}, | ||||
|                         type: 'value' | ||||
|                     }, | ||||
|                 ], | ||||
|                 geo: { | ||||
|                     map: 'china', | ||||
|                     emphasis: { | ||||
|                         label: { | ||||
|                             show: false | ||||
|                         }, | ||||
| 
 | ||||
|                     }, | ||||
|                     roam: false, | ||||
|                     itemStyle: { | ||||
|                         areaColor: '#2043AA', | ||||
|                         borderColor: '#111' | ||||
|                     } | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: 'pm2.5', | ||||
|                         type: 'effectScatter', | ||||
|                         coordinateSystem: 'geo', | ||||
|                         data: convertData(data.sort(function (a, b) { | ||||
|                             return b.value - a.value; | ||||
|                         }).slice(0, 10)), | ||||
|                         symbolSize: function (val) { | ||||
|                             return val[2] / 15; | ||||
|                         }, | ||||
|                         showEffectOn: 'render', | ||||
|                         // rippleEffect: { // 效果 | ||||
|                         //     brushType: 'stroke' | ||||
|                         // }, | ||||
|                         emphasis: { | ||||
|                             scale: true | ||||
|                         }, | ||||
|                         label: { | ||||
|                             formatter: '{b}', | ||||
|                             position: 'right', | ||||
|                             show: false | ||||
|                         }, | ||||
|                         itemStyle: { | ||||
|                             color: function (params) { | ||||
|                                 var colorList = ['#FFA200', '#0006FF', '#D6FC01', '#00D8FF', '#FF00CC', '#FF1200'] | ||||
|                                 if (params.dataIndex <= 6) { | ||||
|                                     return colorList[params.dataIndex] | ||||
|                                 } else { | ||||
|                                     return colorList[params.dataIndex % 6] | ||||
|                                 } | ||||
|                             }, | ||||
|                             shadowBlur: 10, | ||||
|                         }, | ||||
|                         zlevel: 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
| 
 | ||||
|                         smooth: true, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(161,23,128,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(161,23,128,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(161,23,128,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         //4,5,3,9,2,4,8,3,4,5 | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(161,23,128,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
|                         symbol: "none", | ||||
|                         smooth: true, | ||||
|                         xAxisIndex: 1, | ||||
|                         yAxisIndex: 1, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(196,103,20,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(196,103,20,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(196,103,20,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(196,103,20,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
|                         xAxisIndex: 2, | ||||
|                         yAxisIndex: 2, | ||||
|                         smooth: true, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(181,174,28,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(181,174,28,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(181,174,28,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         //4,5,3,9,2,4,8,3,4,5 | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(181,174,28,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
|                         symbol: "none", | ||||
|                         smooth: true, | ||||
|                         xAxisIndex: 3, | ||||
|                         yAxisIndex: 3, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(165,15,71,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(165,15,71,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(165,15,71,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(165,15,71,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
|                         xAxisIndex: 4, | ||||
|                         yAxisIndex: 4, | ||||
|                         smooth: true, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(16,182,165,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(16,182,165,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(16,182,165,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         //4,5,3,9,2,4,8,3,4,5 | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(16,182,165,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         type: 'line', | ||||
|                         symbol: "none", | ||||
|                         smooth: true, | ||||
|                         xAxisIndex: 5, | ||||
|                         yAxisIndex: 5, | ||||
|                         lineStyle: { | ||||
|                             color: 'rgba(9,83,176,1)', | ||||
|                             width: 1 | ||||
|                         }, | ||||
|                         areaStyle: { | ||||
|                             color: { | ||||
|                                 type: 'linear', | ||||
|                                 x: 0, | ||||
|                                 y: 0, | ||||
|                                 x2: 0, | ||||
|                                 y2: 1, | ||||
|                                 colorStops: [{ | ||||
|                                     offset: 0, color: 'rgba(9,83,176,1)' // 0% 处的颜色 | ||||
|                                 }, { | ||||
|                                     offset: 1, color: 'rgba(9,83,176,0)' // 100% 处的颜色 | ||||
|                                 }], | ||||
|                                 globalCoord: false // 缺省为 false | ||||
|                             } | ||||
|                         }, | ||||
|                         data: [ | ||||
|                             { | ||||
|                                 value: 4, symbol: 'circle', | ||||
|                                 symbolSize: 5, | ||||
|                                 itemStyle: { | ||||
|                                     color: '#293880', | ||||
|                                     borderColor: 'rgba(9,83,176,1)', | ||||
|                                     borderWidth: 1, | ||||
|                                 }, | ||||
|                             }, | ||||
|                             {value: 5, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 9, symbol: 'none'}, | ||||
|                             {value: 2, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 8, symbol: 'none'}, | ||||
|                             {value: 3, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
|                             {value: 4, symbol: 'none'}, | ||||
| 
 | ||||
|                         ] | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setMap(); | ||||
|     } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .chinaMap { | ||||
|     height: 100%; | ||||
| } | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										296
									
								
								src/views/modules/monitoring/components/page4/chinaMap.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										296
									
								
								src/views/modules/monitoring/components/page4/chinaMap.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,296 @@ | ||||
| <template> | ||||
|     <div class="chinaMap"></div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import "@/lib/china.js" | ||||
| 
 | ||||
| export default { | ||||
|     name: '', | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setMap() { | ||||
|             var data = [ | ||||
|                 {name: '北京', value: 1176}, | ||||
|                 {name: '上海', value: 2765}, | ||||
|                 {name: '天津', value: 509}, | ||||
|                 {name: '重庆', value: 610}, | ||||
|                 {name: '黑龙江', value: 1966}, | ||||
|                 {name: '湖北', value: 68309}, | ||||
|                 {name: '台湾', value: 16451}, | ||||
|                 {name: '香港', value: 12368}, | ||||
|                 {name: '河北', value: 1435}, | ||||
|                 {name: '河南', value: 1594}, | ||||
|                 {name: '安徽', value: 1008}, | ||||
|                 {name: '江苏', value: 1603}, | ||||
|                 {name: '浙江', value: 1497}, | ||||
|                 {name: '福建', value: 1314}, | ||||
|                 {name: '广东', value: 3247}, | ||||
|                 {name: '湖南', value: 1197}, | ||||
|                 {name: '四川', value: 1254}, | ||||
|                 {name: '云南', value: 1607}, | ||||
|                 {name: '吉林', value: 579}, | ||||
|                 {name: '内蒙古', value: 613}, | ||||
|                 {name: '辽宁', value: 515}, | ||||
|                 {name: '山东', value: 990}, | ||||
|                 {name: '山西', value: 263}, | ||||
|                 {name: '陕西', value: 701}, | ||||
|                 {name: '甘肃', value: 344}, | ||||
|                 {name: '新疆', value: 981}, | ||||
|                 {name: '宁夏', value: 122}, | ||||
|                 {name: '江西', value: 951}, | ||||
|                 {name: '贵州', value: 159}, | ||||
|                 {name: '广西', value: 355}, | ||||
|                 {name: '海南', value: 190}, | ||||
|                 {name: '青海', value: 30}, | ||||
|                 {name: '澳门', value: 77}, | ||||
|                 {name: '西藏', value: 1}, | ||||
| 
 | ||||
|             ]; | ||||
|             const regions = data.map(item=> { | ||||
|                 return { | ||||
|                     name: item.name, | ||||
|                     itemStyle: { | ||||
|                         areaColor: '#2043AA' | ||||
|                     }, | ||||
|                     emphasis: { | ||||
|                         itemStyle : { | ||||
|                             areaColor: '#2043AA' | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }) | ||||
|             let option = { | ||||
|                 title: [ | ||||
|                     { | ||||
|                         text: "现有确诊 {a| 3204} \n {b|较昨日} {c| +6}", | ||||
|                         top: 0, | ||||
|                         left: '7%', | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#E64546', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#E64546' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '现有疑似 {a| 2} \n {b|较昨日} {c| +1}', | ||||
|                         top: 0, | ||||
|                         left: '40%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#FF9985', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#FF9985' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '境外输入 {a| 9794} \n {b|较昨日} {c| +15}', | ||||
|                         top: 0, | ||||
|                         right: '7%', | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#476DA0', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#476DA0' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '累计确诊 {a| 126836} \n {b|较昨日} {c| +60}', | ||||
|                         top: '14%', | ||||
|                         left: '7%', | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#B80909', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#B80909' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '累计治愈 {a| 117934} \n {b|较昨日} {c| +54}', | ||||
|                         top: '14%', | ||||
|                         left: '40%', | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#10AEB5', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#10AEB5' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         text: '累计死亡 {a| 5997} \n {b|较昨日} {c| +1}', | ||||
|                         top: '14%', | ||||
|                         right: '7%', | ||||
| 
 | ||||
|                         textStyle: { | ||||
|                             color: '#6dd0e3', | ||||
|                             fontSize: 16, | ||||
|                             fontWeight: 'normal', | ||||
|                             rich: { | ||||
|                                 a: { | ||||
|                                     color: '#4D5054', | ||||
|                                     fontSize: 16 | ||||
|                                 }, | ||||
|                                 b: { | ||||
|                                     fontSize: 12, | ||||
|                                     lineHeight: 20, | ||||
|                                     color: '#163794' | ||||
|                                 }, | ||||
|                                 c: { | ||||
|                                     fontSize: 12, | ||||
|                                     color: '#4D5054' | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                 ], | ||||
|                 visualMap: { | ||||
|                     left: 'right', | ||||
|                     type: 'piecewise', | ||||
|                     pieces: [ | ||||
|                         {gte: 0, lte: 9, label: '0-9', color: '#FFE5DB'}, | ||||
|                         {gte: 10, lte: 99, label: '10-99', color: '#FF9985'}, | ||||
|                         {gte: 100, lte: 999, label: '10-999', color: '#F57567'}, | ||||
|                         {gte: 1000, lte: 9999, label: '1000-9999', color: '#E64546'}, | ||||
|                         {gte: 10000, label: '10000', color: '#B80909'}, | ||||
|                     ], | ||||
|                     showLabel: true, | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     } | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     show: false | ||||
|                 }, | ||||
|                 tooltip: { | ||||
|                     show: true, | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10, | ||||
|                     } | ||||
|                 }, | ||||
|                 geo: { | ||||
|                     map: 'china', | ||||
|                     top: '20%', | ||||
|                     label: { | ||||
|                         show: true, | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10 | ||||
|                     }, | ||||
|                     roam: false, | ||||
|                     itemStyle: { | ||||
|                         areaColor: '#2043AA', | ||||
|                         borderColor: '#676e6f', | ||||
|                     }, | ||||
|                     regions: regions | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         name: '累计确诊人数', | ||||
|                         type: 'map', | ||||
|                         label: { | ||||
|                             position: 'center', | ||||
|                             show: true | ||||
|                         }, | ||||
|                         geoIndex: 0, | ||||
|                         data: data | ||||
|                     }, | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize() | ||||
|             this.myChart.setOption(option); | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setMap(); | ||||
|     } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .chinaMap { | ||||
|     height: 100%; | ||||
| } | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										113
									
								
								src/views/modules/monitoring/components/pie.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								src/views/modules/monitoring/components/pie.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,113 @@ | ||||
| <template> | ||||
|     <div class="webPie"> | ||||
|         <div class="webPie-title"> | ||||
|             <span class="subtitle"><span class="leftCircle" | ||||
|                                          :style="{background:data.color}"></span>{{ data.title }}<span | ||||
|                 class="rightCircle" :style="{background:data.color}"></span></span> | ||||
|         </div> | ||||
|         <div class="webPie-content" :id="id"> | ||||
| 
 | ||||
|         </div> | ||||
|     </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         id: String, | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart: null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     backgroundColor: '#11367a', | ||||
|                     textStyle: { | ||||
|                         color: '#6dd0e3', | ||||
|                         fontSize: 10 | ||||
|                     }, | ||||
|                     formatter: "{b}:{d}%" | ||||
|                 }, | ||||
|                 series: [ | ||||
|                     { | ||||
|                         type: 'pie', | ||||
|                         radius: '70%', | ||||
|                         center: ['50%', '50%'], | ||||
|                         label: { | ||||
|                             color: '#75deef', | ||||
|                             fontSize: 8, | ||||
|                             formatter: function (data) { | ||||
|                                 return data.data.name + ' ' + (data.percent).toFixed(0) + '%'; | ||||
|                             } | ||||
|                         }, | ||||
|                         labelLine: { | ||||
|                             length: 10, | ||||
|                             length2: 8, | ||||
|                             lineStyle: { | ||||
|                                 color: 'rgb(57,63,90)' | ||||
|                             } | ||||
|                         }, | ||||
|                         data: this.data.data, | ||||
|                     } | ||||
|                 ] | ||||
|             }; | ||||
|             if (!this.myChart) this.myChart = this.$echarts(document.getElementById(this.id)); | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize(); | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart() | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .webPie { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| 
 | ||||
|     .webPie-title { | ||||
|         height: 20%; | ||||
|         text-align: center; | ||||
| 
 | ||||
|         .subtitle { | ||||
|             color: #68C6D6; | ||||
|             position: relative; | ||||
|             font-size: 12px; | ||||
| 
 | ||||
|             .leftCircle { | ||||
|                 display: block; | ||||
|                 width: 6px; | ||||
|                 height: 6px; | ||||
|                 border-radius: 50%; | ||||
|                 position: absolute; | ||||
|                 left: -15px; | ||||
|                 top: 5px; | ||||
|             } | ||||
| 
 | ||||
|             .rightCircle { | ||||
|                 display: block; | ||||
|                 width: 6px; | ||||
|                 height: 6px; | ||||
|                 border-radius: 50%; | ||||
|                 position: absolute; | ||||
|                 right: -15px; | ||||
|                 top: 5px; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     .webPie-content { | ||||
|         height: 80% | ||||
|     } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										141
									
								
								src/views/modules/monitoring/components/radar.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								src/views/modules/monitoring/components/radar.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,141 @@ | ||||
| <template> | ||||
|     <div class="chart"></div> | ||||
| </template> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .chart { | ||||
|     height: 100%; | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|     name: '', | ||||
|     props: { | ||||
|         data: Object | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             myChart:null | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         setChart() { | ||||
|             let seriesData = [] | ||||
|             this.data.data.forEach(item => { | ||||
|                 seriesData.push( | ||||
|                     { | ||||
|                         value: item.value, | ||||
|                         name: item.name, | ||||
|                         symbol: 'none', | ||||
|                         symbolSize: 5, | ||||
|                         itemStyle: { | ||||
|                             color: item.color | ||||
|                         }, | ||||
|                         lineStyle: { | ||||
|                             color: item.color, | ||||
|                             width: 1, | ||||
|                         }, | ||||
|                         emphasis: { | ||||
|                             lineStyle: { | ||||
|                                 width: 2 | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 ) | ||||
|             }) | ||||
|             let option = { | ||||
|                 tooltip: { | ||||
|                     trigger: 'item', | ||||
|                     axisPointer: {            // 坐标轴指示器,坐标轴触发有效 | ||||
|                         type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow' | ||||
|                     }, | ||||
|                 }, | ||||
|                 title: { | ||||
|                     text: this.data.title, | ||||
|                     top: "5%", | ||||
|                     left: this.data.position[0], | ||||
|                     textStyle: { | ||||
|                         color: '#fff', | ||||
|                         fontSize:12, | ||||
|                     } | ||||
|                 }, | ||||
|                 legend: { | ||||
|                     data: this.data.data.map(item => { | ||||
|                         return {name: item.name, icon: 'circle'} | ||||
|                     }), | ||||
|                     left: "center", | ||||
|                     top: this.data.position[1], | ||||
|                     itemWidth: 7, | ||||
|                     itemHeight: 7, | ||||
|                     textStyle: { | ||||
|                         color: '#67C3D6', | ||||
|                         fontSize: 10 | ||||
|                     } | ||||
|                 }, | ||||
|                 radar: { | ||||
|                     indicator: this.data.indicator, | ||||
|                     center: this.data.center, | ||||
|                     radius: "50%", | ||||
|                     startAngle: 90, | ||||
|                     splitNumber: 4, | ||||
|                     shape: 'circle', | ||||
|                     axisName: { | ||||
|                         textStyle: { | ||||
|                             color: '#0DECF0', | ||||
|                             fontSize: 8, | ||||
|                         } | ||||
|                     }, | ||||
|                     axisNameGap: 3, | ||||
|                     splitArea: { | ||||
|                         areaStyle: { | ||||
|                             color: ['#1166C4', | ||||
|                                 '#0C52A4', '#102F7D', | ||||
|                                 '#13216B'], | ||||
|                         } | ||||
|                     }, | ||||
|                     axisLine: { | ||||
|                         lineStyle: { | ||||
|                             color: '#163794' | ||||
|                         } | ||||
|                     }, | ||||
|                     splitLine: { | ||||
|                         show: false, | ||||
|                         lineStyle: { | ||||
|                             color: '#163794' | ||||
|                         } | ||||
|                     } | ||||
|                 }, | ||||
|                 series: { | ||||
|                     name: '雷达图', | ||||
|                     type: 'radar', | ||||
|                     emphasis: { | ||||
|                         // color: 各异, | ||||
|                         lineStyle: { | ||||
|                             width: 4 | ||||
|                         } | ||||
|                     }, | ||||
|                     data: seriesData | ||||
|                 } | ||||
|             }; | ||||
|             if (this.id == 'bottom_1_2') { | ||||
|                 option.legend.left = '5%'; | ||||
|             } | ||||
|             if (!this.myChart) this.myChart = this.$echarts(this.$el); | ||||
| 
 | ||||
|             this.myChart.clear(); | ||||
|             this.myChart.resize( | ||||
|                 { | ||||
|                     width: this.$el.offsetWidth, | ||||
|                     height: this.$el.offsetHeight | ||||
|                 } | ||||
|             ) | ||||
|             this.myChart.setOption(option); | ||||
|         } | ||||
|     }, | ||||
|     mounted() { | ||||
|         this.setChart(); | ||||
|     }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user