k94314517
2024-10-16 17efddc6a667670dca682bf36b51a43e99615e6d
admin/src/components/business/OperaCarUseBookWindow.vue
@@ -12,10 +12,10 @@
            <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>
@@ -43,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>
@@ -67,41 +67,41 @@
          <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)"></i>
              <img src="@/assets/icons/ic_grep.png"  class="iconnew" v-if="(item.status==null || item.status==0 )"></i>
              <div style="display: inline" v-if="item.approveType ===0">
              <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.status === 1"  src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
                <img  v-if="item.status != 1"  src="@/assets/icons/ic_duoren.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="time">{{ item.createDate }}</div>
                  <div class="time">{{ item.checkDate }}</div>
                </div>
                <div class="line">
                  <div class="company">
                    {{ item.createUserName }} {{ item.companyName }}
                    {{ item.memberName }}
                    <div style="display: inline" v-if="item.statusInfo!=null && item.statusInfo!=''">
                       <span class="status-green">{{item.statusInfo||''}}</span>)
                       (<span class="status-green">{{item.statusInfo ||''}}</span>)
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div v-if="item.approveType != 1 " 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 style="display: inline" v-for="item1 in item.approveList" :key="item1.id">
              <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 style="display: inline-block"> {{item1.memberName}}</span>
                <span > {{item1.memberName}}</span>
              </div>
            </div>
          </div>
@@ -110,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="同意申请"
        style="text-align: center"
        class="dialogCl"
        :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"
@@ -137,7 +139,7 @@
              type="textarea"
              placeholder="请填写说明"
              :rows="4"
              v-model="backForm.checkInfo"
              v-model="dealForm.checkInfo"
          />
        </el-form-item>
      </el-form>
@@ -149,6 +151,7 @@
    <el-dialog
        append-to-body
        title="拒绝申请"
        style="text-align: center"
        class="dialogCl"
        :visible.sync="isBackProblem"
        width="600px"
@@ -175,6 +178,7 @@
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',
@@ -196,6 +200,9 @@
      },
      backForm: {
        checkInfo: null
      },
      rules: {
        driverId: [{ required: true, message: '请选择派遣司机', trigger: 'blur' }]
      }
    }
  },
@@ -214,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 => {
@@ -234,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
          })
      })
    },
@@ -284,10 +299,6 @@
          this.dealForm.driveId = res.driveId
        })
    },
    handleTransfer () {
      this.isShowTransfer = true
      this.loadMemberList()
    },
    loadMemberList () {
      driveList({}).then(res => {
        this.memberList = res
@@ -298,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;
@@ -324,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%;
@@ -361,6 +371,7 @@
          }
          .value {
            flex: 1;
            color: #111111;
          }
        }
@@ -438,8 +449,34 @@
          position: absolute;
          border-left: 2px dashed #cccccc;
          left: 31px;
          height: calc(100% - 24px);
          top: 34px;
          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;
@@ -473,13 +510,6 @@
            color:gray;
            font-size: 24px;
          }
          .avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            margin: 0 12px 0 16px;
            border: 1px solid;
          }
          .content {
            flex: 1;
            .line {
@@ -495,13 +525,6 @@
              .time {
                color: #888888;
              }
              .company {
                font-size: 13px;
                color: #888888;
                .status {
                  color: #00ba67;
                }
              }
            }
          }
        }
@@ -510,11 +533,9 @@
          border-radius: 4px;
          padding: 13px 15px;
          color: #666666;
          margin-left: 120px;
          margin-left: 100px;
        }
        .childList {
          margin-left: 120px;
        }
      }
    }
  }