123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- import React from 'react';
- import { Input, InputNumber, Select, DatePicker, Rate } from 'antd';
- import TableField from './TableField';
- import PhoneField from './PhoneField';
- import InnerContactField from './InnerContactField';
- import DepartmentField from './DepartmentField';
- import CodeField from './CodeFiled';
- import DDMultiSelectField from './DDMultiSelectField';
- import NumberField from './NumberField';
- import DDPhotoField from './DDPhotoField';
- import DDSelectField from './DDSelectField';
- import DDDateField from './DDDateField';
- import DDDateRangeField from './DDDateRangeField';
- // import DDAttachment from './DDAttachment';
- import FormulaField from './FormulaField';
- import DIYTable from './DIYTable/index.tsx';
- import TextNode from './TextNote';
- import DDProjectField from './ProjectField';
- import ManufacturerField from './ManufacturerField';
- const { Option } = Select;
- const { RangePicker } = DatePicker;
- export default function DDComponents(props) {
- const { depId = '', evalStr = '', item, onChange } = props;
- const {
- id,
- label,
- bizAlias,
- required,
- placeholder,
- options,
- align,
- statField,
- hideLabel,
- objOptions,
- format,
- pushToAttendance,
- labelEditableFreeze,
- requiredEditableFreeze,
- unit,
- extract,
- link,
- payEnable,
- bizType,
- childFieldVisible,
- notPrint,
- verticalPrint,
- hiddenInApprovalDetail,
- defaultValue,
- disabled,
- notUpper,
- children, // 子控件
- } = item.props;
- let component = null;
- switch (item.componentName) {
- case 'TextField': // 单行输入
- component = (
- <Input
- defaultValue={defaultValue}
- disabled={disabled}
- placeholder={placeholder}
- onChange={e => onChange?.(e.target.value)}
- />
- );
- break;
- case 'TextareaField': // 多行输入
- component = (
- <Input.TextArea
- defaultValue={defaultValue}
- disabled={disabled}
- placeholder={placeholder}
- onChange={e => onChange?.(e.target.value)}
- />
- );
- break;
- case 'NumberField': // 数字输入
- component = (
- <NumberField
- defaultValue={defaultValue}
- disabled={disabled}
- unit={unit}
- onChange={onChange}
- />
- );
- break;
- case 'DDSelectField': // 单选框
- component = (
- <DDSelectField
- defaultValue={defaultValue}
- options={options}
- onChange={onChange}
- disabled={disabled}
- />
- );
- break;
- case 'DDMultiSelectField': // 多选框
- component = <DDMultiSelectField disabled={disabled} options={options} onChange={onChange} />;
- break;
- case 'DDDateField': // 日期控件
- component = (
- <DDDateField
- defaultValue={defaultValue}
- format={format}
- disabled={disabled}
- onChange={onChange}
- />
- );
- break;
- case 'DDDateRangeField': // 时间区间控件
- component = <DDDateRangeField format={format} disabled={disabled} onChange={onChange} />;
- break;
- case 'TextNote': // 文本说明控件
- component = <TextNode value={placeholder} />;
- break;
- case 'PhoneField': // 电话控件
- component = <PhoneField onChange={onChange} />;
- break;
- case 'DDPhotoField': // 图片控件
- component = <DDPhotoField />;
- break;
- case 'MoneyField': // 金额控件
- component = (
- <Input defaultValue={defaultValue} placeholder={placeholder} onChange={onChange} />
- );
- break;
- case 'TableField': // 明细控件
- component = <TableField item={item} />;
- break;
- case 'DDAttachment': // 附件
- // component = <DDAttachment />
- // component = '附件控件未渲染!'
- console.info('附件控件未渲染!');
- break;
- case 'InnerContactField': // 联系人控件
- component = <InnerContactField onChange={onChange} />;
- break;
- case 'DepartmentField': // 部门控件
- component = <DepartmentField defaultValue={defaultValue} onChange={onChange} />;
- break;
- case 'CodeField': // 合同编号控件
- component = <CodeField depId={depId} onChange={onChange} />;
- break;
- case 'ProjectField': // 项目控件
- component = <DDProjectField value={defaultValue} disabled={disabled} onChange={onChange} />;
- break;
- case 'DIYTable': // 可自定义表格控件
- component = <DIYTable table={item} columns={item.columns} onChange={onChange} />;
- break;
- case 'FormulaField':
- component = <FormulaField evalStr={evalStr} onChange={onChange} />;
- break;
- case 'ManufacturerField':
- component = <ManufacturerField defaultValue={defaultValue} onChange={onChange} />;
- break;
- case 'RelateField': // 关联审批单
- component = '关联审批单控件未渲染!';
- break;
- case 'AddressField': // 省市区控件
- component = '省市区控件未渲染!';
- break;
- case 'StarRatingField': // 评分控件
- component = '评分控件未渲染!';
- break;
- case 'FormRelateField': // 关联控件
- component = '关联控件未渲染!';
- break;
- default:
- break;
- }
- return component;
- }
|