<template>
	<view class="weightPages">
		<view class="content ">
			<view class="title">连接成功，开始测量</view>
			<view class="text">{{text}}</view>
			<view class="image">
				<image src="/static/PCL.gif" class="image3"></image>
			</view>
			<view class="tips">
				<view>提示：</view>
				<text>1.请确定设备已开机</text>
				<text>2.请确定手机蓝牙及位置信息已打开</text>
			</view>
		</view>
		<!-- 手动记录 -->
		<view class="wrapper" v-if="isHeight">
			<view class="bg"></view>
			<view class="Blue">
				<view class="h4">测量结果提示</view>
				<view class="Blue-box">
					本次测量体重为：<text>{{weight}}{{unit}}</text>
				</view>
				<view class="Blue-box">
					上次测量身高为：<input v-model="height" type="digit" placeholder="请输入身高" />cm
				</view>
				<view class="Blue-btn Blue-close" @click="handleBack">取消</view>
				<view class="Blue-btn" @click="handleGetMeasure">保存测量结果</view>
			</view>
		</view>
	</view>
</template>

<script>
	import {
		mapState
	} from "vuex";
	let myTime;
	export default {
		data() {
			return {
				text: "",
				imp: "",
				weight: "",
				height: "",
				deviceId: "",
				unit: "kg",
				Unload: false,
				isHeight: false,
				isConnection: 0,
				isdevice: false,
				stopblue: true,
			}
		},
		computed: {
			...mapState(["user"]),
			info() {
				return this.user
			},
		},
		onUnload: function() {
			let that = this
			if (!that.Unload) {
				clearTimeout(myTime)
				that.closeBluetoothAdapter()
				that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
				let pages = getCurrentPages();
				pages[pages.length - 2].$vm.getBlereload();
				console.log("页面返回onUnload", pages, pages[pages.length - 2])
			}
		},
		onLoad(options) {
			let that = this
			that.text = ""
			that.stopblue = true
			that.deviceId = options.deviceId
			that.height = that.user.height
			that.onBluetoothDeviceFound()
		},
		watch: {
			stopblue: function() {
				let that = this
				if (!that.stopblue) {
					clearTimeout(myTime);
					that.isHeight = true
				}
			}
		},
		methods: {
			/**
			 * 发现外围设备
			 */
			onBluetoothDeviceFound() {
				var that = this;
				uni.onBluetoothDeviceFound(res => {
					res.devices.forEach(device => {
						device.advertisData = device.advertisData ? device.advertisData : ''
						if (device.name.indexOf("PCL") !== -1 && device.deviceId.indexOf(that.deviceId) !=
							-1) {
							clearTimeout(myTime);
							let value = that.$tools.ab2hex(device.advertisData, "")
							let data = parseInt(value.substring(4, 8), 16)
							let msg = parseInt(value.substring(16, 18), 16).toString(2)
							let type = msg.substring(5, 6) //0实时,1稳定
							let num = msg.substring(3, 5) //小数点
							let dw = msg.substring(1, 3) //单位
							if (dw == "01") {
								that.unit = "斤"
							}
							if (dw == "10") {
								that.unit = "lb"
							}
							if (num == "00") {
								data = data / 10
							}
							if (num == "10") {
								if (dw == "10") {
									that.unit = "lb"
									data = data / 10
								} else {
									data = data / 100
								}
							}
							that.text = "您的实时体重是：" + data + that.unit
							if (type == "1") {
								that.text = "您的稳定体重是：" + data + that.unit
								that.imp = parseInt(value.substring(8, 12), 16) / 10
								that.deviceId = device.deviceId
								that.weight = data
								that.stopblue = false
								return
							}
							return;
						}
					})
				});
				// that.handleMyTime()
			},
			handleMyTime() {
				var that = this;
				myTime = setTimeout(function() {
					if (!that.macAddr) {
						clearTimeout(myTime);
						that.text = ""
						that.Unload = true
						that.isHeight = false
						that.startBluetoothDeviceDiscovery()
						that.closeBluetoothAdapter()
					}
				}, 30000);
			},
			/**
			 * 停止搜索蓝牙设备
			 */
			stopBluetoothDevicesDiscovery() {
				uni.stopBluetoothDevicesDiscovery({
					success: e => {
						console.log("停止搜索蓝牙设备", e)
					},
				});
			},
			// 保存测量结果
			handleGetMeasure() {
				let that = this
				if (!that.height) {
					this.$tools.msg("请输入身高")
					return
				}
				if (that.unit == "斤") {
					that.weight = that.weight / 2
				}
				that.$model.getmeasurefunit({
					adc: that.imp,
					weight: that.weight,
					height: that.height,
					aud_id: that.info.id
				}).then(res => {
					that.isHeight = false
					console.log("res", res,that.imp)
					if (res.code == 0) {
						that.$store.dispatch('getUserInfo', {
							aud_id: uni.getStorageSync('userid')
						})
						that.$store.dispatch("getResult", {
							aud_id: uni.getStorageSync('userid')
						})
						that.$tools.msg("测量成功")
					} else {
						that.$tools.msg("测量失败")
					}
					that.Unload = true
					setTimeout(function() {
						that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
						let pages = getCurrentPages();
						pages[pages.length - 2].$vm.getBlereload();
						uni.switchTab({
							url: "/pages/home/home"
						})
					}, 200)
				})
			},
			//
			handleBack() {
				let that = this
				that.text = ""
				that.Unload = true
				that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
				let pages = getCurrentPages();
				console.log("页面返回onUnload", pages, pages[pages.length - 2])
				pages[pages.length - 2].$vm.getBlereload();
				uni.switchTab({
					url: "/pages/home/home"
				})
			},
			/**
			 * 断开蓝牙模块
			 */
			closeBluetoothAdapter() {
				let that = this;
				uni.closeBluetoothAdapter({
					success: res => {
						console.log('蓝牙模块关闭成功');
					}
				})
			},
		},
	}
</script>

<style scoped lang="scss">
	.image3 {
		width: 200px !important;
		height: 340px !important;
	}
</style>