@cloudbase/weda-ui-mp 0.2.20

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