From 3c54f403c6c9756725f9d016e7ff05c5b64327d0 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 22 十月 2024 14:36:53 +0800
Subject: [PATCH] 关于修改可靠性产品重复

---
 web/src/views/modules/taskReliability/SchemeCompar.vue |  108 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 98 insertions(+), 10 deletions(-)

diff --git a/web/src/views/modules/taskReliability/SchemeCompar.vue b/web/src/views/modules/taskReliability/SchemeCompar.vue
index 6504887..8db5fa8 100644
--- a/web/src/views/modules/taskReliability/SchemeCompar.vue
+++ b/web/src/views/modules/taskReliability/SchemeCompar.vue
@@ -9,10 +9,21 @@
           <zt-select style="width: 400px" v-model="dataForm.taskModelId" :datas="schemeList"
                      @change="onTaskSelected" :multiple="true"/>
         </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="compair()">鏂规瀵规瘮</zt-button>
         </zt-form-item>
       </el-form>
+      <el-progress v-if="isShow" :percentage="percentage"></el-progress>
       <el-col :span="4">
         <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
           <product-model-tree @on-selected="onTreeSelected" showXdy="false"
@@ -21,7 +32,7 @@
       </el-col>
       <el-col :span="20">
         <div class="fa-card-a" style="position: relative;height: calc(100vh - 230px)">
-          <div v-if="isShow">
+          <div v-if="Show">
             <el-button v-if="isZk" type="info" size="small" icon="el-icon-caret-bottom"
                        style="position: absolute;right: 10%;top: 9%;z-index: 1" @click="zk()"></el-button>
             <el-button v-if="!isZk" type="info" size="small" icon="el-icon-caret-right"
@@ -39,7 +50,7 @@
                   width="100px"
                   align="right">
                   <template slot-scope="scope">
-                    <span>{{  keepNumber(scope.row.mtbf) }}</span>
+                    <span>{{  keepNumberBy2(scope.row.mtbf) }}</span>
                   </template>
                 </el-table-column>
                 <el-table-column
@@ -48,7 +59,7 @@
                   width="100px"
                   align="right">
                   <template slot-scope="scope">
-                    <span>{{  keepNumber(scope.row.mttr) }}</span>
+                    <span>{{  keepNumberBy2(scope.row.mttr) }}</span>
                   </template>
                 </el-table-column>
                 <el-table-column
@@ -57,7 +68,7 @@
                   width="100px"
                   align="right">
                   <template slot-scope="scope">
-                    <span>{{  keepNumber(scope.row.mttr) }}</span>
+                    <span>{{  keepNumberBy4(scope.row.msr) }}</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -69,6 +80,24 @@
         </div>
       </el-col>
     </el-row>
+    <el-dialog v-dialogDrag :close-on-click-modal="false" top="8vh" :visible.sync="dialogVisible" title="妯″瀷妫�鏌�"
+               width="60%" @close="dialogVisible = false">
+      <el-tag type="danger" style="margin-bottom: 10px">妯″瀷瀹氫箟/鍙傛暟閰嶇疆閲屽瓨鍦ㄤ互涓嬮棶棰橈細</el-tag>
+      <el-table :data="modelCheckResult" height="350"
+                :header-cell-style="{'text-align':'center'}">
+        <el-table-column prop="category" label="妫�鏌ョ粨鏋�" align="center" width="150"/>
+        <el-table-column prop="taskName" label="浠诲姟鍚嶇О" align="center"/>
+        <el-table-column prop="taskPhaseName" label="浠诲姟闃舵鍚嶇О" align="center"/>
+        <el-table-column prop="gkName" label="宸ュ喌鍚嶇О" align="center"/>
+        <el-table-column prop="nodeName" label="鑺傜偣鍚嶇О" align="center"/>
+        <el-table-column prop="modelName" label="妯″瀷鍚嶇О" align="center"/>
+        <el-table-column prop="deviceName" label="璁惧鍚嶇О" align="center"/>
+        <el-table-column prop="paramName" label="鍙傛暟鍚嶇О" align="center"/>
+      </el-table>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogVisible = false">鍏� 闂�</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -83,6 +112,7 @@
         myChartStyle: {float: "left", width: "100%", height: "600px"}, //鍥捐〃鏍峰紡
         isSelect: false,
         isShow: false,
