From 9c491f119144c9bc536c1cf39307ad82be96b85b Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 18 十月 2024 18:13:40 +0800
Subject: [PATCH] ll

---
 admin/src/components/business/OperaCarUseBookWindow.vue |  242 +++++++++++++++++++++++++++--------------------
 1 files changed, 139 insertions(+), 103 deletions(-)

diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue
index 8321ae4..e1afa43 100644
--- a/admin/src/components/business/OperaCarUseBookWindow.vue
+++ b/admin/src/components/business/OperaCarUseBookWindow.vue
@@ -1,18 +1,14 @@
 <template>
-  <GlobalWindow
-      :title="title"
-      :visible.sync="visible"
-      @confirm="confirm"
-  >
+  <GlobalWindow :title="title" :visible.sync="visible" @confirm="confirm">
     <div class="modal_wrap">
       <div class="modal_content">
         <div class="header">
           <div class="left">
             <div class="h1">鍏姟杞︾敵璇�</div>
-            <div class="time">鎻愪氦鏃堕棿锛歿{model.createDate}}</div>
+            <div class="time">鎻愪氦鏃堕棿锛歿{ model.createDate }}</div>
           </div>
-          <span class="right"  v-if="model.status === 0">鐢宠涓�</span>
-          <span class="right"  v-if="model.status === 1">瀹℃壒涓�</span>
+          <span class="right" v-if="model.status === 0">鐢宠涓�</span>
+          <span class="right" v-if="model.status === 1">瀹℃壒涓�</span>
           <span class="right" style="background:#53b76f " v-if="model.status === 2">瀹℃壒閫氳繃</span>
           <span class="right" style="background:#dc362e " v-if="model.status === 3">瀹℃壒涓嶉�氳繃</span>
           <span class="right" style="background:#B2B2B2; " v-if="model.status === 4">宸叉挙閿�</span>
@@ -22,86 +18,98 @@
           <div class="list">
             <div class="item" style="width: 100%">
               <div class="label">鐢宠浜�</div>
-              <div class="value">{{model.memberName || ''}} {{model.memberPhone || ''}} ({{model.companyName || ''}})</div>
+              <div class="value">{{ model.memberName || '' }} {{ model.memberPhone || '' }} ({{ model.companyName || '' }})
+              </div>
             </div>
             <div class="item">
               <div class="label">鐢宠杞﹁締</div>
-              <div class="value">{{model.carCode || ''}}</div>
+              <div class="value">{{ model.carCode || '' }}</div>
             </div>
             <div class="item">
               <div class="label">鍙告満淇℃伅</div>
-              <div class="value" v-if="model.driverId !=null">{{model.driverName || ''}} {{model.driverPhone || ''}}</div>
-              <div class="value" v-if="model.driverId ==null">鏈寚娲�</div>
+              <div class="value" v-if="model.driverId != null">{{ model.driverName || '' }} {{ model.driverPhone || '' }}
+              </div>
+              <div class="value" v-if="model.driverId == null">鏈寚娲�</div>
             </div>
-            <div class="item"  >
-            <div class="label">鐢ㄨ溅浜嬬敱</div>
-            <div class="value">{{model.content}}</div>
-          </div>
+            <div class="item">
+              <div class="label">鐢ㄨ溅浜嬬敱</div>
+              <div class="value">{{ model.content }}</div>
+            </div>
             <div class="item">
               <div class="label">涔樿溅浜哄憳</div>
-              <div class="value">{{model.memberNames || ''}}</div>
+              <div class="value">{{ model.memberNames || '' }}</div>
             </div>
             <div class="item">
               <div class="label">鐩殑鍦扮被鍒�</div>
               <div class="value status-green" v-if="model.type == 0">銆愬競鍐呯敤杞︺��</div>
-              <div class="value status-red"   v-if="model.type == 1">銆愬競澶栫敤杞︺��</div>
+              <div class="value status-red" v-if="model.type == 1">銆愬競澶栫敤杞︺��</div>
             </div>
             <div class="item">
               <div class="label">鐩殑鍦�</div>
-              <div class="value">{{model.addr || ''}}</div>
+              <div class="value">{{ model.addr || '' }}</div>
             </div>
             <div class="item">
               <div class="label">棰勮鍑哄彂鏃堕棿</div>
-              <div class="value">{{model.planUseDate || ''}}</div>
+              <div class="value">{{ model.planUseDate || '' }}</div>
             </div>
             <div class="item">
               <div class="label">鐢ㄨ溅鏃舵</div>
