k94314517
2025-03-05 b35a46c502f4bcc22c75e9e3c7fd29af5b98d84b
admin/src/views/operation/serviceCar/apprRecord.vue
@@ -1,90 +1,55 @@
<template>
  <TableLayout :permissions="['business:empower:query']">
  <TableLayout :permissions="['business:carusebook:query']">
    <!-- 搜索表单 -->
    <el-form
      ref="searchForm"
      slot="search-form"
      :model="searchForm"
      label-width="100px"
      inline
    >
      <el-form-item label="申请人" prop="memberName">
        <el-input
          v-model="searchForm.memberName"
          placeholder="请输入姓名/手机号"
          @keypress.enter.native="search"
        ></el-input>
      </el-form-item>
      <el-form-item label="申请人组织" prop="companyName">
        <el-input
          v-model="searchForm.companyName"
          placeholder="请输入申请人组织"
          clearable
          @keypress.enter.native="search"
        ></el-input>
      </el-form-item>
      <el-form-item label="车牌号" prop="carCode">
        <el-input
          v-model="searchForm.carCode"
          placeholder="请输入车牌号"
          clearable
          @keypress.enter.native="search"
        ></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select
          v-model="searchForm.status"
          @change="search"
          clearable
          placeholder="状态"
        >
          <el-option label="申请中" value="0"></el-option>
          <el-option label="审核中" value="1"></el-option>
          <el-option label="审批通过" value="2"></el-option>
          <el-option label="审批不通过" value="3"></el-option>
          <el-option label="已撤销" value="4"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="目的地类型" prop="type">
        <el-select
          v-model="searchForm.type"
          @change="search"
          clearable
          placeholder="目的地类型"
        >
          <el-option label="市内用车" value="0"></el-option>
          <el-option label="市外用车" value="1"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="出发时间" prop="startTime">
        <el-date-picker
          @change="seleTime"
          v-model="time"
          @keypress.enter.native="search"
          type="datetimerange"
          format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss"
          :default-time="['00:00:00', '23:59:59']"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
        >
        </el-date-picker>
      </el-form-item>
      <el-radio-group
        v-model="searchForm.radio"
        size="small"
        @input="changeRadio"
      >
        <el-radio-button label="0">当天</el-radio-button>
        <el-radio-button label="1">近7天</el-radio-button>
        <el-radio-button label="2">近30天</el-radio-button>
      </el-radio-group>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <div ref="QueryFormRef" slot="search-form">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="申请人" prop="memberName">
          <el-input v-model="searchForm.memberName" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="申请人组织" prop="companyName">
          <el-input v-model="searchForm.companyName" placeholder="请输入申请人组织" clearable
            @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="车牌号" prop="carCode">
          <el-input v-model="searchForm.carCode" placeholder="请输入车牌号" clearable
            @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="状态" prop="status">
          <el-select v-model="searchForm.status" @change="search" clearable placeholder="状态">
            <el-option label="申请中" value="0"></el-option>
            <el-option label="审核中" value="1"></el-option>
            <el-option label="审批通过" value="2"></el-option>
            <el-option label="审批不通过" value="3"></el-option>
            <el-option label="已撤销" value="4"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="目的地类型" prop="type">
          <el-select v-model="searchForm.type" @change="search" clearable placeholder="目的地类型">
            <el-option label="市内用车" value="0"></el-option>
            <el-option label="市外用车" value="1"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="出发时间" prop="startTime">
          <!-- <el-date-picker @change="seleTime" v-model="time" @keypress.enter.native="search" type="datetimerange"
            format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']"
            range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
          </el-date-picker> -->
          <el-date-picker type="datetime" v-model="searchForm.queryStartTime" value-format="yyyy-MM-dd HH:mm:ss"
            placeholder="请选择开始时间" @change="changeRadio" />
          <el-date-picker type="datetime" v-model="searchForm.queryEndTime" value-format="yyyy-MM-dd HH:mm:ss"
            placeholder="请选择结束时间" @change="changeRadio" />
        </el-form-item>
        <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
          <el-radio-button label="0">当天</el-radio-button>
          <el-radio-button label="1">近7天</el-radio-button>
          <el-radio-button label="2">近30天</el-radio-button>
        </el-radio-group>
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
          <el-button @click="reset">重置</el-button>
        </section>
      </el-form>
    </div>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul
