import { inject, observer } from 'mobx-react'; import { Button, Form, Modal, message, Spin } from 'antd'; import isEmpty from 'lodash/isEmpty' import { WeaTop, WeaTab, // WeaOrgTree, WeaLeftRightLayout, WeaRightMenu, WeaErrorPage, WeaTools, WeaSearchGroup, WeaDialog, WeaInput, WeaInputSearch, WeaDropMenu, WeaFormItem, WeaTransfer, WeaSelect, } from 'ecCom'; import trim from 'lodash/trim' import { WeaTableNew, WeaSwitch } from 'comsMobx'; const { WeaTable } = WeaTableNew; import '../style/addressBook.less'; import * as PublicFunc from '../util/pulic-func'; import { jumpToHrmCard, jumpToHrmSubCompany, jumpToHrmDept, jumpToHrmPost } from '../util/pulic-func' import cloneDeep from 'lodash/cloneDeep'; import AddressBookExportSetting from './resourceExportTemplate/AddressBookExportSetting'; import { i18n } from '../public/i18n'; @inject('hrmAddressBook') @observer export default class AddressBook extends React.Component { constructor(props) { super(props); this.state = { transferVisible: false } } componentDidMount() { // const { // from, // lastname // } = this.props.location.query; const { hrmAddressBook } = this.props; // hrmAddressBook.searchFrom = from || ''; // hrmAddressBook.searchKeyWord = lastname || ''; const paramsFromURL = this.props.location.query; this.init(paramsFromURL); } componentWillReceiveProps(nextProps) { if (this.props.location.key !== nextProps.location.key) { // const { // from, // lastname // } = nextProps.location.query; const { hrmAddressBook } = this.props; // hrmAddressBook.searchFrom = from || ''; // hrmAddressBook.searchKeyWord = lastname || ''; // this.refs.WeaOrgTree.reset(()=>{ // this.refs.WeaOrgTree.fetchData(); // }); const paramsFromURL = nextProps.location.query; this.init(paramsFromURL); } } init = (paramsFromURL) => { const { type, id } = this.props.location.query; const { hrmAddressBook } = this.props; hrmAddressBook.showAllLevel = true; hrmAddressBook.rightMenus = [] hrmAddressBook.defaultShowLeft = false; if (hrmAddressBook.searchFrom && hrmAddressBook.searchFrom == 'quickSearch') { hrmAddressBook.tabkey = 'default_3'; } else { hrmAddressBook.tabkey = 'default_3'; } let params = {} if (type && type != '' && id && id != '') { if (type == '1') { params['subcompanyid1'] = id; } if (type == '2') { params['departmentid'] = id; } } Object.assign(params, paramsFromURL); hrmAddressBook.getData(params); hrmAddressBook.getRightMenuConfig(); hrmAddressBook.updateShowSearchAd(false); hrmAddressBook.updateVisible1(false); hrmAddressBook.updateVisible2(false); } onTabEdit = (targetKey, action) => { const { hrmAddressBook } = this.props; if (action === 'remove') { let params = {}; params.opera = "delete"; params.mouldid = targetKey; hrmAddressBook.deleteTabs(params); } } reRenderColumns = (columns) => { let __this = this; columns.forEach(c => { if (c.dataIndex == 'lastname') { c.render = function(text, record) { return jumpToHrmCard(record.id)}>{record.lastname} } } else if (c.dataIndex == 'managerid') { c.render = function(text, record) { return jumpToHrmCard(record.managerid)} dangerouslySetInnerHTML={{__html: record.manageridspan}}> } } else if (c.dataIndex == 'subcompanyid1') { c.render = function(text, record) { return jumpToHrmSubCompany(record.subcompanyid1)} dangerouslySetInnerHTML={{__html: record.subcompanyid1span}}> } } else if (c.dataIndex == 'departmentid') { c.render = function(text, record) { return jumpToHrmDept(record.departmentid)} dangerouslySetInnerHTML={{__html: record.departmentidspan}}> } } else if (c.dataIndex == 'jobtitle') { c.render = function(text, record) { return jumpToHrmPost(record.jobtitle)} dangerouslySetInnerHTML={{__html: record.jobtitlespan}}> } } else { c.render = function(text, record) { let valueSpan = record[c.dataIndex + "span"] !== undefined ? record[c.dataIndex + "span"] : record[c.dataIndex]; return } } }) return columns; } onOperatesClick = (record, index, operate, flag, argumentString) => { const fn = operate.href ? operate.href.split(':')[1].split('(')[0] : ''; const id = record.id ? record.id : ''; PublicFunc[fn](id); } onClickHandle1 = () => { this.props.hrmAddressBook.updateShowSearchAd(false); this.doSearch(); } onClickHandle2 = () => { this.props.hrmAddressBook.updateVisible2(true) } onClickHandle3 = () => { this.props.hrmAddressBook.formatTransfer(); this.props.hrmAddressBook.updateVisible1(true) } onClickHandle4 = () => this.props.hrmAddressBook.updateShowSearchAd(false) getTabButtonsAd = () => { const { hrmAddressBook } = this.props; const { tabkey, form } = hrmAddressBook; const btns = []; tabkey == 'default_3' && btns.push(); tabkey == 'default_3' && btns.push(); btns.push(); btns.push(); return btns; } getSearchs = () => { const { hrmAddressBook } = this.props; const { conditioninfo, conditioninfoAll, form, showAllCondition } = hrmAddressBook; const { isFormInit } = form; let ci = showAllCondition ? conditioninfoAll : conditioninfo; const group = []; isFormInit && ci.forEach((c, i) => { let items = []; c.items.forEach((field, j) => { if (field.isQuickSearch) { this.quickSearchPara = field.domkey[0]; } items.push({ com: ( ), colSpan: 1, }); }); group.push( ); }); return
{group} {!showAllCondition &&
{i18n.label.allCondition()}
}
} onClickHandle5 = () => this.props.hrmAddressBook.updateShowAllCondition(true) getRightMenu = () => { const { hrmAddressBook } = this.props; const { rightMenus } = hrmAddressBook; let btns = []; const keys = this.getSelectedRowKeys(); !isEmpty(rightMenus) && rightMenus.forEach((c) => { let item = { icon: , content: c.menuName, } if (c.menuFun == 'sendEmessage') item.disabled = keys.length == 0; btns.push(item); }) return btns; } onRightMenuClick = (key) => { const { hrmAddressBook } = this.props; const { rightMenus } = hrmAddressBook; const menuFun = rightMenus[key].menuFun; this[menuFun] && this[menuFun](); } getTree = () => { return ( ${i18n.label.organization()} ) } treeNodeClick = (event) => { const { hrmAddressBook } = this.props; const { form } = hrmAddressBook; const type = event.node.props.type || '0'; const id = event.node.props.id || ''; let params = {}; form.resetConditionValue(); hrmAddressBook.updateShowSearchAd(false); hrmAddressBook.tabkey = 'default_3'; if (type == '1') { params['subcompanyid1'] = id; } if (type == '2') { params['departmentid'] = id; } hrmAddressBook.doSearch(params); } getDialogBtns1 = () => { const { hrmAddressBook } = this.props; const btns = []; return btns; } getDialogBtns2 = () => { const { hrmAddressBook } = this.props; const btns = []; return btns; } filterLeft = (items) => { let leftItems = cloneDeep(items) const { hrmAddressBook } = this.props; const { transferleftIptVal, transferSelectedKey } = hrmAddressBook; if (transferSelectedKey) { leftItems = leftItems.filter((item) => item.idx == transferSelectedKey) } if (trim(transferleftIptVal)) { leftItems = leftItems.filter((item) => item.label.indexOf(trim(transferleftIptVal)) > -1) } return leftItems } filterRight = (items) => { let rightItems = cloneDeep(items) const { hrmAddressBook } = this.props; const { transferRightIptVal } = hrmAddressBook; if (trim(transferRightIptVal)) { rightItems = rightItems.filter((item) => item.label.indexOf(trim(transferRightIptVal)) > -1) } return rightItems } renderItem = (item) => { return
{item.label}
{item.title}
} renderTransfer = () => { const { hrmAddressBook } = this.props; let { transferDatas, transferKeys, transferOptions, transferleftIptVal, transferRightIptVal, transferSelectedKey } = hrmAddressBook; transferDatas = transferDatas; transferKeys = transferKeys; transferOptions = transferOptions; return
{ !isEmpty(transferDatas) && {i18n.label.toBeSelected()}
} rightHeader = {
{i18n.label.selected()}
} renderItem = { this.renderItem } data = { transferDatas } selectedKeys = { transferKeys } onChange = {hrmAddressBook.updateTransferKeys} /> } } getTopButtons = () => { const { hrmAddressBook } = this.props; const { showAllLevel, tabkey, rightMenus } = hrmAddressBook; const keys = this.getSelectedRowKeys(); let btns = []; const btnShowAllLevel = ; if (tabkey == 'default_2') { btns.push(btnShowAllLevel); } rightMenus.map((item, index) => { if (item.isTop && item.isTop == '1') { btns.push(); } }); return btns; } changeShowAllLevel = () => { const { hrmAddressBook } = this.props; hrmAddressBook.changeShowAllLevel(); } sendEmessage = () => { const keys = this.getSelectedRowKeys(); const ids = keys ? keys.join(',') : ''; PublicFunc.sendEmessage(ids); } exportExcel = () => { const { hrmAddressBook } = this.props; hrmAddressBook.initExportSetting(); return; hrmAddressBook.exportExcel(); } doSearch = (params) => { const { hrmAddressBook } = this.props; hrmAddressBook.doSearch(params); } reSearch = () =>{ const { hrmAddressBook } = this.props; hrmAddressBook.reSearch(); } definedColumn = () => { const { hrmAddressBook } = this.props; const { table } = hrmAddressBook; table.setColSetVisible(true); table.tableColSet(true); } getSelectedRowKeys = () => { const { hrmAddressBook } = this.props; const { table } = hrmAddressBook; const selectedRowKeys = table.selectedRowKeys; return selectedRowKeys; } onCancel1 = () => this.props.hrmAddressBook.updateVisible1(false) onCancel2 = ()=> this.props.hrmAddressBook.updateVisible2(false) hideSearchAd = () => this.props.hrmAddressBook.updateShowSearchAd(false) onSearchChange = value => { this.props.hrmAddressBook.form.updateFields({ [this.quickSearchPara || 'lastname']: { value } }) } render() { const { hrmAddressBook } = this.props; const { title, tabs, tabkey, showSearchAd, loading, comsWeaTableStore, form, table, visible1, visible2, templeteValue, defaultShowLeft, spinning } = hrmAddressBook; const formParams = form.getFormParams(); return (
{this.renderTransfer()}
} iconBgcolor='#217346' buttons={this.getTopButtons()} buttonSpace={10} showDropIcon={true} dropMenuDatas={this.getRightMenu()} onDropMenuClick={this.onRightMenuClick} > {/**/} {hrmAddressBook.updateShowSearchAd(bool); }} hideSearchAd={this.hideSearchAd} keyParam='typeid' // datas={toJS(tabs)} selectedKey={tabkey} onChange={hrmAddressBook.updateTabkey} onSearch={hrmAddressBook.getSearchList} onSearchChange={this.onSearchChange} onEdit={this.onTabEdit} /> {/* */}
); } }