From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化

---
 admin/src/components/business/OperaCarUseBookWindow.vue |  235 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 134 insertions(+), 101 deletions(-)

diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue
index 6e1c896..8321ae4 100644
--- a/admin/src/components/business/OperaCarUseBookWindow.vue
+++ b/admin/src/components/business/OperaCarUseBookWindow.vue
@@ -3,7 +3,6 @@
       :title="title"
       :visible.sync="visible"
       @confirm="confirm"
-      @close="reject"
   >
     <div class="modal_wrap">
       <div class="modal_content">
@@ -13,15 +12,15 @@
             <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 === 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:#dc362e " v-if="model.status === 4">宸插彇娑�</span>
+          <span class="right" style="background:#B2B2B2; " v-if="model.status === 4">宸叉挙閿�</span>
         </div>
         <div class="info">
           <div class="title">鍏姟杞︾敵璇蜂俊鎭�</div>
           <div class="list">
-            <div class="item">
+            <div class="item" style="width: 100%">
               <div class="label">鐢宠浜�</div>
               <div class="value">{{model.memberName || ''}} {{model.memberPhone || ''}} ({{model.companyName || ''}})</div>
             </div>
@@ -44,8 +43,8 @@
             </div>
             <div class="item">
               <div class="label">鐩殑鍦扮被鍒�</div>
-              <div class="value status-green" v-if="model.type === 0">銆愬競鍐呯敤杞︺��</div>
-              <spdivan class="value status-red"   v-if="model.type === 1">銆愬競鍐呯敤杞︺��</spdivan>
+              <div class="value status-green" v-if="model.type == 0">銆愬競鍐呯敤杞︺��</div>
+              <div class="value status-red"   v-if="model.type == 1">銆愬競澶栫敤杞︺��</div>
             </div>
             <div class="item">
               <div class="label">鐩殑鍦�</div>
@@ -57,40 +56,52 @@
             </div>
             <div class="item">
               <div class="label">鐢ㄨ溅鏃舵</div>
