m8-mcp-server 1.0.0 → 1.0.2

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 (266) hide show
  1. package/README.md +153 -30
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +14 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/docs/apis.d.ts +38 -0
  7. package/dist/docs/apis.d.ts.map +1 -0
  8. package/dist/docs/apis.js +326 -0
  9. package/dist/docs/apis.js.map +1 -0
  10. package/dist/docs/components.d.ts +45 -0
  11. package/dist/docs/components.d.ts.map +1 -0
  12. package/dist/docs/components.js +186 -0
  13. package/dist/docs/components.js.map +1 -0
  14. package/dist/docs/index.d.ts +94 -0
  15. package/dist/docs/index.d.ts.map +1 -0
  16. package/dist/docs/index.js +182 -0
  17. package/dist/docs/index.js.map +1 -0
  18. package/dist/docs/loader.d.ts +51 -0
  19. package/dist/docs/loader.d.ts.map +1 -0
  20. package/dist/docs/loader.js +165 -0
  21. package/dist/docs/loader.js.map +1 -0
  22. package/dist/docs/search.d.ts +28 -0
  23. package/dist/docs/search.d.ts.map +1 -0
  24. package/dist/docs/search.js +196 -0
  25. package/dist/docs/search.js.map +1 -0
  26. package/dist/docs/standards.d.ts +41 -0
  27. package/dist/docs/standards.d.ts.map +1 -0
  28. package/dist/docs/standards.js +134 -0
  29. package/dist/docs/standards.js.map +1 -0
  30. package/dist/docs/utils.d.ts +46 -0
  31. package/dist/docs/utils.d.ts.map +1 -0
  32. package/dist/docs/utils.js +129 -0
  33. package/dist/docs/utils.js.map +1 -0
  34. package/dist/generator/header.d.ts +32 -0
  35. package/dist/generator/header.d.ts.map +1 -0
  36. package/dist/generator/header.js +83 -0
  37. package/dist/generator/header.js.map +1 -0
  38. package/dist/generator/index.d.ts +50 -0
  39. package/dist/generator/index.d.ts.map +1 -0
  40. package/dist/generator/index.js +387 -0
  41. package/dist/generator/index.js.map +1 -0
  42. package/dist/generator/vue-template.d.ts +54 -0
  43. package/dist/generator/vue-template.d.ts.map +1 -0
  44. package/dist/generator/vue-template.js +191 -0
  45. package/dist/generator/vue-template.js.map +1 -0
  46. package/dist/index.d.ts +21 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +73 -1
  49. package/dist/index.js.map +1 -0
  50. package/dist/recommend/index.d.ts +27 -0
  51. package/dist/recommend/index.d.ts.map +1 -0
  52. package/dist/recommend/index.js +412 -0
  53. package/dist/recommend/index.js.map +1 -0
  54. package/dist/tools/generate-code.d.ts +18 -0
  55. package/dist/tools/generate-code.d.ts.map +1 -0
  56. package/dist/tools/generate-code.js +155 -0
  57. package/dist/tools/generate-code.js.map +1 -0
  58. package/dist/tools/get-api-info.d.ts +18 -0
  59. package/dist/tools/get-api-info.d.ts.map +1 -0
  60. package/dist/tools/get-api-info.js +65 -0
  61. package/dist/tools/get-api-info.js.map +1 -0
  62. package/dist/tools/get-coding-standard.d.ts +18 -0
  63. package/dist/tools/get-coding-standard.d.ts.map +1 -0
  64. package/dist/tools/get-coding-standard.js +66 -0
  65. package/dist/tools/get-coding-standard.js.map +1 -0
  66. package/dist/tools/get-component-info.d.ts +18 -0
  67. package/dist/tools/get-component-info.d.ts.map +1 -0
  68. package/dist/tools/get-component-info.js +60 -0
  69. package/dist/tools/get-component-info.js.map +1 -0
  70. package/dist/tools/get-util-info.d.ts +18 -0
  71. package/dist/tools/get-util-info.d.ts.map +1 -0
  72. package/dist/tools/get-util-info.js +65 -0
  73. package/dist/tools/get-util-info.js.map +1 -0
  74. package/dist/tools/index.d.ts +56 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +101 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/recommend-solution.d.ts +18 -0
  79. package/dist/tools/recommend-solution.d.ts.map +1 -0
  80. package/dist/tools/recommend-solution.js +67 -0
  81. package/dist/tools/recommend-solution.js.map +1 -0
  82. package/dist/tools/search-docs.d.ts +18 -0
  83. package/dist/tools/search-docs.d.ts.map +1 -0
  84. package/dist/tools/search-docs.js +71 -0
  85. package/dist/tools/search-docs.js.map +1 -0
  86. package/dist/types/index.d.ts +285 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +8 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/package.json +27 -26
  91. package/resources/cases/.gitkeep +0 -0
  92. package/resources/cases/form-submit-vue2.json +15 -0
  93. package/resources/cases/index.json +8 -0
  94. package/resources/cases/list-detail-vue2.json +27 -0
  95. package/resources/components/.gitkeep +0 -0
  96. package/resources/components/button.json +74 -0
  97. package/resources/components/cell.json +69 -0
  98. package/resources/components/field.json +88 -0
  99. package/resources/components/index.json +72 -0
  100. package/resources/standards/.gitkeep +0 -0
  101. package/resources/standards/css.json +108 -0
  102. package/resources/standards/javascript.json +129 -0
  103. package/resources/standards/project-structure.json +101 -0
  104. package/resources/standards/vue.json +122 -0
  105. package/resources/utils/.gitkeep +0 -0
  106. package/resources/utils/ajax.json +76 -0
  107. package/resources/utils/common.json +129 -0
  108. package/resources/utils/index.json +7 -0
  109. package/resources/utils/string.json +112 -0
  110. package/bin/m8-mcp.js +0 -2
  111. package/dist/constants.js +0 -1
  112. package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
  113. package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
  114. package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
  115. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  116. package/dist/data/ejs-doc/api_device/api_device.md +0 -761
  117. package/dist/data/ejs-doc/api_event/api_event.md +0 -244
  118. package/dist/data/ejs-doc/api_global/api_global.md +0 -440
  119. package/dist/data/ejs-doc/api_io/api_io.md +0 -369
  120. package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
  121. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  122. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  123. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  124. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  125. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  126. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  127. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  128. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  129. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  130. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  131. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  132. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  133. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  134. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  135. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  136. package/dist/data/ejs-doc/api_page/api_page.md +0 -261
  137. package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
  138. package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
  139. package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
  140. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  141. package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
  142. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  143. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  144. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  145. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  146. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  147. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  148. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  149. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  150. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  151. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  152. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  153. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  154. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  155. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  156. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  157. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  158. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  159. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  160. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  161. package/dist/data/ejs-doc/api_util/api_util.md +0 -615
  162. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  163. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  164. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  165. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  166. package/dist/data/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
  167. package/dist/data/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
  168. package/dist/data/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
  169. package/dist/data/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
  170. package/dist/data/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
  171. package/dist/data/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
  172. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  173. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  174. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  175. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  176. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  177. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  178. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  179. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  180. package/dist/data/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
  181. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  182. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  183. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  184. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  185. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  186. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  187. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  188. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  189. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  190. package/dist/data/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
  191. package/dist/data/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
  192. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  193. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  194. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  195. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  196. package/dist/data/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
  197. package/dist/data/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
  198. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  199. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  200. package/dist/data/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
  201. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  202. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  203. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  204. package/dist/data/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
  205. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  206. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  207. package/dist/data/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
  208. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  209. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  210. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  211. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  212. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  213. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  214. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  215. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  216. package/dist/data/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
  217. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  218. package/dist/data/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
  219. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  220. package/dist/data/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
  221. package/dist/data/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
  222. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  223. package/dist/data/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
  224. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  225. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  226. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  227. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  228. package/dist/data/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
  229. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  230. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  231. package/dist/data/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
  232. package/dist/data/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
  233. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  234. package/dist/data/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
  235. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  236. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  237. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  238. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  239. package/dist/data/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
  240. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  241. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  242. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  243. package/dist/data/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
  244. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  245. package/dist/data/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
  246. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  247. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  248. package/dist/data/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
  249. package/dist/data/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
  250. package/dist/data/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
  251. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  252. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  253. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  254. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  255. package/dist/data/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
  256. package/dist/data/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
  257. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  258. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  259. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  260. package/dist/data/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
  261. package/dist/data/standards/css-style.md +0 -531
  262. package/dist/data/standards/js-style.md +0 -394
  263. package/dist/data/standards/project-structure.md +0 -325
  264. package/dist/data/standards/vue-style.md +0 -644
  265. package/dist/tools/search.js +0 -1
  266. package/dist/tools/standards.js +0 -1
