From 43a85ad899a3b0b27b50967ff7e11f25d93edd4b Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 24 七月 2024 10:41:17 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/taskReliability/SimulatAssess.vue |  181 +++++++++++++++++++++++---------------------
 1 files changed, 94 insertions(+), 87 deletions(-)

diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index 327cb12..0e8dc14 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -1,51 +1,48 @@
 <template>
-  <div>
-    <el-row :gutter="10">
-      <el-col :span="6">
-        <div class="fa-card-a">
-          <div class="mod-taskReliability-simulatAssess">
-            <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="80px">
-              <zt-form-item label="浜у搧鑺傜偣" prop="productId">
-                <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
-              </zt-form-item>
-              <zt-form-item label="鎬讳綋浠诲姟" prop="task">
-                <zt-select v-model="dataForm.task" :datas="taskList" @change="onTaskSelected"/>
-              </zt-form-item>
-             <!-- <zt-form-item label="浠诲姟鏃堕暱" prop="simulatTime">
-                <el-input type="number" :min="1" v-model="dataForm.simulatTime">
-                  <template slot="append">灏忔椂</template>
-                </el-input>
-              </zt-form-item>-->
-              <zt-form-item label="鏁版嵁绫诲瀷" prop="dataType">
-                <zt-dict v-model="dataForm.dataType" dict="dataType"></zt-dict>
-              </zt-form-item>
-              <zt-form-item label="鏄惁鍙慨" prop="isRepair">
-                <zt-dict v-model="dataForm.isRepair" dict="is_or_not"></zt-dict>
-              </zt-form-item>
-              <zt-form-item label="閲囨牱鍛ㄦ湡" prop="samplPeriod">
-                <el-input type="number" :min="1" v-model="dataForm.samplPeriod">
-                  <template slot="append">鍒嗛挓</template>
-                </el-input>
-              </zt-form-item>
-              <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
-                <el-input type="number" :min="1" v-model="dataForm.simulatFrequency">
-                  <template slot="append">娆℃暟</template>
-                </el-input>
-              </zt-form-item>
-              <zt-form-item>
-                <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
-                <zt-button @click="getresult()">鍒嗘瀽缁撴灉</zt-button>
-              </zt-form-item>
-            </el-form>
-          </div>
+  <div class="fa-card-a">
+    <el-row :gutter="5">
+      <div class="mod-taskReliability-simulatAssess">
+        <el-form :inline="true" :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="80px">
+          <zt-form-item label="浜у搧鑺傜偣" prop="productId">
+            <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+          </zt-form-item>
+          <zt-form-item label="鎬讳綋浠诲姟" prop="taskModelId">
+            <zt-select v-model="dataForm.taskModelId" :datas="taskList" @change="onTaskSelected"/>
+          </zt-form-item>
+          <zt-form-item label="閲囨牱鍛ㄦ湡" prop="samplPeriod">
+            <el-input type="number" :min="1" v-model="dataForm.samplPeriod">
+              <template slot="append">鍒嗛挓</template>
+            </el-input>
+          </zt-form-item>
+          <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
+            <el-input type="number" :min="1" v-model="dataForm.simulatFrequency">
+              <template slot="append">娆℃暟</template>
+            </el-input>
+          </zt-form-item>
+          <zt-form-item>
+            <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
+          </zt-form-item>
+        </el-form>
+        <el-progress v-if="isShow" :percentage="percentage"></el-progress>
+        <div>
+          <el-col :span="4">
+            <div style="margin-right: 5px;height: calc(88vh - 100px)"  v-if="isSelect">
+              <product-model-tree :isShow="false" ></product-model-tree>
+            </div>
+          </el-col>
+          <el-col :span="20">
+            <div style="margin-top: 20px">
+              <div style="margin-left: 400px" v-if="isShow">
+                <el-tag type="info" effect="dark" style="font-size: 20px">MTBF:{{MTBF}}</el-tag>
+                <el-tag type="info" effect="dark" style="margin-left: 50px;font-size: 20px">MTTR:{{MTTR}}</el-tag>
+              </div>
+              <div>
+                <SimulatCurve ref="SimulatCurve"></SimulatCurve>
+              </div>
+            </div>
+          </el-col>
         </div>
-      </el-col>
-      <el-col :span="18">
-        <div class="fa-card-a">
-          <SimulatCurve ref="SimulatCurve"></SimulatCurve>
-          <SimulatData ref="SimulatData"></SimulatData>
-        </div>
-      </el-col>
+      </div>
     </el-row>
   </div>
 </template>
