LiGuang 2 년 전
부모
커밋
5bd19272e2

+ 10 - 1
src/views/system/AttendanceRuleList.vue

@@ -41,7 +41,8 @@
       <a-upload style="margin-right: 20px;" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
-      <a-button @click="handleAddts()" type="primary" icon="plus" v-has="'UserShift:add'" v-if="isColse">调整</a-button>
+      <a-button type="primary" icon="download" @click="handleExportXls('员工排班信息')" >导出</a-button>
+      <a-button @click="handleAddts()" type="primary" icon="plus" v-has="'UserShift:add'" v-if="isColse" style="margin-left: 20px;">调整</a-button>
       <a-tabs default-active-key="2" @change="callback">
         <a-tab-pane key="2" tab="按班次上下班">
           <a-table bordered rowKey="id" :loading="loading" :data-source="dataSource" :columns="columns"
@@ -205,6 +206,11 @@
           type: "2",
           dept: null
         },
+        ipagination:{
+          
+          pageSize: 30,
+        
+        },
         description: '打卡规则管理页面',
         tts: false,
         isColse: true,
@@ -251,6 +257,7 @@
           delUserShift: '/userShift/userShift/delete',
           lists: "/sys/user/queryMothByCount",
           importExcelUrl: "userShift/userShift/importExcel",
+          exportXlsUrl: "/sys/user/exportXlsty",
         },
       }
     },
