From a24f5347bfd2331f8a4819b215f79555776534cd Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 25 四月 2024 09:16:57 +0800
Subject: [PATCH] 合并冲突

---
 src/components/view/b1-report-preparation.vue          |  402 ++++++++++++++++++++++++--------------------
 src/components/do/b1-inspect-order-plan/Inspection.vue |   53 ++++-
 src/components/view/a5-laboratory-qualifications.vue   |   14 
 src/components/view/b1-inspect-order-plan.vue          |    4 
 src/components/view/b1-inspection-order.vue            |   24 ++
 src/assets/api/controller.js                           |    2 
 6 files changed, 293 insertions(+), 206 deletions(-)

diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 4608a64..97ed06b 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -123,6 +123,7 @@
 	selectEquipmentOverview: "/deviceScope/selectEquipmentOverview", //鑾峰彇璁惧鎬昏
 	uploadFile: "/deviceScope/uploadFile", //涓婁紶鍥剧墖
 	selectDevicePrincipal: "/user/getDeviceManager", //鑾峰彇璁惧璐熻矗浜�
+  selectDeviceByCode: "/deviceScope/selectDeviceByCode", //閫氳繃璁惧缂栧彿鑾峰彇璁惧鍒楄〃
 }
 
 const insOrder = {
@@ -197,6 +198,7 @@
   upReportUrl: "/insReport/upReportUrl", //鎶ュ憡杩樺師
   writeReport: "/insReport/writeReport", //鎶ュ憡鎻愪氦
   examineReport: "/insReport/examineReport", //鎶ュ憡瀹℃牳
+  ratifyReport: "/insReport/ratifyReport", //鎶ュ憡鎵瑰噯
 }
 
 const warehouse = {
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 7a60570..4e7f56e 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -138,6 +138,12 @@
     color: #3A7BFA;
     background-color: #fff;
   }
+
+  .inspection .center-box .el-input__inner{
+    font-size: 12px;
+    padding: 0 6px;
+    text-align: center;
+  }
 </style>
 <template>
   <div v-loading="loading" class="inspection">
@@ -193,9 +199,9 @@
                 :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1"
                 :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${item.style.columnlen[n.c]}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`">
                 <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`">
-                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��'">
+                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1">
                     <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
-                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')||state>1"
+                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                       @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
                       <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button>
                     </el-input>
@@ -214,9 +220,9 @@
                     <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
                     <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
                   </template>
-                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧缂栫爜'">
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧缂栫爜' && state==1">
                     <el-select v-model="n.v.v" placeholder="璁惧" @visible-change="e=>getEquipOptions(e,n.i)"
-                      :disabled="state>1">
+                       remote @change="(val)=>changeEquip(val, n)">
                       <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value">
                       </el-option>
                     </el-select>
@@ -261,12 +267,12 @@
       <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList"
         :componentData="componentData" :key="upIndex" />
     </el-drawer>
-    <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="400px">
-      <div class="body" style="display: flex;" v-if="reviewDia">
-        <div class="search_label" style="width: 120px;"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div>
-        <div class="search_input">
+    <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px">
+      <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia">
+        <div class="search_label" style="width: 150px;"><span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細</div>
+        <div class="search_input" style="width: 100%;">
           <el-input size="small" clearable v-model="noReason" type="textarea"
-            :autosize="{ minRows: 3, maxRows: 5}"></el-input>
+            :autosize="{ minRows: 4}"></el-input>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -375,6 +381,7 @@
               comValue: [],
               resValue: null,
               equipValue: [],
+              equipName: [],
               insResult: null
             }
           })
@@ -396,6 +403,7 @@
             comValue: [],
             resValue: null,
             equipValue: [],
+            equipName: [],
             insResult: null
           }
         })
@@ -616,6 +624,10 @@
               b.v.v = ''
               this.param[b.i].equipValue.push(b)
             }
