import React, { Component } from 'react'; import { observer } from 'mobx-react'; import { toJS } from 'mobx'; import { WeaDialog, WeaTransfer, WeaSelect, WeaInputSearch, WeaLocaleProvider } from 'ecCom'; import {Spin} from 'antd'; import {cloneDeep} from 'lodash'; const getLabel = WeaLocaleProvider.getLabel; @observer export default class FieldSetting extends Component { constructor(props) { super(props); this.state = { options: [ { key: "0", selected: true, showname: "" },{ key: "1", selected: false, showname: "" } ], keyFieldOptions: [ { key: "1", selected: true, showname: "" },{ key: "2", selected: false, showname: "" },{ key: "3", selected: false, showname: "" } ], t: new Date().getTime(), dh: 520 } } renderItem = (item) => { const { store } = this.props; const {setRealPath, realPath, keyfield, setKeyField} = store; //departmentid 部门 subcompanyid1 分部 if(['departmentid', 'subcompanyid1'].indexOf(item.id) > -1){ let options = cloneDeep(this.state.options); options[0].showname = item.id === 'departmentid' ? getLabel('18916',"仅本部门") : getLabel('18919',"仅本分部"); options[1].showname = item.id === 'departmentid' ? getLabel('388381',"部门全路径") : getLabel('388382',"分部全路径"); return (
{item.name}
{item.gName}
{setRealPath(item.id === 'departmentid', v);this.setState({t: new Date().getTime()})}}/>
) }else if(item.id === 'managerid'){ let options = cloneDeep(this.state.keyFieldOptions); options[0].showname = getLabel('714',"编号"); options[1].showname = getLabel('412',"登录名"); options[2].showname = getLabel('25034',"姓名"); return (
{item.name}
{item.gName}
) } return (
{item.name}
{item.gName}
) } render() { const {t} = this.state; const { store } = this.props; const { refreshTransfer, showGroup, getDialogBtn, getTransferData, selectOptions, setSelectedGroup, getSelectedGroup, filterLeft, filterRight, searchField, onTransChange, formTarget, fieldSettingDialogParams, selectedKeys, templates, selectedTemplate, loadTemplateFields } = store; let templateList = []; if(templates && templates.length > 0){ templateList.push( { key: '-1', selected: false, showname: '' } ) templates.map((data, index) => { templateList.push( { key: index.toString(), selected: false, showname: data.name } ) }) } const {buttons, menus} = getDialogBtn('fieldSetting'); const transferProps = { height: this.state.dh - 100, data: getTransferData(), leftHeader: (
{getLabel(83302, '待选')}
{setSelectedGroup(v);this.setState({t: new Date().getTime()})}}/>
searchField(v)} onSearch={v => searchField(v)}/>
), rightHeader: (
{getLabel(83303, '已选')}
{loadTemplateFields(v);this.setState({t: new Date().getTime()})}}/>
searchField(v, false)} onSearch={v => searchField(v, false)} />
), renderItem: this.renderItem, filterLeft: (items) => { const groupInfo = getSelectedGroup(); items = items.filter((item) => { if(groupInfo.key === '0'){ return (filterLeft === '' ? true : (item.name.indexOf(filterLeft) != -1)); }else{ return item.gName === groupInfo.showname && (filterLeft === '' ? true : (item.name.indexOf(filterLeft) != -1)); } }) return items; }, filterRight: (items) => { items = items.filter((item) => { return filterRight === '' ? true : (item.name.indexOf(filterRight) != -1); }) return items; }, onChange: onTransChange, selectedKeys: selectedKeys } const { saveForm, saveFormFields } = formTarget; return ( this.setState({dh: h})} buttons={buttons} moreBtn={{datas: menus}}> ) } }