From 08bb85ea6e67dcef3c378fa73db060d4e279e7d6 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期一, 18 十二月 2023 14:28:44 +0800
Subject: [PATCH] 三级保养

---
 src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue |  698 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 595 insertions(+), 103 deletions(-)

diff --git a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue
index 6dbccfe..fd08923 100644
--- a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue
+++ b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue
@@ -4,35 +4,74 @@
     :width="drawerWidth"
     :visible="visible"
     @close="handleCancel"
-    :confirmLoading="confirmLoading"
+    :loading="confirmLoading"
     :maskClosable="maskClosable"
   >
     <a-card :style="getBackground()">
-      <template>
-        <a-card>
           <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
             <a-row :style="{textAlign:'left'}">
               <a-button
                 :style="{marginRight: '8px'}"
                 @click="handleStart"
+                :loading="confirmLoading"
                 :disabled="repairOrder.status!='2'"
                 type="primary"
               >寮�宸�</a-button>
               <a-button
                 :style="{marginRight: '8px'}"
-                @click="handleReport"
-                :disabled="repairOrder.status!='3'"
+                @click="handleSpare"
+                :loading="confirmLoading"
+                :disabled="repairOrder.status!=='3'
+                ||repairOrder.repairOrderUda1==='needSpare'||repairOrder.repairOrderUda1==='needPart'
+                ||(repairOrder.repairOrderUda2!==null&&repairOrder.repairOrderUda3!==null)"
                 type="primary"
-              >鎶ュ伐</a-button>
+                v-if="repairOrder.repairOrderUda1!=='needSpare'"
+              >绛夐噰璐欢</a-button>
               <a-button
                 :style="{marginRight: '8px'}"
+                @click="handleSpareStop"
+                :loading="confirmLoading"
+                type="primary"
+                v-if="repairOrder.repairOrderUda1==='needSpare'"
+              >绛夐噰璐欢鍋滄</a-button>
+              <a-button
+                :style="{marginRight: '8px'}"
+                @click="handlePart"
+                :loading="confirmLoading"
+                :disabled="repairOrder.status!='3'
+                ||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'
+                ||(repairOrder.repairOrderUda4!==null&&repairOrder.repairOrderUda5!==null)"
+                type="primary"
+                v-if="repairOrder.repairOrderUda1!=='needPart'"
+              >绛夊姞宸ヤ欢</a-button>
+              <a-button
+                :style="{marginRight: '8px'}"
+                @click="handlePartStop"
+                :loading="confirmLoading"
+                type="primary"
+                v-if="repairOrder.repairOrderUda1==='needPart'"
+              >绛夊姞宸ヤ欢鍋滄</a-button>
+              <a-button
+                :style="{marginRight: '8px'}"
+                @click="handleReportPro"
+                :loading="confirmLoading"
+                :disabled="repairOrder.status!='3'||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'"
+                type="primary"
+              >淇畬</a-button>
+              <!-- <a-button
+                :style="{marginRight: '8px'}"
                 @click="handleRevoke"
+                :loading="confirmLoading"
                 :disabled="repairOrder.status!='4'"
                 type="primary"
-              >鎾ら攢</a-button>
+              >鎾ら攢</a-button> -->
             </a-row>
           </div>
           <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 鍩虹淇℃伅 </a-divider>
             <a-row :gutter="24">
               <a-col :span="6">
                 <a-form-item
@@ -45,6 +84,23 @@
                     v-if="this.repairOrder != null"
                     class="hightColor"
                   >{{this.repairOrder.status_dictText}}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="缁翠慨鐘舵��"
+                  class="hightColor"
+                >
+                  <span
+                    v-if="this.repairOrder != null"
+                    class="hightColor"
+                  >{{this.repairOrder.repairOrderUda1_dictText}}</span>
                   <span
                     v-else
                     class="frozenRowClass"
@@ -85,11 +141,13 @@
                   >-</span>
                 </a-form-item>
               </a-col>
