1
This commit is contained in:
@ -85,8 +85,7 @@
|
||||
<!-- 圆形进度条 + 全屏遮罩层(升级中显示) -->
|
||||
<view v-if="isUpdating" class="mask-layer">
|
||||
<view class="circle-progress-box">
|
||||
<progress :percent="updateProgress" activeColor="#bbe600" backgroundColor="#686767" :border-radius='22'
|
||||
show-info stroke-width="15" class="custom-progress" />
|
||||
<progress :percent="updateProgress" activeColor="#bbe600" backgroundColor="#686767" :border-radius='22' show-info stroke-width="15" class="custom-progress" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -207,7 +206,7 @@
|
||||
},
|
||||
updateProgress: 0, // 升级进度,0-100
|
||||
isUpdating: false, // 是否正在升级(控制进度条显示/隐藏)
|
||||
upgradeTimer: null // 升级超时定时器,初始为null
|
||||
mqttSubscribeSuccess: false // MQTT订阅是否成功
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
@ -488,22 +487,24 @@
|
||||
// 解析MQTT返回的payload
|
||||
const payloadObj = typeof payload === 'string' ? JSON.parse(
|
||||
payload) : payload;
|
||||
// 取出进度值
|
||||
const progress = payloadObj.data.progress;
|
||||
// 取出进度值(用可选链避免字段不存在报错)
|
||||
const progress = payloadObj.data?.progress;
|
||||
if (progress !== undefined && !isNaN(progress) && progress >=
|
||||
0 && progress <= 100) {
|
||||
this.updateProgress = progress;
|
||||
console.log('当前升级进度:', progress + '%');
|
||||
// 进度到100%时
|
||||
// 进度到100%时,触发升级完成逻辑
|
||||
if (progress === 100) {
|
||||
clearTimeout(this.upgradeTimer);
|
||||
uni.showToast({
|
||||
title: '更新完成!',
|
||||
title: '升级完成!',
|
||||
icon: 'success',
|
||||
duration: 2000
|
||||
});
|
||||
this.isUpdating = false;
|
||||
item.useStatus = 1
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1500);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
@ -522,19 +523,21 @@
|
||||
}
|
||||
})
|
||||
this.upgradeTimer = setTimeout(() => {
|
||||
// 超时后
|
||||
// 超时后执行:隐藏进度条+提示超时+重置进度
|
||||
uni.showToast({
|
||||
title: '响应超时',
|
||||
title: '升级进度同步超时',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
this.isUpdating = false; // 关闭进度条
|
||||
this.updateProgress = 0;
|
||||
this.updateProgress = 0; // 重置进度值
|
||||
// 可选:如果需要取消MQTT订阅,加这行(根据需求选择)
|
||||
// this.mqttClient.unsubscribe(statusTopic);
|
||||
}, 20000); //20s超时
|
||||
}, 6000); // 6000ms = 6秒,时间可直接修改
|
||||
},
|
||||
closePop: function() {
|
||||
this.Status.Pop.showPop = false;
|
||||
|
||||
if (this.Status.Pop.cancelCallback) {
|
||||
this.Status.Pop.cancelCallback();
|
||||
}
|
||||
@ -640,17 +643,14 @@
|
||||
.custom-progress{
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.custom-progress .uni-progress-bar{
|
||||
border-radius: 10rpx !important;
|
||||
}
|
||||
|
||||
.custom-progress .uni-progress-info{
|
||||
color: #BBE600;
|
||||
font-size: 40rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.popup-prompt {
|
||||
width: 100%;
|
||||
margin-top: 40rpx;
|
||||
@ -687,8 +687,6 @@
|
||||
|
||||
}
|
||||
|
||||
.li .itemMain {}
|
||||
|
||||
.li .item {
|
||||
width: 100%;
|
||||
height: 200rpx;
|
||||
|
||||
Reference in New Issue
Block a user