From 195bb5267a6ece13363303e177fee7d1fa3941aa Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 19 十一月 2024 15:25:25 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/taskReliability/ReliabilityAssess.vue |  157 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 142 insertions(+), 15 deletions(-)

diff --git a/web/src/views/modules/taskReliability/ReliabilityAssess.vue b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
index fc41f1a..520ac70 100644
--- a/web/src/views/modules/taskReliability/ReliabilityAssess.vue
+++ b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
@@ -1,14 +1,14 @@
 <template>
   <div>
     <div class="mod-baseReliability-paramDataBasic fa-card-a" style="margin-left: 5px;">
-      <zt-table-wraper :defaultNotQuery='true' ref="tableObj" query-url="/taskReliability/ReliabilityAssess/page"
+      <zt-table-wraper :defaultNotQuery='true' ref="tableObj"
                        v-slot="{ table }" :paging='false'>
         <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-select v-model="dataForm.taskId" :datas="taskList" @change="onTaskSelected"/>
           </zt-form-item>
           <zt-form-item label="璇勫畾鏁版嵁" prop="itemId">
             <zt-select v-model="dataForm.itemId" :datas="assessDataList" @change="onAssessDataSelected"/>
@@ -16,18 +16,29 @@
           <zt-form-item label="缃俊搴�" prop="confidence">
             <el-input v-model="dataForm.confidence" placeholder="缃俊搴�" clearable></el-input>
           </zt-form-item>
-          <el-button type="primary">璇勫畾</el-button>
+          <el-button type="primary" @click="assess()">璇勫畾</el-button>
           <el-button type="primary" @click="add()">鏂板璇勫畾鏁版嵁</el-button>
+          <el-button type="primary" @click="handleExpand()">{{expandText}}</el-button>
+          <el-dropdown style="margin-left: 10px" @command="download">
+            <el-button type="primary">
+              涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i>
+            </el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item>
+              <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </el-form>
-        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
+        <el-table ref="multipleTable" v-loading="table.dataLoading" :data="dataList" height="100px" v-adaptive="{bottomOffset:70}"
                   row-key="id"
                   :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
                   :header-cell-style="{'text-align':'center'}"
+                  :expand-row-keys="defultKey"
                   border @selection-change="table.selectionChangeHandle">
           <el-table-column prop="name" label="鍚嶇О"/>
-          <el-table-column prop="runTimes" label="杩愯鏃堕暱" align="right">
+          <el-table-column prop="runNum" label="璇曢獙娆℃暟(鎴愯触鍨�)" align="right">
           </el-table-column>
-          <el-table-column prop="runNum" label="杩愯娆℃暟" align="right">
+          <el-table-column prop="runTimes" label="璇曢獙鏃堕暱(闈炴垚璐ュ瀷)" align="right">
           </el-table-column>
           <el-table-column prop="failNum" label="澶辫触娆℃暟" align="right">
           </el-table-column>
@@ -36,11 +47,31 @@
         </el-table>
         <add-or-update @refreshDataList="refreshData" ref="AddOrUpdate"/>
       </zt-table-wraper>
+      <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>
   </div>
 </template>
 <script>
   import AddOrUpdate from './RelisbilityAssess-AddOrUpdate'
