Files
bodyWeight/pages/configureDevice/configureDevice.js
T
2025-05-29 08:45:04 +08:00

187 lines
7.7 KiB
JavaScript

const ppScale = getApp().globalData.ppScale;
import $ from "../../utils/request";
Page({
data: {
progress: {
index: 0,
data: ['配置蓝牙', '初始化用户信息', '配备网络', '完成']
},
progressNext: false,
device: null
},
onLoad() {
ppScale.plugin.bus.subscribe("devicesModel", (res) => {
console.log("searchDevice ===》devicesModel", res);
ppScale.device.mac = res.deviceMac;
ppScale.plugin.bus.subscribe("deviceConnect", (res) => {
console.log('connectedDevice ===》deviceConnect', res);
ppScale.plugin.ScaleAction.startDataProgress(true);
ppScale.activeProtocol = ppScale.plugin.ScaleAction.getActiveProtocol();
ppScale.activeProtocol.codeUpdateMTU((res) => {
console.log("connectedDevice ===》codeUpdateMTU", res);
ppScale.activeProtocol.codeFetchBindingState((res) => {
console.log("connectedDevice ===》codeFetchBindingState", res);
wx.hideLoading();
if (res === 1) {
wx.showModal({
title: '提示',
content: '当前设备已被绑定,你确定要覆盖绑定吗?',
success: (res) => {
if (res.confirm) {
wx.showLoading({
title: "正在初始化设备...",
mask: true
});
ppScale.activeProtocol.codeClearDeviceData("00", (res) => {
console.log("deviceInfo === codeClearDeviceData", res);
wx.hideLoading();
if(res === 0) {
let scaleDeviceId = ppScale.device.mac.replace(/:/g, '');
let params = {
equipmentCode: scaleDeviceId,
};
$.ajax("weighingScale/del/device", params, "POST", true, "正在初始化设备...").then(res => {
wx.showToast({
icon: "none",
title: "设备初始化成功,请重新绑定。",
})
// device.list = [];
// device.mac = null;
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];
prevPage.setData({
getDeviceSetting: true
})
setTimeout(() => {
wx.navigateBack({
delta: 1
})
}, 1500);
});
} else {
wx.showToast({
icon: "none",
title: "设备初始化失败。",
})
}
})
} else if (res.cancel) {
// device.mac = null;
ppScale.plugin.Blue.disconnect();
}
}
})
} else {
ppScale.device.name = this.data.device.name;
ppScale.device.connection = this.data.device;
if(this.data.progressNext) {
let scaleDeviceId = ppScale.device.mac.replace(/:/g, '');
let params = {
sn: scaleDeviceId,
};
$.ajax("weighingScale/getUserInfoBySn", params, "GET", true, "正在同步用户信息...").then(res => {
if(res.result) {
wx.setStorageSync("userInfo", res.result);
this.setProgress();
} else {
wx.removeStorageSync("userInfo");
wx.showToast({
title: "暂无用户信息,请手动补充",
icon: "none"
})
setTimeout(() => {
this.setProgress();
}, 1500)
}
}).catch(() => {
wx.showToast({
title: "用户信息同步失败,请手动补充",
icon: "none"
})
setTimeout(() => {
this.setProgress();
}, 1500)
})
}
}
})
});
});
});
},
// 选择了某个设备
deviceChange(e) {
let status = e.detail.status;
if(status) {
wx.showLoading({
title: "蓝牙配对中...",
mask: true
});
this.setData({
progressNext: true
})
let device = e.detail.device;
this.connectedDevice_(device);
}
},
connectedDevice(e) {
wx.showLoading({
title: "正在尝试连接...",
mask: true
});
this.setData({
progressNext: false
})
let device = e.detail.device;
this.connectedDevice_(device);
},
connectedDevice_(device) {
if(device) {
this.setData({
device: device
})
ppScale.plugin.Blue.createBLEConnection(device);
}
},
setDeviceUserInfo(e) {
this.setData({
progressNext: true
})
let status = e.detail.status;
if(status) {
this.setProgress();
}
},
setDeviceConfig(e) {
let status = e.detail.status;
if(status) {
this.setProgress();
}
},
setConfigSuccessful() {
wx.switchTab({
url: "/pages/home/home"
})
},
setProgress() {
this.setData({
["progress.index"]: this.data.progress.index + 1
})
}
})