From 9040fc4fba2ebec553fbd4dd4c5822bfd0291702 Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Wed, 19 Aug 2026 15:29:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(userManagement):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E5=B9=B6?= =?UTF-8?q?=E6=8E=A5=E5=85=A5=E5=AF=BC=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- miniprogram/app.json | 5 +- .../pages/userManagement/userManagement.json | 6 + .../pages/userManagement/userManagement.less | 312 ++++++++++++++++++ .../pages/userManagement/userManagement.ts | 35 ++ .../pages/userManagement/userManagement.wxml | 63 ++++ 5 files changed, 419 insertions(+), 2 deletions(-) create mode 100644 miniprogram/pages/userManagement/userManagement.json create mode 100644 miniprogram/pages/userManagement/userManagement.less create mode 100644 miniprogram/pages/userManagement/userManagement.ts create mode 100644 miniprogram/pages/userManagement/userManagement.wxml diff --git a/miniprogram/app.json b/miniprogram/app.json index 1abdd65..35f9c5a 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -1,11 +1,12 @@ { "pages": [ - "pages/equipment/equipment", - "pages/login/login", + "pages/userManagement/userManagement", + "pages/login/login", "pages/supplementPersonal/supplementPersonal", "pages/connectedDevice/connectedDevice", "pages/connectedWifi/connectedWifi", "pages/home/home", + "pages/equipment/equipment", "pages/addUser/addUser", "pages/data/data", "pages/my/my", diff --git a/miniprogram/pages/userManagement/userManagement.json b/miniprogram/pages/userManagement/userManagement.json new file mode 100644 index 0000000..cbd4601 --- /dev/null +++ b/miniprogram/pages/userManagement/userManagement.json @@ -0,0 +1,6 @@ +{ + "usingComponents": {}, + "navigationBarTitleText": "用户管理", + "navigationBarTextStyle": "black", + "navigationBarBackgroundColor": "#FFFFFF" +} diff --git a/miniprogram/pages/userManagement/userManagement.less b/miniprogram/pages/userManagement/userManagement.less new file mode 100644 index 0000000..b260d96 --- /dev/null +++ b/miniprogram/pages/userManagement/userManagement.less @@ -0,0 +1,312 @@ +.userManagement { + width: 100%; + min-height: 100%; + padding: 24rpx 30rpx; + box-sizing: border-box; + + /* 设备卡片 */ + .device-card { + width: 100%; + padding: 30rpx; + display: flex; + flex-wrap: nowrap; + border-radius: 24rpx; + background-color: #FFFFFF; + box-sizing: border-box; + margin-bottom: 32rpx; + + .device-icon { + width: 88rpx; + height: 88rpx; + overflow: hidden; + margin-right: 24rpx; + border-radius: 24rpx; + background-color: #1385FA; + } + + .device-info { + flex: 1; + + .device-name-row { + width: 100%; + height: 40rpx; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 14rpx; + + .device-name { + color: #252535; + height: 40rpx; + font-size: 32rpx; + font-weight: bolder; + line-height: 40rpx; + } + + .device-status { + height: 40rpx; + padding: 0 16rpx; + display: flex; + flex-wrap: nowrap; + align-items: center; + border-radius: 20rpx; + background-color: #EAFAF6; + + .status-dot { + width: 12rpx; + height: 12rpx; + margin-right: 8rpx; + border-radius: 50%; + background-color: #2AC79F; + } + + .status-text { + color: #2AC79F; + height: 22rpx; + font-size: 22rpx; + line-height: 22rpx; + } + } + } + + .device-meta { + color: #808080; + height: 26rpx; + font-size: 26rpx; + line-height: 26rpx; + } + } + } + + /* 已录入用户 + 同步按钮 */ + .section-header { + width: 100%; + height: 48rpx; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 16rpx; + + .section-title { + color: #252535; + height: 32rpx; + font-size: 32rpx; + font-weight: bolder; + line-height: 32rpx; + } + + .sync-btn { + color: #FFFFFF; + height: 48rpx; + font-size: 24rpx; + padding: 0 16rpx; + line-height: 48rpx; + border-radius: 8rpx; + background-color: #1385FA; + } + } + + /* 同步提示 */ + .sync-tip { + color: #F2994A; + font-size: 24rpx; + line-height: 34rpx; + margin-bottom: 24rpx; + } + + /* 用户卡片 */ + .member-card { + width: 100%; + padding: 32rpx; + border-radius: 24rpx; + background-color: #FFFFFF; + box-sizing: border-box; + margin-bottom: 24rpx; + display: flex; + align-items: center; + + .member-avatar { + width: 88rpx; + height: 88rpx; + border-radius: 24rpx; + margin-right: 24rpx; + flex-shrink: 0; + } + + .member-avatar--male { + background-color: #C6E6FF; + } + + .member-avatar--female { + background-color: #FFD5E3; + } + + .member-info { + flex: 1; + + .member-name-row { + display: flex; + align-items: center; + margin-bottom: 16rpx; + + .member-name { + color: #252535; + height: 32rpx; + font-size: 32rpx; + line-height: 32rpx; + margin-right: 16rpx; + } + + .member-type-tag { + height: 40rpx; + padding: 0 10rpx; + font-size: 24rpx; + line-height: 40rpx; + border-radius: 8rpx; + color: #FFFFFF; + } + + .member-type-tag--self { + background-color: #1385FA; + } + + .member-type-tag--employee { + background-color: #10B981; + } + + .member-type-tag--family { + background-color: #F59E0B; + } + } + + .member-sub { + color: #808080; + height: 26rpx; + font-size: 26rpx; + line-height: 26rpx; + } + } + + .member-right { + display: flex; + flex-direction: column; + align-items: flex-end; + + .member-sync { + height: 22rpx; + font-size: 22rpx; + line-height: 22rpx; + margin-bottom: 16rpx; + } + + .member-sync--done { + color: #2AC79F; + } + + .member-sync--pending { + color: #F2994A; + } + + .member-sync--deleted { + color: #F24439; + } + + .member-ops { + display: flex; + + .op-edit { + color: #77849E; + height: 26rpx; + font-size: 26rpx; + line-height: 26rpx; + margin-right: 24rpx; + } + + .op-delete { + color: #F24439; + height: 26rpx; + font-size: 26rpx; + line-height: 26rpx; + } + } + } + } + + /* 底部添加用户按钮 */ + .add-btn { + width: 100%; + height: 96rpx; + border-radius: 48rpx; + background-color: #1385FA; + color: #FFFFFF; + font-size: 36rpx; + line-height: 96rpx; + text-align: center; + margin-top: 8rpx; + } + + /* 同步进度弹框 */ + .sync-mask { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(37, 37, 53, 0.6); + z-index: 100; + } + + .sync-panel { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 560rpx; + box-sizing: border-box; + background-color: #FFFFFF; + border-radius: 24rpx; + z-index: 101; + display: flex; + flex-direction: column; + align-items: center; + padding: 64rpx 48rpx; + + .sync-title { + color: #252535; + height: 32rpx; + font-size: 32rpx; + line-height: 32rpx; + } + + .sync-status { + color: #808080; + height: 24rpx; + font-size: 24rpx; + line-height: 24rpx; + margin-top: 24rpx; + } + + .sync-percent { + color: #77849E; + height: 24rpx; + font-size: 24rpx; + line-height: 24rpx; + margin-top: 48rpx; + } + + .sync-progress { + width: 464rpx; + height: 10rpx; + border-radius: 6rpx; + background-color: #D9D9D9; + margin-top: 16rpx; + overflow: hidden; + + .sync-progress-inner { + height: 10rpx; + border-radius: 6rpx; + background-color: #1385FA; + } + } + } +} diff --git a/miniprogram/pages/userManagement/userManagement.ts b/miniprogram/pages/userManagement/userManagement.ts new file mode 100644 index 0000000..a8ec683 --- /dev/null +++ b/miniprogram/pages/userManagement/userManagement.ts @@ -0,0 +1,35 @@ +// pages/userManagement/userManagement.ts +Page({ + data: { + device: { + name: '家庭蓝牙体脂秤 S1', + connected: true, + model: 'BS-A100', + serial: 'BL2024B00321' + }, + memberCount: 4, + members: [ + { id: 1, name: '张晓敏', gender: '男', age: 36, height: 172, type: '本人', typeClass: 'self', sync: '已同步', syncClass: 'done' }, + { id: 2, name: '李建国', gender: '男', age: 36, height: 182, type: '员工', typeClass: 'employee', sync: '已同步', syncClass: 'done' }, + { id: 3, name: '吉夏', gender: '女', age: 28, height: 165, type: '家庭用户', typeClass: 'family', sync: '未同步', syncClass: 'pending' }, + { id: 4, name: '张雪(他人添加)', gender: '女', age: 32, height: 158, type: '家庭用户', typeClass: 'family', sync: '已同步', syncClass: 'done' }, + { id: 5, name: '赵明亮', gender: '男', age: 32, height: 172, type: '员工', typeClass: 'employee', sync: '已删除未同步', syncClass: 'deleted' } + ], + syncShow: false, + syncPercent: 0, + syncStatus: '' + }, + + /** 同步用户至设备 */ + onTapSync() { + this.setData({ syncShow: true, syncPercent: 32, syncStatus: '正在同步信息,请勿离开...' }) + setTimeout(() => { + this.setData({ syncPercent: 100, syncStatus: '同步完成' }) + }, 2000) + }, + + /** 添加用户 */ + onTapAddUser() { + wx.navigateTo({ url: '/pages/addUser/addUser' }) + } +}) diff --git a/miniprogram/pages/userManagement/userManagement.wxml b/miniprogram/pages/userManagement/userManagement.wxml new file mode 100644 index 0000000..6b1412c --- /dev/null +++ b/miniprogram/pages/userManagement/userManagement.wxml @@ -0,0 +1,63 @@ + + + + + + + {{ device.name }} + + + {{ device.connected ? '已连接' : '未连接' }} + + + 型号:{{ device.model }} + 设备编号:{{ device.serial }} + + + + + + 已录入用户({{ memberCount }}/10) + 同步用户至设备 + + + + 当前用户信息未同步至设备,请在连接设备的状态下,点击同步按钮完成信息同步 + + + + + + + + {{ item.name }} + {{ item.type }} + + {{ item.gender }}·{{ item.age }}岁 丨 {{ item.height }}cm + + + {{ item.sync }} + + 编辑 + 删除 + + + + + + + 添加用户(最多10位) + + + + + + 同步成员至设备 + {{ syncStatus }} + {{ syncPercent }}% + + + + + +