From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 19 八月 2025 11:01:40 +0800
Subject: [PATCH] 优化

---
 admin/src/components/business/OperaWorkorderDetailDcaWindow.vue |  172 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 100 insertions(+), 72 deletions(-)

diff --git a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
index da58bc1..5aeee8c 100644
--- a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
+++ b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
@@ -8,19 +8,18 @@
     <div class="modal_wrap">
       <div class="modal_content">
         <div class="header">
-          <img v-if="info.status == '3'" class="head_bg"
-               src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
-          <img v-else-if="info.status == '4'" class="head_bg"
+          <!--          <img v-if="info.status == '0'" class="head_bg"
+                  src="@/assets/task/bg_shenhe_fail@2x.png" alt="">-->
+          <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg"
                src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
           <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
           <div class="left">
             <div class="h1">{{ cateList[type] }}</div>
             <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div>
           </div>
-          <div class="right"  :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5',  msg: info.status == '6' }">{{statusMap[info.status] }}</div>
+          <div class="right"     :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5',  msg: info.status == '6' }">{{statusMap[info.status] }}</div>
         </div>
-        <div class="info">
-          <div class="title">宸ュ崟淇℃伅</div>
+        <div class="info">  <div class="title">宸ュ崟淇℃伅</div>
           <div class="list">
             <div class="item">
               <div class="label">鍛樺伐濮撳悕</div>
@@ -31,24 +30,28 @@
               <div class="value">{{ info.companyName }} </div>
             </div>
             <div class="item">
+              <div class="label">瑙傚療涓婚</div>
+              <div class="value">{{ info.typeName }}</div>
+            </div>
+            <div class="item">
               <div class="label">涓婃姤鏃堕棿</div>
               <div class="value">{{ info.submitDate }}</div>
             </div>
             <div class="item">
-              <div class="label">鍙戠敓鏃堕棿</div>
+              <div class="label">鍙戠幇鏃堕棿</div>
               <div class="value">{{ info.happenTime}}</div>
             </div>
             <div class="item">
-              <div class="label">椋庨櫓绫诲瀷</div>
-              <div class="value">{{ info.typeName }}</div>
-            </div>
-            <div class="item">
-              <div class="label">鍙戠敓鍦扮偣</div>
+              <div class="label">浣嶇疆</div>
               <div class="value">{{ info.locationName }}</div>
             </div>
             <div class="item">
-              <div class="label">椋庨櫓鎻忚堪</div>
-              <div class="value">{{ info.riskInfo }}</div>
+              <div class="label">閫氱煡浜�</div>
+              <div class="value">{{ info.memberNames }}</div>
+            </div>
+            <div class="item">
+              <div class="label">瑙傚療椤圭粺璁�</div>
+              <div class="value"  style="color: #1562e2" >绗﹀悎锛氥�恵{ info.dcaYesNum || 0 }}銆�    涓嶇鍚堬細銆� <span  style="color: red" >{{(info.dcaNoNum||0)}}</span> 銆�</div>
             </div>
             <div class="item" style="width: 100%">
               <div class="label">鍥剧墖</div>
@@ -74,87 +77,92 @@
             </div>
           </div>
         </div>
