|
|
|
@ -4,6 +4,8 @@ import { OrgChartComponent } from '@/components/orgChart';
|
|
|
|
|
import * as d3 from 'd3';
|
|
|
|
|
import { TopBar } from '../components/topBar';
|
|
|
|
|
import ToolBar from '../components/toolBar';
|
|
|
|
|
import TimeLine from '../components/timeline';
|
|
|
|
|
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
import qs from 'qs';
|
|
|
|
|
import { message } from 'antd';
|
|
|
|
@ -11,6 +13,7 @@ import jsPDF from 'jspdf';
|
|
|
|
|
let active = 'top';
|
|
|
|
|
export default function userPage() {
|
|
|
|
|
const [data, setData] = useState(null);
|
|
|
|
|
let topbar = null;
|
|
|
|
|
const [topBarSearchRequest, setTpBarSearchRequest] = useState(null);
|
|
|
|
|
const [requestRes, setRequestRes] = useState({
|
|
|
|
|
date: moment(new Date()).format('YYYY-MM-DD'),
|
|
|
|
@ -25,7 +28,7 @@ export default function userPage() {
|
|
|
|
|
let progressBtnRef = null;
|
|
|
|
|
|
|
|
|
|
const [hasRight, setHasRight] = useState('');
|
|
|
|
|
const [disabled, setDisabled] = useState(false);
|
|
|
|
|
const [id, setId] = useState(0);
|
|
|
|
|
// 点击节点
|
|
|
|
|
function onNodeClick(nodeId) {
|
|
|
|
|
// alert('clicked ' + nodeId);
|
|
|
|
@ -54,8 +57,7 @@ export default function userPage() {
|
|
|
|
|
qs.stringify(request, { addQueryPrefix: true });
|
|
|
|
|
} else {
|
|
|
|
|
api =
|
|
|
|
|
'/api/bs/hrmorganization/orgchart/asyncUserData?fclass=0&root=0&date=' +
|
|
|
|
|
moment(new Date()).format('YYYY-MM-DD') +
|
|
|
|
|
'/api/bs/hrmorganization/orgchart/asyncUserData?fclass=0&fisvitual=0&root=0&level=3&id=0' +
|
|
|
|
|
'&ids=' +
|
|
|
|
|
idsStr;
|
|
|
|
|
}
|
|
|
|
@ -72,13 +74,23 @@ export default function userPage() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 时间轴点击
|
|
|
|
|
* @param {*} timeline
|
|
|
|
|
*/
|
|
|
|
|
const timeLineSearch = (timeline) => {
|
|
|
|
|
setId(timeline.id);
|
|
|
|
|
let requestData = { ...topbar.state.requestData, id: timeline.id };
|
|
|
|
|
handleSearch(requestData, false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 获取部门图片
|
|
|
|
|
function getDepartmentImage() {
|
|
|
|
|
let index = Math.floor(Math.random() * 8) + 1;
|
|
|
|
|
return `./img/department/${index}.png`;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取部门图片
|
|
|
|
|
// 获取分部图片
|
|
|
|
|
function getSubcompanyImage() {
|
|
|
|
|
let index = Math.floor(Math.random() * 3) + 1;
|
|
|
|
|
return `./img/subcompany/${index}.png`;
|
|
|
|
@ -87,11 +99,10 @@ export default function userPage() {
|
|
|
|
|
// 获取数据
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
document.cookie =
|
|
|
|
|
'ecology_JSessionid=aaabAoBxcpmhQ5GSTpXJy; JSESSIONID=aaabAoBxcpmhQ5GSTpXJy; Systemlanguid=7; languageidweaver=7; loginuuids=1; __randcode__=1e1d21ef-3a75-4eaa-b3b3-277fa0ca0ef3; loginidweaver=sysadmin';
|
|
|
|
|
'ecology_JSessionid=aaaMxyh0rOLot5nEk86Jy; JSESSIONID=aaaMxyh0rOLot5nEk86Jy; __randcode__=39ee6033-5f6f-4e53-ad53-5a3de97645eb; Systemlanguid=7; languageidweaver=7; loginidweaver=sysadmin; loginuuids=1';
|
|
|
|
|
d3.json(
|
|
|
|
|
// "/user/data"
|
|
|
|
|
'/api/bs/hrmorganization/orgchart/userData?fclass=0&root=0&date=' +
|
|
|
|
|
moment(new Date()).format('YYYY-MM-DD'),
|
|
|
|
|
'/api/bs/hrmorganization/orgchart/userData?fclass=0&fisvitual=0&root=0&level=3&id=0',
|
|
|
|
|
).then((data) => {
|
|
|
|
|
setData(data.data);
|
|
|
|
|
setHasRight(data?.hasRight);
|
|
|
|
@ -196,7 +207,10 @@ export default function userPage() {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleSearch = (requestData) => {
|
|
|
|
|
const handleSearch = (requestData, cache = true) => {
|
|
|
|
|
if (cache) {
|
|
|
|
|
requestData = { ...requestData, id: id };
|
|
|
|
|
}
|
|
|
|
|
setTpBarSearchRequest(requestData);
|
|
|
|
|
let api =
|
|
|
|
|
'/api/bs/hrmorganization/orgchart/userData' +
|
|
|
|
@ -215,22 +229,6 @@ export default function userPage() {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleSynchronous = (requestData) => {
|
|
|
|
|
setDisabled(true);
|
|
|
|
|
let api = '/api/bs/hrmorganization/orgchart/synchronousData';
|
|
|
|
|
fetch(api)
|
|
|
|
|
.then((res) => res.json())
|
|
|
|
|
.then((data) => {
|
|
|
|
|
if (data.code == 200) {
|
|
|
|
|
message.success('同步成功,请重新查询');
|
|
|
|
|
} else {
|
|
|
|
|
message.error('数据同步失败');
|
|
|
|
|
}
|
|
|
|
|
setDisabled(false);
|
|
|
|
|
//this.handleSearch(requestData);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (active == 'left') {
|
|
|
|
|
orgChart &&
|
|
|
|
@ -309,7 +307,7 @@ export default function userPage() {
|
|
|
|
|
? d.data.fleaderimg
|
|
|
|
|
: d.data.ftype == 0 || d.data.ftype == 1
|
|
|
|
|
? './img/company.png'
|
|
|
|
|
: './img/default_avator.png'
|
|
|
|
|
: './img/department.png'
|
|
|
|
|
}" style="width: 58px; height: 58px;position:absolute;left:29px; border-radius: 50%; margin-top: 16px;position:absolute;left:29px;z-index:999"/>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: inline-block; margin-left: 6px;width: 55%" >
|
|
|
|
@ -506,6 +504,7 @@ export default function userPage() {
|
|
|
|
|
hasRight && (
|
|
|
|
|
<div className={styles.contentWrapper}>
|
|
|
|
|
<TopBar
|
|
|
|
|
ref={(r) => (topbar = r)}
|
|
|
|
|
onExport={(type) => {
|
|
|
|
|
handleExport(type);
|
|
|
|
|
}}
|
|
|
|
@ -513,12 +512,8 @@ export default function userPage() {
|
|
|
|
|
setRequestRes(requestData);
|
|
|
|
|
handleSearch(requestData);
|
|
|
|
|
}}
|
|
|
|
|
onSynchronous={(requestData) => {
|
|
|
|
|
handleSynchronous(requestData);
|
|
|
|
|
}}
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
type="user"
|
|
|
|
|
url="/api/bs/hrmorganization/orgchart/getCondition?type=user"
|
|
|
|
|
url="/api/bs/hrmorganization/orgchart/getCondition?fclass=0&type=user"
|
|
|
|
|
/>
|
|
|
|
|
<ToolBar
|
|
|
|
|
onTopLayoutClick={handleTopLayoutClick}
|
|
|
|
@ -526,6 +521,12 @@ export default function userPage() {
|
|
|
|
|
onZoomOut={(progressBtn) => handleZoomOut(progressBtn)}
|
|
|
|
|
onZoomIn={(progressBtn) => handleZoomIn(progressBtn)}
|
|
|
|
|
/>
|
|
|
|
|
<TimeLine
|
|
|
|
|
onClick={(timeline) => {
|
|
|
|
|
timeLineSearch(timeline);
|
|
|
|
|
}}
|
|
|
|
|
url={'/api/bs/hrmorganization/orgchart/timelines?id=' + id}
|
|
|
|
|
/>
|
|
|
|
|
<OrgChartComponent
|
|
|
|
|
setChart={(chart) => (orgChart = chart)}
|
|
|
|
|
setClick={(click) => (addNodeChildFunc = click)}
|
|
|
|
|