From b32150d1fd576fa3b89e85e2f99be2edc67b9293 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 17 九月 2024 16:26:15 +0800
Subject: [PATCH] 工单详情页优化

---
 src/views/system/work-order/index.vue |  401 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 262 insertions(+), 139 deletions(-)

diff --git a/src/views/system/work-order/index.vue b/src/views/system/work-order/index.vue
index d2b73ee..593c822 100644
--- a/src/views/system/work-order/index.vue
+++ b/src/views/system/work-order/index.vue
@@ -1,24 +1,23 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">
+      <el-form-item label="鍏抽敭璇�" prop="keyword">
         <el-input
-          v-model="queryParams.workOrderNo"
-          placeholder="璇疯緭鍏ュ伐鍗曞彿"
+          v-model="queryParams.keyword"
+          placeholder="宸ュ崟鍙�/鐐逛綅鍚嶇О鎼滅储"
           clearable
           @clear="handleQuery"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
       <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList">
-        <el-select v-model="queryParams.errorTypeList" multiple placeholder="鏁呴殰绫诲瀷" clearable @clear="handleQuery">
-          <el-option v-for="dict in dict.type.error_type"
-                     :value="dict.value"
-                     :label="dict.label"/>
+        <el-select v-model="queryParams.errorTypeList" multiple @change="handleQuery" placeholder="鏁呴殰绫诲瀷" clearable @clear="handleQuery">
+          <el-option v-for="dict in dict.type.error_type" :value="dict.value" :key="dict.value" :label="dict.label" />
         </el-select>
       </el-form-item>
       <el-form-item label="宸ュ崟鐘舵��" prop="status">
         <el-select v-model="queryParams.status" placeholder="宸ュ崟鐘舵��" @change="handleQuery">
+          <el-option label="鍏ㄩ儴" value=""></el-option>
           <el-option label="寰呭鐞�" value="DISTRIBUTED"></el-option>
           <el-option label="寰呭鏍�" value="YW_HANDLE"></el-option>
           <el-option label="宸插畬鎴�" value="AUDITING_SUCCESS"></el-option>
@@ -44,7 +43,7 @@
       </el-col>
     </el-row>
 
-    <el-row v-if="workOrderList && workOrderList.length > 0" :gutter="20" v-loading="loading">
+    <el-row :gutter="20" v-loading="loading">
       <el-col :xl="6" :lg="8" :md="12" :sm="24" v-for="item in workOrderList" :key="item.id">
         <div class="my-col">
           <div style="padding-left: 10px; padding-top: 8px">
@@ -65,20 +64,31 @@
               <div class="card">
                 <div class="card-left">
                   <el-image
-                    :preview-src-list="['https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357']"
-                    fit="cover" src="https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357"
+                    v-if="item.imgList && item.imgList.length > 0"
+                    :preview-src-list="item.imgList"
+                    fit="cover" :src="item.imgList[0]"
                     class="image"
-                  />
+                    style="display: flex;justify-content: center;align-items: center;"
+                  >
+                    <div slot="error" class="image-slot">
+                      <i class="el-icon-picture-outline">鍔犺浇澶辫触</i>
+                    </div>
+                  </el-image>
+                  <el-image class="image" style="display: flex;justify-content: center;align-items: center;" v-else>
+                    <div slot="error" class="image-slot">
+                      <i class="el-icon-picture-outline" style="color: gray;font-size: 14px">鏈彇鍒板浘鐗�</i>
+                    </div>
+                  </el-image>
                 </div>
                 <div class="work-order">
                   <el-row class="work-order-item">
-                    <el-col :span="24" class="time">宸ュ崟缂栧彿锛歿{ item.workOrderNo }}</el-col>
+                    <el-col :span="24" class="time">宸ュ崟鍙凤細{{ item.workOrderNo }}</el-col>
                   </el-row>
                   <el-row class="work-order-item">
                     <el-col :span="24" class="time">鏁呴殰鏃堕棿锛歿{ item.createTime }}</el-col>
                   </el-row>
                   <el-row class="work-order-item">
