m8-mcp-server 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +118 -32
  2. package/dist/index.d.mts +449 -0
  3. package/dist/index.d.ts +449 -0
  4. package/dist/index.js +700 -1
  5. package/dist/index.mjs +700 -0
  6. package/package.json +34 -21
  7. package/prompts/PROMPTS.md +476 -0
  8. package/bin/m8-mcp.js +0 -2
  9. package/dist/constants.js +0 -1
  10. package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
  11. package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
  12. package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
  13. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  14. package/dist/data/ejs-doc/api_device/api_device.md +0 -761
  15. package/dist/data/ejs-doc/api_event/api_event.md +0 -244
  16. package/dist/data/ejs-doc/api_global/api_global.md +0 -440
  17. package/dist/data/ejs-doc/api_io/api_io.md +0 -369
  18. package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
  19. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  20. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  21. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  22. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  23. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  24. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  25. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  26. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  27. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  28. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  29. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  30. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  31. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  32. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  33. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  34. package/dist/data/ejs-doc/api_page/api_page.md +0 -261
  35. package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
  36. package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
  37. package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
  38. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  39. package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
  40. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  41. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  42. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  43. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  44. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  45. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  46. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  47. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  48. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  49. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  50. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  51. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  52. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  53. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  54. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  55. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  56. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  57. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  58. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  59. package/dist/data/ejs-doc/api_util/api_util.md +0 -615
  60. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  61. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  62. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  63. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  71. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  72. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  73. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  74. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  75. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  76. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  77. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  78. 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
  79. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  80. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  81. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  82. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  83. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  84. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  85. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  86. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  87. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  88. 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
  89. 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
  90. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  91. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  98. 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
  99. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  100. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  101. 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
  102. 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
  103. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  104. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  111. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  112. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  113. 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
  114. 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
  115. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  116. 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
  117. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  118. 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
  119. 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
  120. 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
  121. 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
  122. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  123. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  124. 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
  125. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  146. 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
  147. 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
  148. 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
  149. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  150. 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
  151. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  152. 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
  153. 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
  154. 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
  155. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  156. 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
  157. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  158. 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
  159. package/dist/data/standards/css-style.md +0 -531
  160. package/dist/data/standards/js-style.md +0 -394
  161. package/dist/data/standards/project-structure.md +0 -325
  162. package/dist/data/standards/vue-style.md +0 -644
  163. package/dist/tools/search.js +0 -1
  164. package/dist/tools/standards.js +0 -1
