@cloudbase/weda-ui-mp 3.6.0

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 (597) hide show
  1. package/README.md +1 -0
  2. package/actions/showMessage/index.js +3 -0
  3. package/actions/showModal/index.js +3 -0
  4. package/actions/showToast/index.js +3 -0
  5. package/app.js +0 -0
  6. package/components/button/index.js +89 -0
  7. package/components/button/index.json +4 -0
  8. package/components/button/index.wxml +22 -0
  9. package/components/button/index.wxss +13 -0
  10. package/components/calendar/arrowright--line.svg +3 -0
  11. package/components/calendar/index.js +439 -0
  12. package/components/calendar/index.json +5 -0
  13. package/components/calendar/index.wxml +35 -0
  14. package/components/calendar/index.wxss +203 -0
  15. package/components/carousel/index.js +91 -0
  16. package/components/carousel/index.json +7 -0
  17. package/components/carousel/index.wxml +6 -0
  18. package/components/chart/bar/index.js +331 -0
  19. package/components/chart/bar/index.json +6 -0
  20. package/components/chart/bar/index.wxml +1 -0
  21. package/components/chart/bar/index.wxss +9 -0
  22. package/components/chart/common/config/bar.js +50 -0
  23. package/components/chart/common/config/global.js +16 -0
  24. package/components/chart/common/config/line.js +48 -0
  25. package/components/chart/common/config/pie.js +36 -0
  26. package/components/chart/common/core/eChartBar.js +267 -0
  27. package/components/chart/common/core/eChartBase.js +450 -0
  28. package/components/chart/common/core/eChartLine.js +251 -0
  29. package/components/chart/common/core/eChartPie.js +169 -0
  30. package/components/chart/common/data-transform.js +284 -0
  31. package/components/chart/common/lib/echarts.min.js +18 -0
  32. package/components/chart/ec-canvas/ec-canvas.js +277 -0
  33. package/components/chart/ec-canvas/ec-canvas.json +4 -0
  34. package/components/chart/ec-canvas/ec-canvas.wxml +4 -0
  35. package/components/chart/ec-canvas/ec-canvas.wxss +4 -0
  36. package/components/chart/ec-canvas/wx-canvas.js +111 -0
  37. package/components/chart/line/index.js +326 -0
  38. package/components/chart/line/index.json +6 -0
  39. package/components/chart/line/index.wxml +1 -0
  40. package/components/chart/line/index.wxss +9 -0
  41. package/components/chart/pie/index.js +257 -0
  42. package/components/chart/pie/index.json +6 -0
  43. package/components/chart/pie/index.wxml +1 -0
  44. package/components/chart/pie/index.wxss +9 -0
  45. package/components/chart/statisticsCard/index.js +255 -0
  46. package/components/chart/statisticsCard/index.json +4 -0
  47. package/components/chart/statisticsCard/index.wxml +9 -0
  48. package/components/chart/statisticsCard/index.wxss +42 -0
  49. package/components/common/form-item-wrapper/index.js +20 -0
  50. package/components/common/form-item-wrapper/index.json +5 -0
  51. package/components/common/form-item-wrapper/index.wxml +3 -0
  52. package/components/container/index.js +32 -0
  53. package/components/container/index.json +4 -0
  54. package/components/container/index.wxml +3 -0
  55. package/components/customer-service/index.js +41 -0
  56. package/components/customer-service/index.json +5 -0
  57. package/components/customer-service/index.wxml +3 -0
  58. package/components/customer-service/index.wxss +7 -0
  59. package/components/dataView/index.js +109 -0
  60. package/components/dataView/index.json +7 -0
  61. package/components/dataView/index.wxml +25 -0
  62. package/components/dataView/index.wxss +0 -0
  63. package/components/form/checkbox/index.js +145 -0
  64. package/components/form/checkbox/index.json +7 -0
  65. package/components/form/checkbox/index.wxml +13 -0
  66. package/components/form/checkbox/index.wxss +1 -0
  67. package/components/form/form/index.js +189 -0
  68. package/components/form/form/index.json +4 -0
  69. package/components/form/form/index.wxml +5 -0
  70. package/components/form/form/index.wxss +3 -0
  71. package/components/form/form/wd-form.wxss +1091 -0
  72. package/components/form/formcell/index.js +57 -0
  73. package/components/form/formcell/index.json +4 -0
  74. package/components/form/formcell/index.wxml +11 -0
  75. package/components/form/formcell/index.wxss +31 -0
  76. package/components/form/input/index.js +116 -0
  77. package/components/form/input/index.json +7 -0
  78. package/components/form/input/index.wxml +25 -0
  79. package/components/form/input/index.wxss +22 -0
  80. package/components/form/location/components/mapChoose/index.js +495 -0
  81. package/components/form/location/components/mapChoose/index.json +4 -0
  82. package/components/form/location/components/mapChoose/index.wxml +54 -0
  83. package/components/form/location/components/mapChoose/index.wxss +301 -0
  84. package/components/form/location/index.js +494 -0
  85. package/components/form/location/index.json +10 -0
  86. package/components/form/location/index.wxml +29 -0
  87. package/components/form/location/index.wxss +151 -0
  88. package/components/form/location/location-btn.svg +4 -0
  89. package/components/form/location/location.svg +4 -0
  90. package/components/form/radio/index.js +124 -0
  91. package/components/form/radio/index.json +7 -0
  92. package/components/form/radio/index.wxml +13 -0
  93. package/components/form/radio/index.wxss +1 -0
  94. package/components/form/select/allTimePicker/dataUtils.js +377 -0
  95. package/components/form/select/allTimePicker/index.js +487 -0
  96. package/components/form/select/allTimePicker/index.json +7 -0
  97. package/components/form/select/allTimePicker/index.wxml +35 -0
  98. package/components/form/select/allTimePicker/index.wxss +118 -0
  99. package/components/form/select/dropdown-select/index.js +262 -0
  100. package/components/form/select/dropdown-select/index.json +4 -0
  101. package/components/form/select/dropdown-select/index.wxml +35 -0
  102. package/components/form/select/dropdown-select/index.wxss +293 -0
  103. package/components/form/select/formats-util.js +15 -0
  104. package/components/form/select/index.js +1017 -0
  105. package/components/form/select/index.json +10 -0
  106. package/components/form/select/index.wxml +56 -0
  107. package/components/form/select/index.wxss +61 -0
  108. package/components/form/select/region/index.js +120 -0
  109. package/components/form/selectMultiple/dropdown-select/index.js +202 -0
  110. package/components/form/selectMultiple/dropdown-select/index.json +4 -0
  111. package/components/form/selectMultiple/dropdown-select/index.wxml +37 -0
  112. package/components/form/selectMultiple/dropdown-select/index.wxss +305 -0
  113. package/components/form/selectMultiple/index.js +328 -0
  114. package/components/form/selectMultiple/index.json +9 -0
  115. package/components/form/selectMultiple/index.wxml +20 -0
  116. package/components/form/selectMultiple/index.wxss +127 -0
  117. package/components/form/switch/index.js +90 -0
  118. package/components/form/switch/index.json +7 -0
  119. package/components/form/switch/index.wxml +11 -0
  120. package/components/form/switch/index.wxss +1 -0
  121. package/components/form/textarea/index.js +90 -0
  122. package/components/form/textarea/index.json +7 -0
  123. package/components/form/textarea/index.wxml +8 -0
  124. package/components/form/textarea/index.wxss +10 -0
  125. package/components/form/tips/index.js +41 -0
  126. package/components/form/tips/index.json +4 -0
  127. package/components/form/tips/index.wxml +1 -0
  128. package/components/form/tips/index.wxss +5 -0
  129. package/components/form/uploader/compress.js +31 -0
  130. package/components/form/uploader/index.js +289 -0
  131. package/components/form/uploader/index.json +10 -0
  132. package/components/form/uploader/index.wxml +38 -0
  133. package/components/form/uploader/index.wxss +47 -0
  134. package/components/form/uploader/weui-uploader.js +310 -0
  135. package/components/form/uploader/weui-uploader.json +7 -0
  136. package/components/form/uploader/weui-uploader.wxml +49 -0
  137. package/components/form/uploader/weui-uploader.wxss +19 -0
  138. package/components/form/uploaderFile/index.js +481 -0
  139. package/components/form/uploaderFile/index.json +9 -0
  140. package/components/form/uploaderFile/index.wxml +52 -0
  141. package/components/form/uploaderFile/index.wxss +171 -0
  142. package/components/form-checkbox/index.js +78 -0
  143. package/components/form-checkbox/index.json +9 -0
  144. package/components/form-checkbox/index.wxml +6 -0
  145. package/components/form-date/index.js +72 -0
  146. package/components/form-date/index.json +9 -0
  147. package/components/form-date/index.wxml +25 -0
  148. package/components/form-email/index.js +99 -0
  149. package/components/form-email/index.json +9 -0
  150. package/components/form-email/index.wxml +28 -0
  151. package/components/form-field-behavior/form-field-behavior.js +423 -0
  152. package/components/form-field-behavior/item-behavior.js +445 -0
  153. package/components/form-field-behavior/validator.js +132 -0
  154. package/components/form-image-uploader/index.js +83 -0
  155. package/components/form-image-uploader/index.json +9 -0
  156. package/components/form-image-uploader/index.wxml +27 -0
  157. package/components/form-input/index.js +103 -0
  158. package/components/form-input/index.json +9 -0
  159. package/components/form-input/index.wxml +29 -0
  160. package/components/form-location/index.js +98 -0
  161. package/components/form-location/index.json +9 -0
  162. package/components/form-location/index.wxml +28 -0
  163. package/components/form-multi-region/index.js +62 -0
  164. package/components/form-multi-region/index.json +9 -0
  165. package/components/form-multi-region/index.wxml +6 -0
  166. package/components/form-phone/index.js +95 -0
  167. package/components/form-phone/index.json +9 -0
  168. package/components/form-phone/index.wxml +28 -0
  169. package/components/form-radio/index.js +70 -0
  170. package/components/form-radio/index.json +9 -0
  171. package/components/form-radio/index.wxml +6 -0
  172. package/components/form-region/index.js +59 -0
  173. package/components/form-region/index.json +9 -0
  174. package/components/form-region/index.wxml +6 -0
  175. package/components/form-select/index.js +114 -0
  176. package/components/form-select/index.json +9 -0
  177. package/components/form-select/index.wxml +31 -0
  178. package/components/form-select-multiple/index.js +97 -0
  179. package/components/form-select-multiple/index.json +9 -0
  180. package/components/form-select-multiple/index.wxml +29 -0
  181. package/components/form-switch/index.js +43 -0
  182. package/components/form-switch/index.json +9 -0
  183. package/components/form-switch/index.wxml +6 -0
  184. package/components/form-text-area/index.js +95 -0
  185. package/components/form-text-area/index.json +9 -0
  186. package/components/form-text-area/index.wxml +26 -0
  187. package/components/form-time/index.js +72 -0
  188. package/components/form-time/index.json +9 -0
  189. package/components/form-time/index.wxml +6 -0
  190. package/components/form-upload-file/index.js +73 -0
  191. package/components/form-upload-file/index.json +9 -0
  192. package/components/form-upload-file/index.wxml +26 -0
  193. package/components/form-url/index.js +104 -0
  194. package/components/form-url/index.json +9 -0
  195. package/components/form-url/index.wxml +28 -0
  196. package/components/formdetail/index.js +330 -0
  197. package/components/formdetail/index.json +7 -0
  198. package/components/formdetail/index.wxml +7 -0
  199. package/components/formdetail/index.wxss +277 -0
  200. package/components/formdetail/wd-form-detail.wxss +245 -0
  201. package/components/graphicCard/chevron-right.svg +3 -0
  202. package/components/graphicCard/index.js +205 -0
  203. package/components/graphicCard/index.json +7 -0
  204. package/components/graphicCard/index.wxml +27 -0
  205. package/components/graphicCard/index.wxss +165 -0
  206. package/components/grid/_util.wxss +67 -0
  207. package/components/grid/col/index.js +110 -0
  208. package/components/grid/col/index.json +4 -0
  209. package/components/grid/col/index.wxml +3 -0
  210. package/components/grid/index.js +94 -0
  211. package/components/grid/index.json +4 -0
  212. package/components/grid/index.wxml +3 -0
  213. package/components/grid/index.wxss +1206 -0
  214. package/components/grid/row/index.js +78 -0
  215. package/components/grid/row/index.json +4 -0
  216. package/components/grid/row/index.wxml +3 -0
  217. package/components/image/index.js +203 -0
  218. package/components/image/index.json +7 -0
  219. package/components/image/index.wxml +9 -0
  220. package/components/image/index.wxss +49 -0
  221. package/components/listView/arrow-right-line.svg +3 -0
  222. package/components/listView/emptyText.svg +7 -0
  223. package/components/listView/index.js +656 -0
  224. package/components/listView/index.json +7 -0
  225. package/components/listView/index.wxml +82 -0
  226. package/components/listView/index.wxss +290 -0
  227. package/components/listView/more-line.svg +3 -0
  228. package/components/lottery/index.js +301 -0
  229. package/components/lottery/index.json +4 -0
  230. package/components/lottery/index.wxml +41 -0
  231. package/components/lottery/index.wxss +340 -0
  232. package/components/modal/index.js +65 -0
  233. package/components/modal/index.json +9 -0
  234. package/components/modal/index.wxml +18 -0
  235. package/components/modal/index.wxss +56 -0
  236. package/components/navLayout/index.js +123 -0
  237. package/components/navLayout/index.json +8 -0
  238. package/components/navLayout/index.wxml +22 -0
  239. package/components/navLayout/index.wxss +131 -0
  240. package/components/navigationBar/index.js +205 -0
  241. package/components/navigationBar/index.json +5 -0
  242. package/components/navigationBar/index.wxml +83 -0
  243. package/components/navigationBar/index.wxss +205 -0
  244. package/components/qrcode/index.js +155 -0
  245. package/components/qrcode/index.json +5 -0
  246. package/components/qrcode/index.wxml +2 -0
  247. package/components/qrcode/index.wxss +10 -0
  248. package/components/richText/index.js +90 -0
  249. package/components/richText/index.json +4 -0
  250. package/components/richText/index.wxml +3 -0
  251. package/components/richText/index.wxss +67 -0
  252. package/components/scrollView/index.js +119 -0
  253. package/components/scrollView/index.json +4 -0
  254. package/components/scrollView/index.wxml +38 -0
  255. package/components/slot/index.js +25 -0
  256. package/components/slot/index.json +4 -0
  257. package/components/slot/index.wxml +3 -0
  258. package/components/status-content/arrow-right.svg +1 -0
  259. package/components/status-content/close.svg +1 -0
  260. package/components/status-content/error.svg +6 -0
  261. package/components/status-content/index.js +51 -0
  262. package/components/status-content/index.json +4 -0
  263. package/components/status-content/index.wxml +28 -0
  264. package/components/status-content/index.wxss +145 -0
  265. package/components/swiper/index.js +65 -0
  266. package/components/swiper/index.json +4 -0
  267. package/components/swiper/index.wxml +3 -0
  268. package/components/tabs/index.js +67 -0
  269. package/components/tabs/index.json +4 -0
  270. package/components/tabs/index.wxml +10 -0
  271. package/components/tabs/index.wxss +61 -0
  272. package/components/text/index.js +40 -0
  273. package/components/text/index.json +4 -0
  274. package/components/text/index.wxml +7 -0
  275. package/components/text/index.wxss +27 -0
  276. package/components/tooltip/index.js +290 -0
  277. package/components/tooltip/index.json +4 -0
  278. package/components/tooltip/index.wxml +18 -0
  279. package/components/tooltip/index.wxss +72 -0
  280. package/components/tooltip/wd-tooltip.wxss +25 -0
  281. package/components/wd-ad/index.js +66 -0
  282. package/components/wd-ad/index.json +5 -0
  283. package/components/wd-ad/index.wxml +3 -0
  284. package/components/wd-ad/index.wxss +3 -0
  285. package/components/wd-audio/index.js +273 -0
  286. package/components/wd-audio/index.json +5 -0
  287. package/components/wd-audio/index.wxml +3 -0
  288. package/components/wd-audio/index.wxss +0 -0
  289. package/components/wd-button/index.js +284 -0
  290. package/components/wd-button/index.json +7 -0
  291. package/components/wd-button/index.wxml +32 -0
  292. package/components/wd-button/index.wxss +2 -0
  293. package/components/wd-button/wd-button.wxss +498 -0
  294. package/components/wd-calendar/arrowright--line.svg +3 -0
  295. package/components/wd-calendar/index.js +157 -0
  296. package/components/wd-calendar/index.json +5 -0
  297. package/components/wd-calendar/index.wxml +36 -0
  298. package/components/wd-calendar/index.wxss +203 -0
  299. package/components/wd-calendar/weeks.js +41 -0
  300. package/components/wd-canvas/index.js +250 -0
  301. package/components/wd-canvas/index.json +5 -0
  302. package/components/wd-canvas/index.wxml +2 -0
  303. package/components/wd-canvas/index.wxss +0 -0
  304. package/components/wd-card/index.js +76 -0
  305. package/components/wd-card/index.json +5 -0
  306. package/components/wd-card/index.wxml +11 -0
  307. package/components/wd-card/index.wxss +6 -0
  308. package/components/wd-card/wd-card.wxss +114 -0
  309. package/components/wd-checkbox-list/index.js +170 -0
  310. package/components/wd-checkbox-list/index.json +7 -0
  311. package/components/wd-checkbox-list/index.wxml +37 -0
  312. package/components/wd-checkbox-list/index.wxss +2 -0
  313. package/components/wd-checkbox-list/wd-checkbox-list.wxss +253 -0
  314. package/components/wd-date/calendar/index.js +111 -0
  315. package/components/wd-date/calendar/index.json +7 -0
  316. package/components/wd-date/calendar/index.wxml +38 -0
  317. package/components/wd-date/calendar/index.wxss +0 -0
  318. package/components/wd-date/date-picker/index.js +101 -0
  319. package/components/wd-date/date-picker/index.json +9 -0
  320. package/components/wd-date/date-picker/index.wxml +41 -0
  321. package/components/wd-date/date-picker/index.wxss +7 -0
  322. package/components/wd-date/index.js +129 -0
  323. package/components/wd-date/index.json +10 -0
  324. package/components/wd-date/index.wxml +36 -0
  325. package/components/wd-date/index.wxss +9 -0
  326. package/components/wd-date/modal/index.js +28 -0
  327. package/components/wd-date/modal/index.json +5 -0
  328. package/components/wd-date/modal/index.wxml +14 -0
  329. package/components/wd-date/modal/index.wxss +3 -0
  330. package/components/wd-date/time-picker/index.js +202 -0
  331. package/components/wd-date/time-picker/index.json +5 -0
  332. package/components/wd-date/time-picker/index.wxml +13 -0
  333. package/components/wd-date/time-picker/index.wxss +9 -0
  334. package/components/wd-date/wd-date.wxss +0 -0
  335. package/components/wd-date/year-month-picker/index.js +128 -0
  336. package/components/wd-date/year-month-picker/index.json +5 -0
  337. package/components/wd-date/year-month-picker/index.wxml +8 -0
  338. package/components/wd-date/year-month-picker/index.wxss +9 -0
  339. package/components/wd-date-range/index.js +172 -0
  340. package/components/wd-date-range/index.json +10 -0
  341. package/components/wd-date-range/index.wxml +41 -0
  342. package/components/wd-date-range/index.wxss +9 -0
  343. package/components/wd-date-range/wd-date-range.wxss +0 -0
  344. package/components/wd-divider/index.js +46 -0
  345. package/components/wd-divider/index.json +5 -0
  346. package/components/wd-divider/index.wxml +1 -0
  347. package/components/wd-divider/index.wxss +2 -0
  348. package/components/wd-divider/wd-divider.wxss +26 -0
  349. package/components/wd-form/form-utils.js +55 -0
  350. package/components/wd-form/index.js +748 -0
  351. package/components/wd-form/index.json +5 -0
  352. package/components/wd-form/index.wxml +13 -0
  353. package/components/wd-form/index.wxss +23 -0
  354. package/components/wd-form/remote-value.js +76 -0
  355. package/components/wd-form/wd-form.wxss +1091 -0
  356. package/components/wd-form-item/index.js +106 -0
  357. package/components/wd-form-item/index.json +7 -0
  358. package/components/wd-form-item/index.wxml +47 -0
  359. package/components/wd-form-item/index.wxss +2 -0
  360. package/components/wd-form-item/wd-form-item.wxss +1091 -0
  361. package/components/wd-form-item-read-only/index.js +59 -0
  362. package/components/wd-form-item-read-only/index.json +5 -0
  363. package/components/wd-form-item-read-only/index.wxml +10 -0
  364. package/components/wd-icon/index.js +140 -0
  365. package/components/wd-icon/index.json +7 -0
  366. package/components/wd-icon/index.wxml +4 -0
  367. package/components/wd-icon/index.wxss +4 -0
  368. package/components/wd-icon/wd-font-icon.wxss +4432 -0
  369. package/components/wd-icon/wd-icon.wxss +148 -0
  370. package/components/wd-image/index.js +244 -0
  371. package/components/wd-image/index.json +7 -0
  372. package/components/wd-image/index.wxml +11 -0
  373. package/components/wd-image/index.wxss +11 -0
  374. package/components/wd-image/wd-image.wxss +80 -0
  375. package/components/wd-input/index.js +62 -0
  376. package/components/wd-input/index.json +7 -0
  377. package/components/wd-input/index.wxml +57 -0
  378. package/components/wd-input/inner-input/index.js +202 -0
  379. package/components/wd-input/inner-input/index.json +9 -0
  380. package/components/wd-input/inner-input/index.wxml +79 -0
  381. package/components/wd-input/inner-input/index.wxss +2 -0
  382. package/components/wd-input/inner-input/wd-input.wxss +1574 -0
  383. package/components/wd-input-email/index.js +63 -0
  384. package/components/wd-input-email/index.json +7 -0
  385. package/components/wd-input-email/index.wxml +55 -0
  386. package/components/wd-input-group/index.js +57 -0
  387. package/components/wd-input-group/index.json +5 -0
  388. package/components/wd-input-group/index.wxml +16 -0
  389. package/components/wd-input-group/index.wxss +1 -0
  390. package/components/wd-input-group/wd-input-group.wxss +99 -0
  391. package/components/wd-input-number/index.js +575 -0
  392. package/components/wd-input-number/index.json +10 -0
  393. package/components/wd-input-number/index.wxml +66 -0
  394. package/components/wd-input-number/index.wxss +8 -0
  395. package/components/wd-input-number/number.js +309 -0
  396. package/components/wd-input-number/wd-input-number.wxss +243 -0
  397. package/components/wd-input-phone/index.js +80 -0
  398. package/components/wd-input-phone/index.json +7 -0
  399. package/components/wd-input-phone/index.wxml +55 -0
  400. package/components/wd-input-url/index.js +63 -0
  401. package/components/wd-input-url/index.json +7 -0
  402. package/components/wd-input-url/index.wxml +55 -0
  403. package/components/wd-input-wrap/index.js +112 -0
  404. package/components/wd-input-wrap/index.json +7 -0
  405. package/components/wd-input-wrap/index.wxml +32 -0
  406. package/components/wd-input-wrap/index.wxss +2 -0
  407. package/components/wd-input-wrap/wd-input-wrap.wxss +220 -0
  408. package/components/wd-layout/index.js +33 -0
  409. package/components/wd-layout/index.json +5 -0
  410. package/components/wd-layout/index.wxml +13 -0
  411. package/components/wd-layout/index.wxss +2 -0
  412. package/components/wd-layout/wd-layout.wxss +78 -0
  413. package/components/wd-location/index.js +49 -0
  414. package/components/wd-location/index.json +10 -0
  415. package/components/wd-location/index.wxml +47 -0
  416. package/components/wd-menu-base-layout/index.js +20 -0
  417. package/components/wd-menu-base-layout/index.json +5 -0
  418. package/components/wd-menu-base-layout/index.wxml +3 -0
  419. package/components/wd-menu-horizontal-layout/index.js +20 -0
  420. package/components/wd-menu-horizontal-layout/index.json +5 -0
  421. package/components/wd-menu-horizontal-layout/index.wxml +3 -0
  422. package/components/wd-menu-layout/index.js +69 -0
  423. package/components/wd-menu-layout/index.json +8 -0
  424. package/components/wd-menu-layout/index.wxml +57 -0
  425. package/components/wd-menu-layout/index.wxss +13 -0
  426. package/components/wd-menu-layout/utils/index.js +40 -0
  427. package/components/wd-menu-layout/wd-menu-layout.wxss +632 -0
  428. package/components/wd-menu-list/index.js +246 -0
  429. package/components/wd-menu-list/index.json +7 -0
  430. package/components/wd-menu-list/index.wxml +50 -0
  431. package/components/wd-menu-list/index.wxss +146 -0
  432. package/components/wd-menu-list/wd-menu-list.wxss +621 -0
  433. package/components/wd-menu-nav-layout/index.js +20 -0
  434. package/components/wd-menu-nav-layout/index.json +5 -0
  435. package/components/wd-menu-nav-layout/index.wxml +3 -0
  436. package/components/wd-menu-plant-layout/index.js +20 -0
  437. package/components/wd-menu-plant-layout/index.json +5 -0
  438. package/components/wd-menu-plant-layout/index.wxml +3 -0
  439. package/components/wd-menu-tab-layout/index.js +20 -0
  440. package/components/wd-menu-tab-layout/index.json +5 -0
  441. package/components/wd-menu-tab-layout/index.wxml +3 -0
  442. package/components/wd-menu-vertical-layout/index.js +20 -0
  443. package/components/wd-menu-vertical-layout/index.json +5 -0
  444. package/components/wd-menu-vertical-layout/index.wxml +3 -0
  445. package/components/wd-modal/index.js +184 -0
  446. package/components/wd-modal/index.json +5 -0
  447. package/components/wd-modal/index.wxml +16 -0
  448. package/components/wd-modal/index.wxss +2 -0
  449. package/components/wd-modal/wd-modal.wxss +206 -0
  450. package/components/wd-official-account/index.js +28 -0
  451. package/components/wd-official-account/index.json +5 -0
  452. package/components/wd-official-account/index.wxml +1 -0
  453. package/components/wd-official-account/index.wxss +4 -0
  454. package/components/wd-progress/index.js +127 -0
  455. package/components/wd-progress/index.json +7 -0
  456. package/components/wd-progress/index.wxml +29 -0
  457. package/components/wd-progress/index.wxss +2 -0
  458. package/components/wd-progress/wd-progress.wxss +1123 -0
  459. package/components/wd-radio-list/index.js +157 -0
  460. package/components/wd-radio-list/index.json +7 -0
  461. package/components/wd-radio-list/index.wxml +37 -0
  462. package/components/wd-radio-list/index.wxss +2 -0
  463. package/components/wd-radio-list/wd-radio-list.wxss +181 -0
  464. package/components/wd-rating/index.js +359 -0
  465. package/components/wd-rating/index.json +9 -0
  466. package/components/wd-rating/index.wxml +37 -0
  467. package/components/wd-rating/index.wxss +2 -0
  468. package/components/wd-rating/wd-rating.wxss +1116 -0
  469. package/components/wd-region/index.js +38 -0
  470. package/components/wd-region/index.json +10 -0
  471. package/components/wd-region/index.wxml +28 -0
  472. package/components/wd-region/index.wxss +4 -0
  473. package/components/wd-select/index.js +78 -0
  474. package/components/wd-select/index.json +10 -0
  475. package/components/wd-select/index.wxml +51 -0
  476. package/components/wd-select/select.wxss +728 -0
  477. package/components/wd-select-multiple/index.js +74 -0
  478. package/components/wd-select-multiple/index.json +10 -0
  479. package/components/wd-select-multiple/index.wxml +51 -0
  480. package/components/wd-side-tab/index.js +113 -0
  481. package/components/wd-side-tab/index.json +7 -0
  482. package/components/wd-side-tab/index.wxml +6 -0
  483. package/components/wd-side-tab/index.wxss +1 -0
  484. package/components/wd-switch/index.js +67 -0
  485. package/components/wd-switch/index.json +7 -0
  486. package/components/wd-switch/index.wxml +28 -0
  487. package/components/wd-switch/index.wxss +2 -0
  488. package/components/wd-switch/wd-switch.wxss +1212 -0
  489. package/components/wd-tabbar/index.js +196 -0
  490. package/components/wd-tabbar/index.json +7 -0
  491. package/components/wd-tabbar/index.wxml +10 -0
  492. package/components/wd-tabbar/index.wxss +2 -0
  493. package/components/wd-tabbar/wd-tabbar.wxss +87 -0
  494. package/components/wd-tabs/index.js +62 -0
  495. package/components/wd-tabs/index.json +5 -0
  496. package/components/wd-tabs/index.wxml +34 -0
  497. package/components/wd-tabs/index.wxss +8 -0
  498. package/components/wd-tabs/wd-tabs.wxss +265 -0
  499. package/components/wd-tag/index.js +171 -0
  500. package/components/wd-tag/index.json +7 -0
  501. package/components/wd-tag/index.wxml +22 -0
  502. package/components/wd-tag/index.wxss +3 -0
  503. package/components/wd-tag/tag-behavior.js +57 -0
  504. package/components/wd-tag/tag-item/index.js +198 -0
  505. package/components/wd-tag/tag-item/index.json +7 -0
  506. package/components/wd-tag/tag-item/index.wxml +15 -0
  507. package/components/wd-tag/wd-tag.wxss +319 -0
  508. package/components/wd-tag-select/index.js +107 -0
  509. package/components/wd-tag-select/index.json +8 -0
  510. package/components/wd-tag-select/index.wxml +42 -0
  511. package/components/wd-tag-select/index.wxss +4 -0
  512. package/components/wd-tag-select/wd-tag-select.wxss +1253 -0
  513. package/components/wd-text/index.js +162 -0
  514. package/components/wd-text/index.json +5 -0
  515. package/components/wd-text/index.wxml +8 -0
  516. package/components/wd-text/index.wxss +2 -0
  517. package/components/wd-text/wd-text.wxss +256 -0
  518. package/components/wd-textarea/index.js +94 -0
  519. package/components/wd-textarea/index.json +7 -0
  520. package/components/wd-textarea/index.wxml +31 -0
  521. package/components/wd-textarea/index.wxss +7 -0
  522. package/components/wd-textarea/wd-textarea.wxss +91 -0
  523. package/components/wd-time/index.js +124 -0
  524. package/components/wd-time/index.json +11 -0
  525. package/components/wd-time/index.wxml +36 -0
  526. package/components/wd-time/index.wxss +9 -0
  527. package/components/wd-time/wd-time.wxss +0 -0
  528. package/components/wd-top-tab/index.js +113 -0
  529. package/components/wd-top-tab/index.json +7 -0
  530. package/components/wd-top-tab/index.wxml +6 -0
  531. package/components/wd-top-tab/index.wxss +5 -0
  532. package/components/wd-unified-link/index.js +115 -0
  533. package/components/wd-unified-link/index.json +5 -0
  534. package/components/wd-unified-link/index.wxml +3 -0
  535. package/components/wd-unified-link/index.wxss +2 -0
  536. package/components/wd-unified-link/wd-link.wxss +45 -0
  537. package/components/wd-upload-file/index.js +46 -0
  538. package/components/wd-upload-file/index.json +8 -0
  539. package/components/wd-upload-file/index.wxml +39 -0
  540. package/components/wd-upload-image/index.js +64 -0
  541. package/components/wd-upload-image/index.json +8 -0
  542. package/components/wd-upload-image/index.wxml +45 -0
  543. package/components/web-view/index.js +69 -0
  544. package/components/web-view/index.json +5 -0
  545. package/components/web-view/index.wxml +1 -0
  546. package/components/web-view/index.wxss +1 -0
  547. package/components/wedaVideo/index.js +179 -0
  548. package/components/wedaVideo/index.json +4 -0
  549. package/components/wedaVideo/index.wxml +29 -0
  550. package/components/wedaVideo/index.wxss +20 -0
  551. package/components/wxOpenApi/phone/index.js +122 -0
  552. package/components/wxOpenApi/phone/index.json +4 -0
  553. package/components/wxOpenApi/phone/index.wxml +4 -0
  554. package/components/wxOpenApi/phone/index.wxss +22 -0
  555. package/components/wxOpenApi/phoneCode/index.js +102 -0
  556. package/components/wxOpenApi/phoneCode/index.json +4 -0
  557. package/components/wxOpenApi/phoneCode/index.wxml +4 -0
  558. package/components/wxOpenApi/phoneCode/index.wxss +22 -0
  559. package/components/wxOpenApi/share/index.js +134 -0
  560. package/components/wxOpenApi/share/index.json +4 -0
  561. package/components/wxOpenApi/share/index.wxml +4 -0
  562. package/components/wxOpenApi/share/index.wxss +22 -0
  563. package/components/wxOpenApi/userInfo/index.js +97 -0
  564. package/components/wxOpenApi/userInfo/index.json +4 -0
  565. package/components/wxOpenApi/userInfo/index.wxml +4 -0
  566. package/components/wxOpenApi/userInfo/index.wxss +22 -0
  567. package/index.json +128 -0
  568. package/package.json +16 -0
  569. package/style/utils.wxss +162 -0
  570. package/style/wd-design.wxss +606 -0
  571. package/style/weda-ui.wxss +1412 -0
  572. package/style/wedatea2td.wxss +56 -0
  573. package/utils/classnames.js +39 -0
  574. package/utils/color.js +76 -0
  575. package/utils/common-behavior.js +1 -0
  576. package/utils/constant.js +132 -0
  577. package/utils/date.js +47 -0
  578. package/utils/dayjs.min.js +1 -0
  579. package/utils/debounce.js +134 -0
  580. package/utils/deepEqual.js +42 -0
  581. package/utils/destr.js +49 -0
  582. package/utils/dr_square_point.js +29 -0
  583. package/utils/enum.js +1247 -0
  584. package/utils/error.js +12 -0
  585. package/utils/getCustomInfo.js +34 -0
  586. package/utils/getFormLegacy.js +401 -0
  587. package/utils/getModelParams.js +43 -0
  588. package/utils/getWedaApi.js +1 -0
  589. package/utils/handleEvents.js +34 -0
  590. package/utils/lodash.js +65 -0
  591. package/utils/platform.js +158 -0
  592. package/utils/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js +1323 -0
  593. package/utils/qrcode/weapp.qrcode.min.js +911 -0
  594. package/utils/range.js +82 -0
  595. package/utils/tcb.js +162 -0
  596. package/utils/tool.js +74 -0
  597. package/utils/widget-api.js +28 -0