-                    <el-col class="time" :span="24" style="display: flex;flex-direction: row"><div style="min-width: 66px">鏁呴殰鐐逛綅锛�</div><div style="word-break: break-word">{{ item.source }}</div></el-col>
+                    <el-col class="time" :span="24"><div>鏁呴殰鐐逛綅锛�</div><div>{{ item.source }}</div></el-col>
                   </el-row>
                   <el-row style="position: absolute;bottom: 10px">
                     <el-button
@@ -94,8 +104,10 @@
                       class="my-button"
                       size="mini"
                       type="text"
+                      v-hasPermi="['work:order:condition:add']"
+                      v-show="item.status !== 'AUDITING_SUCCESS'"
                       @click="handleYwCondition(item)"
-                    >杩愮淮鎯呭喌
+                    >澶勭悊涓婃姤
                     </el-button>
                     <el-button
                       class="my-button"
@@ -110,7 +122,16 @@
                       type="text"
                       @click="handleReport(item)"
                       v-hasPermi="['system:report:add']"
+                      v-show="item.status !== 'AUDITING_SUCCESS'"
                     >浜嬪悗鎶ュ
+                    </el-button>
+                    <el-button
+                      class="my-button"
+                      size="mini"
+                      type="text"
+                      @click="handleDetail(item)"
+                      v-hasPermi="['system:workorder:detail']"
+                    >璇︽儏
                     </el-button>
                   </el-row>
                 </div>
@@ -130,7 +151,7 @@
 
       </el-col>
     </el-row>
-    <el-empty v-else description="鏆傛棤鏁版嵁"></el-empty>
+    <el-empty v-if="empty" description="鏆傛棤鏁版嵁"></el-empty>
 
     <pagination
       v-show="total>0"
@@ -149,69 +170,73 @@
         <el-form-item label="鎶ュ绫诲瀷">
           <el-input v-model="reportForm.reportType" disabled/>
         </el-form-item>
-        <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
-          <el-select v-model="reportForm.errorType">
-            <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
-            <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
-            <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+        <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList">
+          <el-select v-model="reportForm.errorTypeList" multiple>
+            <el-option v-for="dict in dict.type.report_error_type" :value="dict.value" :key="dict.value" :label="dict.label" />
           </el-select>
+        </el-form-item>
+        <el-form-item label="鎶ュ鏃堕棿" prop="daterangeCreateTime">
+          <el-date-picker v-model="reportForm.daterangeCreateTime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
+                          range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item label="鎶ュ鍐呭" prop="reportContent">
           <editor v-model="reportForm.reportContent" :min-height="192"/>
         </el-form-item>
-        <el-form-item label="涓婃姤鏉愭枡" prop="reportMaterials">
+        <el-form-item label="鎶ュ鏉愭枡" prop="reportMaterials">
           <file-upload v-model="reportForm.reportMaterials"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="reportOpen = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="submitReportForm">鎻� 浜�</el-button>
+        <el-button type="primary" @click="submitReportForm">鎻愪氦瀹℃牳</el-button>
       </div>
     </el-dialog>
 
