ll
liukangdong
2025-02-25 5857dfa10b70a061b8e4711dd8f18b585ac6fc23
ll
已修改29个文件
1540 ■■■■■ 文件已修改
admin/src/views/business/carEvent.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/deviceEvent.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/empower.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/interfaceLog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformBroadcastLog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformEvent.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformInterfaceLog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/reportRecord.vue 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/retention.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/retentionCars.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/smsEmail.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/trainTime.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitEvent.vue 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/wmsInterfaceLog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/meeting/bookings.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/danger/record.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/apprRecord.vue 244 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/leaveAuth.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/operation.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/operationCity.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/subscribe.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/waybill.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/waybillQuery.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/statistics/platformStatic.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/task/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/vDangetAppr.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/applePeo.vue 530 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/apply.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/carEvent.vue
@@ -140,8 +140,8 @@
  methods: {
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.time = []
      this.search()
    },
admin/src/views/business/deviceEvent.vue
@@ -154,8 +154,8 @@
    reset() {
      this.$refs.searchForm.resetFields()
      this.time = []
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.search()
    }
  }
admin/src/views/business/empower.vue
@@ -173,9 +173,9 @@
    },
    reset () {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      // this.search()
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.search()
    }
  }
}
admin/src/views/business/interfaceLog.vue
@@ -137,6 +137,7 @@
      this.$refs.searchForm.resetFields()
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.searchForm.radio = ''
      this.time = []
      this.search()
    }
admin/src/views/business/platformBroadcastLog.vue
@@ -145,8 +145,8 @@
    reset () {
      this.$refs.searchForm.resetFields()
      this.time = []
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.search()
    }
  }
admin/src/views/business/platformEvent.vue
@@ -152,6 +152,7 @@
      this.$refs.searchForm.resetFields()
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.searchForm.radio = ''
      this.time = []
      this.search()
    }
admin/src/views/business/platformInterfaceLog.vue
@@ -137,6 +137,7 @@
      this.$refs.searchForm.resetFields()
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.searchForm.radio = ''
      this.time = []
      this.search()
    }
admin/src/views/business/reportRecord.vue
@@ -1,77 +1,32 @@
<template>
  <div class="main_app">
    <QueryForm
      v-model="filters"
      :query-form-config="queryFormConfig"
      @handleQuery="getList(1)"
      @clear="clear"
    />
    <div class="query_btns" style="margin: 16px 0 0" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
      <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">新建</el-button>
      <el-button type="primary" :loading="exLoading" @click="exportExcel" v-permissions="['business:visits:exportExcel']">导出</el-button>
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
    <div class="query_btns" style="margin: 16px 0 0"
      v-permissions="['business:visits:create', 'business:visits:exportExcel']">
      <el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
        v-permissions="['business:visits:create']">新建</el-button>
      <el-button type="primary" :loading="exLoading" @click="exportExcel"
        v-permissions="['business:visits:exportExcel']">导出</el-button>
    </div>
    <el-table
      v-loading="loading"
      :data="dataList"
      stripe
      row-key="id"
      default-expand-all
    >
    <el-table v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
      <el-table-column type="selection" width="55" align="center"></el-table-column>
      <el-table-column
        prop="carNos"
        label="入园车辆"
        min-width="100px"
      ></el-table-column>
      <el-table-column
        prop="companyName"
        label="公司名称"
        min-width="100px"
      ></el-table-column>
      <el-table-column
        prop="name"
        label="联系人信息"
        min-width="100px"
      ></el-table-column>
      <el-table-column
        prop="phone"
        label="手机号"
        min-width="100px"
      ></el-table-column>
      <el-table-column
        prop="receptMemberName"
        label="被访人"
        min-width="100px"
      ></el-table-column>
      <el-table-column prop="carNos" label="入园车辆" min-width="100px"></el-table-column>
      <el-table-column prop="companyName" label="公司名称" min-width="100px"></el-table-column>
      <el-table-column prop="name" label="联系人信息" min-width="100px"></el-table-column>
      <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
      <el-table-column prop="receptMemberName" label="被访人" min-width="100px"></el-table-column>
      <el-table-column label="拜访时间" min-width="160px">
        <template slot-scope="{ row }">
          <span>起:{{ row.starttime }}</span
          ><br />
          <span>起:{{ row.starttime }}</span><br />
          <span>止:{{ row.endtime }}</span>
        </template>
      </el-table-column>
      <el-table-column
        prop="reason"
        label="拜访事由"
        min-width="100"
      ></el-table-column>
      <el-table-column
        prop="status"
        fixed="right"
        label="状态"
        align="center"
        min-width="100"
      >
      <el-table-column prop="reason" label="拜访事由" min-width="100"></el-table-column>
      <el-table-column prop="status" fixed="right" label="状态" align="center" min-width="100">
        <template slot-scope="{ row }">
          <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0"
            >待提交审批</span
          >
          <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)"
            >处理中</span
          >
          <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)"
            >已同意</span
          >
          <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0">待提交审批</span>
          <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)">处理中</span>
          <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)">已同意</span>
          <span style="color: gray" v-if="row.status === 3">已拒绝</span>
          <span v-if="row.status === 4" style="color: gray">取消</span>
          <span v-if="row.status === 5" style="color: green">下发成功</span>
@@ -83,22 +38,14 @@
      </el-table-column>
      <el-table-column label="操作" align="center" width="100" fixed="right">
        <template slot-scope="{ row }">
          <el-button
            type="text"
            @click="handleDetail(row)"
            v-permissions="['business:company:update']"
            >查看详情</el-button
          >
          <el-button type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">查看详情</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      @size-change="handleSizeChange"
      @current-change="getList"
      :pagination="pagination"
    />
    <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
    <ReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
    <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList"  v-if="isShowEdit" ref="operaVisitsWindowRef" />
    <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit"
      ref="operaVisitsWindowRef" />
  </div>
