import { Button, Modal, message, Row, Col, Spin, Input } from 'antd'; import { WeaErrorPage, WeaPopoverHrm, WeaTools, WeaSearchBrowserBox, WeaTableEdit, WeaDialog, WeaSearchGroup, WeaRightMenu, WeaFormItem, WeaQrcode, WeaTextarea } from 'ecCom' import isEmpty from 'lodash/isEmpty' import debounce from 'lodash/debounce' import isArray from 'lodash/isArray' import '../../style/cardInfo.less'; import { InfoGroup4Formal3, 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; const InputGroup = Input.Group; @inject('hrmCardInfo4Formal') @inject('hrmCard') @observer class Main extends React.Component { constructor(props) { super(props); const funcs = ['showSQR', 'editCard', 'backCard', 'saveEditCard']; funcs.forEach(f => this[f] = this[f].bind(this)); this.state = { editable: false, textVal: '' } } clickHandle = () => { const { hrmCardInfo4Formal } = this.props; const { isSelf } = hrmCardInfo4Formal; if (!this.state.editable && isSelf) { this.setState({ editable: true }) this.textareaDom.refs.textareaNormal.refs.input.refs.input.focus(); } } componentWillUnmount() { // this.divDom && this.divDom.removeEventListener('click', this.clickHandle); } onBlurHandle = (value) => { const { hrmCardInfo4Formal } = this.props; const { saveRemark, hrmId } = hrmCardInfo4Formal; let urlParams = { remark: value } hrmId != '' && Object.assign(urlParams, { id: hrmId }) saveRemark(urlParams); this.setState({ editable: false, textVal: value }) } componentWillReceiveProps(nextProps) { const keyOld = this.props.location.key; const keyNew = nextProps.location.key; if (keyOld !== keyNew) { const { hrmCardInfo4Formal } = this.props; hrmCardInfo4Formal.updateIsEditor(); } } componentDidMount() { // this.divDom && this.divDom.addEventListener('click', this.clickHandle); const { hrmCardInfo4Formal, hrmCard } = this.props; const hrmId = this.props.params.hrmId || ''; hrmCardInfo4Formal.updateIsEditor(); hrmCardInfo4Formal.getData(hrmId); hrmCardInfo4Formal.getRightMenu(hrmId); const isEditor = this.props.location.query.isEditor || ''; if (isEditor == 'true') { this.editCard(); } hrmCard.setTopButtons(this.getTopButtons.bind(this)); hrmCard.setTopRightMenus(this.getRightMenu.bind(this)); hrmCard.setTopShowDropIcon(true); } 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); } } if((c.type === 'BTN_SetUserIcon' && hrmCard.uploadPortrailAuth) || c.type != 'BTN_SetUserIcon') arr.push(item); }) } return arr; } showLog(params){ window.setLogViewProps(params); } 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 (buttons == null) return btns; if (isEditor) { if (!isEmpty(buttons) && buttons.hasSave) { btns.push(save); btns.push(back); } } else { if (!isEmpty(buttons) && 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 }); hrmCard.setupdateStatus(); }); } 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, validate, } = hrmCardInfo4Formal; let group = []; const { isFormInit } = form; let idx = 0; window.e9HideFormFieldKeys = []; isFormInit && conditioninfo.forEach((c, i) => { let items = []; idx++; if (c.hasResourceImage) { let resourceimg; let baseGroup =
{ c.items.forEach( (field, j) => { 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, j) => { if(!isEmpty(validate)&&validate[36] && validate[36].isValidate){ if (field.conditionType == 'RESOURCEIMG') { const key = getKey(field); const bindObj = form.$(key); resourceimg = } } }) } {resourceimg}
group.push(baseGroup); } else { c.items.forEach((field, j) => { 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 } getPortraitButtons(){ const colArr = []; const {hrmCardInfo4Formal} = this.props; let {sendButtons, validate} = hrmCardInfo4Formal; sendButtons = toJS(sendButtons); const emJoinStatus = window.emJoinStatus; isArray(sendButtons) && sendButtons.forEach((item, i) => { let status = true; if(item.name == 'sendEmessage'){ status = emJoinStatus ? (!emJoinStatus.joinStatus || (emJoinStatus.status && emJoinStatus.joinStatus && emJoinStatus.emSwitch !== "0")) : false; } if(status && !isEmpty(validate)&&validate[item.validateId] && validate[item.validateId].isValidate){ colArr.push(
{ PublicFunc[item.funname](item.id); }} title={item.title} >
) } }) return colArr; } render() { const { editable, textVal } = this.state; const { hrmCardInfo4Formal } = this.props; let { isEditor, infoGroup, infoGroup2, imgSrc, modelItems, showSQR, showBigImg, sendButtons, accountInfo, showAccountInfo, QRCodeOptions, remarkInfo, tagInfo, saveTag, delTag, isSelf, visibleWeiXin, validate } = hrmCardInfo4Formal; const remarkEditable = isSelf; let textValHtml = '' if (remarkInfo.value != null && remarkInfo.value.length > 0) { const arr = remarkInfo.value.split(/[\s\n]/); arr.map(text => { textValHtml += `
  • ${text}
    `; }) } else { textValHtml = remarkEditable ? `

    ${i18n.label.fillSpecialtyIntroduction()}

    ` : ''; } sendButtons = toJS(sendButtons); infoGroup = toJS(infoGroup); infoGroup2 = toJS(infoGroup2); modelItems = toJS(modelItems); const sendBtns = this.getPortraitButtons(); const hasQRCode = !isEmpty(validate) && validate[37] && validate[37].isValidate; const calculateHeight = () => { let height = window.innerHeight; if (document.getElementsByClassName('hrm-my-card').length > 0) { height -= document.getElementsByClassName('hrm-my-card-top-wapper')[0].offsetHeight; height -= document.getElementsByClassName('wea-tab')[0].offsetHeight; if (document.getElementsByClassName('e9theme-layout-header').length > 0) height -= document.getElementsByClassName('e9theme-layout-header')[0].offsetHeight + 10; //头部菜单高度 height -= 10; return height; } return null; } 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}`} /> }
    { !isEmpty(QRCodeOptions) &&
    }

    {i18n.button.scanAddContacts()}

    ) } const getAccountinfo = () => { let colArr = []; let idx = 0; 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( {hrmCardInfo4Formal.updateVisibleWeiXin(true)}}>{a.label} ); } else { colArr.push( {a.label}: ); colArr.push( {showValue} ); } if(a.name=='lastlogindate'){ idx = i; } a.name=='lastlogindate' && colArr.push(); }); if (!showAccountInfo) { colArr.splice((idx+1)*2,colArr.length); } colArr.push( hrmCardInfo4Formal.updateShowAccountInfo(!showAccountInfo)}> ); return colArr; } const viewCard = (
    hrmCardInfo4Formal.updateVisibleWeiXin(false)} hideIcon >
    {getPortrait()} {!isEmpty(sendBtns) && {sendBtns}} {getAccountinfo()}
    { modelItems && modelItems.map(c => { const fontColor = c['font-color']; return (
    {window.open(c.url)}}>
    {c.label}
    {c.num}
    ) }) }
    { infoGroup && infoGroup.map((info, i) => { return ( ) }) }
    {i18n.label.specialtyIntroduction()}
    this.clickHandle()}> {editable && {this.textareaDom = dom}} value={remarkInfo.value} onBlur={this.onBlurHandle} />} {!editable &&
    }
    { tagInfo.value && tagInfo.value.length > 0 && tagInfo.value.map(tag => { return (
    {tag} { remarkEditable && delTag({tag})}> }
    ) }) }
    { remarkEditable && saveTag(this.tagInput.refs.input)} ref={dom => this.tagInput = dom} placeholder="输入特长标签" /> }
    ) const editCard = (
    {this.getSearchs()}
    ) return (
    {!isEditor ? viewCard : editCard}
    ) } } export default Main;