-    <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="1000px" append-to-body>
-      <el-row :gutter="20">
-        <el-col :span="10">
-          <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
-            <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">
-              <el-input v-model="auditingForm.workOrderNo" disabled/>
-            </el-form-item>
-            <el-form-item label="杩愮淮鍗曚綅" prop="unitName">
-              <el-input v-model="auditingForm.unitName" disabled/>
-            </el-form-item>
-            <el-form-item label="瀹℃牳缁撴灉" prop="auditingResult">
-              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">閫氳繃</el-radio>
-              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_FAIL">椹冲洖</el-radio>
-            </el-form-item>
-            <el-form-item label="瀹℃牳澶囨敞" prop="auditingRemark">
-              <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
-            </el-form-item>
-          </el-form>
-        </el-col>
-        <el-col :span="14" style="max-height: 500px; overflow-y: auto">
-          <el-timeline v-if="ywConditions && ywConditions.length > 0">
-            <el-timeline-item v-for="(condition, index) in ywConditions" :key="index"
-                              :timestamp="condition.commitUserName + '___' + condition.createTime" placement="top"
-            >
-              <el-card>
-                <div v-html="condition.ywCondition"></div>
-                <el-link type="primary"
-                         v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials"
-                         :underline="false" :key="item.id" @click="handleDownload(item)"
-                >{{ item.substring(item.lastIndexOf('/') + 1) }}
-                </el-link>
-              </el-card>
-            </el-timeline-item>
-          </el-timeline>
-          <el-empty v-else description="娌℃湁澶勭悊璁板綍"></el-empty>
-        </el-col>
-      </el-row>
+    <WorkOrderAuditing :auditingOpen="auditingOpen" :dataForm="auditingForm" :ywConditions="ywConditions" @close="closeAuditing"/>
+<!--    <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="1000px" append-to-body>-->
+<!--      <el-row :gutter="20">-->
+<!--        <el-col :span="10">-->
+<!--          <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">-->
+<!--            <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">-->
+<!--              <el-input v-model="auditingForm.workOrderNo" disabled/>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="杩愮淮鍗曚綅" prop="unitName">-->
+<!--              <el-input v-model="auditingForm.unitName" disabled/>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="瀹℃牳缁撴灉" prop="auditingResult">-->
+<!--              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">閫氳繃</el-radio>-->
+<!--              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_FAIL">椹冲洖</el-radio>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="瀹℃牳澶囨敞" prop="auditingRemark">-->
+<!--              <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>-->
+<!--            </el-form-item>-->
+<!--          </el-form>-->
+<!--        </el-col>-->
+<!--        <el-col :span="14" style="max-height: 500px; overflow-y: auto">-->
+<!--          <el-timeline v-if="ywConditions && ywConditions.length > 0">-->
+<!--            <el-timeline-item v-for="(condition, index) in ywConditions" :key="index"-->
+<!--                              :timestamp="condition.commitUserName + '___' + condition.createTime" placement="top"-->
+<!--            >-->
+<!--              <el-card>-->
+<!--                <div v-html="condition.ywCondition"></div>-->
+<!--                <el-link type="primary"-->
+<!--                         v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials"-->
+<!--                         :underline="false" :key="item.id" @click="handleDownload(item)"-->
+<!--                >{{ item.substring(item.lastIndexOf('/') + 1) }}-->
+<!--                </el-link>-->
+<!--              </el-card>-->
+<!--            </el-timeline-item>-->
+<!--          </el-timeline>-->
+<!--          <el-empty v-else description="娌℃湁澶勭悊璁板綍"></el-empty>-->
+<!--        </el-col>-->
+<!--      </el-row>-->
 
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="cancelAuditing">鍙� 娑�</el-button>
-        <el-button type="primary" @click="submitAuditing">瀹� 鏍�</el-button>
-      </div>
-    </el-dialog>
+<!--      <div slot="footer" class="dialog-footer">-->
+<!--        <el-button @click="cancelAuditing">鍙� 娑�</el-button>-->
+<!--        <el-button type="primary" @click="submitAuditing">瀹� 鏍�</el-button>-->
+<!--      </div>-->
+<!--    </el-dialog>-->
 
     <el-dialog title="杩愮淮鎯呭喌璁板綍" :visible.sync="ywConditionOpen" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="ywConditionRules" label-width="80px">
@@ -234,15 +259,13 @@
       </div>
     </el-dialog>
 
