From cc8dfb4f6e73507ab508105cae0a74b6cb0a6f68 Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Tue, 26 May 2026 17:28:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(supplement):=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=B5=81=E7=A8=8B=E8=A1=A8=E5=8D=95=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=9B=9E=E5=A1=AB=E7=BC=93=E5=AD=98=E6=95=B0=E6=8D=AE=E5=B9=B6?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E7=BC=96=E8=BE=91=EF=BC=9Bpayload=20?= =?UTF-8?q?=E6=90=BA=E5=B8=A6=20SN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- miniprogram/app.ts | 16 ++-- miniprogram/pages/equipment/equipment.less | 2 +- .../supplementPersonal/supplementPersonal.ts | 75 +++++++++++++++---- .../supplementPersonal.wxml | 4 + 4 files changed, 73 insertions(+), 24 deletions(-) diff --git a/miniprogram/app.ts b/miniprogram/app.ts index 7a5194a..7a83f76 100644 --- a/miniprogram/app.ts +++ b/miniprogram/app.ts @@ -6,13 +6,13 @@ App({ onLaunch() { // 已登录则跳过登录页 - const userInfo = wx.getStorageSync('userInfo') - if (userInfo) { - const connectDeviceInfo = wx.getStorageSync('connectDeviceInfo') - const hasDevice = connectDeviceInfo && Object.keys(connectDeviceInfo).length > 0 - wx.reLaunch({ - url: hasDevice ? '/pages/home/home' : '/pages/connectedDevice/connectedDevice' - }) - } + // const userInfo = wx.getStorageSync('userInfo') + // if (userInfo) { + // const connectDeviceInfo = wx.getStorageSync('connectDeviceInfo') + // const hasDevice = connectDeviceInfo && Object.keys(connectDeviceInfo).length > 0 + // wx.reLaunch({ + // url: hasDevice ? '/pages/home/home' : '/pages/connectedDevice/connectedDevice' + // }) + // } }, }) diff --git a/miniprogram/pages/equipment/equipment.less b/miniprogram/pages/equipment/equipment.less index fbca2d1..ad8d5c9 100644 --- a/miniprogram/pages/equipment/equipment.less +++ b/miniprogram/pages/equipment/equipment.less @@ -168,7 +168,7 @@ justify-content: center; background-color: #1385FA; border-radius: 44rpx; - margin: 40rpx auto; + margin: 20rpx auto; flex-shrink: 0; .add-btn-icon { diff --git a/miniprogram/pages/supplementPersonal/supplementPersonal.ts b/miniprogram/pages/supplementPersonal/supplementPersonal.ts index 5df3315..2856b13 100644 --- a/miniprogram/pages/supplementPersonal/supplementPersonal.ts +++ b/miniprogram/pages/supplementPersonal/supplementPersonal.ts @@ -80,7 +80,29 @@ Page({ /** 正在请求身份证查询接口 */ querying: false, /** 接口返回的用户信息,提交时透传给更新接口 */ - serverResult: null as UserInfoFromServer | null + serverResult: null as UserInfoFromServer | null, + /** 表单是否只读(从添加设备流程过来时为 true) */ + readonly: false + }, + + onLoad() { + // 已有连接设备 → 从缓存 userInfo 回填表单并禁用编辑 + const connectDeviceInfo = wx.getStorageSync('connectDeviceInfo') + if (!connectDeviceInfo || JSON.stringify(connectDeviceInfo) === '{}') return + + const userInfo = wx.getStorageSync('userInfo') as Record | null + if (!userInfo?.userId) return + + const parsed = this.parseIdCard(userInfo.idCard ?? '') + this.setData({ + readonly: true, + 'form.name': userInfo.realname ?? '', + 'form.idCard': userInfo.idCard ?? '', + 'form.gender': parsed.gender || userInfo.sex_dictText || '', + 'form.age': parsed.age || '', + 'form.height': userInfo.height != null ? String(userInfo.height) : '', + 'form.weight': userInfo.weight != null ? String(userInfo.weight) : '', + }) }, /** @@ -235,10 +257,6 @@ Page({ wx.showToast({ title: '请填写体重', icon: 'none' }) return } - if (!this.data.serverResult) { - wx.showToast({ title: '身份信息未验证,请检查姓名与身份证号', icon: 'none' }) - return - } const parsed = this.parseIdCard(idCard) @@ -246,16 +264,43 @@ Page({ const connectDeviceInfoRaw = wx.getStorageSync('connectDeviceInfo') const connectDeviceInfo: string = connectDeviceInfoRaw ? JSON.stringify(connectDeviceInfoRaw) : '' - const serverResult = this.data.serverResult as UserInfoFromServer - const payload: UpdateUserPayload = { - ...serverResult, - idCard, - realname: name.trim(), - height: heightNum, - weight: weightNum, - sex: parsed.sex, - birthday: parsed.birthday, - connectDeviceInfo + let payload: UpdateUserPayload + + if (this.data.readonly) { + // readonly 模式:从缓存 userInfo 构建 payload + const userInfo = wx.getStorageSync('userInfo') as Record + const { connectDeviceInfo: _c, ...rest } = userInfo + payload = { + ...rest, + idCard, + realname: name.trim(), + height: heightNum, + weight: weightNum, + sex: parsed.sex, + birthday: parsed.birthday, + sn: lefuService.deviceInfo?.serialNumber ?? '', + scaleDeviceId: lefuService.deviceInfo?.serialNumber ?? '', + connectDeviceInfo, + } as UpdateUserPayload + } else { + // 正常模式:需要 serverResult + if (!this.data.serverResult) { + wx.showToast({ title: '身份信息未验证,请检查姓名与身份证号', icon: 'none' }) + return + } + const serverResult = this.data.serverResult as UserInfoFromServer + payload = { + ...serverResult, + idCard, + realname: name.trim(), + height: heightNum, + weight: weightNum, + sex: parsed.sex, + birthday: parsed.birthday, + sn: lefuService.deviceInfo?.serialNumber ?? '', + scaleDeviceId: lefuService.deviceInfo?.serialNumber ?? '', + connectDeviceInfo, + } } put('weighingScale/v3/update/user', payload) diff --git a/miniprogram/pages/supplementPersonal/supplementPersonal.wxml b/miniprogram/pages/supplementPersonal/supplementPersonal.wxml index afc690f..5f90061 100644 --- a/miniprogram/pages/supplementPersonal/supplementPersonal.wxml +++ b/miniprogram/pages/supplementPersonal/supplementPersonal.wxml @@ -23,6 +23,7 @@ placeholder="请填写真实姓名" placeholder-class="form-placeholder" value="{{ form.name }}" + disabled="{{ readonly }}" bind:input="onNameInput" /> @@ -40,6 +41,7 @@ placeholder="请填写身份证号" placeholder-class="form-placeholder" value="{{ form.idCard }}" + disabled="{{ readonly }}" bind:input="onIdCardInput" /> @@ -93,6 +95,7 @@ placeholder="请填写身高" placeholder-class="form-placeholder" value="{{ form.height }}" + disabled="{{ readonly }}" bind:input="onHeightInput" /> cm @@ -113,6 +116,7 @@ placeholder="请填写体重" placeholder-class="form-placeholder" value="{{ form.weight }}" + disabled="{{ readonly }}" bind:input="onWeightInput" /> kg