weaver_trunk_cli/pc4mobx/hrm/components/Total.js

237 lines
12 KiB
JavaScript

import React from 'react';
import {inject, observer} from 'mobx-react';
import {
WeaTop,
WeaTab,
WeaRightMenu,
WeaErrorPage,
WeaFormItem,
WeaDialog,
WeaSearchGroup,
WeaSelect,
WeaTree,
WeaProgress,
WeaAlertPage,
WeaLocaleProvider,
WeaNewScroll,
} from 'ecCom';
import {WeaTableNew} from 'comsMobx';
import {Row, Col, Icon, Button, Spin} from 'antd';
import * as mobx from 'mobx';
import '../style/total.less';
import {InfoGroup4Formal1} from '../coms/infoGroup4Formal';
import {i18n} from '../public/i18n';
import Tabs from "../coms/Tabs";
import findIndex from 'lodash/findIndex';
const toJS = mobx.toJS;
const getLabel = WeaLocaleProvider.getLabel;
const {
WeaTable
} = WeaTableNew;
@inject('hrmCard')
@inject('hrmResourceTotal')
@observer
class HrmResourceTotal extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
const {hrmResourceTotal, hrmCard} = this.props;
const hrmId = this.props.params.hrmId || '';
// hrmCard.setTopRightMenus(this.getRightMenu.bind(this));
hrmResourceTotal.hrmId = hrmId;
hrmResourceTotal.getHasRight();
}
renderCol = (cols) => {
let idx = findIndex(cols, item => item.dataIndex === 'finish');
idx != -1 && (cols[idx].render = (text, record) => {
return <WeaProgress ecId={`${this && this.props && this.props.ecId || ''}_WeaProgress@5wn8m7`} percent={record.finish === '' ? 0 : record.finish} strokeColor={record.finishspan}/>
})
}
render() {
const {hrmResourceTotal} = this.props;
const {title, loading, verified, hasRight, dialogParams, tabConfig, getTabIndex, formTarget, refreshDialog} = hrmResourceTotal;
let {condition} = hrmResourceTotal;
const {query} = this.props.location;
const {
conditionForm: form,
conditionFormFields: fields
} = formTarget;
const tabProps = {
tabConfig: tabConfig,
tabChangeHandle: tabConfig.tabChangeHandle,
activeTabInfo: {
activeTabKey: tabConfig.activeTabKey,
activeTabIndex: getTabIndex(tabConfig.tabs, tabConfig.activeTabKey)
},
store: hrmResourceTotal,
conditionForm: form,
conditionFormFields: fields,
tabBtnDef: tabConfig.buttons
}
const scrollProps = {
scroll: {
y: 480
}
}
if (verified && hasRight) {
return (
<div className='wea-hrm-resource-total'>
<div style={query.fromcard ? {display: 'none'} : {display: ''}}>
<WeaTop ecId={`${this && this.props && this.props.ecId || ''}_WeaTop@ggf0k1`}
title={title()}
loading={loading}
icon={<i className='icon-coms-hrm'/>}
iconBgcolor='#217346'
buttons={[]}
buttonSpace={10}
showDropIcon={false}
>
</WeaTop>
</div>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@o6byzb`} gutter={24}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@6l70i2`} span='12'>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@w62xod`} className='wea-hrm-resource-total-info'>
{
condition && condition.map((c, index) => {
if (index == 0) {
const colArr = [];
c.items && c.items.forEach((obj, index) => {
colArr.push(<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@narvjp@${index}`}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@yv1qa5@${index}`} className="wea-info-group-content-cell-label" span={6}>
{obj.label ? obj.label : <div>&nbsp;</div>}:
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@bmkzgd@${index}`} className="wea-info-group-content-cell-value" span={12}>
{obj.value}
</Col>
{ obj.codeName ?
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@d7j3hn@${index}`} className="wea-info-group-content-cell-value" span={6}>
<a onClick={() => this.onSelectHandle(obj, index)}>{getLabel(17463, '明细')}</a>
</Col>
:
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@o6drzp@${index}`} className="wea-info-group-content-cell-value" span={6}>
</Col>
}
</Row>)
})
return (
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@4cz1mu@${index}`} span='24'>
{/* <InfoGroup4Formal1 className={'hrm-base-group-title'} items={c.items} title={c.title} showGroup={c.defaultshow}/> */}
<div className="wea-info-group">
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@5gsodl@${index}`} className="wea-info-group-title">
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@ltmlau@${index}`} span={24}>
<div
className='wea-info-group-title-info'>{c.title}</div>
</Col>
</Row>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@u3nmw9@${index}`} className="wea-info-group-content">
{colArr}
</Row>
</div>
</Col>
)
}
})
}
</Row>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@foytnm`} span='12'>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@5w0etd`} className='wea-hrm-resource-total-info'>
{
condition && condition.map((c, index) => {
if (index > 0) {
return (
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@lde7ly@${index}`} span='24'>
<InfoGroup4Formal1 ecId={`${this && this.props && this.props.ecId || ''}_InfoGroup4Formal1@lsaen9@${index}`} className={'hrm-base-group-title'}
items={c.items} title={c.title}
showGroup={c.defaultshow}/>
</Col>
)
}
})
}
</Row>
</Col>
</Row>
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@m9sxxn`} {...dialogParams} hasScroll={false}>
{
form != null && form.isFormInit &&
<Tabs ecId={`${this && this.props && this.props.ecId || ''}_Tabs@9vbp8o`} {...tabProps}>
{
dialogParams.cType === 'table'
?
<WeaTable ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@32r6ur`}
comsWeaTableStore={dialogParams.table}
hasOrder={true}
needScroll={true}
getColumns={this.renderCol}
{...scrollProps}
/>
:
<WeaNewScroll height={480}>
<WeaTree ecId={`${this && this.props && this.props.ecId || ''}_WeaTree@2kaod3`}
datas={hrmResourceTotal.toJS(dialogParams.treeData)}
rowKey={'categoryid'}
/>
</WeaNewScroll>
}
</Tabs>
}
</WeaDialog>
</div>
);
}
if (verified && !hasRight) {
return (<WeaAlertPage ecId={`${this && this.props && this.props.ecId || ''}_WeaAlertPage@kgu3dd`}>
<div style={{color: '#000'}}>
{i18n.message.authFailed()}
</div>
</WeaAlertPage>
)
}
return (
<div></div>
)
}
onSelectHandle(obj, index) {
this.props.hrmResourceTotal.onSelectHandle(obj, index);
}
getRightMenu() {
const arr = [{
icon: <i className='icon-coms-ws'/>,
content: i18n.button.search()
}, {
icon: <i className='icon-coms-task-list'/>,
content: i18n.button.columnVisibleSetting()
}
];
return arr;
}
onRightMenuClick(key) {
const {hrmResourceTotal} = this.props;
switch (key) {
case '0':
//hrmResourceTotal.doSearch();
break;
case '1':
//this.definedColumn();
break;
}
}
}
export default HrmResourceTotal