+            if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') {
+              b.v.v = ''
+              this.param[b.i].equipName.push(b)
+            }
             if (b.v.ps != undefined && b.v.ps.value === '鏈�缁堝��') {
               b.v.v = ''
               if (b.i === undefined) {
@@ -674,6 +686,12 @@
             let equipValue = JSON.parse(a.insProductResult.equipValue)
             for (var i = 0; i < equipValue.length; i++) {
               this.param[a.id].equipValue[i].v.v = equipValue[i].v
+            }
+          } catch (e) {}
+          try {
+            let equipName = JSON.parse(a.insProductResult.equipName)
+            for (var i = 0; i < equipName.length; i++) {
+              this.param[a.id].equipName[i].v.v = equipName[i].v
             }
           } catch (e) {}
           try {
@@ -893,9 +911,11 @@
       },
       getEquipOptions(e, id) {
         if (e) {
-          let category = this.currentSample.insProduct.find(m => m.id == id).deviceGroup
+          this.equipOptions = []
+          let product = this.currentSample.insProduct.find(m => m.id == id)
           this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, {
-            category
+            inspectionItem: product.inspectionItem,
+            inspectionItemSubclass: product.inspectionItemSubclass
           }).then(res => {
             if (res.code === 200 && res.data) {
               this.equipOptions = res.data.map(m => {
@@ -989,6 +1009,17 @@
           }
           this.$message.success('宸蹭繚瀛�')
         })
+      },
+      changeEquip(val,n){
+        for(let i in this.equipOptions){
+          if(this.equipOptions[i].value === val){
+            for(let i1 in this.param[n.i].equipName){
+              if(this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r){
+                this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label
+              }
+            }
+          }
+        }
       }
     }
   }
diff --git a/src/components/view/a5-laboratory-qualifications.vue b/src/components/view/a5-laboratory-qualifications.vue
index 0ee1b12..748d535 100644
--- a/src/components/view/a5-laboratory-qualifications.vue
+++ b/src/components/view/a5-laboratory-qualifications.vue
@@ -61,7 +61,7 @@
 					</el-radio-group>
 				</el-col>
 				<el-col :span="12" style="text-align: right;" v-if="radio==0">
-					<el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button>
+					<el-button size="medium" type="primary" @click="openAdd" v-if="addPower">璧勮川鏇存柊</el-button>
 					<el-button size="medium" icon="el-icon-delete" @click="handleDel" v-if="delPower">鍒犻櫎</el-button>
 				</el-col>
 			</el-row>
@@ -149,7 +149,7 @@
 		</div>
     <el-dialog title="璧勮川鏇存柊" :visible.sync="qualificationsConnectVisible" width="400px">
 			<div class="search_thing" style="margin-bottom: 16px;">
-        <div class="search_label" style="width:120px">璧勮川鍚嶇О锛�</div>
+        <div class="search_label" style="width:120px"><span class="required-span">* </span>璧勮川鍚嶇О锛�</div>
         <div class="search_input">
           <el-select v-model="formData.name" placeholder="璇烽�夋嫨" style="width: 100%;" size="small" clearable>
             <el-option
@@ -162,7 +162,7 @@
         </div>
       </div>
       <div class="search_thing" style="margin-bottom: 16px;">
-        <div class="search_label" style="width:120px">璧勮川缂栫爜锛�</div>
+        <div class="search_label" style="width:120px"><span class="required-span">* </span>璧勮川缂栫爜锛�</div>
         <div class="search_input">
           <el-input
           size="small"
@@ -172,7 +172,7 @@
         </div>
       </div>
       <div class="search_thing" style="margin-bottom: 16px;">
-        <div class="search_label" style="width:120px">棰佸彂鏈烘瀯锛�</div>
+        <div class="search_label" style="width:120px"><span class="required-span">* </span>棰佸彂鏈烘瀯锛�</div>
         <div class="search_input">
           <el-input
           size="small"
@@ -191,7 +191,7 @@
 					v-model="formData.explanation"></el-input>
         </div>
       </div>
-      <div class="search_thing" style="margin-bottom: 16px;">
+      <!-- <div class="search_thing" style="margin-bottom: 16px;">
         <div class="search_label" style="width:120px">棣栨棰佸彂鏃堕棿锛�</div>
         <div class="search_input">
           <el-date-picker style="width:100%" v-model="formData.firstTime"
@@ -216,9 +216,9 @@
           placeholder="閫夋嫨鏃ユ湡">
 					</el-date-picker>
         </div>
-      </div>
+      </div> -->
       <div class="search_thing" style="margin-bottom: 16px;">
-        <div class="search_label" style="width:120px">鍒版湡棰佸彂鏃堕棿锛�</div>
+        <div class="search_label" style="width:120px"><span class="required-span">* </span>鍒版湡鏃堕棿锛�</div>
         <div class="search_input">
           <el-date-picker style="width:100%" v-model="formData.expireTime"
           type="datetime"
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 874f946..838a1dc 100644
--- a/src/components/view/b1-inspect-order-plan.vue
+++ b/src/components/view/b1-inspect-order-plan.vue
@@ -229,7 +229,7 @@
 							type: 'text',
 							method: 'handleInspection',
 							disabFun: (row, index) => {
-								return row.userId == null || row.insState == 3
+								return row.userId == null || row.insState == 3 || row.insState == 5
 							}
 						}, {
 							id: '',
@@ -237,7 +237,7 @@
 							type: 'text',
 							method: 'handleConnect',
 							disabFun: (row, index) => {
-								return row.userId == null || row.insState == 3
+								return row.userId == null || row.orderUserId == null || row.insState == 5  || row.insState == 3
 							}
 						},
 						{
diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue
index c09dd5f..2dc793d 100644
--- a/src/components/view/b1-inspection-order.vue
+++ b/src/components/view/b1-inspection-order.vue
@@ -172,7 +172,7 @@
 					</el-row>
 				</span>
 			</el-dialog>
-			<el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="70%">
+			<el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="80%">
 				<div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible">
 					<ValueTable ref="ValueTableDataLook" :url="$api.insOrder.selectSampleAndProductByOrderId"
 						:componentData="componentDataDataLook"/>
@@ -233,7 +233,7 @@
 						type: 'text',
 						method: 'handleDataLook',
 						disabFun: (row, index) => {
-							return row.state != 1
+							return row.state != 1 && row.state != 4
 						}
 					}, {
 						id: 'download',
@@ -241,7 +241,7 @@
 						type: 'text',
 						method: 'download',
 						disabFun: (row, index) => {
-							return row.state != 1 || row.reportId == null
+							return row.state != 4 || row.reportId == null
 						}
 					}, {
 						id: 'verify',
@@ -257,7 +257,7 @@
 						type: 'text',
 						method: 'handlEquash',
 						disabFun: (row, index) => {
-							return row.state == 2 || row.state == 3
+							return row.state != 1 && row.state != 0
 						}
 					}, {
 						font: '鍒嗛厤',
@@ -326,6 +326,22 @@
 						inspectionValueType: {select: []}
 					},
 					selectField: {},
