Compare commits

...
2 Commits
3 changed files with 34 additions and 30 deletions
@@ -130,17 +130,17 @@ Page({
}) })
.catch((err) => { .catch((err) => {
console.error('[connectedDevice] bindDevice 失败:', err) console.error('[connectedDevice] bindDevice 失败:', err)
this._resetAfterBindFail() this._resetAfterBindFail(err)
}) })
}, },
/** bindDevice 失败后的清理重置:断开连接、清缓存、重置页面状态 */ /** bindDevice 失败后的清理重置:断开连接、清缓存、重置页面状态 */
_resetAfterBindFail() { _resetAfterBindFail(err?: any) {
leFuService.disconnect() leFuService.disconnect()
wx.removeStorageSync('connectDeviceInfo') wx.removeStorageSync('connectDeviceInfo')
scannedDevices = [] scannedDevices = []
this.setData({ status: 'idle', deviceList: [] }) this.setData({ status: 'idle', deviceList: [] })
wx.showToast({ title: '绑定失败,请重试', icon: 'none' }) wx.showToast({ title: err?.msg || err?.message || '绑定失败,请重试', icon: 'none' })
}, },
/** 将所有卡片置为未连接 */ /** 将所有卡片置为未连接 */
@@ -95,7 +95,8 @@ Page({
groups: [] as GroupItem[], groups: [] as GroupItem[],
syncShow: false, syncShow: false,
syncPercent: 0, syncPercent: 0,
syncStatus: '' syncStatus: '',
isOps: false
}, },
onLoad(options: Record<string, string>) { onLoad(options: Record<string, string>) {
@@ -111,6 +112,7 @@ Page({
'device.deviceId': targetDevice.deviceId, 'device.deviceId': targetDevice.deviceId,
'device.sn': targetDevice.sn, 'device.sn': targetDevice.sn,
'device.status': targetDevice.connected, 'device.status': targetDevice.connected,
isOps: getApp<IAppOption>().globalData.operationsEngineer ?? false,
}) })
this._subscribeDeviceState() this._subscribeDeviceState()
this._loadMembers() this._loadMembers()
@@ -258,7 +260,7 @@ Page({
/** 同步完成后的统一处理:上报后刷新列表 + 关闭弹框 */ /** 同步完成后的统一处理:上报后刷新列表 + 关闭弹框 */
_finishSync(reportUsers: SyncUser[] | null, successText: string) { _finishSync(reportUsers: SyncUser[] | null, successText: string) {
this.setData({ syncPercent: 100, syncStatus: '同步完成' }) this.setData({ syncPercent: 100, syncStatus: '同步完成' })
wx.showToast({ title: successText, icon: 'success' }) // wx.showToast({ title: successText, icon: 'success' })
if (reportUsers && reportUsers.length && targetDevice?.sn) { if (reportUsers && reportUsers.length && targetDevice?.sn) {
const syncedIds = reportUsers.map(u => u.userId).filter(Boolean) const syncedIds = reportUsers.map(u => u.userId).filter(Boolean)
if (syncedIds.length) { if (syncedIds.length) {
@@ -271,7 +273,7 @@ Page({
syncCloseTimer = setTimeout(() => { syncCloseTimer = setTimeout(() => {
syncCloseTimer = null syncCloseTimer = null
this.setData({ syncShow: false }) this.setData({ syncShow: false })
}, 1000) }, 1500)
}, },
/** 同步用户至设备:有删除标记则清空重下发,否则只下发「待同步」 */ /** 同步用户至设备:有删除标记则清空重下发,否则只下发「待同步」 */
@@ -37,30 +37,30 @@
<view class="scrollViewContent"> <view class="scrollViewContent">
<!-- 本人 --> <!-- 本人 -->
<block wx:if="{{ self }}"> <block wx:if="{{ self }}">
<view class="member-card {{ self.delFlag === 1 ? 'member-card--deleted' : '' }}"> <view class="member-card {{ self.delFlag === 1 ? 'member-card--deleted' : '' }}">
<view class="member-top"> <view class="member-top">
<view class="member-avatar"> <view class="member-avatar">
<image src="{{ self.gender === '女' ? '/images/woman.png' : '/images/man.png' }}" mode="aspectFit" /> <image src="{{ self.gender === '女' ? '/images/woman.png' : '/images/man.png' }}" mode="aspectFit" />
</view>
<view class="member-info">
<view class="member-name-row">
<view class="member-name">{{ self.name }}</view>
<view class="member-type-tag member-type-tag--self">本人</view>
</view>
<view class="member-sub">{{ self.gender }}·{{ self.age }}岁 丨 {{ self.height }}cm</view>
</view>
<view class="member-sync member-sync--{{ self.syncClass }}">
<view></view>
<view>{{ self.sync }}</view>
</view>
</view> </view>
<view class="member-info"> <!-- <block wx:if="{{ self.delFlag !== 1 }}">
<view class="member-name-row"> <view class="member-divider"></view>
<view class="member-name">{{ self.name }}</view> <view class="member-ops">
<view class="member-type-tag member-type-tag--self">本人</view> <view class="op-delete" bind:tap="onTapDelete" data-item="{{ self }}">删除</view>
</view> </view>
<view class="member-sub">{{ self.gender }}·{{ self.age }}岁 丨 {{ self.height }}cm</view> </block> -->
</view> </view>
<view class="member-sync member-sync--{{ self.syncClass }}">
<view></view>
<view>{{ self.sync }}</view>
</view>
</view>
<block wx:if="{{ self.delFlag !== 1 }}">
<view class="member-divider"></view>
<view class="member-ops">
<view class="op-delete" bind:tap="onTapDelete" data-item="{{ self }}">删除</view>
</view>
</block>
</view>
</block> </block>
<!-- 分组 --> <!-- 分组 -->
@@ -108,7 +108,9 @@
<view class="btn-primary" bind:tap="onTapAddUser">添加用户(最多10位)</view> <view class="btn-primary" bind:tap="onTapAddUser">添加用户(最多10位)</view>
</block> </block>
<block wx:else> <block wx:else>
<view class="btn-primary" bind:tap="onTapAddSelf">一键添加本人</view> <block wx:if="{{ !isOps }}">
<view class="btn-primary" bind:tap="onTapAddSelf">一键添加本人</view>
</block>
<view class="btn-cancel" bind:tap="onTapAddNew">添加新用户</view> <view class="btn-cancel" bind:tap="onTapAddNew">添加新用户</view>
</block> </block>
</view> </view>