@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
< template >
< div class = "flex-col gap-16 wh-full" >
< el -button type = "primary" @click ="onBack" class = "w-150px" >
< i class = "i-line-md:arrow-left" > < / i > 返回站点数据
< i class = "i-line-md:arrow-left" > < / i > 返回站点数据 { { isonLineTransfer } }
< / e l - b u t t o n >
< EdfsWrap title = "设备列表" class = "flex-1" useScrollBar >
< template # title -right >
@ -87,13 +87,19 @@
@@ -87,13 +87,19 @@
< / template >
< div class = "absolute l-0 t-0 w-full h-full z-10 bg-#FFF-90"
v - if = "['updating', 'pending', 'rejected', 'timeout'].includes(item.upFirmware)" >
< div class = "i-material-symbols-light:close absolute-rt text-base text-gray-950 cursor-pointer"
v - if = "['timeout', 'rejected'].includes(item.upFirmware)" @ click = "upFirmwareSucceed(item.sn)" > < / div >
< div class = "i-material-symbols-light:close absolute-rt text-base text-gray-950 cursor-pointer" v -if = "
[ 'timeout' , 'rejected' , 'sc' ] . includes ( item . upFirmware ) ||
( item . upFirmwareStatus ? . step === 4 && item . upFirmwareStatus ? . progress === 100 ) "
@ click = "upFirmwareSucceed(item.sn)" >
< / div >
< template v-if ="item.upFirmware === 'updating'" >
< div class = "device-item-body" >
< div class = "info-item" >
< div > 当前步骤 : < / div >
< div > { { item . upFirmwareStatus ? . step ? ? '--' } } < / div >
< div > { { item . upFirmwareStatus ? . step === 4 && item . upFirmwareStatus ? . progress === 100 ? '安装完成' :
upgradeProgressStatusMap . find ( r => r . status === item . upFirmwareStatus ? . step ) ? . text ? ?
'--' } }
< / div >
< / div >
< div class = "info-item" >
< div > 当前进度 : < / div >
@ -180,7 +186,9 @@
@@ -180,7 +186,9 @@
< div class = "text-16px font-500" > { { ! ! onOffDeviceTransferStatus ? onOffDeviceTransferStatus ===
'progress'
? '数据导入中' : '数据导入完成' : '数据导入中' } } < / div >
? '数据导入中' : ` 数据导入完成 (失败: ${ offLineTransferRes ( ) . error } 个 超时: ${ offLineTransferRes ( ) . timeout } 个) ` :
'数据导入中'
} } < / div >
< / e l - p r o g r e s s >
< / div >
@ -188,8 +196,8 @@
@@ -188,8 +196,8 @@
< div class = "h-490 border-radius-8px bg-[#F9FAFB] p-10 flex-col" >
< div class = "text-16px font-500" > 迁移日志 < / div >
< el -scrollbar class = "flex-1" >
< div v -for = " i in siteTransferLogList " : class = "i.status === 'error' ? 'text-red-500' : ''"
class = "text-gray-600" >
< div v -for = " i in siteTransferLogList "
: class = "['error', 'timeout'].includes(i.status) ? 'text-red-500' : ''" class = "text-gray-600" >
【 { { i . device . sn } } 】 : { { i . msg } }
< / div >
< / e l - s c r o l l b a r >
@ -390,13 +398,14 @@ function zmqTimeoutCb(msg: TimeoutMsg) {
@@ -390,13 +398,14 @@ function zmqTimeoutCb(msg: TimeoutMsg) {
message . error ( ` 迁移超时,请重新稍后尝试 ` )
exportPubDeviceMap . delete ( msg . timeoutId )
closeTransferMask ( )
transferStatus . value === 'failed'
}
}
const onlineDeviceMap : Record <
keyof Omit <
IOnlineDevice ,
'lastUpdated' | 'sn' | 'isChecked' | 'upFirmware' | 'upFirmwareStatus'
'lastUpdated' | 'sn' | 'isChecked' | 'upFirmware' | 'upFirmwareStatus' | 'versions'
> ,
string
> = {
@ -594,7 +603,7 @@ function firmwareUpTimeoutCb(msg: TimeoutMsg) {
@@ -594,7 +603,7 @@ function firmwareUpTimeoutCb(msg: TimeoutMsg) {
function zmqUpgradeCb ( msg : PubMsgData ) {
if ( ! isonLineTransfer . value ) return
const status = msg . result
const status = msg . code
const deviceSn = msg . feedback [ 0 ]
const progressStatus = msg . feedback [ 1 ] as number
const progress = msg . feedback [ 2 ] || undefined
@ -602,16 +611,16 @@ function zmqUpgradeCb(msg: PubMsgData) {
@@ -602,16 +611,16 @@ function zmqUpgradeCb(msg: PubMsgData) {
if ( curentDevice && curentDevice . action === 'upgrade' ) {
const { device } = curentDevice
if ( device ) {
if ( status === 'progress' ) {
if ( status === ZmqMsgResultType . PROGRESS ) {
upFirmwareStatus ( deviceSn , msg . feedback )
if ( progressStatus === 4 && progress === 100 ) {
upFirmwareSucceed ( deviceSn )
}
}
}
if ( status === 'success' || status === 'error' ) {
if ( status === ZmqMsgResultType . SUCCESS || status === ZmqMsgResultType . ERROR ) {
upFirmwareStatus ( deviceSn , msg . feedback )
if ( status === 'error' ) {
if ( status === ZmqMsgResultType . ERROR ) {
upFirmwareStatusReject ( deviceSn , msg . feedback )
}
upgradeSnList . value = upgradeSnList . value . filter ( item => item !== deviceSn )
@ -658,6 +667,23 @@ const siteTransferLogList = ref<Array<{
@@ -658,6 +667,23 @@ const siteTransferLogList = ref<Array<{
status : 'success' | 'timeout' | 'error'
} >> ( [ ] )
const offLineTransferRes = ( ) => {
let timeoutNum = 0
let errorNum = 0
const findTimeout = siteTransferLogList . value . filter ( i => i . status === 'timeout' )
const uniqueTimeoutSn = new Set ( findTimeout . map ( i => i . device . sn ) )
timeoutNum = uniqueTimeoutSn . size
const findError = siteTransferLogList . value . filter ( i => i . status === 'error' )
errorNum = new Set ( findError . map ( i => i . device . sn ) ) . size
return {
timeout : timeoutNum ,
error : errorNum ,
}
}
const onOffDeviceTransferStatus = ref < 'progress' | 'success' | undefined > ( )
function zmqImportCb ( msg : PubMsgData ) {
const { id , feedback , result , code } = msg
@ -698,7 +724,7 @@ function zmqImportTimeoutCb(msg: TimeoutMsg) {
@@ -698,7 +724,7 @@ function zmqImportTimeoutCb(msg: TimeoutMsg) {
siteTransferLogList . value . push ( {
msg : ` 数据导入超时,请稍后重试 ` ,
device : offDevice ,
status : 'error '
status : 'timeout '
} )
importQueue . value . shift ( )
isImporting . value = false