import React, { useEffect, useState, useRef, useMemo } from 'react';
import { connect } from 'react-redux';
import { Table, Button, Pagination, Skeleton, Form, Tooltip } from '@douyinfe/semi-ui';
import { IconSearch } from '@douyinfe/semi-icons';
import { SkeletonScreen } from "$components";
import '../style.less'
import { Setup } from "$components";
import moment from 'moment'
import { set } from 'nprogress';
const leaveStatistics = (props) => {
const { dispatch, actions, history, user, loading, socket, xqMembers } = props
const { humanAffairs } = actions;
const form = useRef();//表单
let [archivesList, setArchivesList] = useState([]);//人员列表
let [mytypeList, setTypeList] = useState([]);//请假类型列表
const [setup, setSetup] = useState(false);//表格设置是否显现
const [setupp, setSetupp] = useState([]);//实际显示的表格列表
const [lookup, setLookup] = useState({});//搜索
const [query, setQuery] = useState({ limit: 10, page: 0 }); //页码信息
const [order, setOrder] = useState({ orderBy: 'code', orderDirection: 'DESC' }); //页码信息
const [limits, setLimits] = useState()//每页实际条数
const [downloadUrl, setDownloadUrl] = useState('')//下载pdf
const LEAVESTATISTICS = "leaveStatistics";
const page = useRef(query.page);//哪一页
const [tableList, setTableList] = useState([{
title: '展示信息',
list: [
{ name: "姓名", value: "userName" },
{ name: "所属部门", value: "departmrnt" },
{ name: "职位", value: "roleName" },
{ name: "合计请假时长", value: "vacateDayStatisticDuration" },
{ name: "合计请假次数", value: "vacateCount" },
]
}]);//表格属性
useEffect(() => {
localStorage.getItem(LEAVESTATISTICS) == null
? localStorage.setItem(
LEAVESTATISTICS,
JSON.stringify(['userName', 'departmrnt', 'roleName', 'vacateCount', 'vacateDayStatisticDuration'])
)
: "";
getAttendanceVacateTypeList()
}, [])
useEffect(() => {
getAttendanceVacateList()//查询人员列表
}, [query, order])
function getAttendanceVacateList () {//查询人员列表
let obj = lookup
if (lookup.entryTime?.length > 1) {
obj.startDate = moment(lookup.entryTime[0]).format('YYYY-MM-DD')
obj.endDate = moment(lookup.entryTime[1]).format('YYYY-MM-DD')
}
else {
obj.startDate = ''
obj.endDate = ''
}
dispatch(humanAffairs.getAttendanceVacate({ ...obj, ...query, ...order })).then((res) => {//查询人员列表
if (res.success) {
setArchivesList(res.payload?.data?.rows)
setLimits(res.payload?.data?.count)
}
})
}
function getAttendanceVacateTypeList () {
dispatch(humanAffairs.getAttendanceVacateType()).then((res) => {//查询人员列表
if (res.success) {
let myTableList = tableList
for (let i = 0; i < res.payload?.data?.length; i++) {
myTableList[0].list.push({ name: res.payload?.data[i].type, value: res.payload?.data[i].type },)
}
setTypeList(res.payload?.data)
setTableList(myTableList)
attribute(res.payload?.data);
}
})
}
const columns = [
{
title: (
员工编号
),
width: 200,
dataIndex: "userCode",
key: "userCode",
sorter: (a, b) => { },
render: (_, r, index) => {
return (r.userCode ? r.userCode : '-');
},
},
];
//获取表格属性设置
function attribute (typeList) {
const arr = localStorage.getItem(LEAVESTATISTICS)
? JSON.parse(localStorage.getItem(LEAVESTATISTICS))
: [];
let column = [
{
title: (
姓名
所属部门
职位
表格中带有认证标识"
"信息的为系统基础数据,来源于项企PEP、钉钉等系统,其他数据均为导入或自定义数据