ll
liukangdong
2024-12-10 a8c03746e6bd8ac1d46dc48c1b10bceff543664f
h5/pages/staff/vehicle/sendACarDetail.vue
@@ -1,20 +1,16 @@
<template>
   <view class="main_app">
      <view class="status_wrap">
        <view class="name">{{ info.createMemberName }}提交的用车申请</view>
        <view
          class="desc"
          :class="{
            gray: info.status == '2' || info.status == '3' || info.status == '4',
          }"
          >{{ infoStatus }}</view
        >
        <view v-if="info.status == '0' || info.status == '1'" class="status">{{
          statusMap[info.status]
        }}</view>
        <image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image>
        <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix"
          class="status_img"></image>
      <view class="status_wrap">
         <view class="name">{{ info.createMemberName || info.creatorName || info.memberName}}提交的用车申请</view>
         <view class="desc gray">{{ info.companyName }}</view>
         <view class="desc" style="margin-top: 16rpx;" v-if="info.status == 0">处理中</view>
         <view v-if="info.status == '0' || info.status == '1'" class="status">{{
          statusMap[info.status]
        }}</view>
         <image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image>
         <image v-if="info.status == '4'" src="@/static/ic_cancel.png" mode="widthFix" class="status_img"></image>
         <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix"
            class="status_img"></image>
      </view>
      <!--  -->
      <view class="emyty"></view>
@@ -45,52 +41,52 @@
            <view class="label">车辆信息</view>
            <view class="value">{{ info.carCode }}</view>
         </view>
         <view class="item">
         <view class="item" v-if="info.driverName">
            <view class="label">司机信息</view>
            <view class="value">{{ info.driverName }} {{ info.driverPhone }}</view>
            <view class="value">{{ info.driverName }} {{ info.driverPhone || '' }}</view>
         </view>
      </view>
      <!-- 流程 -->
      <view class="flow_wrap">
         <view class="flow_title">流程</view>
         <view class="list" v-if="
             info.approveDateVO != null && info.approveDateVO.approveList != null
           ">
            <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
               <view class="separate"></view>
               <view class="avatar">
                  <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
                  <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
                     src="@/static/staff/ic_shenpiren@2x.png" />
                  <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
                  <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
                  <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
                     mode="widthFix" />
                  <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
               </view>
               <view class="content">
                  <view class="head">
                     <view class="event">{{ item.title }}</view>
                     <view class="time">{{ item.checkDate }}</view>
                  </view>
                  <view class="name_wrap">
                     <text>{{ item.memberName
                   }}<text :class="{ status: item.statusInfo == '处理中' || item.status == '1'  }"
                           v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
                  </view>
                  <view v-if="item.checkInfo" class="remark">{{
                 item.checkInfo
               }}</view>
                  <!-- 抄送人 -->
                  <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
                     <view class="child" v-for="child in item.approveList" :key="child.id">
                        <image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
                        <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
                        <view>{{ child.memberName }}</view>
                     </view>
                  </view>
               </view>
            </view>
         <view class="list" v-if="
             info.approveDateVO != null && info.approveDateVO.approveList != null
           ">
            <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
               <view class="separate"></view>
               <view class="avatar">
                  <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
                  <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
                     src="@/static/staff/ic_shenpiren@2x.png" />
                  <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
                  <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
                  <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
                     mode="widthFix" />
                  <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
               </view>
               <view class="content">
                  <view class="head">
                     <view class="event">{{ item.title }}</view>
                     <view class="time">{{ item.checkDate }}</view>
                  </view>
                  <view class="name_wrap">
                     <text>{{ item.memberName
                   }}<text :class="{ status: item.statusInfo == '处理中' || item.status == '1'  }"
                           v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
                  </view>
                  <view v-if="item.checkInfo" class="remark">{{
                 item.checkInfo
               }}</view>
                  <!-- 抄送人 -->
                  <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
                     <view class="child" v-for="child in item.approveList" :key="child.id">
                        <image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
                        <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
                        <view>{{ child.memberName }}</view>
                     </view>
                  </view>
               </view>
            </view>
         </view>
      </view>
      <view class="emyty"></view>
