import { Button, Modal,message,Row,Col, Spin} from 'antd'; import isEmpty from 'lodash/isEmpty' import debounce from 'lodash/debounce' import cloneDeep from 'lodash/cloneDeep' import toString from 'lodash/toString' import forEach from 'lodash/forEach' import { WeaAlertPage, WeaTools,WeaTableEdit,WeaSearchGroup,WeaRightMenu, WeaFormItem, WeaTab} from 'ecCom' import {WeaSwitch} from 'comsMobx'; import { inject, observer} from 'mobx-react'; import * as mobx from 'mobx'; import {i18n} from '../../public/i18n'; import { WeaLocaleProvider } from 'ecCom'; const getLabel = WeaLocaleProvider.getLabel; const toJS = mobx.toJS; @inject('hrmPersonal') @inject('hrmCard') @observer class Personal extends React.Component { componentDidMount(){ const {hrmCard} = this.props; hrmCard.setTopButtons(this.getTopButtons.bind(this)); hrmCard.setTopRightMenus(this.getRightMenu.bind(this)); hrmCard.setTopShowDropIcon(true); this.init(); } init = () => { const {hrmPersonal, hrmCard, setParentRightMenu} = this.props; const hrmId = this.props.params.hrmId || ''; hrmPersonal.init(); hrmPersonal.hrmId=hrmId; hrmPersonal.getData(); } getTabChildren = () => { const {hrmPersonal} = this.props; let {tableInfo, isEditor, tabkey,onRowSelect,selectedRowKeys} = hrmPersonal; let tabChildren = []; tableInfo = toJS(tableInfo); tableInfo && tableInfo.map((t,i)=>{ if(tabkey==i){ if(t.hide){ }else{ tabChildren.push( hrmPersonal.setPersonalEditTables(ref)} showTitle={isEditor} // title={'列表信息'} // addFirstRow={isEditor} columns={t.tabinfo.columns} datas={t.tabinfo.datas} onChange={this.tableEditChange} selectedRowKeys={toJS(selectedRowKeys)} onRowSelect={keys => onRowSelect(keys)} onBtnsSelect={key=>this.onBtnsSelect(key,i)} viewAttr={isEditor?2: 1} getRowSelection={isEditor? (rowSelection)=>{ Object.assign(rowSelection,{ getCheckboxProps: record => ({ disabled: record.viewAttr === 1, // 配置无法勾选的列 }) }) return rowSelection; }: ()=>null} /> ); } } }) return tabChildren; } onBtnsSelect = (key, index) => { const { hrmPersonal } = this.props, { tableInfo, selectedRows, setSelectedRowKeys, selectedRowKeys } = hrmPersonal; const datas = tableInfo[index].tabinfo.datas; if (key === 'copy') { tableInfo[index].tabinfo.datas = datas.map( (data,i) => { if (!selectedRows[index].includes(i)) { data.viewAttr = 2; } return data }) } if (key === 'delete') { tableInfo[index].tabinfo.datas = datas.map( (data,i) => { if (selectedRows[index].includes(i)) { data.viewAttr = 1; } return data }); setSelectedRowKeys(selectedRowKeys.filter(row => !selectedRows[index].includes(row))) } } getSearchs = () => { const {hrmPersonal} = this.props; let {form, conditions, isEditor} = hrmPersonal; const {isFormInit} = form; let group = []; let tipPosition = 'bottom'; window.e9HideFormFieldKeys = []; isFormInit && conditions.forEach((c, i) =>{ let items = []; c.items.forEach( (field, j) => { if(c.hide || (!isEmpty(field.otherParams) && field.otherParams.hide)){ window.e9HideFormFieldKeys.push(field.domkey[0]); }else{ items.push({ com:( ), colSpan: 1 }); } }); group.push() }); return group; } tableEditChange = (data) => { const {hrmPersonal} = this.props; let {tabkey = '0', tableInfo} = hrmPersonal; tableInfo = toJS(tableInfo); let d = cloneDeep(tableInfo); d[Number(tabkey)].tabinfo.datas = data; hrmPersonal.updateTableInfo(d); } onTabChange = (key) => { const {hrmPersonal} = this.props; hrmPersonal.changeTab(key); } getRightMenu = () => { const {hrmPersonal, hrmCard} = this.props; const {isEditor, buttons,hrmId} = hrmPersonal; let arr = []; try{ if(buttons.hasEdit){ if (isEditor){ arr = [{ icon: , content: i18n.button.save(), key: 'save', onClick: key =>{ this.saveEditCard(); } }, { icon: , content: i18n.button.back(), key: 'back', onClick: key =>{ this.backCard(); } }] } else { arr = [{ icon: , content:i18n.button.modify(), key: 'editCard', onClick: key =>{ this.editCard(); } } ] arr.push( { icon: , content:i18n.button.log(), key: 'showLog', onClick: key =>{ window.setLogViewProps({logSmallType:i18n.smallType.HRM_RSOURCE_CARD_PERSONAL,targetId:hrmId}); } } ) } } }catch(e){} return arr; } getTopButtons = () => { const {hrmPersonal} = this.props; const {isEditor, buttons} = hrmPersonal; const save = ; const back = ; const edit = ; const btns = []; try{ if (isEditor) { if (buttons.hasSave) { btns.push(save); btns.push(back); } } else { if (buttons.hasEdit) { btns.push(edit); } } }catch(e){} return btns; } editCard = () => { const {hrmPersonal} = this.props; hrmPersonal.edit(); } saveEditCard = () => { const {hrmPersonal} = this.props; hrmPersonal.save(); } backCard = () => { this.init(); } render() { const {hrmPersonal} = this.props; const {loading, tabkey, tabInfo, date, tableInfo, hasRight} = hrmPersonal; if(!hasRight && !loading){ return (
{i18n.message.authFailed()}
) } //let showDetialTable = !isEmpty(tableInfo.filter(t => !t.hide)); try{ return (
{this.getSearchs()} { !isEmpty(tabInfo) &&
{ hrmPersonal.updateTabkey(v); }} /> {this.getTabChildren()}
}
) }catch(e){ return
{i18n.message.authFailed()}
} } } export default Personal;