-    <el-dialog title="杩愮淮鎵归噺瀹℃牳" :visible.sync="batchAuditingVisible" width="500px" append-to-body>
+    <el-dialog title="宸ュ崟鎵归噺瀹℃牳" :visible.sync="batchAuditingVisible" width="500px" append-to-body>
       <el-form ref="batchAuditingWorkOrder" :model="batchAuditingWorkOrder" label-width="80px"
                :rules="batchAuditingRules"
       >
         <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
           <el-select v-model="batchAuditingWorkOrder.errorTypes" multiple placeholder="鏁呴殰绫诲瀷">
-            <el-option v-for="(item, index) in errorTypeOptions" :label="item.dictLabel" :value="item.dictValue"
-                       :key="index"
-            ></el-option>
+            <el-option v-for="dict in dict.type.error_type" :value="dict.value" :key="dict.value" :label="dict.label" />
           </el-select>
         </el-form-item>
         <el-form-item label="瀹℃牳璇存槑" prop="auditingRemark">
@@ -260,52 +283,80 @@
     <el-dialog title="杩囩▼鍥�" :visible.sync="flowOpen" width="1200px" append-to-body>
       <div>
         <el-steps :active="ywAuditingList.length != 0 ? 3 : ywHandleList.length != 0 ? 2 : 1" :space="500">
-          <el-step title="浜х敓宸ュ崟">
+          <el-step :title="getTitle1()">
             <template slot="description">
               <div>
-                <div class="flow-item-x">
-                  宸ュ崟鏉ユ簮锛�
-                  <el-tag type="danger" size="small">{{ flowForm.source }}</el-tag>
+                <div class="row flow-item-x">
+                  <div class="flex1">鏁呴殰鐐逛綅锛�</div>
+                  <div class="flex2"><el-tag type="danger" size="small">{{ flowForm.source }}</el-tag></div>
                 </div>
-                <div class="flow-item-x">
-                  鏁呴殰绫诲瀷锛歿{ flowForm.errorType }}
+                <div class="row flow-item-x">
+                  <div class="flex1">鏁呴殰绫诲瀷锛�</div>
+                  <div class="flex2">{{ flowForm.errorType }}</div>
                 </div>
-                <div class="flow-item-x">
-                  杩愮淮鍗曚綅锛歿{ flowForm.unitName }}
+                <div class="row flow-item-x">
+                  <div class="flex1">杩愮淮鍗曚綅锛�</div>
+                  <div class="flex2">{{ flowForm.unitName }}</div>
                 </div>
-                <div class="flow-item-x">
-                  鍒涘缓鏃堕棿锛歿{ flowForm.createTime }}
+                <div class="row flow-item-x">
+                  <div class="flex1">鍒涘缓鏃堕棿锛�</div>
+                  <div class="flex2">{{ flowForm.createTime }}</div>
                 </div>
-                <div class="flow-item-x" v-if="flowForm.processingPeriod">
-                  澶勭悊鏈熼檺锛�
-                  <el-tag type="danger" size="small">{{ flowForm.processingPeriod }}</el-tag>
+                <div class="row flow-item-x" v-if="flowForm.processingPeriod">
+                  <div class="flex1">澶勭悊鏈熼檺锛�</div>
+                  <div class="flex2"><el-tag type="danger" size="small">{{ flowForm.processingPeriod }}</el-tag></div>
                 </div>
               </div>
             </template>
           </el-step>
-          <el-step title="杩愮淮澶勭悊">
+          <el-step :title="getTitle2()">
             <template slot="description">
               <div style="max-height: 450px;overflow-y: scroll">
-                <div class="y-item" v-for="(item, index) in ywHandleList" :key="index">
-                  <div class="y-item-1">
-                    <div class="flow-item-x">
-                      鐜板満鎯呭喌锛�
-                      <!-- <el-tooltip class="item" effect="dark" :content="item.ywCondition" placement="top"> -->
-                      <span v-html="item.ywCondition"></span>
-                      <!-- </el-tooltip> -->
-                    </div>
-                    <!-- <div class="flow-item-x">
-                      <el-tag size="small" v-for="file in item.ywProofMaterials != null ? item.ywProofMaterials.split(',') : item.ywProofMaterials" :key="file" @click="handleDownload(file)">{{ file.substring(file.lastIndexOf("/") + 1) }}</el-tag>
-                    </div> -->
+                <div v-for="(item, index) in ywHandleList" :key="index">
+                  <div v-if="item.sysMsg === true" class="row flow-item-x">
+                    <div class="cflex1">绯荤粺娑堟伅锛�</div>
+                    <div class="cflex2">{{item.ywCondition}}</div>
+                    <div class="cflex3">{{item.createTime}}</div>
                   </div>