+            </a-row>
+            <a-row :gutter="24">
               <a-col :span="6">
                 <a-form-item
                   :labelCol="labelCol"
                   :wrapperCol="wrapperCol"
-                  label="璁惧缂栫爜"
+                  label="缁熶竴缂栫爜"
                   class="hightColor"
                 >
                   <span
@@ -102,8 +160,6 @@
                   >-</span>
                 </a-form-item>
               </a-col>
-            </a-row>
-            <a-row :gutter="24">
               <a-col :span="6">
                 <a-form-item
                   :labelCol="labelCol"
@@ -139,30 +195,13 @@
                 <a-form-item
                   :labelCol="labelCol"
                   :wrapperCol="wrapperCol"
-                  label="宸ユ椂瀹氶"
+                  label="鍏抽敭璁惧?"
                   class="hightColor"
                 >
                   <span
                     v-if="this.repairOrder != null"
                     class="hightColor"
-                  >{{ this.repairOrder.workingHourQuota }}</span>
-                  <span
-                    v-else
-                    class="frozenRowClass"
-                  >-</span>
-                </a-form-item>
-              </a-col>
-              <a-col :span="6">
-                <a-form-item
-                  :labelCol="labelCol"
-                  :wrapperCol="wrapperCol"
-                  label="鎵ц浜�"
-                  class="hightColor"
-                >
-                  <span
-                    v-if="this.repairOrder != null"
-                    class="hightColor"
-                  >{{ this.repairOrder.recipientUserId_dictText}}</span>
+                  >{{ this.repairOrder.specificEquipment_dictText}}</span>
                   <span
                     v-else
                     class="frozenRowClass"
@@ -170,15 +209,19 @@
                 </a-form-item>
               </a-col>
             </a-row>
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 鎶ヤ慨棰嗗彇淇℃伅 </a-divider>
             <a-row :gutter="24">
               <a-col :span="6">
                 <a-form-item
                   :labelCol="labelCol"
                   :wrapperCol="wrapperCol"
-                  label="寮�濮嬫椂闂�"
+                  label="鎶ヤ慨鏃堕棿"
                   class="hightColor"
                 >
-                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime }}</span>
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.faultTime }}</span>
                   <span
                     v-else
                     class="frozenRowClass"
@@ -189,13 +232,10 @@
                 <a-form-item
                   :labelCol="labelCol"
                   :wrapperCol="wrapperCol"
-                  label="鍒涘缓浜�"
+                  label="鎶ヤ慨浜�"
                   class="hightColor"
                 >
-                  <span
-                    v-if="this.repairOrder != null"
-                    class="hightColor"
-                  >{{ this.repairOrder.createBy}}</span>
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda2 }}</span>
                   <span
                     v-else
                     class="frozenRowClass"
@@ -206,13 +246,239 @@
                 <a-form-item
                   :labelCol="labelCol"
                   :wrapperCol="wrapperCol"
-                  label="鍒涘缓浜�"
+                  label="棰嗗彇鏃堕棿"
                   class="hightColor"
                 >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.createTime }}</span>
                   <span
-                    v-if="this.repairOrder != null"
-                    class="hightColor"
-                  >{{ this.repairOrder.createTime}}</span>
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="棰嗗彇浜�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.responsibilityName }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+            </a-row>
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 缁翠慨淇℃伅 </a-divider>
+            <a-row
+              :gutter="24"
+            >
+            <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="寮�宸ユ椂闂�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime}}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="瀹屽伐鏃堕棿"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualEndTime }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="缁翠慨鏃堕暱"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{this.formattedElapsedTime}}</span>
+                
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="瀹屾垚浜�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId}}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+            </a-row>
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 绛夐噰璐欢 </a-divider>
+            <a-row
+            :gutter="24"
+            >
+            <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绛夐噰璐欢寮�濮�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda2}}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绛夐噰璐欢缁撴潫"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda3 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绱鏃堕暱"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.time1 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+            </a-row>
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 绛夊姞宸ヤ欢 </a-divider>
+            <a-row
+            :gutter="24"
+            >
+            <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绛夊姞宸ヤ欢寮�濮�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda4 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绛夊姞宸ヤ欢缁撴潫"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda5 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="绱鏃堕暱"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.time2 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+            </a-row>
+            <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 楠屾敹淇℃伅 </a-divider>
+            <a-row
+              :gutter="24"
+            >
+            <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="楠屾敹鏃堕棿"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.acceptTime }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="楠屾敹浜�"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda3 }}</span>
+                  <span
+                    v-else
+                    class="frozenRowClass"
+                  >-</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="6">
+                <a-form-item
+                  :labelCol="labelCol"
+                  :wrapperCol="wrapperCol"
+                  label="鏁呴殰鏃堕暱"
+                  class="hightColor"
+                >
+                  <span v-if="this.repairOrder != null">{{ this.time3 }}</span>
                   <span
                     v-else
                     class="frozenRowClass"