@@ -53,30 +50,46 @@
 <script>
   import SimulatCurve from "./SimulatCurve";
   import SimulatData from "./SimulatData";
+  import ProductModelTree from "../basicInfo/ProductModelTree";
 
 
   export default {
     data() {
       return {
+        timers: '',
+        isSelect: false,
+        isShow: false,
+        percentage: 0,
         productList: [],
         taskList: [],
+        MTBF: '',
+        MTTR: '',
         dataForm: {
           id: '',
           pid: '',
           productId: '',
-          task: '',
+          taskId: '',
+          taskModelId: '',
           dataType: '',
           isRepair: '',
           samplPeriod: '',
           simulatFrequency: '',
-          simulatTime:''
+          simulatTime: ''
         }
       }
     },
     mounted() {
       this.getProductList()
     },
+    watch: {
+      percentage() {
+        if (this.percentage === 100) {
+          this.$refs.SimulatCurve.initEcharts(this.dataForm.taskId,this.dataForm.samplPeriod);
+        }
+      }
+    },
     components: {
+      ProductModelTree,
       SimulatCurve,
       SimulatData
     },
@@ -84,16 +97,17 @@
     methods: {
       // 鑾峰彇淇℃伅
       onProductSelected(data) {
+        this.isSelect = true
         console.log(data, ' onProductSelected(data)')
         this.dataForm.productId = data.id
         this.getTaskList()
       },
       onTaskSelected(data) {
         console.log(data, ' onProductSelected(data)')
-        this.dataForm.task = data.id
+        this.dataForm.taskModelId = data.id
       },
       async getProductList() {
-        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+        let res = await this.$http.get('/taskReliability/Task/getTaskProductList')
         this.productList = res.data
       },
       async getTaskList() {
@@ -104,24 +118,38 @@
         console.log(res.data)
         this.taskList = res.data
       },
-      getresult(){
-        this.$refs.SimulatData.init();
+      getStroke() {
+        //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
+        if (this.percentage < 100) {
+          //console.log('getStroke2')
+         /* this.$http.get(`sys/common/stroke?progressId=${this.progress.id}`).then(
+            res => {
+              if (res.success) {
+                this.percentage = parseFloat(res.data.percentage)
+              }
+            }
+          )*/
+        } else {
+          clearInterval(this.timers)
+        }
       },
       async analyze() {
-       /* let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
-        if (res.success) {
-          let stopPolling = false
-          if (!stopPolling) {
-            let timer = setInterval(async () => {
-              let res2 = await this.$http.get(`/taskReliability/SimulatAssess/${res.data}`)
-              if (res2.data) {
-                if (res2.data.code === '0' || res2.data.errorMsg === '0') {
-                  stopPolling = true
-                  // 涓杞
-                  clearInterval(timer)
-                  alert('宸茶幏鍙�')*/
-                  this.$refs.SimulatCurve.initEcharts();
-                  // 娓呴櫎瀹氭椂鍣�
+        this.isShow = true
+        this.timers = window.setInterval(this.getStroke, 1000)
+        /* let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
+         if (res.success) {
+           let stopPolling = false
+           if (!stopPolling) {
+             let timer = setInterval(async () => {
+               let res2 = await this.$http.get(`/taskReliability/SimulatAssess/${res.data}`)
+               if (res2.data) {
+                 if (res2.data.code === '0' || res2.data.errorMsg === '0') {
+                   stopPolling = true
+                   // 涓杞
+                   clearInterval(timer)
+                   alert('宸茶幏鍙�')*/
+        //this.$refs.SimulatCurve.initEcharts();
+        // 娓呴櫎瀹氭椂鍣�
         /*        } else {
                   stopPolling = true
                   // 涓杞
@@ -138,26 +166,5 @@
   }
 </script>
 <style>
-  .mod-taskReliability-simulatAssess {
-    height: calc(100vh - 175px);
-  }
 
-  .mod-taskReliability-simulatAssess .el-form-item__label {
-    line-height: calc((100vh - 175px) / 7);
-  }
-
-  .mod-taskReliability-simulatAssess .el-form-item__content {
-    line-height: calc((100vh - 175px) / 7);
-  }
-
-  .mod-taskReliability-simulatAssess .el-form-item__content > .el-input-group--append {
-    vertical-align: baseline;
-  }
-
-  div.el-col.el-col-17 {
-    background: white;
-  }
-  div.el-select-dropdown.el-popper{
-    /*top: calc((100vh - 155px) / 4) !important;*/
-  }
 </style>

--
Gitblit v1.9.1