-                  <div class="y-item-2">
-                    <div>
-                      {{ parseTime(item.createTime) }}
+                  <div v-else style="width: 100%">
+                    <div style="display: flex; flex-direction: row;width: 100%;position: relative">
+                      <div class="cflex1">杩愮淮鎯呭喌锛�</div>
+                      <div class="cflex2"><el-link style="font-size: 14px" type="danger" @click="openDrawer(item)">鐐瑰嚮鏌ョ湅</el-link></div>
+                      <div class="cflex3">{{item.createTime}}</div>
                     </div>
-                    <div>
-                      绗瑊{ index + 1 }}娆�
-                    </div>
+                    <el-drawer
+                      title="杩愮淮鎯呭喌"
+                      :visible.sync="drawer"
+                      direction="rtl"
+                      :modal="false"
+                      >
+                      <div style="padding: 20px;font-size: 14px">
+                        <div class="row flow-item-x">
+                          <div class="flex1"><p>涓婃姤鍐呭锛�</p></div>
+                          <div class="flex2">
+                            <div v-html="ywData.content"></div>
+                          </div>
+                        </div>
+                        <div class="row flow-item-x">
+                          <div class="flex1"><p>浣愯瘉鏉愭枡锛�</p></div>
+                          <div class="flex2">
+                            <p>
+                              <el-link type="primary"
+                                       v-for="item in ywData.fileList != null ? ywData.fileList.split(',') : ywData.fileList"
+                                       :underline="false" :key="item.id" @click="handleDownload(item)"
+                              >{{ item.substring(item.lastIndexOf('/') + 1) }}
+                              </el-link>
+                            </p>
+                          </div>
+
+                        </div>
+                      </div>
+                    </el-drawer>
+                      <!-- <div class="flow-item-x">
+                        <el-tag size="small" v-for="file in item.ywProofMaterials != null ? item.ywProofMaterials.split(',') : item.ywProofMaterials" :key="file" @click="handleDownload(file)">{{ file.substring(file.lastIndexOf("/") + 1) }}</el-tag>
+                      </div> -->
                   </div>
+
                 </div>
               </div>
             </template>
@@ -313,25 +364,26 @@
           <el-step title="瀹℃牳缁撴灉">
             <template slot="description">
               <div style="max-height: 450px;overflow-y: scroll">
-                <div class="y-item" v-for="(item, index) in ywAuditingList" :key="index">
-                  <div class="y-item-1">
-                    <div class="flow-item-x">
+                <div v-for="(item, index) in ywAuditingList" :key="index">
+                  <div class="row flow-item-x">
+                    <div class="cflex1">
                       瀹℃牳缁撴灉锛�
+                    </div>
+                    <div class="cflex2">
                       <el-tag :type="item.result == '瀹℃牳閫氳繃' ? 'success' : 'danger'" size="small">{{
                           item.result
                         }}
                       </el-tag>
                     </div>
-                    <div class="flow-item-x">
-                      瀹℃牳璇存槑锛�<span v-html="item.remark"></span>
+                    <div class="cflex3">
+                      {{ item.createTime }}
                     </div>
                   </div>
-                  <div class="y-item-2">
-                    <div>
-                      {{ parseTime(item.createTime) }}
-                    </div>
-                    <div>
-                      绗瑊{ index + 1 }}娆�
+                  <div class="row flow-item-x">
+                    <div class="flex1">瀹℃牳璇存槑锛�</div>
+                    <div class="flex2">
+                      <span v-if="item.remark" v-html="item.remark"></span>
+                      <span v-else>鏃�</span>
                     </div>
                   </div>
                 </div>