</template>
@@ -116,7 +63,7 @@
    Pagination,
    OperaVisitsReportWindow
  },
  data () {
  data() {
    return {
      isShowEdit: false,
      exLoading: false,
@@ -155,11 +102,11 @@
      total: 0
    }
  },
  created () {
  created() {
    this.getList()
  },
  methods: {
    exportExcel () {
    exportExcel() {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.exLoading = true
@@ -179,13 +126,13 @@
            })
        })
    },
    handleEdit () {
    handleEdit() {
      this.isShowEdit = true
      this.$nextTick(() => {
        this.$refs.operaVisitsWindowRef.isShowModal = true
      })
    },
    handleDetail (row) {
    handleDetail(row) {
      this.isShowReport = true
      this.$nextTick(() => {
        this.$nextTick(() => {
@@ -196,24 +143,28 @@
        })
      })
    },
    getList (page) {
    getList(page) {
      const { pagination, filters } = this
      pagination.page = page || pagination.page
      this.loading = true
      fetchList({
        model: { ...filters },
        ...pagination
      }).then(res => {
        this.loading = false
        this.dataList = res.records || []
        this.pagination.total = res.total
      }, () => {
        this.loading = false
      })
    },
    clear () {
    clear() {
      this.filters = {
        type: 2
      }
      this.getList(0)
      this.getList(1)
    },
    handleSizeChange (capacity) {
    handleSizeChange(capacity) {
      this.pagination.capacity = capacity
      this.getList()
    }
@@ -221,5 +172,4 @@
}
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>
admin/src/views/business/retention.vue
@@ -137,7 +137,7 @@
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.startTime = ''
      this.searchForm.radio = '0'
      this.searchForm.radio = ''
      this.searchForm.endTime = ''
      this.time = []
      this.search()
admin/src/views/business/retentionCars.vue
@@ -50,7 +50,7 @@
        <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column>
        <el-table-column prop="companyName" label="组织" min-width="250px">
          <template slot-scope="{ row }">
            <span>{{row.companyName || row.visitCompanyName || '' }}</span>
            <span>{{ row.companyName || row.visitCompanyName || '' }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="carType" label="车辆类型" min-width="100px">
@@ -65,7 +65,7 @@
        </el-table-column>
        <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
<!--        <el-table-column label="进场门禁" min-width="100px">
        <!--        <el-table-column label="进场门禁" min-width="100px">
          <template slot-scope="{ row }">
            &lt;!&ndash; <span v-if="row.type === 1">-</span> &ndash;&gt;
            <span>{{ row.deviceName || '-' }}</span>
@@ -136,13 +136,13 @@
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.startTime = ''
      this.searchForm.radio = '0'
      this.searchForm.radio = ''
      this.searchForm.endTime = ''
      this.time = []
      this.search()
    },
    seleTime(e) {
      if(e && e.length >2){
      if (e && e.length > 2) {
        this.searchForm.startTime = e[0]
        this.searchForm.endTime = e[1]
        this.searchForm.radio = null
admin/src/views/business/smsEmail.vue
@@ -115,13 +115,13 @@
      'field.main': 'id'
    })
    this.changeRadio('0')
    this.search()
    // this.search()
  },
  methods: {
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.time = []
      this.search()
    },
admin/src/views/business/trainTime.vue
@@ -1,69 +1,51 @@
<template>
    <TableLayout :permissions="['business:deviceevent:query']">
        <!-- 搜索表单 -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="姓名/手机号" prop="keyWords">
                <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="组织" prop="companyName">
                <el-input v-model="searchForm.companyName" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="培训开始时间" prop="eventType">
                <el-date-picker
                    @change="seleTime"
                    v-model="time"
                    type="datetimerange"
                    format="yyyy-MM-dd HH:mm:ss"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    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>
        <!-- 表格和分页 -->
        <template v-slot:table-wrap>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column prop="name" label="人员姓名" min-width="100px"></el-table-column>
                <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
              <el-table-column prop="idcardNo" label="证件号" min-width="150px"></el-table-column>
                <el-table-column prop="companyName" label="组织名称" min-width="150px"></el-table-column>
                <el-table-column prop="startTime" label="开始日期" min-width="150px"></el-table-column>
                <el-table-column prop="endTime" label="结束日期" min-width="150px"></el-table-column>
              <el-table-column label="人脸照片" min-width="80px">
                <template slot-scope="{row}">
                  <el-image
                      v-if="row.faceImg"
                      style="width: 80px; height: 80px"
                      :src="row.faceImg"
                      :preview-src-list="[row.faceImg]">
                  </el-image>
                </template>
              </el-table-column>
                <el-table-column prop="createName" label="操作人" min-width="100px"></el-table-column>
              <el-table-column prop="createDate" label="创建时间" min-width="150px"></el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
    </TableLayout>
  <TableLayout :permissions="['business:deviceevent:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="姓名/手机号" prop="keyWords">
        <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="组织" prop="companyName">
        <el-input v-model="searchForm.companyName" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="培训开始时间" prop="eventType">
        <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss" 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>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
        <el-table-column prop="name" label="人员姓名" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
        <el-table-column prop="idcardNo" label="证件号" min-width="150px"></el-table-column>
        <el-table-column prop="companyName" label="组织名称" min-width="150px"></el-table-column>
        <el-table-column prop="startTime" label="开始日期" min-width="150px"></el-table-column>
        <el-table-column prop="endTime" label="结束日期" min-width="150px"></el-table-column>
        <el-table-column label="人脸照片" min-width="80px">
          <template slot-scope="{row}">
            <el-image v-if="row.faceImg" style="width: 80px; height: 80px" :src="row.faceImg"
              :preview-src-list="[row.faceImg]">
            </el-image>
          </template>
        </el-table-column>
        <el-table-column prop="createName" label="操作人" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="150px"></el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
  </TableLayout>
</template>
<script>
@@ -75,7 +57,7 @@
  name: 'DeviceEvent',
  extends: BaseTable,
  components: { TableLayout, Pagination },
  data () {
  data() {
    return {
      // 搜索
      searchForm: {
@@ -92,7 +74,7 @@
      time1: []
    }
  },
  created () {
  created() {
    this.config({
      module: '培训有效期列表',
      api: '/business/trainTime',
@@ -103,7 +85,7 @@
    this.search()
  },
  methods: {
    changeRadio (e) {
    changeRadio(e) {
      if (e === '0') {
        this.searchForm.startTimeStart = timeForMat(0)[0]
        this.searchForm.startTimeEnd = timeForMat(0)[1]
@@ -119,15 +101,15 @@
      }
      this.search()
    },
    seleTime (e) {
      if(e && e.length > 1) {
    seleTime(e) {
      if (e && e.length > 1) {
        this.searchForm.startTimeStart = e[0]
        this.searchForm.startTimeEnd = e[1]
        this.searchForm.radio = null
        this.search()
      }
    },
    changeRadio1 (e) {
    changeRadio1(e) {
      if (e === '0') {
        this.searchForm.endTimeStart = timeForMat(0)[0]
        this.searchForm.endTimeEnd = timeForMat(0)[1]
@@ -143,21 +125,21 @@
      }
      this.search()
    },
    seleTime1 (e) {
      if (e && e.length > 1 ) {
    seleTime1(e) {
      if (e && e.length > 1) {
        this.searchForm.endTimeStart = e[0]
        this.searchForm.endTimeEnd = e[1]
        this.searchForm.radio1 = null
        this.search()
      }
    },
    reset () {
    reset() {
      this.$refs.searchForm.resetFields()
      this.time = []
      this.time1 = []
      this.searchForm.radio = '0'
      this.searchForm.radio = ''
      this.searchForm.radio1 = '0'
      this.changeRadio('0')
      // this.changeRadio('0')
      this.search()
    }
  }
admin/src/views/business/visitEvent.vue
@@ -1,82 +1,66 @@
<template>
    <TableLayout :permissions="['business:visitevent:query']">
        <!-- 搜索表单 -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="姓名/手机号" prop="keyWords">
                <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="车牌号" prop="carNo">
                <el-input v-model="searchForm.carNo" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="组织名称" prop="visitorWorkUint">
                <el-input v-model="searchForm.visitorWorkUint" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="事件类型" prop="eventType">
                <el-select v-model="searchForm.eventType" placeholder="请选择">
                    <el-option label="访客登记" value="541200006"></el-option>
                    <el-option label="访客签离" value="541200007"></el-option>
                    <el-option label="访客通行" value="541200060"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="起始时间" prop="carNo">
                <el-date-picker
                    @change="seleTime"
                    v-model="time"
                    type="datetimerange"
                    format="yyyy-MM-dd HH:mm:ss"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    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>
        <!-- 表格和分页 -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:visitevent:exportExcel']">
                <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']" @click="exportExcel">导出</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column prop="personName" label="姓名" min-width="100px"></el-table-column>
                <el-table-column prop="phone" label="手机号码" min-width="100px"></el-table-column>
                <el-table-column prop="idcardDecode" label="身份证号码" min-width="100px"></el-table-column>
                <el-table-column prop="visitorWorkUint" label="组织" min-width="100px"></el-table-column>
                <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column>
                <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column>
                <el-table-column prop="beVisitedPersonOrg" label="被访人组织" min-width="100px"></el-table-column>
                <el-table-column prop="eventTypeName" label="事件类型" min-width="100px"></el-table-column>
                <el-table-column label="抓拍图" min-width="100px">
                    <template slot-scope="{row}">
                        <el-image v-if="row.captureUrlFull!=null"
                            style="width: 80px; height: 80px"
                            :src="row.captureUrlFull"
                            :preview-src-list="[row.captureUrlFull]">
                        </el-image>
                    </template>
                </el-table-column>
                <el-table-column prop="createDate" label="事件时间" min-width="100px"></el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
    </TableLayout>
  <TableLayout :permissions="['business:visitevent:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="姓名/手机号" prop="keyWords">
        <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="车牌号" prop="carNo">
        <el-input v-model="searchForm.carNo" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="组织名称" prop="visitorWorkUint">
        <el-input v-model="searchForm.visitorWorkUint" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="事件类型" prop="eventType">
        <el-select v-model="searchForm.eventType" placeholder="请选择">
          <el-option label="访客登记" value="541200006"></el-option>
          <el-option label="访客签离" value="541200007"></el-option>
          <el-option label="访客通行" value="541200060"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="起始时间" prop="carNo">
        <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss" 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>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:visitevent:exportExcel']">
        <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']"
            @click="exportExcel">导出</el-button></li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
        <el-table-column prop="personName" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="手机号码" min-width="100px"></el-table-column>
        <el-table-column prop="idcardDecode" label="身份证号码" min-width="100px"></el-table-column>
        <el-table-column prop="visitorWorkUint" label="组织" min-width="100px"></el-table-column>
        <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column>
        <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column>
        <el-table-column prop="beVisitedPersonOrg" label="被访人组织" min-width="100px"></el-table-column>
        <el-table-column prop="eventTypeName" label="事件类型" min-width="100px"></el-table-column>
        <el-table-column label="抓拍图" min-width="100px">
          <template slot-scope="{row}">
            <el-image v-if="row.captureUrlFull != null" style="width: 80px; height: 80px" :src="row.captureUrlFull"
              :preview-src-list="[row.captureUrlFull]">
            </el-image>
          </template>
        </el-table-column>
        <el-table-column prop="createDate" label="事件时间" min-width="100px"></el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
  </TableLayout>
</template>
<script>
@@ -88,7 +72,7 @@
  name: 'VisitEvent',
  extends: BaseTable,
  components: { TableLayout, Pagination },
  data () {
  data() {
    return {
      // 搜索
      searchForm: {
@@ -104,7 +88,7 @@
      time: []
    }
  },
  created () {
  created() {
    this.config({
      module: '访客事件推送记录表',
      api: '/business/visitEvent',
@@ -116,13 +100,13 @@
    this.search()
  },
  methods: {
    seleTime (e) {
    seleTime(e) {
      this.searchForm.startTime = e[0]
      this.searchForm.endTime = e[1]
      this.searchForm.radio = null
      this.search()
    },
    changeRadio (e) {
    changeRadio(e) {
      if (e === '0') {
        this.searchForm.startTime = timeForMat(0)[0]
        this.searchForm.endTime = timeForMat(0)[1]
@@ -138,11 +122,11 @@
      }
      this.search()
    },
    reset () {
    reset() {
      this.$refs.searchForm.resetFields()
      this.time = []
      this.searchForm.radio = '0'
      this.changeRadio('0')
      this.searchForm.radio = ''
      // this.changeRadio('0')
      this.search()
    }
  }
admin/src/views/business/wmsInterfaceLog.vue
@@ -137,6 +137,7 @@
      this.$refs.searchForm.resetFields()
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.searchForm.radio = ''
      this.time = []
      this.search()
    }
admin/src/views/meeting/bookings.vue
@@ -66,8 +66,7 @@
            @click="exportExcel">导出</el-button>
        </li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe
        @selection-change="handleSelectionChange">
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
        <!-- <el-table-column type="selection" align="center" width="55"></el-table-column> -->
        <el-table-column prop="name" label="会议主题" align="center" min-width="120px" show-overflow-tooltip>
          <template slot-scope="{ row }">
@@ -102,11 +101,15 @@
          <template slot-scope="{ row }">
            <template>
              <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('会议详情', row)">查看详情</el-button>
              <el-button v-if="row.meetingStatus == '1' && row.creator===userInfo.id" type="text"
                @click="$refs.operaBookingsWindow.open('编辑会议预约', row)" >编辑</el-button>
              <el-button type="text" v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" @click="handleStart(row)">开始</el-button>
              <el-button type="text" v-if="row.creator===userInfo.id && row.meetingStatus == '2'" @click="handleEnd(row)">结束</el-button>
              <el-button v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" type="text" @click="cancelMeeting(row.id)">撤回</el-button>
              <el-button v-if="row.meetingStatus == '1' && row.creator === userInfo.id" type="text"
                @click="$refs.operaBookingsWindow.open('编辑会议预约', row)">编辑</el-button>
              <el-button type="text"
                v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')"
                @click="handleStart(row)">开始</el-button>
              <el-button type="text" v-if="row.creator === userInfo.id && row.meetingStatus == '2'"
                @click="handleEnd(row)">结束</el-button>
              <el-button v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')"
                type="text" @click="cancelMeeting(row.id)">撤回</el-button>
            </template>
            <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">删除</el-button> -->
          </template>
@@ -249,10 +252,11 @@
    reset() {
      this.$refs.searchForm.resetFields()
      this.date = []
      this.searchForm.radio = '0'
      this.searchForm.radio = ''
      this.searchForm.startTime = ''
      this.searchForm.endTime = ''
      this.changeRadio('0')
      // this.changeRadio('0')
      this.search()
    },
    copy(row) {
      const text = `${row.realName} 邀请您加入会议\n会议主题:${row.name}\n会议室:${row.roomName}\n会议时间:${row.meetingTime}\n点击链接直接加入会议:\n${this.link}?id=${row.id}`
admin/src/views/operation/danger/record.vue
@@ -6,50 +6,36 @@
        <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-input v-model="searchForm.companyName" placeholder="请输入" clearable
          @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="责任部门" prop="dutyCompanyName">
        <el-input v-model="searchForm.dutyCompanyName" placeholder="请输入责任部门" clearable @keypress.enter.native="search"></el-input>
        <el-input v-model="searchForm.dutyCompanyName" placeholder="请输入责任部门" clearable
          @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="隐患区域" prop="areaId">
        <el-select v-model="searchForm.areaId" placeholder="请选择隐患区域" clearable  @change="search">
          <el-option
              v-for="item in areaList"
              :key="item.id"
              :label="item.name"
              :value="item.id">
        <el-select v-model="searchForm.areaId" placeholder="请选择隐患区域" clearable @change="search">
          <el-option v-for="item in areaList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="隐患类型" prop="cateId">
        <el-select v-model="searchForm.cateId" placeholder="请选择隐患类型" clearable @change="search">
          <el-option
              v-for="item in cateList"
              :key="item.id"
              :label="item.name"
              :value="item.id">
          <el-option v-for="item in cateList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status"  @change="search" clearable placeholder="状态">
        <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-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 @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">
@@ -65,15 +51,12 @@
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:hiddendanger:create', 'business:hiddendanger:exportExcel']">
        <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']" @click="handleEdit">新建</el-button></li>
        <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']" @click="handleEx">导出</el-button></li>
        <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']"
            @click="handleEdit">新建</el-button></li>
        <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']"
            @click="handleEx">导出</el-button></li>
      </ul>
      <el-table
          v-loading="isWorking.search"
          :data="tableData.list"
          stripe
          @selection-change="handleSelectionChange"
      >
      <el-table 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="dutyCompanyName" label="责任部门" min-width="150px"></el-table-column>
        <el-table-column prop="areaName" label="隐患区域" min-width="150px"></el-table-column>
@@ -83,32 +66,25 @@
        <el-table-column prop="createDate" label="提报时间" min-width="150px"></el-table-column>
        <el-table-column label="处理结果" min-width="100px">
          <template slot-scope="{row}">
            <span class="status-blue"  v-if="row.status === 0">待处理</span>
            <span class="status-green"   v-if="row.status === 1">已处理</span>
            <span class="status-red"   v-if="row.status === 2">已退回</span>
            <span class="status-blue" v-if="row.status === 0">待处理</span>
            <span class="status-green" v-if="row.status === 1">已处理</span>
            <span class="status-red" v-if="row.status === 2">已退回</span>
          </template>
        </el-table-column>
        <el-table-column prop="editDate" label="操作时间" min-width="150px"></el-table-column>
        <el-table-column
            label="操作"
            min-width="100"
            fixed="right"
        >
        <el-table-column label="操作" min-width="100" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" icon="el-icon-edit" @click="$refs.OperaHiddenDangerWindow.open('隐患随手拍详情',row)" >查看详情</el-button>
            <el-button type="text" icon="el-icon-edit"
              @click="$refs.OperaHiddenDangerWindow.open('隐患随手拍详情', row)">查看详情</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
          @size-change="handleSizeChange"
          @current-change="handlePageChange"
          :pagination="tableData.pagination"
      >
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
    <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange"/>
    <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange" />
    <!-- 新建 -->
    <HiddenDangerParam @close="isShowEdit = false" @success="search"  v-if="isShowEdit" ref="HiddenDangerParamRef" />
    <HiddenDangerParam @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="HiddenDangerParamRef" />
  </TableLayout>
</template>
@@ -123,8 +99,8 @@
export default {
  name: 'Empower',
  extends: BaseTable,
  components: { TableLayout, Pagination ,OperaHiddenDangerWindow, HiddenDangerParam},
  data () {
  components: { TableLayout, Pagination, OperaHiddenDangerWindow, HiddenDangerParam },
  data() {
    return {
      isShowEdit: false,
      // 搜索
@@ -144,7 +120,7 @@
      time: []
    }
  },
  created () {
  created() {
    this.config({
      module: '隐患随手拍管理',
      api: '/business/hiddenDanger',
@@ -156,7 +132,7 @@
    this.loadParams()
  },
  methods: {
    handleEx () {
    handleEx() {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.exLoading = true
@@ -173,13 +149,13 @@
            })
        })
    },
    handleEdit () {
    handleEdit() {
      this.isShowEdit = true
      this.$nextTick(() => {
        this.$refs.HiddenDangerParamRef.isShowModal = true
      })
    },
    changeRadio (e) {
    changeRadio(e) {
      this.searchForm.radio = e
      if (e === '0') {
        this.searchForm.queryStartTime = timeForMat(0)[0]
@@ -196,7 +172,7 @@
      }
      this.search()
    },
    loadParams () {
    loadParams() {
      allList({
      })
        .then(res => {
@@ -217,17 +193,28 @@
        .finally(() => {
        })
    },
    seleTime (e) {
    seleTime(e) {
      this.searchForm.queryStartTime = e[0]
      this.searchForm.queryEndTime = e[1]
      this.searchForm.radio = null
      this.search()
    },
    reset () {
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      // this.search()
      this.time = []
      this.searchForm = {
        memberName: '',
        companyName: '',
        queryStartTime: '',
        companyName: '',
        queryEndTime: '',
        areaId: null,
        cateId: null,
        status: null,
        radio: ''
      }
      // this.changeRadio('0')
      this.search()
    }
  }
}
admin/src/views/operation/serviceCar/apprRecord.vue
@@ -1,43 +1,20 @@
<template>
  <TableLayout :permissions="['business:empower:query']">
    <!-- 搜索表单 -->
    <el-form
      ref="searchForm"
      slot="search-form"
      :model="searchForm"
      label-width="100px"
      inline
    >
    <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-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-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-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-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>
@@ -46,36 +23,18 @@
        </el-select>
      </el-form-item>
      <el-form-item label="目的地类型" prop="type">
        <el-select
          v-model="searchForm.type"
          @change="search"
          clearable
          placeholder="目的地类型"
        >
        <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 @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-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>
@@ -87,74 +46,35 @@
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul
        class="toolbar"
        v-permissions="[
          'business:carusebook:create',
          'business:carusebook:exportExcel',
        ]"
      >
      <ul class="toolbar" v-permissions="[
        'business:carusebook:create',
        'business:carusebook:exportExcel',
      ]">
        <li>
          <el-button
            type="primary"
            @click="handleEdit"
            icon="el-icon-plus"
            v-permissions="['business:carusebook:create']"
            >新建</el-button
          >
          <el-button type="primary" @click="handleEdit" icon="el-icon-plus"
            v-permissions="['business:carusebook:create']">新建</el-button>
        </li>
        <li>
          <el-button
            type="primary"
            @click="handleEx"
            v-permissions="['business:carusebook:exportExcel']"
            >导出</el-button
          >
          <el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">导出</el-button>
        </li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
      <el-table 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 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 label="用车时间" min-width="170px">
          <template slot-scope="{ row }">
            <span v-if="row.startTime">起:{{ row.startTime.slice(0,16) }}</span
            ><br />
            <span v-if="row.endTime">止:{{ row.endTime.slice(0,16) }}</span>
            <span v-if="row.startTime">起:{{ row.startTime.slice(0, 16) }}</span><br />
            <span v-if="row.endTime">止:{{ row.endTime.slice(0, 16) }}</span>
          </template>
        </el-table-column>
        <el-table-column
          prop="planUseDate"
          label="出发时间"
          min-width="150px"
        >
        <template slot-scope="{ row }">
          <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span>
        </template>
      </el-table-column>
        <el-table-column prop="planUseDate" label="出发时间" min-width="150px">
          <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>
@@ -172,66 +92,28 @@
          </template>
        </el-table-column>
        <el-table-column
          prop="createDate"
          label="申请时间"
          min-width="150px"
        ></el-table-column>
        <el-table-column
          prop="editDate"
          label="操作时间"
          min-width="150px"
        ></el-table-column>
        <el-table-column
          label="操作"
          min-width="160"
          align="center"
          fixed="right"
        >
        <el-table-column prop="createDate" label="申请时间" min-width="150px"></el-table-column>
        <el-table-column prop="editDate" label="操作时间" min-width="150px"></el-table-column>
        <el-table-column label="操作" min-width="160" align="center" fixed="right">
          <template slot-scope="{ row }">
            <el-button
              type="text"
              icon="el-icon-edit"
              @click="$refs.OperaDetailsWindow.open('公务车申请详情', row)"
              >查看详情</el-button
            >
            <el-button type="text" icon="el-icon-edit"
              @click="$refs.OperaDetailsWindow.open('公务车申请详情', row)">查看详情</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 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>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!--  -->
    <el-dialog title="用车撤销" :visible.sync="isShowBack" width="520px">
      <el-form
        :model="backParam"
        :rules="rules"
        ref="backForm"
        label-width="100px"
        class="demo-ruleForm"
      >
      <el-form :model="backParam" :rules="rules" ref="backForm" label-width="100px" class="demo-ruleForm">
        <el-form-item label="说明" prop="info">
          <el-input
            type="textarea"
            :rows="4"
            v-model="backParam.info"
            placeholder="请输入撤销说明"
          ></el-input>
          <el-input type="textarea" :rows="4" v-model="backParam.info" placeholder="请输入撤销说明"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
@@ -239,10 +121,7 @@
        <el-button type="primary" @click="backSubmit">确定</el-button>
      </span>
    </el-dialog>
    <OperaCarUseBookWindow
      ref="OperaDetailsWindow"
      @success="handlePageChange"
    />
    <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" />
    <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" />
  </TableLayout>
</template>
@@ -260,7 +139,7 @@
  name: 'Empower',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow },
  data () {
  data() {
    return {
      // 搜索
      searchForm: {
@@ -283,7 +162,7 @@
      }
    }
  },
  created () {
  created() {
    this.config({
      module: '用车申请管理',
      api: '/business/carUseBook',
@@ -295,7 +174,7 @@
    this.loadParams()
  },
  methods: {
    rowRevokeClick (row) {
    rowRevokeClick(row) {
      this.isShowBack = true
      this.backParam = {}
      this.$set(this.backParam, 'id', row.id)
@@ -303,14 +182,14 @@
        this.$refs.backForm.clearValidate()
      })
    },
    backSubmit () {
    backSubmit() {
      revokeById({ ...this.backParam }).then(res => {
        this.$tip.success('撤销成功')
        this.isShowBack = false
        this.search()
      })
    },
    handleEx () {
    handleEx() {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.exLoading = true
@@ -327,7 +206,7 @@
            })
        })
    },
    changeRadio (e) {
    changeRadio(e) {
      this.searchForm.radio = e
      if (e === '0') {
        this.searchForm.queryStartTime = timeForMat(0)[0]
@@ -344,10 +223,10 @@
      }
      this.search()
    },
    handleEdit () {
    handleEdit() {
      this.$refs.OperaParamWindow.open()
    },
    loadParams () {
    loadParams() {
      allList({
      })
        .then(res => {
@@ -368,17 +247,26 @@
        .finally(() => {
        })
    },
    seleTime (e) {
    seleTime(e) {
      this.searchForm.queryStartTime = e[0]
      this.searchForm.queryEndTime = e[1]
      this.searchForm.radio = null
      this.search()
    },
    reset () {
    reset() {
      this.$refs.searchForm.resetFields()
      this.searchForm.radio = '0'
      this.changeRadio('0')
      // this.search()
      this.time = []
      this.searchForm = {
        memberName: '',
        companyName: '',
        queryStartTime: '',
        queryEndTime: '',
        type: null,
        status: null,
        radio: ''
      }
      // this.changeRadio('0')
      this.search()
    }
  }
}
admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -222,7 +222,6 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.getList()
    },
admin/src/views/platform/LogisticsRecord/operation.vue
@@ -200,7 +200,6 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.getList()
    },
admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -200,7 +200,6 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.getList()
    },
admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -325,9 +325,9 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0,
      }
      this.changeRadio('0')
      this.getList()
      // this.changeRadio('0')
    },
    handleDetail(row) {
      this.isShowDriver = true
admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -228,9 +228,9 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.changeRadio('0')
      this.getList()
      // this.changeRadio('0')
    },
    handleDetail(row) {
      this.isShowDetail = true
admin/src/views/platform/LogisticsRecord/waybillQuery.vue
@@ -153,7 +153,6 @@
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.getList()
    },
admin/src/views/statistics/platformStatic.vue
@@ -159,10 +159,10 @@
    },
    clear() {
      this.filters = {
        fastdate: 0,
        selDate: []
      }
      this.changeRadio('0')
      this.getList()
      // this.changeRadio('0')
    },
    handleSizeChange(capacity) {
      this.pagination.pageSize = capacity
admin/src/views/task/index.vue
@@ -272,7 +272,7 @@
      this.loading = true
      taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => {
        this.headData = res
        this.getList(page)
        this.getList(1)
      }, () => {
        this.loading = false
      })
h5/pages/staff/task/index.vue
@@ -250,7 +250,7 @@
        { name: '访客报备', id: 1 },
        { name: '用车申请', id: 2 },
        { name: '隐患随手拍', id: 3 },
        { name: '物流车申请', id: 4 },
        { name: '物流车申请', id: 6 },
        { name: '考勤代办', id: 7 },
      ],
      startDate: dayjs().format('YYYY-MM-DD'),
h5/pages/staff/task/vDangetAppr.vue
@@ -1,5 +1,5 @@
<template>
    <view class="main_app">
    <view class="main_app" :style="{height: windowHeight  + 'px'}">
        <view class="status_wrap">
            <view class="name">{{ info.categoryName }}</view>
            <view v-if="info.status == '0'" class="status">{{ statusMap[info.status] }}</view>
@@ -113,6 +113,7 @@
                </view>
            </view>
        </view>
        <view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" style="height: 90rpx;border: 1px solid red;"></view>
        <view class="emyty"></view>
        <view class="main_footer" v-if="info.status == 0 && info.checkUserId == userInfo.memberId">
            <view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">退回</view>
@@ -254,15 +255,16 @@
        </u-popup>
        <!-- 转交 -->
        <u-popup :show="isShowTransfer" :round="10" safeAreaInsetBottom mode="bottom" @close="isShowTransfer = false">
            <view class="appr_modal">
            <view class="appr_modal tran_modal">
                <view class="title">选择员工</view>
                <view class="search_inp df_ac">
                    <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
                    <input v-model="transferModel.queryParam" @confirm="getMemList()" type="text" placeholder="搜索人员姓名"
                    <input v-model="transferModel.queryParam" @focus="showKeyboard = true" @blur="showKeyboard = false" @confirm="getMemList()" type="text" placeholder="搜索人员姓名"
                        placeholder-style="color: #999999;" />
                </view>
                <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view>
                <view class="member_list">
                    <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view>
                    <view v-for="item in memberList" :key="item.id" class="line">
                        <image v-if="item.faceImg" :src="item.faceImg" class="avatar"></image>
                        <span v-else class="img_name">{{ item.realname && item.realname.slice(0, 1) }}</span>
@@ -280,7 +282,7 @@
                    </view>
                    <view class="empty"></view>
                </view>
                <view class="Transfer_footer">
                <view v-if="!showKeyboard" class="Transfer_footer">
                    <view class="btn" @click="isShowTransfer = fales">取消</view>
                    <view class="btn active" @click="enterTransfer">确认转交</view>
                </view>
@@ -323,7 +325,8 @@
            flowList: [],
            id: '',
            type: '',
            type: '',
            windowHeight: '',
            cateList: [{
                name: '访客申请',
                id: 0
@@ -374,13 +377,17 @@
            videoPlay: false,
            videoContext: null,
            videoUrl: ''
            videoUrl: '',
            showKeyboard: false,
        }
    },
    onLoad(op) {
    onLoad(op) {
        const result = uni.getWindowInfo()
        this.windowHeight = result.windowHeight
        uni.setStorageSync('ywinfo', {})
        this.id = op.id
        this.getDetail()
        this.getDetail()
        // this.handleTransfer()
    },
    methods: {
        priviewImage(url) {
@@ -432,7 +439,7 @@
            findListFlowDanger({
                hiddenDangerId: id
            }).then(res => {
                this.flowList = res.data
                this.flowList = res.data || []
            })
        },
        onSubmit() {
@@ -481,7 +488,7 @@
                    icon: 'none'
                })
            transferHiddenDanger({
                checkUserId: transferParam.id,
                checkUserId: transferParam.memberId,
                id
            }).then(res => {
                if (res.code === 200) {
@@ -829,7 +836,7 @@
.main_app {
    background-color: #fff;
    padding-bottom: 0;
    position: relative;
    .flow_title {
        font-weight: 600;
        font-size: 32rpx;
@@ -838,14 +845,13 @@
    }
    .flow_wrap {
        padding: 30rpx 0 90rpx;
        padding: 30rpx 0 30rpx;
        background-color: #fff;
        .list {
            .item {
                display: flex;
                margin-bottom: 48rpx;
                position: relative;
                .separate {
                    position: absolute;
                    width: 4rpx;
@@ -1073,7 +1079,6 @@
            display: flex;
            margin-bottom: 20rpx;
            flex-wrap: wrap;
            .img_wrap {
                margin-top: 24rpx;
                width: 156rpx;
@@ -1156,7 +1161,7 @@
        width: 100%;
        z-index: 9999;
        left: 0;
        padding: 30rpx 10rpx 60rpx;
        padding: 10rpx 10rpx 30rpx;
        display: flex;
        justify-content: space-between;
        background: #ffffff;
@@ -1290,7 +1295,9 @@
            }
        }
    }
    .tran_modal{
        height: 1260rpx;
    }
    .emyty {
        width: 750rpx;
        height: 20rpx;
@@ -1329,9 +1336,9 @@
}
.member_list {
    height: 920rpx;
    height: 900rpx;
    overflow: auto;
    // border: 1px solid;
    .line {
        display: flex;
        align-items: center;
h5/pages/staff/vehicle/applePeo.vue
@@ -1,5 +1,5 @@
<template>
    <view class="main_app" :class="{ popupShow: isShowSelMem }">
    <view class="main_app" :style="{ height: windowHeight + 'px' }" :class="{ popupShow: isShowSelMem }">
        <view class="search_inp df_ac">
            <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
            <input v-model="param.queryParam" @confirm="initData()" type="text" placeholder="搜索"
@@ -21,11 +21,11 @@
                <image @click="changeMem(item, index)" v-if="!item.checked" src="@/static/meeting/icon/ic_choose@2x.png"
                    mode="widthFix" class="checked"></image>
                <text></text>
            </view>
            </view>
            <view class="" style="height: 220rpx;"></view>
            <view v-if="memberList.length == 0" class="empty_wrap">
                <image src="@/static/empty.png" mode=""></image>
                <text>暂无数据</text>
            <view v-if="memberList.length == 0" class="empty_wrap">
                <image src="@/static/empty.png" mode=""></image>
                <text>暂无数据</text>
            </view>
        </view>
        <!--  -->
@@ -37,13 +37,13 @@
                </view>
                <image @click="openSeleter" class="open_icon" src="@/static/staff/renyuan_ic_open.png" mode=""></image>
            </view>
            <view class="btn" @click="onSubmit">确认({{ selList.length }}/{{ param.limitNum }})</view>
            <view class="btn" @click="onSubmit">确认({{ selList.length }})</view>
        </view>
        <!--  -->
        <u-popup catchtouchmove :show="isShowSelMem" :round="12" mode="bottom" @close="closeModal">
            <view class="modal">
                <view class="modal_header">
                    <text class="status">已选择:{{ selList.filter(i => i.checkedTemp).length }}人</text>
                    <text class="status">已选择:{{selList.filter(i => i.checkedTemp).length}}人</text>
                    <text class="btn" @click="subSelMem">确认</text>
                </view>
                <view class="modal_mem_list">
@@ -67,256 +67,173 @@
</template>
<script>
    import {
        userPagePost
    } from '@/api'
    import dayjs from 'dayjs'
    export default {
        data() {
            return {
                memberList: [],
                selList: [],
                param: {
                    limitNum: ''
                },
                pagination: {
                    page: 1,
                    capacity: 40
                },
import {
    userPagePost
} from '@/api'
import dayjs from 'dayjs'
export default {
    data() {
        return {
            memberList: [],
            selList: [],
            param: {
                limitNum: ''
            },
            windowHeight: '',
            pagination: {
                page: 1,
                capacity: 40
            },
                isShowSelMem: false
            }
        },
        onLoad(option) {
            this.param = {
                limitNum: option.limitNum,
                queryParam: '',
                startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
                endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
            }
            this.initData()
        },
        mounted() {
            this.$eventBus.$on('applePeoDetail', (res) => {
                setTimeout(() => {
                    res.forEach(item => {
                        this.memberList.forEach(mem => {
                            if (item.id == mem.id) {
                                mem.checked = true
                            }
                        })
            isShowSelMem: false
        }
    },
    onLoad(option) {
        const result = uni.getWindowInfo()
        this.windowHeight = result.windowHeight
        this.param = {
            // limitNum: option.limitNum,
            queryParam: '',
            startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
            endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
        }
        this.initData()
    },
    mounted() {
        this.$eventBus.$on('applePeoDetail', (res) => {
            setTimeout(() => {
                res.forEach(item => {
                    this.memberList.forEach(mem => {
                        if (item.id == mem.id) {
                            mem.checked = true
                        }
                    })
                    this.selList = this.memberList.filter(i => i.checked)
                    this.$nextTick(() => {
                        this.$forceUpdate()
                    })
                }, 500)
                })
                this.selList = this.memberList.filter(i => i.checked)
                this.$nextTick(() => {
                    this.$forceUpdate()
                })
            }, 500)
        })
    },
    methods: {
        onSubmit() {
            this.$eventBus.$emit('applePeo', this.selList)
            uni.navigateBack()
        },
        changeMem(item, index) {
            // const { selList, param } = this
            // if (this.selList.length == param.limitNum && !item.checked) return uni.showToast({
            //   title: `该会议可容纳${param.limitNum}人`,
            //   icon: 'none'
            // })
            // item.checked = !item.checked
            // this.selList = this.memberList.filter(i => i.checked)
            // //
            item.checked = !item.checked
            const i = this.selList.findIndex(a => a.id === item.id)
            if (item.checked && i === -1) {
                this.selList.push(item)
            } else {
                this.selList.splice(i, 1)
            }
            this.$forceUpdate()
        },
        openSeleter() {
            this.isShowSelMem = true
            this.selList.forEach(item => {
                item.checkedTemp = true
            })
            this.$forceUpdate()
        },
        initData() {
            const {
                param,
                pagination
            } = this
            userPagePost({
                ...param,
                querySpecial: 1, type: 2, companyType: 1, workStatus: 0
            }).then(res => {
                this.memberList = res.data || []
                this.memberList.forEach(i => {
                    const index = this.selList.findIndex(ite => ite.id === i.id)
                    i.checked = index > -1
                })
            })
        },
        methods: {
            onSubmit() {
                this.$eventBus.$emit('applePeo', this.selList)
                uni.navigateBack()
            },
            changeMem(item, index) {
                // const { selList, param } = this
                // if (this.selList.length == param.limitNum && !item.checked) return uni.showToast({
                //   title: `该会议可容纳${param.limitNum}人`,
                //   icon: 'none'
                // })
                // item.checked = !item.checked
                // this.selList = this.memberList.filter(i => i.checked)
                // //
                item.checked = !item.checked
                const i = this.selList.findIndex(a => a.id === item.id)
                if (item.checked && i === -1) {
                    this.selList.push(item)
                } else {
                    this.selList.splice(i, 1)
                }
                this.$forceUpdate()
            },
            openSeleter() {
                this.isShowSelMem = true
                this.selList.forEach(item => {
                    item.checkedTemp = true
                })
                this.$forceUpdate()
            },
            initData() {
                const {
                    param,
                    pagination
                } = this
                userPagePost({
                    ...param,
                    querySpecial: 1, type: 2, companyType: 1,workStatus:0
                }).then(res => {
                    this.memberList = res.data || []
                    this.memberList.forEach(i => {
                        const index = this.selList.findIndex(ite => ite.id === i.id)
                        i.checked = index > -1
                    })
                })
            },
            closeModal() {
                this.selList.forEach(item => {
                    item.checkedTemp = true
                })
                this.isShowSelMem = false
            },
            subSelMem() {
                const {
                    memberList
                } = this
                this.selList = this.selList.filter(i => i.checkedTemp)
                memberList.forEach(ite => {
                    const index = this.selList.findIndex(i => i.id === ite.id)
                    ite.checked = index > -1
                })
                this.isShowSelMem = false
                this.$forceUpdate()
            },
            handleRemove(i) {
                this.selList[i].checkedTemp = false
                this.$forceUpdate()
            },
        }
    };
        closeModal() {
            this.selList.forEach(item => {
                item.checkedTemp = true
            })
            this.isShowSelMem = false
        },
        subSelMem() {
            const {
                memberList
            } = this
            this.selList = this.selList.filter(i => i.checkedTemp)
            memberList.forEach(ite => {
                const index = this.selList.findIndex(i => i.id === ite.id)
                ite.checked = index > -1
            })
            this.isShowSelMem = false
            this.$forceUpdate()
        },
        handleRemove(i) {
            this.selList[i].checkedTemp = false
            this.$forceUpdate()
        },
    }
}
</script>
<style lang="scss">
    .modal {
        padding: 40rpx 30rpx;
        max-height: 1000rpx;
.main_app {
    position: relative;
}
        .modal_header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-bottom: 20rpx;
.modal {
    padding: 40rpx 30rpx;
    max-height: 1000rpx;
            .status {
                font-weight: 600;
            }
    .modal_header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-bottom: 20rpx;
            .btn {
                color: $uni-color-primary;
            }
        }
        .modal_mem_list {
            max-height: 860rpx;
            overflow: auto;
            .line {
                display: flex;
                align-items: center;
                border-bottom: 1rpx solid #e5e5e5;
                padding: 30rpx 0;
                .avatar {
                    width: 64rpx;
                    height: 64rpx;
                    border-radius: 50%;
                    overflow: hidden;
                    margin-right: 20rpx;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    background-color: $uni-color-primary;
                    color: #fff;
                }
                .content {
                    flex: 1;
                    .depart {
                        font-size: 24rpx;
                        color: #666666;
                    }
                    .info {
                        display: flex;
                        margin-bottom: 16rpx;
                        .name {
                            font-size: 30rpx;
                        }
                    }
                }
                .btn {
                    width: 80rpx;
                    height: 48rpx;
                    line-height: 48rpx;
                    text-align: center;
                    font-size: 24rpx;
                    color: #333333;
                    border-radius: 4rpx;
                    border: 1rpx solid #999999;
                }
            }
        }
    }
    .sub_wrap {
        position: fixed;
        bottom: 0;
        background-color: #fff;
        left: 0;
        width: 100%;
        box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
        padding: 30rpx 30rpx 42rpx;
        .sel_mem {
            display: flex;
            align-items: center;
            .members {
                width: 500rpx;
                color: $uni-color-primary;
                white-space: nowrap;
                overflow: hidden; //文本超出隐藏
                text-overflow: ellipsis;
                margin-right: 20rpx;
            }
            .open_icon {
                width: 44rpx;
                height: 44rpx;
            }
        .status {
            font-weight: 600;
        }
        .btn {
            width: 690rpx;
            height: 88rpx;
            line-height: 88rpx;
            background: $uni-color-primary;
            border-radius: 44rpx;
            color: #fff;
            text-align: center;
            margin-top: 22rpx;
            color: $uni-color-primary;
        }
    }
    .member_list {
        height: calc( 100vh - 130rpx );
        overflow: auto;
        margin-top: 10rpx;
    .modal_mem_list {
        max-height: 860rpx;
        overflow: auto;
        .line {
            display: flex;
            align-items: center;
            border-bottom: 1rpx solid #e5e5e5;
            padding: 30rpx 0;
            .avatar {
                width: 64rpx;
                height: 64rpx;
                border-radius: 50%;
                overflow: hidden;
                margin-right: 20rpx;
                display: flex;
                justify-content: center;
                align-items: center;
                background-color: $uni-color-primary;
                color: #fff;
            }
            .content {
@@ -334,45 +251,136 @@
                    .name {
                        font-size: 30rpx;
                    }
                    .tag {
                        font-size: 24rpx;
                        border-radius: 4rpx;
                        border: 1rpx solid #f62710;
                        color: #f62710;
                        padding: 0rpx 6rpx;
                        margin-left: 8rpx;
                        display: flex;
                        align-items: center;
                    }
                }
            }
            .checked {
                width: 48rpx;
            .btn {
                width: 80rpx;
                height: 48rpx;
                line-height: 48rpx;
                text-align: center;
                font-size: 24rpx;
                color: #333333;
                border-radius: 4rpx;
                border: 1rpx solid #999999;
            }
        }
    }
}
.sub_wrap {
    position: fixed;
    bottom: 0;
    background-color: #fff;
    left: 0;
    width: 100%;
    box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
    padding: 30rpx 30rpx 42rpx;
    .sel_mem {
        display: flex;
        align-items: center;
        .members {
            width: 500rpx;
            color: $uni-color-primary;
            white-space: nowrap;
            overflow: hidden; //文本超出隐藏
            text-overflow: ellipsis;
            margin-right: 20rpx;
        }
        .open_icon {
            width: 44rpx;
            height: 44rpx;
        }
    }
    .btn {
        width: 690rpx;
        height: 88rpx;
        line-height: 88rpx;
        background: $uni-color-primary;
        border-radius: 44rpx;
        color: #fff;
        text-align: center;
        margin-top: 22rpx;
    }
}
.member_list {
    height: calc(100vh - 130rpx);
    overflow: auto;
    margin-top: 10rpx;
    .line {
        display: flex;
        align-items: center;
        border-bottom: 1rpx solid #e5e5e5;
        padding: 30rpx 0;
        .avatar {
            width: 64rpx;
            height: 64rpx;
            border-radius: 50%;
            overflow: hidden;
            margin-right: 20rpx;
        }
        .content {
            flex: 1;
            .depart {
                font-size: 24rpx;
                color: #666666;
            }
            .info {
                display: flex;
                margin-bottom: 16rpx;
                .name {
                    font-size: 30rpx;
                }
                .tag {
                    font-size: 24rpx;
                    border-radius: 4rpx;
                    border: 1rpx solid #f62710;
                    color: #f62710;
                    padding: 0rpx 6rpx;
                    margin-left: 8rpx;
                    display: flex;
                    align-items: center;
                }
            }
        }
        .empty {
            width: 100%;
            height: 280rpx;
        .checked {
            width: 48rpx;
        }
    }
    .search_inp {
        height: 72rpx;
        background: #f7f7f7;
        border-radius: 4rpx;
        padding-left: 16rpx;
        .search {
            width: 28rpx;
        }
        input {
            flex: 1;
            font-size: 28rpx;
            color: #333333;
        }
    .empty {
        width: 100%;
        height: 280rpx;
    }
}
.search_inp {
    height: 72rpx;
    background: #f7f7f7;
    border-radius: 4rpx;
    padding-left: 16rpx;
    .search {
        width: 28rpx;
    }
    input {
        flex: 1;
        font-size: 28rpx;
        color: #333333;
    }
}
</style>
h5/pages/staff/vehicle/apply.vue
@@ -8,10 +8,7 @@
          <text>预计用车时段</text>
        </view>
        <view class="value" @click="$goBack()">
          <text
            class="mr6"
            :style="{ color: param.startTime ? '#000000' : '#999999' }"
          >
          <text class="mr6" :style="{ color: param.startTime ? '#000000' : '#999999' }">
            <text v-if="param.startTime">
              {{ param.startTime.slice(5, 16) }}至{{
                param.endTime.slice(5, 16)
@@ -28,13 +25,8 @@
          <text>申请车辆</text>
        </view>
        <view class="value" @click="$goBack()">
          <input
            type="text"
            disabled
            placeholder="请输入申请车辆"
            v-model="param.carCode"
            placeholder-style="color: #999999;"
          />
          <input type="text" disabled placeholder="请输入申请车辆" v-model="param.carCode"
            placeholder-style="color: #999999;" />
        </view>
      </view>
      <view class="line">
@@ -43,11 +35,8 @@
          <text>预计出发时间</text>
        </view>
        <view class="value" @click="isShowDatetime = true">
          <text
            class="mr6"
            :style="{ color: param.planUseDate ? '#000000' : '#999999' }"
            >{{ param.planUseDate ? param.planUseDate : "请选择" }}</text
          >
          <text class="mr6" :style="{ color: param.planUseDate ? '#000000' : '#999999' }">{{ param.planUseDate ?
            param.planUseDate : "请选择" }}</text>
          <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
        </view>
      </view>
@@ -67,12 +56,7 @@
          <text>目的地</text>
        </view>
        <view class="value">
          <input
            type="text"
            placeholder="请输入"
            v-model="param.addr"
            placeholder-style="color: #999999;"
          />
          <input type="text" placeholder="请输入" v-model="param.addr" placeholder-style="color: #999999;" />
        </view>
      </view>
      <view class="line">
@@ -81,15 +65,12 @@
          <text>乘车人员</text>
        </view>
        <view class="value" @click="selPeople">
          <text
            class="mr6"
            :style="{
              color:
                param.memberList && param.memberList.length > 0
                  ? '#000000'
                  : '#999999',
            }"
          >
          <text class="mr6" :style="{
            color:
              param.memberList && param.memberList.length > 0
                ? '#000000'
                : '#999999',
          }">
            <text v-if="param.memberNames">
              <text v-for="(mem, i) in param.memberList" :key="mem.id">
                <template v-if="i < 2">
@@ -97,9 +78,7 @@
                  <text v-if="i < 1 && param.memberList.length > 1">,</text>
                </template>
              </text>
              <text v-if="param.memberList.length > 2"
                >等{{ param.memberList.length }}人</text
              >
              <text v-if="param.memberList.length > 2">等{{ param.memberList.length }}人</text>
            </text>
            <text v-else>请选择</text>
          </text>
@@ -112,41 +91,24 @@
          <text>用车事由</text>
        </view>
        <view class="value">
          <textarea
            type="text"
            placeholder="请输入"
            :maxlength="-1"
            v-model="param.content"
            placeholder-style="color: #999999;"
          />
          <textarea type="text" placeholder="请输入" :maxlength="-1" v-model="param.content"
            placeholder-style="color: #999999;" />
        </view>
      </view>
    </view>
    <view class="tip">
      <view class="title">注意事项:</view>
      <view class="line"
        >1、公司车辆外出需办理用车申请表,经批准后方可外出(借出)。</view
      >
      <view class="line">1、公司车辆外出需办理用车申请表,经批准后方可外出(借出)。</view>
      <view class="line">2、市外用车需总经办审批。</view>
      <view class="line"
        >3、借出车辆必须遵守交通规则,安全行驶。对于车辆发生交通意外,对当事人及第三方造成人身伤害及损失,公司可以协助处理保险公司赔偿相关事宜,但不承担任何责任和费用。</view
      >
      <view class="line"
        >4、公司借给申请人用车,申请借车人为第一责任人,不允许转借给其他人使用,若要借给他人使用。责任人要承担全部责任。</view
      >
            <view class="sub_btn" @click="handleSub">提交</view>
      <view class="line">3、借出车辆必须遵守交通规则,安全行驶。对于车辆发生交通意外,对当事人及第三方造成人身伤害及损失,公司可以协助处理保险公司赔偿相关事宜,但不承担任何责任和费用。</view>
      <view class="line">4、公司借给申请人用车,申请借车人为第一责任人,不允许转借给其他人使用,若要借给他人使用。责任人要承担全部责任。</view>
      <view class="sub_btn" @click="handleSub">提交</view>
    </view>
    <!--  -->
    <!-- :minDate="new Date(param.startTime).getTime()"
      :maxDate="new Date(param.endTime).getTime()" -->
    <u-datetime-picker
      :show="isShowDatetime"
      @confirm="confirmDate"
      :minDate="new Date(param.startTime).getTime()"
      :maxDate="new Date(param.endTime).getTime()"
      @cancel="isShowDatetime = false"
      mode="datetime"
    ></u-datetime-picker>
    <u-datetime-picker :show="isShowDatetime" @confirm="confirmDate" :minDate="new Date(param.startTime).getTime()"
      :maxDate="new Date(param.endTime).getTime()" @cancel="isShowDatetime = false" mode="datetime"></u-datetime-picker>
  </view>
</template>
@@ -164,7 +126,7 @@
  mounted() {
    this.$eventBus.$on('applePeo', (res) => {
      this.$set(this.param, 'memberList', res)
      this.$set(this.param, 'memberIds', res.map(i => i.id).join(','))
      this.$set(this.param, 'memberIds', res.map(i => i.memberId).join(','))
      this.$set(this.param, 'memberNames', res.map(i => i.realname).join(','))
    })
  },
@@ -172,7 +134,7 @@
    console.log(option)
    this.param = { ...option }
    this.minDate = new Date().getTime()
        this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm')
    this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm')
  },
  methods: {
    handleSub() {
@@ -227,9 +189,10 @@
</script>
<style lang="scss">
    page{
        background-color: #f7f7f7;
    }
page {
  background-color: #f7f7f7;
}
.main_wrap {
  .line {
    display: flex;
@@ -237,12 +200,14 @@
    align-items: center;
    border-bottom: 1rpx solid #e5e5e5;
    padding: 30rpx;
        background-color: #fff;
        width: 750rpx;
        margin: 0 -30rpx;
    background-color: #fff;
    width: 750rpx;
    margin: 0 -30rpx;
    .label {
      font-size: 30rpx;
      font-weight: 400;
      text {
        &:nth-child(1) {
          color: #e42d2d;
@@ -250,6 +215,7 @@
        }
      }
    }
    .value {
      flex: 1;
      height: 100%;
@@ -257,6 +223,7 @@
      display: flex;
      align-items: center;
      justify-content: flex-end;
      input {
        width: 100%;
        height: 100%;
@@ -267,11 +234,13 @@
      }
    }
  }
  .upload_line {
    padding: 30rpx;
        width: 750rpx;
        margin: 0 -30rpx;
        background-color: #fff;
    width: 750rpx;
    margin: 0 -30rpx;
    background-color: #fff;
    textarea {
      margin-top: 12rpx;
      width: 100%;
@@ -280,6 +249,7 @@
      font-weight: 400;
      color: #222222;
    }
    .adduser_list_item_ipt1_upload {
      margin-top: 24rpx;
      width: 120rpx;
@@ -292,6 +262,7 @@
      align-items: center;
      justify-content: center;
      overflow: hidden;
      image {
        width: 100%;
        height: 100%;
@@ -299,11 +270,12 @@
    }
  }
}
.sub_btn {
  // position: fixed;
  // bottom: 84rpx;
  // left: 30rpx;
    margin-top: 60rpx;
  margin-top: 60rpx;
  width: 690rpx;
  height: 88rpx;
  line-height: 88rpx;
@@ -314,20 +286,24 @@
  font-size: 30rpx;
  color: #ffffff;
}
.tip {
  background: #f7f7f7;
  padding: 30rpx 30rpx 10rpx;
  margin: 0 -30rpx;
  .title {
    line-height: 40rpx;
    margin-bottom: 22rpx;
  }
  .line {
    font-size: 26rpx;
    color: #666666;
    line-height: 36rpx;
  }
}
.main_app {
  padding-bottom: 0;
  // padding-top: 10rpx;