import { Button, Modal,message,Row,Col, Spin} from 'antd'; import { WeaErrorPage, WeaPopoverHrm, WeaTools,WeaSearchBrowserBox,WeaTableEdit, WeaDialog,WeaSearchGroup, WeaRightMenu,WeaFormItem , WeaQrcode} from 'ecCom' import isEmpty from 'lodash/isEmpty' import debounce from 'lodash/debounce' import isArray from 'lodash/isArray' import '../../style/cardInfo.less'; import { InfoGroup4Formal1,InfoGroup4Formal2} from '../../coms/infoGroup4Formal'; import * as PublicFunc from '../../util/pulic-func'; import {createQRCode} from '../../util'; import UploadAvatar from '../../../../pc4public/hrm/uploadAvatar' import TopButton from '../../coms/topButton'; import {WeaSwitch} from 'comsMobx'; import * as mobx from 'mobx'; import { inject, observer} from 'mobx-react'; import {i18n} from '../../public/i18n'; import {addContentPath} from '../../util/index.js' const getKey = WeaTools.getKey; const toJS = mobx.toJS; @inject('hrmCardInfo4Formal') @inject('hrmCard') @observer class Main extends React.Component { constructor(props) { super(props); const funcs = ['onRightMenuClick', 'showSQR','editCard','backCard','saveEditCard']; funcs.forEach(f=> this[f] = this[f].bind(this)); } componentWillReceiveProps(nextProps) { const keyOld = this.props.location.key; const keyNew = nextProps.location.key; if(keyOld !== keyNew) { const {hrmCardInfo4Formal} = this.props; hrmCardInfo4Formal.updateIsEditor(); } } componentDidMount(){ const {hrmCardInfo4Formal} = this.props; const hrmId = this.props.params.hrmId ||''; hrmCardInfo4Formal.updateIsEditor(); hrmCardInfo4Formal.getData(hrmId); hrmCardInfo4Formal.getRightMenu(hrmId); } showSQR(bool,e){ const {hrmCardInfo4Formal} = this.props; e.stopPropagation && e.stopPropagation(); e.preventDefault && e.preventDefault(); e.nativeEvent && e.nativeEvent.preventDefault(); hrmCardInfo4Formal.updateShowSQR(bool); } getIcon(str) { switch(str){ case 'sendEmessage': return 'icon-coms-Send-message'; case 'openmessage': return 'icon-coms-message-o'; case 'openemail': return 'icon-coms-Send-emails'; case 'doAddWorkPlan': return 'icon-coms-New-schedule-o'; } } getRightMenu() { const { hrmCardInfo4Formal, hrmCard } = this.props; let { isEditor, buttons, rightMenus } = hrmCardInfo4Formal; buttons = toJS(buttons); rightMenus = toJS(rightMenus); let arr = []; 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 { !isEmpty(rightMenus) && rightMenus.forEach((c) => { let item = { icon: , content: c.menuName, key: c.menuFun, onClick: key =>{ const menuFun = c.menuFun; if(menuFun === 'showPortraitSetting') hrmCard[menuFun] && hrmCard[menuFun](); this[menuFun] && this[menuFun](c.params); } } arr.push(item); }) } return arr; } onRightMenuClick(key){ const {hrmCardInfo4Formal} = this.props; let {isEditor, rightMenus} = hrmCardInfo4Formal; rightMenus = toJS(rightMenus); if (isEditor) { switch(key){ case '0': this.saveEditCard(); break; case '1': this.backCard(); break; } } else { const menuFun = rightMenus[key].menuFun; this[menuFun] && this[menuFun](); } } showLog(params){ window.setLogViewProps(params); } sendEmessage = () =>{ const {params} = this.props; let id = params.hrmId; if (id) PublicFunc.sendEmessage(id); } sendSmsMessage(){ const {params} = this.props; let id = params.hrmId; if (id) PublicFunc.sendSmsMessage(id); } sendMail(){ const {params} = this.props; let id = params.hrmId; if (id) PublicFunc.sendMail(id); } doAddWorkPlanByHrm(){ const {params} = this.props; let id = params.hrmId; if (id) PublicFunc.doAddWorkPlanByHrm(id); } addCoWork(){ const {params} = this.props; let id = params.hrmId; if (id) PublicFunc.addCoWork(id); } getTopButtons() { const {hrmCardInfo4Formal} = this.props; let {isEditor, buttons} = hrmCardInfo4Formal; buttons = toJS(buttons); const save = ; const back = ; const edit = ; const btns = []; if (isEditor) { if (buttons.hasSave) { btns.push(save); btns.push(back); } } else { if (buttons.hasEdit) { btns.push(edit); } } return btns; } editCard(){ const hrmId = this.props.params.hrmId ||''; const {hrmCardInfo4Formal} = this.props; hrmCardInfo4Formal.edit(hrmId); } saveEditCard(){ const hrmId = this.props.params.hrmId ||''; const {hrmCardInfo4Formal,hrmCard} = this.props; hrmCardInfo4Formal.saveEditCard(()=>{ hrmCard.getTabBaseInfo({id:hrmId}); }); } backCard(){ const hrmId = this.props.params.hrmId ||''; const {hrmCardInfo4Formal} = this.props; hrmCardInfo4Formal.updateIsEditor(); hrmCardInfo4Formal.qrcode(hrmId); hrmCardInfo4Formal.updateShowSQR(false); } getSearchs(){ const {hrmCardInfo4Formal} = this.props; let {conditioninfo,hideBelongto,isEditor,form} = hrmCardInfo4Formal; let group = []; const {isFormInit} = form; let idx = 0; window.e9HideFormFieldKeys = []; isFormInit && conditioninfo.forEach(c =>{ let items = []; idx++; if(c.hasResourceImage){ let resourceimg; let baseGroup =
{ c.items.forEach( field => { let dom = { if (v.accounttype) { hrmCardInfo4Formal.updateHideBelongto(v.accounttype.value == '0'); } }}/> if (field.conditionType == 'RESOURCEIMG' || (field.domkey && field.domkey[0] == 'belongto' && hideBelongto)) { } else { if(c.hide || !isEmpty(field.otherParams) && field.otherParams.hide){ window.e9HideFormFieldKeys.push(field.domkey[0]); }else{ items.push({ com:(
{dom}
), colSpan: 1 }); } } }) } { c.items.forEach( field => { if (field.conditionType == 'RESOURCEIMG') { const key = getKey(field); const bindObj = form.$(key); resourceimg = } }) } {resourceimg}
group.push(baseGroup); }else{ c.items.forEach( field => { if(c.hide || !isEmpty(field.otherParams) && field.otherParams.hide){ window.e9HideFormFieldKeys.push(field.domkey[0]); }else{ let dom = { if (v.accounttype) { hrmCardInfo4Formal.updateHideBelongto(v.accounttype.value == '0'); } }}/> if (field.conditionType == 'RESOURCEIMG' || (field.domkey && field.domkey[0] == 'belongto' && hideBelongto)) { } else { items.push({ com:( {dom} ), colSpan: 1 }); } } }); group.push() } }); return group } render() { const {hrmCardInfo4Formal} = this.props; let {isEditor, infoGroup,infoGroup2,imgSrc,modelItems,showSQR, showBigImg,sendButtons,accountInfo,showAccountInfo,hasQRCode,QRCodeOptions} = hrmCardInfo4Formal; sendButtons = toJS(sendButtons); infoGroup = toJS(infoGroup); infoGroup2 = toJS(infoGroup2); modelItems = toJS(modelItems); const getPortrait =()=>{ const loadingImg = '/images/messageimages/temp/loading_wev8.gif'; const hasNoImg = ['/images/messageimages/temp/man_wev8.png', '/images/messageimages/temp/women_wev8.png', ''].indexOf(imgSrc || '') > -1; return (
{!showBigImg && {this.setState({imgSrc: addContentPath('/images/messageimages/temp/man_wev8.png')})}} onClick={()=>imgSrc && hrmCardInfo4Formal.updateShowBigImg(true)} /> } {showBigImg && {this.setState({imgSrc: addContentPath('/images/messageimages/temp/man_wev8.png')})}} onClick={()=>imgSrc && hrmCardInfo4Formal.updateShowBigImg(false)} src={`${window.ecologyContentPath || ''}${imgSrc ? imgSrc : loadingImg}`} /> }
{ hasQRCode && !isEmpty(QRCodeOptions) && }
) } const getPortraitButtons=()=>{ const colArr = []; isArray(sendButtons) && sendButtons.forEach((item) => { colArr.push(
{ PublicFunc[item.funname](item.id); }} title={item.title} >
) }) return colArr; } const getAccountinfo=()=>{ let colArr = []; accountInfo && accountInfo.forEach((a,i)=>{ let showValue; if(a.isOpenHrm){ showValue = a.showName!=''? window.pointerXY(event)}>{a.showName} :
 
; }else{ showValue = a.value ?
:
 
; } if(a.name=='weixin'){ colArr.push( {showWeaDialog()}}>{a.label} ); }else{ colArr.push( {a.label}: ); colArr.push( {showValue} ); } i==3 && colArr.push(); }); if(!showAccountInfo){ colArr.splice(8,colArr.length); } colArr.push( hrmCardInfo4Formal.updateShowAccountInfo(!showAccountInfo)}> ); return colArr; } const viewCard = (
{getPortrait()} {getPortraitButtons()} {getAccountinfo()}
{ modelItems && modelItems.map(c => { const fontColor = c['font-color']; return (
{window.open(c.url)}}>
{c.label}
{c.num}
) }) }
{ infoGroup && infoGroup.map(info => { return ( ) }) } { infoGroup2 && infoGroup2.map(info => { return ( ) }) }
) const editCard = (
{this.getSearchs()}
) return (
{!isEditor ? viewCard : editCard}
) } } export default Main;