m8-framework-mcp 1.0.0 → 1.0.1

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 (388) hide show
  1. package/README.md +0 -15
  2. package/package.json +2 -4
  3. package/docs/ejs-doc/404/404.html +0 -9
  4. package/docs/ejs-doc/_draft/sha1_salt.md +0 -47
  5. package/docs/ejs-doc/_include/config.php +0 -10
  6. package/docs/ejs-doc/_include/cssboot.inc.php +0 -62
  7. package/docs/ejs-doc/_include/jsboot.inc.php +0 -7
  8. package/docs/ejs-doc/api_app/api_app.md +0 -43
  9. package/docs/ejs-doc/api_audio/api_audio.md +0 -225
  10. package/docs/ejs-doc/api_auth/api_auth.md +0 -256
  11. package/docs/ejs-doc/api_basicCard/api_basicCard.md +0 -69
  12. package/docs/ejs-doc/api_card_ui/api_card_ui.md +0 -37
  13. package/docs/ejs-doc/api_contact/api_contact.md +0 -295
  14. package/docs/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  15. package/docs/ejs-doc/api_device/api_device.md +0 -761
  16. package/docs/ejs-doc/api_event/api_event.md +0 -244
  17. package/docs/ejs-doc/api_global/api_global.md +0 -440
  18. package/docs/ejs-doc/api_io/api_io.md +0 -369
  19. package/docs/ejs-doc/api_miniH5/api_miniH5.md +0 -279
  20. package/docs/ejs-doc/api_navigator/api_navigator.md +0 -654
  21. package/docs/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  22. package/docs/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  23. package/docs/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  24. package/docs/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  25. package/docs/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  26. package/docs/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  27. package/docs/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  28. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  29. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  30. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  31. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  32. package/docs/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  33. package/docs/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  34. package/docs/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  35. package/docs/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  36. package/docs/ejs-doc/api_page/api_page.md +0 -261
  37. package/docs/ejs-doc/api_runtime/api_runtime.md +0 -788
  38. package/docs/ejs-doc/api_storage/api_storage.md +0 -320
  39. package/docs/ejs-doc/api_stream/api_stream.md +0 -152
  40. package/docs/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  41. package/docs/ejs-doc/api_ui/api_ui.md +0 -836
  42. package/docs/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  43. package/docs/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  44. package/docs/ejs-doc/api_ui/images/ui_alert.png +0 -0
  45. package/docs/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  46. package/docs/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  47. package/docs/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  48. package/docs/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  49. package/docs/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  50. package/docs/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  51. package/docs/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  52. package/docs/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  53. package/docs/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  54. package/docs/ejs-doc/api_ui/images/ui_select.png +0 -0
  55. package/docs/ejs-doc/api_ui/images/ui_select2.png +0 -0
  56. package/docs/ejs-doc/api_ui/images/ui_select3.png +0 -0
  57. package/docs/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  58. package/docs/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  59. package/docs/ejs-doc/api_ui/images/ui_toast.png +0 -0
  60. package/docs/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  61. package/docs/ejs-doc/api_util/api_util.md +0 -615
  62. package/docs/ejs-doc/api_util/images/util.playvideo.png +0 -0
  63. package/docs/ejs-doc/api_util/images/util.previmage.png +0 -0
  64. package/docs/ejs-doc/api_util/images/util.selectfile.png +0 -0
  65. package/docs/ejs-doc/api_util/images/util.selectimage.png +0 -0
  66. package/docs/ejs-doc/authentication/authentication.md +0 -28
  67. package/docs/ejs-doc/changelog/changelog.md +0 -290
  68. package/docs/ejs-doc/component_invokeplugin/component_invokeplugin.md +0 -54
  69. package/docs/ejs-doc/component_outline/component_outline.md +0 -71
  70. package/docs/ejs-doc/guid_apiconstraint/guid_apiconstraint.md +0 -30
  71. package/docs/ejs-doc/guid_debugpage/guid_debugpage.md +0 -53
  72. package/docs/ejs-doc/guid_debugpage/images/client.jpg +0 -0
  73. package/docs/ejs-doc/guid_debugpage/images/room.png +0 -0
  74. package/docs/ejs-doc/guid_demodebug/guid_demodebug.md +0 -59
  75. package/docs/ejs-doc/guid_demodebug/images/qr_demo.png +0 -0
  76. package/docs/ejs-doc/guid_demodebug/images/qrcode-weex.png +0 -0
  77. package/docs/ejs-doc/guid_demodebug/images/qrcode.png +0 -0
  78. package/docs/ejs-doc/guid_demodebug/images/qrcode_ejs.png +0 -0
  79. package/docs/ejs-doc/guid_errorcode/guid_errorcode.md +0 -27
  80. package/docs/ejs-doc/guid_errorcode/images/5d38937fec5107c38502c3ee38ba5b2c.png +0 -0
  81. package/docs/ejs-doc/guid_getstart/guid_getstart.md +0 -188
  82. package/docs/ejs-doc/introduction/introduction.md +0 -29
  83. package/docs/ejs-doc/jsapi_h5_all/jsapi_h5_all.md +0 -1231
  84. package/docs/ejs-doc/jsapi_mini_all/jsapi_mini_all.md +0 -1105
  85. package/docs/ejs-doc/m7_mini_h5/images/001.png +0 -0
  86. package/docs/ejs-doc/m7_mini_h5/images/dev.png +0 -0
  87. package/docs/ejs-doc/m7_mini_h5/images/install.png +0 -0
  88. package/docs/ejs-doc/m7_mini_h5/images/mobile_dev.png +0 -0
  89. package/docs/ejs-doc/m7_mini_h5/images/setting.png +0 -0
  90. package/docs/ejs-doc/m7_mini_h5/images/update.png +0 -0
  91. package/docs/ejs-doc/m7_mini_h5/m7_mini_h5.md +0 -410
  92. package/docs/ejs-doc/promisesupport/promisesupport.md +0 -84
  93. package/docs/ejs-doc/structure/images/structure.jpg +0 -0
  94. package/docs/ejs-doc/structure/images/structure2.jpg +0 -0
  95. package/docs/ejs-doc/structure/structure.md +0 -26
  96. package/docs/ejs-doc/version/version.md +0 -62
  97. package/docs/m8mpdoc-develop/$navigation.md +0 -343
  98. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/000-/346/241/206/346/236/266/347/256/200/344/273/213.md +0 -61
  99. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/001-/346/241/206/346/236/266/346/236/266/346/236/204.md +0 -60
  100. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/002-/347/233/256/345/275/225/345/217/212/346/226/207/344/273/266/347/273/204/347/273/207.md +0 -106
  101. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/003-/345/206/205/347/275/256/347/254/254/344/270/211/346/226/271/345/272/223/350/257/264/346/230/216.md +0 -25
  102. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/004-/345/267/245/347/250/213/350/207/252/345/256/232/344/271/211/351/205/215/347/275/256.md +0 -97
  103. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/000-/347/216/257/345/242/203/345/207/206/345/244/207.md +0 -186
  104. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/001-/345/237/272/347/241/200/350/257/255/346/263/225.md +0 -218
  105. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/002-Vue/347/273/204/344/273/266/344/273/213/347/273/215.md +0 -139
  106. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/004-VSCode/346/217/222/344/273/266.md +0 -125
  107. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/005-pages.md +0 -300
  108. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/006-manifest.md +0 -173
  109. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-CSS/350/257/255/346/263/225.md +0 -217
  110. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-ES6/346/224/257/346/214/201.md +0 -14
  111. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/344/273/200/344/271/210/346/230/257/346/235/241/344/273/266/347/274/226/350/257/221.md +0 -176
  112. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/200/345/217/221/350/247/204/350/214/203.md +0 -167
  113. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250CSS.md +0 -15
  114. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250JS.md +0 -42
  115. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250/347/273/204/344/273/266.md +0 -34
  116. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250/351/235/231/346/200/201/350/265/204/346/272/220.md +0 -69
  117. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/346/240/207/345/207/206js/345/222/214/346/265/217/350/247/210/345/231/250js/347/232/204/345/214/272/345/210/253.md +0 -16
  118. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/260/203/350/257/225.md +0 -29
  119. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/267/250/347/253/257/345/205/274/345/256/271.md +0 -11
  120. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/277/220/350/241/214.md +0 -50
  121. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/001-/350/267/250/347/253/257/346/263/250/346/204/217.md +0 -325
  122. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/002-/346/241/206/346/236/266/350/216/267/345/217/226.md +0 -38
  123. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/002-/346/241/206/346/236/266/350/216/267/345/217/226vue3.md +0 -39
  124. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/003-/350/267/257/345/276/204/345/210/253/345/220/215.md +0 -21
  125. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/004-/345/274/200/345/247/213/345/274/200/345/217/221.md +0 -105
  126. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/005-/350/265/204/346/272/220/345/244/204/347/220/206/344/270/216/345/217/221/345/270/203.md +0 -0
  127. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/006-Boot/345/205/261/347/224/250/350/265/204/346/272/220.md +0 -13
  128. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/007-Config/344/270/232/345/212/241/351/205/215/347/275/256.md +0 -325
  129. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/008-/345/267/245/345/205/267/347/261/273/346/240/267/345/274/217.md +0 -91
  130. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/009-/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -119
  131. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/009-/347/224/237/345/221/275/345/221/250/346/234/237vue3.md +0 -100
  132. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/010-/346/236/204/345/273/272.md +0 -94
  133. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/011-/345/217/221/345/270/203.md +0 -51
  134. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/000-token/347/232/204/344/275/277/347/224/250.md +0 -5
  135. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/001-/344/273/243/347/240/201/350/247/204/350/214/203/350/207/252/345/212/250/346/243/200/346/265/213.md +0 -0
  136. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/002-/345/211/215/345/220/216/347/253/257/346/225/260/346/215/256/344/272/244/344/272/222/345/274/200/345/217/221/346/250/241/345/274/217.md +0 -5
  137. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003-style-guide.md +0 -23
  138. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.1-style-guide-a.md +0 -872
  139. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.2-style-guide-b.md +0 -1041
  140. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.3-style-guide-c.md +0 -489
  141. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.4-style-guide-d.md +0 -372
  142. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +0 -247
  143. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +0 -276
  144. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +0 -130
  145. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +0 -115
  146. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/000-EJS2.X.md +0 -5
  147. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS3.X.md +0 -5
  148. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.X.md +0 -5
  149. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.Xmp.md +0 -5
  150. package/docs/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +0 -398
  151. package/docs/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -456
  152. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  153. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  154. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  155. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  156. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  157. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  158. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  159. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  160. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +0 -76
  161. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  162. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  163. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  164. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  165. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  166. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  167. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  168. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  169. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  170. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +0 -188
  171. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +0 -460
  172. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  173. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  174. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  175. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  176. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +0 -168
  177. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -617
  178. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  179. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  180. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +0 -150
  181. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  182. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  183. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  184. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +0 -427
  185. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  186. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  187. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +0 -175
  188. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  189. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  190. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  191. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  192. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  193. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  194. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  195. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  196. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +0 -265
  197. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  198. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +0 -115
  199. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  200. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +0 -631
  201. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -531
  202. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  203. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +0 -337
  204. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  205. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  206. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  207. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  208. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +0 -295
  209. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  210. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  211. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -265
  212. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +0 -203
  213. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  214. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -199
  215. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  216. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  217. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  218. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  219. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +0 -292
  220. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  221. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  222. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  223. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +0 -208
  224. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  225. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +0 -248
  226. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  227. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  228. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +0 -325
  229. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +0 -360
  230. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +0 -595
  231. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  232. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  233. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  234. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  235. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +0 -261
  236. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +0 -161
  237. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  238. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  239. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  240. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/001-/345/260/217/347/250/213/345/272/217/345/256/277/344/270/273/347/216/257/345/242/203.md +0 -196
  241. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/002-/350/256/276/350/256/241.md +0 -0
  242. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/003-/345/274/200/345/217/221/345/260/217/347/250/213/345/272/217.md +0 -267
  243. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/004-/345/260/217/347/250/213/345/272/217/351/205/215/347/275/256.md +0 -71
  244. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/005-/345/274/200/345/217/221/345/260/217/347/250/213/345/272/217/345/215/241/347/211/207.md +0 -307
  245. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/006-/345/274/200/345/217/221/345/206/205/347/275/256/345/260/217/347/250/213/345/272/217.md +0 -222
  246. package/docs/m8mpdoc-develop/011-vuex/344/270/216router/347/232/204/344/275/277/347/224/250/router/347/232/204/344/275/277/347/224/250.md +0 -275
  247. package/docs/m8mpdoc-develop/011-vuex/344/270/216router/347/232/204/344/275/277/347/224/250/vuex/347/232/204/344/275/277/347/224/250.md +0 -60
  248. package/docs/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +0 -116
  249. package/docs/m8mpdoc-develop/013-/350/247/243/345/206/263/346/234/254/345/234/260/350/267/250/345/237/237/devServer/350/267/250/345/237/237/351/205/215/347/275/256.md +0 -81
  250. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/DOM/346/223/215/344/275/234/346/227/266/346/234/272.md +0 -45
  251. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/M8.3/351/241/271/347/233/256/350/277/201/347/247/273/350/207/263M8.4.md +0 -216
  252. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/M8/350/200/201/351/241/271/347/233/256/350/277/201/347/247/273/350/267/250/347/253/257.md +0 -55
  253. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/install.md +0 -91
  254. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/pageopen.md +0 -52
  255. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/postcss/350/256/276/347/275/256.md +0 -24
  256. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/spechara.md +0 -39
  257. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/token/350/256/276/347/275/256.md +0 -14
  258. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/transpile_dependencies.md +0 -18
  259. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/webview/344/270/255/345/206/205/345/265/214H5/351/241/265/351/235/242.md +0 -186
  260. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/270/211/346/226/271APP/346/240/207/351/242/230/344/270/215/350/207/252/345/212/250/344/277/256/346/224/271.md +0 -30
  261. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/270/252/346/200/247/345/214/226/346/241/206/346/236/266/347/273/204/344/273/266.md +0 -87
  262. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/274/240/345/200/274/345/212/250/346/200/201/346/240/267/345/274/217.md +0 -29
  263. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/277/256/346/224/271/347/273/204/344/273/266/345/206/205/346/240/267/345/274/217.md +0 -29
  264. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//345/244/204/347/220/206/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/350/267/250/345/237/237/351/227/256/351/242/230.md +0 -22
  265. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//346/243/200/346/265/213/345/217/230/345/214/226/347/232/204/346/263/250/346/204/217/344/272/213/351/241/271.md +0 -183
  266. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//347/234/237/346/234/272/350/260/203/350/257/225.md +0 -26
  267. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//350/267/250/347/253/257/345/274/200/345/217/221/345/270/270/350/247/201/351/227/256/351/242/230.md +0 -126
  268. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//350/267/250/347/253/257/346/241/206/346/236/266/345/256/211/345/205/250/345/237/237/351/200/202/351/205/215.md +0 -153
  269. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/3thbuild.md +0 -42
  270. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/Pinia/347/232/204/344/275/277/347/224/250.md +0 -88
  271. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/custom_compts.md +0 -60
  272. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customize.md +0 -283
  273. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customtoken.md +0 -74
  274. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/i18n.md +0 -220
  275. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/modules.md +0 -44
  276. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/multiple.md +0 -160
  277. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/neui/345/272/224/347/224/250/346/236/204/345/273/272.md +0 -111
  278. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/pages.md +0 -18
  279. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/scss/345/217/230/351/207/217.md +0 -132
  280. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/subpage.md +0 -107
  281. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/weex/345/272/224/347/224/250/346/236/204/345/273/272.md +0 -106
  282. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/xmapp.md +0 -77
  283. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226//344/270/216/345/216/237/347/224/237/351/241/271/347/233/256/350/236/215/345/220/210.md +0 -61
  284. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226//351/200/202/350/200/201/345/214/226/346/226/271/346/241/210.md +0 -74
  285. package/docs/m8mpdoc-develop/016-/350/247/206/350/247/211/350/247/204/350/214/203//347/247/273/345/212/250/350/247/206/350/247/211/350/256/276/350/256/241/350/247/204/350/214/2032.0.md +0 -1
  286. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/001-view.md +0 -56
  287. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/002-scroll-view.md +0 -233
  288. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/003-match-media.md +0 -43
  289. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/004-movable-view.md +0 -118
  290. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/005-cover-view.md +0 -20
  291. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/006-cover-image.md +0 -154
  292. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/007-audio.md +0 -81
  293. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/008-camera.md +0 -70
  294. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/009-image.md +0 -197
  295. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/010-video.md +0 -196
  296. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/011-live-player.md +0 -139
  297. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/012-live-pusher.md +0 -274
  298. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/013-canvas.md +0 -90
  299. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/014-web-view.md +0 -151
  300. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/015-vue/347/273/204/344/273/266.md +0 -308
  301. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/018-map.md +0 -278
  302. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/019-input.md +0 -202
  303. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/020-textarea.md +0 -119
  304. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/021-movable-area.md +0 -25
  305. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/022-page-meta.md +0 -80
  306. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/023-navigation-bar.md +0 -58
  307. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/0-/344/273/213/347/273/215.md +0 -92
  308. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/000-/351/200/232/347/224/250/346/240/267/345/274/217.md +0 -9
  309. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/001-button/346/214/211/351/222/256.md +0 -497
  310. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/002-buttonedit/346/214/211/351/222/256/347/274/226/350/276/221.md +0 -146
  311. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/003-radio/345/215/225/351/200/211/346/241/206.md +0 -476
  312. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/004-checkbox/345/244/232/351/200/211/347/273/204.md +0 -622
  313. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/005-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -257
  314. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/006-slider/346/273/221/345/235/227.md +0 -420
  315. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/007-badge/350/247/222/346/240/207.md +0 -175
  316. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/008-icon/345/233/276/346/240/207.md +0 -133
  317. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/009-overlay/351/201/256/347/275/251/345/261/202.md +0 -111
  318. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/010-drawer/346/212/275/345/261/211.md +0 -369
  319. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/011-dialog/345/274/271/345/207/272/345/261/202.md +0 -430
  320. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/015-steps/346/255/245/351/252/244/346/235/241.md +0 -250
  321. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/017-tooltip/346/226/207/345/255/227/346/217/220/347/244/272.md +0 -101
  322. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/018-progress/350/277/233/345/272/246/346/235/241.md +0 -252
  323. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/019-layout/345/270/203/345/261/200.md +0 -324
  324. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/023-toolbar/345/267/245/345/205/267/346/240/217.md +0 -612
  325. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/024-toolbarbtns/346/214/211/351/222/256/347/273/204.md +0 -228
  326. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/025-input/350/276/223/345/205/245/346/241/206.md +0 -383
  327. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/026-autocomplete/350/207/252/345/212/250/350/241/245/345/205/250/350/276/223/345/205/245/346/241/206.md +0 -305
  328. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/027-form/350/241/250/345/215/225.md +0 -1343
  329. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/028-cascader/347/272/247/350/201/224.md +0 -695
  330. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/029-image/345/233/276/347/211/207.md +0 -211
  331. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/031-datagrid/345/210/227/350/241/250.md +0 -664
  332. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/032-pagination/345/210/206/351/241/265.md +0 -192
  333. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/033-configprovider/345/205/250/345/261/200/351/205/215/347/275/256.md +0 -417
  334. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/034-switch/345/274/200/345/205/263.md +0 -305
  335. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/035-breadcrumb/351/235/242/345/214/205/345/261/221.md +0 -90
  336. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/036-empty/347/251/272/347/212/266/346/200/201.md +0 -80
  337. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/037-colorpalette/350/260/203/350/211/262/346/235/277.md +0 -201
  338. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/038-alert/346/217/220/347/244/272.md +0 -206
  339. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/039-scrollbar/346/273/232/345/212/250/346/235/241.md +0 -256
  340. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/040-skeleton/351/252/250/346/236/266/345/261/217.md +0 -284
  341. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/041-loading/345/212/240/350/275/275.md +0 -183
  342. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/042-verifycode/351/252/214/350/257/201/347/240/201.md +0 -128
  343. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/043-timeline/346/227/266/351/227/264/350/275/264.md +0 -196
  344. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/044-workflow/345/267/245/344/275/234/346/265/201.md +0 -452
  345. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/045-ewebeditor/345/257/214/346/226/207/346/234/254/347/274/226/350/276/221/345/231/250.md +0 -236
  346. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/046-tabs/346/240/207/347/255/276/351/241/265.md +0 -388
  347. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/047-notification/351/200/232/347/237/245.md +0 -321
  348. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/048-dropdown/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -400
  349. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/049-tree/346/240/221/345/275/242/346/216/247/344/273/266.md +0 -1567
  350. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/050-popover/345/274/271/345/207/272/346/241/206.md +0 -294
  351. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/051-select/351/200/211/346/213/251/345/231/250.md +0 -976
  352. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/052-tree-select/346/240/221/345/275/242/351/200/211/346/213/251.md +0 -918
  353. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/053-inputnumber/346/225/260/345/255/227/350/276/223/345/205/245/346/241/206.md +0 -206
  354. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/054-tag/346/240/207/347/255/276.md +0 -348
  355. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/055-upload/344/270/212/344/274/240.md +0 -718
  356. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/056-message/346/266/210/346/201/257/346/217/220/347/244/272.md +0 -287
  357. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/057-segmented/345/210/206/346/256/265/346/216/247/345/210/266/345/231/250.md +0 -222
  358. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/058-progress/350/277/233/345/272/246/346/235/241.md +0 -420
  359. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/059-result/347/273/223/346/236/234.md +0 -106
  360. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/060-avatar/345/244/264/345/203/217.md +0 -294
  361. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/061-affix/345/233/272/351/222/211.md +0 -120
  362. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/062-popconfirm/346/260/224/346/263/241/347/241/256/350/256/244/346/241/206.md +0 -139
  363. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/063-input-tag/346/240/207/347/255/276/350/276/223/345/205/245/346/241/206.md +0 -244
  364. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/063-messagebox/346/266/210/346/201/257/345/274/271/346/241/206.md +0 -527
  365. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/064-rate/350/257/204/345/210/206.md +0 -223
  366. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/065-table/350/241/250/346/240/274.md +0 -1417
  367. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/066-link/351/223/276/346/216/245.md +0 -177
  368. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/067-file-upload/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -389
  369. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/068-text/346/226/207/346/234/254.md +0 -202
  370. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/069-backtop/345/233/236/345/210/260/351/241/266/351/203/250.md +0 -165
  371. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/070-image-upload/345/233/276/347/211/207/344/270/212/344/274/240.md +0 -388
  372. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/071-file-list/346/226/207/344/273/266/345/210/227/350/241/250.md +0 -94
  373. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/072-sublist/345/255/220/350/241/250.md +0 -729
  374. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/073-carousel/350/265/260/351/251/254/347/201/257.md +0 -306
  375. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/075-date-picker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -580
  376. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/076-colorPicker/351/242/234/350/211/262/351/200/211/346/213/251/345/231/250.md +0 -183
  377. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/077-mention/346/217/220/345/217/212.md +0 -390
  378. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/079-timeselect/346/227/266/351/227/264/351/200/211/346/213/251/345/231/250.md +0 -170
  379. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/080-card/345/215/241/347/211/207.md +0 -198
  380. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/082-datetimepicker/346/227/266/351/227/264/351/200/211/346/213/251.md +0 -392
  381. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/085-timepicker/346/227/266/351/227/264/351/200/211/346/213/251/345/231/250.md +0 -163
  382. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/086-calendar/346/227/245/345/216/206.md +0 -141
  383. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/087-divider/345/210/206/345/211/262/347/272/277.md +0 -77
  384. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/090-upload-service/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -61
  385. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/091-image-upload-service/345/233/276/347/211/207/344/270/212/344/274/240.md +0 -49
  386. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/092-space/351/227/264/350/267/235.md +0 -305
  387. package/docs/m8mpdoc-develop/home-/351/246/226/351/241/265.md +0 -612
  388. package/docs/m8mpdoc-develop/home1-propose.md +0 -45
