trunk/pc4mobx/organization/components/NewAndEditDialog.js

170 lines
6.4 KiB
JavaScript
Raw Normal View History

import {
WeaDialog,
WeaFormItem,
WeaNewScroll,
WeaSearchGroup,
WeaMoreButton,
2022-07-11 10:06:45 +08:00
WeaPopoverHrm
} from 'ecCom'
import {
Spin,
Button,
} from 'antd'
import {
WeaSwitch
} from 'comsMobx'
import {
i18n
} from '../public/i18n';
import AttachToNumberField from './NewNumberField';
2022-09-08 17:50:03 +08:00
import "../style/common.less";
export default class NewAndEditDialog extends React.Component {
constructor(props) {
super(props);
this.state = {
width: 700,
}
}
2022-07-11 10:06:45 +08:00
getForm() {
const {
condition,
form,
isFormInit,
} = this.props;
let arr = [];
isFormInit && condition.map(c => {
c.items.map((field, index) => {
arr.push(<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@jacv6v@${index}`}
2022-05-13 16:56:52 +08:00
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
error={form.getError(field)}
tipPosition="bottom"
wrapperCol={{ span: `${field.fieldcol}` }}>
2022-11-17 11:34:05 +08:00
{<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@7vxyfr@${index}`} fieldConfig={field} form={form} formParams={form.getFormParams()} onChange={this.onChange} />}
2022-12-06 17:56:09 +08:00
{field.domkey[0] == 'subcompanycode' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-12-08 18:06:21 +08:00
{field.domkey[0] == 'departmentcode' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-12-06 17:56:09 +08:00
{field.domkey[0] == 'job_no' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
{field.domkey[0] == 'work_code' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-05-13 16:56:52 +08:00
</WeaFormItem>)
})
})
2022-10-26 16:05:39 +08:00
return <div style={{"height":"100%","padding":"30px"}} className="wea-form-item-group">{arr}</div>
}
2022-05-13 16:56:52 +08:00
onChange = data => {
2022-06-23 11:53:57 +08:00
const {
bindChangeEnvent,
2022-06-24 14:38:54 +08:00
moduleName
2022-06-23 11:53:57 +08:00
} = this.props;
2022-07-11 10:06:45 +08:00
if (moduleName == 'jobGrade' && data.schemeId) {
2022-05-13 16:56:52 +08:00
bindChangeEnvent(data.schemeId.value);
}
2022-07-11 10:06:45 +08:00
if (moduleName == 'staffScheme' && data.planYear) {
2022-06-23 11:53:57 +08:00
bindChangeEnvent(data.planYear.value);
}
2022-08-17 15:13:26 +08:00
if (moduleName == 'staff' && data.planId) {
bindChangeEnvent(data);
}
2022-05-13 16:56:52 +08:00
};
onBlur = data => {
//console.log("onBlur 回调", data);
};
getSearchGroupForm() {
const {
condition,
form,
isFormInit,
isEdit
} = this.props;
let arr = [];
isFormInit && condition.map((c, i) => {
let _arr = [];
c.items.map((field, index) => {
_arr.push({
com: (
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@merei2@${index}`}
2022-05-13 16:56:52 +08:00
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
error={form.getError(field)}
tipPosition="bottom"
wrapperCol={{ span: `${field.fieldcol}` }}
underline={isEdit ? false : true}
>
<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@5r6c5a@${index}`} fieldConfig={field} form={form} formParams={form.getFormParams()} onChange={this.onChange}
onBlur={this.onBlur} />
2022-12-06 17:56:09 +08:00
{field.domkey[0] == 'subcompanycode' && field.viewAttr != 1 && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-12-08 18:06:21 +08:00
{field.domkey[0] == 'departmentcode' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
{field.domkey[0] == 'job_no' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-10-25 17:50:10 +08:00
{field.domkey[0] == 'work_code' && field.viewAttr != '1' && <AttachToNumberField field={field} form={form} isEdit={true}/>}
2022-05-13 16:56:52 +08:00
</WeaFormItem>
),
colSpan: 1
})
})
arr.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@qaih5l@${i}`} needTigger={true} title={c.title} showGroup={c.defaultshow} items={_arr} col={1} />)
})
return arr;
}
render() {
const {
title,
visible,
save,
onCancel,
loading,
isEdit,
height,
conditionLen,
2022-06-23 11:53:57 +08:00
saveAndSetting
} = this.props, {
width,
} = this.state;
const buttons = [
(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@jd6baw`} type="primary" onClick={() => save()} disabled={loading}>{i18n.button.save()}</Button>),
2022-06-24 14:38:54 +08:00
(saveAndSetting && <Button ecId={`${this && this.props && this.props.ecId || ''}_Button@jd6baw`} type="primary" onClick={() => saveAndSetting()} disabled={loading}>{i18n.button.saveAndSetting()}</Button>),
(<WeaMoreButton ecId={`${this && this.props && this.props.ecId || ''}_WeaMoreButton@e4f4n1`} />)
];
return (
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@1txk5f`}
className="new-edit-wrapper"
title={title}
icon="icon-coms-hrm"
iconBgcolor="#217346"
visible={visible}
closable={true}
hasScroll={true}
2022-05-13 16:56:52 +08:00
onCancel={() => onCancel()}
buttons={isEdit ? buttons : buttons.slice(1, 2)}
style={{ width: width, height: height }}
initLoadCss
>
{
2022-05-13 16:56:52 +08:00
loading ? <div className='hrm-loading-center-small'>
<Spin ecId={`${this && this.props && this.props.ecId || ''}_Spin@4ygl4a`} spinning={loading}></Spin>
</div>
2022-10-26 16:05:39 +08:00
: conditionLen > 1 ? this.getSearchGroupForm() : this.getForm()}
2022-07-11 10:06:45 +08:00
</WeaDialog>
)
}
}