@@ -270,9 +277,11 @@
     },
     created() {
       // this.getListData(null)
+      
       this.initData(null)
       this.queryShift()
       this.queryMothByCount();
+      
     },
 
     methods: {

+ 130 - 28
src/views/system/UserChange.vue

@@ -28,8 +28,8 @@
             
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" style="margin-left: 30px;" icon="download" @click="handleExportXls('离职信息')" v-has='"change:export"'>导出</a-button>
+              <a-button type="primary" @click="searchQueryt" icon="search">查询</a-button>
+              <a-button type="primary" style="margin-left: 30px;" icon="download" @click="handleExportXls('离职信息')" >导出</a-button>
               <a @click="handleToggleSearch" style="margin-left: 8px">
                 {{ toggleSearchStatus ? '收起' : '展开' }}
                 <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
@@ -37,6 +37,7 @@
             </span>
           </a-col>
         </a-row>
+        
         <template v-if="toggleSearchStatus">
           <a-row>
             <a-col :md="6" :sm="8">
@@ -79,33 +80,44 @@
                dictCode="state" />
             </a-form-item>
           </a-col>
-          <a-col :md="6" :sm="5">
-            <a-form-item label="生效日期">
-                  <a-range-picker
-                    style="width: 210px"
-                    format="YYYY-MM-DD"
-                    :placeholder="['开始时间', '结束时间']"
-                    @change="onDateChange"
-                    
-                  />
-            </a-form-item>
-          </a-col>
+          
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuerys()" icon="search">查询</a-button>
+              <a-button type="primary" icon="download" @click="handleExportXlst('人事变动信息')" style="margin-left: 30px;">导出</a-button>
+           <a @click="handleToggleSearchs" style="margin-left: 8px">
+             {{ toggleSearchStatuss ? '收起' : '展开' }}
+             <a-icon :type="toggleSearchStatuss ? 'up' : 'down'"/>
+           </a>
             </span>
+            
           </a-col>
         </a-row>
+        <template v-if="toggleSearchStatuss">
+          <a-row>
+            <a-col :md="6" :sm="5">
+              <a-form-item label="生效日期">
+                    <a-range-picker
+                      style="width: 210px"
+                      format="YYYY-MM-DD"
+                      :placeholder="['开始时间', '结束时间']"
+                      @change="onDateChange"
+                      
+                    />
+              </a-form-item>
+            </a-col>
+          
+          </a-row>
+        </template>
       </a-form>
     </div>
-
-
+ 
       <a-tabs default-active-key="1" @change="callback">
+        
         <a-tab-pane key="1" tab="离职">
     <!-- table区域-begin -->
     <div>
-     
-
+      <span v-if="isShows"  style="float: right;color: red;font-size: 18px;">离职率:{{quitCount}}%</span>
       <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
         :pagination="ipagination" :loading="loading" class="j-table-force-nowrap"
          @change="handleTableChange">
@@ -136,6 +148,7 @@
     </div>
     <!-- table区域-end -->
 </a-tab-pane>
+
 <a-tab-pane key="2" tab="人事变动">
   <div>
   
@@ -168,6 +181,9 @@
     </a-table>
   </div>
 </a-tab-pane>
+<!-- <a-tab-pane style="color: red;" disabled	 :tab="'离职率:'+quitCount+'%'">
+          
+</a-tab-pane> -->
 </a-tabs>
 
     <!-- 表单区域 -->
@@ -178,12 +194,13 @@
 
 <script>
   import '@/assets/less/TableExpand.less'
-  import { httpAction,getAction } from '@/api/manage'
+  import { httpAction,getAction,downFile } from '@/api/manage'
   import UserContractModal from './modules/UserContractModal'
   import departWindow from './modules/DepartWindow'
   import moment from "moment"
   import pick from 'lodash.pick'
   import JInput from '@/components/jeecg/JInput'
+  import { filterObj } from '@/utils/util';
   import {
     JeecgListMixin
   } from '@/mixins/JeecgListMixin'
@@ -202,6 +219,13 @@
         dataSources:[],
         isShow:1,
         loadings:false,
+        quitCount:0,
+        isShows:false,
+        toggleSearchStatuss:false,
+        isorters:{
+          column: 'conmitDate',
+          order: 'desc',
+        },
         departNames:null,
         queryParam:{
           deptId:null
@@ -299,50 +323,65 @@
             },
           }
         ],columns2: [
+          {
+            title: '工号',
+            align: "center",
+            dataIndex: 'workNo',
+            sorter: true,
+          },
           {
             title: '姓名',
             align: "center",
-            dataIndex: 'realname'
+            dataIndex: 'realname',
+            sorter: true,
           },
           {
             title: '类型',
             align: "center",
             dataIndex: 'type',
+            sorter: true,
           },
           {
             title: '原部门',
             align: "center",
-            dataIndex: 'deptName'
+            dataIndex: 'deptName',
+            sorter: true,
           },
           {
             title: '新部门',
             align: "center",
-            dataIndex: 'newDeptName'
+            dataIndex: 'newDeptName',
+            sorter: true,
           },
           {
             title: '原职位',
             align: "center",
-            dataIndex: 'startPost'
+            dataIndex: 'startPost',
+            sorter: true,
           },
           {
             title: '新职位',
             align: "center",
-            dataIndex: 'endPost'
+            dataIndex: 'endPost',
+            sorter: true,
           },
           {
             title: '原薪资',
             align: "center",
-            dataIndex: 'startWages'
+            dataIndex: 'startWages',
+            sorter: true,
           },
           {
             title: '调整后薪资',
             align: "center",
-            dataIndex: 'endWages'
+            dataIndex: 'endWages',
+            sorter: true,
           },
           {
             title: '生效日期',
             align: "center",
             dataIndex: 'time',
+            sorter: true,
             customRender: function(t, r, index) {
               return moment(t).format('YYYY-MM-DD');
             }
@@ -351,12 +390,14 @@
             title: '备注',
             align: "center",
             dataIndex: 'demo',
+            sorter: true,
             ellipsis: true,
           },
          {
            title: '状态',
            align: "center",
            dataIndex: 'state_dictText',
+           sorter: true,
            scopedSlots: {
              customRender: 'changeType'
            },
@@ -379,7 +420,7 @@
         toggleSearchStatus:false,
         ipaginations:{
           current: 1,
-          pageSize: 20,
+          pageSize: 10,
           pageSizeOptions: ['10', '20', '30'],
           showTotal: (total, range) => {
             return range[0] + "-" + range[1] + " 共" + total + "条"
@@ -391,9 +432,11 @@
         url: {
           list: "/userquit/userQuit/list",
           list2: "/userchange/userChage/list",
+          quitCount:"/userquit/userQuit/queryByDate",
           delete: "/usercontract/userContract/delete",
           deleteBatch: "/usercontract/userContract/deleteBatch",
           exportXlsUrl: "userquit/userQuit/exportXls",
+          exportXlsUrls: "/userchange/userChage/exportXls",
           importExcelUrl: "usercontract/userContract/importExcel",
           update:"/sys/user/userQuitEdit",
           updateChage:"/sys/user/userChageEdit"
@@ -406,9 +449,58 @@
       }
     },
     methods: {
+      searchQueryt(){
+        this.isShows=false;
+        this.$options.methods.searchQuery.call(this);
+        var date=this.queryParam.spNo;
+        if(date!=null&&date!=","&&date!=""){
+          this.isShows=true;
+          var dates=date.split(",");
+          getAction(this.url.quitCount,{startDate:dates[0],endDate:dates[1]}).then((res)=>{
+            if(res.success){
+             this.quitCount= res.result;
+            }
+          })
+        }
+      },
+      handleExportXlst(fileName){
+        var param = Object.assign(this.queryParam2, this.isorters);
+        param.pageNo = this.ipaginations.current;
+        param.pageSize = this.ipaginations.pageSize;
+      
+        if(!fileName || typeof fileName != "string"){
+          fileName = "导出文件"
+        }
+        downFile(this.url.exportXlsUrls,param).then((data)=>{
+          if (!data) {
+            this.$message.warning("文件下载失败")
+            return
+          }
+          if (typeof window.navigator.msSaveBlob !== 'undefined') {
+            window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')
+          }else{
+            let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'}))
+            let link = document.createElement('a')
+            link.style.display = 'none'
+            link.href = url
+            link.setAttribute('download', fileName+'.xls')
+            document.body.appendChild(link)
+            link.click()
+            document.body.removeChild(link); //下载完成移除元素
+            window.URL.revokeObjectURL(url); //释放掉blob对象
+          }
+        })
+      },
+      handleToggleSearchs(){
+        this.toggleSearchStatuss = !this.toggleSearchStatuss;
+      },
       onDateChanges: function (value, dateString) {
         this.queryParam.spNo=dateString[0]+","+dateString[1];
       
+      },
+      onDateChange: function (value, dateString) {
+        this.queryParam2.newDeptName=dateString[0]+","+dateString[1];
+      
       },
       modalFormOks(formData) {
         if (formData.departIdList != null && formData.departIdList.length > 0) {
@@ -446,17 +538,23 @@
       callback(key) {
         this.isShow=key;
         if(key==1||key=='1'){
+           this.queryParam.spNo="";
           this.$options.methods.searchQuery.call(this)
+          this.toggleSearchStatuss=false;
+          this.isShows=false;
         }else if(key==2||key=='2'){
           this.toggleSearchStatus=false;
+          this.queryParam2.newDeptName=null;
           this.querys()
         }
       },
       querys(){
         this.loadings=true;
-        let param = Object.assign({},this.queryParam2);
+        var param = Object.assign(this.queryParam2, this.isorters);
         param.pageNo = this.ipaginations.current;
         param.pageSize = this.ipaginations.pageSize;
+        
+        
         getAction(this.url.list2,param).then((res)=>{
           if(res.success){
            this.dataSources = res.result.records||res.result;
@@ -492,7 +590,11 @@
       handleTableChanges(pagination, filters, sorter) {
         //分页、排序、筛选变化时触发
         //TODO 筛选
-        this.ipagination = pagination;
+        if (Object.keys(sorter).length > 0) {
+          this.isorters.column = sorter.field;
+          this.isorters.order = "ascend" == sorter.order ? "asc" : "desc"
+        }
+        this.ipaginations = pagination;
         this.querys();
       },
     }

+ 76 - 22
src/views/system/UserContractList.vue

@@ -18,26 +18,15 @@
              
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="部门名称">
-                <a-input @click="openModal" placeholder="请点击选择部门" v-model="departNames" readOnly >
-                  <a-icon slot="prefix" type="cluster" title="部门选择控件"/>
-                  <a-icon v-if="queryParam.deptId!=null&&queryParam.deptId!=''" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
-                </a-input>
-              </a-form-item>
-            </a-col>
-            <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="开始时间">
-              <a-input placeholder="请输入开始时间" v-model="queryParam.startDate"></a-input>
-            </a-form-item>
-          </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="结束时间">
-              <a-input placeholder="请输入结束时间" v-model="queryParam.endDate"></a-input>
+            <a-form-item label="部门名称">
+              <a-input @click="openModal" placeholder="请点击选择部门" v-model="departNames" readOnly >
+                <a-icon slot="prefix" type="cluster" title="部门选择控件"/>
+                <a-icon v-if="queryParam.deptId!=null&&queryParam.deptId!=''" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
+              </a-input>
             </a-form-item>
-          </a-col> -->
-          </template>
+          </a-col>
+          
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
@@ -48,8 +37,46 @@
               </a>
             </span>
           </a-col>
-
         </a-row>
+        
+          <template v-if="toggleSearchStatus">
+            <a-row>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24" >
+                <a-form-item label="合同结束日期">
+                      <a-range-picker
+                        style="width: 210px"
+                        format="YYYY-MM-DD"
+                        :placeholder="['开始时间', '结束时间']"
+                        @change="onDateChanges"
+                        
+                      />
+                </a-form-item>
+              </a-col>
+              <a-col :xl="6" :lg="7" :md="8" :sm="24">
+                <a-form-item label="到期状态">
+                  <j-dict-select-tag v-model="queryParam.state"  placeholder="请选择到期状态"
+                    dictCode="con_state" />
+                 
+                </a-form-item>
+              </a-col>
+              
+            <!-- <a-col :md="6" :sm="8">
+              <a-form-item label="到期状态">
+                <a-select placeholder="请选择到期状态"
+                v-model="queryParam.state"
+                  :getPopupContainer="(target) => target.parentNode">
+                  <a-select-option value="">请选择</a-select-option>
+                  <a-select-option :value="0">正常</a-select-option>
+                  <a-select-option :value="1">已过期</a-select-option>
+                  <a-select-option :value="2">临近到期</a-select-option>
+                  <a-select-option :value="3">即将到期</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col> -->
+          </a-row>
+          </template>
+        
+        
       </a-form>
     </div>
 
@@ -84,7 +111,11 @@
       <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
         :pagination="ipagination" :loading="loading" class="j-table-force-nowrap"
         :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange">
-
+        <span slot="state" slot-scope="text, record">
+          <a-tag color="#cd201f" v-if="text=='即将到期'">{{text}}</a-tag>
+          <a-tag color="#FFCC00" v-else-if="text=='临近到期'">{{text}}</a-tag>
+          <a-tag  v-else>{{text}}</a-tag>
+        </span>
         <span slot="action" slot-scope="text, record">
           <a @click="handleEdit(record)" v-has='"contract:edit"'>编辑</a>
 
@@ -138,10 +169,17 @@
         },
         // 表头
         columns: [
+          {
+            title: '工号',
+            align: "center",
+            dataIndex: 'workNo',
+            sorter: true
+          },
           {
             title: '姓名',
             align: "center",
-            dataIndex: 'realname'
+            dataIndex: 'realname',
+            sorter: true
           },
           {
             title: '一级部门',
@@ -161,12 +199,14 @@
           {
             title: '合同类型',
             align: "center",
-            dataIndex: 'contractType_dictText'
+            dataIndex: 'contractType_dictText',
+            sorter: true
           },
           {
             title: '开始时间',
             align: "center",
             dataIndex: 'startDate',
+            sorter: true,
             customRender: function(t, r, index) {
               return moment(t).format('YYYY-MM-DD');
             }
@@ -175,10 +215,20 @@
             title: '结束时间',
             align: "center",
             dataIndex: 'endDate',
+            sorter: true,
             customRender: function(t, r, index) {
               return moment(t).format('YYYY-MM-DD');
             }
           },
+          {
+            title: '到期状态',
+            align: "center",
+            dataIndex: 'state',
+            sorter: true,
+            scopedSlots: {
+              customRender: 'state'
+            },
+          },
           {
             title: '操作员',
             dataIndex: 'createBy_dictText',
@@ -219,6 +269,10 @@ modalFormOks(formData) {
         
         }
       
+      },
+      onDateChanges: function (value, dateString) {
+        this.queryParam.deptName2=dateString[0]+","+dateString[1];
+      
       },
       openModal(){
         var ls=[];

+ 157 - 108
src/views/system/modules/AttendanceRuleModal.vue

@@ -1,5 +1,6 @@
 <template>
-  <j-modal title="排班" :width="1000" :visible="visible" @ok="saves()" :fullscreen="true" switchFullscreen @cancel="handleCancel">
+  <j-modal title="排班" :width="1000" :visible="visible" @ok="saves()" :fullscreen="true" switchFullscreen
+    @cancel="handleCancel">
 
     <a-spin :spinning="confirmLoading">
       <!-- <a-form :form="form">
@@ -54,32 +55,28 @@
       <div v-if="types=='2'">
         <div class='month'>
           <ul>
-            <!--点击会触发pickpre函数,重新刷新当前日期 @click(vue v-on:click缩写) --> 
+            <!--点击会触发pickpre函数,重新刷新当前日期 @click(vue v-on:click缩写) -->
             <li class='arrow'>
-              <a-popconfirm title="是否保存?" ok-text="是" cancel-text="否"
-              @confirm="yes(1)"
-              @cancel="no(1)"
-              >
-            <a-button type="primary" >上个月</a-button></a-popconfirm>
+              <a-popconfirm title="是否保存?" ok-text="是" cancel-text="否" @confirm="yes(1)" @cancel="no(1)">
+                <a-button type="primary">上个月</a-button>
+              </a-popconfirm>
             </li>
             <li class='year-month'>
               <span class='choose-year'>{{ currentYear }}年</span>
               <span class='choose-month'>{{ currentMonth }}月</span>
             </li>
             <li class='arrow'>
-              <a-popconfirm  title="是否保存?" ok-text="是" cancel-text="否"
-              @confirm="yes(2)"
-              @cancel="no(2)"
-              >
-              <a-button type="primary">下个月</a-button></a-popconfirm>
-              </li>
+              <a-popconfirm title="是否保存?" ok-text="是" cancel-text="否" @confirm="yes(2)" @cancel="no(2)">
+                <a-button type="primary">下个月</a-button>
+              </a-popconfirm>
+            </li>
           </ul>
           <br>
         </div>
 
         <div>
-          <a-table bordered :data-source="dataSource" :loading="loading" :columns="columns" :scroll="{ x:1000,y:600}" :pagination="ipagination"
-            @change="handleTableChange">
+          <a-table bordered :data-source="dataSource" :loading="loading" :columns="columns" :scroll="{ x:1000,y:600}"
+            :pagination="ipagination" @change="handleTableChange">
             <template v-for='(dayobject,i) in days' :slot="dayobject.day.getDate()" style="color: #ff6b81">
               <div style="height: 35px;">
                 <div style="text-align: center;margin-top: -13px;">
@@ -96,30 +93,36 @@
                 </div>
               </div>
             </template>
-      
+
             <span v-for='(d,i) in tpdata' style="margin-left: -13px;" :slot="d" slot-scope="text, record, index">
               <a-dropdown :trigger="['click']">
-                <a-tag closable @close="(e) => log(e,d,record)" color="blue" v-if="text=='休息'" @click="UserType(d,record,index,text)">{{text.substring(0,1)}}</a-tag>
-                <a-tag  color="red" style="margin-left: 10px;" v-if="text=='法'" @click="UserType(d,record,index,text)">{{text.substring(0,1)}}</a-tag>
-                <a-tag closable @close="(e) => log(e,d,record)" color="#87d068" v-if="text!='休息'&&text!=''&&text!=null" @click="UserType(d,record,index,text)">
+                <a-tag closable @close="(e) => log(e,d,record)" color="blue" v-if="text=='休息'"
+                  @click="UserType(d,record,index,text)">{{text.substring(0,1)}}</a-tag>
+                <a-tag color="red" style="margin-left: 10px;" v-if="text=='法'" @click="UserType(d,record,index,text)">
+                  {{text.substring(0,1)}}</a-tag>
+                <a-tag closable @close="(e) => log(e,d,record)" color="#87d068" v-if="text!='休息'&&text!=''&&text!=null"
+                  @click="UserType(d,record,index,text)">
                   {{text.substring(0,1)}}
                 </a-tag>
-                <a-tag color="#FFFFFF" v-else @click="UserType(d,record,index,text)" style="width: 40px;height: 20px;margin-left: 4px;"> </a-tag>
+                <a-tag color="#FFFFFF" v-else @click="UserType(d,record,index,text)"
+                  style="width: 40px;height: 20px;margin-left: 4px;"> </a-tag>
                 <a-menu slot="overlay" v-if="record.isColse" :style="isShow?'height:300px;overflow-y: scroll;':''">
                   <a-menu-item key="0" v-if="isShows">
                     <a @click="shiftOks(0,d,record,index)">休息</a>
                   </a-menu-item>
                   <a-menu-item v-if="isShow" v-for="(item,index) in shiftlist" :key="item.id">
-                    <a @click="shiftOks(item,d,record,index)">{{item.name}} <span>({{item.startDate}} - {{item.endDate}}<span v-if="item.shiftType==1"> / {{item.start2Date}} - {{item.end2Date}}</span>)</span></a>
+                    <a @click="shiftOks(item,d,record,index)">{{item.name}} <span>({{item.startDate}} -
+                        {{item.endDate}}<span v-if="item.shiftType==1"> / {{item.start2Date}} -
+                          {{item.end2Date}}</span>)</span></a>
                   </a-menu-item>
                 </a-menu>
               </a-dropdown>
 
             </span>
-              <template  slot="names" slot-scope="text, record, index">
-                <div style="height: 27px;">
+            <template slot="names" slot-scope="text, record, index">
+              <div style="height: 27px;">
                 {{text}}
-                </div>
+              </div>
             </template>
           </a-table>
         </div>
@@ -172,7 +175,12 @@
         tts: false,
         tpdata: [],
         dataSource: [],
-        savef:true,
+        savef: true,
+        ipagination:{
+          
+          pageSize: 30,
+        
+        },
         columns: [],
         queryParam: {
           shiftDate: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),
@@ -200,7 +208,7 @@
         shiftlist: null,
         title: "操作",
         visible: false,
-        isSave:false,
+        isSave: false,
         key: null,
         index: null,
         vs: false,
@@ -236,7 +244,7 @@
           deptlist: "/sys/sysDepart/listAll",
           delUserShift: '/userShift/userShift/delete',
           edit: '/attendanceRule/attendanceRule/edit',
-          userShiftDay:'/userShift/userShift/UserShiftType'
+          userShiftDay: '/userShift/userShift/UserShiftType'
         },
       }
     },
@@ -244,7 +252,7 @@
       this.initData(null)
       this.queryShift()
     },
-    mounted () {
+    mounted() {
       // this.h = document.querySelector('.ptp-layout-main').offsetHeight - 45
       const _this = this
       var tableBodyInnerNodeList = document.querySelectorAll('.ant-table-body-inner')
@@ -253,7 +261,7 @@
           item.style.maxHeight = (parseInt(item.style.maxHeight) - 13) + 'px'
         })
       })
-      window.addEventListener('resize', function () {
+      window.addEventListener('resize', function() {
         // _this.h = document.querySelector('.ptp-layout-main').offsetHeight - 45
         tableBodyInnerNodeList = document.querySelectorAll('.ant-table-body-inner')
         tableBodyInnerNodeList.forEach(item => {
@@ -264,14 +272,14 @@
       })
     },
     methods: {
-      log(e,b,c){
-      e.preventDefault();
-      if(!c.isColse){
-        this.$message.warning("当月已关账无法操作!");
-        return;
-      }
-        var name="";
-        var shift="";
+      log(e, b, c) {
+        e.preventDefault();
+        if (!c.isColse) {
+          this.$message.warning("当月已关账无法操作!");
+          return;
+        }
+        var name = "";
+        var shift = "";
         if (b == 1) {
           c.a1 = name;
           c.shiftid1 = shift;
@@ -366,37 +374,37 @@
           c.a31 = name;
           c.shiftid31 = shift;
         }
-        
+
       },
-      saves(){
-        this.savef=true;
+      saves() {
+        this.savef = true;
         this.save()
       },
-      yes(e){
-        this.savef=false;
+      yes(e) {
+        this.savef = false;
         this.save();
-        if(e==1){
-          this.pickPre(this.currentYear,this.currentMonth)
-        }else if(e==2){
-          this.pickNext(this.currentYear,this.currentMonth);
+        if (e == 1) {
+          this.pickPre(this.currentYear, this.currentMonth)
+        } else if (e == 2) {
+          this.pickNext(this.currentYear, this.currentMonth);
         }
       },
-      no(e){
-       if(e==1){
-         this.pickPre(this.currentYear,this.currentMonth)
-       }else if(e==2){
-         this.pickNext(this.currentYear,this.currentMonth);
-       }
+      no(e) {
+        if (e == 1) {
+          this.pickPre(this.currentYear, this.currentMonth)
+        } else if (e == 2) {
+          this.pickNext(this.currentYear, this.currentMonth);
+        }
       },
       tagBtnCloseFunc(e) {
         const tags = this.selectUsers.filter(tag => tag !== e);
         this.selectUsers = tags;
       },
-      UserType(e, a, index,text) {
-        if(!a.isColse){
+      UserType(e, a, index, text) {
+        if (!a.isColse) {
           this.$message.warning("当月已关账无法操作!");
           return;
-        }else if(text!=null&&text=='法'){
+        } else if (text != null && text == '法') {
           this.isShow = false;
           this.isShows = false;
           return;
@@ -406,9 +414,9 @@
         var d = new Date(this.formatDate(this.currentYear, this.currentMonth, e))
         var obj = this.dataSource[index];
         var list = [];
-        var sum=0;
-        var xsum=0;
-        var f=false;
+        var sum = 0;
+        var xsum = 0;
+        var f = false;
         if (d.getDay() == 1) {
           list.push(this.getDays(0, d));
           list.push(this.getDays(1, d));
@@ -467,60 +475,102 @@
           list.push(this.getDays(0, d));
         }
 
-
+        var date = "";
         for (var i = 0; i < list.length; i++) {
           if (list[i].split("-")[0] != this.currentYear || list[i].split("-")[1] != this.currentMonth) {
-            getAction(this.url.userShiftDay, {
-                userid: a.id,
-                shiftDate:moment(new Date(list[i])).format('YYYY-MM-DD HH:mm:ss') ,
-              }
-              ).then((res) => {
-              if (res.success) {
-                if(res.result!=0&&res.result!='0'&&res.result!='1'&&res.result!=1){
-                  sum++;
-                }else if(res.result==0||res.result=='0'){
-                  xsum++;
-                }
-              } 
-            }).finally(() => {
-            })
-            list.splice(i, 1)
+            date += list[i] + ",";
+            //list.splice(i, 1)
           }
         }
 
-        for (var o = 0; o< list.length; o++) {
-          for (var t in obj) { //用javascript的for/in循环遍历对象的属性
-            if(this.currentYear==list[o].split("-")[0]&&this.currentMonth==list[o].split("-")[1]){
-            if (t == "shiftid" + list[o].split("-")[2]&&list[o].split("-")[2]==e) {
-              if(obj[t]!=0&&obj[t]!="0"&&obj[t]!=null){
-                sum++;
-                f=true;
-              } if(obj[t]!=null&&obj[t]=="0"){
-                xsum++;
+        if (date != "") {
+          getAction(this.url.userShiftDay, {
+            userId: a.id,
+            shiftId: date,
+          }).then((res) => {
+            if (res.success) {
+                xsum+=res.result.count;
+                sum+=res.result.counts;
+              
+              for (var o = 0; o < list.length; o++) {
+                for (var t in obj) { //用javascript的for/in循环遍历对象的属性
+                  if (this.currentYear == list[o].split("-")[0] && this.currentMonth == list[o].split("-")[1]) {
+                    if (t == "shiftid" + list[o].split("-")[2] && list[o].split("-")[2] == e) {
+                      if (obj[t] != "0" && obj[t] != null&&obj[t] != "1") {
+                        sum++;
+                        f = true;
+                      }
+                      if (obj[t] != null && obj[t] == "0") {
+                        xsum++;
+                      }
+                    } else if (t == "shiftid" + list[o].split("-")[2]) {
+                      if (obj[t] != "0" && obj[t] != null && obj[t] != "1") {
+                        sum++;
+                      }
+                      if (obj[t] != null && obj[t] == "0") {
+                        xsum++;
+                      }
+                    }
+                  }
+                }
               }
-            }else if(t == "shiftid" + list[o].split("-")[2]){
-              if(obj[t]!=0&&obj[t]!="0"&&obj[t]!=null&&obj[t]!=1&&obj[t]!="1"){
-                sum++;
-              } if(obj[t]!=null&&obj[t]=="0"){
-                xsum++;
+
+              if (a.category == 106) {
+                if (sum == 6 && f == false) {
+                  this.isShow = false;
+                } else if (xsum == 1) {
+                  this.isShows = false;
+                }
+
+              } else {
+                if (sum == 5 && f == false) {
+                  this.isShow = false;
+                } else if (xsum == 2) {
+                  this.isShows = false;
+                }
               }
             }
-          }
-          }
-        }
+          }).finally(() => {})
+        } else {
+              for (var o = 0; o < list.length; o++) {
+                for (var t in obj) { //用javascript的for/in循环遍历对象的属性
+                  if (this.currentYear == list[o].split("-")[0] && this.currentMonth == list[o].split("-")[1]) {
+                    if (t == "shiftid" + list[o].split("-")[2] && list[o].split("-")[2] == e) {
+                      if (obj[t] != "0" && obj[t] != null&&obj[t] != "1") {
+                        sum++;
+                        f = true;
+                      }
+                      if (obj[t] != null && obj[t] == "0") {
+                        xsum++;
+                      }
+                    } else if (t == "shiftid" + list[o].split("-")[2]) {
+                      if (obj[t] != "0" && obj[t] != null && obj[t] != "1") {
+                        sum++;
+                      }
+                      if (obj[t] != null && obj[t] == "0") {
+                        xsum++;
+                      }
+                    }
+                  }
+                }
+              }
 
-        if (a.category == 106) {
-          if (sum==6&&f==false) {
-            this.isShow = false;
-          }
+              if (a.category == 106) {
+                if (sum == 6 && f == false) {
+                  this.isShow = false;
+                } else if (xsum == 1) {
+                  this.isShows = false;
+                }
+
+              } else {
+                if (sum == 5 && f == false) {
+                  this.isShow = false;
+                } else if (xsum == 2) {
+                  this.isShows = false;
+                }
+              }
+            }
 
-        } else{
-          if (sum==5&&f==false) {
-            this.isShow = false;
-          }else if(xsum==2){
-            this.isShows = false;
-          }
-        }
       },
       // 获取当前时间,day为number,getDay(-1):昨天的日期;getDay(0):今天的日期;getDay(1):明天的日期;【以此类推】
       getDays(day, date) {
@@ -1089,7 +1139,7 @@
             userId: userid,
             workDay: workDay,
             ruleType: obj,
-            name:this.currentYear+"-"+this.currentMonth
+            name: this.currentYear + "-" + this.currentMonth
           },
           typet).then((res) => {
           if (res.success) {
@@ -1100,12 +1150,12 @@
           }
         }).finally(() => {
           this.confirmLoading = false;
-          if(this.savef){
+          if (this.savef) {
             this.close();
           }
-          this.savef=true;
+          this.savef = true;
         })
-        if(this.savef){
+        if (this.savef) {
           this.close();
         }
       },
@@ -1245,5 +1295,4 @@
     background: #e1e1e1;
     color: #fff;
   }
-  
-</style>
+</style>

+ 0 - 1
src/views/system/modules/UserDetailModal.vue

@@ -1029,7 +1029,6 @@ const uidGenerator=()=>{
           this.isQuit = true;
         }if(record.isAttendance!=null&& record.isAttendance != ""){
             this.isAttendance=record.isAttendance;
-            this.isatt=record.isAttendance;
         }if(record.workMoth!=null&&record.workMoth!=""){
           this.worMoth=record.workMoth;
           this.workMoth=record.workMoth - 0+this.moth - 0;

+ 356 - 17
src/views/system/schedulingInformation/BdWorkOverTimeList.vue

@@ -4,24 +4,43 @@
     <!-- 查询区域 -->
     <div class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
+        <a-row :gutter="24" v-if="isShow==1||isShow=='1'">
 
           <a-col :md="6" :sm="8">
             <a-form-item label="加班人员">
               <a-input placeholder="请输入加班人员" v-model="queryParam.person"></a-input>
             </a-form-item>
           </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="部门名称">
+              <a-input @click="openModal" placeholder="请点击选择部门" v-model="departNames" readOnly >
+                <a-icon slot="prefix" type="cluster" title="部门选择控件"/>
+                <a-icon v-if="queryParam.dept!=null&&queryParam.dept!=''" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
+              </a-input>
+             
+            </a-form-item>
+          </a-col>
           <a-col :md="6" :sm="8">
-            <a-form-item label="开始日期">
+            <a-form-item label="加班日期">
+                  <a-range-picker
+                    style="width: 210px"
+                    format="YYYY-MM-DD"
+                    :placeholder="['开始时间', '结束时间']"
+                    @change="onDateChanges"
+                    
+                  />
+            </a-form-item>
+            <!-- <a-form-item label="开始日期">
+              
               <a-date-picker
                 style="width: 100%"
                 placeholder="请选择开始日期"
                 v-model="queryParam.beginDate"
                 valueFormat="YYYY-MM-DD HH:mm:ss" 
                 :getCalendarContainer="node => node.parentNode"/>
-            </a-form-item>
+            </a-form-item> -->
           </a-col>
-          <a-col :md="6" :sm="8">
+          <!-- <a-col :md="6" :sm="8">
             <a-form-item label="结束日期">
               <a-date-picker
                 style="width: 100%"
@@ -31,25 +50,92 @@
                 :getCalendarContainer="node => node.parentNode"/>
                 
             </a-form-item>
-          </a-col>
+          </a-col> -->
           
           <a-col :md="6" :sm="8">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            <a-button type="primary" icon="download" @click="handleExportXls('加班信息')" style="margin-left: 8px" >导出</a-button>
-            <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" >
+            <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" >
               <a-button type="primary" icon="import">导入</a-button>
-            </a-upload>
+            </a-upload> -->
+            <a @click="handleToggleSearch" style="margin-left: 8px">
+              {{ toggleSearchStatus ? '收起' : '展开' }}
+              <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
+            </a>
             </span>
           </a-col>
 
         </a-row>
+        <template v-if="toggleSearchStatus">
+            <a-row>
+            <a-form-item label="加班类型">
+              <j-multi-select-tag
+              v-model="queryParam.demo" placeholder="请选择加班类型"
+                dictCode="works_type"/>
+                </j-multi-select-tag>
+            </a-form-item>
+            </a-row>
+      </template>
+      
+      <a-row :gutter="24" v-if="isShow==2||isShow=='2'">
+        <a-col :xl="6" :lg="7" :md="5" :sm="24" >
+          <a-form-item label="姓名">
+            <a-input placeholder="请输入姓名" v-model="queryParam2.realname"></a-input>
+          </a-form-item>
+        </a-col>
+       <a-col :xl="6" :lg="7" :md="8" :sm="24">
+         <a-form-item label="部门名称">
+           <a-input @click="openModal" placeholder="请点击选择部门" v-model="departNamest" readOnly >
+             <a-icon slot="prefix" type="cluster" title="部门选择控件"/>
+             <a-icon v-if="queryParam2.deptname!=null&&queryParam.deptname!=''" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
+           </a-input>
+          
+         </a-form-item>
+       </a-col>
+       <a-col :md="6" :sm="8">
+         <a-form-item label="请假日期">
+               <a-range-picker
+                 style="width: 210px"
+                 format="YYYY-MM-DD"
+                 :placeholder="['开始时间', '结束时间']"
+                 @change="onDateChangest"
+                 
+               />
+         </a-form-item>
+        </a-col>
+        <a-col :xl="6" :lg="7" :md="8" :sm="24">
+          <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+            <a-button type="primary" @click="searchQuerys()" icon="search">查询</a-button>
+            <a-button type="primary" @click="searchResets" icon="reload" style="margin-left: 8px">重置</a-button>
+            <a-button type="primary" icon="download" @click="handleExportXlst('请假息列表')" style="margin-left: 8px;">导出</a-button>
+         <a @click="handleToggleSearchs" style="margin-left: 8px">
+           {{ toggleSearchStatuss ? '收起' : '展开' }}
+           <a-icon :type="toggleSearchStatuss ? 'up' : 'down'"/>
+         </a>
+          </span>
+          
+        </a-col>
+      </a-row>
+      <template v-if="toggleSearchStatuss">
+            <a-row>
+            <a-form-item label="请假类型">
+              <j-multi-select-tag
+              v-model="queryParam2.holidayType" placeholder="请选择请假类型"
+                dictCode="vacation_type"/>
+                </j-multi-select-tag>
+            </a-form-item>
+            </a-row>
+      </template>
       </a-form>
     </div>
 
    
     <!-- table区域-begin -->
+    <a-tabs default-active-key="1" @change="callback">
+      
+      <a-tab-pane key="1" tab="加班信息">
     <div>
       
       <a-table
@@ -82,26 +168,67 @@
 
       </a-table>
     </div>
+    </a-tab-pane>
+    
+    <a-tab-pane key="2" tab="请假信息">
+      
+      <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns2" :dataSource="dataSources"
+        :pagination="ipaginations" :loading="loadings" class="j-table-force-nowrap"
+        @change="handleTableChanges" :scroll="{y:500 }">
+        
+        
+        
+        
+      </a-table>
+      
+       </a-tab-pane>
+    </a-tabs>
     <!-- table区域-end -->
 
     <!-- 表单区域 -->
     <!-- <BdScheduling-modal ref="modalForm" @ok="modalFormOk"></BdScheduling-modal> -->
+     <depart-window ref="departWindow" @ok="modalFormOks"></depart-window>
   </a-card>
 </template>
 
 <script>
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   import JDictSelectTag from '@/components/dict/JDictSelectTag'
-
+  import departWindow from '../modules/DepartWindow'
+  import { httpAction,getAction,downFile } from '@/api/manage'
+import moment from "moment"
   export default {
     name: 'BdSchedulingList',
     mixins: [JeecgListMixin],
     components: {
-      JDictSelectTag
+      JDictSelectTag,
+      departWindow
     },
     data() {
       return {
         description: '加班信息',
+        departNames:"",
+        toggleSearchStatuss:false,
+        queryParam2:{},
+        departNamest:"",
+         dataSources:[],
+        loadings:false,
+        isorters:{
+          column: 'userDate',
+          order: 'desc',
+        },
+        ipaginations:{
+          current: 1,
+          pageSize: 10,
+          pageSizeOptions: ['10', '20', '30'],
+          showTotal: (total, range) => {
+            return range[0] + "-" + range[1] + " 共" + total + "条"
+          },
+          showQuickJumper: true,
+          showSizeChanger: true,
+          total: 0
+        },
+        isShow:"1",
         // 表头
         columns: [
           // {
@@ -114,10 +241,17 @@
           //     return parseInt(index) + 1
           //   }
           // },
+          {
+            title: '工号',
+            align: 'center',
+            dataIndex: 'workNo',
+            sorter: true
+          },
           {
             title: '加班人员',
             align: 'center',
-            dataIndex: 'person'
+            dataIndex: 'person',
+            sorter: true
           },
           {
             title: '一级部门',
@@ -137,39 +271,105 @@
           {
             title: '加班事由',
             align: 'center',
-            dataIndex: 'demo'
+            dataIndex: 'demo',
+            sorter: true
           },
           
           {
             title: '开始时间',
             align: 'center',
-            dataIndex: 'beginDate'
+            dataIndex: 'beginDate',
+            sorter: true
           },
           {
             title: '结束时间',
             align: 'center',
-            dataIndex: 'endDate'
+            dataIndex: 'endDate',
+            sorter: true
           },
           {
             title: '加班时长',
             align: 'center',
-            dataIndex: 'duration'
+            dataIndex: 'duration',
+            sorter: true
           },
           {
             title: '提交时间',
             align: 'center',
-            dataIndex: 'commitDate'
+            dataIndex: 'commitDate',
+            sorter: true
           },
           {
             title: '审批编号',
             align: 'center',
-            dataIndex: 'code'
+            dataIndex: 'code',
+            sorter: true
           }
           
         ],
+        columns2: [
+          {
+            title: '工号',
+            align: 'center',
+            dataIndex: 'workNo',
+            sorter: true
+          },
+          {
+            title: '姓名',
+            align: 'center',
+            dataIndex: 'realname',
+            sorter: true
+          },
+          {
+            title: '一级部门',
+            align: 'center',
+            dataIndex: 'deptname'
+            
+          },
+          {
+            title: '二级部门',
+            align: 'center',
+            dataIndex: 'deptname2'
+           
+          },
+          {
+            title: '请假类型',
+            align: 'center',
+            dataIndex: 'holidayType',
+            sorter: true
+          },
+          {
+            title: '开始时间',
+            align: 'center',
+            dataIndex: 'startDate',
+            sorter: true
+          },
+          {
+            title: '结束时间',
+            align: 'center',
+            dataIndex: 'endDate',
+            sorter: true
+          },
+          {
+            title: '请假时长',
+            align: 'center',
+            dataIndex: 'holidayCount',
+            sorter: true
+          },
+          {
+            title: '请假事由',
+            align: 'center',
+            dataIndex: 'demo',
+            sorter: true,
+            ellipsis: true
+          }
+        ],
+      toggleSearchStatus:false,
         url: {
           list: '/workOvertime/workOvertime/lists',
+          list2:'/vacation/vacation/list',
           exportXlsUrl: "/workOvertime/workOvertime/exportXls",
+          exportXlsUrls: "/vacation/vacation/exportXls",
           importExcelUrl:"/workOvertime/workOvertime/importExcel"
         },
       }
@@ -178,7 +378,146 @@
       importExcelUrl: function () {
         return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
       }
-    }
+    },methods: {
+      handleToggleSearchs(){
+        this.toggleSearchStatuss = !this.toggleSearchStatuss;
+      },
+      searchQuerys(){
+        this.querys();
+      },
+      searchResets(){
+        this.queryParam2={};
+      },
+      handleExportXlst(fileName){
+        var param = Object.assign(this.queryParam2, this.isorters);
+        param.pageNo = this.ipaginations.current;
+        param.pageSize = this.ipaginations.pageSize;
+      
+        if(!fileName || typeof fileName != "string"){
+          fileName = "导出文件"
+        }
+        downFile(this.url.exportXlsUrls,param).then((data)=>{
+          if (!data) {
+            this.$message.warning("文件下载失败")
+            return
+          }
+          if (typeof window.navigator.msSaveBlob !== 'undefined') {
+            window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')
+          }else{
+            let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'}))
+            let link = document.createElement('a')
+            link.style.display = 'none'
+            link.href = url
+            link.setAttribute('download', fileName+'.xls')
+            document.body.appendChild(link)
+            link.click()
+            document.body.removeChild(link); //下载完成移除元素
+            window.URL.revokeObjectURL(url); //释放掉blob对象
+          }
+        })
+      },
+      querys(){
+        this.loadings=true;
+        var param = Object.assign(this.queryParam2, this.isorters);
+        param.pageNo = this.ipaginations.current;
+        param.pageSize = this.ipaginations.pageSize;
+        
+        
+        getAction(this.url.list2,param).then((res)=>{
+          if(res.success){
+           this.dataSources = res.result.records||res.result;
+           if(res.result.total)
+           {
+             this.ipaginations.total = res.result.total;
+           }else{
+             this.ipaginations.total = 0;
+           }
+          }
+        }).finally(() => {
+          this.loadings=false;
+        })
+      },
+      modalFormOks(formData) {
+        if (formData.departIdList != null && formData.departIdList.length > 0) {
+          for (let i = 0; i < formData.departIdList.length; i++) {
+            if(this.isShow=="1"||this.isShow==1){
+            this.queryParam.dept=formData.departIdList[i].key;
+            this.departNames =formData.departIdList[i].title;
+          }else {
+            this.queryParam2.deptname=formData.departIdList[i].key;
+            this.departNamest=formData.departIdList[i].title;
+          }
+           }
+        
+        }
+      
+      },
+      handleTableChanges(pagination, filters, sorter) {
+        //分页、排序、筛选变化时触发
+        //TODO 筛选
+        if (Object.keys(sorter).length > 0) {
+          this.isorters.column = sorter.field;
+          this.isorters.order = "ascend" == sorter.order ? "asc" : "desc"
+        }
+        this.ipaginations = pagination;
+        //this.querys();
+      },
+      callback(key) {
+        this.isShow=key;
+        if(key==1||key=='1'){
+          this.toggleSearchStatuss=false;
+          this.$options.methods.searchQuery.call(this)
+        }else if(key==2||key=='2'){
+         this.toggleSearchStatus=false;
+         this.querys();
+        }
+      },
+      openModal(){
+        var ls=[];
+        if(this.isShow=="1"||this.isShow==1){
+        ls.push(this.queryParam.dept);
+        }else{
+           ls.push(this.queryParam2.deptname);
+        }
+        this.$refs.departWindow.add(ls, {});
+      },
+      handleEmpty(){
+        if(this.isShow=="1"||this.isShow==1){
+        this.queryParam.dept=null;
+        this.departNames=null;
+        }else{
+          this.queryParam2.deptname=null;
+          this.departNamest=null;
+        }
+      },
+      
+      onDateChanges: function (value, dateString) {
+        if(dateString[0]!=null&&dateString[0]!=""){
+          this.queryParam.beginDate=moment(dateString[0]).format('YYYY-MM-DD HH:mm:ss');
+        }if(dateString[1]!=null&&dateString[1]!=""){
+          this.queryParam.endDate=moment(dateString[1]).format('YYYY-MM-DD HH:mm:ss');
+        }
+       
+      },
+      onDateChangest: function (value, dateString) {
+        if(dateString[0]!=null&&dateString[0]!=""){
+          this.queryParam2.startDate=moment(dateString[0]).format('YYYY-MM-DD HH:mm:ss');
+        }if(dateString[1]!=null&&dateString[1]!=""){
+          this.queryParam2.endDate=moment(dateString[1]).format('YYYY-MM-DD HH:mm:ss');
+        }
+       
+      }, handleTableChanges(pagination, filters, sorter) {
+        //分页、排序、筛选变化时触发
+        //TODO 筛选
+        if (Object.keys(sorter).length > 0) {
+          this.isorters.column = sorter.field;
+          this.isorters.order = "ascend" == sorter.order ? "asc" : "desc"
+        }
+        this.ipaginations = pagination;
+        this.querys();
+      }
+      
+    },
   }
 </script>
 <style scoped>