From 9ccfd089b6cac9f8ba0cb7cadfee01857a715f0d Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期六, 12 十月 2024 10:34:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 web/src/views/modules/taskReliability/SchemeCompar.vue |  245 ++++++++++++++++++++++++------------------------
 1 files changed, 123 insertions(+), 122 deletions(-)

diff --git a/web/src/views/modules/taskReliability/SchemeCompar.vue b/web/src/views/modules/taskReliability/SchemeCompar.vue
index 7efb8d0..6504887 100644
--- a/web/src/views/modules/taskReliability/SchemeCompar.vue
+++ b/web/src/views/modules/taskReliability/SchemeCompar.vue
@@ -1,68 +1,73 @@
 <template>
   <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">
-          <zt-form-item label="浜у搧鑺傜偣" prop="productId" width="100px">
-            <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
-          </zt-form-item>
-          <zt-form-item label="鍙潬鎬ф柟妗�" prop="taskModelId" width="500px">
-            <zt-select style="width: 400px" v-model="dataForm.name" :datas="schemeList"
-                       @change="onSchemeSelected" :multiple="true"/>
-          </zt-form-item>
-          <zt-form-item>
-            <zt-button @click="compair()">鏂规瀵规瘮</zt-button>
-          </zt-form-item>
-        </el-form>
-        <div>
-          <el-col :span="4">
-            <div style="margin-right: 5px;height: calc(88vh - 100px)" v-if="isSelect">
-              <product-model-tree @on-selected="onTreeSelected" showXdy="false"
-                                  ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/>
-            </div>
-          </el-col>
-          <el-col :span="20">
-            <div style="margin-top: 20px;position: relative;height: 600px">
-              <div v-if="isShow">
-                <el-button v-if="isZk" type="info" size="small" icon="el-icon-caret-bottom"
-                           style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
-                <el-button v-if="!isZk" type="info" size="small" icon="el-icon-caret-right"
-                           style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
-                <div v-if="isZk" style="position: absolute;right: 10%;top: 15%">
-                  <el-table :data="tableData" border style="width: 400px">
-                    <el-table-column
-                      prop="name"
-                      label="鏂规鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                      prop="MTBF"
-                      label="MTBF"
-                      width="80px"
-                      align="right">
-                    </el-table-column>
-                    <el-table-column
-                      prop="MTTR"
-                      label="MTTR"
-                      width="80px"
-                      align="right">
-                    </el-table-column>
-                    <el-table-column
-                      prop="MSR"
-                      label="MSR"
-                      width="80px"
-                      align="right">
-                    </el-table-column>
-                  </el-table>
-                </div>
-              </div>
-              <div :disabled="isShow">
-                <div class="echart" id="myChart" :style="myChartStyle"></div>
-              </div>
-            </div>
-          </el-col>
+      <el-form :inline="true" :model="dataForm" ref="dataForm" :disabled="dataForm.disabled">
+        <zt-form-item label="浜у搧鑺傜偣" prop="productId" width="100px">
+          <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+        </zt-form-item>
+        <zt-form-item label="鍙潬鎬ф柟妗�" prop="taskModelId" width="500px">
+          <zt-select style="width: 400px" v-model="dataForm.taskModelId" :datas="schemeList"
+                     @change="onTaskSelected" :multiple="true"/>
+        </zt-form-item>
+        <zt-form-item>
+          <zt-button @click="compair()">鏂规瀵规瘮</zt-button>
+        </zt-form-item>
+      </el-form>
+      <el-col :span="4">
+        <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
+          <product-model-tree @on-selected="onTreeSelected" showXdy="false"
+                              ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/>
         </div>