@@ -221,47 +487,39 @@
               </a-col>
             </a-row>
           </div>
+    </a-card>
+    <a-card :style="getBackground()">
           <a-tabs
             type="card"
             defaultActiveKey="1"
           >
-            <a-tab-pane
-              tab='瀹為檯鐢ㄦ枡'
+          <a-tab-pane
+              tab='鏁呴殰鍒嗘瀽'
               key="1"
               class="hightColor"
             >
-              <!-- <actual-material-edit-table
-                :repairOrderId="repairOrder.id"
-                :repairOrderStatus="repairOrder.status"
-              ></actual-material-edit-table> -->
-              <RepairOrderActualMaterialList :mainId="repairOrder"/>
+              <RepairOrderFaultAnalysisList :repairOrder="repairOrder"/>
             </a-tab-pane>
             <a-tab-pane
               tab='瀹為檯宸ユ椂'
-              key="2"
-              class="hightColor"
-            >
-              <!-- <actual-work-hours-edit-table
-                :repairOrderId="repairOrder.id"
-                :repairOrderStatus="repairOrder.status"
-              ></actual-work-hours-edit-table> -->
-              <RepairOrderActualWorkHoursList :mainId="repairOrder"/>
-            </a-tab-pane>
-            <a-tab-pane
-              tab='鏁呴殰鍒嗘瀽'
               key="3"
               class="hightColor"
             >
-              <!-- <fault-analysis-edit-table
+              <RepairOrderActualWorkHoursList
                 :repairOrderId="repairOrder.id"
                 :repairOrderStatus="repairOrder.status"
-              ></fault-analysis-edit-table> -->
-              <RepairOrderFaultAnalysisList :mainId="repairOrder"/>
+                :teamId="repairOrder.teamId"
+              />
+            </a-tab-pane>
+            <a-tab-pane
+              tab='瀹為檯鐢ㄦ枡'
+              key="2"
+              class="hightColor"
+            >
+              <RepairOrderActualMaterialList :mainId="repairOrder" />
             </a-tab-pane>
           </a-tabs>
         </a-card>
-      </template>
-    </a-card>
     <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
       <a-row :style="{textAlign:'right'}">
         <a-button
@@ -278,30 +536,35 @@
 <script>
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import { putAction } from '@/api/manage'
+import dayjs from 'dayjs'
 import Tooltip from 'ant-design-vue/es/tooltip'
-import ActualMaterialEditTable from './moudles/ActualMaterialEditTable.vue'
-import ActualWorkHoursEditTable from './moudles/ActualWorkHoursEditTable.vue'
-import FaultAnalysisEditTable from './moudles/FaultAnalysisEditTable.vue'
-import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport.vue'
-import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport.vue'
+import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport'
+import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport'
 import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport.vue'