-              <div class="value">濮�:{{model.startTime || ''}}<br>姝�:{{model.endTime || ''}}</div>
+              <div class="value">濮�:{{ model.startTime || '' }}<br>姝�:{{ model.endTime || '' }}</div>
             </div>
           </div>
         </div>
       </div>
       <div class="side">
         <div class="side_title">瀹℃壒娴佺▼</div>
-        <div class="list"  v-if="model.approveDateVO !=null && model.approveDateVO.approveList !=null">
-          <div class="item" v-for="(item,index) in model.approveDateVO.approveList" :key="item.id">
-            <div class="separate" v-if=" (index < model.approveDateVO.approveList.length-1)"></div>
+        <div class="list" v-if="
+          model.approveDateVO != null && model.approveDateVO.approveList != null
+        ">
+          <div class="item" v-for="(item, index) in model.approveDateVO.approveList" :key="item.id">
+            <div class="separate" v-if="index < model.approveDateVO.approveList.length - 1"></div>
             <div class="info">
-              <img src="@/assets/icons/ic_tongguo.png"   class="iconnew" v-if="( item.status ==2)"/>
-              <img src="@/assets/icons/ic_dangqian.png"   class="iconnew"  v-if="( item.status==1)"/>
-              <img src="@/assets/icons/ic_jujue.png"  class="iconnew"  v-if="( item.status==3)"/>
-              <img src="@/assets/icons/ic_grey.png"  class="iconnew" v-if=" (item.status==null || item.status==0 )"/>
-              <div style="display: inline" v-if="item.approveType !=1">
-                <img v-if="item.faceImg!=null && item.faceImg !=''" :src="item.faceImg" class="avatar" alt="" />
-                <img v-if="item.faceImg ==null ||item.faceImg ==''"  src="@/assets/avatar/man.png" class="avatar" alt="" />
+              <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
+              <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
+              <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
+              <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
+              <div style="display: inline" v-if="item.approveType != 1">
+                <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
+                <img v-if="item.faceImg == null || item.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
+                  alt="" />
               </div>
-              <div style="display: inline" v-if="item.approveType  == 1">
-                <img  v-if="item.type !=1"  src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
-                <img v-if="item.type == 1"  src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
+              <div style="display: inline" v-if="item.approveType == 1">
+                <img v-if="item.type != 1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
+                <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
               </div>
               <div class="content">
                 <div class="line">
-                  <div class="name">{{ item.title}}</div>
+                  <div class="name">{{ item.title }}</div>
                   <div class="time">{{ item.checkDate }}</div>
                 </div>
                 <div class="line">
                   <div class="company">
                     {{ item.memberName }}
-                    <div style="display: inline" v-if="item.statusInfo!=null && item.statusInfo!=''">
-                       锛�<span class="status-green">{{item.statusInfo ||''}}</span>锛�
+                    <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
+                      锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
+                        item.statusInfo || ""
+                      }}</span>锛�
                     </div>
                   </div>
                 </div>
               </div>
             </div>
-            <div v-if="item.approveType != 1 && item.checkInfo !=null && item.checkInfo !=''" class="remark">
-              {{ item.checkInfo || '' }}
+            <div v-if="
+              item.approveType != 1 &&
+              item.checkInfo != null &&
+              item.checkInfo != ''
+            " class="remark">
+              {{ item.checkInfo || "" }}
             </div>
-            <div v-if="item.approveType == 1 "  class="childList">
+            <div v-if="item.approveType == 0 || item.type == 1 || 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" alt="" />
-                <span > {{item1.memberName}}</span>
+                <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"
+                  alt="" />
+                <span> {{ item1.memberName }}</span>
               </div>
             </div>
           </div>
@@ -109,38 +117,27 @@
       </div>
     </div>
     <!--  -->
-    <template   v-slot:footer>
-      <el-button @click="agreeOpen"  type="primary"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  class="status-red">鍚屾剰</el-button>
-      <el-button @click="jectOpen"  type="danger"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  >鎷掔粷</el-button>
-      <el-button @click="visible=false">杩斿洖</el-button>
+    <template v-slot:footer>
+      <el-button @click="agreeOpen" type="primary"
+        v-if="model.approveDateVO != null && model.approveDateVO.canBeApproved != null && model.approveDateVO.canBeApproved == 1"
+        class="status-red">鍚屾剰</el-button>
+      <el-button @click="jectOpen" type="danger"
+        v-if="model.approveDateVO != null && model.approveDateVO.canBeApproved != null && model.approveDateVO.canBeApproved == 1">鎷掔粷</el-button>
+      <el-button @click="visible = false">杩斿洖</el-button>
     </template>