-      </div>
-      <div class="side" >
-        <div class="side_title">澶勭悊娴佺▼</div>
-        <div class="list" v-if=" info.logList != null && info.logList.length != 0
-        ">
-          <div class="item" v-for="(item, index) in info.logList" :key="item.id">
-            <div class="separate" v-if="index < info.logList.length - 1"></div>
-            <div class="info">
-              <img src="@/assets/icons/ic_dangqian.png" class="iconnew"  />
-              <div class="content">
-                <div class="line">
-                  <div class="name">{{ item.title }}</div>
-                </div>
-                <div class="line">
-                  <div class="company">
-                    鍛樺伐锛�<span>  {{ item.userName }} / {{item.companyName}}</span>
-                    <div style="display: block" >鏃堕棿锛�<span>{{item.createDate}}</span></div>
-                    <div class="dealinfo">
-                      <div style="display: block" v-if="item.param2" >澶勭悊浜猴細<span>{{item.param2}}</span></div>
-                      <div style="display: block" v-if="item.remark" >璇存槑锛�<span>{{item.remark}}</span></div>
-                      <div style="display: block;margin-top:10px"  v-if="item.multifileList !=null && item.multifileList.length">
-                        <div v-for="item in item.multifileList" :key="item.id" style="display: inline;margin-right: 5px">
-                          <video
-                              v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')"
-                              ref="videoRef"
-                              controls
-                              preload="auto"
-                              style="width: 50px;height: 50px;object-fit: contain;"
-                              :src="item.fileurlFull"
-                          />
-                          <el-image
-                              v-else-if="item.fileurlFull"
-                              style="width:50px; height: 50px;"
-                              :src="item.fileurlFull"
-                              :preview-src-list="[item.fileurlFull]">
-                          </el-image>
-                        </div>
-                        </div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
+        <div class="table_info">
+          <div class="title">涓嶇鍚堥」宸ュ崟鍒楄〃</div>
+          <el-table :data="info.dcaChildList" border fit>
+            <el-table-column prop="index" label="搴忓彿" width="55" fixed="left">
+              <template slot-scope="scope">{{ scope.$index+1}}</template>
+            </el-table-column>
+            <el-table-column label="宸ュ崟鍙�" prop="code" min-width="120">
+              <template slot-scope="{row}">
+                <span style="color: #2E68EC;cursor: pointer" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="60"> </el-table-column>
+            <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="60"> </el-table-column>
+            <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="100"> </el-table-column>
+            <el-table-column label="鐘舵��" prop="status" min-width="80">
+              <template slot-scope="{row}">
+<!--                <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>-->
+                <span :class="'statusInfo'+row.status" v-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span>
+                <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="statusInfo" label="鐘舵�佹弿杩�" min-width="100px">
+              <template slot-scope="{row}">
+                <span :class="'statusInfo'+row.status" >{{ row.statusName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="涓嶇鍚堝師鍥�" prop="eventInfo" min-width="180" />
+            <el-table-column label="鎿嶄綔" prop="status" min-width="80">
+              <template slot-scope="{row}">
+                <el-button type="text" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button>
+                <!--<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:workorder:delete']">鍒犻櫎</el-button>-->
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div class="table_info">
+          <div class="title">绗﹀悎椤瑰垪琛�</div>
+          <el-table :data="dataList2" border fit>
+            <el-table-column prop="index" label="搴忓彿" width="55" fixed="left">
+              <template slot-scope="scope">{{ scope.$index+1}}</template>
+            </el-table-column>
+            <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="140"> </el-table-column>
+            <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="150"> </el-table-column>
+            <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="400"> </el-table-column>
+          </el-table>
         </div>
       </div>
+
     </div>
     <!--  -->
     <template v-slot:footer>
       <el-button @click="close">杩斿洖</el-button>
     </template>
+    <OperaWorkorderDetailDcaInfoWindow ref="OperaWorkorderDetailDcaInfoWindow" />
   </GlobalWindow>
 </template>
 
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import OperaWorkorderDetailDcaInfoWindow from '@/components/business/OperaWorkorderDetailDcaInfoWindow'
 import { getById } from '@/api/business/workorder'
 export default {
   name: 'OperaWorkorderDetailDbhWindow',
   extends: BaseOpera,
-  components: { GlobalWindow },
+  components: { GlobalWindow ,OperaWorkorderDetailDcaInfoWindow},
   data () {
     return {
       id: '',
       type: null,
       title: '宸ュ崟璇︽儏',
       info: {},
+      dataList2: [],
       statusMap: {
-        0: '寰呭垎閰峎TS',
-        1: '寰呭垎閰嶄换鍔�',
-        2: '寰呭鐞�',
-        3: '宸茶В鍐�',
-        4: '宸茶В鍐�',
-        5: '宸茶В鍐�'
+        0: '澶勭悊涓�',
+        1: '澶勭悊涓�',
+        2: '澶勭悊涓�',
+        3: '宸插鐞�',
+        4: '宸插鐞�',
+        5: '宸插鐞�'
       },
       cateList: {
         0: 'SHE浜嬩欢宸ュ崟',
-        1: '璺岀粖婊戜簨浠跺伐鍗�',
-        2: 'DCA浜嬩欢鎻愪氦璁板綍',
-        3: 'DCA浜嬩欢宸ュ崟'
+        1: 'DCA浜嬩欢鎻愪氦璁板綍',
+        2: 'DCA浜嬩欢宸ュ崟',
+        3: '璺岀粖婊戜簨浠跺伐鍗�'
       }
     }
   },
@@ -172,6 +180,7 @@
     getDetail () {
       getById(this.info.id).then(res => {
         this.info = res
+        this.getDataListByRemak()
         if (this.info.logList && this.info.logList.length > 0) {
           this.info.logList.forEach(item => {
             if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
@@ -184,6 +193,25 @@
           })
         }
       })
+    },
+    getDataListByRemak () {
+      this.dataList2 =[]
+      if(this.info.remark){
+        var obj = JSON.parse(this.info.remark)
+        console.log(obj)
+        if(obj && obj.childMapList){
+          obj.childMapList.forEach(item =>{
+            if(item && item.problemMapList){
+              item.problemMapList.forEach(item1 =>{
+                if(item1 && item1.status === 1){
+                  this.dataList2.push({'typeName':this.info.typeName, 'categoryName':item.childTitle,'problemTitle':item1.title})
+                }
+              })
+            }
+          })
+        }
+
+      }
     },
     reject () { },
     handleAvatarSuccess () { },
@@ -227,7 +255,7 @@
 
 .modal_wrap {
   display: flex;
-  height: 100%;
+  height: auto;
 
   .modal_content {
     flex: 1;
@@ -248,15 +276,14 @@
       .list {
         display: flex;
         flex-wrap: wrap;
-
         .item {
           display: flex;
-          width: 40%;
+          width: 50%;
           font-size: 14px;
           margin-bottom: 20px;
 
           &:nth-of-type(2n) {
-            width: 60%;
+            width: 50%;
           }
 
           .label {
@@ -265,6 +292,7 @@
           }
 
           .value {
+            width: calc(100% - 100px);
             color: #111111;
           }
         }

--
Gitblit v1.9.3