@hw-component/form 0.0.2 → 0.0.3-beta-v2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/es/CheckboxGroup/CheckBox/index.d.ts +2 -5
  2. package/es/CheckboxGroup/CheckBox/index.js +9 -5
  3. package/es/CheckboxGroup/hooks.d.ts +1 -1
  4. package/es/CheckboxGroup/hooks.js +18 -19
  5. package/es/CheckboxGroup/index.d.ts +2 -3
  6. package/es/CheckboxGroup/index.js +57 -15
  7. package/es/CheckboxGroup/modal.d.ts +13 -0
  8. package/es/DialogForm/DrawerForm/Footer.d.ts +8 -0
  9. package/es/DialogForm/DrawerForm/Footer.js +23 -0
  10. package/es/DialogForm/DrawerForm/Title.d.ts +4 -0
  11. package/es/DialogForm/DrawerForm/Title.js +18 -0
  12. package/es/DialogForm/DrawerForm/index.d.ts +4 -0
  13. package/es/DialogForm/DrawerForm/index.js +124 -0
  14. package/es/DialogForm/ModalForm.d.ts +4 -0
  15. package/es/DialogForm/ModalForm.js +103 -0
  16. package/es/DialogForm/hooks.d.ts +15 -0
  17. package/es/DialogForm/hooks.js +137 -0
  18. package/es/DialogForm/modal.d.ts +31 -0
  19. package/es/Form/Context/FormConfigProvider.d.ts +5 -0
  20. package/es/Form/Context/FormConfigProvider.js +47 -0
  21. package/es/Form/Context/index.d.ts +5 -0
  22. package/es/Form/Context/index.js +11 -0
  23. package/es/Form/FormItem/BasicItem.d.ts +4 -0
  24. package/es/Form/FormItem/BasicItem.js +73 -0
  25. package/es/Form/FormItem/Helper.d.ts +7 -0
  26. package/es/Form/FormItem/Helper.js +24 -0
  27. package/es/Form/FormItem/RegularFormItem.d.ts +4 -0
  28. package/es/Form/FormItem/RegularFormItem.js +15 -0
  29. package/es/Form/FormItem/UpFormItem.d.ts +4 -0
  30. package/es/Form/FormItem/UpFormItem.js +32 -0
  31. package/es/Form/FormItem/hooks.d.ts +10 -0
  32. package/es/Form/FormItem/hooks.js +38 -0
  33. package/es/Form/FormItem/index.d.ts +4 -0
  34. package/es/Form/FormItem/index.js +11 -0
  35. package/es/Form/HFormConnect.d.ts +5 -0
  36. package/es/Form/HFormConnect.js +55 -0
  37. package/es/Form/InitSet.d.ts +3 -0
  38. package/es/Form/InitSet.js +15 -0
  39. package/es/Form/Label.d.ts +10 -0
  40. package/es/Form/Label.js +46 -0
  41. package/es/Form/config.d.ts +29 -0
  42. package/es/Form/config.js +45 -0
  43. package/es/Form/hooks/index.d.ts +8 -0
  44. package/es/Form/hooks/index.js +102 -0
  45. package/es/Form/hooks/useHForm.d.ts +3 -0
  46. package/es/Form/hooks/useHForm.js +176 -0
  47. package/es/Form/hooks/useInitConfigData.d.ts +4 -0
  48. package/es/Form/hooks/useInitConfigData.js +124 -0
  49. package/es/Form/index.d.ts +4 -0
  50. package/es/Form/index.js +79 -0
  51. package/es/Form/modal.d.ts +107 -0
  52. package/es/Input/ButtonInput.d.ts +2 -2
  53. package/es/Input/ButtonInput.js +9 -6
  54. package/es/Input/InputNumber.js +6 -6
  55. package/es/Input/SelectInput.d.ts +2 -1
  56. package/es/Input/SelectInput.js +40 -10
  57. package/es/Input/defaultConfig.js +2 -2
  58. package/es/Input/index.js +4 -4
  59. package/es/Input/modal.d.ts +27 -0
  60. package/es/PageHandler/ErrorComponent.d.ts +4 -0
  61. package/es/PageHandler/ErrorComponent.js +33 -0
  62. package/es/PageHandler/LoadingComponent.d.ts +3 -0
  63. package/es/PageHandler/LoadingComponent.js +18 -0
  64. package/es/PageHandler/index.d.ts +4 -0
  65. package/es/PageHandler/index.js +24 -0
  66. package/es/PageHandler/modal.d.ts +6 -0
  67. package/es/RadioGroup/index.d.ts +2 -2
  68. package/es/RadioGroup/index.js +11 -7
  69. package/es/Select/components/AllSelect.d.ts +3 -3
  70. package/es/Select/components/AllSelect.js +26 -13
  71. package/es/Select/components/CheckBoxOption.js +2 -2
  72. package/es/Select/components/DropdownComponent.js +2 -2
  73. package/es/Select/components/NoFindItem.js +2 -2
  74. package/es/Select/components/NotFoundContent.js +3 -5
  75. package/es/Select/defaultConfig.js +2 -2
  76. package/es/Select/hooks/changeHooks.js +3 -4
  77. package/es/Select/hooks/norHooks.d.ts +3 -2
  78. package/es/Select/hooks/norHooks.js +9 -4
  79. package/es/Select/index.d.ts +1 -1
  80. package/es/Select/index.js +21 -14
  81. package/es/Select/modal.d.ts +1 -0
  82. package/es/Select/utils.js +2 -2
  83. package/es/Submit/index.d.ts +8 -0
  84. package/es/Submit/index.js +28 -0
  85. package/es/Switch/index.d.ts +4 -3
  86. package/es/Switch/index.js +14 -10
  87. package/es/TDPicker/RangePicker.d.ts +8 -0
  88. package/es/TDPicker/RangePicker.js +121 -0
  89. package/es/TDPicker/TimePicker.d.ts +4 -0
  90. package/es/TDPicker/TimePicker.js +31 -0
  91. package/es/TDPicker/hooks.d.ts +33 -0
  92. package/es/TDPicker/hooks.js +132 -0
  93. package/{lib/DatePicker → es/TDPicker}/index.d.ts +2 -2
  94. package/es/{DatePicker → TDPicker}/index.js +14 -20
  95. package/es/TDPicker/modal.d.ts +28 -0
  96. package/es/TextArea/index.d.ts +4 -0
  97. package/es/TextArea/index.js +21 -0
  98. package/es/Upload/Btn.d.ts +4 -0
  99. package/es/Upload/Btn.js +31 -0
  100. package/es/Upload/MediaTypeEle/TypeEle.d.ts +10 -0
  101. package/es/Upload/MediaTypeEle/TypeEle.js +40 -0
  102. package/es/Upload/MediaTypeEle/index.d.ts +4 -0
  103. package/es/Upload/MediaTypeEle/index.js +36 -0
  104. package/es/Upload/Preview/index.d.ts +6 -0
  105. package/es/Upload/Preview/index.js +21 -0
  106. package/es/Upload/UrlUpload/index.d.ts +4 -0
  107. package/es/Upload/UrlUpload/index.js +119 -0
  108. package/es/Upload/enums.d.ts +5 -0
  109. package/es/Upload/enums.js +10 -0
  110. package/es/Upload/hooks/change.d.ts +3 -0
  111. package/es/Upload/hooks/change.js +109 -0
  112. package/es/Upload/hooks/customRequest.d.ts +3 -0
  113. package/es/Upload/hooks/customRequest.js +132 -0
  114. package/es/Upload/hooks/propsMaker.d.ts +2 -0
  115. package/es/Upload/hooks/propsMaker.js +37 -0
  116. package/es/Upload/index.d.ts +3 -0
  117. package/es/Upload/index.js +141 -0
  118. package/es/Upload/modal.d.ts +30 -0
  119. package/es/Upload/util.d.ts +5 -0
  120. package/es/Upload/util.js +34 -0
  121. package/es/config.d.ts +2 -14
  122. package/es/config.js +55 -9
  123. package/{lib/hooks/useChangeOptions.d.ts → es/hooks/index.d.ts} +3 -0
  124. package/es/hooks/index.js +75 -0
  125. package/es/index.css +33 -1
  126. package/es/index.d.ts +24 -11
  127. package/es/index.js +31 -13
  128. package/es/modal.d.ts +15 -0
  129. package/lib/CheckboxGroup/CheckBox/index.d.ts +2 -5
  130. package/lib/CheckboxGroup/CheckBox/index.js +7 -3
  131. package/lib/CheckboxGroup/hooks.d.ts +1 -1
  132. package/lib/CheckboxGroup/hooks.js +16 -17
  133. package/lib/CheckboxGroup/index.d.ts +2 -3
  134. package/lib/CheckboxGroup/index.js +54 -12
  135. package/lib/CheckboxGroup/modal.d.ts +13 -0
  136. package/lib/DialogForm/DrawerForm/Footer.d.ts +8 -0
  137. package/lib/DialogForm/DrawerForm/Footer.js +26 -0
  138. package/lib/DialogForm/DrawerForm/Title.d.ts +4 -0
  139. package/lib/DialogForm/DrawerForm/Title.js +21 -0
  140. package/lib/DialogForm/DrawerForm/index.d.ts +4 -0
  141. package/lib/DialogForm/DrawerForm/index.js +127 -0
  142. package/lib/DialogForm/ModalForm.d.ts +4 -0
  143. package/lib/DialogForm/ModalForm.js +106 -0
  144. package/lib/DialogForm/hooks.d.ts +15 -0
  145. package/lib/DialogForm/hooks.js +141 -0
  146. package/lib/DialogForm/modal.d.ts +31 -0
  147. package/lib/Form/Context/FormConfigProvider.d.ts +5 -0
  148. package/lib/Form/Context/FormConfigProvider.js +51 -0
  149. package/lib/Form/Context/index.d.ts +5 -0
  150. package/lib/Form/Context/index.js +14 -0
  151. package/lib/Form/FormItem/BasicItem.d.ts +4 -0
  152. package/lib/Form/FormItem/BasicItem.js +76 -0
  153. package/lib/Form/FormItem/Helper.d.ts +7 -0
  154. package/lib/Form/FormItem/Helper.js +27 -0
  155. package/lib/Form/FormItem/RegularFormItem.d.ts +4 -0
  156. package/lib/Form/FormItem/RegularFormItem.js +18 -0
  157. package/lib/Form/FormItem/UpFormItem.d.ts +4 -0
  158. package/lib/Form/FormItem/UpFormItem.js +35 -0
  159. package/lib/Form/FormItem/hooks.d.ts +10 -0
  160. package/lib/Form/FormItem/hooks.js +41 -0
  161. package/lib/Form/FormItem/index.d.ts +4 -0
  162. package/lib/Form/FormItem/index.js +14 -0
  163. package/lib/Form/HFormConnect.d.ts +5 -0
  164. package/lib/Form/HFormConnect.js +58 -0
  165. package/lib/Form/InitSet.d.ts +3 -0
  166. package/lib/Form/InitSet.js +18 -0
  167. package/lib/Form/Label.d.ts +10 -0
  168. package/lib/Form/Label.js +49 -0
  169. package/lib/Form/config.d.ts +29 -0
  170. package/lib/Form/config.js +49 -0
  171. package/lib/Form/hooks/index.d.ts +8 -0
  172. package/lib/Form/hooks/index.js +104 -0
  173. package/lib/Form/hooks/useHForm.d.ts +3 -0
  174. package/lib/Form/hooks/useHForm.js +179 -0
  175. package/lib/Form/hooks/useInitConfigData.d.ts +4 -0
  176. package/lib/Form/hooks/useInitConfigData.js +127 -0
  177. package/lib/Form/index.d.ts +4 -0
  178. package/lib/Form/index.js +82 -0
  179. package/lib/Form/modal.d.ts +107 -0
  180. package/lib/Input/ButtonInput.d.ts +2 -2
  181. package/lib/Input/ButtonInput.js +7 -4
  182. package/lib/Input/InputNumber.js +2 -2
  183. package/lib/Input/SelectInput.d.ts +2 -1
  184. package/lib/Input/SelectInput.js +39 -8
  185. package/lib/Input/index.js +2 -2
  186. package/lib/Input/modal.d.ts +27 -0
  187. package/lib/PageHandler/ErrorComponent.d.ts +4 -0
  188. package/lib/PageHandler/ErrorComponent.js +36 -0
  189. package/lib/PageHandler/LoadingComponent.d.ts +3 -0
  190. package/lib/PageHandler/LoadingComponent.js +21 -0
  191. package/lib/PageHandler/index.d.ts +4 -0
  192. package/lib/PageHandler/index.js +27 -0
  193. package/lib/PageHandler/modal.d.ts +6 -0
  194. package/lib/RadioGroup/index.d.ts +2 -2
  195. package/lib/RadioGroup/index.js +9 -5
  196. package/lib/Select/components/AllSelect.d.ts +3 -3
  197. package/lib/Select/components/AllSelect.js +24 -11
  198. package/lib/Select/components/NotFoundContent.js +1 -3
  199. package/lib/Select/hooks/changeHooks.js +1 -2
  200. package/lib/Select/hooks/norHooks.d.ts +3 -2
  201. package/lib/Select/hooks/norHooks.js +7 -2
  202. package/lib/Select/index.d.ts +1 -1
  203. package/lib/Select/index.js +18 -11
  204. package/lib/Select/modal.d.ts +1 -0
  205. package/lib/Submit/index.d.ts +8 -0
  206. package/lib/Submit/index.js +31 -0
  207. package/lib/Switch/index.d.ts +4 -3
  208. package/lib/Switch/index.js +12 -8
  209. package/lib/TDPicker/RangePicker.d.ts +8 -0
  210. package/lib/TDPicker/RangePicker.js +124 -0
  211. package/lib/TDPicker/TimePicker.d.ts +4 -0
  212. package/lib/TDPicker/TimePicker.js +34 -0
  213. package/lib/TDPicker/hooks.d.ts +33 -0
  214. package/lib/TDPicker/hooks.js +139 -0
  215. package/{es/DatePicker → lib/TDPicker}/index.d.ts +2 -2
  216. package/lib/{DatePicker → TDPicker}/index.js +11 -17
  217. package/lib/TDPicker/modal.d.ts +28 -0
  218. package/lib/TextArea/index.d.ts +4 -0
  219. package/lib/TextArea/index.js +24 -0
  220. package/lib/Upload/Btn.d.ts +4 -0
  221. package/lib/Upload/Btn.js +34 -0
  222. package/lib/Upload/MediaTypeEle/TypeEle.d.ts +10 -0
  223. package/lib/Upload/MediaTypeEle/TypeEle.js +43 -0
  224. package/lib/Upload/MediaTypeEle/index.d.ts +4 -0
  225. package/lib/Upload/MediaTypeEle/index.js +39 -0
  226. package/lib/Upload/Preview/index.d.ts +6 -0
  227. package/lib/Upload/Preview/index.js +24 -0
  228. package/lib/Upload/UrlUpload/index.d.ts +4 -0
  229. package/lib/Upload/UrlUpload/index.js +122 -0
  230. package/lib/Upload/enums.d.ts +5 -0
  231. package/lib/Upload/enums.js +9 -0
  232. package/lib/Upload/hooks/change.d.ts +3 -0
  233. package/lib/Upload/hooks/change.js +110 -0
  234. package/lib/Upload/hooks/customRequest.d.ts +3 -0
  235. package/lib/Upload/hooks/customRequest.js +133 -0
  236. package/lib/Upload/hooks/propsMaker.d.ts +2 -0
  237. package/lib/Upload/hooks/propsMaker.js +38 -0
  238. package/lib/Upload/index.d.ts +3 -0
  239. package/lib/Upload/index.js +144 -0
  240. package/lib/Upload/modal.d.ts +30 -0
  241. package/lib/Upload/util.d.ts +5 -0
  242. package/lib/Upload/util.js +38 -0
  243. package/lib/config.d.ts +2 -14
  244. package/lib/config.js +53 -7
  245. package/{es/hooks/useChangeOptions.d.ts → lib/hooks/index.d.ts} +3 -0
  246. package/lib/hooks/index.js +78 -0
  247. package/lib/index.css +33 -1
  248. package/lib/index.d.ts +24 -11
  249. package/lib/index.js +48 -23
  250. package/lib/modal.d.ts +15 -0
  251. package/package.json +4 -3
  252. package/scripts/rollup.config.js +3 -8
  253. package/scripts/webpack.config.js +6 -2
  254. package/src/Layout.tsx +4 -4
  255. package/src/components/CheckboxGroup/CheckBox/index.tsx +7 -7
  256. package/src/components/CheckboxGroup/hooks.ts +12 -13
  257. package/src/components/CheckboxGroup/index.tsx +40 -7
  258. package/src/components/CheckboxGroup/{modal.d.ts → modal.ts} +4 -1
  259. package/src/components/DialogForm/DrawerForm/Footer.tsx +24 -0
  260. package/src/components/DialogForm/DrawerForm/Title.tsx +12 -0
  261. package/src/components/DialogForm/DrawerForm/index.tsx +93 -0
  262. package/src/components/DialogForm/ModalForm.tsx +68 -0
  263. package/src/components/DialogForm/hooks.ts +100 -0
  264. package/src/components/DialogForm/modal.ts +34 -0
  265. package/src/components/Form/Context/FormConfigProvider.tsx +38 -0
  266. package/src/components/Form/Context/index.tsx +14 -0
  267. package/src/components/Form/FormItem/BasicItem.tsx +70 -0
  268. package/src/components/Form/FormItem/Helper.tsx +25 -0
  269. package/src/components/Form/FormItem/RegularFormItem.tsx +7 -0
  270. package/src/components/Form/FormItem/UpFormItem.tsx +20 -0
  271. package/src/components/Form/FormItem/hooks.tsx +44 -0
  272. package/src/components/Form/FormItem/index.tsx +8 -0
  273. package/src/components/Form/HFormConnect.tsx +67 -0
  274. package/src/components/Form/InitSet.tsx +10 -0
  275. package/src/components/Form/Label.tsx +50 -0
  276. package/src/components/Form/config.ts +41 -0
  277. package/src/components/Form/hooks/index.ts +61 -0
  278. package/src/components/Form/hooks/useHForm.ts +150 -0
  279. package/src/components/Form/hooks/useInitConfigData.tsx +100 -0
  280. package/src/components/Form/index.less +22 -0
  281. package/src/components/Form/index.tsx +75 -0
  282. package/src/components/Form/modal.ts +157 -0
  283. package/src/components/Input/ButtonInput.tsx +11 -5
  284. package/src/components/Input/SelectInput.tsx +34 -3
  285. package/src/components/Input/modal.ts +33 -0
  286. package/src/components/PageHandler/ErrorComponent.tsx +20 -0
  287. package/src/components/PageHandler/LoadingComponent.tsx +9 -0
  288. package/src/components/PageHandler/index.tsx +14 -0
  289. package/src/components/PageHandler/modal.ts +6 -0
  290. package/src/components/RadioGroup/index.tsx +8 -4
  291. package/src/components/Select/components/AllSelect.tsx +28 -15
  292. package/src/components/Select/components/DropdownComponent.tsx +1 -0
  293. package/src/components/Select/components/NotFoundContent.tsx +1 -1
  294. package/src/components/Select/hooks/changeHooks.tsx +1 -2
  295. package/src/components/Select/hooks/norHooks.ts +6 -1
  296. package/src/components/Select/index.less +20 -3
  297. package/src/components/Select/index.tsx +17 -9
  298. package/src/components/Select/modal.ts +8 -7
  299. package/src/components/Submit/index.tsx +28 -0
  300. package/src/components/Switch/index.tsx +14 -9
  301. package/src/components/TDPicker/RangePicker.tsx +105 -0
  302. package/src/components/TDPicker/TimePicker.tsx +15 -0
  303. package/src/components/TDPicker/hooks.ts +150 -0
  304. package/src/components/TDPicker/index.tsx +22 -0
  305. package/src/components/TDPicker/modal.ts +30 -0
  306. package/src/components/TextArea/index.tsx +8 -0
  307. package/src/components/Upload/Btn.tsx +24 -0
  308. package/src/components/Upload/MediaTypeEle/TypeEle.tsx +26 -0
  309. package/src/components/Upload/MediaTypeEle/index.tsx +34 -0
  310. package/src/components/Upload/Preview/index.tsx +14 -0
  311. package/src/components/Upload/UrlUpload/index.tsx +91 -0
  312. package/src/components/Upload/enums.ts +5 -0
  313. package/src/components/Upload/hooks/change.ts +79 -0
  314. package/src/components/Upload/hooks/customRequest.ts +87 -0
  315. package/src/components/Upload/hooks/propsMaker.ts +20 -0
  316. package/src/components/Upload/index.tsx +119 -0
  317. package/src/components/Upload/modal.ts +33 -0
  318. package/src/components/Upload/util.ts +27 -0
  319. package/src/components/config.ts +34 -8
  320. package/src/components/hooks/index.ts +53 -0
  321. package/src/components/index.tsx +27 -12
  322. package/src/components/modal.ts +15 -0
  323. package/src/components/styles/index.less +2 -0
  324. package/src/components/styles/local.less +1 -0
  325. package/src/components/typings.d.ts +0 -5
  326. package/src/pages/Checkbox/index.tsx +4 -5
  327. package/src/pages/DatePicker/index.tsx +20 -2
  328. package/src/pages/DrawerForm/index.tsx +127 -0
  329. package/src/pages/Form/index.tsx +148 -0
  330. package/src/pages/ModalForm/index.tsx +139 -0
  331. package/src/pages/Select/index.tsx +6 -2
  332. package/src/pages/Switch/index.tsx +1 -1
  333. package/src/pages/Upload/index.tsx +14 -0
  334. package/src/routes.tsx +24 -0
  335. package/es/DatePicker/RangePicker.d.ts +0 -4
  336. package/es/DatePicker/RangePicker.js +0 -23
  337. package/es/Select/index.less.js +0 -5
  338. package/es/TimePicker/index.d.ts +0 -2
  339. package/es/hooks/useChangeOptions.js +0 -25
  340. package/lib/DatePicker/RangePicker.d.ts +0 -4
  341. package/lib/DatePicker/RangePicker.js +0 -26
  342. package/lib/Select/index.less.js +0 -8
  343. package/lib/TimePicker/index.d.ts +0 -2
  344. package/lib/hooks/useChangeOptions.js +0 -26
  345. package/src/components/DatePicker/RangePicker.tsx +0 -7
  346. package/src/components/DatePicker/index.tsx +0 -38
  347. package/src/components/DatePicker/modal.d.ts +0 -16
  348. package/src/components/Input/modal.d.ts +0 -26
  349. package/src/components/TimePicker/index.tsx +0 -1
  350. package/src/components/hooks/useChangeOptions.ts +0 -22