@@ -103,13 +99,14 @@
            <view class="btn" @click="handleSub(3)">拒绝</view>
            <view class="btn agree" @click="handleSub(2)">同意</view>
         </template>
      </view>
      <template v-else>
         <view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0" class="main_footer"  @click="isShowBack = true">
            <view class="agree btn">撤回用车</view>
         </view>
      </template>
      </view>
      <template v-else>
         <view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0"
            class="main_footer" @click="isShowBack = true">
            <view class="agree btn">撤回用车</view>
         </view>
      </template>
      <!-- 撤销 -->
      <u-popup :show="isShowBack" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowBack = false">
@@ -127,7 +124,8 @@
         <view class="appr_modal">
            <view class="title">{{ param.status == 2 ? "同意" : "拒绝" }}</view>
            <view v-if="param.status == 2" class="line" @click="openModal">
               <text :class="{placeholder9: info.approveDateVO.driverParam == 0}" v-if="param.driverName">{{ param.driverName }}</text>
               <text :class="{placeholder9: info.approveDateVO.driverParam == 0}"
                  v-if="param.driverName">{{ param.driverName }}</text>
               <text v-else class="placeholder9">派车司机</text>
               <u-icon v-if="info.approveDateVO.driverParam == 1" class="ml12" name="arrow-right" color="#999999" />
            </view>
@@ -159,7 +157,7 @@
            showApprModal: false,
            isShowBack: false,
            backParam: {},
            isShowDrive: false,
            isShowDrive: false,
            userInfo: uni.getStorageSync('userInfo') || {},
            id: '',
            appr: '',
@@ -207,11 +205,11 @@
                  })
               }
            })
         },
         openModal() {
            if(this.info.approveDateVO.driverParam == 0) return
            this.isShowDrive = true
         },
         openModal() {
            if (this.info.approveDateVO.driverParam == 0) return
            this.isShowDrive = true
         },
         onSubBack() {
            carUseBookBack({
@@ -265,20 +263,20 @@
               this.getDriveList()
            } else {
            }
            if(this.info.driverId && this.info.driverName){
                  this.$set(this.param, 'driverId', this.info.driverId)
                  this.$set(this.param, 'driverName', this.info.driverName)
            }
            if (this.info.driverId && this.info.driverName) {
               this.$set(this.param, 'driverId', this.info.driverId)
               this.$set(this.param, 'driverName', this.info.driverName)
            }
            this.showApprModal = true
         },
         getDriveList() {
            driveListPost({}).then(res => {
            driveListPost({}).then(res => {
               const temp = res.data || []
               this.driveList = [res.data]
               if(this.param.driverId){
                  const item = temp.find(i=>i.id == this.param.driverId)
                  this.$set(this.param, 'driverName', item.name)
               this.driveList = [res.data]
               if (this.param.driverId) {
                  const item = temp.find(i => i.id == this.param.driverId)
                  this.$set(this.param, 'driverName', item.name)
               }
            })
         },
@@ -505,45 +503,46 @@
         }
      }
 .status_wrap {
    position: relative;
    padding: 30rpx 0;
    .name {
      font-weight: 600;
      font-size: 32rpx;
      margin-bottom: 20rpx;
      color: #222222;
    }
    .desc {
      font-size: 26rpx;
      color: #ed4545;
    }
    .gray {
      color: #999999;
    }
    .status {
      position: absolute;
      right: -30rpx;
      top: 0;
      height: 60rpx;
      line-height: 60rpx;
      padding: 0 32rpx;
      border-radius: 0rpx 0rpx 0rpx 30rpx;
      background-color: #e9edff;
      color: $uni-color-primary;
    }
    .status_img {
      position: absolute;
      right: 0rpx;
      top: 20rpx;
      width: 120rpx;
    }
  }
      .status_wrap {
         position: relative;
         padding: 30rpx 0;
         .name {
            font-weight: 600;
            font-size: 32rpx;
            margin-bottom: 20rpx;
            color: #222222;
         }
         .desc {
            font-size: 26rpx;
            color: #ed4545;
         }
         .gray {
            color: #999999;
         }
         .status {
            position: absolute;
            right: -30rpx;
            top: 0;
            height: 60rpx;
            line-height: 60rpx;
            padding: 0 32rpx;
            border-radius: 0rpx 0rpx 0rpx 30rpx;
            background-color: #e9edff;
            color: $uni-color-primary;
         }
         .status_img {
            position: absolute;
            right: 0rpx;
            top: 20rpx;
            width: 120rpx;
         }
      }
      .main_footer {
         padding-bottom: 64rpx;
         display: flex;