5-13 H09身高体重模式

This commit is contained in:
qiaocl 2022-05-13 09:21:09 +08:00
parent c76d3ea1fa
commit 9911418cf9
2 changed files with 477 additions and 465 deletions

View File

@ -1,432 +1,443 @@
const util = require("../../utils/util"); const util = require("../../utils/util");
const { const {
inArray, inArray,
ab2hex ab2hex
} = util } = util
Page({ Page({
data: { data: {
devices: [], devices: [],
connected: false, connected: false,
cmd: '', cmd: '',
name: '', name: '',
weight: "", weight: "",
text: "", text: "",
imp: "", imp: "",
height: '', height: '',
isType: false, isType: false,
sendVal: true, sendVal: true,
pwdModal: false, pwdModal: false,
uuid1: null, uuid1: null,
uuid2: null, uuid2: null,
uuid3: null, uuid3: null,
deviceId: null, deviceId: null,
serviceId: null serviceId: null
}, },
onLoad: function() { onLoad: function() {
// let value = "A90026051401020001439A"; // let value = "A90026051401020001439A";
// let num = value.substring(18, 19) // let num = value.substring(18, 19)
// let type = value.substring(8, 10) // let type = value.substring(8, 10)
// let imp = parseInt(value.substring(10, 14), 16) // let imp = parseInt(value.substring(10, 14), 16)
// console.log("16进制转化:", value, num, type, imp); // console.log("16进制转化:", value, num, type, imp);
}, },
// 初始化蓝牙模块 // 初始化蓝牙模块
openBluetoothAdapter() { openBluetoothAdapter() {
wx.openBluetoothAdapter({ wx.openBluetoothAdapter({
success: (res) => { success: (res) => {
console.log('openBluetoothAdapter success', res) console.log('openBluetoothAdapter success', res)
wx.showToast({ wx.showToast({
title: '蓝牙连接中', title: '蓝牙连接中',
icon: "none" icon: "none"
}) })
this.startBluetoothDevicesDiscovery() this.startBluetoothDevicesDiscovery()
}, },
fail: (res) => { fail: (res) => {
if (res.errCode === 10001) { if (res.errCode === 10001) {
wx.showToast({ wx.showToast({
title: '请打开蓝牙', title: '请打开蓝牙',
icon: "none" icon: "none"
}) })
// 监听本机蓝牙状态变化的事件 // 监听本机蓝牙状态变化的事件
wx.onBluetoothAdapterStateChange((res) => { wx.onBluetoothAdapterStateChange((res) => {
console.log('onBluetoothAdapterStateChange', res) console.log('onBluetoothAdapterStateChange', res)
if (res.available) { if (res.available) {
this.startBluetoothDevicesDiscovery() this.startBluetoothDevicesDiscovery()
} }
}) })
} }
} }
}) })
}, },
// 开始搜寻附近的蓝牙外围设备 // 开始搜寻附近的蓝牙外围设备
startBluetoothDevicesDiscovery() { startBluetoothDevicesDiscovery() {
if (this._discoveryStarted) { if (this._discoveryStarted) {
return return
} }
this._discoveryStarted = true this._discoveryStarted = true
wx.startBluetoothDevicesDiscovery({ wx.startBluetoothDevicesDiscovery({
allowDuplicatesKey: true, allowDuplicatesKey: true,
interval: 1000, //上报设备的间隔 interval: 1000, //上报设备的间隔
services: [ services: [
"FFE0", "FFE0",
], ],
success: (res) => { success: (res) => {
console.log('startBluetoothDevicesDiscovery success', res) console.log('startBluetoothDevicesDiscovery success', res)
this.onBluetoothDeviceFound() this.onBluetoothDeviceFound()
}, },
}) })
}, },
// 停止搜寻附近的蓝牙外围设备 // 停止搜寻附近的蓝牙外围设备
stopBluetoothDevicesDiscovery() { stopBluetoothDevicesDiscovery() {
wx.stopBluetoothDevicesDiscovery() wx.stopBluetoothDevicesDiscovery()
}, },
// 找到新设备的事件 // 找到新设备的事件
onBluetoothDeviceFound() { onBluetoothDeviceFound() {
wx.onBluetoothDeviceFound((res) => { wx.onBluetoothDeviceFound((res) => {
res.devices.forEach(device => { res.devices.forEach(device => {
if (device.name.indexOf('AiLink_') != -1) { if (device.name.indexOf('AiLink_') != -1) {
wx.stopBluetoothDevicesDiscovery() //搜索到名称为“AiLink_”的蓝牙后停止搜寻附近的蓝牙 wx.stopBluetoothDevicesDiscovery() //搜索到名称为“AiLink_”的蓝牙后停止搜寻附近的蓝牙
const foundDevices = this.data.devices const foundDevices = this.data.devices
const idx = inArray(foundDevices, 'deviceId', device.deviceId) const idx = inArray(foundDevices, 'deviceId', device.deviceId)
const data = {} const data = {}
let buff = device.advertisData.slice(-6) let buff = device.advertisData.slice(-6)
device.mac = new Uint8Array(buff) // 保存广播数据中的mac地址这是由于iOS不直接返回mac地址 device.mac = new Uint8Array(buff) // 保存广播数据中的mac地址这是由于iOS不直接返回mac地址
let tempMac = Array.from(device.mac) let tempMac = Array.from(device.mac)
tempMac.reverse() tempMac.reverse()
device.macAddr = ab2hex(tempMac, ':').toUpperCase() device.macAddr = ab2hex(tempMac, ':').toUpperCase()
if (idx === -1) { if (idx === -1) {
data[`devices[${foundDevices.length}]`] = device data[`devices[${foundDevices.length}]`] = device
} else { } else {
data[`devices[${idx}]`] = device data[`devices[${idx}]`] = device
} }
console.log("131", data) console.log("131", data)
this.setData(data) this.setData(data)
} }
}) })
}) })
}, },
// 连接低功耗蓝牙设备 // 连接低功耗蓝牙设备
createBLEConnection(e) { createBLEConnection(e) {
this._connLoading = true this._connLoading = true
wx.showLoading({ wx.showLoading({
title: '连接中', title: '连接中',
}) })
setTimeout(() => { setTimeout(() => {
if (this._connLoading) { if (this._connLoading) {
this._connLoading = false this._connLoading = false
wx.hideLoading() wx.hideLoading()
} }
}, 6000) }, 6000)
const ds = e.currentTarget.dataset const ds = e.currentTarget.dataset
const index = ds.index const index = ds.index
this._device = this.data.devices[index] this._device = this.data.devices[index]
const deviceId = ds.deviceId const deviceId = ds.deviceId
const name = ds.name const name = ds.name
this.mac = ds.mac this.mac = ds.mac
wx.createBLEConnection({ wx.createBLEConnection({
deviceId, deviceId,
success: (res) => { success: (res) => {
this.setData({ this.setData({
connected: true, connected: true,
name, name,
deviceId, deviceId,
}) })
console.log("createBLEConnection:success") console.log("createBLEConnection:success")
this.onBLEConnectionStateChange() this.onBLEConnectionStateChange()
this.getBLEDeviceServices(deviceId) this.getBLEDeviceServices(deviceId)
}, },
fail: res => { fail: res => {
this._connLoading = false this._connLoading = false
wx.showToast({ wx.showToast({
title: '连接失败', title: '连接失败',
duration: 2000, duration: 2000,
icon: 'none' icon: 'none'
}) })
} }
}) })
}, },
//监听蓝牙连接状态 //监听蓝牙连接状态
onBLEConnectionStateChange() { onBLEConnectionStateChange() {
wx.onBLEConnectionStateChange((res) => { wx.onBLEConnectionStateChange((res) => {
if (!res.connected) { if (!res.connected) {
setTimeout(() => { setTimeout(() => {
wx.showToast({ wx.showToast({
title: '连接已断开', title: '连接已断开',
duration: 2000, duration: 2000,
icon: 'none' icon: 'none'
}) })
}, 500) }, 500)
this.setData({ this.setData({
connected: false, connected: false,
isType: false, isType: false,
devices: [], devices: [],
weight: "", weight: "",
text: "", height: "",
imp: "" text: "",
}) imp: ""
} })
}) }
}, })
},
// 获取蓝牙设备的 serviceId // 获取蓝牙设备的 serviceId
getBLEDeviceServices(deviceId) { getBLEDeviceServices(deviceId) {
wx.getBLEDeviceServices({ wx.getBLEDeviceServices({
deviceId, deviceId,
success: (res) => { success: (res) => {
for (let i = 0; i < res.services.length; i++) { for (let i = 0; i < res.services.length; i++) {
if (res.services[i].isPrimary && res.services[i].uuid.indexOf('FFE0') > -1) { if (res.services[i].isPrimary && res.services[i].uuid.indexOf('FFE0') > -1) {
this.data.serviceId = res.services[i].uuid this.data.serviceId = res.services[i].uuid
this.data.deviceId = deviceId this.data.deviceId = deviceId
this.getBLEDeviceCharacteristics(deviceId, res.services[i].uuid) this.getBLEDeviceCharacteristics(deviceId, res.services[i].uuid)
wx.showToast({ wx.showToast({
title: '获取设备的UUID成功', title: '获取设备的UUID成功',
duration: 2000, duration: 2000,
icon: 'none' icon: 'none'
}) })
return return
} }
} }
} }
}) })
}, },
// 获取蓝牙设备某个服务中所有特征值(characteristic) // 获取蓝牙设备某个服务中所有特征值(characteristic)
/** /**
* read: true读,write: true写,notify: true广播 * read: true读,write: true写,notify: true广播
*/ */
getBLEDeviceCharacteristics(deviceId, serviceId) { getBLEDeviceCharacteristics(deviceId, serviceId) {
this._deviceId = deviceId this._deviceId = deviceId
this._serviceId = serviceId this._serviceId = serviceId
this._device.serviceId = serviceId this._device.serviceId = serviceId
let that = this let that = this
wx.getBLEDeviceCharacteristics({ wx.getBLEDeviceCharacteristics({
deviceId, deviceId,
serviceId, serviceId,
success: (res) => { success: (res) => {
console.log('getBLEDeviceCharacteristics success', res.characteristics) console.log('getBLEDeviceCharacteristics success', res.characteristics)
for (let i = 0; i < res.characteristics.length; i++) { for (let i = 0; i < res.characteristics.length; i++) {
let item = res.characteristics[i]; let item = res.characteristics[i];
if (item.uuid.indexOf('FFE1') != -1) { if (item.uuid.indexOf('FFE1') != -1) {
that.data.uuid1 = item.uuid //主服务 UUID that.data.uuid1 = item.uuid //主服务 UUID
} else if (item.uuid.indexOf('FFE2') != -1) { } else if (item.uuid.indexOf('FFE2') != -1) {
that.data.uuid2 = item.uuid //写入设置 that.data.uuid2 = item.uuid //写入设置
} else if (item.uuid.indexOf('FFE3') != -1) { } else if (item.uuid.indexOf('FFE3') != -1) {
that.data.uuid3 = item.uuid //监听数据 that.data.uuid3 = item.uuid //监听数据
} }
} }
that.setData({ that.setData({
isType: true, isType: true,
}) })
wx.notifyBLECharacteristicValueChange({ wx.notifyBLECharacteristicValueChange({
deviceId, deviceId,
serviceId, serviceId,
characteristicId: that.data.uuid2, characteristicId: that.data.uuid2,
state: true, state: true,
}) })
wx.notifyBLECharacteristicValueChange({ wx.notifyBLECharacteristicValueChange({
deviceId, deviceId,
serviceId, serviceId,
characteristicId: that.data.uuid3, characteristicId: that.data.uuid3,
state: true, state: true,
}) })
wx.onBLECharacteristicValueChange((res) => { wx.onBLECharacteristicValueChange((res) => {
let value = ab2hex(res.value, ""); let value = ab2hex(res.value, "");
console.log("16进制转化:", value); console.log("16进制转化:", value);
let num = value.substring(18, 19) let num = value.substring(18, 19)
let dw = value.substring(19, 20) let dw = value.substring(19, 20)
let type = value.substring(8, 10) let type = value.substring(8, 10)
let typeInfo = value.substring(10, 12) let typeInfo = value.substring(10, 12)
console.log("16进制转化:", value); console.log("16进制转化:", value);
if (type == '10') { if (type == '10') {
let data = parseInt(value.substring(13, 18), 16) let data = parseInt(value.substring(13, 18), 16)
let dw1 = "kg" let dw1 = "kg"
if (dw == "1") { if (dw == "1") {
dw1 = "斤" dw1 = "斤"
console.log("体重单位:斤") console.log("体重单位:斤")
} }
if (dw == "4") { if (dw == "4") {
dw1 = "st:lb" dw1 = "st:lb"
console.log("体重单位st:lb,计算方法1 * data + 5") console.log("体重单位st:lb,计算方法1 * data + 5")
} }
if (dw == "6") { if (dw == "6") {
dw1 = "lb" dw1 = "lb"
console.log("体重单位lb") console.log("体重单位lb")
} }
if (num == "1") { if (num == "1") {
data = parseInt(value.substring(13, 18), 16) / 10 data = parseInt(value.substring(13, 18), 16) / 10
console.log("体重小数点后1位") console.log("体重小数点后1位")
} }
if (num == "2") { if (num == "2") {
data = parseInt(value.substring(13, 18), 16) / 100 data = parseInt(value.substring(13, 18), 16) / 100
console.log("体重小数点后2位") console.log("体重小数点后2位")
} }
if (num == "3") { if (num == "3") {
data = parseInt(value.substring(13, 18), 16) / 1000 data = parseInt(value.substring(13, 18), 16) / 1000
console.log("体重小数点后3位") console.log("体重小数点后3位")
} }
if (typeInfo == "01") { if (typeInfo == "01") {
console.log("实时体重:", data) console.log("实时体重:", data)
that.setData({ that.setData({
weight: "实时体重是:" + data + dw1 weight: "实时体重是:" + data + dw1
}) })
} }
if (typeInfo == "02") { if (typeInfo == "02") {
console.log("稳定体重:", data) console.log("稳定体重:", data)
that.setData({ that.setData({
weight: "稳定体重是:" + data + dw1 weight: "稳定体重是:" + data + dw1
}) })
} }
} }
if (type == "14") { //身高模式 if (type == "14") { //身高模式
let height = parseInt(value.substring(10, 14), 16) let height = parseInt(value.substring(10, 14), 16)
that.setData({ that.setData({
height: "您的身高是:" + height height: "您的身高是:" + height
}) })
console.log("身高模式:", height) console.log("身高模式:", height)
} }
if (type == "11") { if (type == "11") {
console.log("阻抗值:", value) console.log("阻抗值:", value)
if (typeInfo == "03" || typeInfo == "04") { if (typeInfo == "03" || typeInfo == "04") {
let imp = parseInt(value.substring(17, 22), 16) let imp = parseInt(value.substring(17, 22), 16)
that.setData({ that.setData({
imp: "阻抗值:" + imp imp: "阻抗值:" + imp
}) })
} }
} }
if (value.toUpperCase() == "A90026023000589A") { if (value.toUpperCase() == "A90026023000589A") {
that.setData({ that.setData({
text: "测量完成" text: "测量完成"
}) })
} }
}); });
}, },
fail(res) { fail(res) {
console.error('getBLEDeviceCharacteristics', res) console.error('getBLEDeviceCharacteristics', res)
} }
}) })
}, },
handleHeight(e) { handleHeight(e) {
let that = this let that = this
let type = e.currentTarget.dataset.name let type = e.currentTarget.dataset.name
if (type == '1') { if (type == '1') {
let j = Number(26 + 3 + 6 + 1).toString(16) let j = Number(26 + 3 + 6 + 1).toString(16)
let str = "A9002603060100" + j.substr(j.length - 2, 2) + "9A" let str = "A9002603060100" + j.substr(j.length - 2, 2) + "9A"
let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) { let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) {
return parseInt(h, 16) return parseInt(h, 16)
})) }))
that.sendData(buf.buffer) that.sendData(buf.buffer)
} }
if (type == '3') { if (type == '2') {
that.setData({ let j = Number(26 + 3 + 6 + 2).toString(16)
pwdModal: true, let str = "A9002603060200" + j.substr(j.length - 2, 2) + "9A"
}) let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) {
} return parseInt(h, 16)
}, }))
confirmPwd() { that.sendData(buf.buffer)
let that = this }
if (!that.data.pwdInput) { if (type == '3') {
wx.showToast({ that.setData({
title: '请输入重量', pwdModal: true,
duration: 2000, })
icon: 'none' }
}) },
return confirmPwd() {
} else { let that = this
let w = Number(that.data.pwdInput.replace(/[&\|\\\*^%$#@\.-]/g, "")) if (!that.data.pwdInput) {
let j = Number(26 + 7 + 40 + w + 3 + 2).toString(16) //校验和 wx.showToast({
let atr = w.toString(16) //16进制后的标定数据 title: '请输入重量',
let num = 0 //小数位数 duration: 2000,
let str = null icon: 'none'
if (that.data.pwdInput.indexOf('.') != -1) { })
num = Number(that.data.pwdInput.toString().split(".")[1].length) return
} } else {
// 根据atr的位数判断下发的体重填充几个0 let w = Number(that.data.pwdInput.replace(/[&\|\\\*^%$#@\.-]/g, ""))
let n = [] let j = Number(26 + 7 + 40 + w + 3 + 2).toString(16) //校验和
for (var i = 1; i <= (6 - atr.length); i++) { let atr = w.toString(16) //16进制后的标定数据
n.push(0); let num = 0 //小数位数
} let str = null
str = "A90026074003" + n.join("") + atr + "0" + num + "00" + j.substr(j.length - 2, 2) + "9A" if (that.data.pwdInput.indexOf('.') != -1) {
let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) { num = Number(that.data.pwdInput.toString().split(".")[1].length)
return parseInt(h, 16) }
})) // 根据atr的位数判断下发的体重填充几个0
that.sendData(buf.buffer) let n = []
} for (var i = 1; i <= (6 - atr.length); i++) {
}, n.push(0);
sendData(buffer) { }
let that = this str = "A90026074003" + n.join("") + atr + "0" + num + "00" + j.substr(j.length - 2, 2) + "9A"
wx.writeBLECharacteristicValue({ let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) {
deviceId: that.data.deviceId, return parseInt(h, 16)
serviceId: that.data.serviceId, }))
characteristicId: that.data.uuid1, that.sendData(buf.buffer)
value: buffer, }
success: res => { },
console.log('下发指令', res.errMsg) sendData(buffer) {
wx.showToast({ let that = this
title: '下发指令成功', wx.writeBLECharacteristicValue({
duration: 2000, deviceId: that.data.deviceId,
icon: 'none' serviceId: that.data.serviceId,
}) characteristicId: that.data.uuid1,
this.setData({ value: buffer,
pwdModal: false, success: res => {
}) console.log('下发指令', res.errMsg)
}, wx.showToast({
fail: res => { title: '下发指令成功',
wx.showToast({ duration: 2000,
title: '下发指令失败', icon: 'none'
duration: 2000, })
icon: 'none' this.setData({
}) pwdModal: false,
this.setData({ })
pwdModal: false, },
}) fail: res => {
console.log("失败", res); wx.showToast({
}, title: '下发指令失败',
}) duration: 2000,
}, icon: 'none'
closeModal() { })
this.setData({ this.setData({
pwdModal: false, pwdModal: false,
}) })
}, console.log("失败", res);
/** },
* 断开蓝牙模块 })
*/ },
closeBluetoothAdapter() { closeModal() {
wx.closeBluetoothAdapter() this.setData({
this._discoveryStarted = false pwdModal: false,
wx.showToast({ })
title: '断开蓝牙模块', },
duration: 2000, /**
icon: 'none' * 断开蓝牙模块
}) */
this.setData({ closeBluetoothAdapter() {
devices: [], wx.closeBluetoothAdapter()
weight: "", this._discoveryStarted = false
text: "", wx.showToast({
imp: "", title: '断开蓝牙模块',
isType: false duration: 2000,
}) icon: 'none'
}, })
// 断开与低功耗蓝牙设备的连接 this.setData({
closeBLEConnection() { devices: [],
wx.closeBLEConnection({ weight: "",
deviceId: this._deviceId height: "",
}) text: "",
wx.showToast({ imp: "",
title: '断开蓝牙连接', isType: false
duration: 2000, })
icon: 'none' },
}) // 断开与低功耗蓝牙设备的连接
this.setData({ closeBLEConnection() {
connected: false, wx.closeBLEConnection({
isType: false, deviceId: this._deviceId
devices: [], })
text: "", wx.showToast({
weight: "", title: '断开蓝牙连接',
imp: "" duration: 2000,
}) icon: 'none'
}, })
this.setData({
connected: false,
isType: false,
devices: [],
text: "",
weight: "",
height: "",
imp: ""
})
},
}); });

