From a355aafef5a635bd31a701127cea097338cee0a7 Mon Sep 17 00:00:00 2001
From: whyczyk <525500596@qq.com>
Date: 星期三, 13 十月 2021 14:55:22 +0800
Subject: [PATCH] 图形跳转对应参数界面功能

---
 src/components/charts/prossPieChart.vue |  371 ++++++++++++++++++++++++++++------------------------
 1 files changed, 198 insertions(+), 173 deletions(-)

diff --git a/src/components/charts/prossPieChart.vue b/src/components/charts/prossPieChart.vue
index d0ad46f..968f5e4 100644
--- a/src/components/charts/prossPieChart.vue
+++ b/src/components/charts/prossPieChart.vue
@@ -1,185 +1,210 @@
 <template>
-  <div class="echarts-wrapper">
-    <div class="echarts-content" ref="chart">
+	<div class="echarts-wrapper">
+		<div class="echarts-content" ref="chart">
 
-    </div>
-  </div>
+		</div>
+	</div>
 </template>
 
 <script>
-  import * as echarts from 'echarts';
-  //寮曞叆chart瀛椾綋鑷�傚簲
-  import {
-    chartFontsize
-  } from '@/assets/js/chartFontsize'
-  export default {
-    name: "prossPieChart",
-    chart: "",
-    chartData: [],
-    props: {
-      id: {
-        require: true,
-        type: String,
-        default: "",
-      },
-    },
-    data() {
-      return {
+import * as echarts from 'echarts';
+//寮曞叆chart瀛椾綋鑷�傚簲
+import {
+	chartFontsize
+} from '@/assets/js/chartFontsize'
+import { checkboxs } from '@/assets/js/powerInfoData'
+export default {
+	name: "prossPieChart",
+	chart: "",
+	chartData: [],
+	props: {
+		id: {
+			require: true,
+			type: String,
+			default: "",
+		},
+	},
+	data() {
+		return {
 
-      }
-    },
-    methods: {
-      setOption(opt) {
-        this.$options.chart.setOption(opt);
-      },
-      setData(sendData) {
-        this.$options.chartData = sendData;
-        let color = sendData.color;
-        let data = sendData.data;
-        let text;
-        if (sendData.unit) {
-          text = sendData.data + sendData.unit;
-        } else {
-          text = sendData.data
-        }
-        let title = sendData.title;
-        let option = {
-          title: {
-            text: '{a|' + title + '}',
-            x: 'center',
-            top: '80%',
-            textStyle: {
-              rich: {
-                a: {
-                  fontSize: chartFontsize(16),
-                  color: '#ffffff'
-                },
-              }
-            },
-            zlevel: 4
-          },
-          polar: {
-            radius: ['65%', '57%'],
-            center: ['50%', '40%'],
-          },
-          angleAxis: {
-            max: 100,
-            show: false,
-          },
-          radiusAxis: {
-            type: 'category',
-            show: true,
-            axisLabel: {
-              show: false,
-            },
-            axisLine: {
-              show: false,
+		}
+	},
+	methods: {
+		toParentPage(value) {
+			if (typeof (value) == 'string') {
+				window.parent.parent.postMessage({
+					cmd: "syncPage",
+					params: {
+						pageInfo: {
+							label: "鐢垫簮瀹炴椂鍛婅",
+							name: "powerRealtimeInfo",
+							src: '#/powerRealtimeInfo/?alarmType=' + value,
+							closable: true
+						},
+					}
+				}, "*");
+			}
+		},
+		setOption(opt) {
+			this.$options.chart.setOption(opt);
+			this.$options.chart.on('click', (params) => {
+				let name = params.seriesName;
+				checkboxs.zt.map(item => {
+					if (item.label == name) {
+						console.log(item.value)
+						this.toParentPage(item.value)
+					}
+				})
+			})
+		},
+		setData(sendData) {
+			this.$options.chartData = sendData;
+			let color = sendData.color;
+			let data = sendData.data;
+			let name = sendData.name;
+			let text;
+			if (sendData.unit) {
+				text = sendData.data + sendData.unit;
+			} else {
+				text = sendData.data
+			}
+			let title = sendData.title;
+			let option = {
+				title: {
+					text: '{a|' + title + '}',
+					x: 'center',
+					top: '80%',
+					textStyle: {
+						rich: {
+							a: {
+								fontSize: chartFontsize(16),
+								color: '#ffffff'
+							},
+						}
+					},
+					zlevel: 4
+				},
+				polar: {
+					radius: ['65%', '57%'],
+					center: ['50%', '40%'],
+				},
+				angleAxis: {
+					max: 100,
+					show: false,
+				},
+				radiusAxis: {
+					type: 'category',
+					show: true,
+					axisLabel: {
+						show: false,
+					},
+					axisLine: {
+						show: false,
 
-            },
-            axisTick: {
-              show: false
-            },
-          },
-          series: [{
-              name: '',
-              type: 'pie',
-              radius: '75%',
-              center: ['50%', '40%'],
-              emphasis: {
-                scale: false
-              },
-              data: [{
-                value: data,
-                name: ''
-              }],
-              label: {
-                show: false
-              },
-              itemStyle: {
-                color: color
-              },
-              zlevel: 1
-            }, {
-              name: '',
-              type: 'pie',
-              radius: '61%',
-              center: ['50%', '40%'],
-              emphasis: {
-                scale: false
-              },
-              data: [{
-                value: data,
-                name: ''
-              }],
-              label: {
-                show: false
-              },
-              itemStyle: {
-                color: 'transparent',
-                borderType: 'dashed',
-                borderColor: '#ffffff'
-              },
-              zlevel: 2
-            },
-            {
-              name: '',
-              type: 'pie',
-              radius: '61%',
-              center: ['50%', '40%'],
-              emphasis: {
-                scale: false
-              },
-              data: [{
-                value: data,
-                name: text
-              }],
-              label: {
-                show: true,
-                position: "center",
-                fontSize: chartFontsize(24),
-                fontWeight: '600',
-                color: '#ffffff'
-              },
-              itemStyle: {
-                color: color,
-              },
-              zlevel: 3
-            }, {
-              name: '',
-              type: 'bar',
-              center: ['50%', '40%'],
-              roundCap: true,
-              data: [data],
-              coordinateSystem: 'polar',
-              itemStyle: {
-                color: '#ffffff',
-              },
-              zlevel: 4
-            },
-          ]
-        };
-        // 璁剧疆閰嶇疆椤�
-        this.setOption(option);
-      },
-      resize() {
-        setTimeout(() => {
-          this.$options.chart.resize();
-          this.setData(this.$options.chartData);
-        }, 300)
-      },
-    },
-    mounted() {
-      // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
-      this.$options.chart = echarts.init(this.$refs.chart);
+					},
+					axisTick: {
+						show: false
+					},
+				},
+				series: [{
+					name: name,
+					type: 'pie',
+					radius: '75%',
+					center: ['50%', '40%'],
+					emphasis: {
+						scale: false
+					},
+					data: [{
+						value: data,
+						name: ''
+					}],
+					label: {
+						show: false
+					},
+					itemStyle: {
+						color: color
+					},
+					zlevel: 1
+				}, {
+					name: name,
+					type: 'pie',
+					radius: '61%',
+					center: ['50%', '40%'],
+					emphasis: {
+						scale: false
+					},
+					data: [{
+						value: data,
+						name: ''
+					}],
+					label: {
+						show: false
+					},
+					itemStyle: {
+						color: 'transparent',
+						borderType: 'dashed',
+						borderColor: '#ffffff'
+					},
+					zlevel: 2
+				},
+				{
+					name: name,
+					type: 'pie',
+					radius: '61%',
+					center: ['50%', '40%'],
+					emphasis: {
+						scale: false
+					},
+					data: [{
+						value: data,
+						name: text
+					}],
+					label: {
+						show: true,
+						position: "center",
+						fontSize: chartFontsize(24),
+						fontWeight: '600',
+						color: '#ffffff'
+					},
+					itemStyle: {
+						color: color,
+					},
+					zlevel: 3
+				}, {
+					name: name,
+					type: 'bar',
+					center: ['50%', '40%'],
+					roundCap: true,
+					data: [data],
+					coordinateSystem: 'polar',
+					itemStyle: {
+						color: '#ffffff',
+					},
+					zlevel: 4
+				},
+				]
+			};
+			// 璁剧疆閰嶇疆椤�
+			this.setOption(option);
+		},
+		resize() {
+			setTimeout(() => {
+				this.$options.chart.resize();
+				this.setData(this.$options.chartData);
+			}, 300)
+		},
+	},
+	mounted() {
+		// 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+		this.$options.chart = echarts.init(this.$refs.chart);
 
-      window.addEventListener('resize', this.resize);
-    },
-    destroyed() {
-      window.removeEventListener('resize', this.resize);
-    }
-  }
+		window.addEventListener('resize', this.resize);
+	},
+	destroyed() {
+		window.removeEventListener('resize', this.resize);
+	}
+}
 </script>
 
 <style scoped>
-
 </style>
\ No newline at end of file

--
Gitblit v1.9.1