index.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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 ProjectField from './ProjectField';
  7. import ManufacturerField from './ManufacturerField';
  8. import DDMultiSelectField from './DDMultiSelectField';
  9. import NumberField from './NumberField';
  10. import DDPhotoField from './DDPhotoField';
  11. import DDSelectField from './DDSelectField';
  12. import DDDateField from './DDDateField';
  13. import DDDateRangeField from './DDDateRangeField';
  14. import DDAttachment from './DDAttachment';
  15. import TextNote from './TextNote';
  16. import CodeField from './CodeFiled';
  17. import DIYTable from './DIYTable';
  18. import FormulaField from './FormulaField';
  19. export default function DDComponents(props) {
  20. const { depId = '', evalStr = '', item, onChange } = props;
  21. const { placeholder, options, format, unit, disabled, notUpper } = item.props;
  22. let component = null;
  23. switch (item.componentName) {
  24. case 'TextField': //单行输入
  25. component = (
  26. <Input
  27. disabled={disabled}
  28. placeholder={placeholder}
  29. onChange={(e) => onChange?.(e.target.value)}
  30. />
  31. );
  32. break;
  33. case 'TextareaField': //多行输入
  34. component = (
  35. <Input.TextArea
  36. disabled={disabled}
  37. placeholder={placeholder}
  38. onChange={(e) => onChange?.(e.target.value)}
  39. />
  40. );
  41. break;
  42. case 'NumberField': //数字输入
  43. component = (
  44. <NumberField disabled={disabled} unit={unit} onChange={onChange} />
  45. );
  46. break;
  47. case 'DDSelectField': //单选框
  48. component = (
  49. <DDSelectField
  50. options={options}
  51. onChange={onChange}
  52. disabled={disabled}
  53. />
  54. );
  55. break;
  56. case 'DDMultiSelectField': //多选框
  57. component = (
  58. <DDMultiSelectField
  59. disabled={disabled}
  60. options={options}
  61. onChange={onChange}
  62. />
  63. );
  64. break;
  65. case 'DDDateField': //日期控件
  66. component = (
  67. <DDDateField
  68. placeholder={placeholder}
  69. format={format}
  70. disabled={disabled}
  71. onChange={onChange}
  72. />
  73. );
  74. break;
  75. case 'DDDateRangeField': //时间区间控件
  76. component = (
  77. <DDDateRangeField
  78. format={format}
  79. disabled={disabled}
  80. onChange={onChange}
  81. />
  82. );
  83. break;
  84. case 'TextNote': //文本说明控件
  85. component = <TextNote value={placeholder} />;
  86. break;
  87. case 'PhoneField': //电话控件
  88. component = <PhoneField onChange={onChange} />;
  89. break;
  90. case 'DDPhotoField': //图片控件
  91. component = <DDPhotoField />;
  92. break;
  93. case 'MoneyField': //金额控件
  94. component = <Input placeholder={placeholder} onChange={onChange} />;
  95. break;
  96. case 'TableField': //明细控件
  97. component = <TableField item={item} />;
  98. break;
  99. case 'DDAttachment': //附件
  100. component = <DDAttachment onChange={onChange} />;
  101. // component = '附件控件未渲染!'
  102. console.info('附件控件未渲染!');
  103. break;
  104. case 'InnerContactField': //联系人控件
  105. component = <InnerContactField onChange={onChange}></InnerContactField>;
  106. break;
  107. case 'DepartmentField': //部门控件
  108. component = <DepartmentField onChange={onChange} />;
  109. break;
  110. case 'ProjectField':
  111. component = <ProjectField onChange={onChange} />;
  112. break;
  113. case 'ManufacturerField':
  114. component = <ManufacturerField onChange={onChange} />;
  115. break;
  116. case 'DIYTable':
  117. component = (
  118. <DIYTable table={item} columns={item.columns} onChange={onChange} />
  119. );
  120. break;
  121. case 'CodeField': //合同编号控件
  122. component = <CodeField depId={depId} onChange={onChange} />;
  123. break;
  124. case 'FormulaField': //计算控件
  125. component = <FormulaField evalStr={evalStr} onChange={onChange} />;
  126. break;
  127. case 'RelateField': //关联审批单
  128. component = '关联审批单控件未渲染!';
  129. break;
  130. case 'AddressField': //省市区控件
  131. component = '省市区控件未渲染!';
  132. break;
  133. case 'StarRatingField': //评分控件
  134. component = '评分控件未渲染!';
  135. break;
  136. case 'FormRelateField': //关联控件
  137. component = '关联控件未渲染!';
  138. break;
  139. case 'CodeField': //合同编号控件
  140. component = <CodeField depId={depId} />;
  141. break;
  142. }
  143. return (
  144. <>
  145. {component}
  146. {notUpper == 1 && <p>大写</p>}
  147. </>
  148. );
  149. }