+        Show: false,
         isZk: true,
         productList: [],
         schemeList: [],
@@ -92,20 +122,32 @@
           productId: '',
           showProductId: '',
           dataType: 'fz',
+          samplPeriod: '10',
+          simulatFrequency: 500,
         },
+        percentage: 2,
         xDataList: [],
         seriesList: [],
         tableData: [],
         taskList: [],
+        fzIdList: [],
+        dialogVisible: false,
+        modelCheckResult: [],
       }
     },
     mounted() {
       this.getProductList()
     },
     computed: {
-      keepNumber() { //杩囨护鍣ㄤ繚鐣�4涓哄皬鏁�
+      keepNumberBy4() { //杩囨护鍣ㄤ繚鐣�4涓哄皬鏁�
         return function (val) {		// 瀵硅绠楀睘鎬ц繘琛屼紶鍙�
           const numM = Number(val).toFixed(5);
+          return numM.substring(0, numM.length - 1);
+        }
+      },
+      keepNumberBy2() { //杩囨护鍣ㄤ繚鐣�4涓哄皬鏁�
+        return function (val) {		// 瀵硅绠楀睘鎬ц繘琛屼紶鍙�
+          const numM = Number(val).toFixed(3);
           return numM.substring(0, numM.length - 1);
         }
       },
@@ -113,7 +155,13 @@
     components: {
       ProductModelTree,
     },
-
+    watch: {
+      percentage() {
+        if (this.percentage === 100) {
+          this.getEcharts();
+        }
+      }
+    },
     methods: {
       onTreeSelected(data) {
         if (this.dataForm.taskModelId.length > 0) {
@@ -121,7 +169,7 @@
           console.log(data, 'onProductSelected')
           this.dataForm.showProductId = data.id
           this.$nextTick(() => {
-            this.compair()
+            this.getEcharts()
           })
         }
       },
@@ -157,19 +205,59 @@
         console.log(res.data)
         this.schemeList = res.data
       },
+      getStroke() {
+        if (this.percentage < 100) {
+          let param = {
+            taskList: this.fzIdList
+          }
+          this.$http.get(`/taskReliability/SimulatAssess/getCalcProgress`, {params: param}).then(
+            res => {
+              if (res.data) {
+                this.percentage = parseFloat(res.data)
+              }
+            }
+          )
+        } else {
+          clearInterval(this.timers)
+          this.percentage = 0
+        }
+      },
       async compair() {
+        this.isShow = true
+        this.dialogVisible = false
+        this.modelCheckResult = []
+        let params = {
+          taskList: this.dataForm.taskModelId,
+          showProductId: this.dataForm.productId,
+          samplPeriod: this.dataForm.samplPeriod,
+          simulatFrequency: this.dataForm.simulatFrequency
+        }
+        console.log(this.dataForm.taskModelId, 'this.dataForm.taskModelId')
+        let res = await this.$http.get('/taskReliability/SimulatAssess/SchemeCompar', {params: params})
+        console.log(res.data, "res")
+        if (res.success) {
+          if (res.data.type=="errorList") {
+            this.modelCheckResult = res.data.errList
+            this.dialogVisible = true
+            this.isShow = false
+          } else {
+            this.fzIdList = res.data.idList
+            this.timers = window.setInterval(this.getStroke, 1000)
+          }
+        }
+      },
+      async getEcharts() {
         let params = {
           taskList: this.dataForm.taskModelId,
           showProductId: this.dataForm.showProductId
         }
-        console.log(this.dataForm.taskModelId, 'this.dataForm.taskModelId')
-        let res = await this.$http.get('/taskReliability/SimulatAssess/SchemeCompar', {params: params})
+        let res = await this.$http.get('/taskReliability/SimulatAssess/getEcharts', {params: params})
         console.log(res.data, "res")
         this.xDataList = res.data.xdataList
         this.seriesList = res.data.curveList
         this.tableData = res.data.dataList
 
-        this.isShow = true
+        this.Show = true
         this.option = {
           xAxis: {
             data: this.xDataList,

--
Gitblit v1.9.1