View File

@ -1,51 +1,52 @@
<wxs module="utils"> <wxs module="utils">
module.exports.max = function(n1, n2) { module.exports.max = function(n1, n2) {
return Math.max(n1, n2) return Math.max(n1, n2)
} }
module.exports.len = function(arr) { module.exports.len = function(arr) {
arr = arr || [] arr = arr || []
return arr.length return arr.length
} }
</wxs> </wxs>
<view class="container"> <view class="container">
<view class="header"> <view class="header">
<button bindtap="openBluetoothAdapter">开始扫描</button> <button bindtap="openBluetoothAdapter">开始扫描</button>
<button bindtap="stopBluetoothDevicesDiscovery">停止扫描</button> <button bindtap="stopBluetoothDevicesDiscovery">停止扫描</button>
<button bindtap="closeBluetoothAdapter">结束流程</button> <button bindtap="closeBluetoothAdapter">结束流程</button>
<button bindtap="handleHeight" wx:if="{{isType}}" data-name="1">身高体脂模式(默认)</button> <button bindtap="handleHeight" wx:if="{{isType}}" data-name="1">身高体脂模式(默认)</button>
<button bindtap="handleHeight" wx:if="{{isType}}" data-name="3">标定模式</button> <button bindtap="handleHeight" wx:if="{{isType}}" data-name="2">身高体重模式</button>
</view> <button bindtap="handleHeight" wx:if="{{isType}}" data-name="3">标定模式</button>
<view class="weight"> </view>
<view>{{weight}}</view> <view class="weight">
<view>{{imp}}</view> <view>{{weight}}</view>
<view>{{height}}</view> <view>{{imp}}</view>
<view>{{text}}</view> <view>{{height}}</view>
</view> <view>{{text}}</view>
<view class="devices_summary">已发现 {{devices.length}} 个外围设备:</view> </view>
<scroll-view class="device_list" scroll-y scroll-with-animation> <view class="devices_summary">已发现 {{devices.length}} 个外围设备:</view>
<view wx:for="{{devices}}" wx:key="index" data-device-id="{{item.deviceId}}" <scroll-view class="device_list" scroll-y scroll-with-animation>
data-name="{{item.name || item.localName}}" data-mac="{{item.mac}}" data-index="{{index}}" <view wx:for="{{devices}}" wx:key="index" data-device-id="{{item.deviceId}}"
bindtap="createBLEConnection" class="device_item" hover-class="device_item_hover"> data-name="{{item.name || item.localName}}" data-mac="{{item.mac}}" data-index="{{index}}"
<view style="font-size: 32rpx;"> bindtap="createBLEConnection" class="device_item" hover-class="device_item_hover">
<text style="color:#000;font-weight:bold">{{item.name}}</text> <view style="font-size: 32rpx;">
<text style="font-size:26rpx">(信号强度: {{item.RSSI}}dBm</text> <text style="color:#000;font-weight:bold">{{item.name}}</text>
</view> <text style="font-size:26rpx">(信号强度: {{item.RSSI}}dBm</text>
<view style="font-size: 26rpx">mac地址: {{item.macAddr || item.deviceId}}</view> </view>
<!-- <view style="font-size: 26rpx">广播数据:{{item.analyzeDataText}}</view> --> <view style="font-size: 26rpx">mac地址: {{item.macAddr || item.deviceId}}</view>
</view> <!-- <view style="font-size: 26rpx">广播数据:{{item.analyzeDataText}}</view> -->
</scroll-view> </view>
</scroll-view>
</view> </view>
<view wx:if="{{pwdModal}}" class="modal_wrapper {{pwdModal ? 'modal_wrapper_show': ''}}" catchtouchmove="stopAction"> <view wx:if="{{pwdModal}}" class="modal_wrapper {{pwdModal ? 'modal_wrapper_show': ''}}" catchtouchmove="stopAction">
<view class="remindModal"> <view class="remindModal">
<view class="remindModal_title">标定重量</view> <view class="remindModal_title">标定重量</view>
<view class="modal_input_wrap"> <view class="modal_input_wrap">
<input model:value='{{pwdInput}}' class="modal_input" placeholder="请输入" <input model:value='{{pwdInput}}' class="modal_input" placeholder="请输入"
placeholder-style="font-size:30rpx;color:#b4b4b4" /> placeholder-style="font-size:30rpx;color:#b4b4b4" />
</view> </view>
<view class="remindModal_btn"> <view class="remindModal_btn">
<view class="remindModal_cancel_btn" bindtap="closeModal" hover-class="hover_tap">取消</view> <view class="remindModal_cancel_btn" bindtap="closeModal" hover-class="hover_tap">取消</view>
<view class="confirm_btn" bindtap="confirmPwd">确定</view> <view class="confirm_btn" bindtap="confirmPwd">确定</view>
</view> </view>
</view> </view>
</view> </view>