index.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { Input, InputNumber, Select, DatePicker, Rate } from 'antd';
  2. import TableField from './TableField';
  3. import PhoneField from './PhoneField';
  4. import InnerContactField from './InnerContactField';
  5. import DepartmentField from './DepartmentField';
  6. import DDMultiSelectField from './DDMultiSelectField';
  7. import NumberField from './NumberField';
  8. import DDPhotoField from './DDPhotoField';
  9. import DDSelectField from './DDSelectField';
  10. import DDDateField from './DDDateField';
  11. import DDDateRangeField from './DDDateRangeField';
  12. import DDAttachment from './DDAttachment';
  13. import TextNote from './TextNote';
  14. export default function DDComponents(props) {
  15. const { item, onChange } = props;
  16. const { placeholder, options, format, unit, disabled, notUpper } = item.props;
  17. let component = null;
  18. switch (item.componentName) {
  19. case 'TextField': //单行输入
  20. component = (
  21. <Input
  22. disabled={disabled}
  23. placeholder={placeholder}
  24. onChange={(e) => onChange?.(e.target.value)}
  25. />
  26. );
  27. break;
  28. case 'TextareaField': //多行输入
  29. component = (
  30. <Input.TextArea
  31. disabled={disabled}
  32. placeholder={placeholder}
  33. onChange={(e) => onChange?.(e.target.value)}
  34. />
  35. );
  36. break;
  37. case 'NumberField': //数字输入
  38. component = (
  39. <NumberField disabled={disabled} unit={unit} onChange={onChange} />
  40. );
  41. break;
  42. case 'DDSelectField': //单选框
  43. component = (
  44. <DDSelectField
  45. options={options}
  46. onChange={onChange}
  47. disabled={disabled}
  48. />
  49. );
  50. break;
  51. case 'DDMultiSelectField': //多选框
  52. component = (
  53. <DDMultiSelectField
  54. disabled={disabled}
  55. options={options}
  56. onChange={onChange}
  57. />
  58. );
  59. break;
  60. case 'DDDateField': //日期控件
  61. component = (
  62. <DDDateField
  63. placeholder={placeholder}
  64. format={format}
  65. disabled={disabled}
  66. onChange={onChange}
  67. />
  68. );
  69. break;
  70. case 'DDDateRangeField': //时间区间控件
  71. component = (
  72. <DDDateRangeField
  73. format={format}
  74. disabled={disabled}
  75. onChange={onChange}
  76. />
  77. );
  78. break;
  79. case 'TextNote': //文本说明控件
  80. component = <TextNote value={placeholder} />;
  81. break;
  82. case 'PhoneField': //电话控件
  83. component = <PhoneField onChange={onChange} />;
  84. break;
  85. case 'DDPhotoField': //图片控件
  86. component = <DDPhotoField />;
  87. break;
  88. case 'MoneyField': //金额控件
  89. component = <Input placeholder={placeholder} onChange={onChange} />;
  90. break;
  91. case 'TableField': //明细控件
  92. component = <TableField item={item} />;
  93. break;
  94. case 'DDAttachment': //附件
  95. component = <DDAttachment onChange={onChange} />;
  96. // component = '附件控件未渲染!'
  97. console.info('附件控件未渲染!');
  98. break;
  99. case 'InnerContactField': //联系人控件
  100. component = <InnerContactField onChange={onChange}></InnerContactField>;
  101. break;
  102. case 'DepartmentField': //部门控件
  103. component = <DepartmentField onChange={onChange} />;
  104. break;
  105. case 'RelateField': //关联审批单
  106. component = '关联审批单控件未渲染!';
  107. break;
  108. case 'AddressField': //省市区控件
  109. component = '省市区控件未渲染!';
  110. break;
  111. case 'StarRatingField': //评分控件
  112. component = '评分控件未渲染!';
  113. break;
  114. case 'FormRelateField': //关联控件
  115. component = '关联控件未渲染!';
  116. break;
  117. }
  118. return (
  119. <>
  120. {component}
  121. {notUpper == 1 && <p>大写</p>}
  122. </>
  123. );
  124. }