import {
inject,
observer,
} from 'mobx-react';
import {
Row,
Col,
Icon,
Modal,
Button,
} from 'antd'
import {
WeaFormItem,
WeaSearchGroup,
} from 'ecCom'
import React from 'react'
import * as mobx from 'mobx'
import {
WeaSwitch
} from 'comsMobx';
import '../../style/addgroup.css'
import {
i18n
} from '../../public/i18n';
import {addContentPath} from '../../util/index.js'
const toJS = mobx.toJS;
const confirm = Modal.confirm;
@inject('hrmAddGroup')
@observer
class AddGroup extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
const {
hrmAddGroup
} = this.props;
const hrmId = this.props.params.hrmId || '';
hrmAddGroup.setHrmId(hrmId);
hrmAddGroup.getForm();
hrmAddGroup.getTableInfo();
}
getComponents(condition, form, isLinkage) {
let arr = [];
let formParams = form.getFormParams();
const {
isFormInit
} = form;
isFormInit && condition.map(c => {
let items = c.items;
for (let i = 0; i < items.length; i++) {
let field = items[i];
arr.push(
{}
)
}
})
return arr;
}
getGroup(columns, dataSource, arg) {
const {
hrmAddGroup
} = this.props;
const {
key,
authority
} = hrmAddGroup;
let arr = [];
if (columns && columns.length > 0) {
arr.push(
{columns[0].title});
}
if (dataSource && dataSource.length > 0) {
for (let i = 0; i < dataSource.length; i++) {
arr.push( this.handleMouseOver(dataSource[i].key)} onMouseLeave={() => this.handleMouseLeave()}>
{dataSource[i].groupname}
{ ( (arg == '1' && key == dataSource[i].key) || (arg == '2' && authority && key == dataSource[i].key) ) && dataSource[i].canedit ? this.del(dataSource[i].key, dataSource, arg)} className='icon-coms-delete'> : ''}
);
}
}
if (!dataSource || dataSource.length == 0) {
arr.push(
{i18n.label.dataNone()}
)
}
return
}
handleMouseOver(key) {
const {
hrmAddGroup
} = this.props;
hrmAddGroup.setKey(key);
}
handleMouseLeave() {
const {
hrmAddGroup
} = this.props;
hrmAddGroup.setKey('');
}
del(groupid, dataSource, arg) {
const {
hrmAddGroup
} = this.props;
hrmAddGroup.setGroupId(groupid);
this.showConfirm(groupid, dataSource, arg, hrmAddGroup);
}
getIndex(key, dataSource) {
let arr = [];
if (dataSource instanceof Array) {
for (let i = 0; i < dataSource.length; i++) {
arr.push(dataSource[i].key);
}
}
return arr.indexOf(key);
}
showConfirm(groupid, dataSource, arg, hrmAddGroup) {
let _this = this;
confirm({
title: i18n.confirm.defaultTitle(),
content: i18n.confirm.deleteSelected(),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
onOk() {
dataSource.splice(_this.getIndex(groupid, dataSource), 1);
if (arg == '1') hrmAddGroup.setDataSource('1', dataSource);
if (arg == '2') hrmAddGroup.setDataSource('2', dataSource);
hrmAddGroup.delete();
},
onCancel() {
return false;
},
});
}
render() {
const {
hrmAddGroup
} = this.props;
const {
condition,
form,
btnName1,
btnName2,
title
} = hrmAddGroup;
const {
columns1,
dataSource1,
columns2,
dataSource2
} = hrmAddGroup;
return (
{this.getComponents(condition, form, false)}
{this.getGroup(toJS(columns2), toJS(dataSource2), '2')}
{this.getGroup(toJS(columns1), toJS(dataSource1), '1')}
)
}
}
export default AddGroup