@@ -0,0 +1,157 @@
1
+ import type { FormInstance, FormItemProps, FormProps } from "antd";
2
+ import type { HCheckboxProps } from "@/components/CheckboxGroup/modal";
3
+ import type React from "react";
4
+ import type {
5
+ HButtonProps,
6
+ HInputProps,
7
+ HSelectInputProps,
8
+ } from "@/components/Input/modal";
9
+ import type { HRadioGroupProps } from "@/components/RadioGroup";
10
+ import type { HSelectProps } from "@/components/Select/modal";
11
+ import type { ButtonProps } from "antd/es";
12
+ import type { HSwitchProps } from "@/components/Switch";
13
+ import type {
14
+ HDatePickerProps,
15
+ HRangePickerProps,
16
+ HTimePickerProps,
17
+ } from "@/components/TDPicker/modal";
18
+ import type { TextAreaProps } from "antd/es/input";
19
+ import type { IUpLoadProps } from "@/components/Upload/modal";
20
+ import type { SelectProps } from "antd";
21
+ import type { RangePickerProps } from "antd/es/date-picker";
22
+ import type {
23
+ PromiseFnResult,
24
+ ValueCheckMapModal,
25
+ ValueSwitchMapModal,
26
+ DateRangePickerValueMapModal,
27
+ } from "../modal";
28
+ import type { ForwardedRef } from "react";
29
+ type RenderFun = (
30
+ props: HItemProps,
31
+ node: React.ReactNode,
32
+ form: FormInstance
33
+ ) => void;
34
+ type ItemPropsType =
35
+ | HCheckboxProps
36
+ | HInputProps
37
+ | HSelectInputProps
38
+ | HButtonProps
39
+ | HRadioGroupProps
40
+ | HSelectProps
41
+ | ButtonProps
42
+ | HSwitchProps
43
+ | HDatePickerProps
44
+ | HRangePickerProps
45
+ | HTimePickerProps
46
+ | TextAreaProps
47
+ | IUpLoadProps;
48
+
49
+ export interface HoverModal {
50
+ text?: string;
51
+ icon?: React.ReactNode;
52
+ }
53
+ type HelperModal = (form: HFormInstance) => React.ReactNode | string;
54
+
55
+ export type HideModal = (form: HFormInstance) => boolean;
56
+
57
+ export type AddDispatchListenerFn = (action: ActionModal, fn: argsFn) => void;
58
+
59
+ export interface HItemProps extends Omit<FormItemProps, "name"> {
60
+ type?: string;
61
+ itemProps?: ItemPropsType;
62
+ render?: RenderFun;
63
+ helper?: HelperModal | string;
64
+ hover?: string | HoverModal;
65
+ // formItems?: HItemProps[]; 保留感觉没必要
66
+ labelWidth?: number;
67
+ hide?: boolean | HideModal;
68
+ placeholder?: string | string[];
69
+ // formatKeys?: string[];
70
+ name?: string;
71
+ }
72
+
73
+ export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form"|"onFinish"> {
74
+ configData: HItemProps[];
75
+ labelWidth?: number;
76
+ request?: (values:T,params?:any)=>Promise<R>;
77
+ infoRequest?: PromiseFnResult;
78
+ valueType?: string;
79
+ form?: HFormInstance;
80
+ params?: any;
81
+ onFinish?:(values:T,params?:any)=>void;
82
+ }
83
+
84
+ export interface HFormItemProps extends HItemProps {
85
+ required?: boolean;
86
+ value?: any;
87
+ onChange?: (val: any, item: any) => void;
88
+ }
89
+ export interface FormItemWithRender extends Omit<HFormItemProps, "render"> {
90
+ render: (form: HFormInstance) => React.ReactNode;
91
+ }
92
+ export type argsFn = (...args: any[]) => void;
93
+ export interface FormContextProps {
94
+ loading?: boolean;
95
+ form: HFormInstance;
96
+ valueType?: string;
97
+ }
98
+ interface ConfigUploadProps {
99
+ exFiles?: string[];
100
+ maxSize?: number;
101
+ request?: PromiseFnResult;
102
+ }
103
+
104
+ export interface IFormConfigContextProps {
105
+ fieldNames?: SelectProps["fieldNames"];
106
+ valueCheckMap?: ValueCheckMapModal;
107
+ valueSwitchMap?: ValueSwitchMapModal;
108
+ valueRangePickerValueMap?: DateRangePickerValueMapModal;
109
+ dateRanges?: RangePickerProps["ranges"];
110
+ uploadProps?: ConfigUploadProps;
111
+ }
112
+ interface ActionModal {
113
+ key: string;
114
+ name?: string;
115
+ }
116
+ export interface HFormInstance extends FormInstance {
117
+ addFormat: (name: string, formats?: FormatItemModal) => void;
118
+ initValues: VoidFunction;
119
+ formatValues: (
120
+ values?: Record<string, any>,
121
+ formatKey?: string
122
+ ) => Record<string, any>;
123
+ dispatch: (action: ActionModal, ...args: any[]) => void;
124
+ outputValues: (values?: Record<string, any>) => Record<string, any>;
125
+ addDispatchListener: AddDispatchListenerFn;
126
+ removeDispatchListener: (action?: ActionModal, fn?: argsFn) => void;
127
+ reload:PromiseFnResult;
128
+ }
129
+
130
+ export interface ConnectConfigModal {
131
+ format?: Record<string, addFormatItemModal>;
132
+ }
133
+
134
+ type ValueFormat = (value: Record<string, any>) => Record<string, any>;
135
+
136
+ export interface FormatItemModal {
137
+ inputValue: ValueFormat;
138
+ outputValue: ValueFormat;
139
+ }
140
+
141
+ type addValueFormat = (
142
+ item: HFormItemProps,
143
+ value: Record<string, any>
144
+ ) => Record<string, any>;
145
+
146
+ export interface addFormatItemModal {
147
+ inputValue: addValueFormat;
148
+ outputValue: addValueFormat;
149
+ }
150
+
151
+ export interface ConnectResultProps extends HFormItemProps {
152
+ addFormat?: (format: Record<string, addFormatItemModal>) => void;
153
+ addDispatchListener?: (key: string, fn: argsFn) => void;
154
+ ref?: ForwardedRef<any>;
155
+ value?: any;
156
+ onChange?: (value: any, item?: any) => void;
157
+ }
@@ -1,9 +1,9 @@
1
1
  import { Input, Button } from "antd";
