From f89f0f95313cb8f25a059ba57dff394b8046ce26 Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Wed, 11 Mar 2026 11:04:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B5=81=E7=A8=8B=EF=BC=8C=E9=87=8D=E6=9E=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E5=8F=8A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8B=E5=8F=91=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- .../configureDevice_2/configureDevice_2.js | 68 +++++++++++---- .../configureDevice_2/configureDevice_2.wxml | 82 ++++++++++-------- .../configureDevice_2/configureDevice_2.wxss | 19 ++++ .../configureDevice_2_addUser.js | 41 ++++++--- .../configureDevice_2_addUser.wxml | 45 +++++++--- .../configureDevice_2_addUser.wxss | 22 +++-- .../configureDevice_3/configureDevice_3.js | 72 +-------------- images/configureDevice/null.png | Bin 0 -> 11768 bytes pages/configureDevice/configureDevice.js | 6 +- utils/request.js | 4 +- 10 files changed, 204 insertions(+), 155 deletions(-) create mode 100644 images/configureDevice/null.png diff --git a/components/configureDevice_2/configureDevice_2.js b/components/configureDevice_2/configureDevice_2.js index 3cc412b..4824406 100644 --- a/components/configureDevice_2/configureDevice_2.js +++ b/components/configureDevice_2/configureDevice_2.js @@ -1,6 +1,25 @@ const app = getApp(); import $ from "../../utils/request"; +/** + * 根据生日计算年龄 + * @param {string} birthday 生日字符串,如 "1990-05-20" + * @returns {number|null} 年龄,无法计算时返回 null + */ +function calcAge(birthday) { + if (!birthday) return null; + let birthDate = new Date(birthday.replace(/-/g, '/')); + if (isNaN(birthDate.getTime())) return null; + let today = new Date(); + let age = today.getFullYear() - birthDate.getFullYear(); + let monthDiff = today.getMonth() - birthDate.getMonth(); + // 未过生日则减一岁 + if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) { + age--; + } + return age; +} + Component({ data: { BLUE_STATE: {}, @@ -49,6 +68,10 @@ Component({ }, addUser() { + if (this.data.userList.length >= 10) { + wx.showToast({ title: "超过最大用户数", icon: "none" }); + return; + } this.selectComponent("#configureDevice2AddUser").showModal(); }, @@ -61,7 +84,14 @@ Component({ let sn = app.globalData.ppScale.device.mac.replace(/:/g, ''); $.ajax("weighingScale/v2/select/user", { sn }, "GET", true, "正在获取用户列表...").then(res => { if (res.result && res.result.length) { - this.setData({ userList: res.result }); + let list = res.result.map(user => { + // 没有 age 时通过 birthday 计算 + if (!user.age && user.birthday) { + user.age = calcAge(user.birthday); + } + return user; + }); + this.setData({ userList: list }); } else { this.setData({ userList: [] }); } @@ -81,12 +111,14 @@ Component({ content: "确定要删除该用户吗?", success: (res) => { if (res.confirm) { - $.ajax("weighingScale/v2/del/user", { id }, "DELETE", true, "正在删除...").then(() => { + $.ajax("weighingScale/v2/del/user", { id }, "DELETE", true, "正在删除...", "application/x-www-form-urlencoded").then(() => { wx.showToast({ title: "删除成功", icon: "success" }) - this.fetchUserList(); + setTimeout(() => { + this.fetchUserList(); + }, 1500) }).catch(() => { wx.showToast({ title: "删除失败,请重试", @@ -120,9 +152,11 @@ Component({ wx.showLoading({ title: "正在下发用户信息...", mask: true }); app.globalData.ppScale.activeProtocol.dataFetchUserID((deviceUserIds) => { console.log("设备端已有用户ID列表", deviceUserIds); - let existIds = Array.isArray(deviceUserIds) ? deviceUserIds : []; - let needSyncList = userList.filter(user => !existIds.includes(user.userId)); - + let rawList = Array.isArray(deviceUserIds) ? deviceUserIds : []; + // 兼容对象数组和纯ID数组,统一转为字符串比对 + let existIds = rawList.map(item => String(item.userID || item)); + let needSyncList = userList.filter(user => !existIds.includes(String(user.id))); + console.log(needSyncList); if (!needSyncList.length) { wx.hideLoading(); wx.showToast({ @@ -150,17 +184,17 @@ Component({ } let user = needSyncList[index]; app.globalData.ppScale.activeProtocol.dataSyncUserInfo({ - userID: user.userId, - userName: user.realname, - memberID: "", - age: user.age, - gender: user.sex, - height: user.height, - isAthleteMode: 0, - currentWeight: String(user.weight), - deviceHeaderIndex: index, - targetWeight: "", - idealWeight: "", + userID: user.id, // 用户唯一标识 ID。 + userName: user.realname, // 用户昵称/姓名。 + memberID: "", // 成员 ID(用于区分主账号下的子成员,例如一家人共用一台体脂秤)。 + age: user.age, // 年龄。 + gender: user.sex, // 性别(通常 0 代表女性,1 代表男性,或者根据具体协议定义)。 + height: user.height, // 身高(单位通常为 cm)。 + isAthleteMode: 0, // 运动员模式开关(0 表示普通人,1 表示运动员。该模式会影响体脂率等算法的计算)。 + deviceHeaderIndex: index, // 设备头像索引(用于在秤端或 App 列表显示的头像图标编号)。 + currentWeight: String(user.weight), // 当前体重。 + targetWeight: "", // 目标体重。 + idealWeight: "", // 理想体重(通常由系统根据身高、年龄自动计算得出)。 recentData: [], }, (res) => { if (res == 0) { diff --git a/components/configureDevice_2/configureDevice_2.wxml b/components/configureDevice_2/configureDevice_2.wxml index f6e06f6..8b28a07 100644 --- a/components/configureDevice_2/configureDevice_2.wxml +++ b/components/configureDevice_2/configureDevice_2.wxml @@ -33,49 +33,59 @@ - - - - - - - - - - - + + + + + + + + - + + + + + + - - - - - {{item.realname}} - - - - - - - - - - {{item.age}} + + + + {{item.realname}} + + + + + + + + + + {{item.age}} + + + + 身高:{{item.height}}cm + + 体重:{{item.weight}}kg - - 身高:{{item.height}}cm - - 体重:{{item.weight}}kg - + - - - - - + + + + + + + + + + 暂无用户数据 - + 添加用户 diff --git a/components/configureDevice_2/configureDevice_2.wxss b/components/configureDevice_2/configureDevice_2.wxss index e293764..3dffc9e 100644 --- a/components/configureDevice_2/configureDevice_2.wxss +++ b/components/configureDevice_2/configureDevice_2.wxss @@ -213,6 +213,25 @@ input { background-color: #F24439; } +.nullData { + width: 100%; + padding: 200rpx 0 250rpx; +} + +.nullData>view:first-of-type { + width: 230rpx; + height: 160rpx; + margin: 0 auto 15rpx; +} + +.nullData>view:last-of-type { + color: #B6B6B6; + height: 30rpx; + font-size: 30rpx; + line-height: 30rpx; + text-align: center; +} + .btn { width: 100%; padding: 0 55rpx; diff --git a/components/configureDevice_2_addUser/configureDevice_2_addUser.js b/components/configureDevice_2_addUser/configureDevice_2_addUser.js index 6b8a7bb..3c02c85 100644 --- a/components/configureDevice_2_addUser/configureDevice_2_addUser.js +++ b/components/configureDevice_2_addUser/configureDevice_2_addUser.js @@ -81,6 +81,16 @@ Component({ this.setData({ workNo: e.detail.value }); }, + // 监听身高输入 + onHeightInput(e) { + this.setData({ 'userInfo.height': e.detail.value }); + }, + + // 监听体重输入 + onWeightInput(e) { + this.setData({ 'userInfo.weight': e.detail.value }); + }, + // 根据工号查询用户信息 searchUser() { let workNo = this.data.workNo.trim(); @@ -105,9 +115,11 @@ Component({ icon: "none" }) } - }).catch(() => { + }).catch((err) => { + console.log(err); + this.setData({ userInfo: null }); wx.showToast({ - title: "查询失败,请重试", + title: (err && err.message) || "查询失败", icon: "none" }) }) @@ -122,21 +134,24 @@ Component({ }) return; } - let sn = app.globalData.ppScale.device.mac.replace(/:/g, ''); - let user = this.data.userInfo; - $.ajax("weighingScale/v2/edit/user", { - sn, - realname: user.realname, - sex: user.sex, - birthday: user.birthday, - height: user.height, - weight: user.weight - }, "POST", true, "正在添加...").then(res => { + let userInfo = this.data.userInfo; + // 校验身高 + if (!userInfo.height) { + wx.showToast({ title: "请输入身高", icon: "none" }); + return; + } + // 校验体重 + if (!userInfo.weight) { + wx.showToast({ title: "请输入体重", icon: "none" }); + return; + } + userInfo.sn = app.globalData.ppScale.device.mac.replace(/:/g, '') + $.ajax("weighingScale/v2/edit/user", userInfo, "POST", true, "正在添加...").then(res => { wx.showToast({ title: "添加成功", icon: "success" }) - this.triggerEvent('returnDate', { userInfo: user }); + this.triggerEvent('returnDate', { userInfo }); this.closeModal(); }).catch(() => { wx.showToast({ diff --git a/components/configureDevice_2_addUser/configureDevice_2_addUser.wxml b/components/configureDevice_2_addUser/configureDevice_2_addUser.wxml index 740f7d0..8dfe659 100644 --- a/components/configureDevice_2_addUser/configureDevice_2_addUser.wxml +++ b/components/configureDevice_2_addUser/configureDevice_2_addUser.wxml @@ -11,43 +11,68 @@ 工号: - + 姓名: - {{userInfo.realname || ''}} + + + {{userInfo.realname || ''}} + + + 请先输入工号 + + 性别: - {{userInfo.sex === 1 ? '男' : userInfo.sex === 2 ? '女' : ''}} + + + {{userInfo.sex === 1 ? '男' : userInfo.sex === 2 ? '女' : ''}} + + + 请先输入工号 + + 生日: - {{userInfo.birthday || ''}} + + + {{userInfo.birthday || ''}} + + + 请先输入工号 + + - + 身高: - {{userInfo.height || ''}} - cm + + + + cm - + 体重: - {{userInfo.weight || ''}} - kg + + + + kg diff --git a/components/configureDevice_2_addUser/configureDevice_2_addUser.wxss b/components/configureDevice_2_addUser/configureDevice_2_addUser.wxss index 744313e..a96960f 100644 --- a/components/configureDevice_2_addUser/configureDevice_2_addUser.wxss +++ b/components/configureDevice_2_addUser/configureDevice_2_addUser.wxss @@ -55,7 +55,8 @@ } .only, -.input { +.input, +.inputUnit { width: 100%; height: 104rpx; display: flex; @@ -64,14 +65,16 @@ } .only>view:nth-of-type(1), -.input>view:nth-of-type(1) { +.input>view:nth-of-type(1), +.inputUnit>view:nth-of-type(1) { color: #333333; height: 104rpx; font-size: 32rpx; line-height: 104rpx; } -.only>view:nth-of-type(2) { +.only>view:nth-of-type(2), +.inputUnit>view:nth-of-type(2) { flex: 1; width: 0; height: 104rpx; @@ -84,7 +87,8 @@ border: 1rpx solid #E6E6EA; } -.only>view:nth-of-type(2)>view:nth-of-type(1) { +.only>view:nth-of-type(2)>view:nth-of-type(1), +.inputUnit>view:nth-of-type(2)>view:nth-of-type(1) { flex: 1; width: 0; color: #252535; @@ -94,7 +98,8 @@ line-height: 100rpx; } -.only>view:nth-of-type(2)>view:nth-of-type(2) { +.only>view:nth-of-type(2)>view:nth-of-type(2), +.inputUnit>view:nth-of-type(2)>view:nth-of-type(2) { color: #77849E; height: 28rpx; font-size: 28rpx; @@ -110,7 +115,8 @@ border: 1rpx solid #E6E6EA; } -.input>view:nth-of-type(2) input { +.input>view:nth-of-type(2) input, +.inputUnit>view:nth-of-type(2)>view:nth-of-type(1) input { width: 100%; height: 100%; color: #252535; @@ -118,6 +124,10 @@ font-weight: 500; } +.inputUnit>view:nth-of-type(2) { + +} + .searchBtn { color: #FFFFFF; width: 120rpx; diff --git a/components/configureDevice_3/configureDevice_3.js b/components/configureDevice_3/configureDevice_3.js index a2a82dc..b494992 100644 --- a/components/configureDevice_3/configureDevice_3.js +++ b/components/configureDevice_3/configureDevice_3.js @@ -103,74 +103,10 @@ Component({ if(res === 23) { app.globalData.ppScale.wifi.ssid = this.data.selectWifi.ssid; app.globalData.ppScale.wifi.password = this.data.selectWifiPWD; - - let mac = app.globalData.ppScale.device.mac; - let deviceId = app.globalData.ppScale.device.connection.deviceId; - if(mac && deviceId) { - let scaleDeviceId = mac.replace(/:/g, ''); - let params = { - equipmentName: app.globalData.ppScale.device.name, - scaleDeviceId: scaleDeviceId, - deviceId: deviceId - }; - $.ajax("weighingScale/binding/device", params, "POST").then(res => { - if (res.success) { - app.globalData.ppScale.activeProtocol.codeSetBindingState((res) => { - console.log("setNetwork.js codeSetBindingState", res); - - if(res == 0) { - this.triggerEvent('deviceEvent', { - status: true - }); - } else { - app.globalData.ppScale.plugin.Blue.stop(); - wx.showToast({ - title: "绑定失败,请重试。", - icon: "none" - }) - setTimeout(() => { - wx.navigateBack({ - delta: 2 - }) - }, 1500) - } - }) - } else { - app.globalData.ppScale.plugin.Blue.stop(); - wx.showToast({ - icon: "none", - title: res.message - }) - setTimeout(() => { - wx.navigateBack({ - delta: 2 - }) - }, 1500) - } - }).catch(err => { - app.globalData.ppScale.plugin.Blue.stop(); - wx.showToast({ - icon: "none", - title: err.message - }) - setTimeout(() => { - wx.navigateBack({ - delta: 2 - }) - }, 1500) - }) - } else { - app.globalData.ppScale.plugin.Blue.stop(); - wx.showToast({ - icon: "none", - title: "Mac 地址与 deviceId 获取失败,请重新绑定" - }) - setTimeout(() => { - wx.navigateBack({ - delta: 2 - }) - }, 1500) - } + + this.triggerEvent('deviceEvent', { + status: true + }); } else { app.globalData.ppScale.plugin.Blue.stop(); wx.showToast({ diff --git a/images/configureDevice/null.png b/images/configureDevice/null.png new file mode 100644 index 0000000000000000000000000000000000000000..89ba90f037e6e8d01b94f0d4d880f915da502d9a GIT binary patch literal 11768 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 qKfGYoeT&uDJR&%`jv~S79U&{r8qtk_KO9hW { - console.log("===》deviceInfo", res); - ppScale.device.mac = res.serialNumber; + ppScale.plugin.bus.subscribe("devicesModel", (res) => { + console.log("===》devicesModel", res); + ppScale.device.mac = res.deviceMac; this._macReady = true; this._tryProgress(); }); diff --git a/utils/request.js b/utils/request.js index cfbc780..db3f252 100644 --- a/utils/request.js +++ b/utils/request.js @@ -20,7 +20,7 @@ const hideLoading = () => { } } -const ajax = (url, params, methos, loading = true, title = "加载中...") => { +const ajax = (url, params, methos, loading = true, title = "加载中...", contentType = "application/json") => { let requestUrl = app.globalData.wxRequestUrl + url; if (loading) { showLoading(title); @@ -28,7 +28,7 @@ const ajax = (url, params, methos, loading = true, title = "加载中...") => { return new Promise((resolve, reject) => { let header = { - "content-type": "application/json" + "content-type": contentType }; let token = wx.getStorageSync("token");