@@ -0,0 +1,748 @@
1
+ /* eslint max-lines: [error, 800] */
2
+ import { commonCompBehavior } from '../../utils/common-behavior';
3
+ import {
4
+ getDataSourceByName,
5
+ callDataSource,
6
+ callConnector,
7
+ } from '../../utils/tcb';
8
+ import equal from '../../utils/deepEqual';
9
+ import { emptyArray, noop } from '../../utils/constant';
10
+ import { isNil } from '../../utils/lodash';
11
+ import {
12
+ convertFormDataToSubmitParams,
13
+ convertRemoteValueToFormData,
14
+ } from './remote-value';
15
+ import { WdCompError } from '../../utils/error';
16
+ import {
17
+ getErrorObjectFromValidateResult,
18
+ getFormDataFromItemMap,
19
+ } from './form-utils';
20
+ import lodashGet from 'lodash.get';
21
+ import debounce from '../../utils/debounce';
22
+
23
+ const formTypeWithInitValue = ['edit', 'read'];
24
+ const debounceMs = 100;
25
+ const compMountTimeOut = 300;
26
+ const LOADING_THRESHOLD = 1000;
27
+ Component({
28
+ options: {
29
+ virtualHost: true,
30
+ multipleSlots: true,
31
+ pureDataPattern: /^_/, // 指定所有 _ 开头的数据字段为纯数据字段
32
+ },
33
+ behaviors: [commonCompBehavior],
34
+ properties: {
35
+ name: {
36
+ type: String,
37
+ },
38
+ className: {
39
+ type: String,
40
+ value: '',
41
+ },
42
+ style: {
43
+ type: String,
44
+ value: '',
45
+ },
46
+ id: {
47
+ type: String,
48
+ value: '',
49
+ },
50
+ initialValues: {
51
+ type: Object,
52
+ value: {},
53
+ },
54
+ formType: {
55
+ type: String,
56
+ value: 'create',
57
+ },
58
+ _id: {
59
+ type: String,
60
+ },
61
+ datasourceType: {
62
+ type: String,
63
+ value: 'model',
64
+ },
65
+ dataSourceName: {
66
+ type: String,
67
+ value: '',
68
+ },
69
+ methodGetItem: {
70
+ type: String,
71
+ value: '',
72
+ },
73
+ methodCreate: {
74
+ type: String,
75
+ value: '',
76
+ },
77
+ methodUpdate: {
78
+ type: String,
79
+ value: '',
80
+ },
81
+ paramGetItem: {
82
+ type: Object,
83
+ value: '',
84
+ },
85
+ layout: {
86
+ type: String,
87
+ value: 'horizontal',
88
+ },
89
+ value: {
90
+ type: Object,
91
+ value: null,
92
+ },
93
+ },
94
+ methods: {
95
+ setValue(data, setNull) {
96
+ data = Object.freeze(JSON.parse(JSON.stringify(data)));
97
+ // Object.entries(that.data._formItemMap).forEach(())
98
+ Object.keys(this.data._formItemMap).forEach((name) => {
99
+ const items = this.data._formItemMap[name];
100
+ items.forEach((item) => {
101
+ if (!item.setValue) {
102
+ console.error('表单组件缺少setValue方法:', item);
103
+ return;
104
+ }
105
+ if (lodashGet(data, name, null) !== null) {
106
+ const value = lodashGet(data, name);
107
+ item.setValue(value);
108
+ // app.utils.set($comp.state._context, name, value);
109
+ } else {
110
+ setNull && item.setValue(null);
111
+ }
112
+ });
113
+ });
114
+ },
115
+ async validate() {
116
+ const validatePromise = [];
117
+ const validateKey = [];
118
+ const validateLabel = [];
119
+ Object.values(this.data._formItemMap).forEach((item) => {
120
+ if (!item) return;
121
+ let items = item;
122
+ if (!Array.isArray(items)) {
123
+ items = [items];
124
+ }
125
+ items.forEach((item) => {
126
+ if (item.handleValidate) {
127
+ const validate = item.handleValidate();
128
+ const { name, label } = item;
129
+
130
+ if (validate) {
131
+ validatePromise.push(validate);
132
+ validateKey.push(name);
133
+ validateLabel.push(label);
134
+ }
135
+ }
136
+ });
137
+ });
138
+ let errorArr = await Promise.all(validatePromise);
139
+ const errObj = {};
140
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
141
+ errorArr = errorArr.filter((item, index) => {
142
+ if ((item ?? []).length) {
143
+ // 加标题
144
+ item.forEach((val) => {
145
+ val.label = validateLabel[index];
146
+ });
147
+ errObj[validateKey[index]] = item;
148
+ }
149
+ return item?.length > 0;
150
+ });
151
+ if (Object.keys(errObj).length > 0) {
152
+ console.error(errObj);
153
+ }
154
+ return Promise.resolve(errObj);
155
+ },
156
+ submit: debounce(async function () {
157
+ const { formType, _id, isDisabledSubmit } = this.data;
158
+ if (isDisabledSubmit) {
159
+ return;
160
+ }
161
+ const errorObj = await this.validate();
162
+ if (Object.keys(errorObj ?? {}).length === 0) {
163
+ this.triggerEvent('validateSuccess', { errors: {} });
164
+ const formData = getFormDataFromItemMap(
165
+ this.data._formItemMap,
166
+ formType
167
+ );
168
+ const extra = ['read', 'edit'].includes(formType) && _id ? { _id } : {};
169
+ this.triggerEvent(
170
+ 'submit',
171
+ JSON.parse(JSON.stringify({ ...extra, ...formData }))
172
+ );
173
+ // 流程用了
174
+ return formData;
175
+ } else {
176
+ this.setData({ errors: errorObj });
177
+ this.triggerEvent('validateFail', {
178
+ errors: getErrorObjectFromValidateResult(errorObj),
179
+ });
180
+ }
181
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
182
+ }, 500),
183
+ reset() {
184
+ this.setValue({}, true);
185
+ },
186
+ clearValue() {
187
+ this.setValue({}, true);
188
+ },
189
+ clearValidate() {
190
+ Object.keys(this.data._formItemMap).forEach((name) => {
191
+ const items = this.data._formItemMap[name];
192
+ items.forEach((item) => {
193
+ if (!item.clearValidate || typeof item.clearValidate !== 'function') {
194
+ console.error('表单组件缺少clearValidate方法:', item);
195
+ return;
196
+ }
197
+ item.clearValidate();
198
+ });
199
+ });
200
+ },
201
+ // 获取子表单初始值
202
+ _initValueFormDetail: function () {
203
+ console.log(this.data._formItemMap);
204
+ const { _formItemMap } = this.data;
205
+ const formDetailInitValue = {};
206
+ Object.keys(_formItemMap ?? {}).forEach((name) => {
207
+ const items = _formItemMap[name];
208
+ items.forEach((item) => {
209
+ if (item?.getConfig?.()?.componentType === 'formdetail') {
210
+ formDetailInitValue[name] = _formItemMap[name]?.value;
211
+ }
212
+ });
213
+ });
214
+ return formDetailInitValue;
215
+ },
216
+ // 获取表单初始值
217
+ _initValue: async function () {
218
+ console.log('_initValue');
219
+ const fetchVersion = (this.data._delayRef.current.version = Date.now());
220
+ const {
221
+ formType,
222
+ datasourceType,
223
+ dataSourceName,
224
+ _id,
225
+ methodGetItem,
226
+ paramGetItem,
227
+ } = this.properties;
228
+ const isDataModel = ![
229
+ 'connector',
230
+ 'custom-connector',
231
+ 'expression',
232
+ ].includes(datasourceType);
233
+ try {
234
+ const allSelectFields = this.getSelectFields();
235
+ let callDb = callDataSource;
236
+ let methodName = 'wedaGetItemV2';
237
+ let params = _id
238
+ ? {
239
+ select: { $master: true, ...allSelectFields },
240
+ filter: { where: { _id: { $eq: _id } } },
241
+ version: 1,
242
+ }
243
+ : null;
244
+ if (!isDataModel) {
245
+ callDb = callConnector;
246
+ methodName = methodGetItem;
247
+ params = paramGetItem;
248
+ }
249
+ console.log('aaaa======', datasourceType);
250
+ if (
251
+ (datasourceType === 'expression' ||
252
+ (formTypeWithInitValue.includes(formType) &&
253
+ dataSourceName &&
254
+ methodName &&
255
+ params)) &&
256
+ callDb
257
+ ) {
258
+ let initValue;
259
+ if (datasourceType === 'expression') {
260
+ initValue = this.data.value;
261
+ } else {
262
+ this.setData({ isLoadingData: true });
263
+
264
+ initValue = await callDb({
265
+ dataSourceName,
266
+ methodName,
267
+ params,
268
+ });
269
+ }
270
+ const cleanInitValue = JSON.parse(JSON.stringify(initValue));
271
+ if (this.setReadonlyAttributes) {
272
+ this.setReadonlyAttributes({ remoteValue: cleanInitValue });
273
+ }
274
+ this.setData({ isLoadingData: false });
275
+ if (
276
+ Object.keys(initValue).length !== 0 &&
277
+ fetchVersion === this.data._delayRef.current.version
278
+ ) {
279
+ const dataSourceProfile = await this.getDataSourceProfile();
280
+
281
+ const initFormData = convertRemoteValueToFormData(
282
+ datasourceType,
283
+ dataSourceProfile,
284
+ cleanInitValue
285
+ );
286
+ const formDetailInitValue = this._initValueFormDetail();
287
+ const initValues = { ...formDetailInitValue, ...initFormData };
288
+ this.setValue(initValues);
289
+ // eslint-disable-next-line rulesdir/no-timer
290
+ setTimeout(() => {
291
+ this.setValue(initValues);
292
+ this.setData({
293
+ formData: initValues,
294
+ initialValues: initValues,
295
+ });
296
+ this.triggerEvent('querySuccess', initValue);
297
+ }, compMountTimeOut);
298
+ }
299
+ if (Object.keys(initValue).length === 0) {
300
+ this.triggerEvent('queryEmpty', {});
301
+ }
302
+ }
303
+ } catch (e) {
304
+ console.error(e);
305
+ // this._alertError();
306
+ const obj = {
307
+ code: e?.code || 'WdForm.QueryError',
308
+ message: `${e?.message}`,
309
+ requestId: e?.original?.original?.requestID,
310
+ };
311
+ this.setData({ errorObj: obj });
312
+ this.triggerEvent('queryFail', {
313
+ error: { ...obj, original: e?.original },
314
+ });
315
+ throw new WdCompError(`${obj?.message}` || '', {
316
+ code: obj?.code,
317
+ requestId: obj?.requestId,
318
+ original: e?.original,
319
+ });
320
+ }
321
+ },
322
+ getSelectFields() {
323
+ const fields = {};
324
+
325
+ Object.keys(this.data._formItemMap ?? {}).forEach((name) => {
326
+ if (!fields[name]) {
327
+ fields[name] = new Set();
328
+ }
329
+ const items = this.data._formItemMap[name];
330
+ items.forEach((item) => {
331
+ (item.selectFields ?? [])
332
+ .filter((t) => typeof t === 'string' && t.length > 0)
333
+ .forEach((field) => {
334
+ fields[name].add(field);
335
+ });
336
+ });
337
+ });
338
+ const result = Object.keys(fields).reduce((acc, k) => {
339
+ if (fields[k].size > 0) {
340
+ acc[k] = Array.from(fields[k]);
341
+ }
342
+ return acc;
343
+ }, {});
344
+ return Object.keys(result)
345
+ .filter((item) => !item.includes('[')) // 避免出现 {\"select\":{\"$master\":true,\"gzjl[0].gl\":{\"name\":true}},
346
+ .reduce((acc, key) => {
347
+ acc[key] = result[key].reduce((fieldAcc, field) => {
348
+ fieldAcc[field] = true;
349
+ return fieldAcc;
350
+ }, {});
351
+ return acc;
352
+ }, {});
353
+ },
354
+ // 查询失败提示
355
+ _alertError: function (message = '表单容器数据查询失败') {
356
+ wx.showToast({
357
+ title: message,
358
+ icon: 'none',
359
+ duration: 2000,
360
+ });
361
+ },
362
+ // 获取表单字段权限
363
+ _initDataSourceFieldsWithAuth: async function () {
364
+ const { datasourceType, dataSourceName } = this.properties;
365
+ const isDataModel = ![
366
+ 'connector',
367
+ 'custom-connector',
368
+ 'expression',
369
+ ].includes(datasourceType);
370
+ const authValue = {
371
+ isDataModel,
372
+ dataSourceFields: undefined,
373
+ dataSourceFieldsWidthAuthList: undefined,
374
+ };
375
+ try {
376
+ if (isDataModel && dataSourceName) {
377
+ const datasource = await getDataSourceByName(dataSourceName);
378
+ // 判断是否是预览区,编辑器编辑区 dataSourceName 查询的返回一致,编辑区用的本地的数据源数据返回固定
379
+ authValue.dataSourceFieldsWidthAuthList =
380
+ datasource?.resourceCheckInfos
381
+ ?.filter((item) => !item?.RelationField)
382
+ ?.map((item) => item.ReadWrite);
383
+ authValue.dataSourceFields = Object.keys(
384
+ datasource?.schema?.properties || {}
385
+ );
386
+ this.setData({ authValue, dataSourceProfile: datasource });
387
+ // this.triggerEvent('onInitDataSourceFieldsWithAuth', authValue);
388
+ }
389
+ } catch (err) {
390
+ console.error('getDataSourceFieldsWithAuth err', err);
391
+ this._alertError(
392
+ `获取数据源字段权限信息失败,字段权限可能无法正确展示,错误信息:${err}`
393
+ );
394
+ }
395
+ },
396
+ updateFormContext: function () {
397
+ if (this._attached !== true) {
398
+ return;
399
+ }
400
+ const formData = getFormDataFromItemMap(
401
+ this.data._formItemMap,
402
+ this.data.formType
403
+ );
404
+ this.setData({ formData });
405
+ this.triggerEvent('onDataChange', {
406
+ data: JSON.parse(JSON.stringify(formData)),
407
+ });
408
+ },
409
+ getDataSourceProfile: async function () {
410
+ const { datasourceType, dataSourceName } = this.properties;
411
+ const isDataModel = ![
412
+ 'connector',
413
+ 'custom-connector',
414
+ 'expression',
415
+ ].includes(datasourceType);
416
+ if (isDataModel && dataSourceName) {
417
+ if (!isNil(this.data.dataSourceProfile)) {
418
+ // datasourceName 不能绑变量的,所以组件级别缓存
419
+ return this.data.dataSourceProfile;
420
+ }
421
+ const datasource = await getDataSourceByName(dataSourceName);
422
+ this.setData({ dataSourceProfile: datasource });
423
+ this.setReadonlyAttributes &&
424
+ this.setReadonlyAttributes({ dataSourceProfile: datasource });
425
+ return datasource;
426
+ }
427
+ return null;
428
+ },
429
+ updateWidgetAPI: function () {
430
+ const {
431
+ formType,
432
+ dataSourceName,
433
+ layout,
434
+ errors,
435
+ remoteValue,
436
+ formData,
437
+ dataSourceProfile,
438
+ datasourceType,
439
+ methodCreate,
440
+ methodUpdate,
441
+ methodGetItem,
442
+ isDisabledSubmit,
443
+ } = this.data;
444
+ this.setReadonlyAttributes?.({
445
+ formType,
446
+ dataSourceName,
447
+ layout,
448
+ errors,
449
+ remoteValue,
450
+ value: formData,
451
+ dataSourceProfile,
452
+ datasourceType,
453
+ methodCreate,
454
+ methodUpdate,
455
+ methodGetItem,
456
+ isDisabledSubmit,
457
+ });
458
+ },
459
+ enableSubmit() {
460
+ this.setData({ isDisabledSubmit: false });
461
+ },
462
+ disableSubmit() {
463
+ this.setData({ isDisabledSubmit: true });
464
+ },
465
+ },
466
+ data: {
467
+ _formItemMap: {},
468
+ _historyCtx: [],
469
+ _recoverFns: [],
470
+ _previousFormType: null,
471
+ _preParamGetItem: undefined,
472
+ _preDataId: undefined,
473
+ _delayRef: { current: { version: null, initTimer: null } },
474
+ isLoadingData: false,
475
+ loadingStatus: 'done',
476
+ authValue: undefined,
477
+
478
+ formData: {},
479
+ params: {},
480
+ dataSourceProfile: {},
481
+ errorObj: {},
482
+ },
483
+ lifetimes: {
484
+ attached() {
485
+ this._attached = true;
486
+ this._initedItemMap?.clear();
487
+ const that = this;
488
+ this.mountReadonlyAttributes(() => {
489
+ return {
490
+ getConfig() {
491
+ return {
492
+ componentType: 'form',
493
+ };
494
+ },
495
+ initialValues: that.data.initialValues,
496
+ addFormItem(name, w) {
497
+ if (
498
+ isNil(name) ||
499
+ (typeof name === 'string' && name.length === 0)
500
+ ) {
501
+ // name 没设置或为空串的时候不受表单容器控制
502
+ console.warn(
503
+ `组件 #${w?.id} 表单key(表单输入类组件 name 属性)没设置或为空串的时候不受表单容器控制`
504
+ );
505
+ return noop;
506
+ }
507
+ if (
508
+ Object.prototype.hasOwnProperty.call(
509
+ that.data._formItemMap ?? {},
510
+ name
511
+ )
512
+ ) {
513
+ that.data._formItemMap[name].push(w);
514
+ } else {
515
+ that.data._formItemMap[name] = [w];
516
+ }
517
+ that.setData({
518
+ _formItemMap: that.data._formItemMap,
519
+ });
520
+ return () => {
521
+ const removedArr = that.data._formItemMap[name].filter(
522
+ (item) => item !== w
523
+ );
524
+ if (removedArr.length <= 0) {
525
+ delete that.data._formItemMap[name];
526
+ } else {
527
+ that.data._formItemMap[name] = removedArr;
528
+ }
529
+ that.setData({
530
+ _formItemMap: that.data._formItemMap,
531
+ });
532
+ };
533
+ },
534
+ setValue: that.setValue.bind(that),
535
+ validate: async () => {
536
+ const errorObj = await that.validate.call(that);
537
+ if (Object.keys(errorObj ?? {}).length === 0) {
538
+ this.triggerEvent('validateSuccess', { errors: {} });
539
+ } else {
540
+ this.setData({ errors: errorObj });
541
+ this.triggerEvent('validateFail', {
542
+ errors: getErrorObjectFromValidateResult(
543
+ errorObj,
544
+ this.data._formItemMap
545
+ ),
546
+ });
547
+ throw errorObj;
548
+ }
549
+ return errorObj;
550
+ },
551
+ submit: () => {
552
+ return that.submit.call(that);
553
+ },
554
+ reset: that.reset.bind(that),
555
+ updateFormContext: that.updateFormContext.bind(that),
556
+ layout: that.data.layout,
557
+ value: that.data.formData,
558
+ clearValue: that.clearValue.bind(that),
559
+ clearValidate: that.clearValidate.bind(that),
560
+ dataSourceProfile: that.data.dataSourceProfile,
561
+ enableSubmit: that.enableSubmit.bind(that),
562
+ disableSubmit: that.disableSubmit.bind(that),
563
+ };
564
+ });
565
+ this._initDataSourceFieldsWithAuth();
566
+ // 兼容流程
567
+ if (this.$node) {
568
+ const $node = this.$node;
569
+ $node.setValue = this.setValue.bind(this);
570
+ $node.submit = this.submit.bind(this);
571
+ $node.formItems = '为了兼容不报错';
572
+ }
573
+
574
+ this.updateWidgetAPI();
575
+ this.setData({ id: this.id });
576
+ },
577
+ detached() {
578
+ this._attached = false;
579
+ this._initedItemMap = new WeakMap();
580
+ if (this.$node) {
581
+ const $node = this.$node;
582
+ $node.setValue = undefined;
583
+ $node.submit = undefined;
584
+ $node.formItems = undefined;
585
+ }
586
+ },
587
+ },
588
+ observers: {
589
+ 'formType, _formItemMap': debounce(function (formType, formItemMap) {
590
+ if (formType === 'read') {
591
+ Object.values(formItemMap).forEach((item) => {
592
+ if (!item) return;
593
+ let items = item;
594
+ if (!Array.isArray(items)) {
595
+ items = [items];
596
+ }
597
+ items.forEach((item) => {
598
+ const recoverFn = item.setReadOnly(true);
599
+ this.data._recoverFns.push(recoverFn);
600
+ this.setData({ _recoverFns: this.data._recoverFns });
601
+ });
602
+ });
603
+ } else {
604
+ this.data._recoverFns.forEach((fn) => fn());
605
+ this.setData({ _recoverFns: [] });
606
+ }
607
+ this.setData({ _previousFormType: formType });
608
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
609
+ }, 1000),
610
+ 'formType,datasourceType,dataSourceName,_id,methodGetItem,paramGetItem,value':
611
+ function (
612
+ formType,
613
+ datasourceType,
614
+ dataSourceName,
615
+ _id,
616
+ methodGetItem,
617
+ paramGetItem,
618
+ value
619
+ ) {
620
+ clearTimeout(this.data._delayRef.current.initTimer);
621
+ // eslint-disable-next-line rulesdir/no-timer
622
+ this.data._delayRef.current.initTimer = setTimeout(() => {
623
+ const isDataModel = ![
624
+ 'connector',
625
+ 'custom-connector',
626
+ 'expression',
627
+ ].includes(datasourceType);
628
+ if (!dataSourceName) {
629
+ this.setData({ loadingStatus: 'done' });
630
+ if (datasourceType !== 'expression') {
631
+ return;
632
+ }
633
+ }
634
+ if (isDataModel) {
635
+ if (_id && !equal(_id, this.data._preDataId)) {
636
+ this.setData({ _preDataId: _id });
637
+ this._initValue();
638
+ }
639
+ } else {
640
+ if (
641
+ methodGetItem &&
642
+ paramGetItem &&
643
+ !equal(paramGetItem, this.data.preParamGetItem)
644
+ ) {
645
+ this.setData({ preParamGetItem: paramGetItem });
646
+ this._initValue();
647
+ }
648
+ if (datasourceType === 'expression') {
649
+ if (!isNil(value) && !equal(value, this.data.preValue)) {
650
+ this.setData({ preValue: value });
651
+ this._initValue();
652
+ }
653
+ }
654
+ }
655
+ // if (formType === 'create') {
656
+ // this._initValueFormDetail();
657
+ // }
658
+ // this._initDataSourceFieldsWithAuth();
659
+ }, debounceMs);
660
+ },
661
+ '_formItemMap, authValue': function (formItemMap, authValue) {
662
+ if (typeof authValue !== 'object') return;
663
+ const { isDataModel, dataSourceFieldsWidthAuthList = emptyArray } =
664
+ authValue;
665
+ if (isDataModel) {
666
+ Object.keys(formItemMap).forEach((name) => {
667
+ const item = formItemMap[name];
668
+ const fieldPermissions = dataSourceFieldsWidthAuthList.filter(
669
+ (fieldPermission) => {
670
+ return fieldPermission[name];
671
+ }
672
+ );
673
+ if (fieldPermissions.length > 0) {
674
+ const fieldPermission = fieldPermissions[0][name];
675
+ if (fieldPermission === 'rw') {
676
+ item.setVisible?.(true);
677
+ } else if (fieldPermission === 'r') {
678
+ item.setVisible?.(true);
679
+ item.setReadOnly?.(true);
680
+ } else if (fieldPermission === 'n') {
681
+ item.setVisible?.(false);
682
+ }
683
+ }
684
+ });
685
+ }
686
+ },
687
+ initialValues: function (initialValues) {
688
+ this.$instanceRef.current = this.$instanceRef.current ?? {};
689
+ this.$instanceRef.current.initialValues = initialValues;
690
+ },
691
+ layout: function (layout) {
692
+ this.$instanceRef.current = this.$instanceRef.current ?? {};
693
+ this.$instanceRef.current.layout = layout;
694
+ },
695
+ formData: function (formData) {
696
+ this.setReadonlyAttributes &&
697
+ this.setReadonlyAttributes({
698
+ value: formData,
699
+ });
700
+ },
701
+ authValue: function (authValue) {
702
+ this.setReadonlyAttributes &&
703
+ this.setReadonlyAttributes({
704
+ authValue,
705
+ });
706
+ },
707
+ 'dataSourceProfile, formData, formType, _id': function (
708
+ dataSourceProfile,
709
+ formData,
710
+ formType,
711
+ _id
712
+ ) {
713
+ const submitParams = convertFormDataToSubmitParams(
714
+ dataSourceProfile,
715
+ formData,
716
+ formType,
717
+ _id,
718
+ Object.keys(this.data._formItemMap)
719
+ );
720
+ if (this.setReadonlyAttributes) {
721
+ this.setReadonlyAttributes({ submitParams });
722
+ }
723
+ },
724
+
725
+ 'formType,dataSourceName,layout,errors,remoteValue,formData,dataSourceProfile,datasourceType,methodCreate,methodUpdate,methodGetItem,isDisabledSubmit':
726
+ function () {
727
+ this.updateWidgetAPI();
728
+ },
729
+ isLoadingData: function (isLoadingData) {
730
+ if (isLoadingData === false) {
731
+ this.setData({ loadingStatus: 'done' });
732
+ return;
733
+ }
734
+ this.setData({ loadingStatus: 'loading' });
735
+ if (this._loadingTimeoutId) {
736
+ clearTimeout(this._loadingTimeoutId);
737
+ }
738
+ // eslint-disable-next-line rulesdir/no-timer -- 1 秒后仍在loading 才显示 loading
739
+ this._loadingTimeoutId = setTimeout(() => {
740
+ if (this.data.isLoadingData === true) {
741
+ this.setData({
742
+ loadingStatus: 'loading',
743
+ });
744
+ }
745
+ }, LOADING_THRESHOLD);
746
+ },
747
+ },
748
+ });