@@ -1,999 +0,0 @@
1
- # 组件使用
2
-
3
- ## form 表单
4
-
5
- ### 介绍
6
-
7
- - 用于数据录入、校验,支持输入框、单选框、复选框、文件上传等类型。
8
-
9
- ### 代码演示
10
-
11
- #### 基础用法
12
-
13
- 在表单中,每个 `Field` 组件 代表一个表单项,使用 `Field` 的`rules`属性定义校验规则
14
-
15
- ```html
16
- <em-form @submit="onSubmit">
17
- <em-field
18
- v-model="username"
19
- name="用户名"
20
- label="用户名"
21
- placeholder="用户名"
22
- :rules="[{ required: true, message: '请填写用户名' }]"
23
- />
24
- <em-field
25
- v-model="password"
26
- type="password"
27
- name="密码"
28
- label="密码"
29
- placeholder="密码"
30
- :rules="[{ required: true, message: '请填写密码' }]"
31
- />
32
- <div style="margin: 16px;">
33
- <em-button round block type="info" native-type="submit">提交</em-button>
34
- </div>
35
- </em-form>
36
- ```
37
-
38
- ::: ifdef M83
39
-
40
- ```js
41
- export default {
42
- data() {
43
- return {
44
- username: '',
45
- password: ''
46
- };
47
- },
48
- methods: {
49
- onSubmit(values) {
50
- console.log('submit', values);
51
- }
52
- }
53
- };
54
- ```
55
-
56
- ::: endif
57
- ::: ifdef M84
58
-
59
- ```js
60
- import { ref } from 'vue';
61
-
62
- const username = ref('');
63
- const password = ref('');
64
-
65
- const onSubmit = (values) => {
66
- console.log('submit', values);
67
- };
68
- ```
69
-
70
- ::: endif
71
-
72
- #### 校验规则
73
-
74
- 通过`rules`定义表单校验规则,可用字段见下方表格
75
-
76
- ::: ifdef M83
77
-
78
- ```html
79
- <em-form validate-first @failed="onFailed">
80
- <!-- 通过 pattern 进行正则校验 -->
81
- <em-field
82
- v-model="value1"
83
- name="pattern"
84
- placeholder="正则校验"
85
- :rules="[{ pattern, message: '请输入正确内容' }]"
86
- />
87
- <!-- 通过 validator 进行函数校验 -->
88
- <em-field
89
- v-model="value2"
90
- name="validator"
91
- placeholder="函数校验"
92
- :rules="[{ validator, message: '请输入正确内容' }]"
93
- />
94
- <!-- 通过 validator 进行异步函数校验 -->
95
- <em-field
96
- v-model="value3"
97
- name="asyncValidator"
98
- placeholder="异步函数校验"
99
- :rules="[{ validator: asyncValidator, message: '请输入正确内容' }]"
100
- />
101
- <div style="margin: 16px;">
102
- <em-button round block type="info" native-type="submit">提交</em-button>
103
- </div>
104
- </em-form>
105
- <em-toast ref="emToast"></em-toast>
106
- ```
107
-
108
- ```js
109
- export default {
110
- data() {
111
- return {
112
- value1: '',
113
- value2: '',
114
- value3: '',
115
- pattern: /^\d{6}$/
116
- };
117
- },
118
- methods: {
119
- // 校验函数返回 true 表示校验通过,false 表示不通过
120
- validator(val) {
121
- return /^1\d{10}$/.test(val);
122
- },
123
- // 异步校验函数返回 Promise
124
- asyncValidator(val) {
125
- return new Promise((resolve) => {
126
- Toast.loading({
127
- // 加载信息
128
- message: '验证中...'
129
- });
130
- setTimeout(() => {
131
- Toast.clear();
132
- resolve(/^\d{6}$/.test(val));
133
- }, 1000);
134
- });
135
- },
136
- onFailed(errorInfo) {
137
- console.log('failed', errorInfo);
138
- }
139
- }
140
- };
141
- ```
142
-
143
- ::: endif
144
- ::: ifdef M84
145
-
146
- ```html
147
- <em-form validate-first @failed="onFailed">
148
- <!-- 通过 pattern 进行正则校验 -->
149
- <em-field
150
- v-model="value1"
151
- name="pattern"
152
- placeholder="正则校验"
153
- :rules="[{ pattern, message: '请输入正确内容' }]"
154
- />
155
- <!-- 通过 validator 进行函数校验 -->
156
- <em-field
157
- v-model="value2"
158
- name="validator"
159
- placeholder="函数校验"
160
- :rules="[{ validator, message: '请输入正确内容' }]"
161
- />
162
- <!-- 通过 validator 进行异步函数校验 -->
163
- <em-field
164
- v-model="value3"
165
- name="asyncValidator"
166
- placeholder="异步函数校验"
167
- :rules="[{ validator: asyncValidator, message: '请输入正确内容' }]"
168
- />
169
- <div style="margin: 16px;">
170
- <em-button round block type="info" native-type="submit">提交</em-button>
171
- </div>
172
- </em-form>
173
- <em-toast ref="emToastRef"></em-toast>
174
- ```
175
-
176
- ```js
177
- import { ref } from 'vue';
178
-
179
- const value1 = ref('');
180
- const value2 = ref('');
181
- const value3 = ref('');
182
- const emToastRef = ref(null);
183
-
184
- const pattern = /^d{6}$/;
185
-
186
- const validator = (val) => /^1\d{10}$/.test(val);
187
-
188
- const asyncValidator = (val) => {
189
- return new Promise((resolve) => {
190
- Toast.loading({
191
- // 加载信息
192
- message: '验证中...'
193
- });
194
- setTimeout(() => {
195
- Toast.clear();
196
- resolve(pattern.test(val));
197
- }, 1000);
198
- });
199
- };
200
-
201
- const onFailed = (errorInfo) => {
202
- console.log('failed', errorInfo);
203
- };
204
-
205
- defineExpose({
206
- emToastRef
207
- });
208
- ```
209
-
210
- ::: endif
211
-
212
- #### 脱敏
213
-
214
- ::: ifdef M83
215
-
216
- `v8.3.24`开始支持。
217
-
218
- ::: endif
219
-
220
- ::: ifdef M84
221
-
222
- `v8.4.5`开始支持。
223
-
224
- ::: endif
225
-
226
- 表单项设置 `desensitizationType`,即可实现脱敏,该属性可选值见下文 `脱敏数据类型` 说明。脱敏数据根据设置的`desensitizationType`类型进行处理。
227
-
228
- 也可以将 `desensitizationType` 设置成 `DESENDATATYPE_CUSTOM`,通过 `desensitizer`、`desensitizeReg` 设置自定义的脱敏处理方式。
229
-
230
- ```html
231
- <em-form ref="formComp" validate-first @submit="onSubmit2">
232
- <!-- 手机号,默认脱敏校验 -->
233
- <em-field
234
- v-model="valueMobile"
235
- label="手机号"
236
- name="mobile"
237
- placeholder="请输入手机号"
238
- :rules="[{ validator, message: '请输入以1开头的11位数字' }]"
239
- :desensitization-type="DESENDATATYPE_MOBILE_PHONE"
240
- />
241
- <!-- 邮箱,自定义脱敏 -->
242
- <em-field
243
- v-model="valueEmail"
244
- label="邮箱"
245
- name="email"
246
- placeholder="请输入邮箱"
247
- :rules="[{ validator: emailValidator, message: '请输入正确的邮箱格式' }]"
248
- :desensitization-type="DESENDATATYPE_CUSTOM"
249
- :desensitizer="desensitizer"
250
- />
251
- <div style="margin: 16px">
252
- <em-button round block type="info" native-type="submit">提交</em-button>
253
- </div>
254
- </em-form>
255
- ```
256
-
257
- ::: ifdef M83
258
-
259
- ```js
260
- import { DESENDATATYPE_CUSTOM, DESENDATATYPE_MOBILE_PHONE } from '@components/common/use-desensitization';
261
- export default {
262
- data() {
263
- return {
264
- valueMobile: '11111111111',
265
- valueEmail: '222@qq.com'
266
- };
267
- },
268
- computed: {
269
- DESENDATATYPE_CUSTOM() {
270
- return DESENDATATYPE_CUSTOM;
271
- },
272
- DESENDATATYPE_MOBILE_PHONE() {
273
- return DESENDATATYPE_MOBILE_PHONE;
274
- }
275
- },
276
- methods: {
277
- validator(val) {
278
- return /1\d{10}/.test(val);
279
- },
280
- emailValidator(val) {
281
- return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val);
282
- },
283
- desensitizer(val) {
284
- const index = val.indexOf('@');
285
-
286
- return `****${val.slice(index)}`;
287
- },
288
- onSubmit2(values) {
289
- ejs.ui.alert(JSON.stringify(values), '提交成功', '确定');
290
- // 提交成功后需要重置脱敏字段编辑状态
291
- this.$refs.formComp.resetEditState();
292
- }
293
- }
294
- };
295
- ```
296
-
297
- ::: endif
298
-
299
- ::: ifdef M84
300
-
301
- ```js
302
- import { DESENDATATYPE_CUSTOM, DESENDATATYPE_MOBILE_PHONE } from '@components/common/use-desensitization';
303
- import { ref } from 'vue';
304
-
305
- const valueMobile = ref('11111111111');
306
- const valueEmail = ref('222@qq.com');
307
- const formComp = ref();
308
-
309
- const validator = (val) => {
310
- return /1\d{10}/.test(val);
311
- };
312
- const emailValidator = (val) => {
313
- return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val);
314
- };
315
- const desensitizer = (val) => {
316
- const index = val.indexOf('@');
317
-
318
- return `****${val.slice(index)}`;
319
- };
320
- const onSubmit2 = (values) => {
321
- ejs.ui.alert(JSON.stringify(values), '提交成功', '确定');
322
- // 提交成功后需要重置脱敏字段编辑状态
323
- formComp.value.resetEditState();
324
- };
325
- ```
326
-
327
- ::: endif
328
-
329
- #### 表单项类型 - 输入框
330
-
331
- 在表单中使用 `Input` 组件
332
-
333
- ```html
334
- <em-field name="input" label="输入框">
335
- <template #input>
336
- <em-input v-model="input" placeholder="请输入内容" />
337
- </template>
338
- </em-field>
339
- ```
340
-
341
- ::: ifdef M83
342
-
343
- ```js
344
- export default {
345
- data() {
346
- return {
347
- input: ''
348
- };
349
- }
350
- };
351
- ```
352
-
353
- ::: endif
354
- ::: ifdef M84
355
-
356
- ```js
357
- import { ref } from 'vue';
358
-
359
- const input = ref('');
360
- ```
361
-
362
- ::: endif
363
-
364
- #### 表单项类型 - 开关
365
-
366
- 在表单中使用 `Switch` 组件
367
-
368
- ```html
369
- <em-field name="switch" label="开关">
370
- <template #input>
371
- <em-switch v-model="switchChecked" size="20" />
372
- </template>
373
- </em-field>
374
- ```
375
-
376
- ::: ifdef M83
377
-
378
- ```js
379
- export default {
380
- data() {
381
- return {
382
- switchChecked: false
383
- };
384
- }
385
- };
386
- ```
387
-
388
- ::: endif
389
- ::: ifdef M84
390
-
391
- ```js
392
- import { ref } from 'vue';
393
-
394
- const switchChecked = ref(false);
395
- ```
396
-
397
- ::: endif
398
-
399
- #### 表单项类型 - 复选框
400
-
401
- 在表单中使用 `Checkbox` 组件
402
-
403
- ```html
404
- <em-field name="checkbox" label="复选框">
405
- <template #input>
406
- <em-checkbox v-model="checkbox" shape="square" />
407
- </template>
408
- </em-field>
409
- <em-field name="checkboxGroup" label="复选框组">
410
- <template #input>
411
- <em-checkbox-group v-model="checkboxGroup" direction="horizontal">
412
- <em-checkbox name="1" shape="square">复选框 1</em-checkbox>
413
- <em-checkbox name="2" shape="square">复选框 2</em-checkbox>
414
- </em-checkbox-group>
415
- </template>
416
- </em-field>
417
- ```
418
-
419
- ::: ifdef M83
420
-
421
- ```js
422
- export default {
423
- data() {
424
- return {
425
- checkbox: false,
426
- checkboxGroup: []
427
- };
428
- }
429
- };
430
- ```
431
-
432
- ::: endif
433
- ::: ifdef M84
434
-
435
- ```js
436
- import { ref } from 'vue';
437
-
438
- const checkbox = ref(false);
439
- const checkboxGroup = ref([]);
440
- ```
441
-
442
- ::: endif
443
-
444
- #### 表单项类型 - 单选框
445
-
446
- 在表单中使用 `Radio` 组件
447
-
448
- ```html
449
- <em-field name="radio" label="单选框">
450
- <template #input>
451
- <em-radio-group v-model="radio" direction="horizontal">
452
- <em-radio name="1">单选框 1</em-radio>
453
- <em-radio name="2">单选框 2</em-radio>
454
- </em-radio-group>
455
- </template>
456
- </em-field>
457
- ```
458
-
459
- ::: ifdef M83
460
-
461
- ```js
462
- export default {
463
- data() {
464
- return {
465
- radio: '1'
466
- };
467
- }
468
- };
469
- ```
470
-
471
- ::: endif
472
- ::: ifdef M84
473
-
474
- ```js
475
- import { ref } from 'vue';
476
-
477
- const radio = ref('1');
478
- ```
479
-
480
- ::: endif
481
-
482
- #### 表单项类型 - 步进器
483
-
484
- 在表单中使用 `Stepper` 组件
485
-
486
- ```html
487
- <em-field name="stepper" label="步进器">
488
- <template #input>
489
- <em-stepper v-model="stepper" />
490
- </template>
491
- </em-field>
492
- ```
493
-
494
- ::: ifdef M83
495
-
496
- ```js
497
- export default {
498
- data() {
499
- return {
500
- stepper: 1
501
- };
502
- }
503
- };
504
- ```
505
-
506
- ::: endif
507
- ::: ifdef M84
508
-
509
- ```js
510
- import { ref } from 'vue';
511
-
512
- const stepper = ref(1);
513
- ```
514
-
515
- ::: endif
516
-
517
- #### 表单项类型 - 评分
518
-
519
- 在表单中使用 `Rate` 组件
520
-
521
- ```html
522
- <em-field name="rate" label="评分">
523
- <template #input>
524
- <em-rate v-model="rate" />
525
- </template>
526
- </em-field>
527
- ```
528
-
529
- ::: ifdef M83
530
-
531
- ```js
532
- export default {
533
- data() {
534
- return {
535
- rate: 3
536
- };
537
- }
538
- };
539
- ```
540
-
541
- ::: endif
542
- ::: ifdef M84
543
-
544
- ```js
545
- import { ref } from 'vue';
546
-
547
- const rate = ref(3);
548
- ```
549
-
550
- ::: endif
551
-
552
- #### 表单项类型 - 滑块
553
-
554
- 在表单中使用 `Slider` 组件。
555
-
556
- 在小程序下 `Slider` 组件宽度无法自动撑开,需要在外面包裹一层宽度为 `100%` 的 view 元素。
557
-
558
- ```html
559
- <em-field name="slider" label="滑块">
560
- <template #input>
561
- <view style="width: 100%;">
562
- <em-slider v-model="slider" />
563
- </view>
564
- </template>
565
- </em-field>
566
- ```
567
-
568
- ::: ifdef M83
569
-
570
- ```js
571
- export default {
572
- data() {
573
- return {
574
- slider: 50
575
- };
576
- }
577
- };
578
- ```
579
-
580
- ::: endif
581
- ::: ifdef M84
582
-
583
- ```js
584
- import { ref } from 'vue';
585
-
586
- const slider = ref(50);
587
- ```
588
-
589
- ::: endif
590
-
591
- #### 表单项类型 - 文件上传
592
-
593
- 在表单中使用 `Uploader` 组件
594
-
595
- ```html
596
- <em-field name="uploader" label="文件上传">
597
- <template #input>
598
- <em-uploader v-model="uploader" />
599
- </template>
600
- </em-field>
601
- ```
602
-
603
- ::: ifdef M83
604
-
605
- ```js
606
- export default {
607
- data() {
608
- return {
609
- uploader: [{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]
610
- };
611
- }
612
- };
613
- ```
614
-
615
- ::: endif
616
- ::: ifdef M84
617
-
618
- ```js
619
- import { ref } from 'vue';
620
-
621
- const uploader = ref([{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]);
622
- ```
623
-
624
- ::: endif
625
-
626
- #### 表单项类型 - 选择器
627
-
628
- 在表单中使用 `Picker` 组件
629
-
630
- ::: ifdef M83
631
-
632
- ```html
633
- <em-field
634
- readonly
635
- clickable
636
- name="picker"
637
- :value="value"
638
- label="选择器"
639
- placeholder="点击选择城市"
640
- @click="showPicker = true"
641
- />
642
- <em-picker v-model="showPicker" show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
643
- ```
644
-
645
- ```js
646
- export default {
647
- data() {
648
- return {
649
- value: '',
650
- columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
651
- showPicker: false
652
- };
653
- },
654
- methods: {
655
- onConfirm(value) {
656
- this.value = value;
657
- this.showPicker = false;
658
- }
659
- }
660
- };
661
- ```
662
-
663
- ::: endif
664
- ::: ifdef M84
665
-
666
- ```html
667
- <em-field
668
- readonly
669
- clickable
670
- name="picker"
671
- :model-value="value"
672
- label="选择器"
673
- placeholder="点击选择城市"
674
- @click="showPicker = true"
675
- />
676
- <em-picker v-model="showPicker" show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
677
- ```
678
-
679
- ```js
680
- import { ref } from 'vue';
681
- const value = ref('');
682
- const columns = ['杭州', '宁波', '温州', '嘉兴', '湖州'];
683
- const showPicker = ref(false);
684
-
685
- const onConfirm = (val) => {
686
- value.value = val;
687
- showPicker.value = false;
688
- };
689
- ```
690
-
691
- ::: endif
692
-
693
- #### 表单项类型 - 时间选择器
694
-
695
- 在表单中使用 `DatetimePicker` 组件
696
-
697
- ::: ifdef M83
698
-
699
- ```html
700
- <em-field
701
- readonly
702
- clickable
703
- name="datetimePicker"
704
- :value="value"
705
- label="时间选择"
706
- placeholder="点击选择时间"
707
- @click="showPicker = true"
708
- />
709
- <em-date-picker v-model="showPicker" basic type="time" @confirm="onConfirm" @cancel="showPicker = false" />
710
- ```
711
-
712
- ```js
713
- export default {
714
- data() {
715
- return {
716
- value: '',
717
- showPicker: false
718
- };
719
- },
720
- methods: {
721
- onConfirm(time) {
722
- this.value = time;
723
- this.showPicker = false;
724
- }
725
- }
726
- };
727
- ```
728
-
729
- ::: endif
730
- ::: ifdef M84
731
-
732
- ```html
733
- <em-field
734
- readonly
735
- clickable
736
- name="datetimePicker"
737
- :model-value="value"
738
- label="时间选择"
739
- placeholder="点击选择时间"
740
- @click="showPicker = true"
741
- />
742
- <em-date-picker v-model="showPicker" basic type="time" @confirm="onConfirm" @cancel="showPicker = false" />
743
- ```
744
-
745
- ```js
746
- import { ref } from 'vue';
747
- const value = ref('');
748
- const showPicker = ref(false);
749
-
750
- const onConfirm = (time) => {
751
- value.value = time;
752
- showPicker.value = false;
753
- };
754
- ```
755
-
756
- ::: endif
757
-
758
- #### 表单项类型 - 省市区选择器
759
-
760
- 在表单中使用 `Area` 组件
761
-
762
- ::: ifdef M83
763
-
764
- ```html
765
- <em-field
766
- readonly
767
- clickable
768
- name="area"
769
- :value="value"
770
- label="地区选择"
771
- placeholder="点击选择省市区"
772
- @click="showArea = true"
773
- />
774
- <em-area v-model="showArea" :area-list="areaList" @confirm="onConfirm" @cancel="showArea = false" />
775
- ```
776
-
777
- ```js
778
- export default {
779
- data() {
780
- return {
781
- value: '',
782
- showArea: false,
783
- areaList: {} // 数据格式见 Area 组件文档
784
- };
785
- },
786
- methods: {
787
- onConfirm(values) {
788
- this.value = values.map((item) => item.name).join('/');
789
- this.showArea = false;
790
- }
791
- }
792
- };
793
- ```
794
-
795
- ::: endif
796
- ::: ifdef M84
797
-
798
- ```html
799
- <em-field
800
- readonly
801
- clickable
802
- name="area"
803
- :model-value="value"
804
- label="地区选择"
805
- placeholder="点击选择省市区"
806
- @click="showArea = true"
807
- />
808
- <em-area v-model="showArea" :area-list="areaList" @confirm="onConfirm" @cancel="showArea = false" />
809
- ```
810
-
811
- ```js
812
- import { ref } from 'vue';
813
- const value = ref('');
814
- const showArea = ref(false);
815
- const areaList = {}; // 数据格式见 Area 组件文档
816
-
817
- const onConfirm = (values) => {
818
- value.value = values.map((item) => item.name).join('/');
819
- showArea.value = false;
820
- };
821
- ```
822
-
823
- ::: endif
824
-
825
- #### 表单项类型 - 日历
826
-
827
- 在表单中使用 `Calendar` 组件
828
-
829
- ::: ifdef M83
830
-
831
- ```html
832
- <em-field
833
- readonly
834
- clickable
835
- name="calendar"
836
- :value="value"
837
- label="日历"
838
- placeholder="点击选择日期"
839
- @click="showCalendar = true"
840
- />
841
- <em-calendar v-model="showCalendar" @confirm="onConfirm" />
842
- ```
843
-
844
- ```js
845
- export default {
846
- data() {
847
- return {
848
- value: '',
849
- showCalendar: false
850
- };
851
- },
852
- methods: {
853
- onConfirm(date) {
854
- this.value = `${date.getMonth() + 1}/${date.getDate()}`;
855
- this.showCalendar = false;
856
- }
857
- }
858
- };
859
- ```
860
-
861
- ::: endif
862
- ::: ifdef M84
863
-
864
- ```html
865
- <em-field
866
- readonly
867
- clickable
868
- name="calendar"
869
- :model-value="value"
870
- label="日历"
871
- placeholder="点击选择日期"
872
- @click="showCalendar = true"
873
- />
874
- <em-calendar v-model="showCalendar" @confirm="onConfirm" />
875
- ```
876
-
877
- ```js
878
- import { ref } from 'vue';
879
- const value = ref('');
880
- const showCalendar = ref(false);
881
-
882
- const onConfirm = (date) => {
883
- value.value = `${date.getMonth() + 1}/${date.getDate()}`;
884
- showCalendar.value = false;
885
- };
886
- ```
887
-
888
- ::: endif
889
-
890
- ### API
891
-
892
- 表单项的 `API` 参见:`Field` 组件
893
-
894
- #### Props
895
-
896
- | 参数 | 说明 | 类型 | 默认值 |
897
- | :------------------ | :--------------------------------------------------: | :------------- | :------- |
898
- | label-width | 表单项 `label` 宽度,默认单位为`px` | number /string | `96px` |
899
- | label-align | 表单项 `label` 对齐方式,可选值为 `center` `right` | string | `left` |
900
- | input-align | 输入框对齐方式,可选值为 `center` `right` `vertical` | string | `left` |
901
- | error-message-align | 错误提示文案对齐方式,可选值为 `center` `right` | string | `left` |
902
- | validate-trigger | 表单校验触发时机,可选值为`onChange` `onSubmit` | string | `onBlur` |
903
- | colon | 是否在 `label` 后面添加冒号 | boolean | `false` |
904
- | disabled | 是否禁用表单中的所有输入框 | boolean | `false` |
905
- | readonly | 是否将表单中的所有输入框设置为只读 | boolean | `false` |
906
- | validate-first | 是否在某一项校验不通过时停止校验 | boolean | `false` |
907
- | scroll-to-error | 是否在提交表单且校验不通过时滚动至错误的表单项 | boolean | `false` |
908
- | show-error | 是否在校验不通过时标红输入框 | boolean | `true` |
909
- | show-error-message | 是否在校验不通过时在输入框下方展示错误提示 | boolean | `true` |
910
-
911
- #### Rule 数据结构
912
-
913
- 使用 `Field` 的`rules`属性可以定义校验规则,可选属性如下:
914
-
915
- | 键名 | 说明 | 类型 |
916
- | :-------- | :------------------------------------------------: | :--------------------------------- |
917
- | required | 是否为必选字段 | boolean |
918
- | message | 错误提示文案 | string / (value, rule) => string |
919
- | validator | 通过函数进行校验 | (value, rule) => boolean / Promise |
920
- | pattern | 通过正则表达式进行校验(小程序下只支持正则字符串) | RegExp |
921
- | trigger | 本项规则的触发时机,可选值为`onChange`、`onBlur` | string |
922
- | formatter | 格式化函数,将表单项的值转换后进行校验 | (value, rule) => any |
923
-
924
- #### Events
925
-
926
- | 事件名 | 说明 | 回调参数 |
927
- | :----- | :------------------------: | :---------------------------------------------- |
928
- | submit | 提交表单且验证通过后触发 | values: object |
929
- | failed | 提交表单且验证不通过后触发 | errorInfo: { values: object, errors: object[] } |
930
-
931
- #### 方法
932
-
933
- 通过 `ref` 可以获取到 `Form` 实例并调用实例方法,详见组件实例方法
934
-
935
- | 方法名 | 说明 | 参数 | 返回值 |
936
- | :-------------------------------------------------------------------------------- | :-----------------------------------------------------------------------: | :-------------------------------- | :-------- |
937
- | submit | 提交表单,与点击提交按钮的效果等价 | - | - |
938
- | validate | 验证表单,支持传入`name`来验证单个或部分表单项 | name?: string / string[] | `Promise` |
939
- | resetValidation | 重置表单项的验证提示,支持传入`name`来重置单个或部分表单项 | name?: string / string[] | - |
940
- | scrollToField | 滚动到对应表单项的位置,默认滚动到顶部,第二个参数传 `false` 可滚动至底部 | name: string, alignToTop: boolean | - |
941
- | resetEditState ::: ifdef M83 `v8.3.24` ::: endif ::: ifdef M84 `v8.4.5` ::: endif | 重置脱敏字段编辑状态 | - | - |
942
-
943
- #### Slots
944
-
945
- | 名称 | 说明 |
946
- | :------ | :------: |
947
- | default | 表单内容 |
948
-
949
- #### 脱敏数据类型 ​
950
-
951
- 脱敏数据类型入参如下:
952
-
953
- | Export Const | Value | Description | Desensitization Rules |
954
- | :---------------------------- | :-------------- | :--------------------- | :----------------------------------------------------------------- |
955
- | DESENDATATYPE_ID_CARD | ID_CARD | 身份证号脱敏 | 保留后 4 位 |
956
- | DESENDATATYPE_MOBILE_PHONE | MOBILE_PHONE | 手机号脱敏 | 保留前 3 位和后 4 位,如果手机号不足 11 位,则保留前 2 位和后 2 位 |
957
- | DESENDATATYPE_CHINESE_NAME | CHINESE_NAME | 人名脱敏 | 保留后 1 位 |
958
- | DESENDATATYPE_FIXED_PHONE | FIXED_PHONE | 固定电话脱敏 | 保留后 4 位 |
959
- | DESENDATATYPE_LOGINID | LOGINID | 登录名脱敏 | 保留后 1 位 |
960
- | DESENDATATYPE_BANK_CARD | BANK_CARD | 银行卡脱敏 | 保留前 5 位和后 4 位 |
961
- | DESENDATATYPE_EMAIL | EMAIL | 电子邮箱脱敏 | 保留@及之后的信息 |
962
- | DESENDATATYPE_PASSWORD | PASSWORD | 密码脱敏 | 全部隐藏 |
963
- | DESENDATATYPE_ADDRESS | ADDRESS | 地址脱敏 | 不足 12 位保留前面不超过 50%,大于 12 位只保留前 6 位 |
964
- | DESENDATATYPE_CREDENTIAL_DATE | CREDENTIAL_DATE | 证件日期脱敏 | 保留后 4 位 |
965
- | DESENDATATYPE_INTELLIGENCE | INTELLIGENCE | 智能脱敏 | 小于 4 位的全脱,否则保留前后各 2 位 |
966
- | DESENDATATYPE_REGEXP | REGEXP | 自定义脱敏正则 | 自定义脱敏正则,使用 desensitize-reg 入参值进行匹配 |
967
- | DESENDATATYPE_CUSTOM | CUSTOM | 自定义脱敏数据处理方法 | 自定义脱敏数据处理方法,使用 desensitizer 入参方法处理原始数据 |
968
-
969
- ::: ifdef M83
970
-
971
- <iframe
972
- src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-form"
973
- frameborder=0
974
- allowfullscreen class="ui-showcase-iframe">
975
- </iframe>
976
- ::: endif
977
- ::: ifdef M84
978
- <iframe
979
- src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-form"
980
- frameborder=0
981
- allowfullscreen class="ui-showcase-iframe">
982
- </iframe>
983
- ::: endif
984
-
985
- <style>
986
- .ui-showcase-iframe {
987
- position: fixed;
988
- right: 3.5vw;
989
- top: 17%;
990
- width: 375px;
991
- height: 75vh;
992
- box-shadow: 0 0 12px 6px #eee;
993
- border-radius: 15px;
994
- }
995
- .main .markdown-body {
996
- padding: 45px;
997
- width: calc(97vw - 661px);
998
- }
999
- </style>