|
@@ -25,17 +25,59 @@
|
|
|
</template>
|
|
|
</el-progress>
|
|
|
</span>
|
|
|
- <span></span>
|
|
|
+ <span>
|
|
|
+ <span v-show="checkTime" class="check-time">
|
|
|
+ <span class="t-span">巡检时间:</span>
|
|
|
+ <span class="check-time">{{parseTime(checkTime, '{y}-{m}-{d} {h}:{mi}:{s}')}}</span>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div class="progress-bar">
|
|
|
<div class="progress-bar-inner" :style="`width: ${currentProgress}%`"/>
|
|
|
</div>
|
|
|
|
|
|
+ <div class="check-info">
|
|
|
+ <div class="sub-col">
|
|
|
+ <el-icon :size="46" color="#409EFF"><Timer /></el-icon>
|
|
|
+ <div class="s-c-text">
|
|
|
+ {{cIndex!=null?cIndex+1:0}}/{{checkList.length}}<br/>已检测模型</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-col">
|
|
|
+ <el-icon :size="46" color="#409EFF"><Compass /></el-icon>
|
|
|
+ <div class="s-c-text">{{cIndex!=null?Math.ceil((314/checkList.length)*(cIndex+1)):0}}/314<br/>已检测指标{{cIndex}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-col">
|
|
|
+ <el-icon :size="46" color="#409EFF"><Warning /></el-icon>
|
|
|
+ <div class="s-c-text">
|
|
|
+ <span class="s-c-num">{{totalError}}</span>
|
|
|
+ <br/>已发现问题</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<el-table :data="listData" style="width: 100%" border class="mt20">
|
|
|
<el-table-column prop="class" label="分类" width="180" />
|
|
|
<el-table-column prop="option" label="巡检项" />
|
|
|
+ <el-table-column label="巡检进度" align="center" width="180">
|
|
|
+ <template #default="{row}">
|
|
|
+ <span v-if="checkTime">
|
|
|
+ <el-icon size="25" color="#90a4ae" class="rotate" v-if="row.checkProess!=='done'"><Loading /></el-icon>
|
|
|
+ <el-icon size="25" color="#388e3c" v-else><CircleCheck /></el-icon>
|
|
|
+ </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="巡检结果" align="center" width="180">
|
|
|
+ <template #default="{row}">
|
|
|
+ <span v-if="checkTime">
|
|
|
+ <el-icon size="25" color="#90a4ae" class="rotate" v-if="!row.checkResult"><Loading /></el-icon>
|
|
|
+ <span v-else class="check-result">
|
|
|
+ <el-icon size="20" color="#e43"><WarnTriangleFilled /></el-icon>
|
|
|
+ <span class="res-text">{{row.checkResult}} 项</span>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
-
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
@@ -43,11 +85,14 @@
|
|
|
<script setup lang="ts">
|
|
|
import {getCheckList,getCheckModel} from "@/api/hl/bm"
|
|
|
import {onMounted} from "vue";
|
|
|
+import {Timer,Compass,Warning,Loading,CircleCheck,WarnTriangleFilled} from "@element-plus/icons-vue"
|
|
|
const checkList = ref([])
|
|
|
const cLoading = ref(false)
|
|
|
const currentProgress = ref(0)
|
|
|
const cIndex=ref(null)
|
|
|
const listData = ref([])
|
|
|
+const checkTime = ref(null)
|
|
|
+const totalError=ref(0)
|
|
|
|
|
|
const colors = [
|
|
|
{ color: '#bbdefb', percentage: 20 },
|
|
@@ -93,6 +138,7 @@ function handleNowCheck(sub){
|
|
|
if(!cLoading.value){
|
|
|
cLoading.value = true
|
|
|
cIndex.value = null;
|
|
|
+ checkTime.value = new Date()
|
|
|
}
|
|
|
let index = checkList.value.length-sub
|
|
|
currentProgress.value = Number(Number(index / checkList.value.length * 100).toFixed(2))
|
|
@@ -102,6 +148,10 @@ function handleNowCheck(sub){
|
|
|
setTimeout(async ()=>{
|
|
|
const res = await getCheckModel(checkList.value[index].modelId)
|
|
|
console.log(res)
|
|
|
+ listData.value[index].checkProess = 'done'
|
|
|
+ let e = Math.ceil(Math.random()*100)
|
|
|
+ totalError.value += e
|
|
|
+ listData.value[index].checkResult = e
|
|
|
cIndex.value = index
|
|
|
handleNowCheck(sub-1)
|
|
|
}, getRandomInt(500, 500))
|