haojianlong 5 lat temu
rodzic
commit
575258c1da

+ 1 - 0
src/components/model/file/floorTable.vue

@@ -152,6 +152,7 @@ export default {
         query: {
           Id: row.CurrentModelId,
           Size: row.Size,
+          OriginalName: row.OriginalName
         }
       })
     }

+ 1 - 1
src/components/model/file/pathCard.vue

@@ -12,7 +12,7 @@
     </div>
     <div class="path-content">
       <slot></slot>
-      <p v-if="!isCustomize">耗时: {{data.TokeTime||'--'}}</p>
+      <p v-if="!isCustomize">耗时: {{data.TakeTime||'--'}}</p>
       <p v-if="!isCustomize">开始时间: {{data.BeginTime||'--'}}</p>
       <p v-if="!isCustomize">结束时间: {{data.EndTime||'--'}}</p>
     </div>

+ 147 - 35
src/views/model/file/pathcontrol/index.vue

@@ -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;
     },