31 changed files with 1022 additions and 183 deletions
@ -0,0 +1,92 @@ |
|||||
|
const headerItems = [{ |
||||
|
itemKey: "authCenter", |
||||
|
text: "权限中心", |
||||
|
items: [{ |
||||
|
fatherKey: "authCenter", |
||||
|
openKey: "authCenter", |
||||
|
itemKey: "employeeAuth", |
||||
|
text: "员工权限", |
||||
|
to: "/humanAffairs/authCenter/employeeAuth" |
||||
|
}, { |
||||
|
fatherKey: 'authCenter', |
||||
|
openKey: "authCenter", |
||||
|
itemKey: "formMaintenance", |
||||
|
text: "表单维护", |
||||
|
to: "/humanAffairs/authCenter/formMaintenance" |
||||
|
}] |
||||
|
}, { |
||||
|
itemKey: "achievements", |
||||
|
text: "绩效考核", |
||||
|
items: [{ |
||||
|
fatherKey: "achievements", |
||||
|
itemKey: "basicAction", |
||||
|
text: "基本动作", |
||||
|
to: "/humanAffairs/achievements/basicAction/weeklyManagement" |
||||
|
}, { |
||||
|
fatherKey: 'achievements', |
||||
|
itemKey: "employeeKPI", |
||||
|
text: "员工考核", |
||||
|
to: "/humanAffairs/achievements/employeeKPI/probationer" |
||||
|
}, { |
||||
|
fatherKey: "achievements", |
||||
|
itemKey: "middleKPI", |
||||
|
text: "中层考核", |
||||
|
to: "/humanAffairs/achievements/middleKPI/monthlyProcess" |
||||
|
}, { |
||||
|
fatherKey: 'achievements', |
||||
|
itemKey: "highKPI", |
||||
|
text: "高管考核", |
||||
|
to: "/humanAffairs/achievements/highKPI/highMonthly" |
||||
|
}, { |
||||
|
fatherKey: 'achievements', |
||||
|
itemKey: "penalties", |
||||
|
text: "奖惩信息", |
||||
|
to: "/humanAffairs/achievements/penalties/penaltiesRecord" |
||||
|
}] |
||||
|
}, { |
||||
|
itemKey: "train", |
||||
|
text: "培训", |
||||
|
items: [{ |
||||
|
fatherKey: "train", |
||||
|
itemKey: "trainFiles", |
||||
|
text: "培训档案", |
||||
|
to: "/humanAffairs/train/trainFiles/resourceRepository" |
||||
|
}] |
||||
|
}, { |
||||
|
itemKey: "recruit", |
||||
|
text: "招聘", |
||||
|
items: [{ |
||||
|
fatherKey: "recruit", |
||||
|
itemKey: "recruitRecord", |
||||
|
text: "招聘记录", |
||||
|
to: "/humanAffairs/recruit/recruitRecord/appointmentRecords" |
||||
|
}] |
||||
|
}, { |
||||
|
itemKey: "employeeRelationship", |
||||
|
text: "员工关系", |
||||
|
items: [{ |
||||
|
fatherKey: "employeeRelationship", |
||||
|
itemKey: "leaveManagement", |
||||
|
text: "假勤管理", |
||||
|
to: "/humanAffairs/employeeRelationship/leaveManagement/attendanceStatistics" |
||||
|
}] |
||||
|
}, { |
||||
|
itemKey: "archivesCenter", |
||||
|
text: "档案中心", |
||||
|
items: [{ |
||||
|
fatherKey: "archivesCenter", |
||||
|
openKey: "personnelArchives", |
||||
|
itemKey: "personnelFiles", |
||||
|
text: "人员档案", |
||||
|
to: "/humanAffairs/archivesCenter/personnelArchives/personnelFiles" |
||||
|
}, { |
||||
|
fatherKey: 'archivesCenter', |
||||
|
itemKey: "deptArchives", |
||||
|
text: "部门档案", |
||||
|
to: "/humanAffairs/archivesCenter/deptArchives/department" |
||||
|
}] |
||||
|
}] |
||||
|
|
||||
|
export { |
||||
|
headerItems |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
import React from 'react'; |
||||
|
import { Empty as EmptySemi } from '@douyinfe/semi-ui'; |
||||
|
import { IllustrationConstruction, IllustrationConstructionDark } from '@douyinfe/semi-illustrations'; |
||||
|
|
||||
|
const Empty = (props) => { |
||||
|
return (<EmptySemi |
||||
|
image={<IllustrationConstruction style={{ width: 150, height: 150 }} />} |
||||
|
darkModeImage={<IllustrationConstructionDark style={{ width: 150, height: 150 }} />} |
||||
|
title={'功能建设中'} |
||||
|
description="当前功能暂未开放,敬请期待。" |
||||
|
/> |
||||
|
) |
||||
|
} |
||||
|
export default Empty |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const AppointmentRecords = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>招聘</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>招聘记录</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>任用记录</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>任用记录</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>APPOINTMENT RECORDS</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(AppointmentRecords); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const AttendanceStatistics = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>员工关系</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>假勤管理</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>出勤统计</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>出勤统计</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>ATTENDANCE STATISTICS</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(AttendanceStatistics); |
@ -0,0 +1,54 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const DeptArchives = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>档案中心</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>部门档案</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>部门档案</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>部门档案</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>DEPARTMENT FILE</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 9 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>部门档案详情</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>DEPARTMENT FILE DETAILS</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div > |
||||
|
<Empty |
||||
|
/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(DeptArchives); |
@ -0,0 +1,40 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const EmployeeAuth = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>权限中心</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>员工权限</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>员工权限</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>EMPLOYEE AUTHORITY</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(EmployeeAuth); |
@ -0,0 +1,40 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const FormMaintenance = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>权限中心</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>表单维护</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>表单维护</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>FORM MAINTENANCE</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(FormMaintenance); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const HighMonthly = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>高管考核</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>月度过程考核</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>月度过程考核</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>MONTHLY PROCESS ASSESSMENT</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(HighMonthly); |
@ -1,17 +1,42 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
//档案中心
|
||||
import PersonnelFiles from './personnelFiles'; |
import PersonnelFiles from './personnelFiles'; |
||||
import PersonnelFilesDetail from './personnelFilesDetail'; |
|
||||
import EmployeeInformation from './employeeInformation'; |
import EmployeeInformation from './employeeInformation'; |
||||
|
import DeptArchives from './deptArchives'; |
||||
|
//员工关系
|
||||
|
import AttendanceStatistics from './attendanceStatistics'; |
||||
|
import LeaveStatistics from './leaveStatistics'; |
||||
|
import OvertimeStatistics from './overtimeStatistics'; |
||||
|
//招聘
|
||||
|
import AppointmentRecords from './appointmentRecords'; |
||||
|
//培训
|
||||
|
import ResourceRepository from './resourceRepository'; |
||||
|
//绩效考核
|
||||
import WeeklyManagement from './weeklyManagement'; |
import WeeklyManagement from './weeklyManagement'; |
||||
import SaleLog from './saleLog'; |
import SaleLog from './saleLog'; |
||||
import PMLog from './pmLog'; |
import PMLog from './pmLog'; |
||||
import LeaveStatistics from './leaveStatistics'; |
import ProbationerKPI from './probationerKPI'; |
||||
import OvertimeStatistics from './overtimeStatistics'; |
import RegularKPI from './regularKPI'; |
||||
|
import MonthlyProcess from './monthlyProcess'; |
||||
|
import Quarter from './quarter'; |
||||
|
import HighMonthly from './highMonthly'; |
||||
|
import PenaltiesRecord from './penaltiesRecord'; |
||||
|
//权限中心
|
||||
|
import EmployeeAuth from './employeeAuth'; |
||||
|
import FormMaintenance from './formMaintenance'; |
||||
|
//其它
|
||||
|
import PersonnelFilesDetail from './personnelFilesDetail'; |
||||
|
|
||||
|
|
||||
|
|
||||
export { |
export { |
||||
PersonnelFiles, PersonnelFilesDetail, EmployeeInformation, |
PersonnelFiles, EmployeeInformation, DeptArchives, |
||||
|
AttendanceStatistics, LeaveStatistics, OvertimeStatistics, |
||||
|
AppointmentRecords, |
||||
|
ResourceRepository, |
||||
WeeklyManagement, SaleLog, PMLog, |
WeeklyManagement, SaleLog, PMLog, |
||||
LeaveStatistics, OvertimeStatistics |
ProbationerKPI, RegularKPI, |
||||
|
MonthlyProcess, Quarter, HighMonthly, PenaltiesRecord, |
||||
|
EmployeeAuth, FormMaintenance, |
||||
|
PersonnelFilesDetail, |
||||
}; |
}; |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const MonthlyProcess = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>中层考核</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>月度过程考核</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>月度过程考核</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>Monthly process assessment</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(MonthlyProcess); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const PenaltiesRecord = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>奖惩信息</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>奖惩信息</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>奖惩信息</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>REWARD AND PUNISHMENT INFORMATION</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(PenaltiesRecord); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const ProbationerKPI = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>员工考核</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>试用期员工考核</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>试用期员工考核</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>EMPLOYEE EVALUATION DURING PROBATION PERIOD</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(ProbationerKPI); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const Quarter = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>中层考核</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>季度考核</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>季度考核</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>QUARTERLY ASSESSMENT</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(Quarter); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const RegularKPI = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>绩效考核</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>员工考核</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>正式员工考核</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>正式员工考核</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>FORMAL EMPLOYEE ASSESSMENT</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(RegularKPI); |
@ -0,0 +1,42 @@ |
|||||
|
import React, { useEffect, useState } from 'react'; |
||||
|
import { connect } from 'react-redux'; |
||||
|
import Empty from '../components/empty'; |
||||
|
import '../style.less' |
||||
|
|
||||
|
const ResourceRepository = (props) => { |
||||
|
const { dispatch, actions } = props |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<div style={{ padding: '0px 12px' }}> |
||||
|
<div style={{ display: 'flex' }}> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>培训</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: 'rgba(0,0,0,0.45)', fontSize: 14 }}>培训档案</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14, margin: '0px 8px' }}>/</div> |
||||
|
<div style={{ color: '#033C9A', fontSize: 14 }}>培训资源储存库</div> |
||||
|
</div> |
||||
|
<div style={{ background: '#FFFFFF', boxShadow: '0px 0px 12px 2px rgba(220,222,224,0.2)', borderRadius: 2, padding: '20px 0px 20px 19px ', marginTop: 12 }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> |
||||
|
<div style={{ display: 'flex', alignItems: 'baseline' }}> |
||||
|
<div style={{ width: 0, height: 20, borderLeft: '3px solid #0F7EFB', borderTop: '3px solid transparent', borderBottom: '3px solid transparent' }}></div> |
||||
|
<div style={{ fontFamily: "YouSheBiaoTiHei", fontSize: 24, color: '#033C9A', marginLeft: 8 }}>培训资源储存库</div> |
||||
|
<div style={{ marginLeft: 6, fontSize: 12, color: '#969799', fontFamily: "DINExp", }}>RESOURCE REPOSITORY</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<Empty /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
function mapStateToProps(state) { |
||||
|
const { auth, global } = state; |
||||
|
return { |
||||
|
user: auth.user, |
||||
|
actions: global.actions, |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export default connect(mapStateToProps)(ResourceRepository); |
Loading…
Reference in new issue