-    <el-dialog
-        append-to-body
-        title="鍚屾剰鐢宠"
-        style="text-align: center"
-        class="dialogCl"
-        :visible.sync="isShowProblem"
-        width="480px"
-    >
-      <el-form :model="dealForm" :rules="rules" ref="dealForm" >
+    <el-dialog append-to-body title="鍚屾剰鐢宠" style="text-align: center" class="dialogCl" :visible.sync="isShowProblem"
+      width="480px">
+      <el-form :model="dealForm" :rules="rules" ref="dealForm">
         <!-- <el-form-item label="娲捐溅鍙告満" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.driverParam === 1"> -->
-        <el-form-item label="娲捐溅鍙告満" prop="driverId" v-if="model.approveDateVO!=null && model.approveDateVO.driverParam == 1">
-          <el-select v-model="dealForm.driverId" style="width: 300px"  filterable clearable placeholder="璇烽�夋嫨娲鹃仯鍙告満">
-            <el-option
-                v-for="item in memberList"
-                :key="item.id"
-                :label="item.name+'-'+item.phone"
-                :value="item.id">
+        <el-form-item label="娲捐溅鍙告満" prop="driverId"
+          v-if="model.approveDateVO != null && model.approveDateVO.driverParam == 1">
+          <el-select v-model="dealForm.driverId" style="width: 300px" filterable clearable placeholder="璇烽�夋嫨娲鹃仯鍙告満">
+            <el-option v-for="item in memberList" :key="item.id" :label="item.name + '-' + item.phone" :value="item.id">
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="鍚屾剰璇存槑">
-          <el-input
-              type="textarea"
-              placeholder="璇峰~鍐欒鏄�"
-              :rows="4"
-              v-model="dealForm.checkInfo"
-          />
+          <el-input type="textarea" placeholder="璇峰~鍐欒鏄�" :rows="4" v-model="dealForm.checkInfo" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -148,26 +145,15 @@
         <el-button type="primary" :loading="dealing" @click="dealDo">纭畾</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-        append-to-body
-        title="鎷掔粷鐢宠"
-        style="text-align: center"
-        class="dialogCl"
-        :visible.sync="isBackProblem"
-        width="600px"
-    >
-      <el-form :model="backForm"  ref="backForm" label-width="100px">
+    <el-dialog append-to-body title="鎷掔粷鐢宠" style="text-align: center" class="dialogCl" :visible.sync="isBackProblem"
+      width="600px">
+      <el-form :model="backForm" ref="backForm" label-width="100px">
         <el-form-item label="鎷掔粷璇存槑">
-          <el-input
-              type="textarea"
-              placeholder="璇峰~鍐欒鏄�"
-              :rows="4"
-              v-model="backForm.checkInfo"
-          />
+          <el-input type="textarea" placeholder="璇峰~鍐欒鏄�" :rows="4" v-model="backForm.checkInfo" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="isBackProblem= false">鍙栨秷</el-button>
+        <el-button @click="isBackProblem = false">鍙栨秷</el-button>
         <el-button type="primary" :loading="dealing" @click="backDo">纭畾</el-button>
       </span>
     </el-dialog>
@@ -184,12 +170,12 @@
   name: 'OperaCarUseBookWindow',
   components: { GlobalWindow },
   extends: BaseOpera,
