diff --git a/miniprogram/components/selectMemberDrawer/selectMemberDrawer.wxml b/miniprogram/components/selectMemberDrawer/selectMemberDrawer.wxml
index 55d955e..d281a59 100644
--- a/miniprogram/components/selectMemberDrawer/selectMemberDrawer.wxml
+++ b/miniprogram/components/selectMemberDrawer/selectMemberDrawer.wxml
@@ -55,7 +55,7 @@
-
+
暂无可选成员
diff --git a/miniprogram/images/data/noData.png b/miniprogram/images/data/noData.png
new file mode 100644
index 0000000..9a7fab2
Binary files /dev/null and b/miniprogram/images/data/noData.png differ
diff --git a/miniprogram/images/device/CF568_G.png b/miniprogram/images/device/CF568_G.png
new file mode 100644
index 0000000..d4e3516
Binary files /dev/null and b/miniprogram/images/device/CF568_G.png differ
diff --git a/miniprogram/images/device/CF577.png b/miniprogram/images/device/CF577.png
new file mode 100644
index 0000000..128435b
Binary files /dev/null and b/miniprogram/images/device/CF577.png differ
diff --git a/miniprogram/images/device/CF636_G.png b/miniprogram/images/device/CF636_G.png
new file mode 100644
index 0000000..f77d79f
Binary files /dev/null and b/miniprogram/images/device/CF636_G.png differ
diff --git a/miniprogram/images/device/YX-B4-568-BW.png b/miniprogram/images/device/YX-B4-568-BW.png
new file mode 100644
index 0000000..d4e3516
Binary files /dev/null and b/miniprogram/images/device/YX-B4-568-BW.png differ
diff --git a/miniprogram/images/device/YX-B8-636-BW.png b/miniprogram/images/device/YX-B8-636-BW.png
new file mode 100644
index 0000000..f77d79f
Binary files /dev/null and b/miniprogram/images/device/YX-B8-636-BW.png differ
diff --git a/miniprogram/images/selectMemberDrawer/noData.png b/miniprogram/images/selectMemberDrawer/noData.png
new file mode 100644
index 0000000..9a7fab2
Binary files /dev/null and b/miniprogram/images/selectMemberDrawer/noData.png differ
diff --git a/miniprogram/lefu/service.ts b/miniprogram/lefu/service.ts
index b2b3cb4..4d73db0 100644
--- a/miniprogram/lefu/service.ts
+++ b/miniprogram/lefu/service.ts
@@ -344,7 +344,7 @@ class LeFuService {
}
// ─── 成员同步 ─────────────────────────────────
- syncMembersToDevice(members: DeviceMember[]): Promise {
+ syncMembersToDevice(members: DeviceMember[], onProgress?: (current: number, total: number) => void): Promise {
return new Promise((resolve, reject) => {
if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接')); return }
const mainUser = members.find(m => m.isSelf)
@@ -368,6 +368,7 @@ class LeFuService {
return
}
const member = members[index]
+ onProgress?.(index + 1, members.length)
resetTimer()
this._activeProtocol.dataSyncUserInfo(
{
diff --git a/miniprogram/pages/addMember/addMember.ts b/miniprogram/pages/addMember/addMember.ts
index 3d0d3e7..7211558 100644
--- a/miniprogram/pages/addMember/addMember.ts
+++ b/miniprogram/pages/addMember/addMember.ts
@@ -36,14 +36,17 @@ interface IdCardParsed {
birthday: string
}
-/** 从抽屉组件 select 事件接收的成员数据 */
+/** 从抽屉组件 select 事件接收的成员数据(完整 item) */
interface ExistingMember {
+ id: string
name: string
gender: '男' | '女'
age: number
height: number
weight: number
idCard: string
+ avatar?: string
+ [key: string]: any
}
/**
@@ -66,6 +69,8 @@ Page({
weight: ''
} as MemberForm,
+ /** 从抽屉选中的完整成员数据,提交时作为 base spread */
+ selectedMember: null as ExistingMember | null,
showSelectDrawer: false,
},
@@ -146,19 +151,21 @@ Page({
},
onSelectMember(e: WechatMiniprogram.CustomEvent) {
- const { name, gender, age, height, weight, idCard } = e.detail
+ const member = e.detail
+ const parsed = this.parseIdCard(member.idCard)
this.setData({
showSelectDrawer: false,
- 'form.name': name,
- 'form.idCard': idCard,
- 'form.gender': gender,
- 'form.age': String(age),
- 'form.height': String(height),
- 'form.weight': String(weight),
+ selectedMember: member,
+ 'form.name': member.name,
+ 'form.idCard': member.idCard,
+ 'form.gender': parsed.gender,
+ 'form.age': parsed.age,
+ 'form.height': String(member.height),
+ 'form.weight': String(member.weight),
})
},
-onCancel() {
+ onCancel() {
wx.navigateBack()
},
@@ -193,6 +200,7 @@ onCancel() {
const connectDeviceInfoRaw = wx.getStorageSync('connectDeviceInfo')
const payload: Record = {
+ ...(this.data.selectedMember ?? {}),
parentUserId: userInfo?.userId ?? '',
scaleDeviceId: lefuService.deviceInfo?.serialNumber ?? '',
realname: name.trim(),
diff --git a/miniprogram/pages/data/data.wxml b/miniprogram/pages/data/data.wxml
index 1b9ef92..338b277 100644
--- a/miniprogram/pages/data/data.wxml
+++ b/miniprogram/pages/data/data.wxml
@@ -88,7 +88,7 @@
-
+
暂无称重数据
diff --git a/miniprogram/pages/equipmentMember/equipmentMember.less b/miniprogram/pages/equipmentMember/equipmentMember.less
index 1250de4..311a0c3 100644
--- a/miniprogram/pages/equipmentMember/equipmentMember.less
+++ b/miniprogram/pages/equipmentMember/equipmentMember.less
@@ -160,9 +160,12 @@
height: 90rpx;
border-radius: 20rpx;
margin-right: 24rpx;
- box-sizing: border-box;
- border: 3rpx solid #50A6FF;
- background: var(--avatar-bg);
+ background-color: #1385FA;
+ color: #ffffff;
+ font-size: 36rpx;
+ font-weight: bold;
+ line-height: 90rpx;
+ text-align: center;
}
.member-info {
diff --git a/miniprogram/pages/equipmentMember/equipmentMember.ts b/miniprogram/pages/equipmentMember/equipmentMember.ts
index be8446f..c86d488 100644
--- a/miniprogram/pages/equipmentMember/equipmentMember.ts
+++ b/miniprogram/pages/equipmentMember/equipmentMember.ts
@@ -54,6 +54,8 @@ interface MemberDisplay {
sex: number
/** 周岁数值,供 lefu 层使用 */
age: number
+ /** 身份证号,下发设备时作为用户唯一标识 */
+ idCard: string
}
/** 设备卡展示模型 */
@@ -82,7 +84,7 @@ const calcAge = (birthday: string): number => {
}
const toDeviceMember = (m: MemberDisplay): DeviceMember => ({
- id: m.id,
+ id: m.idCard,
name: m.realname,
gender: m.sex === 1 ? 1 : 0,
age: m.age,
@@ -92,8 +94,11 @@ const toDeviceMember = (m: MemberDisplay): DeviceMember => ({
const syncToDevice = (members: MemberDisplay[]): void => {
const deviceMembers = members.map(toDeviceMember)
- wx.showLoading({ title: '正在同步成员...', mask: true })
- lefuService.syncMembersToDevice(deviceMembers)
+ const total = deviceMembers.length
+ wx.showLoading({ title: `正在下发第1/${total}个用户...`, mask: true })
+ lefuService.syncMembersToDevice(deviceMembers, (current, t) => {
+ wx.showLoading({ title: `正在下发第${current}/${t}个用户...`, mask: true })
+ })
.then(() => {
wx.hideLoading()
wx.showToast({ title: '成员同步成功', icon: 'success' })
@@ -183,6 +188,7 @@ Page({
avatar: item.avatar,
sex: item.sex,
age,
+ idCard: item.idCard ?? '',
}
})
this.setData({
diff --git a/miniprogram/pages/equipmentMember/equipmentMember.wxml b/miniprogram/pages/equipmentMember/equipmentMember.wxml
index 2e0d593..57124a7 100644
--- a/miniprogram/pages/equipmentMember/equipmentMember.wxml
+++ b/miniprogram/pages/equipmentMember/equipmentMember.wxml
@@ -37,8 +37,8 @@
-
-
+
+ {{ item.realname[0] }}