jiangping
2025-03-07 a0285d19d00697757f99fc75a4e45778854f5af9
最新版本541200007
已修改45个文件
301 ■■■■■ 文件已修改
admin/src/assets/style/style.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/base/BasePage.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/base/BaseTable.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/Pagination.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/layouts/AppLayout.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/layouts/TableLayout.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/layouts/TableLayout1.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/utils/request.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/carEvent.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/dangerStatic.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/deviceBroadcast.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/deviceEvent.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/reportRecord.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/retention.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/retentionCars.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitEvent.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitorManagement.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visits.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/meeting/bookings.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/meeting/rooms.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/meeting/userStatistics.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/danger/areaSet.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/danger/record.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/danger/typeSet.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/apprConfig.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/apprRecord.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/driverConfig.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/leaveAuth.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/operation.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/operationCity.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/subscribe.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/waybill.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/gas.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/oil.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platform.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platformGroup.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platformReason.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/queueUp.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/set/application.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/smokebox.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/water.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/statistics/platformRecord.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/statistics/platformStatic.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/style/style.scss
@@ -141,6 +141,7 @@
  margin-top: 10px;
  margin-left: 16px;
  padding: 20px;
  height: calc(100% - 10px);
}
.fs12{
  font-size: 12px;
admin/src/components/base/BasePage.vue
@@ -4,6 +4,7 @@
  name: 'BasePage',
  data () {
    return {
      tableHeightNew: 300,
      // 超级管理员角色code
      adminCode: 'admin'
    }
@@ -15,7 +16,42 @@
      return this.userInfo.roles.findIndex(code => code === this.adminCode) > -1
    }
  },
  created() {
    this.computeTableHeight()
  },
  mounted () {
    this.computeTableHeight()
    window.addEventListener('resize', this.computeTableHeight)
  },
  activated() {
    this.computeTableHeight()
  },
  methods: {
    computeTableHeight () {
      this.$nextTick(() => {
        // const height = window.innerHeight
        const height = document.getElementsByClassName('el-container') && document.getElementsByClassName('el-container')[0]?document.getElementsByClassName('el-container')[0].clientHeight:0
        // alert(height)
        const height1 =  (document.getElementsByClassName('table-search-form') && document.getElementsByClassName('table-search-form')[0]? document.getElementsByClassName('table-search-form')[0].clientHeight:0)
        const height2 = document.getElementsByClassName('toolbar') && document.getElementsByClassName('toolbar')[0]?document.getElementsByClassName('toolbar')[0].clientHeight:0
        const height3 = document.getElementsByClassName('main-header') && document.getElementsByClassName('main-header')[0]?document.getElementsByClassName('main-header')[0].clientHeight:0
        const height4 = document.getElementsByClassName('table-pagination') && document.getElementsByClassName('table-pagination')[0]? document.getElementsByClassName('table-pagination')[0].clientHeight:0
        const height5 = document.getElementsByTagName('thead') && document.getElementsByTagName('thead')[0]? document.getElementsByTagName('thead')[0].clientHeight:0
        const height6 = document.getElementsByClassName('doumee-filter') && document.getElementsByClassName('doumee-filter')[0]? document.getElementsByClassName('doumee-filter')[0].clientHeight:0
        const height7 =( document.getElementsByClassName('pt16') && document.getElementsByClassName('pt16')[0]?  1+document.getElementsByClassName('pt16')[0].clientHeight:0)
        const height8 = document.getElementsByClassName('df_sb') && document.getElementsByClassName('df_sb')[0]? document.getElementsByClassName('df_sb')[0].clientHeight:0
        const height9 = document.getElementsByClassName('static_wrap') && document.getElementsByClassName('static_wrap')[0]? document.getElementsByClassName('df_sb')[0].clientHeight:0
        const height10 = document.getElementsByClassName('query_btns') && document.getElementsByClassName('query_btns')[0]? document.getElementsByClassName('query_btns')[0].clientHeight:0
        // this.tableHeightNew = height-height4-height3-height2-height1-height5-height6-height7-height8-height9 -height10// 打印高度
        if(document.getElementsByClassName('main_app') && document.getElementsByClassName('main_app')[0]){
          this.tableHeightNew = height- height5-height6-height2-height7-height4-height8-height9-height10// 打印高度
        }else{
          this.tableHeightNew = height-height4-height3-height2-height1-height5
        }
         console.log(this.tableHeightNew)
      })
    },
    // 是否包含指定角色
    containRoles (roles) {
      if (roles == null) {
admin/src/components/base/BaseTable.vue
@@ -44,6 +44,7 @@
    }
  },
  methods: {
    // 配置
    config (extParams) {
      if (extParams == null) {
admin/src/components/common/Pagination.vue
@@ -40,16 +40,16 @@
</script>
<style lang="scss" scoped>
.table-pagination {
  margin-left: -16px;
  padding: 0px 0px 16px 25px;
  margin-left: -18px;
  padding: 16px 0px 16px 25px;
  text-align: left;
  display: block;
  z-index: 100;
  width: -webkit-fill-available;
  /* width: 80%; */
  /* position: fixed;
  bottom: 30px;
  position: fixed;
  bottom: 25px;
  background-color: white;
  margin-right: 50px; */
  margin-right: 50px;
}
</style>
admin/src/layouts/AppLayout.vue
@@ -55,7 +55,6 @@
.el-container {
  background: #F7F8F9;
  height: 100%;
  display: flex;
  // overflow: hidden;
  overflow: scroll;
@@ -84,12 +83,13 @@
  .el-main {
    width: 100%;
    // height: 100%;
    height: calc(100vh - 90px);
    overflow: hidden;
    height: calc(100vh - 94px);
    padding: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow-y: scroll;
    //overflow-y: scroll;
    overflow-x: hidden;
    scrollbar-width: none; /* firefox */
    -ms-overflow-style: none; /* IE 10+ */
admin/src/layouts/TableLayout.vue
@@ -9,7 +9,7 @@
    <!-- <div style="height:10px;"></div> -->
    <Profile :roles="roles" :permissions="permissions">
      <!-- 搜索表单部分 -->
      <div class="table-search-form">
      <div class="table-search-form" ref="tableSearchForm">
        <div class="form-wrap">
          <slot name="search-form"></slot>
        </div>
@@ -56,8 +56,21 @@
<style lang="scss">
@import "@/assets/style/variables.scss";
/*.el-container .el-main[data-v-5b01577c] {
  width: 100%;
  height: calc(100vh - 68px);
  padding: 0;
  position: relative;
  display: flex
;
  flex-direction: column;
  overflow-y: scroll;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}*/
.table-layout {
  height: 100%;
  height: calc(100%-10px);
  display: flex;
  flex-direction: column;
  margin-top: 10px;
@@ -124,6 +137,8 @@
    }
    // 表格
    .el-table {
      //min-height: 300px;
      overflow: auto;
      th {
        .cell {
          color: #666;
@@ -157,17 +172,17 @@
    }
    // 分页
    .table-pagination {
      margin-left: -16px;
      margin-left: -18px;
      padding: 16px 0px 16px 25px;
      text-align: left;
      display: block;
      z-index: 100;
      width: -webkit-fill-available;
      /* width: 80%; */
      /* position: fixed;
      bottom: 30px;
      position: fixed;
      bottom: 25px;
      background-color: white;
      margin-right: 50px; */
      margin-right: 50px;
    }
  }
}
admin/src/layouts/TableLayout1.vue
@@ -158,17 +158,17 @@
            }
            // 分页
            .table-pagination {
              margin-left: -16px;
              margin-left: -18px;
              padding: 16px 0px 16px 25px;
              text-align: left;
              display: block;
              z-index: 100;
              width: -webkit-fill-available;
              /* width: 80%; */
              /* position: fixed;
              bottom: 30px;
               position: fixed;
              bottom: 25px;
              background-color: white;
              margin-right: 50px; */
              margin-right: 50px;
            }
        }
    }
admin/src/utils/request.js
@@ -10,7 +10,7 @@
const axiosInstance = axios.create({
  baseURL: process.env.VUE_APP_API_PREFIX,
  // 请求超时时间
  timeout: 60000
  timeout: 600000
})
// 新建请求拦截器
admin/src/views/business/carEvent.vue
@@ -47,7 +47,6 @@
        </section>
      </el-form>
    </div>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:carevent:exportExcel']">
@@ -60,7 +59,7 @@
            @click="exportExcel">导出</el-button>
        </li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe>
      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe>
        <el-table-column prop="personName" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="personPhone" label="手机号" min-width="100px"></el-table-column>
        <el-table-column prop="personCompanyName" label="组织" min-width="100px"></el-table-column>
admin/src/views/business/dangerStatic.vue
@@ -78,9 +78,9 @@
</script>
<style lang="scss" scoped>
.main_app {
/*.main_app {
  height: 100%;
}
}*/
.main_content {
  display: flex;
admin/src/views/business/deviceBroadcast.vue
@@ -16,6 +16,7 @@
                <li><el-button type="primary" @click="synchronousData">同步</el-button></li>
            </ul>
            <el-table
                :height="tableHeightNew"
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
admin/src/views/business/deviceEvent.vue
@@ -56,7 +56,7 @@
                <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:deviceevent:exportExcel']" @click="exportExcel">导出</el-button></li>
-->
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe>
      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe>
        <!-- <el-table-column prop="userType" label="人员类型" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.personType == 0">劳务访客</span>
admin/src/views/business/reportRecord.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main_app" style="padding-bottom: 60px">
  <div class="main_app" >
    <QueryForm
      v-model="filters"
      :query-form-config="queryFormConfig"
@@ -11,6 +11,7 @@
      <el-button type="primary" :loading="exLoading" @click="exportExcel" v-permissions="['business:visits:exportExcel']">导出</el-button>
    </div>
    <el-table
      :height="tableHeightNew"
      v-loading="loading"
      :data="dataList"
      stripe
@@ -105,10 +106,12 @@
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
// import ReportDetail from './page-components/ReportDetail.vue'
import BasePage from '@/components/base/BasePage'
import ReportDetail from '@/views/task/visReportDetail.vue'
import OperaVisitsReportWindow from '@/components/business/operaVisitsReportWindow.vue'
import { fetchList, exportExcel, deleteById } from '@/api/business/visits'
export default {
  extends: BasePage,
  components: {
    ReportDetail,
    QueryForm,
@@ -237,16 +240,16 @@
<style lang="scss" scoped>
.table-pagination {
  margin-left: -16px;
  margin-left: -18px;
  padding: 16px 0px 16px 25px;
  text-align: left;
  display: block;
  z-index: 100;
  width: -webkit-fill-available;
  /* width: 80%; */
  /* position: fixed;
  bottom: 30px;
  position: fixed;
  bottom: 25px;
  background-color: white;
  margin-right: 50px; */
  margin-right: 50px;
}
</style>
admin/src/views/business/retention.vue
@@ -45,7 +45,7 @@
            @click="exportExcel">导出</el-button>
        </li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe
      <el-table :height="tableHeightNew" 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="name" label="姓名" min-width="100px"></el-table-column>
admin/src/views/business/retentionCars.vue
@@ -49,7 +49,7 @@
            @click="exportExcel">导出</el-button>
        </li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
      <el-table :height="tableHeightNew" 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="createDate" label="进场时间" min-width="150px"></el-table-column>
        <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column>
admin/src/views/business/visitEvent.vue
@@ -55,7 +55,7 @@
        <li class="ml20"> 拜访人次:<span class="primaryColor">{{staticObj.eventNum}}次</span></li>
        <li class="ml20"> 拜访人数:<span class="primaryColor">{{staticObj.visitorNum}}人</span></li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe>
      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe>
        <el-table-column prop="personName" label="姓名" min-width="90px"></el-table-column>
        <el-table-column prop="phone" label="手机号码" min-width="100px"></el-table-column>
        <el-table-column prop="idcardDecode" label="身份证号码" min-width="120px"></el-table-column>
admin/src/views/business/visitorManagement.vue
@@ -26,6 +26,7 @@
                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">删除</el-button></li>
            </ul>
            <el-table
                :height="tableHeightNew"
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
admin/src/views/business/visits.vue
@@ -42,7 +42,7 @@
        <li><el-button type="primary" :loading="isWorking.export" @click="exportExcel"
            v-permissions="['business:visits:exportExcel']">导出</el-button></li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe
      <el-table :max-height="tableHeightNew" 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="name" label="访客姓名" min-width="100px"></el-table-column>
admin/src/views/meeting/bookings.vue
@@ -1,5 +1,5 @@
<template>
  <TableLayout :permissions="['business:bookings:query']">
  <TableLayout rel="tableLayoutEle" :permissions="['business:bookings:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="会议室" prop="roomId">
@@ -55,7 +55,7 @@
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="[
      <ul class="toolbar" ref="toolbarEle" v-permissions="[
        'business:bookings:create',
        'business:bookings:exportExcel',
      ]">
@@ -69,7 +69,7 @@
            @click="exportExcel">导出</el-button>
        </li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
      <el-table :height="tableHeightNew" 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 }">
@@ -82,6 +82,10 @@
          </template>
        </el-table-column>
        <el-table-column prop="meetingTime" label="会议时间" align="center" min-width="120px"></el-table-column>
        <el-table-column prop="meetingTime" label="会议时间" align="center" min-width="120px"></el-table-column>
        <el-table-column prop="meetingTime" label="会议时间" align="center" min-width="120px"></el-table-column>
        <el-table-column prop="meetingTime" label="会议时间" align="center" min-width="400px"></el-table-column>
        <el-table-column prop="meetingTime" label="会议时间" align="center" min-width="300px"></el-table-column>
        <el-table-column prop="managerInfo" label="预约人" align="center" min-width="100px"></el-table-column>
        <el-table-column label="会议状态" align="center" min-width="60px">
          <template slot-scope="{ row }">
@@ -275,7 +279,7 @@
    handleStart(row) {
      this.$dialog.messageWaring('开始会议', '是否开始当前会议?')
        .then(() => {
          let fn = new Date(row.startTime).getTime() > new Date().getTime() ? startEarlyById : startById
          const fn = new Date(row.startTime).getTime() > new Date().getTime() ? startEarlyById : startById
          fn({ id: row.id })
            .then(() => {
              this.$message.success('会议已开始')
admin/src/views/meeting/rooms.vue
@@ -38,6 +38,7 @@
        <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:rooms:delete']">删除</el-button></li> -->
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/meeting/userStatistics.vue
@@ -45,6 +45,7 @@
        <li><el-button :loading="isWorking.export" @click="exportExcel">导出</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/operation/danger/areaSet.vue
@@ -20,6 +20,7 @@
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:hiddendangerparam:delete']">批量删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
          v-loading="isWorking.search"
          :data="tableData.list"
          stripe
admin/src/views/operation/danger/record.vue
@@ -60,7 +60,7 @@
        <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" :height="tableHeightNew" stripe @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="dutyCompanyName" show-overflow-tooltip label="责任部门" min-width="150px"></el-table-column>
        <el-table-column prop="areaName" label="隐患区域" show-overflow-tooltip min-width="150px"></el-table-column>
admin/src/views/operation/danger/typeSet.vue
@@ -17,6 +17,7 @@
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:hiddendangerparam:delete']">批量删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
          v-loading="isWorking.search"
          :data="tableData.list"
          stripe
admin/src/views/operation/serviceCar/apprConfig.vue
@@ -1,5 +1,5 @@
<template>
  <TableLayout>
  <TableLayout :style="'overflow: auto;height: 100%;'">
    <template v-slot:table-wrap>
      <el-tabs v-model="activeType" @tab-click="handleClick">
        <el-tab-pane label="市内用车" name="3"></el-tab-pane>
@@ -207,6 +207,7 @@
  },
  data() {
    return {
      height: 500,
      activeType: '3',
      subLoading: false,
      apprList: [
@@ -225,6 +226,7 @@
  created() {
    this.getfindCompanyTreePage()
    this.initDate()
    this.height = window.innerHeight -300
  },
  methods: {
    handleClick() {
@@ -400,6 +402,9 @@
</script>
<style lang="scss" scoped>
 .el-container .el-main{
  overflow: auto !important;
}
.config {
  width: 100%;
  padding-bottom: 20px;
admin/src/views/operation/serviceCar/apprRecord.vue
@@ -77,7 +77,7 @@
          >
        </li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe
      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe
        @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column
admin/src/views/operation/serviceCar/driverConfig.vue
@@ -17,6 +17,7 @@
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cardriver:delete']">批量删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
          v-loading="isWorking.search"
          :data="tableData.list"
          stripe
admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -14,7 +14,7 @@
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
    <el-table :height="tableHeightNew"  v-loading="loading" :data="list" stripe>
      <el-table-column type="index" label="序号" width="70" show-overflow-tooltip />
      <el-table-column prop="billCode" label="运单号/合同号" min-width="100" show-overflow-tooltip>
        <template v-slot="scope">
@@ -67,6 +67,7 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import BasePage from '@/components/base/BasePage'
import { platformJobPage, platformJobExport, platformPowerLevel } from '@/api'
import { statusMap } from '../config'
import DriverDetail from "@/views/task/driverDetail"
@@ -82,6 +83,7 @@
    GlobalWindow,
    UploadFaceImg
  },
  extends: BasePage,
  data() {
    return {
      statusMap,
admin/src/views/platform/LogisticsRecord/operation.vue
@@ -16,7 +16,7 @@
    <div class="pt16">
      <el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
    <el-table :height="tableHeightNew"   v-loading="loading" :data="list" stripe>
      <el-table-column prop="billCode" label="运单号" min-width="100" show-overflow-tooltip />
      <el-table-column prop="totalNum" label="总作业量(万支)" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeFront" label="车牌前照号" min-width="100" show-overflow-tooltip />
@@ -57,8 +57,10 @@
import { Message } from 'element-ui'
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
import BasePage from '@/components/base/BasePage'
dayjs.extend(duration);
export default {
  extends: BasePage,
  components: {
    Pagination,
    QueryForm,
admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -14,7 +14,7 @@
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
    <el-table :height="tableHeightNew"  v-loading="loading" :data="list" stripe>
      <el-table-column prop="contractNum" label="合同号" min-width="100" show-overflow-tooltip />
      <el-table-column prop="reason" label="入园原因" min-width="100" show-overflow-tooltip />
      <el-table-column prop="totalNum" label="总作业量(万支)" min-width="120" show-overflow-tooltip />
@@ -50,14 +50,16 @@
import QueryForm from '@/components/common/QueryForm'
import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
import { statusMap } from '../config'
import DriverDetail from "@/views/task/driverDetail"
import DriverDetail from '@/views/task/driverDetail'
import GlobalWindow from '@/components/common/GlobalWindow'
import UploadFaceImg from '@/components/common/UploadFaceImg'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
import BasePage from '@/components/base/BasePage'
dayjs.extend(duration)
export default {
  extends: BasePage,
  components: {
    Pagination,
    QueryForm,
admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -16,7 +16,7 @@
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformbooks:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb40" v-loading="loading" :data="list" stripe>
    <el-table :height="tableHeightNew" v-loading="loading" :data="list" stripe>
      <el-table-column prop="contractNum" label="合同单号" min-width="100" show-overflow-tooltip />
      <el-table-column prop="inReason" label="入园原因" min-width="100" show-overflow-tooltip />
      <el-table-column prop="totalNum" label="总作业量(万支)" min-width="100" show-overflow-tooltip />
@@ -105,6 +105,7 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import BasePage from '@/components/base/BasePage'
import { platformBooksPage, platformReasonList, platformBooksApply, platformBooksExport } from '@/api'
import { checkSurplusNum, deletebooksById } from '@/api/platform/platform'
import DriverDetail from '@/views/task/driverDetail'
@@ -120,6 +121,7 @@
    GlobalWindow,
    UploadAvatarImage
  },
  extends: BasePage,
  data () {
    return {
      isShowDriver: false,
admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -14,7 +14,7 @@
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
    <el-table :height="tableHeightNew" v-loading="loading" :data="list" stripe>
      <el-table-column prop="billCode" label="运单号" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeFront" label="车牌前照号" min-width="100" show-overflow-tooltip />
      <!-- <el-table-column prop="carCodeBack" label="车牌后照号" min-width="100" show-overflow-tooltip /> -->
@@ -61,6 +61,7 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import BasePage from '@/components/base/BasePage'
import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
import { statusMap } from '../config'
import WaybillDetailRef from "../components/WaybillDetail.vue"
@@ -76,6 +77,7 @@
    GlobalWindow,
    UploadFaceImg
  },
  extends: BasePage,
  data() {
    return {
      statusMap,
admin/src/views/platform/gas.vue
@@ -26,6 +26,7 @@
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">导出</el-button>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/platform/index.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main_app">
  <div class="main_app" style="overflow: auto;height: calc(100% - 100px);">
    <div class="mb20 main_header">
      <div class="platgroup_tabs">
        <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
admin/src/views/platform/oil.vue
@@ -31,7 +31,8 @@
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:platformwatergas:exportExcel']"
          @click="handleImport">导入</el-button>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
      <el-table
          :height="tableHeightNew" 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="车牌号" fixed min-width="150px"></el-table-column>
        <el-table-column prop="timeInfo" label="使用月份" fixed min-width="100px">
admin/src/views/platform/platform.vue
@@ -29,7 +29,8 @@
        <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus"
            v-permissions="['business:hksync:platforms']">同步实时状态</el-button></li>
      </ul>
      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
      <el-table
          :height="tableHeightNew" 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="name" label="月台名称" fixed min-width="100px"></el-table-column>
        <el-table-column prop="code" label="月台编码" fixed min-width="100px"></el-table-column>
admin/src/views/platform/platformGroup.vue
@@ -7,6 +7,7 @@
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformgroup:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/platform/platformReason.vue
@@ -27,7 +27,7 @@
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:platformreason:delete']">删除</el-button></li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
      <el-table :height="tableHeightNew"  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="reason" label="入园原因" fixed min-width="100px"></el-table-column>
        <el-table-column prop="groupName" label="对应作业月台组" fixed min-width="150px"></el-table-column>
admin/src/views/platform/queueUp.vue
@@ -21,7 +21,7 @@
        <span></span>
      </div>
    </div>
    <el-table v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
    <el-table :height="tableHeightNew" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
      <el-table-column type="index" label="序号" width="80" />
      <el-table-column label="车牌号" width="130">
        <template slot-scope="{ row }">
@@ -105,6 +105,7 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import BasePage from '@/components/base/BasePage'
import {
  getPlatformGroupList,
  platformLineUpPage,
@@ -115,6 +116,7 @@
import DriverDetail from "@/views/task/driverDetail.vue"
import PlatformSign from './components/PlatformSign.vue'
export default {
  extends: BasePage,
  components: {
    Pagination,
    QueryForm,
admin/src/views/platform/set/application.vue
@@ -1,5 +1,5 @@
<template>
    <div class="main_app">
    <div class="main_app" style="overflow: auto;height: calc(100% - 100px);">
    <el-form
      :model="form"
      :rules="rules"
admin/src/views/platform/smokebox.vue
@@ -27,6 +27,8 @@
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">导出</el-button>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/platform/water.vue
@@ -27,6 +27,7 @@
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">导出</el-button>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
admin/src/views/statistics/platformRecord.vue
@@ -1,7 +1,7 @@
<template>
  <div class="main_app">
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
    <el-table    v-loading="loading" :data="list" stripe>
    <el-table   :height="tableHeightNew"  v-loading="loading" :data="list" stripe>
      <el-table-column prop="platformName" label="月台名称" min-width="100" show-overflow-tooltip />
      <el-table-column prop="platformGroupName" label="月台组" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeFront" label="车前牌照号" min-width="100" show-overflow-tooltip />
@@ -24,11 +24,13 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import BasePage from '@/components/base/BasePage'
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
import { platformLogPage, getPlatformGroupList } from '@/api'
dayjs.extend(duration)
export default {
  extends: BasePage,
  components: {
    Pagination,
    QueryForm
admin/src/views/statistics/platformStatic.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main_app">
  <div class="main_app" style="overflow: auto;height: calc(100% - 100px);">
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear">
      <template #fastdate>
        <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -30,6 +30,7 @@
    private static final String DEFAULT_SHEET_NAME = "Sheet1";
    private Class<T> modelClass;
    private static int maxrows = 50000;
    private ExcelExporter(){}
@@ -76,6 +77,11 @@
                // 设置列头单元格
                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
            }
            List<CellStyle> styleList = new ArrayList<>();
            for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
                ColumnInfo column = columns.get(columnIndex);
                styleList.add( configDataCell(sxssfWorkbook,   column.columnConfig));
            }
            // 创建数据记录
            for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
                Row row = sheet.createRow(rowIndex + 2);
@@ -83,20 +89,15 @@
                    ColumnInfo column = columns.get(columnIndex);
                    Cell cell = row.createCell(columnIndex);
                    cell.setCellValue(getCellData(column, data.get(rowIndex)));
                    // 设置数据单元格
                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
                    cell.setCellStyle(styleList.get(columnIndex));
                }
            }
            sheet.addMergedRegion(new CellRangeAddress(data.size()+2   ,data.size()+2,0,this.getColumns().size()-1));
            Row endRow = sheet.createRow(data.size()+2);
//            endRow.setHeight((short) 600);
            Cell c1 = endRow.createCell(0);
            c1.setCellValue(end);
            configEndCell(sxssfWorkbook,c1);
            c1.setCellStyle(  configEndCell(sxssfWorkbook));
            sxssfWorkbook.write(os);
            os.close();
        } catch (Exception e) {
@@ -122,6 +123,38 @@
        SXSSFWorkbook sxssfWorkbook;
        try {
            sxssfWorkbook = new SXSSFWorkbook();
            int totalSheet =1;
            if( data!=null && data.size()>0){
                totalSheet = data.size()/maxrows;
                if(data.size()%maxrows !=0){
                    totalSheet += 1;
                }
            }
            for (int i = 0; i < totalSheet; i++) {
                List<T> list = null;
                if(data.size() < maxrows * (i+1)) {
                    list = data.subList(maxrows*i,data.size());
                }else{
                    list = data.subList(maxrows*i,maxrows*(i+1));
                }
                createSheetDataBiz(list,"【"+(i+1)+"】"+sheetName,sxssfWorkbook);
            }
            sxssfWorkbook.write(os);
            os.close();
        } catch (Exception e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    private void createSheetDataBiz(List<T> data, String sheetName, SXSSFWorkbook sxssfWorkbook) throws Exception{
            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
            // 创建列头
            sheet.createFreezePane(0, 1);
@@ -140,6 +173,11 @@
                // 设置列头单元格
                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
            }
        List<CellStyle> styleList = new ArrayList<>();
        for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
            ColumnInfo column = columns.get(columnIndex);
            styleList.add( configDataCell(sxssfWorkbook,   column.columnConfig));
        }
            // 创建数据记录
            for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
                Row row = sheet.createRow(rowIndex + 1);
@@ -147,23 +185,8 @@
                    ColumnInfo column = columns.get(columnIndex);
                    Cell cell = row.createCell(columnIndex);
                    cell.setCellValue(getCellData(column, data.get(rowIndex)));
                    // 设置数据单元格
                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
                }
            }
            sxssfWorkbook.write(os);
            os.close();
        } catch (Exception e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                // 设置数据单元格样式
                cell.setCellStyle(styleList.get(columnIndex));
            }
        }
    }
@@ -251,13 +274,13 @@
    /**
     * 配置数据单元格
     */
    private void configDataCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
        CellStyle style = workbook.createCellStyle();
        style.setAlignment(columnConfig.align());
        style.setVerticalAlignment(VerticalAlignment.CENTER);
    private CellStyle configDataCell (SXSSFWorkbook workbook, ExcelColumn columnConfig) {
            CellStyle  configDataCellStyle = workbook.createCellStyle();
            configDataCellStyle.setAlignment(columnConfig.align());
            configDataCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // 设置背景
        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        style.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
            configDataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
            configDataCellStyle.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
        // 字体
        Font font = workbook.createFont();
        font.setFontHeightInPoints(columnConfig.fontSize());
@@ -267,11 +290,13 @@
        font.setBold(columnConfig.bold());
        // 斜体
        font.setItalic(columnConfig.italic());
        style.setFont(font);
            configDataCellStyle.setFont(font);
        // 边框
        configCellBorder(style);
        style.setWrapText(true);
        cell.setCellStyle(style);
            configCellBorder(configDataCellStyle);
            configDataCellStyle.setWrapText(true);
        return configDataCellStyle;
//        cell.setCellStyle(configDataCellStyle);
    }
    /**
@@ -310,10 +335,11 @@
        configCellBorder(style);
        cell.setCellStyle(style);
    }
//    public static CellStyle configEndCellStyle =null;
    /**
     * 配置列头单元格
     */
    private void configEndCell (SXSSFWorkbook workbook, Cell cell ) {
    private CellStyle configEndCell (SXSSFWorkbook workbook ) {
        CellStyle style = workbook.createCellStyle();
        style.setAlignment(HorizontalAlignment.RIGHT);
        style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -326,7 +352,8 @@
        style.setFont(font);
        // 设置边框
        configCellBorder(style);
        cell.setCellStyle(style);
        return style;
    }
    /**