+          spanConfig:{
+            rows:[
+              {
+                name:'sampleCode',
+                index:0
+              },
+              {
+                name:'sample',
+                index:1
+              },
+              {
+                name:'model',
+                index:2
+              }
+            ]
+          },
 					requiredAdd: [],
 					requiredUp: []
 				},
diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue
index e96230b..5ffc79a 100644
--- a/src/components/view/b1-report-preparation.vue
+++ b/src/components/view/b1-report-preparation.vue
@@ -35,24 +35,24 @@
     padding: 20px;
   }
 
-	.el-form-item {
-		margin-bottom: 16px;
-	}
+  .el-form-item {
+    margin-bottom: 16px;
+  }
 
-  .full-screen{
+  .full-screen {
     position: absolute;
     right: 52px;
     top: 22px;
   }
 
-  .btns{
+  .btns {
     position: absolute;
     right: 100px;
     top: 17px;
   }
 
-  .fullscreen{
-    height:82vh
+  .fullscreen {
+    height: 82vh
   }
 </style>
 
@@ -76,30 +76,33 @@
             <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.entrustCode"
               @keyup.enter.native="refreshTable()"></el-input>
           </div>
-				</div>
-				<div class="search_thing" style="padding-left: 30px;">
-					<el-button size="small" @click="refresh()">閲� 缃�</el-button>
-					<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-				</div>
-			</div>
-      <!-- <input id="input" type="file" accept=".doc,.docx"></input> -->
-			<div class="table">
-				<ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :componentData="componentData"
-					:key="upIndex"/>
-			</div>
-		</div>
-    <el-dialog title="鍦ㄧ嚎缂栧埗" :visible.sync="claimVisible" width="22cm" :modal-append-to-body="false" :fullscreen="fullscreen">
-      <div class="full-screen">
-        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
-        <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
+        </div>
+        <div class="search_thing" style="padding-left: 30px;">
+          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+        </div>
       </div>
-      <Word style="height:70vh" :class="{fullscreen:fullscreen}" v-if="claimVisible" ref="Word" :value="value"/>
-			<span slot="footer" class="dialog-footer">
-				<el-button @click="claimVisible = false">鍙� 娑�</el-button>
-				<el-button type="primary" @click="confirmClaim">纭� 瀹�</el-button>
-			</span>
-		</el-dialog>
-    <el-dialog title="鎶ュ憡瀹℃牳" :visible.sync="issuedVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen">
+      <!-- <input id="input" type="file" accept=".doc,.docx"></input> -->
+      <div class="table">
+        <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :componentData="componentData"
+          :key="upIndex" />
+      </div>
+    </div>
+    <el-dialog title="鍦ㄧ嚎缂栧埗" :visible.sync="claimVisible" width="22cm" :modal-append-to-body="false"
+      :fullscreen="fullscreen">
+      <div class="full-screen">
+        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"
+          v-if="!fullscreen"></i>
+        <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;">
+      </div>
+      <Word style="height:70vh" :class="{fullscreen:fullscreen}" v-if="claimVisible" ref="Word" :value="value" />
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="claimVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmClaim">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="鎶ュ憡瀹℃牳" :visible.sync="issuedVisible" width="400px" :modal-append-to-body="false"
+      :fullscreen="fullscreen">
       <!-- <div class="full-screen">
         <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
         <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
@@ -116,8 +119,7 @@
     <el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="issuedReasonVisible" width="400px" :modal-append-to-body="false">
       <div class="search_thing">
         <div class="search_label">涓嶉�氳繃鍘熷洜锛�</div>
-        <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-            v-model="reason"></el-input></div>
+        <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="reason"></el-input></div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="issuedReasonVisible=false" :disabled="loadingIssuedReason">鍙栨秷</el-button>
@@ -141,8 +143,7 @@
     <el-dialog title="涓嶆壒鍑嗗師鍥�" :visible.sync="approveReasonVisible" width="400px" :modal-append-to-body="false">
       <div class="search_thing">
         <div class="search_label">涓嶆壒鍑嗗師鍥狅細</div>
-        <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-            v-model="reason"></el-input></div>
+        <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="reason"></el-input></div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="approveReasonVisible=false" :disabled="loadingApproveReason">鍙栨秷</el-button>
@@ -156,10 +157,12 @@
   import ValueTable from '../tool/value-table.vue'
   import Word from '../tool/word.vue'
   import file from '../../util/file';
-  import { convertToHtml } from 'mammoth';
-	export default {
-		components: {
-			ValueTable,
+  import {
+    convertToHtml
+  } from 'mammoth';
+  export default {
+    components: {
+      ValueTable,
       Word,
     },
     data() {
@@ -177,65 +180,67 @@
           showSelect: false,
           select: false,
           do: [
-          //   {
-          //   id: 'handleWeave',
-          //   font: '鍦ㄧ嚎缂栧埗',
-          //   type: 'text',
-          //   method: 'handleWeave',
-          //   disabFun: (row, index) => {
-          //     return row.isExamine != null
-          //   }
-          // },
-          {
-            id: 'download',
-            font: '涓嬭浇',
-            type: 'text',
-            method: 'download'
-          }, {
-            id: 'handleUpload',
-            font: '涓婁紶',
-            type: 'upload',
-            uploadConfig:{
-              url:this.$api.insReport.inReport,
-              accept:'.docx'
-            },
-            method: 'handleUpload',
-            disabFun: (row, index) => {
-              return row.isExamine != null
+            //   {
+            //   id: 'handleWeave',
+            //   font: '鍦ㄧ嚎缂栧埗',
+            //   type: 'text',
+            //   method: 'handleWeave',
+            //   disabFun: (row, index) => {
+            //     return row.isExamine != null
+            //   }
+            // },
+            {
+              id: 'download',
+              font: '涓嬭浇',
+              type: 'text',
+              method: 'download'
+            }, {
+              id: 'handleUpload',
+              font: '涓婁紶',
+              type: 'upload',
+              uploadConfig: {
+                url: this.$api.insReport.inReport,
+                accept: '.docx'
+              },
+              method: 'handleUpload',
+              disabFun: (row, index) => {
+                return row.isExamine != null
+              }
+            }, {
+              id: 'handleRestore',
+              font: '杩樺師',
+              type: 'text',
+              method: 'handleRestore',
+              disabFun: (row, index) => {
+                return row.isExamine != null
+              }
+            }, {
+              id: 'handleSubmit',
+              font: '鎻愪氦',
+              type: 'text',
+              method: 'handleSubmit',
+              disabFun: (row, index) => {
+                return row.state != 0
+              }
+            }, {
+              id: 'handleIssued',
+              font: '瀹℃牳',
+              type: 'text',
+              method: 'handleIssued',
+              disabFun: (row, index) => {
+                return row.state == null || row.state == 0 || row.isExamine == 1
+              }
+            }, {
+              id: 'handleApprove',
+              font: '鎵瑰噯',
+              type: 'text',
+              method: 'handleApprove',
+              disabFun: (row, index) => {
+                return row.state == null || row.state == 0 || row.isExamine == 0 || row.isExamine == null || row
+                  .isRatify == 1
+              }
             }
-          }, {
-            id: 'handleRestore',
-            font: '杩樺師',
-            type: 'text',
-            method: 'handleRestore',
-            disabFun: (row, index) => {
-              return row.isExamine != null
-            }
-          },{
-            id: 'handleSubmit',
-            font: '鎻愪氦',
-            type: 'text',
-            method: 'handleSubmit',
-            disabFun: (row, index) => {
-              return row.state != 0
-            }
-          }, {
-            id: 'handleIssued',
-            font: '瀹℃牳',
-            type: 'text',
-            method: 'handleIssued',
-            disabFun: (row, index) => {
-              return row.state == null||row.state == 0 ||row.isExamine == 1
-            }
-          }, {
-            id: 'handleApprove',
-            font: '鎵瑰噯',
-            type: 'text',
-            method: 'handleApprove',
-            disabFun: (row, index) => {
-              return row.state == null||row.state == 0||row.isExamine == 0||row.isExamine == null ||row.isRatify==1
-            }
-          }],
+          ],
           linkEvent: {
             // code: {
             //   method: 'selectAllByOne'
@@ -285,17 +290,17 @@
         statusList: [],
         claimVisible: false,
         issuedVisible: false,
-        issuedReasonVisible:false,
+        issuedReasonVisible: false,
         approveVisible: false,
-        approveReasonVisible:false,
-        fullscreen:false,
-        loadingApproveReason:false,
-        loadingApprove:false,
-        loadingIssuedReason:false,
-        loadingIssued:false,
-        value:``,
-        reason:'',
-        currentInfo:null,
+        approveReasonVisible: false,
+        fullscreen: false,
+        loadingApproveReason: false,
+        loadingApprove: false,
+        loadingIssuedReason: false,
+        loadingIssued: false,
+        value: ``,
+        reason: '',
+        currentInfo: null,
       }
     },
     mounted() {
@@ -341,20 +346,20 @@
         // this.value = await file.convertFileToHtml(row.url)
         // this.claimVisible = true;
         this.$axios.post(this.$api.insReport.wordToHtml, {
-          path:row.urlS?row.urlS:row.url
-          }).then(res => {
-					if (res.code === 200) {
+          path: row.urlS ? row.urlS : row.url
+        }).then(res => {
+          if (res.code === 200) {
             // console.log(11111111,res.data)
             this.value = res.data
-            .replace(/<a [^>]*>/g, "")
-            .replace(/<\/a>/g, "")
-            .replace(/&nbsp;/g, "&nbsp;&nbsp;");
+              .replace(/<a [^>]*>/g, "")
+              .replace(/<\/a>/g, "")
+              .replace(/&nbsp;/g, "&nbsp;&nbsp;");
             this.claimVisible = true;
-					}
+          }
 
-				}).catch(error => {
-					console.error(error)
-				})
+        }).catch(error => {
+          console.error(error)
+        })
       },
       // 鏉冮檺鍒嗛厤
       getPower(radio) {
@@ -401,106 +406,139 @@
       confirmClaim() {
         // console.log(this.$refs.Word.getValue())
       },
-      async selectAllByOne(row){
-        console.log(row,await file.convertFileToHtml(row.url));
+      async selectAllByOne(row) {
+        console.log(row, await file.convertFileToHtml(row.url));
       },
-      download(row){
-        let url = row.urlS?row.urlS:row.url;
+      download(row) {
+        let url = row.urlS ? row.urlS : row.url;
         const link = document.createElement('a');
         link.href = this.javaApi + url;
         link.target = '_blank';
         document.body.appendChild(link);
         link.click();
       },
-      handleRestore(row){
+      handleRestore(row) {
         this.$axios.post(this.$api.insReport.upReportUrl, {
-          id:row.id
-          }).then(res => {
-					if (res.code === 200) {
+          id: row.id
+        }).then(res => {
+          if (res.code === 200) {
             this.$message.success('鎿嶄綔鎴愬姛')
             this.refreshTable()
-					}
-				})
+          }
+        })
       },
-      handleIssued(row){
+      handleIssued(row) {
         this.currentInfo = row;
         this.issuedVisible = true;
       },
-      subIssued(){
+      subIssued() {
         this.loadingIssued = true;
         this.$axios.post(this.$api.insReport.examineReport, {
-								id: this.currentInfo.id,
-                isExamine: 1
+          id: this.currentInfo.id,
+          isExamine: 1
+        }).then(res => {
+          this.loadingIssued = false;
+          if (res.code === 201) {
+            return
+          }
+          this.$message.success('鎻愪氦鎴愬姛')
+          this.refreshTable()
+          this.currentInfo = null;
+          this.issuedVisible = false;
+        }).catch(e => {
+          this.$message.error('鎻愪氦澶辫触')
+          this.loadingIssued = false;
+        })
+      },
+      handleApprove(row) {
+        this.currentInfo = row;
+        this.approveVisible = true;
+      },
+      subApprove() {
+        this.loadingApprove = true;
+        this.$axios.post(this.$api.insReport.ratifyReport, {
+          id: this.currentInfo.id,
+          isRatify: 1
+        }).then(res => {
+          this.loadingApprove = false;
+          if (res.code == 201) {
+            this.$message.error('鎵瑰噯澶辫触')
+            return
+          }
+          this.$message.success('宸叉壒鍑�')
+          this.refreshTable()
+          this.currentInfo = null;
+          this.approveVisible = false;
+        })
+      },
+      handleSubmit(row) {
+        this.$confirm('鏄惁鎻愪氦褰撳墠鎶ュ憡?', "鎻愪氦", {
+          confirmButtonText: "鎻愪氦",
+          cancelButtonText: "鍙栨秷",
+          type: "warning"
+        }).then(() => {
+          this.$axios.post(this.$api.insReport.writeReport, {
+            id: row.id
           }).then(res => {
             if (res.code === 201) {
               return
             }
             this.$message.success('鎻愪氦鎴愬姛')
             this.refreshTable()
-            this.loadingIssued = false;
-            this.currentInfo = null;
-            this.issuedVisible = false;
           }).catch(e => {
             this.$message.error('鎻愪氦澶辫触')
-            this.loadingIssued = false;
           })
+        }).catch(() => {})
       },
-      handleApprove(row){
-        this.currentInfo = row;
-        this.approveVisible = true;
-      },
-      subApprove(){
-        this.loadingApprove = true;
-      },
-      handleSubmit(row){
-        this.$confirm('鏄惁鎻愪氦褰撳墠鎶ュ憡?', "鎻愪氦", {
-							confirmButtonText: "鎻愪氦",
-							cancelButtonText: "鍙栨秷",
-							type: "warning"
-						}).then(() => {
-							this.$axios.post(this.$api.insReport.writeReport, {
-								id: row.id
-							}).then(res => {
-								if (res.code === 201) {
-									return
-								}
-								this.$message.success('鎻愪氦鎴愬姛')
-								this.refreshTable()
-							}).catch(e => {
-								this.$message.error('鎻愪氦澶辫触')
-							})
-						}).catch(() => {})
-      },
-      handleIssuedReason(){
-        if(!this.reason){
+      handleIssuedReason() {
+        if (!this.reason) {
           return this.$message.error('璇疯緭鍏ュ師鍥�')
         }
         this.loadingIssuedReason = true;
         this.$axios.post(this.$api.insReport.examineReport, {
-								id: this.currentInfo.id,
-                isExamine: 0,
-                examineTell:this.reason
-          }).then(res => {
-            if (res.code === 201) {
-              return
-            }
-            this.$message.success('鎿嶄綔鎴愬姛')
-            this.refreshTable()
-            this.loadingIssuedReason = false;
-            this.currentInfo = null;
-            this.reason = '';
-            this.issuedVisible = false;
-            this.issuedReasonVisible = false;
-          }).catch(e => {
-            this.$message.error('鎿嶄綔澶辫触')
-            this.loadingIssuedReason = false;
-          })
+          id: this.currentInfo.id,
+          isExamine: 0,
+          examineTell: this.reason
+        }).then(res => {
+          this.loadingIssuedReason = false;
+          if (res.code === 201) {
+            return
+          }
+          this.$message.success('鎿嶄綔鎴愬姛')
+          this.refreshTable()
+          this.currentInfo = null;
+          this.reason = '';
+          this.issuedVisible = false;
+          this.issuedReasonVisible = false;
+        }).catch(e => {
+          this.$message.error('鎿嶄綔澶辫触')
+          this.loadingIssuedReason = false;
+        })
       },
-      handleApproveReason(){
-        if(!this.reason){
+      handleApproveReason() {
+        if (!this.reason) {
           return this.$message.error('璇疯緭鍏ュ師鍥�')
         }
         this.loadingApproveReason = true
+        this.$axios.post(this.$api.insReport.examineReport, {
+          id: this.currentInfo.id,
+          isExamine: 0,
+          examineTell: this.reason
+        }).then(res => {
+          this.loadingApproveReason = false
+          if (res.code === 201) {
+            return
+          }
+          this.$message.success('鎿嶄綔鎴愬姛')
+          this.refreshTable()
+          this.currentInfo = null;
+          this.reason = '';
+          this.issuedVisible = false;
+          this.issuedReasonVisible = false;
+        }).catch(e => {
+          this.$message.error('鎿嶄綔澶辫触')
+          this.loadingIssuedReason = false;
+        })
       }
     }
   }

--
Gitblit v1.9.3