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/OperaWorkorderDetailSheWindow.vue |  154 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 102 insertions(+), 52 deletions(-)

diff --git a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
index 39d43a8..8a21f88 100644
--- a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
+++ b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
@@ -1,55 +1,107 @@
 <template>
   <GlobalWindow
       :title="title"
-      width="80%"
+      width="85%"
       :visible.sync="visible"
       :confirm-working="isWorking"
       @confirm="confirm">
     <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 == '4', msg: info.status == '3' }">{{   statusMap[info.status] }}</div>
+          <div class="right"  :style="(info.status ==0 ||info.status ==1 || info.status ==2)?'min-width: 90px':''"   :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="title">宸ュ崟淇℃伅</div>
           <div class="list">
             <div class="item">
-              <div class="label">琚浜�</div>
-              <div class="value">{{ info.visitUserName }}</div>
+              <div class="label">鍛樺伐濮撳悕</div>
+              <div class="value">{{ info.memberName }} - {{ info.memberPhone || '[鏃犳墜鏈哄彿]' }}</div>
             </div>
             <div class="item">
-              <div class="label">鏉ヨ鏃堕棿</div>
-              <div class="value">{{ info.visitTime }}</div>
+              <div class="label">鎵�灞為儴闂�</div>
+              <div class="value">{{ info.companyName }} </div>
             </div>
             <div class="item">
-              <div class="label">鏉ヨ浜嬬敱</div>
-              <div class="value">{{ info.visitReason }}</div>
+              <div class="label">涓婃姤鏃堕棿</div>
+              <div class="value">{{ info.submitDate +' '}}</div>
             </div>
             <div class="item">
-              <div class="label">闅忚杞﹁締</div>
-              <div class="value">{{ info.carNos }}</div>
+              <div class="label">娑夊強浜哄憳</div>
+              <div class="value" v-if="info.memberType == 2">渚涘簲鍟�-{{info.memberNames}}</div>
+              <div class="value" v-else-if="info.memberType == 1">鍚屼簨-{{info.memberNames}}</div>
+              <div class="value" v-else>鏈汉</div>
             </div>
             <div class="item">
-              <div class="label">娑夊強鏂藉伐浣滀笟</div>
-              <div class="value">{{ info.type == "0" ? "鍚�" : "鏄�" }}</div>
+              <div class="label">鍙戠幇鏃堕棿</div>
+              <div class="value">{{ info.happenTime }}</div>
             </div>
             <div class="item">
-              <div class="label">鏂藉伐鍐呭</div>
-              <div class="value">{{ info.constructionReason }}</div>
+              <div class="label">澶栭儴灏卞尰</div>
+              <div class="value">{{ info.outJiuyi == "0" ? "鍚�" : "鏄�" }}</div>
+            </div>
+            <div class="item" v-if="info.outJiuyi == '0'">
+              <div class="label">鍖诲姟瀹�</div>
+              <div class="value">{{ info.isYiwushi == "0" ? "鍚�" : "鏄�" }}</div>
+            </div>
+            <div class="item" v-if="info.isYiwushi == '0'">
+              <div class="label">鏄惁鍙椾激</div>
+              <div class="value">{{ info.isHurted == "0" ? "鍚�" : "鏄�" }}</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.workRelated == "0" ? "鍚�" : "鏄�" }}</div>
+            </div>
+            <div class="item">
+              <div class="label">鍙戠敓鍦扮偣</div>
+              <div class="value">{{ info.locationName }}</div>
+            </div>
+            <div class="item">
+              <div class="label">鍏蜂綋浣嶇疆</div>
+              <div class="value">{{ info.remark }}</div>
+            </div>
+            <div class="item">
+              <div class="label">浜嬩欢璇存槑</div>
+              <div class="value">{{ info.eventInfo || '-'}}</div>
+            </div>
+            <div class="item" style="width: 100%">
+          <div class="label">鍥剧墖</div>
+          <div class="value" v-if="info.multifileList ==null || !info.multifileList.length">鏃�</div>
+          <div class="value" v-if="info.multifileList !=null && info.multifileList.length">
+            <div v-for="item in info.multifileList" :key="item.id" style="display: inline;margin-right: 20px">
+              <video
+                  v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')"
+                  ref="videoRef"
+                  controls
+                  preload="auto"
+                  style="width: 80px;height: 80px;object-fit: contain;"
+                  :src="item.fileurlFull"
+              />
+              <el-image
+                  v-else-if="item.fileurlFull"
+                  style="width:80px; height: 80px"
+                  :src="item.fileurlFull"
+                  :preview-src-list="[item.fileurlFull]">
+              </el-image>
             </div>
           </div>
         </div>