@@ -1,1343 +0,0 @@
1
- # Form 表单
2
-
3
- 表单包括 `输入框`、`单选框`、`下拉框`、`复选框` 等等。使用表单,您可以收集、验证和提交数据。
4
-
5
- ## 基础表单
6
-
7
- 它包括各种输入项,如 `输入框`、`下拉框`、`单选框` 和 `复选框`。
8
-
9
- 在每个 `表单` 组件中,您需要使用 `表单项` 来容纳您的输入项。
10
-
11
- ```html
12
- <template>
13
- <e-form-m :model="form" label-width="120px">
14
- <e-form-item-m label="活动名称">
15
- <e-input-m v-model="form.name" />
16
- </e-form-item-m>
17
- <e-form-item-m label="活动形式">
18
- <e-input-m v-model="form.desc" type="textarea" />
19
- </e-form-item-m>
20
- <e-form-item-m>
21
- <e-button-m type="primary" @click="onSubmit(form)">创建</e-button-m>
22
- <e-button-m>取消</e-button-m>
23
- </e-form-item-m>
24
- </e-form-m>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import { reactive } from 'vue';
29
-
30
- // do not use same name with ref
31
- const form = reactive({
32
- name: '',
33
- desc: ''
34
- });
35
-
36
- const onSubmit = (form) => {
37
- console.log(form, 'form');
38
- };
39
- </script>
40
- ```
41
-
42
- ## 验证
43
-
44
- 表单组件允许您验证数据,帮助您查找和纠正错误。
45
-
46
- 只需为 表单 组件添加 `rules` 属性,传递验证规则,并为 表单项 设置 `prop` 属性作为需要验证的特定键。
47
-
48
- ```html
49
- <template>
50
- <e-form-m ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="220px">
51
- <e-form-item-m label="活动名称" prop="name">
52
- <e-input-m v-model="ruleForm.name" />
53
- </e-form-item-m>
54
- <e-form-item-m label="活动区域" prop="region">
55
- <e-select-m v-model="ruleForm.region" placeholder="选择活动区域">
56
- <e-option-m label="区域一" value="shanghai" />
57
- <e-option-m label="区域二" value="beijing" />
58
- </e-select-m>
59
- </e-form-item-m>
60
- <e-form-item-m label="活动时间" required>
61
- <!-- 当 ep-form-item 嵌套在另一个 ep-form-item 中时,其标签宽度将为 0。如果需要,您可以在该 ep-form-item 上设置 label-width -->
62
- <em-row>
63
- <em-col :span="11">
64
- <e-form-item-m prop="date1">
65
- <e-date-picker-m
66
- v-model="ruleForm.date1"
67
- type="date"
68
- label="选择日期"
69
- placeholder="选择日期"
70
- style="width: 100%"
71
- />
72
- </e-form-item-m>
73
- </em-col>
74
- <em-col class="text-center" :span="2">
75
- <span class="text-gray-500">-</span>
76
- </em-col>
77
- <em-col :span="11">
78
- <e-form-item-m prop="date2">
79
- <e-date-picker-m
80
- v-model="ruleForm.date2"
81
- type="date"
82
- label="选择日期"
83
- placeholder="选择日期"
84
- style="width: 100%"
85
- />
86
- </e-form-item-m>
87
- </em-col>
88
- </em-row>
89
- </e-form-item-m>
90
- <e-form-item-m label="即时交付" prop="delivery">
91
- <e-switch-m v-model="ruleForm.delivery" />
92
- </e-form-item-m>
93
- <e-form-item-m label="活动类型" prop="type">
94
- <e-checkbox-group-m v-model="ruleForm.type">
95
- <e-checkbox-m value="线上活动" label="线上活动" name="1" />
96
- <e-checkbox-m value="促销活动" label="促销活动" name="2" />
97
- <e-checkbox-m value="线下活动" label="线下活动" name="3" />
98
- <e-checkbox-m value="简单品牌曝光" label="简单品牌曝光" name="4" />
99
- </e-checkbox-group-m>
100
- </e-form-item-m>
101
- <e-form-item-m label="资源" prop="resource">
102
- <e-radio-group-m v-model="ruleForm.resource">
103
- <e-radio-m value="赞助商" label="赞助商" />
104
- <e-radio-m value="场馆" label="场馆" />
105
- </e-radio-group-m>
106
- </e-form-item-m>
107
- <e-form-item-m label="活动形式" prop="desc">
108
- <e-input-m v-model="ruleForm.desc" type="textarea" />
109
- </e-form-item-m>
110
- <e-form-item-m label="主办人身份证号码" prop="idCard">
111
- <e-input-m v-model="ruleForm.idCard" />
112
- </e-form-item-m>
113
- <e-form-item-m label="主办人手机号码" prop="phone">
114
- <e-input-m v-model="ruleForm.phone" />
115
- </e-form-item-m>
116
- <e-form-item-m label="地址" prop="address">
117
- <e-input-m v-model="ruleForm.address" />
118
- </e-form-item-m>
119
- <e-form-item-m label="社会信用代码" prop="creditCode">
120
- <e-input-m v-model="ruleForm.creditCode" />
121
- </e-form-item-m>
122
- <e-form-item-m label="邮编" prop="postCode">
123
- <e-input-m v-model="ruleForm.postCode" />
124
- </e-form-item-m>
125
- <e-form-item-m label="爱好" prop="hobby">
126
- <e-input-m v-model="ruleForm.hobby" />
127
- </e-form-item-m>
128
- <e-form-item-m>
129
- <e-button-m type="primary" @click="submitForm(ruleFormRef)">创建</e-button-m>
130
- <e-button-m type="primary" @click="quicklyValidate(ruleFormRef)">快速验证</e-button-m>
131
- <e-button-m @click="resetForm(ruleFormRef)">重置</e-button-m>
132
- </e-form-item-m>
133
- </e-form-m>
134
- </template>
135
-
136
- <script lang="ts" setup>
137
- import { reactive, ref } from 'vue';
138
- import { type FormRules, type FormInstance } from '@epoint-mfe/eui-components';
139
-
140
- const ruleFormRef = ref<FormInstance>(); // 表单引用
141
- const ruleForm = reactive({
142
- name: 'Hello', // 活动名称
143
- date1: '', // 活动日期
144
- date2: '', // 活动时间
145
- delivery: false, // 即时交付
146
- type: [], // 活动类型
147
- resource: '', // 资源
148
- desc: '', // 活动形式
149
- idCard: '', // 主办人身份证号码
150
- phone: '', // 主办人身份证号码
151
- address: '',
152
- creditCode: '',
153
- postCode: '',
154
- hobby: ''
155
- });
156
- const rules = reactive<FormRules>({
157
- name: [
158
- {
159
- validator: (v, opt) => {
160
- console.log(v, opt);
161
- if (v.length >= 3 && v.length <= 5) {
162
- return true;
163
- }
164
- return new Error('长度应为3至5个字符');
165
- },
166
- required: false,
167
- trigger: 'blur'
168
- }
169
- ],
170
- date1: [{ required: true, type: 'date', message: '请选择日期', trigger: 'change' }],
171
- date2: [{ required: true, type: 'date', message: '请选择时间', trigger: 'change' }],
172
- type: [
173
- {
174
- required: true,
175
- message: '请至少选择一个活动类型',
176
- trigger: 'change'
177
- }
178
- ],
179
- resource: [
180
- {
181
- required: true,
182
- message: '请选择活动资源',
183
- trigger: 'change'
184
- }
185
- ],
186
- desc: [{ required: true, message: '请输入活动形式', trigger: 'blur' }],
187
- idCard: [{ type: 'idCard', required: true, message: '必须是身份证格式', trigger: 'blur' }],
188
- phone: [{ required: true }, { type: 'phone' }],
189
- address: [{ type: 'string', required: true, min: 10, trigger: 'blur' }],
190
- creditCode: [{ type: 'creditCode', required: true, min: 10, trigger: 'blur' }],
191
- postCode: [{ type: 'postCode', required: true, min: 10, trigger: 'blur' }],
192
- hobby: [{ type: 'enum', enums: ['读书', '音乐', '写代码'], trigger: 'blur' }]
193
- });
194
- const submitForm = async (formEl: FormInstance | undefined) => {
195
- if (!formEl) return;
196
- await formEl.validate((valid, fields) => {
197
- if (valid) {
198
- console.log('提交成功!');
199
- } else {
200
- console.log('提交失败!', fields);
201
- }
202
- });
203
- };
204
- const quicklyValidate = async (formEl: FormInstance | undefined) => {
205
- if (!formEl) return;
206
- await formEl.fastValidate((valid, fields) => {
207
- if (valid) {
208
- console.log('验证成功!');
209
- } else {
210
- console.log('验证失败!', fields);
211
- }
212
- });
213
- };
214
- const resetForm = (formEl: FormInstance | undefined) => {
215
- if (!formEl) return;
216
- formEl.resetFields();
217
- };
218
- </script>
219
- ```
220
-
221
- #### 注意
222
-
223
- 1. 控件的 model 必须和表单的 model 一致。表单验证是基于表单的 model 进行的,所以表单项的 model 必须和表单的 model 一致。也就是说,下面这样的代码是不合法的:
224
-
225
- ```html
226
- <e-form-m v-model="formDataA">
227
- <e-form-item-m
228
- label="name"
229
- prop="name"
230
- :rules="[{ required: true, message: '请输入姓名' }, { type: 'string', min: 2, max: 5, message: '长度必须在 2 到 5 个字符之间' }]"
231
- >
232
- <e-input-m v-model="formDataB.name" />
233
- </e-form-item-m>
234
- </e-form-m>
235
- <e-form-m v-model="formDataB">
236
- <!-- 代码省略 -->
237
- </e-form-m>
238
- ```
239
-
240
- 2. 必填规则比较常用,因此我们提供了简写的形式,即在内置规则上都可以额外加上 `required` 属性来表示必填,如: `{type: 'idCard', required: true, message: '请输入身份证号码'}` 。但是这种情况下,必填验证和内置的格式验证将会使用统一的验证错误信息提示。如果你需要针对必填和格式验证使用不同的错误信息提示,则不能使用这种简写的形式, 需要将其拆分为单独的验证规则,可参考下面的代码示例或上方的示例中的 phone 验证规则。
241
-
242
- ```js
243
- [
244
- { type: 'required', message: '请输入身份证号码' }, // 等价 { required: true, message: '请输入身份证号码' },
245
- { type: 'idCard', message: '请输入正确的身份证号码' }
246
- ];
247
- ```
248
-
249
- ## 自定义验证规则
250
-
251
- 此示例演示如何自定义自己的验证规则以完成双因素密码验证。
252
-
253
- 这里我们使用 `status-icon` 来反映验证结果,显示为图标。
254
-
255
- 你可以在验证规则上通过 `validator` 来自定义验证函数。 函数必须具有显式返回值,返回值可以是 `boolean` `Error` `Promise<boolean>` `Promise<Error>` 之一。
256
-
257
- 异步验证验证返回 `Promise` 的情况下,请始终使用 `resolve` 返回结果,包括验证失败的情况。
258
-
259
- ```html
260
- <template>
261
- <e-form-m ref="ruleFormRef2" :model="ruleForm2" status-icon :rules="rules2" label-width="120px">
262
- <e-form-item-m label="密码" prop="pass">
263
- <e-input-m v-model="ruleForm2.pass" type="password" autocomplete="off" show-password />
264
- </e-form-item-m>
265
- <e-form-item-m label="再次输入密码" prop="checkPass">
266
- <e-input-m v-model="ruleForm2.checkPass" type="password" autocomplete="off" show-password />
267
- </e-form-item-m>
268
- <e-form-item-m label="年龄" prop="age">
269
- <e-input-m v-model.number="ruleForm2.age" />
270
- </e-form-item-m>
271
- <e-form-item-m>
272
- <e-button-m type="primary" @click="submitForm(ruleFormRef2)">Submit</e-button-m>
273
- <e-button-m @click="resetForm(ruleFormRef2)">Reset</e-button-m>
274
- </e-form-item-m>
275
- </e-form-m>
276
- </template>
277
-
278
- <script lang="ts" setup>
279
- import { reactive, ref } from 'vue';
280
- import { type FormRules, type FormInstance } from '@epoint-mfe/eui-components';
281
-
282
- const ruleFormRef2 = ref<FormInstance>();
283
- const ruleForm2 = reactive({
284
- pass: '',
285
- checkPass: '',
286
- age: ''
287
- });
288
- const checkAge = (value: any, rule: any) => {
289
- if (!value) {
290
- return new Error('请输入年龄');
291
- }
292
- return new Promise((resolve) => {
293
- setTimeout(() => {
294
- if (!Number.isInteger(value)) {
295
- resolve(new Error('年龄只能是数字'));
296
- } else {
297
- if (value < 18) {
298
- resolve(new Error('年龄必须大于18'));
299
- } else {
300
- resolve(true);
301
- }
302
- }
303
- }, 1000);
304
- });
305
- };
306
- const validatePwd = (
307
- pwd: string,
308
- options: {
309
- minLength: number;
310
- requireCombo: number;
311
- hasNumber: boolean;
312
- hasLowerCase: boolean;
313
- hasUpperCase: boolean;
314
- hasSymbol: boolean;
315
- }
316
- ) => {
317
- const { minLength, requireCombo, hasNumber, hasLowerCase, hasUpperCase, hasSymbol } = options;
318
- if (pwd.length < minLength) return false;
319
-
320
- let criteriaMet = 0;
321
- if (hasNumber && /\d/.test(pwd)) criteriaMet++;
322
- if (hasLowerCase && /[a-z]/.test(pwd)) criteriaMet++;
323
- if (hasUpperCase && /[A-Z]/.test(pwd)) criteriaMet++;
324
- if (hasSymbol && /[^a-zA-Z0-9]/.test(pwd)) criteriaMet++;
325
-
326
- return criteriaMet >= requireCombo;
327
- };
328
- function defaultPwdRule(pwd: string) {
329
- const ok = validatePwd(pwd, {
330
- minLength: 8,
331
- requireCombo: 3,
332
- hasNumber: true,
333
- hasLowerCase: true,
334
- hasUpperCase: true,
335
- hasSymbol: true
336
- });
337
- return {
338
- isValid: ok,
339
- message: ok ? '' : '密码最短需要8个字符, 至少包含 (大写字母, 小写字母, 数字, 符号) 中的3种'
340
- };
341
- }
342
- const validatePass = (value: any, rule: any) => {
343
- if (value === '') {
344
- return new Error('请输入密码');
345
- } else {
346
- const { isValid, message } = defaultPwdRule(value);
347
- return isValid ? true : new Error(message);
348
- }
349
- };
350
- const validatePass2 = (value: any, rule: any, callback: any) => {
351
- if (value === '') {
352
- return new Error('请再次输入密码进行确认');
353
- } else if (value !== ruleForm2.pass) {
354
- return new Error('两次的密码不一致');
355
- } else {
356
- return true;
357
- }
358
- };
359
- const rules2 = reactive<FormRules>({
360
- pass: [{ validator: validatePass, trigger: 'blur' }],
361
- checkPass: [{ validator: validatePass2, trigger: 'blur' }],
362
- age: [{ validator: checkAge, trigger: 'blur' }]
363
- });
364
- const submitForm = async (formEl: FormInstance | undefined) => {
365
- if (!formEl) return;
366
- await formEl.validate((valid, fields) => {
367
- if (valid) {
368
- console.log('提交成功!');
369
- } else {
370
- console.log('提交失败!', fields);
371
- }
372
- });
373
- };
374
- const resetForm = (formEl: FormInstance | undefined) => {
375
- if (!formEl) return;
376
- formEl.resetFields();
377
- };
378
- </script>
379
- ```
380
-
381
- ## 添加/删除表单项
382
-
383
- 除了一次性在表单组件上传递所有验证规则,还可以在单个表单字段上动态传递验证规则或删除规则。
384
-
385
- ```html
386
- <template>
387
- <e-form-m ref="formRef" :model="dynamicValidateForm" label-width="120px">
388
- <e-form-item-m
389
- prop="email"
390
- label="电子邮件"
391
- :rules="[
392
- {
393
- required: true,
394
- message: '请输入电子邮件地址',
395
- trigger: 'blur'
396
- },
397
- {
398
- type: 'email',
399
- message: '请输入正确的电子邮件地址',
400
- trigger: ['blur', 'change']
401
- }
402
- ]"
403
- >
404
- <e-input-m v-model="dynamicValidateForm.email" />
405
- </e-form-item-m>
406
- <e-form-item-m
407
- v-for="(domain, index) in dynamicValidateForm.domains"
408
- :key="domain.key"
409
- :label="'域名' + (index + 1)"
410
- :prop="'domains.' + index + '.value'"
411
- :rules="{
412
- required: true,
413
- message: '域名不能为空',
414
- trigger: 'blur'
415
- }"
416
- >
417
- <e-input-m v-model="domain.value" />
418
- <e-button-m class="mt-2" @click="removeDomain(domain)">删除</e-button-m>
419
- </e-form-item-m>
420
- <e-form-item-m>
421
- <e-button-m type="primary" @click="submitForm(formRef)">提交</e-button-m>
422
- <e-button-m @click="addDomain">新增域名</e-button-m>
423
- <e-button-m @click="resetForm(formRef)">重置</e-button-m>
424
- </e-form-item-m>
425
- </e-form-m>
426
- </template>
427
-
428
- <script lang="ts" setup>
429
- import { ref, reactive } from 'vue';
430
- import { type FormInstance } from '@epoint-mfe/eui-components';
431
-
432
- interface DomainItem {
433
- key: number;
434
- value: string;
435
- }
436
-
437
- const formRef = ref<FormInstance>();
438
- const dynamicValidateForm = reactive<{
439
- domains: DomainItem[];
440
- email: string;
441
- }>({
442
- domains: [
443
- {
444
- key: 1,
445
- value: ''
446
- }
447
- ],
448
- email: ''
449
- });
450
- const removeDomain = (item: DomainItem) => {
451
- const index = dynamicValidateForm.domains.indexOf(item);
452
- if (index !== -1) {
453
- dynamicValidateForm.domains.splice(index, 1);
454
- }
455
- };
456
- const addDomain = () => {
457
- dynamicValidateForm.domains.push({
458
- key: Date.now(),
459
- value: ''
460
- });
461
- };
462
- const submitForm = async (formEl: FormInstance | undefined) => {
463
- if (!formEl) return;
464
- await formEl.validate((valid, fields) => {
465
- if (valid) {
466
- console.log('提交成功!');
467
- } else {
468
- console.log('提交失败!', fields);
469
- }
470
- });
471
- };
472
- const resetForm = (formEl: FormInstance | undefined) => {
473
- if (!formEl) return;
474
- formEl.resetFields();
475
- };
476
- </script>
477
- ```
478
-
479
- ## 数值验证
480
-
481
- 数值验证需要在输入框的 `v-model` 绑定上添加 `.number` 修饰符,用于将字符串值转换为由 `Vue` 提供的数字。
482
-
483
- ```html
484
- <template>
485
- <e-form-m ref="formRef1" :model="numberValidateForm" label-width="100px">
486
- <e-form-item-m
487
- label="年龄"
488
- prop="age"
489
- :rules="[
490
- { required: true, message: '年龄是必填项' },
491
- { type: 'number', message: '年龄必须是数字' }
492
- ]"
493
- >
494
- <e-input-m v-model.number="numberValidateForm.age" type="text" autocomplete="off" />
495
- </e-form-item-m>
496
- <e-form-item-m>
497
- <e-button-m type="primary" @click="submitForm(formRef1)">提交</e-button-m>
498
- <e-button-m @click="resetForm(formRef1)">重置</e-button-m>
499
- </e-form-item-m>
500
- </e-form-m>
501
- </template>
502
-
503
- <script lang="ts" setup>
504
- import { reactive, ref } from 'vue';
505
- import type { FormInstance } from '@epoint-fe/eui-components';
506
-
507
- const formRef1 = ref<FormInstance>();
508
- const numberValidateForm = reactive({
509
- age: ''
510
- });
511
-
512
- const submitForm = async (formEl: FormInstance | undefined) => {
513
- if (!formEl) return;
514
- await formEl.validate((valid, fields) => {
515
- if (valid) {
516
- console.log('提交成功!');
517
- } else {
518
- console.log('提交失败!', fields);
519
- }
520
- });
521
- };
522
- const resetForm = (formEl: FormInstance | undefined) => {
523
- if (!formEl) return;
524
- formEl.resetFields();
525
- };
526
- </script>
527
- ```
528
-
529
- ## 尺寸、对齐方式及风格控制
530
-
531
- 表单中的所有组件都从该表单继承其 `size` 属性。同样,`FormItem` 也有一个 `size` 属性。尽管如此,如果您不希望组件从 `Form` 或 `FormItem` 继承其尺寸,仍然可以微调每个组件的 `size`。
532
-
533
- 可通过 `label-position` 控制表单标签的对齐方式,可选值 `left`、`right`、`top`。
534
-
535
- 当`label-position`与输入框横向对齐时,可通过 `value-position`控制输入框的对齐方式,可选值`left`、`right`。
536
-
537
- 表单默认为圆角卡片风格,可通过 `round` 设为 `false` 切换为直角风格。
538
-
539
- ```html
540
- <template>
541
- <div class="toolbar-box">
542
- <e-radio-group-m v-model="size" label="尺寸控制">
543
- <e-radio-button-m value="large">大尺寸</e-radio-button-m>
544
- <e-radio-button-m value="default">默认尺寸</e-radio-button-m>
545
- <e-radio-button-m value="small">小尺寸</e-radio-button-m>
546
- </e-radio-group-m>
547
- <e-radio-group-m v-model="labelPosition" label="标签位置控制">
548
- <e-radio-button-m value="left">label左侧</e-radio-button-m>
549
- <e-radio-button-m value="right">label右侧</e-radio-button-m>
550
- <e-radio-button-m value="top">label顶部</e-radio-button-m>
551
- </e-radio-group-m>
552
- <e-radio-group-m v-if="labelPosition !== 'top'" v-model="valuePosition" label="输入框位置控制">
553
- <e-radio-button-m value="left">value左侧</e-radio-button-m>
554
- <e-radio-button-m value="right">value右侧</e-radio-button-m>
555
- </e-radio-group-m>
556
- <text class="mx-1">圆角卡片</text>
557
- <e-switch-m v-model="round" />
558
- </div>
559
- <br />
560
- <e-form-m
561
- ref="form"
562
- :model="sizeForm"
563
- label-width="100px"
564
- :round="round"
565
- :label-position="labelPosition"
566
- :value-position="valuePosition"
567
- :size="size"
568
- >
569
- <e-form-item-m prop="name" label="活动名称" :rules="[{ required: true, message: '这是必填项' }]">
570
- <e-input-m v-model="sizeForm.name" placeholder="请输入活动名称" />
571
- </e-form-item-m>
572
- <e-form-item-m label="活动形式">
573
- <e-input-m v-model="sizeForm.desc" type="textarea" />
574
- </e-form-item-m>
575
- <e-form-item-m label="活动时间">
576
- <em-col :span="11">
577
- <e-date-picker-m
578
- v-model="sizeForm.date1"
579
- type="date"
580
- label="选择日期"
581
- placeholder="选择日期"
582
- style="width: 100%"
583
- />
584
- </em-col>
585
- <em-col class="text-center" :span="1" style="margin: 0 0.5rem">-</em-col>
586
- <em-col :span="11">
587
- <e-date-picker-m
588
- v-model="sizeForm.date2"
589
- type="date"
590
- label="选择时间"
591
- placeholder="选择时间"
592
- style="width: 100%"
593
- />
594
- </em-col>
595
- </e-form-item-m>
596
- <e-form-item-m label="活动类型">
597
- <e-checkbox-group-m v-model="sizeForm.type">
598
- <e-checkbox-m value="线上活动" label="线上活动" name="type" />
599
- <e-checkbox-m value="促销活动" label="促销活动" name="type" />
600
- </e-checkbox-group-m>
601
- </e-form-item-m>
602
- <e-form-item-m label="即时交付" prop="delivery">
603
- <e-switch-m v-model="sizeForm.delivery" />
604
- </e-form-item-m>
605
- <e-form-item-m label="资源">
606
- <e-radio-group-m v-model="sizeForm.resource">
607
- <e-radio-m value="赞助商" label="赞助商" />
608
- <e-radio-m value="场馆" label="场馆" />
609
- </e-radio-group-m>
610
- </e-form-item-m>
611
- <e-form-item-m>
612
- <e-button-m type="primary" @click="onSubmit(sizeForm)">创建</e-button-m>
613
- <e-button-m>取消</e-button-m>
614
- </e-form-item-m>
615
- </e-form-m>
616
- </template>
617
-
618
- <script lang="ts" setup>
619
- import { reactive, ref } from 'vue';
620
-
621
- const size = ref('default');
622
- const labelPosition = ref('left');
623
- const valuePosition = ref('left');
624
- const round = ref<boolean>(true);
625
- const sizeForm = reactive({
626
- name: '',
627
- desc: '',
628
- date1: '',
629
- date2: '',
630
- delivery: false,
631
- type: [],
632
- resource: ''
633
- });
634
- const onSubmit = (form) => {
635
- console.log(form, 'form');
636
- };
637
- </script>
638
- ```
639
-
640
- ## 帮助提示
641
-
642
- `label-tooltip`​(label 区域的悬浮帮助提示)、​`tooltip`​(控件区域的悬浮帮助提示)用于设置表单项的帮助信息; `top`插槽用于在表单项上方添加始终可见的辅助说明文本;`extra`插槽用于在表单项下方添加始终可见的辅助说明文本。
643
-
644
- ```html
645
- <template>
646
- <e-form-m :model="formTooltip" label-width="120px">
647
- <e-form-item-m label="活动名称" label-tooltip="帮助提示:请输入活动名称">
648
- <e-input-m v-model="formTooltip.name" placeholder="请输入活动名称" />
649
- </e-form-item-m>
650
- <e-form-item-m
651
- label="活动时间"
652
- :label-tooltip="{
653
- content: '帮助提示:<span style=\'color:var(--e-color-danger)\'>请选择日期</span>',
654
- rawContent: true
655
- }"
656
- >
657
- <em-col :span="11">
658
- <e-date-picker-m v-model="formTooltip.date1" type="date" placeholder="选择日期" style="width: 100%" />
659
- </em-col>
660
- <em-col :span="2" class="text-center">
661
- <span class="text-gray-500">-</span>
662
- </em-col>
663
- <em-col :span="11">
664
- <e-date-picker-m v-model="formTooltip.date2" type="date" placeholder="选择日期" style="width: 100%" />
665
- </em-col>
666
- </e-form-item-m>
667
- <e-form-item-m label="活动类型" tooltip="帮助提示:请选择活动类型">
668
- <e-checkbox-group-m v-model="formTooltip.type">
669
- <e-checkbox-m value="线上活动" label="线上活动" name="type" />
670
- <e-checkbox-m value="促销活动" label="促销活动" name="type" />
671
- </e-checkbox-group-m>
672
- </e-form-item-m>
673
- <e-form-item-m label="活动说明">
674
- <template #top>
675
- <e-alert-m
676
- title="提示信息"
677
- type="primary"
678
- show-icon
679
- :closable="false"
680
- style="margin-bottom: 12px; padding: 8px 12px"
681
- />
682
- </template>
683
- <e-input-m v-model="formTooltip.desc" type="textarea" />
684
- <template #extra>
685
- <span>请填写活动的详细说明,不少于10个字符</span>
686
- </template>
687
- </e-form-item-m>
688
- <e-form-item-m>
689
- <e-button-m type="primary" @click="onSubmit(formTooltip)">创建</e-button-m>
690
- <e-button-m>取消</e-button-m>
691
- </e-form-item-m>
692
- </e-form-m>
693
- </template>
694
- <script lang="ts" setup>
695
- import { reactive } from 'vue';
696
-
697
- const formTooltip = reactive({
698
- name: '',
699
- date1: '',
700
- date2: '',
701
- type: [],
702
- desc: ''
703
- });
704
- const onSubmit = (form) => {
705
- console.log(form, 'form');
706
- };
707
- </script>
708
- ```
709
-
710
- ## 数据脱敏的表单提交
711
-
712
- 由于数据脱敏的特殊性,首次进入编辑时,需要全部重新录入。未保存前,用户在页面的编辑需要脱敏展示的同时需要保留真实值,表单提交时需要对脱敏数据进行处理,也就是脱敏的内容知道当前是否保存过,提供以下两种处理方式:
713
-
714
- 1. 自己提交数据,手动更新表单状态。
715
-
716
- 2. 将提交数据的逻辑放在表单内部,表单内进行提交请求的发起,内部会自动处理状态逻辑。
717
-
718
- ### 外部手动提交
719
-
720
- 在表单外进行数据提交时,调用 `getCleanData` 获取未设置脱敏、脱敏已修改、未设置只读的数据,在提交成功后需调用 `resetEditStatus` 重置脱敏项的修改状态。
721
-
722
- ```html
723
- <template>
724
- <e-form-m ref="formRef2" :model="formData" :rules="formRules">
725
- <e-form-item-m prop="testtext" label="测试" label-width="120px" :divider="false">
726
- <e-input-m v-model="formData.testtext" placeholder="请输入" :desensitization-type="''" />
727
- </e-form-item-m>
728
- <e-divider-m content-position="right">以下为敏感数据,已脱敏</e-divider-m>
729
- <e-form-item-m prop="name" label="姓名" label-width="120px">
730
- <e-input-m v-model="formData.name" placeholder="请输入" :desensitization-type="DESENDATATYPE_CHINESE_NAME" />
731
- </e-form-item-m>
732
- <e-form-item-m prop="address" label="地址(只读)" label-width="120px" :divider="false">
733
- <e-input-m v-model="formData.address" placeholder="请输入" readonly />
734
- </e-form-item-m>
735
- <em-row>
736
- <em-col :span="4" style="margin-left: 131px">
737
- <e-button-m type="primary" @click="submit">提交</e-button-m>
738
- </em-col>
739
- </em-row>
740
- </e-form-m>
741
- </template>
742
- <script lang="ts" setup>
743
- import { reactive, ref } from 'vue';
744
- import {
745
- DESENDATATYPE_CHINESE_NAME,
746
- type FormRules,
747
- type FormInstance,
748
- type SubmitRequestOptions,
749
- type ValidateFieldsError
750
- } from '@epoint-mfe/eui-components';
751
-
752
- const formRef2 = ref();
753
- const formData = reactive({
754
- testtext: '测试校验文本',
755
- name: '张三',
756
- address: '张家港市港城大道'
757
- });
758
- const formRules = reactive<FormRules>({
759
- testtext: [
760
- {
761
- type: 'string',
762
- required: true,
763
- message: '请输入',
764
- trigger: 'change'
765
- }
766
- ],
767
- name: [
768
- {
769
- type: 'string',
770
- required: true,
771
- message: '请输入',
772
- trigger: 'change'
773
- }
774
- ]
775
- });
776
- const submit = async () => {
777
- // 走表单验证
778
- const validateRes = await formRef2.value.validate((valid, fields) => {
779
- if (!valid) {
780
- // 处理错误信息
781
- ejs.ui.toast(`表单验证失败,错误字段:${Object.keys(fields).join('、')}`);
782
-
783
- return;
784
- }
785
- });
786
-
787
- // 验证未通过
788
- if (!validateRes) {
789
- return;
790
- }
791
-
792
- // 通过getCleanData 获取无需脱敏数据+脱敏已修改数据
793
- const data = formRef2.value.getCleanData();
794
-
795
- console.log('提交数据', data);
796
-
797
- Util.ajax({
798
- url: location.href,
799
- data
800
- })
801
- .then((res) => {
802
- ejs.ui.toast('提交成功');
803
-
804
- // 重置表单内脱敏项的已修改情况,避免重复提交
805
- formRef2.value.resetEditState();
806
- })
807
- .catch((err) => {
808
- console.error(`提交失败 ${JSON.stringify(err)}`);
809
- });
810
- };
811
- </script>
812
- ```
813
-
814
- ### 内部提交
815
-
816
- 使用表单内部能力进行提交,包含脱敏数据处理。
817
-
818
- ```html
819
- <template>
820
- <e-form-m
821
- ref="formRef3"
822
- :model="formData3"
823
- :rules="formRules3"
824
- :submit-url="submitUrl"
825
- :submit-request-options="submitRequestOptions"
826
- >
827
- <e-form-item-m prop="testtext" label="测试" label-width="120px" :divider="false">
828
- <e-input-m v-model="formData3.testtext" placeholder="请输入" :desensitization-type="''" />
829
- </e-form-item-m>
830
-
831
- <e-divider-m content-position="right">以下为敏感数据,已脱敏</e-divider-m>
832
- <e-form-item-m prop="name" label="姓名" label-width="120px">
833
- <e-input-m
834
- v-model="formData3.name"
835
- placeholder="请输入"
836
- :desensitization-type="DESENDATATYPE_CHINESE_NAME"
837
- />
838
- </e-form-item-m>
839
- <e-form-item-m prop="address" label="地址(只读)" label-width="120px" :divider="false">
840
- <e-input-m v-model="formData3.address" placeholder="请输入" readonly />
841
- </e-form-item-m>
842
- <em-row>
843
- <em-col :span="6" style="margin-left: 131px">
844
- <e-button-m type="primary" @click="submit3">提交</e-button-m>
845
- </em-col>
846
- </em-row>
847
- </e-form-m>
848
- </template>
849
- <script lang="ts" setup>
850
- import { reactive, ref } from 'vue';
851
- import {
852
- DESENDATATYPE_CHINESE_NAME,
853
- type FormRules,
854
- type FormInstance,
855
- type SubmitRequestOptions,
856
- type ValidateFieldsError
857
- } from '@epoint-mfe/eui-components';
858
-
859
- const formRef3 = ref();
860
- const formData3 = reactive({
861
- testtext: '测试必填文本',
862
- name: '张三',
863
- address: '张家港市港城大道'
864
- });
865
- const formRules3 = reactive<FormRules>({
866
- testtext: [
867
- {
868
- type: 'string',
869
- required: true,
870
- message: '请输入',
871
- trigger: 'change'
872
- }
873
- ],
874
- name: [
875
- {
876
- type: 'string',
877
- required: true,
878
- message: '请输入',
879
- trigger: 'change'
880
- }
881
- ]
882
- });
883
-
884
- // 表单请求配置
885
- const submitUrl = ref(location.href);
886
- const submitRequestOptions: Partial<SubmitRequestOptions> = {
887
- method: 'get',
888
- headers: {
889
- 'Content-Type': 'application/json;charset=UTF-8',
890
- 'with-test-falg': '1'
891
- },
892
- withCredentials: false,
893
- getRequestData: (data: Record<string, any>) => {
894
- console.log('提交数据', data);
895
- ejs.ui.toast(`提交数据: ${JSON.stringify(data)}`);
896
-
897
- return data;
898
- },
899
- validateErrorHandler: (fields: ValidateFieldsError): void => {
900
- ejs.ui.toast(`表单验证失败,错误字段:${Object.keys(fields).join('、')}`);
901
- },
902
- onSuccess: (response: any): void => {
903
- ejs.ui.toast('提交成功');
904
- }
905
- };
906
- // 表单提交
907
- const submit3 = () => {
908
- // 表单提交
909
- formRef3.value.submit();
910
- };
911
- </script>
912
- ```
913
-
914
- ## Form API
915
-
916
- ### Form Attributes
917
-
918
- | 名称 | 描述 | 类型 | 默认值 |
919
- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------- |
920
- | model | 表单组件的数据。 | `object`-`Record<string, any>` | — |
921
- | rules | 表单的验证规则。 | `object`-`FormRules` | — |
922
- | label-position | 标签的位置。如果设置为 `'left'` 或 `'right'`,还需要 `label-width` 属性。 | `enum`-`'left' \| 'right' \| 'top'` | top |
923
- | label-width | 标签的宽度,例如 `'50px'`。其所有直接子表单项都将继承此值。支持 `auto`。 | `string` / `number` | — |
924
- | label-suffix | 标签的后缀。 | `string` | — |
925
- | value-position | label 和输入框横向展示时,输入框的位置。 | `enum`-`'left' \| 'right'` | left |
926
- | round | 表单是否展示为圆角卡片风格 | `boolean` | true |
927
- | hide-required-asterisk | 是否隐藏标签旁边的红色星号,表示必填字段。 | `boolean` | false |
928
- | require-asterisk-position | 星号的位置。 | `enum`-`'left' \| 'right'` | left |
929
- | show-message | 是否显示错误消息。 | `boolean` | true |
930
- | error-message | 从表单上按验证类型配置统一的错误提示信息 | `object`-`Record<string, string>` | null |
931
- | status-icon | 是否显示表示验证结果的图标。 | `boolean` | false |
932
- | validate-on-rule-change | 当 `rules` 属性更改时,是否触发验证。 | `boolean` | true |
933
- | size | 控制此表单中组件的大小。 | `enum`-`'large' \| 'default' \| 'small'` | — |
934
- | disabled | 是否禁用此表单中的所有组件。如果设置为 `true`,它将覆盖内部组件的 `disabled` 属性。 | `boolean` | false |
935
- | scroll-to-error | 验证失败时,滚动到第一个错误表单项。 | `boolean` | false |
936
- | scroll-into-view-options | 验证失败时,根据 scrollIntoView 选项滚动到第一个错误项。[scrollIntoView](https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView)。 | `object` / `boolean` | — |
937
- | submit-url | 请求的 Url 地址 | `string` | `#` |
938
- | submit-request-options | 请求配置,参考下面的表格 | `SubmitRequestOptions` | — |
939
- | submit-http-request | 覆盖默认的 xhr 行为,允许你实现自己的上传文件请求。FormRequestOptions | `(options: FormRequestOptions) => XMLHttpRequest \| Promise<unknown>` | `Util.ajax` |
940
-
941
- #### error-message 说明
942
-
943
- `error-message` 用于统一配置表单上的错误提示信息,key 为验证类型,value 为错误提示信息,下面是一个示例:
944
-
945
- <!-- eslint-skip -->
946
-
947
- ```js
948
- {
949
- required: '这是必填字段',
950
- number: '请输入数字值'
951
- }
952
- ```
953
-
954
- 这个配置将会自动和语言包中的错误提示信息合并,如果有相同的 key,将会覆盖语言包中的错误提示信息。
955
-
956
- 语言包中默认提示信息如下:
957
-
958
- <!-- eslint-skip -->
959
-
960
- ```js
961
- {
962
- /**
963
- * 支持的占位符
964
- * - name: 文本类型,FormItem 里面的文字,没有时降级为 filed
965
- * - filed: 文本类型,FormItem 所关联的prop值
966
- * - value: 任意类型,当前 FormItem 的值
967
- * - ...: 其他所有来自 验证规则的字段,如 type、min、max、enums 等
968
- */
969
- _validateRuntime: '验证过程中出错了:',
970
- required: '${name}必填',
971
- whitespace: '${name}不能是空白',
972
- boolean: '${name}数据类型必须是布尔类型',
973
- number: '${name}必须是数字',
974
- string: '${name}必须是字符串',
975
- enum: '${name}只能是${enums}等',
976
- date: '请输入正确的${name},必须是日期',
977
- url: '请输入正确的${name},必须是url格式',
978
- email: '请输入正确的${name},必须是邮箱格式',
979
- idCard:
980
- '输入的身份证号码格式不正确,若最后一位为“X”则只允许输入大写的“X”',
981
- hkIdCard: '输入的香港身份证号码格式不正确',
982
- orgCode: '输入的组织机构代码格式不正确',
983
- creditCode: '输入的统一社会信用代码格式不正确',
984
- postCode: '输入的邮政编码格式不正确',
985
- pattern: '请输入正确的${name}',
986
- }
987
- ```
988
-
989
- #### SubmitRequestOptions 说明
990
-
991
- 表单属性,请求入参配置
992
-
993
- | Name | Description | Type | Default |
994
- | -------------------- | ----------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------- |
995
- | method | 设置上传请求的方法 | `string` | post |
996
- | headers | 请求头部信息 | `Headers \| Record<string, any>` | {} |
997
- | withCredentials | 是否发送 cookies | `boolean` | false |
998
- | getRequestData | 获取请求 data 入参,入参为 getCleanData 获取数据 | `(cleanData: Record<string, any) => Record<string, any>` | `(cleanData) => { return { params: JSON.stringify(cleanData) }; }` |
999
- | validateErrorHandler | 表单验证错误处理 | `(fields: ValidateFieldsError) => void` | `(fields) => { fields && EpMessage.warning('表单校验未通过,请检查表单字段填写情况'); }` |
1000
- | onSuccess | 上传成功时的钩子函数 | `(response: any) => void` | `(res) => { EpMessage.error('提交成功'); }` |
1001
- | onError | 发生错误时的钩子函数 | `(error: Error) => void` | `(err) => { EpMessage.error('提交失败'); }` |
1002
-
1003
- #### FormRequestOptions 说明
1004
-
1005
- 请求方法,入参参考
1006
-
1007
- | Name | Description | Type |
1008
- | -------------------- | -------------------- | --------------------------------------- |
1009
- | action | 请求地址 | `string` |
1010
- | method | 设置上传请求的方法 | `string` |
1011
- | headers | 请求头部信息 | `Headers \| Record<string, any>` |
1012
- | withCredentials | 是否发送 cookies | `boolean` |
1013
- | data | 请求数据 | `Record<string, any>` |
1014
- | validateErrorHandler | 表单验证错误处理 | `(fields: ValidateFieldsError) => void` |
1015
- | onSuccess | 上传成功时的钩子函数 | `(response: any) => void` |
1016
- | onError | 发生错误时的钩子函数 | `(error: Error) => void` |
1017
-
1018
- ### Form Events
1019
-
1020
- | Name | Description | Type |
1021
- | -------- | -------------------- | ----------------------------------------------------------------------------- |
1022
- | validate | 在验证表单项后触发。 | `Function`- `(prop: FormItemProp, isValid: boolean, message: string) => void` |
1023
-
1024
- ### Form Exposes
1025
-
1026
- | Name | Description | Type |
1027
- | -------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
1028
- | validate | 验证整个表单。接受回调函数或返回 `Promise`。 | `Function` - `(callback?: (isValid: boolean, invalidFields?: ValidateFieldsError) => void) => Promise<void>` |
1029
- | fastValidate | 快速验证整个表单(第一个字段验证失败就立即返回)。接受回调函数或返回 `Promise`。 | `Function` - `(callback?: (isValid: boolean, invalidFields?: ValidateFieldsError) => void) => Promise<void>` |
1030
- | validateField | 验证指定字段。 | `Function` - `(props?: FormItemProp \| FormItemProp[], callback?: (isValid: boolean, invalidFields?: ValidateFieldsError) => void) => Promise<void>` |
1031
- | resetFields | 重置指定字段并移除验证结果。 | `Function` - `(props?: FormItemProp \| FormItemProp[]) => void` |
1032
- | scrollToField | 滚动到指定字段。 | `Function` - `(prop: FormItemProp) => void` |
1033
- | clearValidate | 清除指定字段的验证消息。 | `Function` - `(props?: FormItemProp \| FormItemProp[]) => void` |
1034
- | getCleanData | 获得无需脱敏、脱敏已修改、未设置只读的数据集合。 | `Function` - `() => Record<string, any>` |
1035
- | resetEditState | 重置其下脱敏组件的修改状态。 | `Function` - `() => void` |
1036
- | submit | 表单提交。 | `Function` - `() => void` |
1037
-
1038
- ### Form Slots
1039
-
1040
- | Name | Description | Subtags |
1041
- | ------- | -------------- | -------- |
1042
- | default | 自定义默认内容 | FormItem |
1043
-
1044
- ## FormItem API
1045
-
1046
- ### FormItem Attributes
1047
-
1048
- | Name | Description | Type | Default |
1049
- | --------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------- |
1050
- | prop | `model` 的键。它可以是一个属性路径的数组(例如 `['a', 'b', 0]`)。在使用 `validate` 和 `resetFields` 方法时,该属性是必需的。 | `string` / `string[]` | — |
1051
- | label | 标签文本。 | `string` | — |
1052
- | label-position | 标签的位置。如果设置为 'left' 或 'right',还需要 label-width 属性。 | `enum`-`'left' \| 'right' \| 'top'` | `top` |
1053
- | label-width | 标签宽度,例如 `'50px'`。支持 `'auto'`。 | `string` / `number` | — |
1054
- | value-position | label 和输入框横向展示时,输入框的位置。 | `enum`-`'left' \| 'right'` | left |
1055
- | required | 字段是否必填,如果省略,将由验证规则确定。 | `boolean` | false |
1056
- | rules | 表单的验证规则,请参考[下面的表格](#formitemrule) | ` object` `FormItemRule \| FormItemRule[] ` | — |
1057
- | error | 字段错误消息,设置其值,字段将立即验证错误并显示此消息。 | `string` | — |
1058
- | show-message | 是否显示错误消息。 | `boolean` | true |
1059
- | size | 控制该表单项中组件的大小。 | `enum` - `'large' \| 'default' \| 'small'` | default |
1060
- | label-tooltip | 设置表单项 label 区域的帮助提示。 | `string` \ `EpTooltipProps` | - |
1061
- | tooltip | 设置表单项控件区域的帮助提示。 | `string` \ `EpTooltipProps` | - |
1062
- | for | 与原生标签中的 `for` 相同。 | `string` | — |
1063
- | validate-status | 表单项的验证状态。 | `enum` - `'' \| 'error' \| 'validating' \| 'success'` | — |
1064
-
1065
- ### FormItem Slots
1066
-
1067
- | Name | Description | Type |
1068
- | ------- | -------------------------------------------- | ------------------------------ |
1069
- | default | 表单项的默认内容。 | — |
1070
- | label | 自定义标签的显示内容。 | `object` - `{ label: string }` |
1071
- | error | 自定义验证消息的显示内容。 | `object` - `{ error: string }` |
1072
- | top | 用于在表单项上方添加始终可见的辅助说明文本。 | - |
1073
- | extra | 用于在表单项下方添加始终可见的辅助说明文本。 | - |
1074
-
1075
- ### FormItem Exposes
1076
-
1077
- | Name | Description | Type |
1078
- | --------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------- |
1079
- | size | 表单项的大小。 | `object` - `ComputedRef<'' \| 'large' \| 'default' \| 'small'>` |
1080
- | validateMessage | 验证消息。 | ` object``Ref<string> ` |
1081
- | validateState | 验证状态。 | `object` - `Ref<'' \| 'error' \| 'validating' \| 'success'>` |
1082
- | validate | 验证表单项。 | `Function` - `(trigger: string, callback?: FormValidateCallback \| undefined) => FormValidationResult` |
1083
- | resetField | 重置当前字段并删除验证结果。 | `Function` - `() => void` |
1084
- | clearValidate | 移除字段的验证状态。 | `Function` - `() => void` |
1085
-
1086
- ## 验证规则
1087
-
1088
- 验证规则的通用属性如下表:
1089
-
1090
- | Name | Description | Type | Default |
1091
- | --------- | -------------------- | ------------------------------------------------------------------------------------------ | ------- |
1092
- | trigger | 触发验证的方式。 | `enum` - `'blur' \| 'change' \| ['blur'] \| ['change'] \| ['blur', 'change']` | — |
1093
- | required | 是否必填 | `boolean` | — |
1094
- | message | 验证失败时的错误消息 | `string` | — |
1095
- | validator | 自定义的验证函数 | `Function` - `(val:any, option) => boolean \| Promise<boolean> \| Error \| Promise<Error>` | — |
1096
- | type | 验证的类型 | 详见下表 | — |
1097
-
1098
- 内置的验证规则如下表,你可以直接使用 `{type: "某个验证规则"}` 进行配置,但请注意,某些验证规则必须提供配置,如 `type: 'enum'` 则必须提供 `enums`。
1099
-
1100
- | Type | Options | Description |
1101
- | ----------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------- |
1102
- | required | -- | 必填的验证规则 |
1103
- | boolean | -- | 必须是布尔值 |
1104
- | number | `IsNumberOptions` - `{min?:number; max?:number}` | 必须是数值 |
1105
- | string | `LengthOptions` | 必须是字符串 |
1106
- | enum | `IsEnumOptions` | 必须是指定的选项之一 |
1107
- | date | `IsDateOptions` | 必须是日期 |
1108
- | url | `IsURLOptions` | 必须是 url |
1109
- | email | `IsEmailOptions` | 必须是 email |
1110
- | postCode | -- | 是否为邮政编码 |
1111
- | pattern | `PatternValidatoroptions` | 是符合给定的正则表达式 |
1112
- | idCard | `IDCardOptions` | 必须是身份证号码 |
1113
- | hkIdCard | -- | 必须是香港的身份证号码 |
1114
- | float | `IsF9FloatOptions` - `{min?: number; max?: number; maxDecimalLength?: number; maxLength?: number;}` | 是否是小数(只判断形式不判断类型) |
1115
- | int | `IsF9IntOptions` - `{min?:number; max?:number}` | 是否是 int(只判断形式不判断类型) |
1116
- | creditCode | -- | 是否为统一社会信用代码 |
1117
- | orgCode | -- | 是否为组织机构代码(包含社会信用代码) |
1118
- | phone | -- | 是否是电话号码 |
1119
- | mobile | -- | 是否为手机号 |
1120
- | tel | -- | 是否为固定电话号码 |
1121
- | phoneWithShortNum | -- | 更弱的电话号码验证 |
1122
- | projectCode | -- | 投资项目统一代码 |
1123
-
1124
- #### Options 说明
1125
-
1126
- 各个内置的验证规则的 `options` 类型定义如下。
1127
-
1128
- ```ts
1129
- interface IsNumberOptions {
1130
- min?: number; // 最小值
1131
- max?: number; // 最大值
1132
- }
1133
-
1134
- interface LengthOptions {
1135
- min?: number; // 最小长度
1136
- max?: number; // 最大长度
1137
- asciiDouble?: boolean; // 是否将非ascii字符长度计为2
1138
- }
1139
-
1140
- interface IsEnumOptions {
1141
- enums: Array<any>; // 选项列表, eg:['a', 'b', 'c]
1142
- strict?: boolean; // 是否严格匹配
1143
- /**
1144
- * 自定义的比较器,配置了将使用此函数的返回值作为判断依据
1145
- * 第一个参数为 迭代器当前值,第二个参数为当前的验证的值
1146
- *
1147
- * @memberof IsEnumOptions
1148
- */
1149
- compare?: (a: any, b: any) => boolean;
1150
- }
1151
-
1152
- interface IsDateOptions {
1153
- /**
1154
- * @default false
1155
- */
1156
- format?: string | undefined;
1157
- /**
1158
- * If strictMode is set to true,
1159
- * the validator will reject inputs different from format.
1160
- *
1161
- * @default false
1162
- */
1163
- strictMode?: boolean | undefined;
1164
- /**
1165
- * `delimiters` is an array of allowed date delimiters
1166
- *
1167
- * @default ['/', '-']
1168
- */
1169
- delimiters?: string[] | undefined;
1170
- }
1171
- interface IsURLOptions {
1172
- /**
1173
- * @default ['http','https','ftp']
1174
- */
1175
- protocols?: string[] | undefined;
1176
- /**
1177
- * @default true
1178
- */
1179
- require_tld?: boolean | undefined;
1180
- /**
1181
- * @default false
1182
- */
1183
- require_protocol?: boolean | undefined;
1184
- /**
1185
- * @default true
1186
- */
1187
- require_host?: boolean | undefined;
1188
- /**
1189
- * if set as true isURL will check if port is present in the URL
1190
- * @default false
1191
- */
1192
- require_port?: boolean | undefined;
1193
- /**
1194
- * @default true
1195
- */
1196
- require_valid_protocol?: boolean | undefined;
1197
- /**
1198
- * @default false
1199
- */
1200
- allow_underscores?: boolean | undefined;
1201
- /**
1202
- * @default false
1203
- */
1204
- host_whitelist?: Array<string | RegExp> | undefined;
1205
- /**
1206
- * @default false
1207
- */
1208
- host_blacklist?: Array<string | RegExp> | undefined;
1209
- /**
1210
- * @default false
1211
- */
1212
- allow_trailing_dot?: boolean | undefined;
1213
- /**
1214
- * @default false
1215
- */
1216
- allow_protocol_relative_urls?: boolean | undefined;
1217
- /**
1218
- * @default false
1219
- */
1220
- disallow_auth?: boolean | undefined;
1221
- /**
1222
- * @default true
1223
- */
1224
- allow_fragments?: boolean | undefined;
1225
- /**
1226
- * @default true
1227
- */
1228
- allow_query_components?: boolean | undefined;
1229
- /**
1230
- * @default true
1231
- */
1232
- validate_length?: boolean | undefined;
1233
- }
1234
-
1235
- interface IsEmailOptions {
1236
- /**
1237
- * If `allow_display_name` is set to `true`, the validator will also match `Display Name <email-address>`.
1238
- *
1239
- * @default false
1240
- */
1241
- allow_display_name?: boolean | undefined;
1242
- /**
1243
- * If `require_display_name` is set to `true`, the validator will reject strings without the format `Display Name <email-address>`.
1244
- *
1245
- * @default false
1246
- */
1247
- require_display_name?: boolean | undefined;
1248
- /**
1249
- * If `allow_utf8_local_part` is set to `false`, the validator will not allow any non-English UTF8 character in email address' local part.
1250
- *
1251
- * @default true
1252
- */
1253
- allow_utf8_local_part?: boolean | undefined;
1254
- /**
1255
- * If `require_tld` is set to `false`, e-mail addresses without having TLD in their domain will also be matched.
1256
- *
1257
- * @default true
1258
- */
1259
- require_tld?: boolean | undefined;
1260
- /**
1261
- * If `ignore_max_length` is set to `true`, the validator will not check for the standard max length of an email.
1262
- *
1263
- * @default false
1264
- */
1265
- ignore_max_length?: boolean | undefined;
1266
- /**
1267
- * If `allow_ip_domain` is set to `true`, the validator will allow IP addresses in the host part.
1268
- *
1269
- * @default false
1270
- */
1271
- allow_ip_domain?: boolean | undefined;
1272
- /**
1273
- * If `domain_specific_validation` is `true`, some additional validation will be enabled,
1274
- * e.g. disallowing certain syntactically valid email addresses that are rejected by GMail.
1275
- *
1276
- * @default false
1277
- */
1278
- domain_specific_validation?: boolean | undefined;
1279
- /**
1280
- * If host_blacklist is set to an array of strings
1281
- * and the part of the email after the @ symbol matches one of the strings defined in it,
1282
- * the validation fails.
1283
- */
1284
- host_blacklist?: string[] | undefined;
1285
- /**
1286
- * If host_whitelist is set to an array of strings
1287
- * and the part of the email after the @ symbol matches none of the strings defined in it,
1288
- * the validation fails.
1289
- */
1290
- host_whitelist?: string[] | undefined;
1291
- /**
1292
- * If blacklisted_chars receives a string, then the validator will reject emails that include
1293
- * any of the characters in the string, in the name part.
1294
- */
1295
- blacklisted_chars?: string | undefined;
1296
- }
1297
-
1298
- type IDCardOptions = {
1299
- ignoreX: boolean; // 是否忽略X的大小写
1300
- };
1301
-
1302
- interface PatternValidatoroptions {
1303
- regexp: RegExp; // 要匹配的正则表达
1304
- }
1305
-
1306
- interface IsF9FloatOptions {
1307
- min?: number; // 最小值
1308
- max?: number; // 最大值
1309
- maxDecimalLength?: number; // 小数部分最大长度
1310
- maxLength?: number; // 总的长度限制
1311
- }
1312
-
1313
- export interface IsF9IntOptions {
1314
- min?: number; // 最小值
1315
- max?: number; // 最大值
1316
- }
1317
- ```
1318
-
1319
- 如果不想基于输入事件触发验证器,请在相应的输入类型组件(`<e-input-m>`,`<e-radio-m>`,...)上将 `validate-event` 属性设置为 `false`。
1320
-
1321
- ::: ifdef M84
1322
- <iframe
1323
- src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/epshowcase/examples/e-form-m"
1324
- frameborder=0
1325
- allowfullscreen class="ui-showcase-iframe">
1326
- </iframe>
1327
- ::: endif
1328
-
1329
- <style>
1330
- .ui-showcase-iframe {
1331
- position: fixed;
1332
- right: 3.5vw;
1333
- top: 17%;
1334
- width: 375px;
1335
- height: 75vh;
1336
- box-shadow: 0 0 12px 6px #eee;
1337
- border-radius: 15px;
1338
- }
1339
- .main .markdown-body {
1340
- padding: 45px;
1341
- width: calc(97vw - 661px);
1342
- }
1343
- </style>