@cloudbase/weda-ui 3.1.0 → 3.1.3

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 (333) hide show
  1. package/dist/asset-manifest.json +17 -0
  2. package/dist/configs/actions/showModal.json +48 -0
  3. package/dist/configs/actions/showToast.json +41 -0
  4. package/dist/configs/components/auth.json +16 -0
  5. package/dist/configs/components/button.json +239 -0
  6. package/dist/configs/components/calendar.json +81 -0
  7. package/dist/configs/components/carousel.json +292 -0
  8. package/dist/configs/components/chart/bar.json +721 -0
  9. package/dist/configs/components/chart/line.json +674 -0
  10. package/dist/configs/components/chart/pie.json +494 -0
  11. package/dist/configs/components/chart/statisticsCard.json +376 -0
  12. package/dist/configs/components/container.json +50 -0
  13. package/dist/configs/components/dataView.json +239 -0
  14. package/dist/configs/components/drawer.json +115 -0
  15. package/dist/configs/components/form/checkbox.json +178 -0
  16. package/dist/configs/components/form/form.json +45 -0
  17. package/dist/configs/components/form/input.json +154 -0
  18. package/dist/configs/components/form/location.json +216 -0
  19. package/dist/configs/components/form/radio.json +203 -0
  20. package/dist/configs/components/form/richText.json +125 -0
  21. package/dist/configs/components/form/select.json +430 -0
  22. package/dist/configs/components/form/switch.json +58 -0
  23. package/dist/configs/components/form/textarea.json +116 -0
  24. package/dist/configs/components/form/tips.json +34 -0
  25. package/dist/configs/components/form/uploader.json +171 -0
  26. package/dist/configs/components/form/uploaderFile.json +158 -0
  27. package/dist/configs/components/graphicCard.json +413 -0
  28. package/dist/configs/components/image.json +187 -0
  29. package/dist/configs/components/link.json +79 -0
  30. package/dist/configs/components/listView.json +370 -0
  31. package/dist/configs/components/lottery.json +163 -0
  32. package/dist/configs/components/modal.json +72 -0
  33. package/dist/configs/components/navLayout.json +368 -0
  34. package/dist/configs/components/navigationBar.json +62 -0
  35. package/dist/configs/components/richtextview.json +26 -0
  36. package/dist/configs/components/scrollVeiw.json +253 -0
  37. package/dist/configs/components/slot.json +17 -0
  38. package/dist/configs/components/swiper.json +90 -0
  39. package/dist/configs/components/tabs.json +121 -0
  40. package/dist/configs/components/text.json +95 -0
  41. package/dist/configs/components/wedaVideo.json +89 -0
  42. package/dist/configs/components/wxOpenApi/phone.json +127 -0
  43. package/dist/configs/components/wxOpenApi/phoneCode.json +109 -0
  44. package/dist/configs/components/wxOpenApi/share.json +157 -0
  45. package/dist/configs/components/wxOpenApi/userInfo.json +156 -0
  46. package/dist/configs/index.d.ts +97 -0
  47. package/dist/configs/index.js +105 -0
  48. package/dist/docs/common/format.d.ts +13 -0
  49. package/dist/docs/common/format.js +103 -0
  50. package/dist/docs/common/tableView.d.ts +30 -0
  51. package/dist/docs/common/tableView.js +159 -0
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.html +88 -0
  54. package/dist/index.js +3 -0
  55. package/dist/setupTests.d.ts +1 -0
  56. package/dist/setupTests.js +14 -0
  57. package/dist/static/js/bundle.js +963 -0
  58. package/dist/static/js/bundle.js.map +1 -0
  59. package/dist/static/js/main.chunk.js +8841 -0
  60. package/dist/static/js/main.chunk.js.map +1 -0
  61. package/dist/static/js/vendors~main.chunk.js +247885 -0
  62. package/dist/static/js/vendors~main.chunk.js.map +1 -0
  63. package/dist/static/media/ef6fa527e24e354765d806b826b41391.fa67580a.svg +627 -0
  64. package/dist/web/actions/index.d.ts +2 -0
  65. package/dist/web/actions/index.js +2 -0
  66. package/dist/web/actions/showModal/index.d.ts +3 -0
  67. package/dist/web/actions/showModal/index.js +66 -0
  68. package/dist/web/actions/showToast/index.d.ts +1 -0
  69. package/dist/web/actions/showToast/index.js +3 -0
  70. package/dist/web/components/auth/index.d.ts +10 -0
  71. package/dist/web/components/auth/index.js +37 -0
  72. package/dist/web/components/button/index.css +27 -0
  73. package/dist/web/components/button/index.d.ts +32 -0
  74. package/dist/web/components/button/index.js +48 -0
  75. package/dist/web/components/calendar/index.css +416 -0
  76. package/dist/web/components/calendar/index.d.ts +19 -0
  77. package/dist/web/components/calendar/index.js +181 -0
  78. package/dist/web/components/calendar/util.d.ts +13 -0
  79. package/dist/web/components/calendar/util.js +74 -0
  80. package/dist/web/components/carousel/index.css +119 -0
  81. package/dist/web/components/carousel/index.d.ts +41 -0
  82. package/dist/web/components/carousel/index.js +240 -0
  83. package/dist/web/components/chart/bar/index.d.ts +41 -0
  84. package/dist/web/components/chart/bar/index.js +56 -0
  85. package/dist/web/components/chart/common/config/bar.d.ts +48 -0
  86. package/dist/web/components/chart/common/config/bar.js +49 -0
  87. package/dist/web/components/chart/common/config/global.d.ts +13 -0
  88. package/dist/web/components/chart/common/config/global.js +16 -0
  89. package/dist/web/components/chart/common/config/line.d.ts +46 -0
  90. package/dist/web/components/chart/common/config/line.js +49 -0
  91. package/dist/web/components/chart/common/config/pie.d.ts +29 -0
  92. package/dist/web/components/chart/common/config/pie.js +36 -0
  93. package/dist/web/components/chart/common/core/eChartBar.d.ts +68 -0
  94. package/dist/web/components/chart/common/core/eChartBar.js +196 -0
  95. package/dist/web/components/chart/common/core/eChartBase.d.ts +128 -0
  96. package/dist/web/components/chart/common/core/eChartBase.js +346 -0
  97. package/dist/web/components/chart/common/core/eChartLine.d.ts +62 -0
  98. package/dist/web/components/chart/common/core/eChartLine.js +168 -0
  99. package/dist/web/components/chart/common/core/eChartPie.d.ts +50 -0
  100. package/dist/web/components/chart/common/core/eChartPie.js +132 -0
  101. package/dist/web/components/chart/common/core/type.d.ts +35 -0
  102. package/dist/web/components/chart/common/core/type.js +9 -0
  103. package/dist/web/components/chart/common/echarts.d.ts +2 -0
  104. package/dist/web/components/chart/common/echarts.js +24 -0
  105. package/dist/web/components/chart/common/useChart.d.ts +8 -0
  106. package/dist/web/components/chart/common/useChart.js +60 -0
  107. package/dist/web/components/chart/line/index.d.ts +39 -0
  108. package/dist/web/components/chart/line/index.js +53 -0
  109. package/dist/web/components/chart/pie/index.d.ts +27 -0
  110. package/dist/web/components/chart/pie/index.js +40 -0
  111. package/dist/web/components/chart/statisticsCard/index.css +63 -0
  112. package/dist/web/components/chart/statisticsCard/index.d.ts +85 -0
  113. package/dist/web/components/chart/statisticsCard/index.js +203 -0
  114. package/dist/web/components/chart/statisticsCard/interface.d.ts +13 -0
  115. package/dist/web/components/chart/statisticsCard/interface.js +1 -0
  116. package/dist/web/components/container/index.d.ts +6 -0
  117. package/dist/web/components/container/index.js +6 -0
  118. package/dist/web/components/dataView/index.d.ts +6 -0
  119. package/dist/web/components/dataView/index.js +8 -0
  120. package/dist/web/components/dataView/interface.d.ts +5 -0
  121. package/dist/web/components/dataView/interface.js +1 -0
  122. package/dist/web/components/drawer/index.d.ts +13 -0
  123. package/dist/web/components/drawer/index.js +12 -0
  124. package/dist/web/components/form/checkbox/index.d.ts +13 -0
  125. package/dist/web/components/form/checkbox/index.js +167 -0
  126. package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
  127. package/dist/web/components/form/enumSelect/MultipleSelect.js +52 -0
  128. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
  129. package/dist/web/components/form/enumSelect/NormalSelect.js +52 -0
  130. package/dist/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
  131. package/dist/web/components/form/enumSelect/SelectContainer.js +30 -0
  132. package/dist/web/components/form/enumSelect/index.d.ts +82 -0
  133. package/dist/web/components/form/enumSelect/index.js +6 -0
  134. package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
  135. package/dist/web/components/form/enumSelect/props/defaultProps.js +40 -0
  136. package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
  137. package/dist/web/components/form/enumSelect/props/propsTypes.js +47 -0
  138. package/dist/web/components/form/form/index.css +9 -0
  139. package/dist/web/components/form/form/index.d.ts +13 -0
  140. package/dist/web/components/form/form/index.js +31 -0
  141. package/dist/web/components/form/formcell/index.css +85 -0
  142. package/dist/web/components/form/formcell/index.d.ts +8 -0
  143. package/dist/web/components/form/formcell/index.js +40 -0
  144. package/dist/web/components/form/input/index.css +40 -0
  145. package/dist/web/components/form/input/index.d.ts +14 -0
  146. package/dist/web/components/form/input/index.js +86 -0
  147. package/dist/web/components/form/location/common/mapChoose.css +477 -0
  148. package/dist/web/components/form/location/common/mapChoose.d.ts +15 -0
  149. package/dist/web/components/form/location/common/mapChoose.js +435 -0
  150. package/dist/web/components/form/location/common/mapView.d.ts +19 -0
  151. package/dist/web/components/form/location/common/mapView.js +170 -0
  152. package/dist/web/components/form/location/common/propsConfig.d.ts +59 -0
  153. package/dist/web/components/form/location/common/propsConfig.js +50 -0
  154. package/dist/web/components/form/location/common/selectModal.css +45 -0
  155. package/dist/web/components/form/location/common/selectModal.d.ts +21 -0
  156. package/dist/web/components/form/location/common/selectModal.js +44 -0
  157. package/dist/web/components/form/location/common/useLocationInfo.d.ts +36 -0
  158. package/dist/web/components/form/location/common/useLocationInfo.js +104 -0
  159. package/dist/web/components/form/location/components/LocationH5/index.css +100 -0
  160. package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
  161. package/dist/web/components/form/location/components/LocationH5/location.h5.js +323 -0
  162. package/dist/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
  163. package/dist/web/components/form/location/components/LocationPC/Header.js +43 -0
  164. package/dist/web/components/form/location/components/LocationPC/index.css +40 -0
  165. package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
  166. package/dist/web/components/form/location/components/LocationPC/location.PC.js +224 -0
  167. package/dist/web/components/form/location/constants.d.ts +2 -0
  168. package/dist/web/components/form/location/constants.js +3 -0
  169. package/dist/web/components/form/location/index.css +13 -0
  170. package/dist/web/components/form/location/index.d.ts +1 -0
  171. package/dist/web/components/form/location/index.js +17 -0
  172. package/dist/web/components/form/radio/index.css +12 -0
  173. package/dist/web/components/form/radio/index.d.ts +11 -0
  174. package/dist/web/components/form/radio/index.js +115 -0
  175. package/dist/web/components/form/renderDecorator.d.ts +6 -0
  176. package/dist/web/components/form/renderDecorator.js +20 -0
  177. package/dist/web/components/form/select/h5.d.ts +16 -0
  178. package/dist/web/components/form/select/h5.js +504 -0
  179. package/dist/web/components/form/select/index.css +27 -0
  180. package/dist/web/components/form/select/index.d.ts +65 -0
  181. package/dist/web/components/form/select/index.js +301 -0
  182. package/dist/web/components/form/select/region/index.d.ts +6 -0
  183. package/dist/web/components/form/select/region/index.js +147 -0
  184. package/dist/web/components/form/select/time.d.ts +9 -0
  185. package/dist/web/components/form/select/time.js +146 -0
  186. package/dist/web/components/form/select/year.d.ts +7 -0
  187. package/dist/web/components/form/select/year.js +72 -0
  188. package/dist/web/components/form/switch/index.d.ts +6 -0
  189. package/dist/web/components/form/switch/index.js +57 -0
  190. package/dist/web/components/form/textarea/index.css +11 -0
  191. package/dist/web/components/form/textarea/index.d.ts +12 -0
  192. package/dist/web/components/form/textarea/index.js +66 -0
  193. package/dist/web/components/form/tips/index.css +4 -0
  194. package/dist/web/components/form/tips/index.d.ts +8 -0
  195. package/dist/web/components/form/tips/index.js +17 -0
  196. package/dist/web/components/form/uploader/index.css +118 -0
  197. package/dist/web/components/form/uploader/index.d.ts +3 -0
  198. package/dist/web/components/form/uploader/index.js +42 -0
  199. package/dist/web/components/form/uploader/uploader.h5.d.ts +19 -0
  200. package/dist/web/components/form/uploader/uploader.h5.js +201 -0
  201. package/dist/web/components/form/uploader/uploader.pc.d.ts +29 -0
  202. package/dist/web/components/form/uploader/uploader.pc.js +182 -0
  203. package/dist/web/components/form/uploaderFile/index.css +422 -0
  204. package/dist/web/components/form/uploaderFile/index.d.ts +4 -0
  205. package/dist/web/components/form/uploaderFile/index.js +19 -0
  206. package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
  207. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +315 -0
  208. package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
  209. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +290 -0
  210. package/dist/web/components/graphicCard/index.css +159 -0
  211. package/dist/web/components/graphicCard/index.d.ts +31 -0
  212. package/dist/web/components/graphicCard/index.js +166 -0
  213. package/dist/web/components/image/image.d.ts +9 -0
  214. package/dist/web/components/image/image.js +119 -0
  215. package/dist/web/components/image/index.css +54 -0
  216. package/dist/web/components/image/index.d.ts +13 -0
  217. package/dist/web/components/image/index.js +91 -0
  218. package/dist/web/components/index.d.ts +47 -0
  219. package/dist/web/components/index.js +94 -0
  220. package/dist/web/components/link/index.css +8 -0
  221. package/dist/web/components/link/index.d.ts +24 -0
  222. package/dist/web/components/link/index.js +71 -0
  223. package/dist/web/components/listView/index.css +143 -0
  224. package/dist/web/components/listView/index.d.ts +7 -0
  225. package/dist/web/components/listView/index.js +262 -0
  226. package/dist/web/components/listView/interface.d.ts +122 -0
  227. package/dist/web/components/listView/interface.js +1 -0
  228. package/dist/web/components/lottery/index.css +359 -0
  229. package/dist/web/components/lottery/index.d.ts +22 -0
  230. package/dist/web/components/lottery/index.js +390 -0
  231. package/dist/web/components/lottery/lotteryUtil.d.ts +23 -0
  232. package/dist/web/components/lottery/lotteryUtil.js +180 -0
  233. package/dist/web/components/modal/h5.css +53 -0
  234. package/dist/web/components/modal/index.d.ts +17 -0
  235. package/dist/web/components/modal/index.js +11 -0
  236. package/dist/web/components/modal/modal.h5.d.ts +4 -0
  237. package/dist/web/components/modal/modal.h5.js +46 -0
  238. package/dist/web/components/modal/modal.pc.d.ts +3 -0
  239. package/dist/web/components/modal/modal.pc.js +31 -0
  240. package/dist/web/components/navLayout/index.css +332 -0
  241. package/dist/web/components/navLayout/index.d.ts +46 -0
  242. package/dist/web/components/navLayout/index.js +116 -0
  243. package/dist/web/components/navigationBar/common.d.ts +15 -0
  244. package/dist/web/components/navigationBar/common.js +127 -0
  245. package/dist/web/components/navigationBar/h5Menu.d.ts +14 -0
  246. package/dist/web/components/navigationBar/h5Menu.js +72 -0
  247. package/dist/web/components/navigationBar/horizontalMenu.d.ts +12 -0
  248. package/dist/web/components/navigationBar/horizontalMenu.js +99 -0
  249. package/dist/web/components/navigationBar/index.css +762 -0
  250. package/dist/web/components/navigationBar/index.d.ts +13 -0
  251. package/dist/web/components/navigationBar/index.js +157 -0
  252. package/dist/web/components/navigationBar/verticalMenu.d.ts +13 -0
  253. package/dist/web/components/navigationBar/verticalMenu.js +38 -0
  254. package/dist/web/components/phone/index.d.ts +18 -0
  255. package/dist/web/components/phone/index.js +4 -0
  256. package/dist/web/components/phoneCode/index.d.ts +18 -0
  257. package/dist/web/components/phoneCode/index.js +4 -0
  258. package/dist/web/components/picker/datePicker.d.ts +10 -0
  259. package/dist/web/components/picker/datePicker.js +31 -0
  260. package/dist/web/components/picker/picker.d.ts +6 -0
  261. package/dist/web/components/picker/picker.js +45 -0
  262. package/dist/web/components/picker/timePicker.d.ts +7 -0
  263. package/dist/web/components/picker/timePicker.js +42 -0
  264. package/dist/web/components/richText/const.d.ts +1 -0
  265. package/dist/web/components/richText/const.js +2 -0
  266. package/dist/web/components/richText/index.css +93 -0
  267. package/dist/web/components/richText/index.d.ts +51 -0
  268. package/dist/web/components/richText/index.js +298 -0
  269. package/dist/web/components/richTextView/index.css +63 -0
  270. package/dist/web/components/richTextView/index.d.ts +7 -0
  271. package/dist/web/components/richTextView/index.js +44 -0
  272. package/dist/web/components/scrollView/index.d.ts +27 -0
  273. package/dist/web/components/scrollView/index.js +95 -0
  274. package/dist/web/components/share/index.d.ts +34 -0
  275. package/dist/web/components/share/index.js +4 -0
  276. package/dist/web/components/slot/index.d.ts +6 -0
  277. package/dist/web/components/slot/index.js +9 -0
  278. package/dist/web/components/swiper/index.css +106 -0
  279. package/dist/web/components/swiper/index.d.ts +24 -0
  280. package/dist/web/components/swiper/index.js +149 -0
  281. package/dist/web/components/tabs/index.css +64 -0
  282. package/dist/web/components/tabs/index.d.ts +13 -0
  283. package/dist/web/components/tabs/index.js +15 -0
  284. package/dist/web/components/tabs/tabs.h5.d.ts +4 -0
  285. package/dist/web/components/tabs/tabs.h5.js +42 -0
  286. package/dist/web/components/tabs/tabs.pc.d.ts +3 -0
  287. package/dist/web/components/tabs/tabs.pc.js +40 -0
  288. package/dist/web/components/text/index.css +26 -0
  289. package/dist/web/components/text/index.d.ts +14 -0
  290. package/dist/web/components/text/index.js +17 -0
  291. package/dist/web/components/uploaderFileView/index.css +11 -0
  292. package/dist/web/components/uploaderFileView/index.d.ts +10 -0
  293. package/dist/web/components/uploaderFileView/index.js +61 -0
  294. package/dist/web/components/uploaderView/index.css +31 -0
  295. package/dist/web/components/uploaderView/index.d.ts +17 -0
  296. package/dist/web/components/uploaderView/index.js +48 -0
  297. package/dist/web/components/userInfo/index.d.ts +26 -0
  298. package/dist/web/components/userInfo/index.js +4 -0
  299. package/dist/web/components/wedaVideo/index.css +42 -0
  300. package/dist/web/components/wedaVideo/index.d.ts +17 -0
  301. package/dist/web/components/wedaVideo/index.js +159 -0
  302. package/dist/web/index.d.ts +8 -0
  303. package/dist/web/index.js +4 -0
  304. package/dist/web/utils/classnames.d.ts +2 -0
  305. package/dist/web/utils/classnames.js +37 -0
  306. package/dist/web/utils/constant.d.ts +23 -0
  307. package/dist/web/utils/constant.js +24 -0
  308. package/dist/web/utils/debounce.d.ts +2 -0
  309. package/dist/web/utils/debounce.js +92 -0
  310. package/dist/web/utils/events.d.ts +1 -0
  311. package/dist/web/utils/events.js +2 -0
  312. package/dist/web/utils/getLocalCounter.d.ts +1 -0
  313. package/dist/web/utils/getLocalCounter.js +4 -0
  314. package/dist/web/utils/isObjectEqual.d.ts +2 -0
  315. package/dist/web/utils/isObjectEqual.js +12 -0
  316. package/dist/web/utils/loading-fallback.d.ts +2 -0
  317. package/dist/web/utils/loading-fallback.js +2 -0
  318. package/dist/web/utils/lodash.d.ts +1 -0
  319. package/dist/web/utils/lodash.js +2 -0
  320. package/dist/web/utils/platform.d.ts +18 -0
  321. package/dist/web/utils/platform.js +191 -0
  322. package/dist/web/utils/tcb.d.ts +23 -0
  323. package/dist/web/utils/tcb.js +82 -0
  324. package/dist/web/utils/tmap.d.ts +3 -0
  325. package/dist/web/utils/tmap.js +21 -0
  326. package/dist/web/utils/useSetState.d.ts +1 -0
  327. package/dist/web/utils/useSetState.js +8 -0
  328. package/dist/web/utils/useSyncValue.d.ts +4 -0
  329. package/dist/web/utils/useSyncValue.js +15 -0
  330. package/dist/web/utils/weui.d.ts +1 -0
  331. package/dist/web/utils/weui.js +2 -0
  332. package/dist/web/weda-ui.css +90 -0
  333. package/package.json +12 -12