@@ -345,6 +397,26 @@
   </div>
 </template>
 <style scoped>
+.flex1 {
+  flex: 2;
+}
+.flex2 {
+  flex: 9;
+}
+.cflex1 {
+  flex: 2;
+}
+.cflex2 {
+  flex: 5;
+  flex-wrap: wrap;
+}
+.cflex3 {
+  flex: 4;
+}
+.row {
+  display: flex;
+  flex-direction: row;
+}
 .flow-item-x {
   margin: 5px 0;
 }
@@ -355,7 +427,8 @@
   background-color: #d9d9d9;
   display: flex;
   flex-direction: row;
-  align-items: center
+  align-items: center;
+  width: 100%;
 }
 
 .y-item-2 {
@@ -377,20 +450,20 @@
   batchAuditing,
   ywCondition,
   getYwCondition,
-  getYwConditionList,
-  getYwAuditingList
+  process
 } from '@/api/platform/work-order'
 import { addReport } from '@/api/platform/report'
-import { getDicts } from '@/api/system/dict/data'
+import WorkOrderAuditing from "@/components/WorkOrder/WorkOrderAuditing";
 
 export default {
   name: 'Work-order',
-  dicts: ['error_type'],
-  components: {},
+  dicts: ['error_type', 'report_error_type'],
+  components: {WorkOrderAuditing},
   data() {
     return {
+      drawer: false,
+      empty: false,
       openShowCurrent: null,
-      errorTypeOptions: [],
       ywConditions: [],
       batchAuditingVisible: false,
       batchAuditingWorkOrder: {
@@ -400,21 +473,32 @@
       },
       ywHandleList: [],
       ywAuditingList: [],
+      beforeReportMsg: '',
+      afterReportMsg: '',
       reportFormRules: {
         reportContent: [
           { required: true, message: '鎶ュ鍐呭涓嶈兘涓虹┖', trigger: 'blur' }
         ],
         reportMaterials: [
-          { required: true, message: '涓婃姤鏉愭枡涓嶈兘涓虹┖', trigger: 'blur' }
-        ]
+          { required: true, message: '鎶ュ鏉愭枡涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        errorTypeList: [
+          { required: true, message: '璇烽�夋嫨鏁呴殰绫诲瀷', trigger: 'change' }
+        ],
+        daterangeCreateTime: [
+          { required: true, message: '璇烽�夋嫨鎶ュ鏃堕棿', trigger: 'change' }
+        ],
       },
       reportOpen: false,
       reportForm: {
         reportType: '浜嬪悗鎶ュ',
         pointId: '',
-        errorType: '',
+        errorTypeList: [],
         reportContent: '',
-        reportMaterials: ''
+        reportMaterials: '',
+        daterangeCreateTime: [],
+        beginCreateTime: null,
+        endCreateTime: null
       },
       // 杩囩▼鍥�
       flowOpen: false,
@@ -493,6 +577,11 @@
         errorTypes: [
           { required: true, message: '璇烽�夋嫨鏁呴殰绫诲瀷', trigger: 'change' }
         ]
+      },
+      // 杩愮淮鎯呭喌
+      ywData: {
+        content: '',
+        fileList: 'process.env.VUE_APP_BASE_API'
       }
     }
   },