-      </div>
+      </el-col>
+      <el-col :span="20">
+        <div class="fa-card-a" style="position: relative;height: calc(100vh - 230px)">
+          <div v-if="isShow">
+            <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"
+                       style="position: absolute;right: 10%;top: 9%;z-index: 1" @click="zk()"></el-button>
+            <div v-if="isZk" style="position: absolute;right: 10%;top: 13%">
+              <el-table :data="tableData" border style="width: 500px">
+                <el-table-column
+                  prop="name"
+                  label="鏂规鍚嶇О"
+                >
+                </el-table-column>
+                <el-table-column
+                  prop="mtbf"
+                  label="MTTF"
+                  width="100px"
+                  align="right">
+                  <template slot-scope="scope">
+                    <span>{{  keepNumber(scope.row.mtbf) }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="mttr"
+                  label="MTTR"
+                  width="100px"
+                  align="right">
+                  <template slot-scope="scope">
+                    <span>{{  keepNumber(scope.row.mttr) }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="msr"
+                  label="MSR"
+                  width="100px"
+                  align="right">
+                  <template slot-scope="scope">
+                    <span>{{  keepNumber(scope.row.mttr) }}</span>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+          <div :disabled="isShow">
+            <div class="echart" id="SchemeCompar" :style="myChartStyle"></div>
+          </div>
+        </div>
+      </el-col>
     </el-row>
   </div>
 </template>
@@ -80,48 +85,30 @@
         isShow: false,
         isZk: true,
         productList: [],
-        schemeList: [
-          {
-            id: 1,
-            name: '鏂规涓�'
-          }, {
-            id: 2,
-            name: '鏂规浜�'
-          }, {
-            id: 3,
-            name: '鏂规涓�'
-          }
-        ],
+        schemeList: [],
         dataForm: {
           id: '',
-          pid: '',
+          taskModelId: [],
           productId: '',
           showProductId: '',
-          taskModelId: '',
           dataType: 'fz',
         },
-        tableData: [
-          {
-            name: '鏂规涓�',
-            MTBF: '68.74',
-            MTTR: '0.43',
-            MSR: '0.85'
-          }, {
-            name: '鏂规浜�',
-            MTBF: '78.74',
-            MTTR: '0.52',
-            MSR: '0.86'
-          }, {
-            name: '鏂规涓�',
-            MTBF: '69.84',
-            MTTR: '0.62',
-            MSR: '0.88'
-          }
-        ],
+        xDataList: [],
+        seriesList: [],
+        tableData: [],
+        taskList: [],
       }
     },
     mounted() {
       this.getProductList()
+    },
+    computed: {
+      keepNumber() { //杩囨护鍣ㄤ繚鐣�4涓哄皬鏁�
+        return function (val) {		// 瀵硅绠楀睘鎬ц繘琛屼紶鍙�
+          const numM = Number(val).toFixed(5);
+          return numM.substring(0, numM.length - 1);
+        }
+      },
     },
     components: {
       ProductModelTree,
@@ -129,10 +116,13 @@
 
     methods: {
       onTreeSelected(data) {
-        if (this.dataForm.id) {
+        if (this.dataForm.taskModelId.length > 0) {
+          console.log(this.dataForm.taskModelId)
           console.log(data, 'onProductSelected')
           this.dataForm.showProductId = data.id
-          this.$refs.SimulatCurve.getProductEcharts(this.dataForm);
+          this.$nextTick(() => {
+            this.compair()
+          })
         }
       },
       // 鑾峰彇淇℃伅
@@ -140,12 +130,16 @@
         this.isSelect = true
         console.log(data, ' onProductSelected(data)')
         this.dataForm.productId = data.id
+        this.getTaskList()
         this.$nextTick(() => {
           this.$refs.ProductModelTree.getProductList()
         })
       },
-      onSchemeSelected(data) {
-        this.dataForm.id = data.id
+      onTaskSelected(data) {
+        console.log(data, 'onTaskSelected(data)')
+        for (let item of data) {
+          this.taskList.push(item.name)
+        }
       },
       zk() {
         this.isZk = !this.isZk;
@@ -155,42 +149,49 @@
         this.productList = res.data
         this.onProductSelected(this.productList[0])
       },
-      compair() {
+      async getTaskList() {
+        let params = {
+          productId: this.dataForm.productId
+        }
+        let res = await this.$http.get('/taskReliability/Task/getTaskList', {params: params})
+        console.log(res.data)
+        this.schemeList = res.data
+      },
+      async compair() {
+        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})
+        console.log(res.data, "res")
+        this.xDataList = res.data.xdataList
+        this.seriesList = res.data.curveList
+        this.tableData = res.data.dataList
+
         this.isShow = true
         this.option = {
           xAxis: {
-            data: [0.0, 50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0, 550.0],
-            name: '浠跨湡鎬绘椂闀�'
+            data: this.xDataList,
+            name: '浠跨湡鎬绘椂闀�',
+            type: 'category',
+            axisLabel: {
+              formatter: function (value) {
+                // 灏� X 杞村埢搴﹀�兼牸寮忓寲涓轰繚鐣欎袱浣嶅皬鏁扮殑瀛楃涓�
+                return parseFloat(value).toFixed(2);
+              }
+            }
           },
           yAxis: {
             type: 'value',
             name: '鍙潬搴�',
           },
           legend: {
-            data: ['鏂规涓�', '鏂规浜�', '鏂规涓�']
+            data: this.taskList
           },
-          series: [
-            {
-              name: '鏂规涓�',
-              type: 'line',
-              smooth: true,
-              data: [1.0, 0.6, 0.39, 0.39, 0.24, 0.14, 0.08, 0.06, 0.06, 0.04, 0.02, 0.01, 0.01, 0.0, 0.0]
-            },
-            {
-              name: '鏂规浜�',
-              type: 'line',
-              smooth: true,
-              data: [1.0, 0.8, 0.59, 0.58, 0.34, 0.35, 0.18, 0.16, 0.16, 0.04, 0.04, 0.02, 0.01, 0.1, 0.0]
-            },
-            {
-              name: '鏂规涓�',
-              type: 'line',
-              smooth: true,
-              data: [1.0, 0.7, 0.45, 0.44, 0.38, 0.38, 0.15, 0.08, 0.08, 0.02, 0.02, 0.01, 0.01, 0.1, 0.0]
-            }
-          ]
+          series: this.seriesList
         };
-        this.myChart = echart.init(document.getElementById("myChart"));
+        this.myChart = echart.init(document.getElementById("SchemeCompar"));
         console.log(this.option, ' this.option ')
         this.myChart.setOption(this.option);
         //闅忕潃灞忓箷澶у皬璋冭妭鍥捐〃

--
Gitblit v1.9.1