examTeamApp/pageTwo/devices/PCL22.vue

244 lines
6.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="weightPages">
<view class="content ">
<view class="title">连接成功开始测量</view>
<view class="text">{{text}}</view>
<view class="image">
<image src="/pageTwo/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: false,
typeInfo: -1
}
},
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.typeInfo = -1
that.stopblue = false
that.deviceId = options.deviceId
that.height = that.user.height
that.onBluetoothDeviceFound()
},
watch: {
stopblue: function() {
let that = this
if (!that.stopblue) {
clearTimeout(myTime);
that.isHeight = false
return
}
if (that.stopblue && that.typeInfo == 1) {
clearTimeout(myTime);
that.isHeight = true
}
}
},
methods: {
/**
* 发现外围设备
*/
onBluetoothDeviceFound() {
var that = this;
uni.onBluetoothDeviceFound(res => {
res.devices.forEach(device => {
device.advertisData = device.advertisData ? device.advertisData : ''
let value = that.$tools.ab2hex(device.advertisData, "")
let type = value.substring(0, 2)
if (type.toLowerCase() == 'c0') {
clearTimeout(myTime);
let msg = parseInt(value.substring(16, 18), 16).toString(2)
let type = msg.substring(0, 1) //类型 0体重1体脂
let unit = msg.substring(1, 3) //单位
let num = msg.substring(3, 5) //小数点
let weight = parseInt(value.substring(4, 8), 16)
let status = msg.substring(5, 6) //0实时,1稳定
console.log("value", value, "状态:", status, "类型:", type, )
console.log('体重:', weight, "小数点:", num, "单位:", unit)
if (unit == "10") {
that.unit = "lb"
}
if (num == "00") {
weight = weight / 10
}
if (num == "10") {
if (unit == "10") {
that.unit = "lb"
weight = weight / 10
} else {
weight = weight / 100
}
}
if (status == "0") {
that.typeInfo = 0
that.stopblue = false
that.text = "您的实时体重是:" + weight + that.unit
}
if (status == "1") {
if (type == '1') {
that.imp = parseInt(value.substring(8, 12), 16) / 10
}
that.typeInfo = 1
that.text = "您的稳定体重是:" + weight + that.unit
that.weight = weight
that.stopblue = true
console.log("测量完成", that.weight)
}
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
}
that.$model.getmeasurefunit({
adc: that.imp,
weight: that.weight + that.unit,
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>