-  data () {
+  data() {
     return {
       title: '鍏姟杞︾敵璇�',
       visible: false,
       dataId: null,
-      model: { },
+      model: {},
       dealing: false,
       isShowProblem: false,
       isBackProblem: false,
@@ -209,14 +195,14 @@
   computed: {
     ...mapState(['userInfo'])
   },
-  created () {
+  created() {
     this.config({
       api: '/business/carUseBook',
       'field.id': 'id'
     })
   },
   methods: {
-    dealDo () {
+    dealDo() {
       this.$refs.dealForm.validate((valid) => {
         if (!valid) {
           return
@@ -242,18 +228,18 @@
           })
       })
     },
-    agreeOpen () {
+    agreeOpen() {
       this.isShowProblem = true
       this.$set(this.dealForm, 'checkInfo', '')
       this.loadMemberList()
     },
-    jectOpen () {
+    jectOpen() {
       this.isBackProblem = true
       this.backForm = {
         checkInfo: null
       }
     },
-    backDo () {
+    backDo() {
       this.$refs.backForm.validate((valid) => {
         if (!valid) {
           return
@@ -275,7 +261,7 @@
           })
       })
     },
-    open (title, target) {
+    open(title, target) {
       this.title = title
       this.visible = true
       this.model = {}
@@ -292,14 +278,26 @@
         this.getDetail()
       })
     },
-    getDetail () {
+    getDetail() {
       this.api.detail(this.dataId)
         .then(res => {
           this.model = res
+          if (this.model.approveDateVO && this.model.approveDateVO.approveList.length > 0) {
+            this.model.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.status = item.approveList[0].status
+                item.approveList = []
+              }
+            })
+          }
           this.dealForm.driveId = res.driveId
         })
     },
-    loadMemberList () {
+    loadMemberList() {
       driveList({}).then(res => {
         this.memberList = res
       })
@@ -309,6 +307,8 @@
 </script>
 
 <style lang="scss" scoped>
+@import "@/assets/style/variables.scss";
+
 .upload_box {
   width: 84px;
   height: 84px;
@@ -320,14 +320,17 @@
   align-items: center;
   color: #999999;
   border: 1px solid #e4e4e4;
+
   .icon {
     font-size: 24px;
   }
+
   .text {
     font-size: 12px;
   }
 }
-.side_title{
+
+.side_title {
   font-weight: 600;
   font-size: 18px;
   color: #111111;
@@ -335,9 +338,11 @@
   margin-left: 20px;
   margin-top: 20px;
 }
+
 .modal_wrap {
   display: flex;
   height: 100%;
+
   .modal_content {
     flex: 1;
     padding: 0px 30px;
@@ -352,6 +357,7 @@
       margin-bottom: 20px;
       margin-top: 30px;
     }
+
     .info {
       .list {
         display: flex;
@@ -361,6 +367,7 @@
           display: flex;
           width: 40%;
           margin-bottom: 20px;
+
           &:nth-of-type(2n) {
             width: 60%;
           }
@@ -410,20 +417,24 @@
         border-radius: 16px 0px 16px 0px;
       }
     }
+
     .table_info {
       .name_wrap {
         display: flex;
         align-items: center;
+
         .avatar {
           width: 40px;
           height: 40px;
           border-radius: 50%;
           margin-right: 12px;
         }
+
         .content {
           .line {
             display: flex;
           }
+
           .tag {
             color: #b2cbf9;
             border: 1px solid #b2cbf9;
@@ -441,17 +452,20 @@
     width: 420px;
     background: #ffffff;
     border-left: 20px solid #f7f7f7;
+
     .list {
       .item {
         padding: 8px 0;
         position: relative;
+
         .separate {
           position: absolute;
           border-left: 2px dashed #cccccc;
           left: 31px;
-          height: calc(100% - 36px);
+          height: calc(100% - 30px);
           top: 49px;
         }
+
         .avatar {
           width: 40px;
           height: 40px;
@@ -459,75 +473,98 @@
           margin: 0 12px 0 16px;
           //border: 1px solid;
         }
-        .childList{
+
+        .childList {
           display: flex;
           flex-wrap: wrap;
           margin-left: 100px;
         }
+
         .company {
           font-size: 13px;
           color: #888888;
+
           .status {
-            color: #00ba67;
+            color: $primaryColor;
           }
         }
-        .m_content{
+
+        .m_content {
           display: flex;
           flex-direction: column;
           align-items: center;
           justify-content: center;
           margin-bottom: 4px;
         }
+
         .info {
           display: flex;
           align-items: center;
           margin-left: 20px;
+
           .icon {
             position: relative;
             z-index: 11;
             color: #53b76f;
             font-size: 24px;
           }
+
           .icon1 {
             position: relative;
             z-index: 11;
             color: deepskyblue;
             font-size: 24px;
           }
+
           .icon2 {
             position: relative;
             z-index: 11;
             color: #dc362e;
             font-size: 24px;
           }
-          .iconnew{
+
+          .iconnew {
             width: 24px;
             height: 24px;
           }
+
           .icon3 {
             position: relative;
             z-index: 11;
-            color:gray;
+            color: gray;
             font-size: 24px;
           }
+
           .content {
             flex: 1;
+
             .line {
               display: flex;
               justify-content: space-between;
               align-content: center;
               margin-bottom: 6px;
+
+              .status {
+                color: #888888;
+              }
+
+              .padding {
+                color: $primaryColor;
+              }
+
               .name {
                 font-weight: 600;
                 font-size: 16px;
                 color: #111111;
               }
+
               .time {
                 color: #888888;
               }
             }
           }
         }
+
         .remark {
           background: #f7f7f7;
           border-radius: 4px;
@@ -535,7 +572,6 @@
           color: #666666;
           margin-left: 100px;
         }
-
       }
     }
   }

--
Gitblit v1.9.3