+  import qs from "qs";
+  import Cookies from "js-cookie";
 
   export default {
     data() {
@@ -48,7 +79,7 @@
         dataForm: {
           productId: '',
           shipName: '',
-          taskModelId: '',
+          taskId: '',
           itemId: '',
           name: '',
           runTimes: '',
@@ -60,6 +91,14 @@
         productList: [],
         taskList: [],
         assessDataList: [],
+        dataList: [],
+        flag1: false,
+        flag2: false,
+        defultKey: [],
+        isExpand:false,
+        expandText:"涓�閿睍寮�",
+        dialogVisible: false,
+        modelCheckResult: [],
       }
     },
     components: {
@@ -69,20 +108,46 @@
       this.getProductList()
     },
     methods: {
+      async page() {
+        let res = await this.$http.post('/taskReliability/ReliabilityAssess/page', this.dataForm)
+        console.log(res.data)
+        this.dataList = res.data
+      },
       // 鑾峰彇淇℃伅
-      onProductSelected(data) {
+      async onProductSelected(data) {
+        this.defultKey = []
         console.log(data, ' onProductSelected(data)')
         this.dataForm.productId = data.id
         this.dataForm.shipName = data.name
-        this.getTaskList()
-        this.getAssessDataList();
+        this.setDefultKey()
+        await this.zhixin().then(() => {
+          if (this.dataForm.taskId&& this.dataForm.itemId) {
+            this.page()
+          }else{
+            this.dataList = []
+          }
+        })
+      },
+      async zhixin() {
+        await this.getTaskList()
+        await this.getAssessDataList()
+      },
+      setDefultKey() {
+        this.defultKey.push(this.dataForm.productId + "")
+        console.log(this.defultKey,"this.defultKey")
       },
       onTaskSelected(data) {
         console.log(data, ' onProductSelected(data)')
-        this.dataForm.taskModelId = data.id
+        this.dataForm.taskId = data.id
+        if (this.dataForm.taskId&& this.dataForm.itemId) {
+          this.page()
+        }
       },
       onAssessDataSelected(data) {
         this.dataForm.itemId = data.id
+        if (this.dataForm.taskId&& this.dataForm.itemId) {
+          this.page()
+        }
       },
       refreshData() {
         this.getAssessDataList();
@@ -98,6 +163,7 @@
         } else {
           this.dataForm.itemId = ''
         }
+        this.flag2 = true
       },
       add() {
         this.$refs.AddOrUpdate.$refs.dialog.init(null, {
@@ -105,10 +171,34 @@
           shipName: this.dataForm.shipName
         })
       },
+      async assess() {
+        this.dialogVisible = false
+        this.modelCheckResult = []
+        if (!this.dataForm.productId || !this.dataForm.taskId || !this.dataForm.itemId || !this.dataForm.confidence) {
+          this.$tip.alert("鏈夋湭濉啓鐨勬暟鎹�")
+          return
+        }
+        let res = await this.$http.post('/taskReliability/ReliabilityAssess/assessCheck', this.dataForm)
+        if (res.success) {
+          if (res.data && res.data.length > 0) {
+            this.modelCheckResult = res.data
+            this.dialogVisible = true
+          } else {
+            let res = await this.$http.post('/taskReliability/ReliabilityAssess/assess', this.dataForm)
+            if (res.success) {
+              console.log(res.data)
+              this.dataList = res.data
+              this.$alert('璇勫畾鎴愬姛', '鎻愮ず', {
+                confirmButtonText: '纭畾'
+              })
+            }
+          }
+        }
+      },
       async getProductList() {
         let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
         this.productList = res.data
-        this.onProductSelected(this.productList[0])
+        await this.onProductSelected(this.productList[0])
       },
       async getTaskList() {
         let params = {
@@ -118,11 +208,48 @@
         console.log(res.data)
         this.taskList = res.data
         if (this.taskList.length > 0) {
-          this.dataForm.taskModelId = this.taskList[0].id
+          this.dataForm.taskId = this.taskList[0].id
         } else {
-          this.dataForm.taskModelId = ''
+          this.dataForm.taskId = ''
+        }
+        this.flag1 = true
+      },
+      handleExpand() {
+        this.isExpand = !this.isExpand
+        this.$nextTick(() => {
+          this.forArr(this.dataList, this.isExpand)
+        })
+        if (this.isExpand === true) {
+          this.expandText = '涓�閿姌鍙�'
+        }
+        if (this.isExpand === false) {
+          this.expandText = '涓�閿睍寮�'
         }
       },
-    }
+      // 閬嶅巻
+      forArr(arr, isExpand) {
+        arr.forEach(i => {
+          this.$refs.multipleTable.toggleRowExpansion(i, isExpand)
+          if (i.children) {
+            this.forArr(i.children, isExpand)
+          }
+        })
+      },
+      async download(selsect) {
+        if (!this.dataForm.productId || !this.dataForm.taskId || !this.dataForm.itemId ) {
+          this.$tip.alert("鏈夋湭濉啓鐨勬暟鎹�")
+          return
+        }
+          let param = qs.stringify({
+            'token': Cookies.get('token'),
+            productId: this.dataForm.productId,
+            taskId: this.dataForm.taskId,
+            itemId: this.dataForm.itemId,
+            xml:selsect
+          })
+          let apiURL = `/taskReliability/ReliabilityAssess/downloadXml`
+          window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}`
+        }
+      },
   }
 </script>

--
Gitblit v1.9.1