m8-framework-mcp 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +55 -17
  2. package/build/index.js +420 -86
  3. package/package.json +2 -4
  4. package/docs/ejs-doc/404/404.html +0 -9
  5. package/docs/ejs-doc/_draft/sha1_salt.md +0 -47
  6. package/docs/ejs-doc/_include/config.php +0 -10
  7. package/docs/ejs-doc/_include/cssboot.inc.php +0 -62
  8. package/docs/ejs-doc/_include/jsboot.inc.php +0 -7
  9. package/docs/ejs-doc/api_app/api_app.md +0 -43
  10. package/docs/ejs-doc/api_audio/api_audio.md +0 -225
  11. package/docs/ejs-doc/api_auth/api_auth.md +0 -256
  12. package/docs/ejs-doc/api_basicCard/api_basicCard.md +0 -69
  13. package/docs/ejs-doc/api_card_ui/api_card_ui.md +0 -37
  14. package/docs/ejs-doc/api_contact/api_contact.md +0 -295
  15. package/docs/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  16. package/docs/ejs-doc/api_device/api_device.md +0 -761
  17. package/docs/ejs-doc/api_event/api_event.md +0 -244
  18. package/docs/ejs-doc/api_global/api_global.md +0 -440
  19. package/docs/ejs-doc/api_io/api_io.md +0 -369
  20. package/docs/ejs-doc/api_miniH5/api_miniH5.md +0 -279
  21. package/docs/ejs-doc/api_navigator/api_navigator.md +0 -654
  22. package/docs/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  23. package/docs/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  24. package/docs/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  25. package/docs/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  26. package/docs/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  27. package/docs/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  28. package/docs/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  29. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  30. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  31. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  32. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  33. package/docs/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  34. package/docs/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  35. package/docs/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  36. package/docs/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  37. package/docs/ejs-doc/api_page/api_page.md +0 -261
  38. package/docs/ejs-doc/api_runtime/api_runtime.md +0 -788
  39. package/docs/ejs-doc/api_storage/api_storage.md +0 -320
  40. package/docs/ejs-doc/api_stream/api_stream.md +0 -152
  41. package/docs/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  42. package/docs/ejs-doc/api_ui/api_ui.md +0 -836
  43. package/docs/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  44. package/docs/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  45. package/docs/ejs-doc/api_ui/images/ui_alert.png +0 -0
  46. package/docs/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  47. package/docs/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  48. package/docs/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  49. package/docs/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  50. package/docs/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  51. package/docs/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  52. package/docs/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  53. package/docs/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  54. package/docs/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  55. package/docs/ejs-doc/api_ui/images/ui_select.png +0 -0
  56. package/docs/ejs-doc/api_ui/images/ui_select2.png +0 -0
  57. package/docs/ejs-doc/api_ui/images/ui_select3.png +0 -0
  58. package/docs/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  59. package/docs/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  60. package/docs/ejs-doc/api_ui/images/ui_toast.png +0 -0
  61. package/docs/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  62. package/docs/ejs-doc/api_util/api_util.md +0 -615
  63. package/docs/ejs-doc/api_util/images/util.playvideo.png +0 -0
  64. package/docs/ejs-doc/api_util/images/util.previmage.png +0 -0
  65. package/docs/ejs-doc/api_util/images/util.selectfile.png +0 -0
  66. package/docs/ejs-doc/api_util/images/util.selectimage.png +0 -0
  67. package/docs/ejs-doc/authentication/authentication.md +0 -28
  68. package/docs/ejs-doc/changelog/changelog.md +0 -290
  69. package/docs/ejs-doc/component_invokeplugin/component_invokeplugin.md +0 -54
  70. package/docs/ejs-doc/component_outline/component_outline.md +0 -71
  71. package/docs/ejs-doc/guid_apiconstraint/guid_apiconstraint.md +0 -30
  72. package/docs/ejs-doc/guid_debugpage/guid_debugpage.md +0 -53
  73. package/docs/ejs-doc/guid_debugpage/images/client.jpg +0 -0
  74. package/docs/ejs-doc/guid_debugpage/images/room.png +0 -0
  75. package/docs/ejs-doc/guid_demodebug/guid_demodebug.md +0 -59
  76. package/docs/ejs-doc/guid_demodebug/images/qr_demo.png +0 -0
  77. package/docs/ejs-doc/guid_demodebug/images/qrcode-weex.png +0 -0
  78. package/docs/ejs-doc/guid_demodebug/images/qrcode.png +0 -0
  79. package/docs/ejs-doc/guid_demodebug/images/qrcode_ejs.png +0 -0
  80. package/docs/ejs-doc/guid_errorcode/guid_errorcode.md +0 -27
  81. package/docs/ejs-doc/guid_errorcode/images/5d38937fec5107c38502c3ee38ba5b2c.png +0 -0
  82. package/docs/ejs-doc/guid_getstart/guid_getstart.md +0 -188
  83. package/docs/ejs-doc/introduction/introduction.md +0 -29
  84. package/docs/ejs-doc/jsapi_h5_all/jsapi_h5_all.md +0 -1231
  85. package/docs/ejs-doc/jsapi_mini_all/jsapi_mini_all.md +0 -1105
  86. package/docs/ejs-doc/m7_mini_h5/images/001.png +0 -0
  87. package/docs/ejs-doc/m7_mini_h5/images/dev.png +0 -0
  88. package/docs/ejs-doc/m7_mini_h5/images/install.png +0 -0
  89. package/docs/ejs-doc/m7_mini_h5/images/mobile_dev.png +0 -0
  90. package/docs/ejs-doc/m7_mini_h5/images/setting.png +0 -0
  91. package/docs/ejs-doc/m7_mini_h5/images/update.png +0 -0
  92. package/docs/ejs-doc/m7_mini_h5/m7_mini_h5.md +0 -410
  93. package/docs/ejs-doc/promisesupport/promisesupport.md +0 -84
  94. package/docs/ejs-doc/structure/images/structure.jpg +0 -0
  95. package/docs/ejs-doc/structure/images/structure2.jpg +0 -0
  96. package/docs/ejs-doc/structure/structure.md +0 -26
  97. package/docs/ejs-doc/version/version.md +0 -62
  98. package/docs/m8mpdoc-develop/$navigation.md +0 -343
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/005-pages.md +0 -300
  109. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/006-manifest.md +0 -173
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  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/347/273/204/344/273/266.md +0 -34
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  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/226.md +0 -38
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  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/237.md +0 -119
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  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/205.md +0 -247
  144. 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
  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/244.md +0 -130
  146. 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
  147. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/000-EJS2.X.md +0 -5
  148. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS3.X.md +0 -5
  149. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.X.md +0 -5
  150. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.Xmp.md +0 -5
  151. 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
  152. 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
  153. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  154. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  155. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  156. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  157. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  158. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  159. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  160. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  161. 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
  162. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  163. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  164. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  165. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  166. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  167. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  168. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  169. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  170. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  171. 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
  172. 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
  173. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  174. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  181. 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
  182. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  183. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  184. 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
  185. 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
  186. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  187. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  194. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  195. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  196. 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
  197. 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
  198. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  199. 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
  200. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  201. 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
  202. 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
  203. 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
  204. 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
  205. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  206. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  207. 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
  208. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. 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
  223. 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
  224. 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
  225. 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
  226. 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
  227. 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
  228. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  229. 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
  230. 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
  231. 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
  232. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  233. 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
  234. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  235. 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
  236. 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
  237. 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
  238. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  239. 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
  240. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. 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
  254. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/install.md +0 -91
  255. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/pageopen.md +0 -52
  256. 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
  257. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/spechara.md +0 -39
  258. 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
  259. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/transpile_dependencies.md +0 -18
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/3thbuild.md +0 -42
  271. 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
  272. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/custom_compts.md +0 -60
  273. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customize.md +0 -283
  274. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customtoken.md +0 -74
  275. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/i18n.md +0 -220
  276. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/modules.md +0 -44
  277. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/multiple.md +0 -160
  278. 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
  279. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/pages.md +0 -18
  280. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/scss/345/217/230/351/207/217.md +0 -132
  281. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/subpage.md +0 -107
  282. 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
  283. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/xmapp.md +0 -77
  284. 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
  285. 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
  286. 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
  287. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/001-view.md +0 -56
  288. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/002-scroll-view.md +0 -233
  289. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/003-match-media.md +0 -43
  290. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/004-movable-view.md +0 -118
  291. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/005-cover-view.md +0 -20
  292. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/006-cover-image.md +0 -154
  293. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/007-audio.md +0 -81
  294. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/008-camera.md +0 -70
  295. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/009-image.md +0 -197
  296. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/010-video.md +0 -196
  297. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/011-live-player.md +0 -139
  298. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/012-live-pusher.md +0 -274
  299. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/013-canvas.md +0 -90
  300. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/014-web-view.md +0 -151
  301. 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
  302. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/018-map.md +0 -278
  303. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/019-input.md +0 -202
  304. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/020-textarea.md +0 -119
  305. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/021-movable-area.md +0 -25
  306. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/022-page-meta.md +0 -80
  307. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/023-navigation-bar.md +0 -58
  308. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/0-/344/273/213/347/273/215.md +0 -92
  309. 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
  310. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/001-button/346/214/211/351/222/256.md +0 -497
  311. 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
  312. 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
  313. 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
  314. 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
  315. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/006-slider/346/273/221/345/235/227.md +0 -420
  316. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/007-badge/350/247/222/346/240/207.md +0 -175
  317. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/008-icon/345/233/276/346/240/207.md +0 -133
  318. 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
  319. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/010-drawer/346/212/275/345/261/211.md +0 -369
  320. 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
  321. 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
  322. 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
  323. 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
  324. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/019-layout/345/270/203/345/261/200.md +0 -324
  325. 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
  326. 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
  327. 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
  328. 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
  329. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/027-form/350/241/250/345/215/225.md +0 -1343
  330. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/028-cascader/347/272/247/350/201/224.md +0 -695
  331. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/029-image/345/233/276/347/211/207.md +0 -211
  332. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/031-datagrid/345/210/227/350/241/250.md +0 -664
  333. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/032-pagination/345/210/206/351/241/265.md +0 -192
  334. 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
  335. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/034-switch/345/274/200/345/205/263.md +0 -305
  336. 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
  337. 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
  338. 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
  339. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/038-alert/346/217/220/347/244/272.md +0 -206
  340. 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
  341. 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
  342. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/041-loading/345/212/240/350/275/275.md +0 -183
  343. 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
  344. 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
  345. 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
  346. 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
  347. 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
  348. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/047-notification/351/200/232/347/237/245.md +0 -321
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. 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
  355. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/054-tag/346/240/207/347/255/276.md +0 -348
  356. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/055-upload/344/270/212/344/274/240.md +0 -718
  357. 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
  358. 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
  359. 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
  360. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/059-result/347/273/223/346/236/234.md +0 -106
  361. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/060-avatar/345/244/264/345/203/217.md +0 -294
  362. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/061-affix/345/233/272/351/222/211.md +0 -120
  363. 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
  364. 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
  365. 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
  366. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/064-rate/350/257/204/345/210/206.md +0 -223
  367. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/065-table/350/241/250/346/240/274.md +0 -1417
  368. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/066-link/351/223/276/346/216/245.md +0 -177
  369. 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
  370. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/068-text/346/226/207/346/234/254.md +0 -202
  371. 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
  372. 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
  373. 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
  374. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/072-sublist/345/255/220/350/241/250.md +0 -729
  375. 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
  376. 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
  377. 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
  378. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/077-mention/346/217/220/345/217/212.md +0 -390
  379. 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
  380. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/080-card/345/215/241/347/211/207.md +0 -198
  381. 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
  382. 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
  383. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/086-calendar/346/227/245/345/216/206.md +0 -141
  384. 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
  385. 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
  386. 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
  387. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/092-space/351/227/264/350/267/235.md +0 -305
  388. package/docs/m8mpdoc-develop/home-/351/246/226/351/241/265.md +0 -612
  389. 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>