+import { getAction } from '../../../../api/manage'
 export default {
   name: 'RepairOrderExcuteDrawer',
   mixins: [JeecgListMixin],
   components: {
     Tooltip,
-    ActualMaterialEditTable,
-    ActualWorkHoursEditTable,
-    FaultAnalysisEditTable,
     RepairOrderActualMaterialList,
     RepairOrderActualWorkHoursList,
-    RepairOrderFaultAnalysisList
+    RepairOrderFaultAnalysisList,
+    dayjs
   },
   props: {
     repairOrder: {
       type: Object,
       required: false,
       default: {}
+    },
+    repairOrderId: {
+      type: String,
+      default:'',
+    },
+    status:{
+      type: String,
+      default:'',
     }
   },
   data() {
@@ -316,24 +579,43 @@
       dataSource: [],
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 6 },
+        sm: { span: 12 },
       },
       wrapperCol: {
         xs: { span: 24 },
-        sm: { span: 18 },
+        sm: { span: 12 },
       },
       url: {
         orderStart: "eam/repairOrder/start",
         orderReport: "eam/repairOrder/report",
-        orderRevoke: "eam/repairOrder/revoke"
+        orderRevoke: "eam/repairOrder/revoke",
+        reload:"/eam/repairOrder/list",
+        handleSpare:"/eam/repairOrder/handleSpare",
+        handlePart:"/eam/repairOrder/handlePart",
+        handleSpareStop:"/eam/repairOrder/handleSpareStop",
+        handlePartStop:"/eam/repairOrder/handlePartStop",
+        getInfo:'/eam/repairOrderFaultAnalysis/list',
       },
+      elapsedTime: 0, // 璁板綍宸茶繃鍘荤殑鏃堕棿锛堝崟浣嶏細姣锛�
+      formattedElapsedTime: '0绉�',
+      time1:'0绉�',
+      time2:'0绉�',
+      time3:'0绉�',
+      timer:null // 鏍煎紡鍖栧悗鐨勫凡杩囧幓鏃堕棿
     }
   },
 
   mounted() {
-    this.$bus.$on('closeDrawer', (data) => {
-      this.visible = false;
-    })
+    // this.$bus.$on('closeDrawer', (data) => {
+    //   this.handleCancel()
+    // })
+    this.timer = setInterval(() => {
+      this.updateElapsedTime();
+    }, 1000);
+  },
+  beforeDestroy() {
+    // 鍦ㄧ粍浠堕攢姣佸墠娓呴櫎璁℃椂鍣�
+    clearInterval(this.timer);
   },
 
   methods: {
@@ -357,40 +639,250 @@
       this.visible = false;
       //this.repairOrder.id = "-1"
     },