-              <div class="value">{{model.startTime || ''}}-{{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">
-          <div class="item" v-for="(item,index) in logList" :key="item.id">
-            <div class="separate" v-if="index < logList.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">
-              <i class="el-icon-success icon" v-if="(model.status ==1) || index < logList.length-1"></i>
-              <i class="el-icon-question icon1" v-if="(model.status==0)  && index == logList.length-1"></i>
-              <i class="el-icon-error icon2" v-if="(model.status==2)  && index == logList.length-1"></i>
-              <img v-if="item.avatar!=null && item.avatar !=''" :src="item.avatar" class="avatar" alt="" />
-              <img v-if="item.avatar ==null ||item.avatar ==''"  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>
               <div class="content">
                 <div class="line">
                   <div class="name">{{ item.title}}</div>
-                  <div class="time">{{ item.createDate }}</div>
+                  <div class="time">{{ item.checkDate }}</div>
                 </div>
                 <div class="line">
                   <div class="company">
-                    {{ item.createUserName }} {{ item.companyName }}
-                    <div style="display: inline">
-                      锛�<span class="status-green">{{stausInfo}}</span>
+                    {{ item.memberName }}
+                    <div style="display: inline" v-if="item.statusInfo!=null && item.statusInfo!=''">
+                       锛�<span class="status-green">{{item.statusInfo ||''}}</span>锛�
                     </div>
                   </div>
                 </div>
-                <div class="line">
-                  <div class="remark">
-                    {{ item.checkInfo ||'' }}
-                  </div>
-                </div>
+              </div>
+            </div>
+            <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 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>
               </div>
             </div>
           </div>
@@ -99,20 +110,22 @@
     </div>
     <!--  -->
     <template   v-slot:footer>
-      <el-button @click="isShowProblem = true"  type="primary"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  class="status-red">鍚屾剰</el-button>
-      <el-button @click="isBackProblem=true"  type="danger"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  >鎷掔粷</el-button>
+      <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="杞氦"
+        title="鍚屾剰鐢宠"
+        style="text-align: center"
         class="dialogCl"
-        :visible.sync="isShowTransfer"
+        :visible.sync="isShowProblem"
         width="480px"
     >
-      <el-form :model="dealForm" ref="dealForm" >
-        <el-form-item label="娲捐溅鍙告満" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.drvierParam ===1">
-          <el-select v-model="transForm.driverId" style="width: 300px"  filterable clearable placeholder="璇烽�夋嫨娲鹃仯鍙告満">
+      <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"
@@ -126,18 +139,19 @@
               type="textarea"
               placeholder="璇峰~鍐欒鏄�"
               :rows="4"
-              v-model="backForm.checkInfo"
+              v-model="dealForm.checkInfo"
           />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="isShowProblem = false">鍙栨秷</el-button>
-        <el-button type="primary" :loading="transfering" @click="dealDo">纭畾</el-button>
+        <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"
@@ -154,7 +168,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="isBackProblem= false">鍙栨秷</el-button>
-        <el-button type="primary" :loading="transfering" @click="backDo">纭畾</el-button>
+        <el-button type="primary" :loading="dealing" @click="backDo">纭畾</el-button>
       </span>
     </el-dialog>
   </GlobalWindow>
@@ -164,9 +178,10 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { driveList } from '@/api/business/member'
+import { approveDo } from '@/api/business/approve'
 import { mapState } from 'vuex'
 export default {
-  name:'OperaCarUseBookWindow.vue',
+  name: 'OperaCarUseBookWindow',
   components: { GlobalWindow },
   extends: BaseOpera,
   data () {
@@ -179,14 +194,15 @@
       isShowProblem: false,
       isBackProblem: false,
       memberList: [],
-      logList:[],
-      copyList:[],
       dealForm: {
         driveId: null,
         checkInfo: null
       },
       backForm: {
         checkInfo: null
+      },
+      rules: {
+        driverId: [{ required: true, message: '璇烽�夋嫨娲鹃仯鍙告満', trigger: 'blur' }]
       }
     }
   },
@@ -195,7 +211,7 @@
   },
   created () {
     this.config({
-      api: '/business/carUserBook',
+      api: '/business/carUseBook',
       'field.id': 'id'
     })
   },
@@ -205,13 +221,14 @@
         if (!valid) {
           return
         }
-        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ゆ彁浜よ闅愭偅澶勭悊鎯呭喌鍚楋紵')
+        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ゅ悓鎰忚鐢宠鍚楋紵')
           .then(() => {
             this.dealing = true
-            this.api.dealHiddenDanger({
-              id: this.dataId,
-              status: 1,
-              driverId: this.dealForm.driveId,
+            approveDo({
+              objId: this.dataId,
+              objType: this.model.type == 1 ? 4 : 3,
+              status: 2,
+              driverId: this.dealForm.driverId,
               checkInfo: this.dealForm.checkInfo
             })
               .then(res => {
@@ -225,29 +242,36 @@
           })
       })
     },
+    agreeOpen () {
+      this.isShowProblem = true
+      this.$set(this.dealForm, 'checkInfo', '')
+      this.loadMemberList()
+    },
+    jectOpen () {
+      this.isBackProblem = true
+      this.backForm = {
+        checkInfo: null
+      }
+    },
     backDo () {
       this.$refs.backForm.validate((valid) => {
         if (!valid) {
           return
         }
-        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ら��鍥炶闅愭偅澶勭悊鎯呭喌鍚楋紵')
-          .then(() => {
-            this.dealing = true
-            this.api.dealHiddenDanger({
-              id: this.dataId,
-              status: 2,
-              checkInfo: this.backForm.checkInfo
-            })
-              .then(res => {
-                this.$tip.apiSuccess('閫�鍥炴垚鍔�')
-                this.getDetail()
-                this.isBackProblem = false
-              })
-              .catch(e => {
-              })
-              .finally(() => {
-                this.dealing = false
-              })
+        approveDo({
+          objId: this.dataId,
+          objType: this.model.type == 1 ? 4 : 3,
+          status: 3,
+          checkInfo: this.backForm.checkInfo
+        }).then(res => {
+          this.$tip.apiSuccess('閫�鍥炴垚鍔�')
+          this.getDetail()
+          this.isBackProblem = false
+        })
+          .catch(e => {
+          })
+          .finally(() => {
+            this.dealing = false
           })
       })
     },
@@ -258,8 +282,6 @@
       this.dataId = target.id
       this.$nextTick(() => {
         this.memberList = []
-        this.logList = []
-        this.copyList = []
         this.dealForm = {
           driveId: null,
           checkInfo: null
@@ -275,19 +297,7 @@
         .then(res => {
           this.model = res
           this.dealForm.driveId = res.driveId
-          if(res.approveDateVO){
-            if(res.approveDateVO.approveList){
-              this.logList = res.approveDateVO.approveList
-            }
-            if(res.approveDateVO.copyList){
-              this.copyList = res.approveDateVO.copyList
-            }
-          }
         })
-    },
-    handleTransfer () {
-      this.isShowTransfer = true
-      this.loadMemberList()
     },
     loadMemberList () {
       driveList({}).then(res => {
@@ -299,14 +309,6 @@
 </script>
 
 <style lang="scss" scoped>
-.side_title{
-  font-weight: 600;
-  font-size: 18px;
-  color: #111111;
-  margin-bottom: 20px;
-  margin-left: 20px;
-  margin-top: 20px;
-}
 .upload_box {
   width: 84px;
   height: 84px;
@@ -325,7 +327,14 @@
     font-size: 12px;
   }
 }
-
+.side_title{
+  font-weight: 600;
+  font-size: 18px;
+  color: #111111;
+  margin-bottom: 20px;
+  margin-left: 20px;
+  margin-top: 20px;
+}
 .modal_wrap {
   display: flex;
   height: 100%;
@@ -358,10 +367,11 @@
 
           .label {
             color: #888888;
-            width: 68px;
+            width: 100px;
           }
 
           .value {
+            flex: 1;
             color: #111111;
           }
         }
@@ -439,8 +449,34 @@
           position: absolute;
           border-left: 2px dashed #cccccc;
           left: 31px;
-          height: calc(100% - 24px);
-          top: 46px;
+          height: calc(100% - 36px);
+          top: 49px;
+        }
+        .avatar {
+          width: 40px;
+          height: 40px;
+          border-radius: 50%;
+          margin: 0 12px 0 16px;
+          //border: 1px solid;
+        }
+        .childList{
+          display: flex;
+          flex-wrap: wrap;
+          margin-left: 100px;
+        }
+        .company {
+          font-size: 13px;
+          color: #888888;
+          .status {
+            color: #00ba67;
+          }
+        }
+        .m_content{
+          display: flex;
+          flex-direction: column;
+          align-items: center;
+          justify-content: center;
+          margin-bottom: 4px;
         }
         .info {
           display: flex;
@@ -464,12 +500,15 @@
             color: #dc362e;
             font-size: 24px;
           }
-          .avatar {
-            width: 40px;
-            height: 40px;
-            border-radius: 50%;
-            margin: 0 12px 0 16px;
-            border: 1px solid;
+          .iconnew{
+            width: 24px;
+            height: 24px;
+          }
+          .icon3 {
+            position: relative;
+            z-index: 11;
+            color:gray;
+            font-size: 24px;
           }
           .content {
             flex: 1;
@@ -486,13 +525,6 @@
               .time {
                 color: #888888;
               }
-              .company {
-                font-size: 13px;
-                color: #888888;
-                .status {
-                  color: #00ba67;
-                }
-              }
             }
           }
         }
@@ -501,8 +533,9 @@
           border-radius: 4px;
           padding: 13px 15px;
           color: #666666;
-          margin-left: 120px;
+          margin-left: 100px;
         }
+
       }
     }
   }

--
Gitblit v1.9.3