|
@@ -1,17 +1,17 @@
|
|
|
<template>
|
|
|
<div id="path-control" v-loading="loading">
|
|
|
<el-row class="title-time">
|
|
|
- <div>
|
|
|
+ <div style="width:200px">
|
|
|
<span>模型总耗时:</span>
|
|
|
- <span>28分钟50秒</span>
|
|
|
+ <span>{{allTakeTime}}</span>
|
|
|
</div>
|
|
|
- <div>
|
|
|
+ <div style="width:250px">
|
|
|
<span>模型开始上传时间:</span>
|
|
|
<span>{{UploadState.BeginTime}}</span>
|
|
|
</div>
|
|
|
- <div>
|
|
|
+ <div style="width:250px">
|
|
|
<span>模型处理完成时间:</span>
|
|
|
- <span>{{'--'}}</span>
|
|
|
+ <span>{{SaveLog.EndTime}}</span>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
<el-row class="path-pic">
|
|
@@ -45,14 +45,15 @@
|
|
|
<img v-else class="status up-model" src="@/assets/image/model/upModelGreen.png" />
|
|
|
|
|
|
<!-- 调度器1 -->
|
|
|
- <div class="path-tips shadow-box" style="top:67px;left:291px;" @click="getNodeDes">
|
|
|
+ <div class="path-tips shadow-box" style="top:67px;left:291px;" @click="getNodeDes"
|
|
|
+ v-if='SchedulerCheck.BeginTime&&!SchedulerCheck.EndTime'>
|
|
|
<i class="el-icon-error" v-if="SchedulerCheck.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="SchedulerCheck.HasRetry"></i>
|
|
|
<p>耗时: {{SchedulerCheck.TakeTime||'--'}}</p>
|
|
|
<!-- <p>平均上传速度: 1M/s</p> -->
|
|
|
<p>开始时间: {{SchedulerCheck.BeginTime||'--'}}</p>
|
|
|
- <!-- <p>结束时间: 2020/2/22 20:20:20</p> -->
|
|
|
- <p>待分配模型数量: {{SchedulerCheck.Num||'--'}}</p>
|
|
|
+ <p v-if="SchedulerCheck.EndTime">待分配模型数量: {{waitAssign}}</p>
|
|
|
+ <p v-else>结束时间: {{SchedulerCheck.EndTime||'--'}}</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
<p style="float:left;width:100%;text-align:center;margin-top:73px;color:#acb5bb;font-size:12px;">本地电脑主机</p>
|
|
@@ -62,7 +63,7 @@
|
|
|
<i class="el-icon-error" v-if="UploadState.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="UploadState.HasRetry"></i>
|
|
|
<p>耗时: {{UploadState.TakeTime||'--'}}</p>
|
|
|
- <p>平均上传速度: {{UploadState.Speed||'--'}}</p>
|
|
|
+ <p>平均上传速度: {{UploadStateSpeed}}</p>
|
|
|
<p>开始时间: {{UploadState.BeginTime||'--'}}</p>
|
|
|
<p>结束时间: {{UploadState.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -81,7 +82,7 @@
|
|
|
<i class="iconfont icon-revit" style="color:#dee6ec;font-size:60px;background:#fff"></i>
|
|
|
</div>
|
|
|
<div class="fixed">
|
|
|
- <p :title="Name">模型文件名称{{Name}}</p>
|
|
|
+ <p :title="OriginalName">模型文件名称{{OriginalName}}</p>
|
|
|
<p style="color:#8d9aa3">模型文件大小: {{(Size/1000/1024).toFixed(1)}}M</p>
|
|
|
<p style="color:#8d9aa3">上传时间: {{UploadState.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -91,7 +92,7 @@
|
|
|
<i class="iconfont icon-json" style="color:#dee6ec;font-size:60px;background:#fff"></i>
|
|
|
</div>
|
|
|
<div class="fixed">
|
|
|
- <p>{{Name}}json数据压缩包</p>
|
|
|
+ <p>{{OriginalName}} json数据压缩包</p>
|
|
|
<p style="color:#8d9aa3">文件大小: {{ModelExport.JsonzSize?(ModelExport.JsonzSize/1000/1024).toFixed(1)+'M':'--'}}</p>
|
|
|
<p style="color:#8d9aa3">上传时间: {{ModelExport.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -135,14 +136,15 @@
|
|
|
<img v-else class="status del-model" src="@/assets/image/model/delModelBlue.png" />
|
|
|
|
|
|
<!-- 调度器2 -->
|
|
|
- <div class="path-tips shadow-box" style="top:114px;left:329px;" @click="getNodeDes">
|
|
|
+ <div class="path-tips shadow-box" style="top:114px;left:329px;" @click="getNodeDes"
|
|
|
+ v-if="SchedulerExport.BeginTime&&!SchedulerExport.EndTime">
|
|
|
<i class="el-icon-error" v-if="SchedulerExport.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="SchedulerExport.HasRetry"></i>
|
|
|
<p>耗时: {{SchedulerExport.TakeTime||'--'}}</p>
|
|
|
<!-- <p>平均上传速度: 1M/s</p> -->
|
|
|
<p>开始时间: {{SchedulerExport.BeginTime||'--'}}</p>
|
|
|
- <!-- <p>结束时间: {{SchedulerExport.EndTime}}</p> -->
|
|
|
- <p>待分配模型数量: {{SchedulerExport.Num||'--'}}</p>
|
|
|
+ <p v-if="!SchedulerExport.EndTime">待分配模型数量: {{waitAssign}}</p>
|
|
|
+ <p v-else>结束时间: {{SchedulerExport.EndTime}}</p>
|
|
|
</div>
|
|
|
|
|
|
<p style="float:left;width:100%;text-align:center;margin-top:83px;color:#acb5bb;font-size:12px;">revit本地服务器集群</p>
|
|
@@ -152,7 +154,7 @@
|
|
|
<i class="el-icon-error" v-if="ModelCheck.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="ModelCheck.HasRetry"></i>
|
|
|
<p>耗时: {{ModelCheck.TakeTime||'--'}}</p>
|
|
|
- <p>平均下载速度: {{ModelCheck.Speed||'--'}}</p>
|
|
|
+ <p>平均下载速度: {{ModelCheckSpeed}}</p>
|
|
|
<p>开始时间: {{UploadState.EndTime||'--'}}</p>
|
|
|
<p>结束时间: {{SchedulerCheck.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -161,7 +163,7 @@
|
|
|
<i class="el-icon-error" v-if="ModelExport.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="ModelExport.HasRetry"></i>
|
|
|
<p>耗时: {{ModelExport.TakeTime||'--'}}</p>
|
|
|
- <p>平均下载速度: {{ModelExport.Speed||'--'}}</p>
|
|
|
+ <p>平均下载速度: {{ModelExportSpeed||'--'}}</p>
|
|
|
<p>开始时间: {{ModelCheck.EndTime||'--'}}</p>
|
|
|
<p>结束时间: {{SchedulerExport.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -170,7 +172,7 @@
|
|
|
<i class="el-icon-error" v-if="ModelExport.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="ModelExport.HasRetry"></i>
|
|
|
<p>耗时: {{ModelExport.TakeTime||'--'}}</p>
|
|
|
- <p>平均上传速度: {{ModelExport.Speed||'--'}}</p>
|
|
|
+ <p>平均上传速度: {{SaveJsonSpeed||'--'}}</p>
|
|
|
<p>开始时间: {{ModelExport.BeginTime||'--'}}</p>
|
|
|
<p>结束时间: {{ModelExport.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -179,7 +181,7 @@
|
|
|
<i class="el-icon-error" v-if="JsonAnalysis.HasError"></i>
|
|
|
<i class="el-icon-warning" v-else-if="JsonAnalysis.HasRetry"></i>
|
|
|
<p>耗时: {{JsonAnalysis.TakeTime||'--'}}</p>
|
|
|
- <p>平均下载速度: {{JsonAnalysis.Speed||'--'}}</p>
|
|
|
+ <p>平均下载速度: {{DownJsonSpeed||'--'}}</p>
|
|
|
<p>开始时间: {{JsonAnalysis.BeginTime||'--'}}</p>
|
|
|
<p>结束时间: {{JsonAnalysis.EndTime||'--'}}</p>
|
|
|
</div>
|
|
@@ -261,16 +263,16 @@
|
|
|
<pathCard :title="'储存模型数据并记录增删日志'" @click="getNodeDes" :data="SaveLog"></pathCard>
|
|
|
|
|
|
<img v-if="1" class="status path1" src="@/assets/image/model/arrowGray.png" />
|
|
|
- <img v-else-if="2" class="status path1" src="@/assets/image/model/arrowBlue.png" />
|
|
|
- <img v-else class="status path1" src="@/assets/image/model/arrowGreen.png" />
|
|
|
+ <!-- <img v-else-if="2" class="status path1" src="@/assets/image/model/arrowBlue.png" />
|
|
|
+ <img v-else class="status path1" src="@/assets/image/model/arrowGreen.png" /> -->
|
|
|
|
|
|
<p style="float:left;width:100%;text-align:center;margin-top:83px;color:#acb5bb;font-size:12px;">数据中心服务器 </p>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
<div class="fifth-column column">
|
|
|
- <pathCard class="finish-item" :title="'完成'" :data="finish" :isCustomize="true">
|
|
|
+ <pathCard class="finish-item" :title="'完成'" :data="{}" :isCustomize="true">
|
|
|
<p>后续关系计算...</p>
|
|
|
- <p>完成时间: {{Note.EndTime||'--'}}</p>
|
|
|
+ <p>完成时间: {{SaveLog.EndTime||'--'}}</p>
|
|
|
</pathCard>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -297,7 +299,7 @@ export default {
|
|
|
loading: false, //
|
|
|
Id: '',
|
|
|
Size: 0,
|
|
|
- Name: '--',
|
|
|
+ OriginalName: '',
|
|
|
JsonAnalysis: {}, //解压并解析json文件
|
|
|
ModelCheck: {}, //楼层模型检查
|
|
|
ModelExport: {}, //导出模型json数据并压缩存储
|
|
@@ -311,6 +313,13 @@ export default {
|
|
|
SyncDatacenter: {}, //处理模型数据格式
|
|
|
SaveLog: {},// 储存模型数据并记录增删日志
|
|
|
timer: null, //定时器
|
|
|
+ waitAssign: 0,
|
|
|
+ allTakeTime: '', //总耗时
|
|
|
+ UploadStateSpeed: '', // 上传模型文件平均速度
|
|
|
+ ModelCheckSpeed: '',//下载模型文件1平均速度
|
|
|
+ ModelExportSpeed: '',//下载模型文件2平均速度
|
|
|
+ SaveJsonSpeed: '',//存储json平均速度
|
|
|
+ DownJsonSpeed: '',//下载json平均速度
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
@@ -321,8 +330,14 @@ export default {
|
|
|
created() {
|
|
|
this.Id = this.$route.query.Id
|
|
|
this.Size = this.$route.query.Size
|
|
|
+ this.OriginalName = this.$route.query.OriginalName || '--'
|
|
|
this.init();
|
|
|
},
|
|
|
+ beforeDestroy() {
|
|
|
+ if (this.timer) {
|
|
|
+ clearInterval(this.timer);
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
init() {
|
|
|
this.getMessage();
|
|
@@ -339,17 +354,12 @@ export default {
|
|
|
}
|
|
|
modelPathControl(pa, res => {
|
|
|
const data = res.Content[0];
|
|
|
- this.JsonAnalysis = data.JsonAnalysis || {}
|
|
|
- this.ModelCheck = data.ModelCheck || {}
|
|
|
- this.ModelExport = data.ModelExport || {}
|
|
|
- this.MultiFloorCheck = data.MultiFloorCheck || {}
|
|
|
- this.Note = data.Note || {}
|
|
|
- this.SaveData = data.SaveData || {}
|
|
|
- this.SchedulerCheck = data.SchedulerCheck || {}
|
|
|
- this.SchedulerExport = data.SchedulerExport || {}
|
|
|
- this.UploadState = data.UploadState || {}
|
|
|
- this.SyncDatacenter = data.SyncDatacenter || {}
|
|
|
- this.SaveLog = data.SaveLog || {}
|
|
|
+ if (data.SchedulerExport.BeginTime) {
|
|
|
+ data.ModelExport.BeginTime = data.SchedulerExport.BeginTime
|
|
|
+ }
|
|
|
+ this.updateData(data);
|
|
|
+ this.getSpeed();
|
|
|
+ this.interval(data)
|
|
|
})
|
|
|
},
|
|
|
//
|
|
@@ -358,15 +368,117 @@ export default {
|
|
|
Filters: `Status=0 or Status=1 or Status=2`
|
|
|
}
|
|
|
unassignQuery(pa, res => {
|
|
|
- console.log(res)
|
|
|
+ this.waitAssign = res.Total
|
|
|
})
|
|
|
},
|
|
|
+ // 定时器
|
|
|
+ interval(data) {
|
|
|
+ if (this.timer) {
|
|
|
+ clearInterval(this.timer);
|
|
|
+ }
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ this.updateData(data)
|
|
|
+ this.$forceUpdate()
|
|
|
+ }, 1000)
|
|
|
+ },
|
|
|
+ // 计算耗时
|
|
|
+ updateData(data) {
|
|
|
+ this.JsonAnalysis = this.formatTime(data.JsonAnalysis || {});
|
|
|
+ this.ModelCheck = this.formatTime(data.ModelCheck || {})
|
|
|
+ this.ModelExport = this.formatTime(data.ModelExport || {})
|
|
|
+ this.MultiFloorCheck = this.formatTime(data.MultiFloorCheck || {})
|
|
|
+ this.SaveData = this.formatTime(data.SaveData || {})
|
|
|
+ this.SchedulerCheck = this.formatTime(data.SchedulerCheck || {})
|
|
|
+ this.SchedulerExport = this.formatTime(data.SchedulerExport || {})
|
|
|
+ this.UploadState = this.formatTime(data.UploadState || {})
|
|
|
+ this.SyncDatacenter = this.formatTime(data.SyncDatacenter || {})
|
|
|
+ this.SaveLog = this.formatTime(data.SaveLog || {})
|
|
|
+ if (this.UploadState.BeginTime) {
|
|
|
+ let temp = { BeginTime: this.UploadState.BeginTime }
|
|
|
+ if (this.SaveLog.EndTime) {
|
|
|
+ temp.EndTime = this.SaveLog.EndTime
|
|
|
+ }
|
|
|
+ this.allTakeTime = this.formatTime(temp).TakeTime
|
|
|
+ }
|
|
|
+ if (this.UploadState.EndTime && this.SchedulerCheck.EndTime) {
|
|
|
+ let temp = {
|
|
|
+ BeginTime: new Date(this.UploadState.EndTime).getTime(),
|
|
|
+ EndTime: new Date(this.SchedulerCheck.EndTime).getTime()
|
|
|
+ }
|
|
|
+ this.ModelCheck.TakeTime = this.formatTime(temp).TakeTime
|
|
|
+ } else {
|
|
|
+ this.ModelCheckSpeed = '--'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 设置速度
|
|
|
+ getSpeed() {
|
|
|
+ let sTime, eTime;
|
|
|
+ if (this.UploadState.BeginTime && this.UploadState.EndTime) {
|
|
|
+ sTime = new Date(this.UploadState.BeginTime).getTime();
|
|
|
+ eTime = new Date(this.UploadState.EndTime).getTime();
|
|
|
+ if (sTime != eTime) {
|
|
|
+ this.UploadStateSpeed = `${(this.Size / (eTime - sTime)).toFixed(1)}K/s`
|
|
|
+ } else {
|
|
|
+ this.UploadStateSpeed = '--'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.UploadStateSpeed = '--'
|
|
|
+ }
|
|
|
+ if (this.UploadState.EndTime && this.SchedulerCheck.EndTime) {
|
|
|
+ sTime = new Date(this.UploadState.EndTime).getTime();
|
|
|
+ eTime = new Date(this.SchedulerCheck.EndTime).getTime();
|
|
|
+ if (sTime != eTime) {
|
|
|
+ this.ModelCheckSpeed = `${(this.Size / (eTime - sTime)).toFixed(1)}K/s`
|
|
|
+ } else {
|
|
|
+ this.ModelCheckSpeed = '--'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.ModelCheckSpeed = '--'
|
|
|
+ }
|
|
|
+ if (this.ModelCheck.EndTime && this.SchedulerExport.EndTime) {
|
|
|
+ sTime = new Date(this.ModelCheck.EndTime).getTime();
|
|
|
+ eTime = new Date(this.SchedulerExport.EndTime).getTime();
|
|
|
+ if (sTime != eTime) {
|
|
|
+ this.ModelExportSpeed = `${(this.Size / (eTime - sTime)).toFixed(1)}K/s`
|
|
|
+ } else {
|
|
|
+ this.ModelExportSpeed = '--'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.ModelExportSpeed = '--'
|
|
|
+ }
|
|
|
+ if (this.ModelExport.BeginTime && this.ModelExport.EndTime) {
|
|
|
+ sTime = new Date(this.ModelExport.BeginTime).getTime();
|
|
|
+ eTime = new Date(this.ModelExport.EndTime).getTime();
|
|
|
+ if (sTime != eTime) {
|
|
|
+ this.SaveJsonSpeed = `${(this.ModelExport.JsonzSize / (eTime - sTime)).toFixed(1)}K/s`
|
|
|
+ } else {
|
|
|
+ this.SaveJsonSpeed = '--'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.SaveJsonSpeed = '--'
|
|
|
+ }
|
|
|
+ if (this.JsonAnalysis.BeginTime && this.JsonAnalysis.EndTime) {
|
|
|
+ sTime = new Date(this.JsonAnalysis.BeginTime).getTime();
|
|
|
+ eTime = new Date(this.JsonAnalysis.EndTime).getTime();
|
|
|
+ if (sTime != eTime) {
|
|
|
+ this.DownJsonSpeed = `${(this.ModelExport.JsonzSize / (eTime - sTime)).toFixed(1)}K/s`
|
|
|
+ } else {
|
|
|
+ this.DownJsonSpeed = '--'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.DownJsonSpeed = '--'
|
|
|
+ }
|
|
|
+ },
|
|
|
// 处理时间工具
|
|
|
formatTime(data) {
|
|
|
if (data.BeginTime && !data.EndTime) {
|
|
|
const sTime = new Date(data.BeginTime).getTime();
|
|
|
const eTime = new Date().getTime();
|
|
|
data.TakeTime = this.msToStr(eTime - sTime);
|
|
|
+ } else if (data.BeginTime && data.EndTime) {
|
|
|
+ const sTime = new Date(data.BeginTime).getTime();
|
|
|
+ const eTime = new Date(data.EndTime).getTime();
|
|
|
+ data.TakeTime = this.msToStr(eTime - sTime);
|
|
|
}
|
|
|
return data;
|
|
|
},
|