2
- import type { HButtonPropsProps } from "./modal";
3
2
  import React from "react";
4
3
  import { useRequest } from "ahooks";
4
+ import type { HButtonInputProps } from "./modal";
5
5
 
6
- const Index: React.FC<HButtonPropsProps> = ({
6
+ const Index: React.FC<HButtonInputProps> = ({
7
7
  buttonProps = {},
8
8
  value,
9
9
  onChange,
@@ -21,18 +21,24 @@ const Index: React.FC<HButtonPropsProps> = ({
21
21
  const change = (e) => {
22
22
  onChange?.(e.target.value);
23
23
  };
24
- const click = async (e) => {
24
+ const click = async () => {
25
25
  let result = value;
26
26
  if (request) {
27
27
  result = await run(value);
28
28
  }
29
- onClick?.(result, e);
29
+ onClick?.(result, onChange);
30
30
  };
31
31
 
32
32
  return (
33
33
  <Input.Group compact style={{ display: "flex" }}>
34
34
  <Input {...props} style={{ flex: 1 }} value={value} onChange={change} />
35
- <Button {...oProps} type={type} onClick={click} loading={loading}>
35
+ <Button
36
+ {...oProps}
37
+ type={type}
38
+ onClick={click}
39
+ loading={loading}
40
+ style={{ marginLeft: 4 }}
41
+ >
36
42
  {children}
37
43
  </Button>
38
44
  </Input.Group>
@@ -2,27 +2,56 @@ import { Input } from "antd";
2
2
  import type { HSelectInputProps } from "./modal";
3
3
  import HSelect from "../Select";
4
4
  import { defaultSelectStyle, defaultValueName } from "./defaultConfig";
5
+ import HFormConnect from "../Form/HFormConnect";
6
+ import { ConnectResultProps } from "@/components/Form/modal";
5
7
  export enum SelectInputType {
6
8
  input,
7
9
  select,
8
10
  }
9
-
10
- export default ({
11
+ export const Index = ({
11
12
  selectProps = {},
12
13
  value = {},
13
14
  onChange,
14
15
  valueName = defaultValueName,
16
+ addFormat,
17
+ addDispatchListener,
15
18
  ...props
16
19
  }: HSelectInputProps) => {
17
20
  const { input = "", select = "" } = valueName;
18
21
  const { [input]: inputVal, [select]: selectVal } = value;
19
- const { style = defaultSelectStyle, ...sProps } = selectProps;
22
+ const {
23
+ style = defaultSelectStyle,
24
+ placeholder = "请选择",
25
+ ...sProps
26
+ } = selectProps;
20
27
  const change = (val, key) => {
21
28
  const newVal = { ...value };
22
29
  newVal[key] = val;
23
30
  const type = key === input ? SelectInputType.input : SelectInputType.select;
24
31
  onChange?.(newVal, type);
25
32
  };
33
+ addFormat?.({
34
+ float: {
35
+ inputValue: (item, initValue) => {
36
+ const { name = "" } = item;
37
+ const resultObj = {};
38
+ Object.values(valueName).forEach((key) => {
39
+ resultObj[key] = initValue[key];
40
+ });
41
+ return {
42
+ [name]: resultObj,
43
+ };
44
+ },
45
+ outputValue: (item, outputValue) => {
46
+ const { name = "" } = item;
47
+ const { [name]: itemVal = {} } = outputValue;
48
+ const newItemVal = { [itemVal[select]]: itemVal[input] };
49
+ return {
50
+ ...newItemVal,
51
+ };
52
+ },
53
+ },
54
+ });
26
55
  return (
27
56
  <Input
28
57
  value={inputVal}
@@ -33,6 +62,7 @@ export default ({
33
62
  <HSelect
34
63
  {...sProps}
35
64
  style={style}
65
+ placeholder={placeholder}
36
66
  value={selectVal}
37
67
  onChange={(val) => {
38
68
  change(val, select);
@@ -43,3 +73,4 @@ export default ({
43
73
  />
44
74
  );
45
75
  };
76
+ export default HFormConnect(Index);
@@ -0,0 +1,33 @@
1
+ import type { ButtonProps, InputProps } from "antd";
2
+ import type { HSelectProps } from "../Select/modal";
3
+ import type { SelectInputType } from "./SelectInput";
4
+ import type { PromiseFnResult } from "../modal";
5
+ import type { addFormatItemModal } from "../Form/modal";
6
+ import type { AddDispatchListenerFn } from "../Form/modal";
7
+
8
+ export type HInputProps = InputProps;
9
+
10
+ interface ValueNameModal {
11
+ input?: string;
12
+ select?: string;
13
+ }
14
+
15
+ export interface HSelectInputProps
16
+ extends Omit<HInputProps, "value" | "onChange"> {
17
+ selectProps?: HSelectProps;
18
+ value?: Record<string, any>;
19
+ onChange?: (value: Record<string, any>, type: SelectInputType) => void;
20
+ valueName?: ValueNameModal;
21
+ addFormat?: (config: Record<string, addFormatItemModal>) => void;
22
+ addDispatchListener?: AddDispatchListenerFn;
23
+ }
24
+ export interface HButtonProps extends Omit<ButtonProps, "onClick"> {
25
+ onClick: (
26
+ value: string | readonly string[] | number | undefined,
27
+ onChange?: (val: any) => void
28
+ ) => void;
29
+ }
30
+ export interface HButtonInputProps extends HInputProps {
31
+ buttonProps?: HButtonProps;
32
+ request?: PromiseFnResult;
33
+ }
@@ -0,0 +1,20 @@
1
+ import { Button, Row, Space, Typography } from "antd";
2
+ import { ExclamationCircleOutlined } from "@ant-design/icons";
3
+ import type { IHPageHandler } from "./modal";
4
+
5
+ const { Text } = Typography;
6
+ export default ({ error, reload }: IHPageHandler) => {
7
+ return (
8
+ <Row justify={"center"} align={"middle"} style={{ height: 125 }}>
9
+ <Space align={"center"} direction={"vertical"}>
10
+ <Text type={"danger"}>
11
+ <ExclamationCircleOutlined size={24} />
12
+ </Text>
13
+ <Text type={"danger"}>{error?.message}</Text>
14
+ <Button type="primary" size={"small"} onClick={reload}>
15
+ 重新加载
16
+ </Button>
17
+ </Space>
18
+ </Row>
19
+ );
20
+ };
@@ -0,0 +1,9 @@
1
+ import { Row, Spin } from "antd";
2
+
3
+ export default () => {
4
+ return (
5
+ <Row justify={"center"} align={"middle"} style={{ height: 125 }}>
6
+ <Spin size="large" />
7
+ </Row>
8
+ );
9
+ };
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import Loading from "./LoadingComponent";
3
+ import ErrorComponent from "./ErrorComponent";
4
+ import type { IHPageHandler } from "./modal";
5
+ const Index: React.FC<IHPageHandler> = ({ error, data, reload, children }) => {
6
+ if (error) {
7
+ return <ErrorComponent error={error} reload={reload} />;
8
+ }
9
+ if (data) {
10
+ return <>{children}</>;
11
+ }
12
+ return <Loading />;
13
+ };
14
+ export default Index;
@@ -0,0 +1,6 @@
1
+ export interface IHPageHandler<T = any> {
2
+ loading?: boolean;
3
+ error?: Error;
4
+ reload: VoidFunction;
5
+ data?: T;
6
+ }
@@ -1,9 +1,10 @@
1
1
  import { Radio } from "antd";
2
2
  import type { SelectProps, RadioGroupProps } from "antd/es";
3
3
  import { useMemo } from "react";
4
- import { baseConfig } from "../config";
4
+ import { useMatchConfigProps } from "../hooks";
5
5
 
6
- interface IProps extends Omit<RadioGroupProps, "onChange" | "options"> {
6
+ export interface HRadioGroupProps
7
+ extends Omit<RadioGroupProps, "onChange" | "options"> {
7
8
  onChange?: (value: any) => void;
8
9
  fieldNames?: SelectProps["fieldNames"];
9
10
  options?: (Record<string, any> | string | number)[];
@@ -12,9 +13,12 @@ export default ({
12
13
  value,
13
14
  options,
14
15
  onChange,
15
- fieldNames = baseConfig.defaultFieldNames,
16
+ fieldNames: propsFieldNames,
16
17
  ...props
17
- }: IProps) => {
18
+ }: HRadioGroupProps) => {
19
+ const { fieldNames = {} } = useMatchConfigProps({
20
+ fieldNames: propsFieldNames,
21
+ });
18
22
  const relOptions = useMemo(() => {
19
23
  return options?.map((item) => {
20
24
  const type = typeof item;
@@ -1,24 +1,33 @@
1
1
  import type { HSelectProps } from "@/components/Select/modal";
2
2
  import { Checkbox, Space } from "antd";
3
- import styles from "../index.less";
4
3
  import { itemOpProvider } from "../utils";
4
+ import { useClassName } from "../../hooks";
5
+ import React from "react";
6
+
5
7
  interface IProps extends HSelectProps {
6
8
  checked?: boolean;
7
9
  }
8
- export default ({
10
+ const useRootClassName = (checked: boolean) => {
11
+ const norClassNames = ["select-item", "select-item-option"];
12
+ return checked
13
+ ? [...norClassNames, "select-item-option-selected"]
14
+ : norClassNames;
15
+ };
16
+ const Index: React.FC<IProps> = ({
9
17
  allSelect,
10
18
  mode,
11
19
  onChange,
12
20
  value,
13
21
  serviceSearch,
14
22
  options,
15
- fieldNames,
16
- }: IProps) => {
17
- if (!allSelect || mode !== "multiple" || serviceSearch) {
18
- return null;
19
- }
23
+ fieldNames = {},
24
+ children,
25
+ }) => {
20
26
  const opLen = options?.length || 0;
21
27
  const checked = (value as any[])?.length >= opLen;
28
+ const classNames = useRootClassName(checked);
29
+ const optionsClassName = useClassName(classNames);
30
+ const allCheckBox = useClassName("hw-all-check-box");
22
31
  const change = () => {
23
32
  if (!checked) {
24
33
  const subItemOps = itemOpProvider(options, fieldNames);
@@ -27,15 +36,19 @@ export default ({
27
36
  }
28
37
  onChange?.([], []);
29
38
  };
39
+ if (!allSelect || mode !== "multiple" || serviceSearch) {
40
+ return <>{children}</>;
41
+ }
30
42
  return (
31
- <div
32
- className={`ant-select-item ant-select-item-option ${styles.option}`}
33
- onClick={change}
34
- >
35
- <Space>
36
- <Checkbox checked={checked} />
37
- 全部
38
- </Space>
43
+ <div className={allCheckBox}>
44
+ <div className={optionsClassName} onClick={change}>
45
+ <Space>
46
+ <Checkbox checked={checked} />
47
+ 全部
48
+ </Space>
49
+ </div>
50
+ {children}
39
51
  </div>
40
52
  );
41
53
  };
54
+ export default Index;
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { Spin, Row, Space, Typography } from "antd";
3
3
  import NotFoundContent from "./NotFoundContent";
4
+
4
5
  interface IProps {
5
6
  loading?: boolean;
6
7
  options?: any[];
@@ -11,7 +11,7 @@ export default ({ error, reload }: IProps) => {
11
11
  <Row justify={"center"} align={"middle"} style={{ height: 125 }}>
12
12
  <Space align={"center"} direction={"vertical"}>
13
13
  <Text type={"danger"}>
14
- <ExclamationCircleOutlined style={{ fontSize: 24 }} />
14
+ <ExclamationCircleOutlined size={24} />
15
15
  </Text>
16
16
  <Text type={"danger"}>{error.message}</Text>
17
17
  <Button type="primary" size={"small"} onClick={reload}>
@@ -5,7 +5,6 @@ import type {
5
5
  import { useEffect, useState } from "react";
6
6
  import type { FilterDataModal } from "@/components/Select/modal";
7
7
  import { itemOpProvider } from "../utils";
8
- import { baseConfig } from "../../config";
9
8
 
10
9
  const single = ({ options, value, noMatchItemRender }: PartialHSelectProps) => {
11
10
  const newOptions = options || [];
@@ -117,7 +116,7 @@ export const useValueChange = (params: PartialHSelectProps) => {
117
116
  options,
118
117
  mode,
119
118
  noMatchItemRender,
120
- fieldNames = baseConfig.defaultFieldNames,
119
+ fieldNames = {},
121
120
  } = params;
122
121
  const [val, setVal] = useState<any>();
123
122
 
@@ -10,6 +10,8 @@ export const useOptionReq = ({
10
10
  request,
11
11
  options,
12
12
  serviceSearch,
13
+ showSearch,
14
+ onSearch: propsOnSearch,
13
15
  }: PartialHSelectProps) => {
14
16
  const [data, setData] = useState<OptionType[] | undefined>();
15
17
  const { run, loading, error } = useRequest(
@@ -32,16 +34,19 @@ export const useOptionReq = ({
32
34
  );
33
35
  const onSearch = (inputValue: string) => {
34
36
  if (!serviceSearch) {
37
+ propsOnSearch?.(inputValue);
35
38
  return;
36
39
  }
37
40
  run({ inputValue });
38
41
  };
42
+ const mathShowSearch = showSearch || serviceSearch;
39
43
  return {
40
44
  run,
41
45
  loading,
42
46
  error,
43
47
  data,
44
- onSearch,
48
+ onSearch: mathShowSearch ? onSearch : propsOnSearch,
49
+ mathShowSearch: showSearch || serviceSearch,
45
50
  };
46
51
  };
47
52
 
@@ -1,5 +1,22 @@
1
- .option {
2
- &:hover {
3
- background-color: #f5f5f5;
1
+ @import "../styles/local.less";
2
+ @all-check-box: ~"@{ant-prefix}-hw-all-check-box";
3
+
4
+ .@{all-check-box} {
5
+ .@{ant-prefix}-select-item-option-active:not(
6
+ .@{ant-prefix}-select-item-option-disabled
7
+ ) {
8
+ background-color: transparent;
9
+ }
10
+ .@{ant-prefix}-select-item-option-selected:not(
11
+ .@{ant-prefix}-select-item-option-disabled
12
+ ) {
13
+ background-color: #e6f7ff;
14
+ }
15
+ .@{ant-prefix}-select-item-option:not(
16
+ .@{ant-prefix}-select-item-option-selected
17
+ ) {
18
+ &:hover {
19
+ background-color: #f5f5f5;
20
+ }
4
21
  }
5
22
  }
@@ -6,7 +6,7 @@ import type { HSelectProps } from "./modal";
6
6
  import { defaultModeConfig, defaultSelectConfig } from "./defaultConfig";
7
7
  import DropdownComponent from "./components/DropdownComponent";
8
8
  import AllSelect from "./components/AllSelect";
9
- import { useChangeOptions } from "../hooks/useChangeOptions";
9
+ import { useChangeOptions, useMatchConfigProps } from "../hooks";
10
10
  const { Option } = Select;
11
11
 
12
12
  export default ({
@@ -16,12 +16,12 @@ export default ({
16
16
  modeConfig = defaultModeConfig,
17
17
  value,
18
18
  onChange,
19
- fieldNames,
19
+ fieldNames: propsFieldNames,
20
20
  request,
21
21
  manual,
22
22
  optionLabelProp = "label",
23
23
  filterProvider,
24
- optionFilterProp = "filterlabel",
24
+ optionFilterProp = "filterLabel",
25
25
  serviceSearch,
26
26
  onSearch: propsOnSearch,
27
27
  filterOption,
@@ -32,6 +32,8 @@ export default ({
32
32
  ...props
33
33
  }: HSelectProps) => {
34
34
  const { icon, render } = modeConfig?.[mode || ""] || {};
35
+ const { fieldNames } = useMatchConfigProps({ fieldNames: propsFieldNames });
36
+
35
37
  const selfFilterOption = useFilterOption({ filterOption, serviceSearch });
36
38
  const {
37
39
  run,
@@ -39,13 +41,17 @@ export default ({
39
41
  data: resultData,
40
42
  error,
41
43
  onSearch,
44
+ mathShowSearch,
42
45
  } = useOptionReq({
43
46
  options,
44
47
  manual,
45
48
  fieldNames,
46
49
  request,
47
50
  serviceSearch,
51
+ showSearch,
52
+ onSearch: propsOnSearch,
48
53
  }); //options
54
+
49
55
  const data = useChangeOptions({ options: resultData, fieldNames });
50
56
  const { val, change } = useValueChange({
51
57
  labelInValue,
@@ -56,13 +62,14 @@ export default ({
56
62
  noMatchItemRender,
57
63
  fieldNames,
58
64
  });
65
+
59
66
  return (
60
67
  <Select
61
68
  style={style}
62
69
  mode={mode}
63
70
  loading={loading}
64
71
  value={val}
65
- onSearch={propsOnSearch || onSearch}
72
+ onSearch={onSearch}
66
73
  onChange={change}
67
74
  dropdownRender={(node) => {
68
75
  return (
@@ -78,8 +85,9 @@ export default ({
78
85
  mode={mode}
79
86
  value={val}
80
87
  onChange={change}
81
- />
82
- {node}
88
+ >
89
+ {node}
90
+ </AllSelect>
83
91
  </DropdownComponent> //全选
84
92
  );
85
93
  }}
@@ -87,21 +95,21 @@ export default ({
87
95
  menuItemSelectedIcon={icon}
88
96
  optionFilterProp={optionFilterProp}
89
97
  filterOption={selfFilterOption}
90
- showSearch={showSearch}
98
+ showSearch={mathShowSearch}
91
99
  labelInValue={true}
92
100
  {...props}
93
101
  >
94
102
  {data?.map((item) => {
95
103
  const { value: optionValue, label } = item;
96
104
  const result = filterProvider?.(item) || label;
97
- const filer = { [optionFilterProp]: result };
105
+ const filter = { [optionFilterProp]: result };
98
106
  return (
99
107
  <Option
100
108
  value={optionValue}
101
109
  key={optionValue}
102
110
  label={label}
103
111
  mode={mode}
104
- {...filer}
112
+ {...filter}
105
113
  >
106
114
  {render ? render(item, val) : label}
107
115
  </Option>
@@ -1,12 +1,13 @@
1
1
  import type { SelectProps } from "antd";
2
2
  import type React from "react";
3
-
3
+ import type { PromiseFnResult } from "../modal";
4
4
  export type OptionType = Record<string, any>;
5
5
  export type PartialHSelectProps = Partial<HSelectProps>;
6
6
  export type RenderFn = (data: OptionType) => React.ReactNode;
7
+
7
8
  interface ModeConfigItem {
8
- icon?: React.ReactNode | null;
9
- render?: (item: OptionType, value: any[]) => React.ReactNode;
9
+ icon?: React.ReactNode | null; //自定义多选时当前选中的条目图标
10
+ render?: (item: OptionType, value: any[]) => React.ReactNode; //options内容
10
11
  }
11
12
  export interface ModeConfig {
12
13
  multiple?: ModeConfigItem;
@@ -17,11 +18,11 @@ export interface HSelectProps extends Omit<SelectProps, "options"> {
17
18
  request?: PromiseFnResult<any, OptionType[]>;
18
19
  manual?: boolean;
19
20
  modeConfig?: ModeConfig;
20
- filterProvider?: (item: any) => string;
21
- serviceSearch?: boolean;
21
+ filterProvider?: (item: any) => string; //筛选字段默认为label
22
+ serviceSearch?: boolean; //服务端搜索
22
23
  options?: OptionType[];
23
- noMatchItemRender?: RenderFn;
24
- allSelect?: boolean;
24
+ noMatchItemRender?: RenderFn; //没有数据
25
+ allSelect?: boolean; //显示全选
25
26
  }
26
27
  export interface FilterDataModal {
27
28
  value: any;