-    handleStart(record) {
-      putAction(this.url.orderStart, this.repairOrder).then(res => {
-        if (res.result) {
-          this.$message.success('寮�宸ユ垚鍔�');
-          this.repairOrder.status = '3'
-          this.$emit('loadData');
-        } else {
-          this.$message.error('寮�宸ュ嚭鐜板紓甯�')
-        }
+    //寮�宸�
+    handleStart() {
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '缁翠慨宸ュ崟寮�宸�',
+        content: '鎻愮ず锛氬紑宸ュ悗鏃犳硶鎾ゅ洖锛岃璋ㄦ厧鎿嶄綔锛�',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.orderStart, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('寮�宸ユ垚鍔�');
+              that.repairOrder.status = '3'
+              that.$emit('loadData');
+              that.reload();
+            } else {
+              that.$message.error('寮�宸ュ嚭鐜板紓甯�')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    //鎶ュ伐
+    handleReportPro(){
+      
+      let that = this;
+      getAction(that.url.getInfo,{repairOrderId:this.repairOrder.id}).then(res=>{
+                if(res.success){
+                   if(res.result.records.length===0){
+                      that.$message.warning("鏁呴殰鍒嗘瀽灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐")
+                   }else if(res.result.records[0].repairOrderFaultAnalysisUda1===null||res.result.records[0].repairOrderFaultAnalysisUda1===undefined||res.result.records[0].repairOrderFaultAnalysisUda1===''){
+                      that.$message.warning("鏁呴殰鐜拌薄灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐")
+                   }else if(res.result.records[0].faultCause===null||res.result.records[0].faultCause===undefined||res.result.records[0].faultCause===''){
+                      that.$message.warning("鏁呴殰妫�鏌ュ皻鏈~鍐欙紝璇峰~鍐欏悗鍐嶆姤宸�")
+                   }else if(res.result.records[0].maintenanceMeasures===null||res.result.records[0].maintenanceMeasures===undefined||res.result.records[0].maintenanceMeasures===''){
+                      that.$message.warning("鏁呴殰缁翠慨灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐")
+                   }else if(res.result.records[0].suggestion===null||res.result.records[0].suggestion===undefined||res.result.records[0].suggestion===''){
+                      that.$message.warning("鏁呴殰棰勯槻灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐")
+                   }else{
+                      that.handleReport();
+                   }
+                }
       })
     },
     handleReport() {
-      putAction(this.url.orderReport, this.repairOrder).then(res => {
-        if (res.result) {
-          this.$message.success('鎶ュ伐鎴愬姛');
-          this.repairOrder.status = '4'
-          this.$emit('loadData');
-        } else {
-          this.$message.error('鎶ュ伐鍑虹幇寮傚父')
-        }
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '缁翠慨宸ュ崟鎶ュ伐',
+        content: '鎻愮ず锛氭姤宸ュ悗缁翠慨瀹屽伐锛岃璋ㄦ厧鎿嶄綔锛�',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.orderReport, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎶ュ伐鎴愬姛');
+              that.reload();
+              that.$emit('loadData');
+            } else {
+              that.$message.error(res.message)
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // 
+          })
+        },
       })
     },
+    //鎾ら攢
     handleRevoke() {
-      putAction(this.url.orderRevoke, this.repairOrder).then(res => {
-        if (res.result) {
-          this.$message.success('鎾ら攢鎴愬姛');
-          this.repairOrder.status = '3'
-          this.$emit('loadData');
-        } else {
-          this.$message.error('鎾ら攢鍑虹幇寮傚父')
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '瀹屽伐鎾ら攢',
+        content: '鎻愮ず锛氬畬宸ユ挙閿�鍚庡彲缁х画鎶ュ伐鎿嶄綔锛�',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.orderRevoke, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎾ら攢鎴愬姛');
+              that.$emit('loadData');
+            } else {
+              that.$message.error('鎾ら攢鍑虹幇寮傚父')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    handleSpare(){
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '绛夐噰璐欢',
+        content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ紑濮嬬瓑閲囪喘浠�?',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.handleSpare, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎿嶄綔鎴愬姛');
+              that.reload();
+              that.$emit('loadData');
+            } else {
+              that.$message.error('鎿嶄綔鍑虹幇寮傚父')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    handleSpareStop(){
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '鍋滄绛夐噰璐欢',
+        content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ仠姝㈢瓑閲囪喘浠�?',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.handleSpareStop, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎿嶄綔鎴愬姛');
+              that.reload();
+              that.$emit('loadData');
+            } else {
+              that.$message.error('鎿嶄綔鍑虹幇寮傚父')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    handlePart(){
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '绛夐噰璐欢',
+        content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ょ瓑閲囪喘浠�?',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.handlePart, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎿嶄綔鎴愬姛');
+              that.reload();
+              that.$emit('loadData');
+            } else {
+              that.$message.error('鎿嶄綔鍑虹幇寮傚父')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    handlePartStop(){
+      const that = this;
+      that.confirmLoading = true;
+      this.$confirm({
+        title: '鍋滄绛夐噰璐欢',
+        content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ仠姝㈢瓑閲囪喘浠�?',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          putAction(that.url.handlePartStop, that.repairOrder).then(res => {
+            if (res.result) {
+              that.$message.success('鎿嶄綔鎴愬姛');
+              that.reload();
+              that.$emit('loadData');
+            } else {
+              that.$message.error('鎿嶄綔鍑虹幇寮傚父')
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            // that.close();
+          })
+        },
+      })
+    },
+    reload(){
+      getAction(this.url.reload,{id:this.repairOrder.id}).then(res=>{
+        if( res.result.records.length!==0){
+          this.repairOrder = res.result.records[0];
         }
       })
     },
-    
+    updateElapsedTime() {
+      const stardand = new Date();
+      if(this.repairOrder.actualEndTime!==null&&this.repairOrder.actualEndTime!==undefined&&this.repairOrder.actualEndTime!==''){
+        this.formattedElapsedTime = this.repairOrder.actualHour+'鏃�';
+      }else if(this.repairOrder.actualStartTime!==null&&this.repairOrder.actualStartTime!==undefined&&this.repairOrder.actualStartTime!==''){
+        const startDateTime = dayjs(this.repairOrder.actualStartTime, { format: 'YYYY-MM-DD HH:mm:ss' });
+        this.elapsedTime = stardand-startDateTime;
+        this.formattedElapsedTime = this.formatTime(this.elapsedTime);
+      }else{
+        this.formattedElapsedTime="寮�宸ュ悗璁$畻鏃堕暱";
+      }
+      if(this.repairOrder.repairOrderUda3!==null&&this.repairOrder.repairOrderUda3!==undefined&&this.repairOrder.repairOrderUda3!==''){
+        this.time1 = this.repairOrder.spareTime+'鏃�';
+      }else if(this.repairOrder.repairOrderUda2!==null&&this.repairOrder.repairOrderUda2!==undefined&&this.repairOrder.repairOrderUda2!==''){
+        const startDateTime1 = dayjs(this.repairOrder.repairOrderUda2, { format: 'YYYY-MM-DD HH:mm:ss' });
+        this.time1 = this.formatTime(stardand-startDateTime1);
+      }else{
+        this.time1 = "绛夐噰璐欢鍚庤绠楁椂闀�"
+      }
+      if(this.repairOrder.repairOrderUda5!==null&&this.repairOrder.repairOrderUda5!==undefined&&this.repairOrder.repairOrderUda5!==''){
+        this.time2 = this.repairOrder.partTime+'鏃�';
+      }else if(this.repairOrder.repairOrderUda4!==null&&this.repairOrder.repairOrderUda4!==undefined&&this.repairOrder.repairOrderUda4!==''){
+        const startDateTime2 = dayjs(this.repairOrder.repairOrderUda4, { format: 'YYYY-MM-DD HH:mm:ss' });
+        this.time2 = this.formatTime(stardand-startDateTime2);
+      }else{
+        this.time2 = "绛夊姞宸ヤ欢鍚庤绠楁椂闀�"
+      }
+      if(this.repairOrder.acceptTime!==null&&this.repairOrder.acceptTime!==undefined&&this.repairOrder.acceptTime!==''){
+        this.time3 = this.repairOrder.faultHour+'鏃�';
+      }else if(this.repairOrder.faultTime!==null&&this.repairOrder.faultTime!==undefined&&this.repairOrder.faultTime!==''){
+        const startDateTime3 = dayjs(this.repairOrder.faultTime, { format: 'YYYY-MM-DD HH:mm:ss' });
+        this.time3 = this.formatTime(stardand-startDateTime3);
+      }else{
+        this.time3 = "楠屾敹鍚庤绠楁椂闀�"
+      }
+    },
+    formatTime(timeInMilliseconds) {
+      // 灏嗘绉掕浆鎹负鏇村弸濂界殑鏍煎紡锛堜緥濡傦細x灏忔椂x鍒嗛挓x绉掞級
+      // 杩欓噷鍙槸涓�涓畝鍗曠殑瀹炵幇锛屼綘鍙兘闇�瑕佹牴鎹渶姹傝繘琛屾洿鏀�
+      const seconds = Math.floor(timeInMilliseconds / 1000);
+      const minutes = Math.floor(seconds / 60);
+      const hours = Math.floor(minutes / 60);
+      
+      return `${hours}鏃� ${minutes % 60}鍒� ${seconds % 60}绉抈;
+    },
   },
 
 }

--
Gitblit v1.9.3