<template>
	<view>
		<view class="title">
			<view class="icon">
				<image src="./icon/icon_o.png" mode=""></image>
			</view>
			<view class="text">当日报警分布</view>
		</view>

		<canvas canvas-id="canvasPie" id="canvasPie" @touchstart="touchPie" style="width: 700upx; height:700upx;"></canvas>
	</view>
</template>


<script>
	import uCharts from '@/components/u-charts/u-charts.js';
	var _self;
	var canvaPie = null;

	export default {
		data() {
			return {
				cWidth: '',
				cHeight: '',
				pixelRatio: 1,
				serverData: '',
			}
		},
		mounted() {
			_self = this;
			this.cWidth = uni.upx2px(700);
			this.cHeight = uni.upx2px(700);
			this.getServerData();
		},
		methods: {
			getServerData() {
				
				this.$api.jt_safety_alarm_count({
				
				}).then((res) => {
					// console.log(res.data.content)
				
					let data = res.data.content.data
				
					let Pie = {
						series: [{
							name: '',
							data: 0
						}]
					}
				
					data.map(function(item, index) {
						//新数组的项，用来盛放每一项中的各个参数，每次清空，这样避免改变sevm的值
						var sevm = {};
						//给每一项中的参数初始化并赋值
						sevm['name'] = item.mine_name + " " + item.percent*100 + " %";
						sevm['data'] = item.count;
						//将项放进新的数组
						Pie.series[index] = sevm
					})
				
				
					// console.log(Pie)
				
					_self.showPie("canvasPie", Pie);
				
				})
			},
			showPie(canvasId, chartData) {
				canvaPie = new uCharts({
					$this: _self,
					canvasId: canvasId,
					type: 'pie',
					fontSize: 11,
					legend: {
						show: true,
						position: 'top',
						lineHeight: 20,
					},
					background: '#FFFFFF',
					pixelRatio: _self.pixelRatio,
					series: chartData.series,
					animation: true,
					width: _self.cWidth * _self.pixelRatio,
					height: _self.cHeight * _self.pixelRatio,
					dataLabel: false,
					extra: {
						pie: {
							lableWidth: 15
						}
					},
				});
			},
			touchPie(e) {
				canvaPie.showToolTip(e, {
					format: function(item) {
						return item.name + ' : ' + item.data
					}
				});
			},
		}
	}
</script>


<style lang="scss">
	.title {
		margin-bottom: 10rpx;

		display: flex;
		align-items: center;

		.icon {
			margin-right: 10rpx;
			image{
				width: 30rpx;
				height: 30rpx;
			}
		}

		.text {}
	}
</style>
