Compare commits

..

2 Commits

Author SHA1 Message Date
Chengliang 646fbe1354 多语言修复 10 months ago
Chengliang b0c5004b26 多语言设置 10 months ago

Binary file not shown.

@ -8,8 +8,6 @@ import {
Table, Table,
Spin, Spin,
Checkbox, Checkbox,
Row,
Col,
} from 'antd'; } from 'antd';
import { OrgChartComponent } from '@/components/orgChart'; import { OrgChartComponent } from '@/components/orgChart';
import * as d3 from 'd3'; import * as d3 from 'd3';
@ -35,9 +33,6 @@ export default class DrawerComponents extends React.Component {
columns: [], columns: [],
spinning: true, spinning: true,
showJob: false, showJob: false,
defaultTypeValue: ['isBelongTo'],
defaultStatusValue: [0, 1, 2, 3],
disabled: false,
}; };
} }
@ -75,7 +70,7 @@ export default class DrawerComponents extends React.Component {
} }
// //
getDeatilDatas(params, type = 'chart', showJob = '1') { getDeatilDatas(params, type = 'chart', showJob = '0') {
this.setState({ spinning: true, data: [], dataSource: [] }); this.setState({ spinning: true, data: [], dataSource: [] });
d3.json( d3.json(
'/api/bs/hrmorganization/orgchart/getDepartmentDetail?' + '/api/bs/hrmorganization/orgchart/getDepartmentDetail?' +
@ -309,19 +304,22 @@ export default class DrawerComponents extends React.Component {
: './img/default_avator.png' : './img/default_avator.png'
}" style="width: 58px; height: 58px; border-radius: 50%; margin-top: 16px;margin-left: -6px;z-index:999" /> }" style="width: 58px; height: 58px; border-radius: 50%; margin-top: 16px;margin-left: -6px;z-index:999" />
</div> </div>
<div style="display: inline-block;width: 55%;height:100%"> <div style="display: inline-block; margin-left: 6px;width: 55%;height:100%">
<div style='display:flex;align-items:center;height: 25px;line-height: 25px;margin-top:2px'> <div style='display:flex;align-items:center;height: 25px;line-height: 25px;margin-top:2px'>
<div style="font-weight: bold;font-size: 14px;ont-family: Microsoft YaHei-Bold, Microsoft YaHei;color: #333333;"> <div style="font-weight: bold;font-size: 15px;ont-family: Microsoft YaHei-Bold, Microsoft YaHei;color: #333333;">${
${d.data.fname} d.data.fname
<span style='color: red;'>(${d.data.accountType})</span> }</div>
</div>
</div> </div>
<div style="font-size: 13px;margin-top: 5px;font-family: Microsoft YaHei-Regular, Microsoft YaHei;font-weight: 400;color: #333333;display: flex;height: 25px;line-height: 25px;"> <div style="font-size: 13px;font-family: Microsoft YaHei-Regular, Microsoft YaHei;font-weight: 400;color: #333333;display: flex;line-height: 25px;">
<span>${getLabel(547324, labelData)}: ${ <span>${getLabel(547324, labelData)}: ${
d.data.companyWorkYear d.data.companyWorkYear
} ${getLabel(547526, labelData)}</span> } ${getLabel(547526, labelData)}</span>
</div> </div>
<div style="font-size: 13px;font-family: Microsoft YaHei-Regular, Microsoft YaHei;font-weight: 400;color: #333333;display: flex;line-height: 25px;">
<span>${getLabel(547333, labelData)}: ${
d.data.jobName
}</span>
</div>
</div> </div>
</div> </div>
</div>`; </div>`;
@ -329,78 +327,22 @@ export default class DrawerComponents extends React.Component {
}; };
showDrawer = (params) => { showDrawer = (params) => {
const { defaultStatusValue, defaultTypeValue } = this.state;
params = {
...params,
typeValue: defaultTypeValue.join(','),
statusValue: defaultStatusValue.join(','),
};
this.getDeatilDatas(params, 'chart', '0'); this.getDeatilDatas(params, 'chart', '0');
this.setState({ open: true, params: params }); this.setState({ open: true, params: params });
}; };
onClose = () => { onClose = () => {
this.setState({ this.setState({ open: false, detailType: 'chart', showJob: false });
open: false,
detailType: 'chart',
showJob: false,
defaultStatusValue: [0, 1, 2, 3],
defaultTypeValue: ['isBelongTo'],
disabled: false,
});
}; };
changeDetail = () => { changeDetail = () => {
const { detailType, params, defaultTypeValue, defaultStatusValue } = const { detailType, params } = this.state;
this.state;
const newParam = {
...params,
typeValue: defaultTypeValue.join(','),
statusValue: defaultStatusValue.join(','),
};
let type = detailType == 'chart' ? 'table' : 'chart'; let type = detailType == 'chart' ? 'table' : 'chart';
const showJob = this.state.showJob ? '1' : '0'; const showJob = '0';
this.setState({ this.setState({
detailType: type, detailType: type,
}); });
this.getDeatilDatas(newParam, type, showJob); this.getDeatilDatas(params, type, showJob);
};
onStatusChange = (checkedValues) => {
const { labelData } = this.props;
if (checkedValues.length === 0) {
return message.error(`${getLabel(547728, labelData)}`, 2);
}
this.setState({
defaultStatusValue: checkedValues,
});
const { defaultTypeValue, params, detailType } = this.state;
const showJob = this.state.showJob ? '1' : '0';
const nParam = {
...params,
statusValue: checkedValues.join(','),
typeValue: defaultTypeValue.join(','),
};
this.getDeatilDatas(nParam, detailType, showJob);
};
onTypeChange = (checkedValues) => {
const { labelData } = this.props;
if (this.state.showJob) {
return message.error(`${getLabel(547729, labelData)}`, 2);
}
this.setState({
defaultTypeValue: checkedValues,
disabled: checkedValues.includes('isManager') ? true : false,
});
const { defaultStatusValue, params, detailType } = this.state;
const showJob = this.state.showJob ? '1' : '0';
const nParam = {
...params,
statusValue: defaultStatusValue.join(','),
typeValue: checkedValues.join(','),
};
this.getDeatilDatas(nParam, detailType, showJob);
}; };
render() { render() {
@ -413,30 +355,11 @@ export default class DrawerComponents extends React.Component {
columns, columns,
spinning, spinning,
showJob, showJob,
defaultStatusValue,
defaultTypeValue,
disabled,
} = this.state; } = this.state;
let arr = []; let arr = [];
const { labelData } = this.props; const { labelData } = this.props;
const optionsType = [
{ label: `${getLabel(547715, labelData)}`, value: 'isManager' },
{ label: `${getLabel(547716, labelData)}`, value: 'isBelongTo' },
];
const optionsStatus = [
{ label: `${getLabel(547718, labelData)}`, value: 0 },
{ label: `${getLabel(547719, labelData)}`, value: 1 },
{ label: `${getLabel(547720, labelData)}`, value: 2 },
{ label: `${getLabel(547721, labelData)}`, value: 3 },
{ label: `${getLabel(547722, labelData)}`, value: 4 },
{ label: `${getLabel(547723, labelData)}`, value: 5 },
{ label: `${getLabel(547724, labelData)}`, value: 6 },
{ label: `${getLabel(547725, labelData)}`, value: 7 },
];
if (detailType == 'chart') { if (detailType == 'chart') {
arr.push({ label: `${getLabel(547315, labelData)}`, key: '1' }); arr.push({ label: `${getLabel(547315, labelData)}`, key: '1' });
//arr.push({ label: 'PDF', key: '2' }); //arr.push({ label: 'PDF', key: '2' });
@ -449,7 +372,7 @@ export default class DrawerComponents extends React.Component {
return ( return (
<Drawer <Drawer
title={getLabel(547321, labelData)} title={getLabel(547321, labelData)}
width={1200} width={1100}
onClose={this.onClose} onClose={this.onClose}
open={open} open={open}
bodyStyle={{ bodyStyle={{
@ -457,30 +380,6 @@ export default class DrawerComponents extends React.Component {
}} }}
extra={ extra={
<Space> <Space>
{detailType == 'chart' && params && params.fclass == '0' && (
<Checkbox
style={{ marginTop: '5px', marginLeft: 100 }}
checked={showJob}
disabled={disabled}
onChange={(e) => {
this.setState({
showJob: e.target.checked,
});
const newParam = {
...params,
statusValue: defaultStatusValue.join(','),
typeValue: defaultTypeValue.join(','),
};
this.getDeatilDatas(
newParam,
detailType,
e.target.checked ? '1' : '0',
);
}}
>
{getLabel(547447, labelData)}
</Checkbox>
)}
<Dropdown overlay={menu}> <Dropdown overlay={menu}>
<Button type="primary">{getLabel(547314, labelData)}</Button> <Button type="primary">{getLabel(547314, labelData)}</Button>
</Dropdown> </Dropdown>
@ -490,68 +389,44 @@ export default class DrawerComponents extends React.Component {
</Space> </Space>
} }
> >
<> {detailType == 'chart' ? (
{detailType == 'chart' && ( <div className="svg-container">
<Row style={{ margin: '20px 20px 0px 20px' }}> <Spin
<Col span={2}>{getLabel(547714, labelData)}</Col> size="large"
<Col span={22}> spinning={spinning}
<Checkbox.Group tip={getLabel(547320, labelData)}
options={optionsType} className="loading-center"
value={defaultTypeValue} />
onChange={this.onTypeChange} {data.length > 0 && (
/> <OrgChartComponent
</Col> setChart={(chart) => (orgChart = chart)}
</Row> setClick={(click) => (addNodeChildFunc = click)}
)} onNodeClick={this.onNodeClick}
<Row style={{ margin: '10px 20px 10px 20px' }}> onButtonClick={this.onButtonClick}
<Col span={2}>{getLabel(547717, labelData)}</Col> data={data}
<Col span={22}> buttonContent={this.buttonContentRender}
<Checkbox.Group nodeWidth={this.nodeWidthRender}
options={optionsStatus} nodeHeight={this.nodeHeightRender}
value={defaultStatusValue} nodeContent={this.nodeContentRender}
onChange={this.onStatusChange}
/>
</Col>
</Row>
{detailType == 'chart' ? (
<div className="svg-container">
<Spin
size="large"
spinning={spinning}
tip={getLabel(547320, labelData)}
className="loading-center"
/> />
{data.length > 0 && ( )}
<OrgChartComponent </div>
setChart={(chart) => (orgChart = chart)} ) : (
setClick={(click) => (addNodeChildFunc = click)} <div style={{ padding: '0 20px' }}>
onNodeClick={this.onNodeClick} <Table
onButtonClick={this.onButtonClick} dataSource={dataSource}
data={data} columns={columns}
buttonContent={this.buttonContentRender} loading={spinning}
nodeWidth={this.nodeWidthRender} pagination={{
nodeHeight={this.nodeHeightRender} showSizeChanger: false,
nodeContent={this.nodeContentRender} showTotal: (total) =>
/> `${getLabel(547523, labelData)} ${
)} dataSource.length
</div> } ${getLabel(547524, labelData)}`,
) : ( }}
<div style={{ padding: '0 20px' }}> />
<Table </div>
dataSource={dataSource} )}
columns={columns}
loading={spinning}
pagination={{
showSizeChanger: false,
showTotal: (total) =>
`${getLabel(547523, labelData)} ${
dataSource.length
} ${getLabel(547524, labelData)}`,
}}
/>
</div>
)}
</>
</Drawer> </Drawer>
); );
} }

@ -7,12 +7,10 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
import React from 'react'; import React from 'react';
import { Timeline, Drawer, Popconfirm, message } from 'antd'; import { Timeline, Drawer } from 'antd';
import styles from './index.less'; import styles from './index.less';
import leftTreeShow from './img/leftTree-show.png'; import leftTreeShow from './img/leftTree-show.png';
import leftHide from './img/leftTree-hide.png'; import leftHide from './img/leftTree-hide.png';
import { CloseCircleOutlined } from '@ant-design/icons';
import { getLabel } from '../../util/i18n.js';
export default class TimeLine extends React.Component { export default class TimeLine extends React.Component {
constructor(props) { constructor(props) {
@ -37,21 +35,6 @@ export default class TimeLine extends React.Component {
this.props.onClick(data); this.props.onClick(data);
} }
handleDelete(key) {
const { labelData } = this.props;
let api = `/api/bs/hrmorganization/orgchart/versionDelete?versionId=${key}`;
fetch(api)
.then((res) => res.json())
.then((data) => {
if (data.api_status) {
message.success(`${getLabel(547484, labelData)}`, 2, 3);
window.location.reload(true);
} else {
message.error(`${getLabel(547483, labelData)}`, 2, 3);
}
});
}
componentDidMount() { componentDidMount() {
this.searchTimeLines(this.props.url); this.searchTimeLines(this.props.url);
} }
@ -73,8 +56,6 @@ export default class TimeLine extends React.Component {
}; };
render() { render() {
const { labelData } = this.props;
let showStyle = {}; let showStyle = {};
let positionStyle = {}; let positionStyle = {};
if (this.state.open) { if (this.state.open) {
@ -108,30 +89,14 @@ export default class TimeLine extends React.Component {
return ( return (
<Timeline.Item <Timeline.Item
key={item.key} key={item.key}
onClick={this.handleLineClick.bind(this, item)}
className={styles.timeline} className={styles.timeline}
color={item.color} color={item.color}
style={{
color: item.color == 'blue' ? '#1890ff' : 'dimgray',
}}
> >
<div <div>{item.title}</div>
className={styles.title}
style={{
color: item.color == 'blue' ? '#1890ff' : 'dimgray',
}}
onClick={this.handleLineClick.bind(this, item)}
>
{item.title}
</div>
{item.key != 0 && (
<Popconfirm
title={`${getLabel(547491, labelData)}[${item.title}]?`}
onConfirm={this.handleDelete.bind(this, item.key)}
okText={getLabel(547319, labelData)}
cancelText={getLabel(547318, labelData)}
>
<div className={styles.delete}>
<CloseCircleOutlined />
</div>
</Popconfirm>
)}
<div className={styles.time}>{item.time}</div> <div className={styles.time}>{item.time}</div>
</Timeline.Item> </Timeline.Item>
); );

@ -15,25 +15,21 @@
cursor: pointer; cursor: pointer;
} }
// .timeline .title:hover { .timeline :hover {
// color: #1890ff; color: #1890ff;
// } }
.time { .time {
color: dimgray; color: dimgray;
} }
.delete :hover {
color: red;
}
} }
.leftRightLayoutBtn { .leftRightLayoutBtn {
width: 18px; width: 18px;
height: 60px; height: 60px;
position: fixed; position: absolute;
top: 50%; top: 50%;
// margin-top: -30px; margin-top: -30px;
z-index: 101; z-index: 101;
cursor: pointer; cursor: pointer;
} }

@ -22,7 +22,7 @@ const { TextArea } = Input;
import moment from 'moment'; import moment from 'moment';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import locale from 'antd/lib/date-picker/locale/zh_CN'; import locale from 'antd/lib/date-picker/locale/zh_CN';
import { HomeOutlined, FolderOutlined } from '@ant-design/icons'; import { HomeOutlined } from '@ant-design/icons';
moment.locale('zh-cn'); moment.locale('zh-cn');
import { getLabel } from '../../util/i18n.js'; import { getLabel } from '../../util/i18n.js';
import { SmileOutlined } from '@ant-design/icons'; import { SmileOutlined } from '@ant-design/icons';
@ -45,8 +45,6 @@ export class TopBar extends React.Component {
open: false, open: false,
confirmLoading: false, confirmLoading: false,
description: '', description: '',
timelineId: '0',
treeKey: 1,
}; };
} }
@ -59,29 +57,10 @@ export class TopBar extends React.Component {
this.setState({ requestData }); this.setState({ requestData });
} }
handleTreeData(treeData = [], timelineId) {
this.setState({
rootTreeData: treeData,
timelineId: timelineId,
treeKey: this.state.treeKey + 1,
});
}
onChange = (e) => { onChange = (e) => {
this.setState({ description: e.target.value }); this.setState({ description: e.target.value });
}; };
generateKey = (
length = 5,
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
) => {
let result = '';
for (let i = 0; i < length; i++) {
result += chars.charAt(Math.floor(Math.random() * chars.length));
}
return result;
};
/** /**
* 弹窗确认 * 弹窗确认
*/ */
@ -138,9 +117,6 @@ export class TopBar extends React.Component {
} }
arr.map((item, index) => { arr.map((item, index) => {
item.icon = <HomeOutlined />; item.icon = <HomeOutlined />;
if (item.type == 2) {
item.icon = <FolderOutlined />;
}
}); });
this.setState({ this.setState({
rootTreeData: arr, rootTreeData: arr,
@ -159,14 +135,11 @@ export class TopBar extends React.Component {
const { id } = treeNode; const { id } = treeNode;
setTimeout(() => { setTimeout(() => {
const { fclass } = this.state.requestData; const { fclass } = this.state.requestData;
const { timelineId } = this.state;
let api = let api =
'/api/bs/hrmorganization/orgchart/getSubCompanyTree?subcompany=' + '/api/bs/hrmorganization/orgchart/getSubCompanyTree?subcompany=' +
id + id +
'&fclass=' + '&fclass=' +
fclass + fclass;
'&id=' +
timelineId;
this.getNodeTreeNode(api); this.getNodeTreeNode(api);
resolve(undefined); resolve(undefined);
}, 500); }, 500);
@ -219,8 +192,7 @@ export class TopBar extends React.Component {
render() { render() {
const { disabled, type, labelData } = this.props; const { disabled, type, labelData } = this.props;
const { rootTreeData, open, confirmLoading, treeExpandedKeys, treeKey } = const { rootTreeData, open, confirmLoading, treeExpandedKeys } = this.state;
this.state;
return ( return (
<div className={style.topbarWrapper}> <div className={style.topbarWrapper}>
@ -257,11 +229,9 @@ export class TopBar extends React.Component {
))} ))}
</Select> </Select>
</Col> </Col>
<Col span={6}>
<Col span={8}>
{getLabel(547294, labelData)} {getLabel(547294, labelData)}
<TreeSelect <TreeSelect
key={treeKey}
treeDataSimpleMode treeDataSimpleMode
allowClear allowClear
style={{ width: '65%' }} style={{ width: '65%' }}
@ -274,7 +244,7 @@ export class TopBar extends React.Component {
treeIcon treeIcon
/> />
</Col> </Col>
<Col span={5}> <Col span={6}>
<Checkbox <Checkbox
style={{ marginTop: '5px', marginLeft: 100 }} style={{ marginTop: '5px', marginLeft: 100 }}
checked={this.state.requestData.hidedept == '1'} checked={this.state.requestData.hidedept == '1'}
@ -296,7 +266,7 @@ export class TopBar extends React.Component {
/> />
</Tooltip> </Tooltip>
</Col> </Col>
<Col span={5}> <Col span={6}>
{getLabel(547299, labelData)} {getLabel(547299, labelData)}
<Select <Select
defaultValue="3" defaultValue="3"
@ -334,41 +304,7 @@ export class TopBar extends React.Component {
/> />
</Tooltip> </Tooltip>
</Col> </Col>
<Col span={16}>
<Col span={10}>
{this.state.requestData.fclass == '0' && (
<span>
<Button
type="primary"
style={{ marginRight: '10px' }}
disabled={disabled}
onClick={() => {
this.setState({ open: true });
}}
>
{getLabel(547305, labelData)}
</Button>
<Button
type="primary"
style={{ marginRight: '10px' }}
onClick={() => {
window.open('#/dragtree', 'blank');
}}
>
{getLabel(547310, labelData)}
</Button>
<Button
type="primary"
style={{ marginRight: '10px' }}
onClick={() => {
window.open('#/statistics', 'blank');
}}
>
{getLabel(547313, labelData)}
</Button>
</span>
)}
<Button <Button
type="primary" type="primary"
style={{ marginRight: '10px' }} style={{ marginRight: '10px' }}
@ -378,7 +314,24 @@ export class TopBar extends React.Component {
> >
{getLabel(547307, labelData)} {getLabel(547307, labelData)}
</Button> </Button>
<Button
type="primary"
style={{ marginRight: '10px' }}
onClick={() => {
window.open('#/dragtree', 'blank');
}}
>
{getLabel(547310, labelData)}
</Button>
<Button
type="primary"
style={{ marginRight: '10px' }}
onClick={() => {
window.open('#/statistics', 'blank');
}}
>
{getLabel(547313, labelData)}
</Button>
<Dropdown overlay={this.menu}> <Dropdown overlay={this.menu}>
<Button type="primary">{getLabel(547314, labelData)}</Button> <Button type="primary">{getLabel(547314, labelData)}</Button>
</Dropdown> </Dropdown>

@ -76,10 +76,9 @@ export default function companyPage() {
'/api/bs/hrmorganization/orgchart/asyncCompanyData' + '/api/bs/hrmorganization/orgchart/asyncCompanyData' +
qs.stringify(request, { addQueryPrefix: true }); qs.stringify(request, { addQueryPrefix: true });
} else { } else {
let request = { ...topbar.state.requestData, ids: idsStr };
api = api =
'/api/bs/hrmorganization/orgchart/asyncCompanyData' + '/api/bs/hrmorganization/orgchart/asyncCompanyData?fclass=0&fisvitual=0&id=0&root=0&ids=' +
qs.stringify(request, { addQueryPrefix: true }); idsStr;
} }
fetch(api) fetch(api)
.then((res) => res.json()) .then((res) => res.json())
@ -165,8 +164,8 @@ export default function companyPage() {
let fclass = topbar.state.requestData.fclass; let fclass = topbar.state.requestData.fclass;
let statisticsStyle = fclass == 0 ? 'block' : 'none'; let statisticsStyle = fclass == 0 ? 'block' : 'none';
if (d.data.ftype == 0) { if (d.data.ftype == 0) {
return `<div style="text-align: center;"> return `<div>
<div style="display: inline-block; margin-left: 5px;"> <div style="display: inline-block; text-align: center; margin-left: 5px;">
<div style=" <div style="
font-size: 24px; font-size: 24px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei; font-family: Microsoft YaHei-Bold, Microsoft YaHei;
@ -186,11 +185,10 @@ export default function companyPage() {
</div> </div>
<div style="width: 144px;height: 80px;top: 35px;position: relative;font-weight: 400;font-size: 14px; <div style="width: 144px;height: 80px;top: 35px;position: relative;font-weight: 400;font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;color: #333333;text-align: center;"> font-family: Microsoft YaHei-Regular, Microsoft YaHei;color: #333333;text-align: center;">
<div class="tooltip"> <div title=${
<div class="tooltitle"> ${d.data.fname} </div> d.data.fname
<div class="tooltiptext">${d.data.fname}</div> } style="width: 110px;margin: 0 auto;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;
</div> line-height: 18px;word-break: break-all;">${d.data.fname}</div>
<div style="display: ${statisticsStyle}"> <div style="display: ${statisticsStyle}">
<span style="color:red">${d.data.staffNum}</span> / <span style="color:red">${d.data.staffNum}</span> /
<span style="color:green">${d.data.onJobNum}</span> <span style="color:green">${d.data.onJobNum}</span>
@ -208,11 +206,8 @@ export default function companyPage() {
</div> </div>
<div style="width: 144px;height: 80px;top: 35px;position: relative;font-weight: 400;font-size: 14px; <div style="width: 144px;height: 80px;top: 35px;position: relative;font-weight: 400;font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;color: #333333;text-align: center;"> font-family: Microsoft YaHei-Regular, Microsoft YaHei;color: #333333;text-align: center;">
<div class="tooltip"> <div style="width: 110px;margin: 0 auto;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
<div class="tooltitle"> ${d.data.fname} </div> line-height: 18px;word-break: break-all;">${d.data.fname}</div>
<div class="tooltiptext">${d.data.fname}</div>
</div>
<div style="display: ${statisticsStyle}"> <div style="display: ${statisticsStyle}">
<span style="color:red">${d.data.staffNum}</span> / <span style="color:red">${d.data.staffNum}</span> /
<span style="color:green">${d.data.onJobNum}</span> <span style="color:green">${d.data.onJobNum}</span>
@ -351,10 +346,6 @@ export default function companyPage() {
*/ */
const handleExport = (type) => { const handleExport = (type) => {
if (type == 'png') { if (type == 'png') {
const hiddenElements = document.querySelectorAll('.tooltitle');
const hiddenElementsArray = Array.from(hiddenElements);
// DOM
hiddenElementsArray.forEach((el) => (el.style.display = 'none'));
orgChart && orgChart.exportImg({ full: true }); orgChart && orgChart.exportImg({ full: true });
} else { } else {
orgChart && downloadPdf(orgChart); orgChart && downloadPdf(orgChart);
@ -375,8 +366,6 @@ export default function companyPage() {
hidedept: '0', hidedept: '0',
}; };
topbar.handleFormChange({ ...resetParams }); topbar.handleFormChange({ ...resetParams });
//
topbar.handleTreeData([], timeline.id);
topbar.getNodeTreeNode( topbar.getNodeTreeNode(
`/api/bs/hrmorganization/orgchart/getSubCompanyTree?fclass=${fclass}&id=${timeline.id}`, `/api/bs/hrmorganization/orgchart/getSubCompanyTree?fclass=${fclass}&id=${timeline.id}`,
false, false,
@ -490,14 +479,6 @@ export default function companyPage() {
onZoomIn={(progressBtn) => handleZoomIn(progressBtn)} onZoomIn={(progressBtn) => handleZoomIn(progressBtn)}
onZoomBehavior={(value) => handleZoomBehavior(value)} onZoomBehavior={(value) => handleZoomBehavior(value)}
/> />
<TimeLine
ref={(r) => (timeLine = r)}
onClick={(timeline) => {
timeLineSearch(timeline);
}}
url={'/api/bs/hrmorganization/orgchart/timeLines?fclass=0'}
labelData={labelData}
/>
<Spin size="large" spinning={spinning}> <Spin size="large" spinning={spinning}>
<OrgChartComponent <OrgChartComponent
setChart={(chart) => (orgChart = chart)} setChart={(chart) => (orgChart = chart)}

@ -114,44 +114,6 @@
} }
.ant-drawer-body { .ant-drawer-body {
padding: 0; padding: 0px;
overflow: hidden; overflow: hidden;
} }
.tooltip {
position: relative;
display: inline-block;
cursor: pointer;
width: 110px;
margin: 0 auto;
line-height: 18px;
word-break: break-all;
}
.tooltip .tooltitle {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 144px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
bottom: 125%;
left: 39%;
margin-left: -60px;
opacity: 0;
transition: opacity 0.3s;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}

@ -99,7 +99,7 @@ export default function userPage() {
// //
useEffect(() => { useEffect(() => {
document.cookie = document.cookie =
'ecology_JSessionid=aaaLiDqzA0rZHgPBdxGez; JSESSIONID=aaaLiDqzA0rZHgPBdxGez; Systemlanguid=7; languageidweaver=7; loginuuids=1; loginidweaver=sysadmin; __randcode__=7b9b3b9b-a780-4d6a-b8d5-22d0f8aaf11a'; 'ecology_JSessionid=aaandPcwzDCbpb6Ci0Jaz; JSESSIONID=aaandPcwzDCbpb6Ci0Jaz; Systemlanguid=7; loginidweaver=sysadmin; loginuuids=1; languageidweaver=8; __randcode__=4fb17586-6f53-4658-92b1-9edc9831cc02';
d3.json( d3.json(
'/api/bs/hrmorganization/orgchart/userData?fclass=0&fisvitual=0&root=0&level=3&id=0', '/api/bs/hrmorganization/orgchart/userData?fclass=0&fisvitual=0&root=0&level=3&id=0',
).then((data) => { ).then((data) => {

Loading…
Cancel
Save