@@ -112,40 +77,45 @@
          >
        </li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe
        @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column
            prop="carCode"
            label="车牌号"
            min-width="100px"
        ></el-table-column>
        <el-table-column
          prop="memberName"
          label="提报人"
          min-width="80px"
        ></el-table-column>
        <el-table-column
            prop="memberNames"
            label="乘车人"
            min-width="180px"
        ></el-table-column>
        <el-table-column
          prop="companyName"
          label="所属组织"
          min-width="150px"
        ></el-table-column>
        <el-table-column
          prop="carCode"
          label="车牌号"
          min-width="100px"
        ></el-table-column>
        <el-table-column label="用车时间" min-width="170px">
          <template slot-scope="{ row }">
            <span>起:{{ row.startTime || "" }}</span
            <span v-if="row.startTime">起:{{ row.startTime.slice(0,16) }}</span
            ><br />
            <span>止:{{ row.endTime || "" }}</span>
            <span v-if="row.endTime">止:{{ row.endTime.slice(0,16) }}</span>
          </template>
        </el-table-column>
        <el-table-column
          prop="planUseDate"
          label="出发时间"
          min-width="150px"
        ></el-table-column>
        >
        <template slot-scope="{ row }">
          <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span>
        </template>
      </el-table-column>
        <el-table-column label="目的地" min-width="200px">
          <template slot-scope="{ row }">
            <span class="status-green" v-if="row.type === 0">【市内】</span>
@@ -175,7 +145,7 @@
        ></el-table-column>
        <el-table-column
          label="操作"
          min-width="160"
          min-width="180"
          align="center"
          fixed="right"
        >
@@ -187,16 +157,9 @@
              >查看详情</el-button
            >
            <!-- <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >撤销</el-button> -->
            <el-button
              v-if="
                (row.status === 0 || row.status === 1 || row.status === 2) &&
                new Date().getTime() < new Date(row.startTime).getTime()
              "
              type="text"
              icon="el-icon-delete"
              @click="rowRevokeClick(row)"
              >撤销</el-button
            >
            <el-button style="color: red" v-if="row.hasRole ==1"  type="text"  icon="el-icon-delete"   @click="rowRevokeClick(row)" >撤销</el-button>
            <!-- <el-button style="color: red"   v-if="(row.status === 0 && row.creator == userInfo.id)||((row.status === 0 || row.status === 1 ) || ( row.status === 2 && new Date().getTime() < new Date(row.startTime).getTime() ))"  type="text"  icon="el-icon-delete"   @click="rowRevokeClick(row)" >撤销</el-button>-->
            <el-button  style="color: red" type="text"  icon="el-icon-delete"   v-permissions="['business:carusebook:delete']"  @click="deleteById(row)" >删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -253,12 +216,13 @@
  components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow },
  data () {
    return {
      // userInfo: this.$store.state.userInfo,
      // 搜索
      searchForm: {
        memberName: '',
        companyName: '',
        queryStartTime: '',
        queryEndTime: '',
        startTime: '',
        endTime: '',
        type: null,
        status: null,
        radio: 0
@@ -282,7 +246,7 @@
      'field.main': 'id'
    })
    // this.search()
    this.changeRadio('0')
    this.changeRadio(0)
    this.loadParams()
  },
  methods: {
@@ -318,20 +282,23 @@
            })
        })
    },
    changeRadio (e) {
      this.searchForm.radio = e
    changeRadio(e) {
      if (e === '0') {
        this.searchForm.queryStartTime = timeForMat(0)[0]
        this.searchForm.queryEndTime = timeForMat(0)[1]
        this.time = timeForMat(0)
      } else if (e === '1') {
        this.searchForm.queryStartTime = timeForMat(6)[0]
        this.searchForm.queryEndTime = timeForMat(6)[1]
        this.time = timeForMat(6)
      } else if (e === '2') {
        this.searchForm.queryStartTime = timeForMat(29)[0]
        this.searchForm.queryEndTime = timeForMat(29)[1]
        this.time = timeForMat(29)
      } else {
        this.searchForm.radio = ''
      }
      if (this.searchForm.queryStartTime && this.searchForm.queryEndTime && new Date(this.searchForm.queryStartTime).getTime() > new Date(this.searchForm.queryEndTime).getTime()) {
        this.$message.error('开始时间不能大于结束时间')
        this.searchForm.queryStartTime = ''
        return
      }
      this.search()
    },
@@ -360,15 +327,19 @@
        })
    },
    seleTime (e) {
      this.searchForm.queryStartTime = e[0]
      this.searchForm.queryEndTime = e[1]
      this.searchForm.queryStartTime = null
      this.searchForm.queryEndTime = null
      if (e != null && e.length >= 2) {
        this.searchForm.queryStartTime = e[0]
        this.searchForm.queryEndTime = e[1]
      }
      this.searchForm.radio = null
      this.search()
    },
    reset () {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = 0
      this.changeRadio(0)
      // this.search()
    }
  }