@@ -500,6 +589,24 @@
     this.getList()
   },
   methods: {
+    closeAuditing() {
+      this.auditingOpen = false
+    },
+    getTitle1() {
+      return '浜х敓宸ュ崟' + (this.beforeReportMsg ? '(' + this.beforeReportMsg + ')' : '')
+    },
+    getTitle2() {
+      return '杩愮淮澶勭悊' + (this.afterReportMsg ? '(' + this.afterReportMsg + ')' : '')
+    },
+    openDrawer(item) {
+      this.ywData = {
+        content: '',
+        fileList: ''
+      }
+      this.ywData.content = item.ywCondition
+      this.ywData.fileList = item.ywProofMaterials
+      this.drawer = true
+    },
     // 鎵归噺瀹℃牳
     batchAuditing(result) {
       this.batchAuditingWorkOrder.auditingResult = result
@@ -522,6 +629,10 @@
     submitReportForm() {
       this.$refs['reportForm'].validate(valid => {
         if (valid) {
+          if (this.reportForm.daterangeCreateTime && this.reportForm.daterangeCreateTime.length > 0) {
+            this.reportForm.beginCreateTime = this.reportForm.daterangeCreateTime[0]
+            this.reportForm.endCreateTime = this.reportForm.daterangeCreateTime[1]
+          }
           addReport(this.reportForm).then(response => {
             this.$modal.msgSuccess('鎴愬姛鎻愪氦鎶ュ')
             this.reportOpen = false
@@ -530,16 +641,20 @@
         }
       })
     },
+    // 璇︽儏
+    handleDetail(item) {
+      this.$router.push({name: '/work-order-center/maintenance/detail', query: {workOrderNo: item.workOrderNo}})
+    },
     // 浜嬪悗鎶ュ鎸夐挳
     handleReport(row) {
-      this.reportForm.pointId = row.pointId
+      this.reportForm.pointId = row.serialNumber
       this.reportForm.source = row.source
       this.reportOpen = true
     },
     // 瀹℃牳鎸夐挳
     handleAuditing(row) {
       this.auditingForm = row
-      getYwCondition(row.id).then(response => {
+      getYwCondition(row.workOrderNo).then(response => {
         this.ywConditions = response.data
         this.auditingOpen = true
       })
@@ -564,16 +679,14 @@
     // 杩囩▼鍥炬煡鐪�
     handleFlow(row) {
       this.flowForm = row
-      getYwAuditingList(row.id).then(response => {
+      process(row.workOrderNo).then(response => {
         if (response.data) {
-          this.ywAuditingList = response.data
+          this.ywAuditingList = response.data.auditingList
+          this.ywHandleList = response.data.ywList
+          this.afterReportMsg = response.data.afterReportMsg
+          this.beforeReportMsg = response.data.beforeReportMsg
+          this.flowOpen = true
         }
-      })
-      getYwCondition(row.id).then(response => {
-        if (response.data) {
-          this.ywHandleList = response.data
-        }
-        this.flowOpen = true
       })
     },
     // 鎻愪氦瀹℃牳
@@ -653,22 +766,26 @@
     },
     /** 鏌ヨ杩愮淮宸ュ崟鍒楄〃 */
     getList() {
+      this.empty = false;
       this.loading = true
       this.queryParams.params = {}
       this.queryParams['start'] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[0] : null
       this.queryParams['end'] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[1] : null
-      if (this.queryParams['status'] == '') {
-        this.queryParams['status'] = 'DISTRIBUTED'
-      }
+
       listWorkOrder(this.queryParams).then(response => {
-        // response.data.forEach(item => {
-        //   if (item.errorType) {
-        //     item.errorTypeList = item.errorTypeList.split(",")
-        //   }
-        // })
+        response.data.forEach(item => {
+          if (item.imgList) {
+            item.imgList = item.imgList.map(img => {
+              return this.$img + img
+            })
+          }
+        })
         this.workOrderList = response.data
         this.total = response.total
         this.loading = false
+        if (this.total === 0) {
+          this.empty = true
+        }
       })
     },
     // 鍙栨秷鎸夐挳
@@ -815,6 +932,9 @@
 }
 .work-order-item {
   margin-bottom: 5px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 
 .time {
@@ -841,4 +961,7 @@
 .my-col {
   margin-bottom: 20px; box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; position: relative;
 }
+::v-deep el-step__description.is-finish {
+  color: gray;
+}
 </style>

--
Gitblit v1.8.0