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';
import { UserAttribute, isAuthorized } from '$utils'
const employeeInformation = (props) => {
const { dispatch, actions, history, user, loading, socket, xqMembers } = props
const { humanAffairs } = actions;
const form = useRef();//表单
let [archivesList, setArchivesList] = useState([]);//人员列表
let [workPlaceList, setWorkPlaceList] = useState([]);//工作地点
let [nativeList, setNativeList] = 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: 'hiredate', orderDirection: 'DESC' }); //页码信息
const [limits, setLimits] = useState()//每页实际条数
const [downloadUrl, setDownloadUrl] = useState('')//下载pdf
const EMPLOYEEINFORMATION = "employeeInformation";
const page = useRef(query.page);//哪一页
const tableList = [//表格属性
{
title: '基础信息',
list: [
{ name: "姓名", value: "userName" },
{ name: "所属部门", value: "departmrnt" },
{ name: "职位", value: "userJob" },
{ name: "岗位", value: "userPost" },
{ name: "在职状态", value: "userActiveStatus" },
{ name: "绩点", value: "gradePoint" },
{ name: "所属机构", value: "userOrganization" },
{ name: "技术职级等级", value: "technicalGrade" },
{ name: "证件号", value: "idNumber" },
{ name: "性别", value: "gender" },
{ name: "籍贯", value: "nativePlace" },
{ name: "出生日期", value: "birthday" },
{ name: "婚育状态", value: "marital" },
{ name: "政治面貌", value: "politicsStatus" },
{ name: "联系方式", value: "phoneNumber" },
{ name: "工作地点", value: "workPlace" },
{ name: "年龄", value: "age" },
]
}, {
title: '学历信息',
list: [
{ name: "毕业院校", value: "graduatedFrom" },
{ name: "学历", value: "educationBackground" },
{ name: "专业", value: "specialty" },
{ name: "毕业时间", value: "graduationDate" },
]
}, {
title: '学历信息',
list: [
{ name: "入职时间", value: "hiredate" },
{ name: "转正时间", value: "regularDate" },
{ name: "转试用期时间", value: "turnProbationPeriod" },
{ name: "离职日期", value: "dimissionDate" },
{ name: "入职年限", value: "employmentLife" },
{ name: "试用期时间", value: "probationPeriodDate" },
{ name: "工作经验", value: "experienceYear" },
]
}, {
title: '履历信息',
list: [
{ name: "历史工作经历与职务", value: "occupationalHistory" },
{ name: "简历", value: "vitae" },
]
}
];
useEffect(() => {
getMemberNativePlaceList()//查询籍贯列表
getMemberWorkPlaceList()//查询工作地列表
localStorage.getItem(EMPLOYEEINFORMATION) == null
? localStorage.setItem(
EMPLOYEEINFORMATION,
JSON.stringify(['userName', 'departmrnt', 'userJob', 'userPost', 'userActiveStatus', 'gradePoint', 'userOrganization', 'technicalGrade',
'hiredate', 'age', 'phoneNumber', 'marital', 'politicsStatus', 'educationBackground',
'graduatedFrom', 'employmentLife', 'occupationalHistory'])
)
: "";
attribute();
}, [])
useEffect(() => {
getMemberSearchList()//查询人员列表
}, [query, order])
function getMemberSearchList() {//查询人员列表
let obj = lookup
if (lookup.entryTime?.length > 1) {
obj.hiredateStart = moment(lookup.entryTime[0]).format('YYYY-MM-DD')
obj.hiredateEnd = moment(lookup.entryTime[1]).format('YYYY-MM-DD')
}
else {
obj.hiredateStart = ''
obj.hiredateEnd = ''
}
dispatch(humanAffairs.getMemberList({ ...obj, ...query, ...order })).then((res) => {//查询人员列表
if (res.success) {
setArchivesList(res.payload?.data?.rows)
setLimits(res.payload?.data?.count)
}
})
}
function getMemberNativePlaceList() {
dispatch(humanAffairs.getMemberNativePlace()).then((res) => {//查询籍贯列表
if (res.success) {
setNativeList(res.payload?.data)
}
})
}
function getMemberWorkPlaceList() {
dispatch(humanAffairs.getMemberWorkPlace()).then((res) => {//查询工作地列表
if (res.success) {
setWorkPlaceList(res.payload?.data)
}
})
}
const columns = [
{
title: (
员工编号
),
width: 200,
dataIndex: "userCode",
key: "userCode",
sorter: (a, b) => { },
// sorter: (a, b) => a.name.length - b.name.length > 0 ? 1 : -1,
render: (_, r, index) => {
return (r.userCode ? r.userCode : '-');
},
},
];
//获取表格属性设置
function attribute() {
const arr = localStorage.getItem(EMPLOYEEINFORMATION)
? JSON.parse(localStorage.getItem(EMPLOYEEINFORMATION))
: [];
const column = [
{
title: (