@@ -0,0 +1,504 @@
1
+ import * as React from 'react';
2
+ import weui from '../../../utils/weui';
3
+ import classNames from '../../../utils/classnames';
4
+ import isObjectEqual from '../../../utils/isObjectEqual';
5
+ import { regionPicker, getRegionTree, getAreaCode } from './region/index';
6
+ import { defaultProps, moment } from './index';
7
+ import { timePicker, yearPicker, monthPicker } from './time';
8
+ import { callDataSource, callWedaApi } from '../../../utils/tcb';
9
+ import destr from 'destr';
10
+ import { emptyObject } from '../../../utils/constant';
11
+ import { getWhereList } from '../../../utils/platform';
12
+ export default function Select({
13
+ // 系统属性
14
+ events = emptyObject,
15
+ // 组件属性
16
+ name, placeholder, layout, mode, dateMode = 'day', disabled = false,
17
+ // selector mode
18
+ range = defaultProps.range, where, primaryField, tipBlock, enumName, dataSourceName, viewId, format, defaultValue,
19
+ // date mode
20
+ startDate, endDate, defaultDate,
21
+ // time mode
22
+ startTime, endTime, defaultTime,
23
+ // region mode
24
+ defaultRegion, defaultMutiRegion, regionType, separator, onChange, }) {
25
+ var _a;
26
+ const [date, setDate] = React.useState(decodeIsoDatetime(defaultDate, 'date', dateMode));
27
+ const [time, setTime] = React.useState(decodeIsoDatetime(defaultTime, 'time'));
28
+ const [regioDepth, setRegionDepth] = React.useState(3);
29
+ const [regionData, setRegionData] = React.useState([]);
30
+ const [regionTree, setRegionTree] = React.useState([]);
31
+ const [region, setRegion] = React.useState(defaultRegion);
32
+ const [mutiRegion, setMutiRegion] = React.useState([]);
33
+ const [typeRegion, setTypeRegion] = React.useState(regionType);
34
+ const [selectedValue, setSelectedValue] = React.useState(defaultValue);
35
+ const [option, setOption] = React.useState([{ label: '', value: '' }]);
36
+ const [records, setRecords] = React.useState([]);
37
+ // 两次默认值不同, 需要刷新
38
+ const prevDefaultRef = React.useRef({});
39
+ React.useEffect(() => {
40
+ var _a, _b, _c, _d, _e, _f;
41
+ let hasChange = false;
42
+ if (((_a = prevDefaultRef.current) === null || _a === void 0 ? void 0 : _a.defaultValue) !== defaultValue) {
43
+ setSelectedValue(defaultValue);
44
+ hasChange = true;
45
+ }
46
+ if (((_b = prevDefaultRef.current) === null || _b === void 0 ? void 0 : _b.defaultDate) !== defaultDate) {
47
+ setDate(decodeIsoDatetime(defaultDate, 'date', dateMode));
48
+ hasChange = true;
49
+ }
50
+ if (((_c = prevDefaultRef.current) === null || _c === void 0 ? void 0 : _c.defaultTime) !== defaultTime) {
51
+ setTime(decodeIsoDatetime(defaultTime, 'time'));
52
+ hasChange = true;
53
+ }
54
+ if (!isObjectEqual((_d = prevDefaultRef.current) === null || _d === void 0 ? void 0 : _d.defaultRegion, defaultRegion)) {
55
+ setRegion(defaultRegion);
56
+ hasChange = true;
57
+ }
58
+ if (!isObjectEqual((_e = prevDefaultRef.current) === null || _e === void 0 ? void 0 : _e.defaultMutiRegion, defaultMutiRegion)) {
59
+ //setMutiRegion((defaultMutiRegion || ".").split(','));
60
+ setMutiRegion(defaultMutiRegion ? defaultMutiRegion.split(',') : []);
61
+ hasChange = true;
62
+ }
63
+ if (((_f = prevDefaultRef.current) === null || _f === void 0 ? void 0 : _f.regionType) !== regionType) {
64
+ setTypeRegion(regionType);
65
+ hasChange = true;
66
+ }
67
+ if (hasChange) {
68
+ prevDefaultRef.current = {
69
+ defaultValue,
70
+ defaultDate,
71
+ defaultTime,
72
+ defaultRegion,
73
+ defaultMutiRegion,
74
+ };
75
+ }
76
+ });
77
+ //实现初始值触发change事件
78
+ const defaultMutiRegionChange = function (treeValue, defaultMutiRegion) {
79
+ var _a;
80
+ const defaultValue = defaultMutiRegion
81
+ ? defaultMutiRegion.split(',')
82
+ : null;
83
+ const changeValue = [];
84
+ if (Array.isArray(defaultValue) && defaultValue.length > 0) {
85
+ defaultValue.forEach((element) => {
86
+ treeValue.map((item) => {
87
+ if ((item === null || item === void 0 ? void 0 : item.Value) == element) {
88
+ changeValue.push({
89
+ value: item === null || item === void 0 ? void 0 : item.Value,
90
+ code: item === null || item === void 0 ? void 0 : item.Code,
91
+ });
92
+ }
93
+ });
94
+ });
95
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: defaultMutiRegion, result: changeValue });
96
+ }
97
+ };
98
+ const regionTreeMode = React.useMemo(() => {
99
+ if (mode == 'region' || mode == 'mutiRegion') {
100
+ if (regionData.length < 1) {
101
+ getAreaCode().then((value) => {
102
+ defaultMutiRegionChange(value, defaultMutiRegion);
103
+ setRegionData(value);
104
+ getRegionTree(value, regionType, mode).then((tree) => {
105
+ setRegionTree(tree);
106
+ });
107
+ });
108
+ }
109
+ else {
110
+ getRegionTree(regionData, regionType, mode).then((tree) => {
111
+ setRegionTree(tree);
112
+ });
113
+ }
114
+ }
115
+ switch (regionType) {
116
+ case 'levelOne': {
117
+ setRegionDepth(1);
118
+ break;
119
+ }
120
+ case 'levelTwo': {
121
+ setRegionDepth(2);
122
+ break;
123
+ }
124
+ case 'levelThree': {
125
+ setRegionDepth(3);
126
+ break;
127
+ }
128
+ default: {
129
+ break;
130
+ }
131
+ }
132
+ }, [regionType, mode, regionData]);
133
+ React.useEffect(() => {
134
+ // tcb过滤参数
135
+ const whereEffected = [].concat(getWhereList(where));
136
+ if ((format === 'father-son' || format === 'related') &&
137
+ dataSourceName &&
138
+ viewId) {
139
+ fetchData({
140
+ dataSourceName: dataSourceName,
141
+ viewId: viewId,
142
+ methodName: 'wedaGetRecords',
143
+ params: whereEffected,
144
+ });
145
+ }
146
+ }, [where]);
147
+ // 获取数据列表中主列字段,将其作为选项
148
+ React.useEffect(() => {
149
+ var _a;
150
+ if (primaryField) {
151
+ if (records && records.length !== 0) {
152
+ const option = records.map((item) => {
153
+ return {
154
+ label: item[primaryField] || item._id,
155
+ value: item._id,
156
+ };
157
+ });
158
+ setOption(option);
159
+ }
160
+ else {
161
+ setOption([{ label: '', value: '' }]);
162
+ setSelectedValue('');
163
+ (_a = events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: '' });
164
+ }
165
+ }
166
+ }, [records]);
167
+ // 获取数据列表
168
+ const fetchData = async (param) => {
169
+ let pageNo = 1;
170
+ const pageSize = 200;
171
+ let records = [];
172
+ let total = 99999;
173
+ for (let index = 0; index < Math.floor(total / pageSize) + 1; index++) {
174
+ const data = await callDataSource({
175
+ dataSourceName: param.dataSourceName,
176
+ viewId: param.viewId,
177
+ methodName: param.methodName,
178
+ params: {
179
+ where: param.params,
180
+ pageNo: pageNo,
181
+ pageSize: pageSize,
182
+ },
183
+ });
184
+ pageNo = pageNo + 1;
185
+ if (data === null || data === void 0 ? void 0 : data.records) {
186
+ total = (data === null || data === void 0 ? void 0 : data.total) || 0;
187
+ records = records.concat(data === null || data === void 0 ? void 0 : data.records);
188
+ }
189
+ }
190
+ if (records) {
191
+ setRecords(records);
192
+ }
193
+ };
194
+ React.useEffect(() => {
195
+ // 如果绑定字段类型为枚举,且传入自定义选项集的名称则默认使用自定义选项集的内容作为选项
196
+ if (format === 'x-enum' && enumName) {
197
+ fetchEnumData({ OptNameList: [enumName], PageIndex: 1, PageSize: 10 });
198
+ }
199
+ }, [enumName]);
200
+ // 获取自定义选项集
201
+ const fetchEnumData = async (param) => {
202
+ var _a, _b;
203
+ const data = await callWedaApi({
204
+ action: 'DescribeGeneralOptionsDetailList',
205
+ data: param,
206
+ });
207
+ const config = (_b = destr((_a = data === null || data === void 0 ? void 0 : data.Items[0]) === null || _a === void 0 ? void 0 : _a.Config)) !== null && _b !== void 0 ? _b : [];
208
+ const enumOption = config.map((item) => {
209
+ return {
210
+ label: item.value,
211
+ value: item.key,
212
+ };
213
+ });
214
+ setOption(enumOption);
215
+ };
216
+ const isFlex = layout !== 'vertical';
217
+ const subCls = classNames({
218
+ 'weui-cell': true,
219
+ 'weui-cell_active': true,
220
+ 'weui-cell_form': true,
221
+ 'weui-flex__item': isFlex,
222
+ 'weui-cell_disabled': disabled,
223
+ });
224
+ const onDateclick = function () {
225
+ const options = {
226
+ className: 'weda-ui weda-picker',
227
+ };
228
+ !!date && (options.defaultDate = date);
229
+ !!startDate && (options.start = decodeIsoDatetime(startDate, 'date'));
230
+ !!endDate && (options.end = decodeIsoDatetime(endDate, 'date'));
231
+ if (['year', 'month'].includes(dateMode)) {
232
+ !!startDate && (options.startDate = startDate);
233
+ !!endDate && (options.endDate = endDate);
234
+ }
235
+ options.onConfirm = (result) => {
236
+ var _a;
237
+ const value = formatDateModeValue(result, dateMode);
238
+ const formatNewDateValue = getFormatNewDateParams(dateMode, value);
239
+ setDate(value);
240
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, {
241
+ value: new Date(...formatNewDateValue).getTime(),
242
+ });
243
+ };
244
+ if (dateMode === 'year') {
245
+ // 年,1 列
246
+ yearPicker({ ...options });
247
+ }
248
+ else if (dateMode === 'month') {
249
+ // 年月,2 列
250
+ monthPicker({ ...options });
251
+ }
252
+ else {
253
+ // 年月日,3 列
254
+ weui.datePicker({ id: String(Date.now()), ...options });
255
+ }
256
+ };
257
+ const onTimeClick = function () {
258
+ const options = {
259
+ className: 'weda-ui weda-picker',
260
+ };
261
+ !!time && (options.defaultTime = time);
262
+ !!startTime && (options.start = decodeIsoDatetime(startTime, 'time'));
263
+ !!endTime && (options.end = decodeIsoDatetime(endTime, 'time'));
264
+ timePicker({
265
+ ...options,
266
+ onConfirm(result) {
267
+ var _a;
268
+ const date = moment().hour(result[0].value).minute(result[1].value);
269
+ const value = date.format('HH:mm');
270
+ setTime(value);
271
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, {
272
+ value: (date.hour() * 60 * 60 + date.minute() * 60) * 1000,
273
+ });
274
+ },
275
+ });
276
+ };
277
+ const onSelect = function () {
278
+ if (format === 'father-son' ||
279
+ format === 'related' ||
280
+ format === 'x-enum') {
281
+ weui.picker(option, {
282
+ id: String(Date.now()),
283
+ defaultValue: [selectedValue || option[0].value],
284
+ onConfirm(result) {
285
+ var _a;
286
+ const item = result[0];
287
+ setSelectedValue(item === null || item === void 0 ? void 0 : item.value);
288
+ (_a = events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: item === null || item === void 0 ? void 0 : item.value });
289
+ },
290
+ className: 'weda-ui weda-picker',
291
+ });
292
+ }
293
+ else {
294
+ weui.picker(range, {
295
+ id: String(Date.now()),
296
+ defaultValue: [selectedValue || range[0].value],
297
+ onConfirm(result) {
298
+ var _a;
299
+ const item = result[0];
300
+ setSelectedValue(item === null || item === void 0 ? void 0 : item.value);
301
+ (_a = events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: item === null || item === void 0 ? void 0 : item.value });
302
+ },
303
+ className: 'weda-ui weda-picker',
304
+ });
305
+ }
306
+ };
307
+ let regionTimer;
308
+ const momentClick = async () => {
309
+ regionTimer = setInterval(() => {
310
+ setTimeout(() => {
311
+ if (regionTree.length != 0) {
312
+ onRegionClick();
313
+ }
314
+ }, 0);
315
+ }, regionTree.length == 0 ? 500 : 0);
316
+ };
317
+ const onRegionClick = function () {
318
+ clearInterval(regionTimer);
319
+ let defaultValue = [];
320
+ if (mode == 'region') {
321
+ defaultRegion && defaultRegion.length <= 0
322
+ ? (defaultValue = ['北京市', '北京市', '东城区'])
323
+ : (defaultValue = defaultRegion);
324
+ }
325
+ else {
326
+ mutiRegion && mutiRegion.length <= 0
327
+ ? (defaultValue = ['北京市', '北京市', '东城区'])
328
+ : (defaultValue = mutiRegion);
329
+ }
330
+ regionPicker({
331
+ defaultValue: defaultValue,
332
+ depth: regioDepth,
333
+ onConfirm(result) {
334
+ var _a;
335
+ const value = result.map((item) => item.value);
336
+ //const value=regionValueSplit(typeRegion,defaultvalue);
337
+ mode == 'region' ? setRegion(value) : setMutiRegion(value);
338
+ const changeValue = mode == 'region' ? value : value.join(',');
339
+ onChange && onChange(changeValue);
340
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, {
341
+ value: changeValue,
342
+ result: result.map((item) => {
343
+ return {
344
+ value: item === null || item === void 0 ? void 0 : item.value,
345
+ code: item === null || item === void 0 ? void 0 : item.code,
346
+ };
347
+ }),
348
+ });
349
+ },
350
+ onChange(result) { },
351
+ className: 'weda-ui weda-picker',
352
+ id: new Date().valueOf(),
353
+ }, regionTree);
354
+ };
355
+ const onClick = async function () {
356
+ if (disabled) {
357
+ return;
358
+ }
359
+ switch (mode) {
360
+ case 'date': {
361
+ onDateclick();
362
+ break;
363
+ }
364
+ case 'time': {
365
+ onTimeClick();
366
+ break;
367
+ }
368
+ case 'selector': {
369
+ onSelect();
370
+ break;
371
+ }
372
+ case 'region': {
373
+ momentClick();
374
+ break;
375
+ }
376
+ case 'mutiRegion': {
377
+ momentClick();
378
+ break;
379
+ }
380
+ default: {
381
+ break;
382
+ }
383
+ }
384
+ };
385
+ const result = React.useMemo(() => {
386
+ var _a, _b;
387
+ let selectLabel = '';
388
+ if (format === 'father-son' ||
389
+ format === 'related' ||
390
+ format === 'x-enum') {
391
+ selectLabel = (_a = (option !== null && option !== void 0 ? option : []).find((item) => item.value === selectedValue)) === null || _a === void 0 ? void 0 : _a.label;
392
+ }
393
+ else {
394
+ selectLabel = (_b = (range !== null && range !== void 0 ? range : []).find((item) => item.value === selectedValue)) === null || _b === void 0 ? void 0 : _b.label;
395
+ }
396
+ return {
397
+ selector: selectLabel,
398
+ date: date,
399
+ time: time,
400
+ region: (region || []).join(separator),
401
+ mutiRegion: mutiRegion,
402
+ };
403
+ }, [range, selectedValue, date, time, region, separator, mutiRegion, option]);
404
+ return (React.createElement("div", { className: subCls },
405
+ React.createElement("div", { className: "weui-cell__bd weui-flex" },
406
+ React.createElement("input", { onClick: onClick, className: "weui-input", type: "select", name: name, placeholder: placeholder, value: (_a = result[mode]) !== null && _a !== void 0 ? _a : '', disabled: disabled, autoComplete: 'off', readOnly: true, "data-testid": "form-item-select" }))));
407
+ }
408
+ export function decodeIsoDatetime(isoStringOrTimesnap, type, dateMode = 'day') {
409
+ if (!isoStringOrTimesnap) {
410
+ return null;
411
+ }
412
+ if (typeof isoStringOrTimesnap === 'string' &&
413
+ /^-?[0-9]*$/.test(isoStringOrTimesnap)) {
414
+ const timeSnap = Number(isoStringOrTimesnap);
415
+ if (!isNaN(timeSnap)) {
416
+ isoStringOrTimesnap = timeSnap;
417
+ }
418
+ }
419
+ if (type === 'time') {
420
+ const time = isoStringOrTimesnap.match &&
421
+ isoStringOrTimesnap.match(/^(\d{2}):(\d{2})$/);
422
+ if (time && time[1] < 24 && time[2] < 60) {
423
+ return moment().hour(time[1]).minute(time[2]).format('HH:mm');
424
+ }
425
+ else if (typeof isoStringOrTimesnap === 'number') {
426
+ const timeSnap = Number(isoStringOrTimesnap);
427
+ let day;
428
+ try {
429
+ day = moment()
430
+ .hour(Math.floor(timeSnap / 3600000) % 24)
431
+ .minute(Math.floor((timeSnap % 3600000) / 60000));
432
+ }
433
+ catch (e) {
434
+ day = moment(timeSnap);
435
+ }
436
+ return day.format('HH:mm');
437
+ }
438
+ else {
439
+ return moment(isoStringOrTimesnap).format('HH:mm');
440
+ }
441
+ }
442
+ else {
443
+ return moment(isoStringOrTimesnap).format(getDateModeFormat(dateMode));
444
+ }
445
+ }
446
+ /**
447
+ * 根据时间模式,构造 new Date()的传参格式单个日期和时间组件值
448
+ */
449
+ export const getFormatNewDateParams = (type, timeStr) => {
450
+ let value = [];
451
+ const time = timeStr.split('-');
452
+ switch (type) {
453
+ case 'year':
454
+ value = [time[0], 0, 1];
455
+ break;
456
+ case 'month':
457
+ value = [time[0], Number(time[1]) - 1, 1];
458
+ break;
459
+ case 'day':
460
+ value = [time[0], Number(time[1]) - 1, time[2]];
461
+ break;
462
+ }
463
+ return value;
464
+ };
465
+ /**
466
+ * 根据时间模式,将 picker 返回的值转成对应的 年-月-日
467
+ */
468
+ export const formatDateModeValue = (result = [], dateMode = 'day') => {
469
+ var _a, _b, _c;
470
+ // eslint-disable-next-line prefer-const
471
+ let [year, month, day] = [
472
+ (_a = result[0]) === null || _a === void 0 ? void 0 : _a.value,
473
+ ((_b = result[1]) === null || _b === void 0 ? void 0 : _b.value) || 1,
474
+ ((_c = result[2]) === null || _c === void 0 ? void 0 : _c.value) || 1,
475
+ ];
476
+ if (dateMode === 'year') {
477
+ month = 1;
478
+ day = 1;
479
+ }
480
+ if (dateMode === 'month') {
481
+ day = 1;
482
+ }
483
+ const value = moment()
484
+ .year(year)
485
+ .month(month - 1)
486
+ .date(day)
487
+ .format(getDateModeFormat(dateMode));
488
+ return value;
489
+ };
490
+ /**
491
+ * 不同时间模式对应的展示格式
492
+ */
493
+ export const getDateModeFormat = (dateMode = 'day') => {
494
+ switch (dateMode) {
495
+ case 'year':
496
+ return 'YYYY';
497
+ case 'month':
498
+ return 'YYYY-MM';
499
+ case 'day':
500
+ return 'YYYY-MM-DD';
501
+ default:
502
+ return 'YYYY-MM-DD';
503
+ }
504
+ };
@@ -0,0 +1,27 @@
1
+ .weda-ui .weui-cell.weui-check__label {
2
+ padding: 1.14286rem;
3
+ }
4
+
5
+ .weda-ui .weui-flex__item .weui-cell.weui-check__label {
6
+ padding-left: 0;
7
+ }
8
+
9
+ .year-picker__overlay {
10
+ width: 21.42857rem;
11
+ }
12
+
13
+ .year-picker__overlay .year-picker__header {
14
+ display: flex;
15
+ justify-content: space-between;
16
+ align-items: center;
17
+ font-weight: 700;
18
+ }
19
+
20
+ .weda-ui.weda-select .weui-cell_form {
21
+ padding: 0 1.14286rem;
22
+ }
23
+
24
+ .weda-ui.weda-select .weui-flex__item .weui-cell_form {
25
+ padding: 0;
26
+ padding-right: 1.14286rem;
27
+ }
@@ -0,0 +1,65 @@
1
+ /// <reference types="react" />
2
+ import type { CommonFormPropsType } from '../types';
3
+ export declare const moment: any;
4
+ export default function Select(props: any): JSX.Element;
5
+ export interface PropsType extends CommonFormPropsType {
6
+ size: 's' | 'm' | 'l' | 'full';
7
+ placeholder: string;
8
+ mode: 'selector' | 'date' | 'time' | 'region' | 'mutiRegion';
9
+ dateMode: 'day' | 'month' | 'year';
10
+ range?: any[];
11
+ defaultValue?: string;
12
+ dataSourceName?: string;
13
+ viewId?: string;
14
+ enumName?: string;
15
+ format?: string;
16
+ primaryField?: string;
17
+ tipBlock?: any;
18
+ where?: {
19
+ groupLogic?: null | 'or' | 'and';
20
+ logicData?: {
21
+ keyType?: 'field' | 'var-font';
22
+ key: string;
23
+ rel: 'eq' | 'neq' | 'lt' | 'gt' | 'gte' | 'lte' | 'in' | 'nin' | 'search';
24
+ value: any;
25
+ valueType?: 'const' | 'var-font' | 'relative-amount' | 'field';
26
+ expression?: string | boolean;
27
+ logic?: null | 'or' | 'and' | string;
28
+ extra?: {
29
+ type?: 'string' | 'number' | 'boolean' | 'object' | 'array' | string;
30
+ format?: string | null;
31
+ isExpression?: boolean;
32
+ };
33
+ }[];
34
+ }[];
35
+ startDate?: string;
36
+ endDate?: string;
37
+ defaultDate?: string;
38
+ startTime?: string;
39
+ endTime?: string;
40
+ defaultTime?: string | number;
41
+ defaultRegion?: any[];
42
+ regionType?: 'levelOne' | 'levelTwo' | 'levelThree';
43
+ separator?: string;
44
+ requiredFlag?: boolean;
45
+ regionTree?: any[];
46
+ defaultMutiRegion?: string;
47
+ onChange?: (v: any) => void;
48
+ }
49
+ export declare const defaultProps: {
50
+ events: {};
51
+ label: string;
52
+ size: "l";
53
+ labelVisible: boolean;
54
+ name: string;
55
+ placeholder: string;
56
+ layout: string;
57
+ mode: string;
58
+ disabled: boolean;
59
+ requiredFlag: boolean;
60
+ range: {
61
+ name: string;
62
+ value: string;
63
+ }[];
64
+ separator: string;
65
+ };