@@ -1,531 +0,0 @@
1
- # 组件使用
2
-
3
- ## uploader 文件上传
4
-
5
- ### 介绍
6
-
7
- - 文件上传组件。
8
-
9
- ### 代码演示
10
-
11
- #### 基础用法
12
-
13
- 文件上传完毕后会触发 `after-read` 回调函数,获取到对应的 `file` 对象。
14
-
15
- ```html
16
- <em-uploader :after-read="afterRead" />
17
- ```
18
-
19
- ::: ifdef M83
20
-
21
- ```js
22
- export default {
23
- methods: {
24
- afterRead(file, detail) {
25
- // 此时可以自行将文件上传至服务器
26
- console.log(file, detail);
27
- }
28
- }
29
- };
30
- ```
31
-
32
- ::: endif
33
-
34
- ::: ifdef M84
35
-
36
- ```js
37
- const afterRead = (file, detail) => {
38
- // 此时可以自行将文件上传至服务器
39
- console.log(file, detail);
40
- };
41
- ```
42
-
43
- ::: endif
44
-
45
- #### 文件预览
46
-
47
- 通过`v-model`可以绑定已经上传的文件列表,并展示文件列表的预览图。
48
-
49
- ```html
50
- <em-uploader v-model="fileList" multiple />
51
- ```
52
-
53
- ::: ifdef M83
54
-
55
- ```js
56
- export default {
57
- data() {
58
- return {
59
- fileList: [
60
- { url: 'https://img.yzcdn.cn/vant/leaf.jpg' },
61
- // Uploader 根据文件后缀来判断是否为图片文件
62
- // 如果图片 URL 中不包含类型信息,可以添加 isImage 标记来声明
63
- { url: 'https://cloud-image', isImage: true }
64
- ]
65
- };
66
- }
67
- };
68
- ```
69
-
70
- ::: endif
71
- ::: ifdef M84
72
-
73
- ```js
74
- import { ref } from 'vue';
75
-
76
- const fileList = ref([
77
- { url: 'https://img.yzcdn.cn/vant/leaf.jpg' },
78
- // Uploader 根据文件后缀来判断是否为图片文件
79
- // 如果图片 URL 中不包含类型信息,可以添加 isImage 标记来声明
80
- { url: 'https://cloud-image', isImage: true }
81
- ]);
82
- ```
83
-
84
- ::: endif
85
-
86
- #### 上传状态
87
-
88
- 通过 `status` 属性可以标识上传状态,`uploading` 表示上传中,`failed` 表示上传失败,`done` 表示上传完成。
89
-
90
- ```html
91
- <em-uploader v-model="fileList" :after-read="afterRead" />
92
- ```
93
-
94
- ::: ifdef M83
95
-
96
- ```js
97
- export default {
98
- data() {
99
- return {
100
- fileList: [
101
- {
102
- url: 'https://img.yzcdn.cn/vant/leaf.jpg',
103
- status: 'uploading',
104
- message: '上传中...'
105
- },
106
- {
107
- url: 'https://img.yzcdn.cn/vant/tree.jpg',
108
- status: 'failed',
109
- message: '上传失败'
110
- }
111
- ]
112
- };
113
- },
114
- methods: {
115
- afterRead(file, detail) {
116
- file.status = 'uploading';
117
- file.message = '上传中...';
118
-
119
- setTimeout(() => {
120
- file.status = 'failed';
121
- file.message = '上传失败';
122
- }, 1000);
123
- }
124
- }
125
- };
126
- ```
127
-
128
- ::: endif
129
- ::: ifdef M84
130
-
131
- ```js
132
- import { ref } from 'vue';
133
-
134
- const fileList = ref([
135
- {
136
- url: 'https://img.yzcdn.cn/vant/leaf.jpg',
137
- status: 'uploading',
138
- message: '上传中...'
139
- },
140
- {
141
- url: 'https://img.yzcdn.cn/vant/tree.jpg',
142
- status: 'failed',
143
- message: '上传失败'
144
- }
145
- ]);
146
-
147
- const afterRead = (file, detail) => {
148
- file.status = 'uploading';
149
- file.message = '上传中...';
150
-
151
- setTimeout(() => {
152
- file.status = 'failed';
153
- file.message = '上传失败';
154
- }, 1000);
155
- };
156
- ```
157
-
158
- ::: endif
159
-
160
- #### 限制上传数量
161
-
162
- 通过 `max-count` 属性可以限制上传文件的数量,上传数量达到限制后,会自动隐藏上传区域。
163
-
164
- ```html
165
- <em-uploader v-model="fileList" multiple :max-count="2" />
166
- ```
167
-
168
- ::: ifdef M83
169
-
170
- ```js
171
- export default {
172
- data() {
173
- return {
174
- fileList: []
175
- };
176
- }
177
- };
178
- ```
179
-
180
- ::: endif
181
- ::: ifdef M84
182
-
183
- ```js
184
- import { ref } from 'vue';
185
-
186
- const fileList = ref([]);
187
- ```
188
-
189
- ::: endif
190
-
191
- #### 限制上传大小
192
-
193
- 通过 `max-size` 属性可以限制上传文件的大小,超过大小的文件会被自动过滤,这些文件信息可以通过 `oversize` 事件获取。
194
-
195
- ```html
196
- <em-uploader multiple :max-size="14 * 1024" @oversize="onOversize" />
197
- ```
198
-
199
- ::: ifdef M83
200
-
201
- ```js
202
- export default {
203
- methods: {
204
- onOversize(file) {
205
- console.log(file);
206
- }
207
- }
208
- };
209
- ```
210
-
211
- ::: endif
212
- ::: ifdef M84
213
-
214
- ```js
215
- import { ref } from 'vue';
216
-
217
- const oversize = (file) => {
218
- console.log(file);
219
- };
220
- ```
221
-
222
- ::: endif
223
-
224
- #### 自定义上传样式
225
-
226
- 通过默认插槽可以自定义上传区域的样式。
227
-
228
- ```html
229
- <em-uploader>
230
- <em-button icon="plus" type="primary">上传文件</em-button>
231
- </em-uploader>
232
- ```
233
-
234
- #### 上传前置处理
235
-
236
- 通过传入 `beforeRead` 函数可以在上传前进行校验和处理,返回 `true` 表示校验通过,返回 `false` 表示校验失败。支持返回 `Promise` 对 `file` 对象进行自定义处理,例如压缩图片。
237
-
238
- ::: ifdef M83
239
-
240
- ```html
241
- <em-uploader :before-read="beforeRead" />
242
- <em-toast ref="emToast"></em-toast>
243
- ```
244
-
245
- ```js
246
- export default {
247
- methods: {
248
- // 返回布尔值
249
- beforeRead(file) {
250
- if (file.type !== 'image/jpeg') {
251
- Toast('请上传 jpg 格式图片');
252
- return false;
253
- }
254
- return true;
255
- },
256
- // 返回 Promise
257
- asyncBeforeRead(file) {
258
- return new Promise((resolve, reject) => {
259
- if (file.type !== 'image/jpeg') {
260
- Toast('请上传 jpg 格式图片');
261
- reject();
262
- } else {
263
- let img = new File(['foo'], 'bar.jpg', {
264
- type: 'image/jpeg'
265
- });
266
- resolve(img);
267
- }
268
- });
269
- }
270
- }
271
- };
272
- ```
273
-
274
- ::: endif
275
- ::: ifdef M84
276
-
277
- ```html
278
- <em-uploader :before-read="beforeRead" />
279
- <em-toast ref="emToastRef"></em-toast>
280
- ```
281
-
282
- ```js
283
- import { ref } from 'vue';
284
-
285
- const beforeRead = (file) => {
286
- if (file.type !== 'image/jpeg') {
287
- Toast('请上传 jpg 格式图片');
288
- return false;
289
- }
290
- return true;
291
- };
292
-
293
- const asyncBeforeRead = (file) => {
294
- return new Promise((resolve, reject) => {
295
- if (file.type !== 'image/jpeg') {
296
- Toast('请上传 jpg 格式图片');
297
- reject();
298
- } else {
299
- let img = new File(['foo'], 'bar.jpg', {
300
- type: 'image/jpeg'
301
- });
302
- resolve(img);
303
- }
304
- });
305
- };
306
-
307
- const emToastRef = ref(null);
308
-
309
- defineExpose({
310
- emToastRef
311
- });
312
- ```
313
-
314
- ::: endif
315
-
316
- #### 禁用文件上传
317
-
318
- 通过 `disabled` 属性禁用文件上传
319
-
320
- ```html
321
- <em-uploader disabled />
322
- ```
323
-
324
- #### 自定义单个图片预览
325
-
326
- 在 `v-model` 数组中设置单个预览图片属性,支持 `imageFit` `deletable` `previewSize` `beforeDelete`,从 `8.2.10` 版本开始支持。
327
-
328
- ::: ifdef M83
329
-
330
- ```html
331
- <em-uploader v-model="fileList" :deletable="false" />
332
- <em-toast ref="emToast"></em-toast>
333
- ```
334
-
335
- ```js
336
- export default {
337
- data() {
338
- return {
339
- fileList = [
340
- { url: 'https://img01.yzcdn.cn/vant/leaf.jpg' },
341
- {
342
- url: 'https://img01.yzcdn.cn/vant/sand.jpg',
343
- deletable: true,
344
- beforeDelete: () => {
345
- Toast('自定义单个预览图片的事件和样式');
346
- },
347
- },
348
- {
349
- url: 'https://img01.yzcdn.cn/vant/tree.jpg',
350
- deletable: true,
351
- imageFit: 'contain',
352
- previewSize: 120,
353
- },
354
- ];
355
- }
356
- }
357
- };
358
- ```
359
-
360
- ::: endif
361
- ::: ifdef M84
362
-
363
- ```html
364
- <em-uploader v-model="fileList" :deletable="false" />
365
- <em-toast ref="emToastRef"></em-toast>
366
- ```
367
-
368
- ```js
369
- import { ref } from 'vue';
370
-
371
- const fileList = ref([
372
- { url: 'https://img01.yzcdn.cn/vant/leaf.jpg' },
373
- {
374
- url: 'https://img01.yzcdn.cn/vant/sand.jpg',
375
- deletable: true,
376
- beforeDelete: () => {
377
- Toast('自定义单个预览图片的事件和样式');
378
- }
379
- },
380
- {
381
- url: 'https://img01.yzcdn.cn/vant/tree.jpg',
382
- deletable: true,
383
- imageFit: 'contain',
384
- previewSize: 120
385
- }
386
- ]);
387
-
388
- const emToastRef = ref(null);
389
-
390
- defineExpose({
391
- emToastRef
392
- });
393
- ```
394
-
395
- ::: endif
396
-
397
- ### API
398
-
399
- 建议在 ejs 容器中使用 ejs 方法进行上传。
400
-
401
- #### Props
402
-
403
- | 参数 | 说明 | 类型 | 默认值 |
404
- | :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------- | :-------------------- |
405
- | v-model (fileList) | 已上传的文件列表 | FileListItem[] | - |
406
- | useEjsUpload | ejs 环境下是否使用 ejs 方法进行选择文件、图片、视频, 注意,由于`ejs api`返回的是个本地路径,若该参数开启则无法正常展示预览图,建议上传后,使用接口返回的图片路径进行展示。 | boolean | `false` |
407
- | accept | 允许上传的文件类型,例如,选择所有图片和视频:`image/*,video/*`,(详细说明)[https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input/file#%E9%99%90%E5%88%B6%E5%85%81%E8%AE%B8%E7%9A%84%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B] | string | `image/*` |
408
- | accept-extensions `v8.3.16-beta.1` | 允许上传的文件后缀名,例如,`['jpg', 'png']`, 不区分大小写 | array | - |
409
- | listType `v8.3.16-beta.1` | 列表样式类型:`default`、`card`、`vertical` | string | `default` |
410
- | title `v8.3.16-beta.1` | 附件上传标题 | string | - |
411
- | tip `v8.3.16-beta.1` | 附件上传提示 | string | - |
412
- | required `v8.3.16-beta.1` | 附件上传必填样式,`title`不为空时生效 | boolean | `false` |
413
- | name | 标识符,可以在回调函数的第二项参数中获取 | number / string | - |
414
- | preview-size | 预览图和上传区域的尺寸,默认单位为 px | number / string | `80px` |
415
- | preview-image | 是否在上传完成后展示预览图 | boolean | `true` |
416
- | preview-full-image | 是否在点击预览图后展示全屏图片预览 | boolean | `true` |
417
- | preview-options | 全屏图片预览的配置项,可选值见 `ImagePreview` 组件 | object | - |
418
- | multiple | 是否开启图片多选,部分安卓机型不支持 | boolean | `false` |
419
- | disabled | 是否禁用文件上传 | boolean | `false` |
420
- | deletable | 是否展示删除按钮 | boolean | `true` |
421
- | show-upload | 是否展示上传区域 | boolean | `true` |
422
- | lazy-load | 是否开启图片懒加载, | boolean | `false` |
423
- | capture | 图片选取模式,可选值为 `camera` `album` (直接调起摄像头) | array | `['camera', 'album']` |
424
- | after-read | 文件读取完成后的回调函数 | Function | - |
425
- | before-read | 文件读取前的回调函数,返回 `false` 可终止文件读取,支持返回`Promise` | Function | - |
426
- | before-delete | 文件删除前的回调函数,返回 `false` 可终止文件读取,支持返回`Promise` | Function | - |
427
- | max-size | 文件大小限制,单位为 `byte` | number / string | - |
428
- | max-count | 文件上传数量限制 | number / string | - |
429
- | result-type | 文件读取结果类型,可选值为 `dataUrl` `text`,注意,当开启`useEjsUpload`参数时,ejs 环境下该参数设置无效,文件只能读取到一个本地路径 | string | `file` |
430
- | upload-text | 上传区域文字提示 | **string** | - |
431
- | image-fit | 预览图裁剪模式,可选值见 `Image` 组件 | string | `cover` |
432
- | upload-icon | 上传区域图标名称或图片链接 | string | `photograph` |
433
-
434
- ##### accept
435
-
436
- 1. 在微信小程序和支付宝小程序中,上传图片或视频,底部弹窗由框架组件实现,弹窗内容依据`accept`及`capture`值展示,点击弹窗选项会调用`uniapp`提供的 API 选择图片或视频。
437
-
438
- 2. 在`H5`环境中,自框架`v8.3.10`开始,组件最终调用原生`input`实现功能,上传文件类型通过`accept`属性控制。由于各端浏览器实现不同,框架组件并未在 H5 环境中统一弹窗,弹窗内容由各端浏览器实现。
439
-
440
- 3. 在`EJS`环境中,设置`useEjsUpload`为`true`时,通过`ejs`方法实现不同文件选择,底部弹窗由框架组件实现。设置`useEjsUpload`为`false`时,自框架`v8.3.10`开始,调用原生`input`实现功能,上传文件类型通过`accept`属性控制。注意,`EJS-Android`环境下,由`input`唤起的底部弹窗由`EJS`原生实现,弹窗内容由`accept`一些特殊值决定,这些特殊值有必要在此说明下:
441
-
442
- | 值 | 说明 |
443
- | :------------- | :--------------------: |
444
- | `image/*` | `相册`(仅图片) |
445
- | `imagevideo/*` | `相册`(图片、视频) |
446
- | `camera/*` | `拍照` |
447
- | `video/*` | `录像` |
448
- | `file/*` | `文件` |
449
- | `*/*` | `文件`、`相册`、`拍照` |
450
-
451
- 以上几项也可以互相组合,用`_`连接,例如 `image_camera/*` 会弹出 `相册`、`拍照`选项。若不设置`accept`,在`EJS-Android`环境默认是`image_camera/*`。
452
-
453
- 4. 支付宝小程序不支持`file`类型上传,如果需要上传 pdf 类似文件,请单独使用支付宝小程序-文件管理系统:https://opendocs.alipay.com/mini/02pmiu。
454
-
455
- #### Events
456
-
457
- | 事件名 | 说明 | 回调参数 |
458
- | :---------------------------- | :----------------------------: | :---------------------------------------------------------------------- |
459
- | oversize | 文件大小超过限制时触发 | 同`after-read` |
460
- | click-preview | 点击预览图时触发 | 同`after-read` |
461
- | close-preview | 关闭预览图时触发 | 同`after-read` |
462
- | delete | 删除文件预览时触发 | 同`after-read` |
463
- | errextension `v8.3.16-beta.1` | 上传文件后缀名校验未通过时触发 | `file`: object,上传的文件, `acceptExtensions`: array,允许的后缀名列表 |
464
-
465
- #### Slots
466
-
467
- | 名称 | 说明 | SlotProps |
468
- | :------ | :------------: | :-------- |
469
- | default | 自定义上传区域 | - |
470
-
471
- #### 回调参数
472
-
473
- `before-read`、`after-read`、`before-delete` 执行时会传递以下回调参数:
474
-
475
- | 参数名 | 说明 | 类型 |
476
- | :----- | :-----------------------------------: | :----- |
477
- | file | `file` 对象 | object |
478
- | detail | 额外信息,包含 `name` 和 `index` 字段 | object |
479
-
480
- #### ResultType 可选值
481
-
482
- `result-type`字段表示文件读取结果的类型,上传大文件时,建议使用 `file` 类型,避免卡顿。
483
-
484
- 以当前端数据传输为准
485
-
486
- | 值 | 描述 |
487
- | :------ | :---------------------------------------------------------------: |
488
- | file | 结果仅包含 `File` 对象 `file` |
489
- | text | 结果包含 `File` 对象`file`,以及文件的文本内容`content` |
490
- | dataUrl | 结果包含 `File` 对象`file`,以及文件对应的 `base64` 编码`content` |
491
-
492
- #### 方法
493
-
494
- 通过 `ref` 可以获取到 `Uploader` 实例并调用实例方法,详见组件实例方法
495
-
496
- | 方法名 | 说明 | 参数 | 返回值 |
497
- | :---------------- | :--------------------------------------------------------------------------: | :--- | :----: |
498
- | closeImagePreview | 关闭全屏的图片预览 | - | - |
499
- | chooseFile | 主动调起文件选择,由于浏览器安全限制,只有在用户触发操作的上下文中调用才有效 | - | - |
500
-
501
- ::: ifdef M83
502
-
503
- <iframe
504
- src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-uploader"
505
- frameborder=0
506
- allowfullscreen class="ui-showcase-iframe">
507
- </iframe>
508
- ::: endif
509
- ::: ifdef M84
510
- <iframe
511
- src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-uploader"
512
- frameborder=0
513
- allowfullscreen class="ui-showcase-iframe">
514
- </iframe>
515
- ::: endif
516
-
517
- <style>
518
- .ui-showcase-iframe {
519
- position: fixed;
520
- right: 3.5vw;
521
- top: 17%;
522
- width: 375px;
523
- height: 75vh;
524
- box-shadow: 0 0 12px 6px #eee;
525
- border-radius: 15px;
526
- }
527
- .main .markdown-body {
528
- padding: 45px;
529
- width: calc(97vw - 661px);
530
- }
531
- </style>
@@ -1,111 +0,0 @@
1
- # 组件使用
2
-
3
- ## verifycode 验证码
4
-
5
- ### 介绍
6
-
7
- - 验证码组件。
8
-
9
- ### 代码演示
10
-
11
- #### 基础用法
12
-
13
- ```html
14
- <em-field placeholder="请输入验证码" v-model="value"></em-field>
15
- <em-verify-code :width="160" style="margin: 10px;" ref="verifycode"></em-verify-code>
16
- <em-button class="mr10" type="primary" plain @click="checkVerifyCode">校验验证码</em-button>
17
- <em-button type="danger" plain @click="updateVerify">更新验证码</em-button>
18
- ```
19
-
20
- ::: ifdef M83
21
-
22
- ```js
23
- export default {
24
- data() {
25
- return {
26
- value: ''
27
- };
28
- },
29
- methods: {
30
- updateVerify() {
31
- this.$refs.verifycode.update();
32
- },
33
- checkVerifyCode() {
34
- console.log(`验证结果:${this.$refs.verifycode.validate(this.value)}`);
35
- }
36
- }
37
- };
38
- ```
39
-
40
- ::: endif
41
- ::: ifdef M84
42
-
43
- ```js
44
- import { ref } from 'vue';
45
- const value = ref('');
46
- const verifycode = ref(null);
47
- const updateVerify = () => {
48
- verifycode.value.update();
49
- };
50
-
51
- const checkVerifyCode = () => {
52
- console.log(`验证结果:${verifycode.value.validate(value.value)}`);
53
- };
54
- ```
55
-
56
- ::: endif
57
-
58
- ### API
59
-
60
- #### Props
61
-
62
- | 参数 | 说明 | 类型 | 默认值 |
63
- | :------------------- | :----------------------: | :------ | :------ |
64
- | len | 验证码字符串长度 | number | `4` |
65
- | minfontsize | 验证码字符最小字体大小 | number | `20` |
66
- | maxfontsize | 验证码字符最大字体大小 | number | `35` |
67
- | bgColor | 验证码边框颜色 | string | `#444` |
68
- | colors | 自定义验证码每个字符颜色 | array | - |
69
- | width | 验证码画布宽度 | number | `130` |
70
- | height | 验证码画布高度 | number | `60` |
71
- | enableCaseValidation | 是否开启大小写校验 | boolean | `false` |
72
- | lines `v8.3.12` | 干扰线数量 | number | `8` |
73
- | points `v8.3.12` | 干扰点数量 | number | `100` |
74
-
75
- #### 方法
76
-
77
- | 方法名 | 说明 | 参数 | 返回值 |
78
- | :------- | :--------: | :------------------------------------ | :------------------------: |
79
- | update | 刷新验证码 | - | - |
80
- | validate | 验证码校验 | value: 用户输入的验证码,类型`String` | 检验是否通过,类型 Boolean |
81
-
82
- ::: ifdef M83
83
- <iframe
84
- src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-verify-code"
85
- frameborder=0
86
- allowfullscreen class="ui-showcase-iframe">
87
- </iframe>
88
- ::: endif
89
- ::: ifdef M84
90
- <iframe
91
- src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-verify-code"
92
- frameborder=0
93
- allowfullscreen class="ui-showcase-iframe">
94
- </iframe>
95
- ::: endif
96
-
97
- <style>
98
- .ui-showcase-iframe {
99
- position: fixed;
100
- right: 3.5vw;
101
- top: 17%;
102
- width: 375px;
103
- height: 75vh;
104
- box-shadow: 0 0 12px 6px #eee;
105
- border-radius: 15px;
106
- }
107
- .main .markdown-body {
108
- padding: 45px;
109
- width: calc(97vw - 661px);
110
- }
111
- </style>