weaver_trunk_cli/pc4mobx/hrm/components/applicant/TabsWp.js

169 lines
4.5 KiB
JavaScript

import {
inject,
observer,
} from 'mobx-react';
import {
toJS
} from 'mobx';
import {
WeaEchart,
WeaLocaleProvider
} from 'ecCom';
import {
Tabs
} from 'antd';
const TabPane = Tabs.TabPane;
const getLabel = WeaLocaleProvider.getLabel;
import Query from './Query';
@inject('hrmApplicant')
@observer
export default class TabsWp extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
// this.props.hrmApplicant.getTabsDatas();
}
componentDidUpdate() {
const {
hrmApplicant
} = this.props, {
tabs
} = hrmApplicant, {
key
} = tabs;
this[`echart${key}`] && this[`echart${key}`].paint();
}
componentWillUnmount() {
this.props.hrmApplicant.resetTabs();
}
setRef = (ref, alias) => {
const {
hrmApplicant
} = this.props, {
setRef
} = hrmApplicant;
this[alias] = ref;
setRef({
ref,
alias,
type: 'tabs',
});
}
chartAction = (chart, index) => {
chart.off('click');
chart.on('click', params => this.handleChartAction(params, index));
}
handleChartAction = (params, index) => {
const {
hrmApplicant
} = this.props, {
tab,
query,
openDialog,
} = hrmApplicant, {
ids0,
ids1,
} = tab, {
value
} = query;
const {
name,
dataIndex
} = params;
let obj;
if (index == 0) {
obj = {
category: ids0[dataIndex]
}
}
if (index == 1) {
obj = {
educationlevel: ids1[dataIndex]
}
}
const is_other = !name.includes('-') ? true : false;
const [
f,
t
] = !is_other ? name.split('(')[0].split('-') : [];
if ([2, 3].includes(index)) {
obj = {
[index == 2 ? 'salaryNeed' : 'workTime']: is_other ? -1 : f * (index == 2 ? 10000 : 1),
[index == 2 ? 'salaryNeedto' : 'workTimeto']: is_other ? -1 : t * (index == 2 ? 10000 : 1),
[index == 2 ? 'salaryNeedeRand' : 'workTimeRand']: (value ? value : (index == 2) ? 5 : 2) * (index == 2 ? 10000 : 1),
}
}
openDialog('pie', obj, true);
}
render() {
const {
hrmApplicant
} = this.props, {
tabs,
tabsCallback,
} = hrmApplicant, {
charts,
key,
} = tabs;
return (<div style={{float:'left', width: '100%',padding:16}}>
<Tabs ecId={`${this && this.props && this.props.ecId || ''}_Tabs@g2w560`} onChange={key => tabsCallback(key)} type="card">{
toJS(charts).map((chart, index) => {
const {title, option} = chart;
const bl1 = option.series[0].data.length > 0 ;
return (
<TabPane ecId={`${this && this.props && this.props.ecId || ''}_TabPane@pkm298@${index}`} tab={title} key={index}>
<Query ecId={`${this && this.props && this.props.ecId || ''}_Query@iz0on0@${index}`}
title={title}
index={index}
bl1={bl1}
/>
<div style={{height: 380}}>
{
bl1
?
<div style={{height: '100%'}}>
{key == index && <WeaEchart ecId={`${this && this.props && this.props.ecId || ''}_WeaEchart@8c7r8n@${index}`}
ref={ref =>this.setRef(ref,`echart${index}`)}
option={chart.option}
useDefault={false}
chartAction={ chart => this.chartAction(chart,index)}
/>}
</div>
: <i
className='icon-coms-blank'
style={{fontSize: 50, position:'absolute',top:'50%',left:'50%',marginLeft: -25,marginTop: -50}}
>
<span style={{display:'block',fontSize: 12}}>{getLabel(83553, '暂无数据')}</span>
</i>
}
</div>
</TabPane>
)
})
}</Tabs>
</div>)
}
}