+          </div>
+        </div>
       </div>
-      <div class="side">
+      <div class="side" v-if="false">
         <div class="side_title">鎿嶄綔鍘嗗彶</div>
         <div class="list" v-if=" info.logList != null && info.logList.length != 0
         ">
@@ -96,7 +148,7 @@
             <div v-if="item.approveType == 1" class="childList">
               <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                 <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
-                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
+                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="../../assets/avatar/man.png" class="avatar"
                      alt="" />
                 <span> {{ item1.memberName }}</span>
               </div>
@@ -115,6 +167,7 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import {getById } from '@/api/business/workorder'
 export default {
   name: 'OperaWorkorderWindow',
   extends: BaseOpera,
@@ -126,17 +179,18 @@
       title: '宸ュ崟璇︽儏',
       info: {},
       statusMap: {
-        0: '寰呭鏍�',
+        0: '澶勭悊涓�',
         1: '澶勭悊涓�',
-        2: '宸插悓鎰�',
-        3: '宸叉嫆缁�',
-        4: '宸插彇娑�',
+        2: '澶勭悊涓�',
+        3: '宸插鐞�',
+        4: '宸插鐞�',
+        5: '宸插鐞�'
       },
       cateList: {
         0: 'SHE浜嬩欢宸ュ崟',
-        1: '璺岀粖婊戜簨浠跺伐鍗�',
-        2: 'DCA浜嬩欢鎻愪氦璁板綍',
-        3: 'DCA浜嬩欢宸ュ崟'
+        1: 'DCA浜嬩欢鎻愪氦璁板綍',
+        2: 'DCA浜嬩欢宸ュ崟',
+        3: '璺岀粖婊戜簨浠跺伐鍗�'
       }
     }
   },
@@ -145,34 +199,27 @@
       this.title = title
       this.visible = true
       this.info = target
+      this.getDetail()
       this.type = this.info.type
     },
     close () {
       this.visible = false
     },
     getDetail () {
-      const { id, type } = this
-      switch (type) {
-      case 0:
-        getVisitedDetail({ id }).then(res => {
-          this.info = res
-          if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
-            this.info.approveDateVO.approveList.forEach(item => {
-              if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
-                item.title = item.approveList[0].title
-                item.faceImg = item.approveList[0].faceImg
-                item.memberName = item.approveList[0].memberName
-                item.statusInfo = item.approveList[0].statusInfo
-                item.approveList = []
-              }
-            })
-          }
-        })
-        break
-
-      default:
-        break
-      }
+      getById(this.info.id).then(res => {
+        this.info = res
+        if (this.info.logList && this.info.logList.length > 0) {
+          this.info.logList.forEach(item => {
+            if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
+              item.title = item.approveList[0].title
+              item.faceImg = item.approveList[0].faceImg
+              item.memberName = item.approveList[0].memberName
+              item.statusInfo = item.approveList[0].statusInfo
+              item.approveList = []
+            }
+          })
+        }
+      })
     },
     reject () { },
     handleAvatarSuccess () { },
@@ -216,7 +263,7 @@
 
 .modal_wrap {
   display: flex;
-  height: 100%;
+  height: auto;
 
   .modal_content {
     flex: 1;
@@ -240,11 +287,12 @@
 
         .item {
           display: flex;
-          width: 40%;
+          width: 50%;
+          font-size: 14px;
           margin-bottom: 20px;
 
           &:nth-of-type(2n) {
-            width: 60%;
+            width: 50%;
           }
 
           .label {
@@ -253,6 +301,7 @@
           }
 
           .value {
+             width: calc(100% - 100px);
             color: #111111;
           }
         }
@@ -263,6 +312,7 @@
       display: flex;
       justify-content: space-between;
       align-items: center;
+      vertical-align: center;
       padding: 20px 30px;
       margin: 0 -30px;
       border-radius: 8px 8px 0 0;

--
Gitblit v1.9.3