m8-framework-mcp 1.0.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 (389) hide show
  1. package/README.md +175 -0
  2. package/build/index.js +963 -0
  3. package/docs/ejs-doc/404/404.html +9 -0
  4. package/docs/ejs-doc/_draft/sha1_salt.md +47 -0
  5. package/docs/ejs-doc/_include/config.php +10 -0
  6. package/docs/ejs-doc/_include/cssboot.inc.php +62 -0
  7. package/docs/ejs-doc/_include/jsboot.inc.php +7 -0
  8. package/docs/ejs-doc/api_app/api_app.md +43 -0
  9. package/docs/ejs-doc/api_audio/api_audio.md +225 -0
  10. package/docs/ejs-doc/api_auth/api_auth.md +256 -0
  11. package/docs/ejs-doc/api_basicCard/api_basicCard.md +69 -0
  12. package/docs/ejs-doc/api_card_ui/api_card_ui.md +37 -0
  13. package/docs/ejs-doc/api_contact/api_contact.md +295 -0
  14. package/docs/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  15. package/docs/ejs-doc/api_device/api_device.md +761 -0
  16. package/docs/ejs-doc/api_event/api_event.md +244 -0
  17. package/docs/ejs-doc/api_global/api_global.md +440 -0
  18. package/docs/ejs-doc/api_io/api_io.md +369 -0
  19. package/docs/ejs-doc/api_miniH5/api_miniH5.md +279 -0
  20. package/docs/ejs-doc/api_navigator/api_navigator.md +654 -0
  21. package/docs/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  22. package/docs/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  23. package/docs/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  24. package/docs/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  25. package/docs/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  26. package/docs/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  27. package/docs/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  28. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  29. package/docs/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  30. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  31. package/docs/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  32. package/docs/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  33. package/docs/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  34. package/docs/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  35. package/docs/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  36. package/docs/ejs-doc/api_page/api_page.md +261 -0
  37. package/docs/ejs-doc/api_runtime/api_runtime.md +788 -0
  38. package/docs/ejs-doc/api_storage/api_storage.md +320 -0
  39. package/docs/ejs-doc/api_stream/api_stream.md +152 -0
  40. package/docs/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  41. package/docs/ejs-doc/api_ui/api_ui.md +836 -0
  42. package/docs/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  43. package/docs/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  44. package/docs/ejs-doc/api_ui/images/ui_alert.png +0 -0
  45. package/docs/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  46. package/docs/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  47. package/docs/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  48. package/docs/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  49. package/docs/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  50. package/docs/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  51. package/docs/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  52. package/docs/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  53. package/docs/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  54. package/docs/ejs-doc/api_ui/images/ui_select.png +0 -0
  55. package/docs/ejs-doc/api_ui/images/ui_select2.png +0 -0
  56. package/docs/ejs-doc/api_ui/images/ui_select3.png +0 -0
  57. package/docs/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  58. package/docs/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  59. package/docs/ejs-doc/api_ui/images/ui_toast.png +0 -0
  60. package/docs/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  61. package/docs/ejs-doc/api_util/api_util.md +615 -0
  62. package/docs/ejs-doc/api_util/images/util.playvideo.png +0 -0
  63. package/docs/ejs-doc/api_util/images/util.previmage.png +0 -0
  64. package/docs/ejs-doc/api_util/images/util.selectfile.png +0 -0
  65. package/docs/ejs-doc/api_util/images/util.selectimage.png +0 -0
  66. package/docs/ejs-doc/authentication/authentication.md +28 -0
  67. package/docs/ejs-doc/changelog/changelog.md +290 -0
  68. package/docs/ejs-doc/component_invokeplugin/component_invokeplugin.md +54 -0
  69. package/docs/ejs-doc/component_outline/component_outline.md +71 -0
  70. package/docs/ejs-doc/guid_apiconstraint/guid_apiconstraint.md +30 -0
  71. package/docs/ejs-doc/guid_debugpage/guid_debugpage.md +53 -0
  72. package/docs/ejs-doc/guid_debugpage/images/client.jpg +0 -0
  73. package/docs/ejs-doc/guid_debugpage/images/room.png +0 -0
  74. package/docs/ejs-doc/guid_demodebug/guid_demodebug.md +59 -0
  75. package/docs/ejs-doc/guid_demodebug/images/qr_demo.png +0 -0
  76. package/docs/ejs-doc/guid_demodebug/images/qrcode-weex.png +0 -0
  77. package/docs/ejs-doc/guid_demodebug/images/qrcode.png +0 -0
  78. package/docs/ejs-doc/guid_demodebug/images/qrcode_ejs.png +0 -0
  79. package/docs/ejs-doc/guid_errorcode/guid_errorcode.md +27 -0
  80. package/docs/ejs-doc/guid_errorcode/images/5d38937fec5107c38502c3ee38ba5b2c.png +0 -0
  81. package/docs/ejs-doc/guid_getstart/guid_getstart.md +188 -0
  82. package/docs/ejs-doc/introduction/introduction.md +29 -0
  83. package/docs/ejs-doc/jsapi_h5_all/jsapi_h5_all.md +1231 -0
  84. package/docs/ejs-doc/jsapi_mini_all/jsapi_mini_all.md +1105 -0
  85. package/docs/ejs-doc/m7_mini_h5/images/001.png +0 -0
  86. package/docs/ejs-doc/m7_mini_h5/images/dev.png +0 -0
  87. package/docs/ejs-doc/m7_mini_h5/images/install.png +0 -0
  88. package/docs/ejs-doc/m7_mini_h5/images/mobile_dev.png +0 -0
  89. package/docs/ejs-doc/m7_mini_h5/images/setting.png +0 -0
  90. package/docs/ejs-doc/m7_mini_h5/images/update.png +0 -0
  91. package/docs/ejs-doc/m7_mini_h5/m7_mini_h5.md +410 -0
  92. package/docs/ejs-doc/promisesupport/promisesupport.md +84 -0
  93. package/docs/ejs-doc/structure/images/structure.jpg +0 -0
  94. package/docs/ejs-doc/structure/images/structure2.jpg +0 -0
  95. package/docs/ejs-doc/structure/structure.md +26 -0
  96. package/docs/ejs-doc/version/version.md +62 -0
  97. package/docs/m8mpdoc-develop/$navigation.md +343 -0
  98. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/000-/346/241/206/346/236/266/347/256/200/344/273/213.md +61 -0
  99. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/001-/346/241/206/346/236/266/346/236/266/346/236/204.md +60 -0
  100. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/002-/347/233/256/345/275/225/345/217/212/346/226/207/344/273/266/347/273/204/347/273/207.md +106 -0
  101. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/003-/345/206/205/347/275/256/347/254/254/344/270/211/346/226/271/345/272/223/350/257/264/346/230/216.md +25 -0
  102. package/docs/m8mpdoc-develop/000-/346/225/264/344/275/223/350/256/276/350/256/241/004-/345/267/245/347/250/213/350/207/252/345/256/232/344/271/211/351/205/215/347/275/256.md +97 -0
  103. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/000-/347/216/257/345/242/203/345/207/206/345/244/207.md +186 -0
  104. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/001-/345/237/272/347/241/200/350/257/255/346/263/225.md +218 -0
  105. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/002-Vue/347/273/204/344/273/266/344/273/213/347/273/215.md +139 -0
  106. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/004-VSCode/346/217/222/344/273/266.md +125 -0
  107. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/005-pages.md +300 -0
  108. package/docs/m8mpdoc-develop/0001-/345/211/215/346/234/237/345/207/206/345/244/207/006-manifest.md +173 -0
  109. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-CSS/350/257/255/346/263/225.md +217 -0
  110. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-ES6/346/224/257/346/214/201.md +14 -0
  111. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/344/273/200/344/271/210/346/230/257/346/235/241/344/273/266/347/274/226/350/257/221.md +176 -0
  112. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/200/345/217/221/350/247/204/350/214/203.md +167 -0
  113. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250CSS.md +15 -0
  114. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250JS.md +42 -0
  115. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250/347/273/204/344/273/266.md +34 -0
  116. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/345/274/225/347/224/250/351/235/231/346/200/201/350/265/204/346/272/220.md +69 -0
  117. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/346/240/207/345/207/206js/345/222/214/346/265/217/350/247/210/345/231/250js/347/232/204/345/214/272/345/210/253.md +16 -0
  118. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/260/203/350/257/225.md +29 -0
  119. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/267/250/347/253/257/345/205/274/345/256/271.md +11 -0
  120. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/000-/350/277/220/350/241/214.md +50 -0
  121. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/001-/350/267/250/347/253/257/346/263/250/346/204/217.md +325 -0
  122. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/002-/346/241/206/346/236/266/350/216/267/345/217/226.md +38 -0
  123. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/002-/346/241/206/346/236/266/350/216/267/345/217/226vue3.md +39 -0
  124. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/003-/350/267/257/345/276/204/345/210/253/345/220/215.md +21 -0
  125. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/004-/345/274/200/345/247/213/345/274/200/345/217/221.md +105 -0
  126. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/005-/350/265/204/346/272/220/345/244/204/347/220/206/344/270/216/345/217/221/345/270/203.md +0 -0
  127. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/006-Boot/345/205/261/347/224/250/350/265/204/346/272/220.md +13 -0
  128. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/007-Config/344/270/232/345/212/241/351/205/215/347/275/256.md +325 -0
  129. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/008-/345/267/245/345/205/267/347/261/273/346/240/267/345/274/217.md +91 -0
  130. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/009-/347/224/237/345/221/275/345/221/250/346/234/237.md +119 -0
  131. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/009-/347/224/237/345/221/275/345/221/250/346/234/237vue3.md +100 -0
  132. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/010-/346/236/204/345/273/272.md +94 -0
  133. package/docs/m8mpdoc-develop/001-/351/241/265/351/235/242/345/274/200/345/217/221/011-/345/217/221/345/270/203.md +51 -0
  134. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/000-token/347/232/204/344/275/277/347/224/250.md +5 -0
  135. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/001-/344/273/243/347/240/201/350/247/204/350/214/203/350/207/252/345/212/250/346/243/200/346/265/213.md +0 -0
  136. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/002-/345/211/215/345/220/216/347/253/257/346/225/260/346/215/256/344/272/244/344/272/222/345/274/200/345/217/221/346/250/241/345/274/217.md +5 -0
  137. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003-style-guide.md +23 -0
  138. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.1-style-guide-a.md +872 -0
  139. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.2-style-guide-b.md +1041 -0
  140. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.3-style-guide-c.md +489 -0
  141. package/docs/m8mpdoc-develop/002-/350/247/204/350/214/203/344/270/216/346/250/241/345/274/217/003.4-style-guide-d.md +372 -0
  142. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +247 -0
  143. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +276 -0
  144. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +130 -0
  145. package/docs/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +115 -0
  146. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/000-EJS2.X.md +5 -0
  147. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS3.X.md +5 -0
  148. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.X.md +5 -0
  149. package/docs/m8mpdoc-develop/004-EJS/347/233/270/345/205/263/001-EJS4.Xmp.md +5 -0
  150. package/docs/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +398 -0
  151. package/docs/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +456 -0
  152. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +128 -0
  153. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +142 -0
  154. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +210 -0
  155. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +85 -0
  156. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +21 -0
  157. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +36 -0
  158. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +128 -0
  159. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +148 -0
  160. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +76 -0
  161. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +59 -0
  162. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +95 -0
  163. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +76 -0
  164. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +202 -0
  165. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +92 -0
  166. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +412 -0
  167. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +146 -0
  168. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +137 -0
  169. package/docs/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +363 -0
  170. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +188 -0
  171. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +460 -0
  172. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +285 -0
  173. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +211 -0
  174. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +213 -0
  175. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +501 -0
  176. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +168 -0
  177. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +617 -0
  178. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +539 -0
  179. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +999 -0
  180. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +150 -0
  181. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +133 -0
  182. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +117 -0
  183. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +152 -0
  184. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +427 -0
  185. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +212 -0
  186. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +85 -0
  187. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +175 -0
  188. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +519 -0
  189. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +152 -0
  190. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +103 -0
  191. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +285 -0
  192. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +189 -0
  193. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +217 -0
  194. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +166 -0
  195. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +340 -0
  196. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +265 -0
  197. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +196 -0
  198. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +115 -0
  199. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +232 -0
  200. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +631 -0
  201. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +531 -0
  202. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +111 -0
  203. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +337 -0
  204. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +150 -0
  205. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +144 -0
  206. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +429 -0
  207. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +467 -0
  208. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +295 -0
  209. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +577 -0
  210. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +491 -0
  211. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +265 -0
  212. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +203 -0
  213. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +139 -0
  214. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +199 -0
  215. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +183 -0
  216. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +289 -0
  217. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +97 -0
  218. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +146 -0
  219. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +292 -0
  220. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +120 -0
  221. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +114 -0
  222. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +119 -0
  223. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +208 -0
  224. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +161 -0
  225. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +248 -0
  226. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +314 -0
  227. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +162 -0
  228. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +325 -0
  229. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +360 -0
  230. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +595 -0
  231. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +262 -0
  232. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +51 -0
  233. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +132 -0
  234. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +1538 -0
  235. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +261 -0
  236. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +161 -0
  237. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +381 -0
  238. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +531 -0
  239. package/docs/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +849 -0
  240. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/001-/345/260/217/347/250/213/345/272/217/345/256/277/344/270/273/347/216/257/345/242/203.md +196 -0
  241. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/002-/350/256/276/350/256/241.md +0 -0
  242. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/003-/345/274/200/345/217/221/345/260/217/347/250/213/345/272/217.md +267 -0
  243. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/004-/345/260/217/347/250/213/345/272/217/351/205/215/347/275/256.md +71 -0
  244. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/005-/345/274/200/345/217/221/345/260/217/347/250/213/345/272/217/345/215/241/347/211/207.md +307 -0
  245. package/docs/m8mpdoc-develop/010-/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/006-/345/274/200/345/217/221/345/206/205/347/275/256/345/260/217/347/250/213/345/272/217.md +222 -0
  246. package/docs/m8mpdoc-develop/011-vuex/344/270/216router/347/232/204/344/275/277/347/224/250/router/347/232/204/344/275/277/347/224/250.md +275 -0
  247. package/docs/m8mpdoc-develop/011-vuex/344/270/216router/347/232/204/344/275/277/347/224/250/vuex/347/232/204/344/275/277/347/224/250.md +60 -0
  248. package/docs/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +116 -0
  249. package/docs/m8mpdoc-develop/013-/350/247/243/345/206/263/346/234/254/345/234/260/350/267/250/345/237/237/devServer/350/267/250/345/237/237/351/205/215/347/275/256.md +81 -0
  250. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/DOM/346/223/215/344/275/234/346/227/266/346/234/272.md +45 -0
  251. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/M8.3/351/241/271/347/233/256/350/277/201/347/247/273/350/207/263M8.4.md +216 -0
  252. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/M8/350/200/201/351/241/271/347/233/256/350/277/201/347/247/273/350/267/250/347/253/257.md +55 -0
  253. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/install.md +91 -0
  254. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/pageopen.md +52 -0
  255. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/postcss/350/256/276/347/275/256.md +24 -0
  256. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/spechara.md +39 -0
  257. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/token/350/256/276/347/275/256.md +14 -0
  258. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/transpile_dependencies.md +18 -0
  259. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230/webview/344/270/255/345/206/205/345/265/214H5/351/241/265/351/235/242.md +186 -0
  260. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/270/211/346/226/271APP/346/240/207/351/242/230/344/270/215/350/207/252/345/212/250/344/277/256/346/224/271.md +30 -0
  261. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/270/252/346/200/247/345/214/226/346/241/206/346/236/266/347/273/204/344/273/266.md +87 -0
  262. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/274/240/345/200/274/345/212/250/346/200/201/346/240/267/345/274/217.md +29 -0
  263. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//344/277/256/346/224/271/347/273/204/344/273/266/345/206/205/346/240/267/345/274/217.md +29 -0
  264. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//345/244/204/347/220/206/346/226/260/347/202/271/345/260/217/347/250/213/345/272/217/350/267/250/345/237/237/351/227/256/351/242/230.md +22 -0
  265. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//346/243/200/346/265/213/345/217/230/345/214/226/347/232/204/346/263/250/346/204/217/344/272/213/351/241/271.md +183 -0
  266. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//347/234/237/346/234/272/350/260/203/350/257/225.md +26 -0
  267. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//350/267/250/347/253/257/345/274/200/345/217/221/345/270/270/350/247/201/351/227/256/351/242/230.md +126 -0
  268. package/docs/m8mpdoc-develop/014-/345/270/270/350/247/201/351/227/256/351/242/230//350/267/250/347/253/257/346/241/206/346/236/266/345/256/211/345/205/250/345/237/237/351/200/202/351/205/215.md +153 -0
  269. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/3thbuild.md +42 -0
  270. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/Pinia/347/232/204/344/275/277/347/224/250.md +88 -0
  271. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/custom_compts.md +60 -0
  272. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customize.md +283 -0
  273. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/customtoken.md +74 -0
  274. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/i18n.md +220 -0
  275. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/modules.md +44 -0
  276. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/multiple.md +160 -0
  277. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/neui/345/272/224/347/224/250/346/236/204/345/273/272.md +111 -0
  278. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/pages.md +18 -0
  279. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/scss/345/217/230/351/207/217.md +132 -0
  280. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/subpage.md +107 -0
  281. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/weex/345/272/224/347/224/250/346/236/204/345/273/272.md +106 -0
  282. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226/xmapp.md +77 -0
  283. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226//344/270/216/345/216/237/347/224/237/351/241/271/347/233/256/350/236/215/345/220/210.md +61 -0
  284. package/docs/m8mpdoc-develop/015-/345/267/245/347/250/213/345/214/226//351/200/202/350/200/201/345/214/226/346/226/271/346/241/210.md +74 -0
  285. package/docs/m8mpdoc-develop/016-/350/247/206/350/247/211/350/247/204/350/214/203//347/247/273/345/212/250/350/247/206/350/247/211/350/256/276/350/256/241/350/247/204/350/214/2032.0.md +1 -0
  286. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/001-view.md +56 -0
  287. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/002-scroll-view.md +233 -0
  288. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/003-match-media.md +43 -0
  289. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/004-movable-view.md +118 -0
  290. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/005-cover-view.md +20 -0
  291. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/006-cover-image.md +154 -0
  292. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/007-audio.md +81 -0
  293. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/008-camera.md +70 -0
  294. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/009-image.md +197 -0
  295. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/010-video.md +196 -0
  296. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/011-live-player.md +139 -0
  297. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/012-live-pusher.md +274 -0
  298. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/013-canvas.md +90 -0
  299. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/014-web-view.md +151 -0
  300. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/015-vue/347/273/204/344/273/266.md +308 -0
  301. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/018-map.md +278 -0
  302. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/019-input.md +202 -0
  303. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/020-textarea.md +119 -0
  304. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/021-movable-area.md +25 -0
  305. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/022-page-meta.md +80 -0
  306. package/docs/m8mpdoc-develop/017-/345/206/205/347/275/256/347/273/204/344/273/266/023-navigation-bar.md +58 -0
  307. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/0-/344/273/213/347/273/215.md +92 -0
  308. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/000-/351/200/232/347/224/250/346/240/267/345/274/217.md +9 -0
  309. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/001-button/346/214/211/351/222/256.md +497 -0
  310. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/002-buttonedit/346/214/211/351/222/256/347/274/226/350/276/221.md +146 -0
  311. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/003-radio/345/215/225/351/200/211/346/241/206.md +476 -0
  312. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/004-checkbox/345/244/232/351/200/211/347/273/204.md +622 -0
  313. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/005-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +257 -0
  314. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/006-slider/346/273/221/345/235/227.md +420 -0
  315. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/007-badge/350/247/222/346/240/207.md +175 -0
  316. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/008-icon/345/233/276/346/240/207.md +133 -0
  317. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/009-overlay/351/201/256/347/275/251/345/261/202.md +111 -0
  318. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/010-drawer/346/212/275/345/261/211.md +369 -0
  319. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/011-dialog/345/274/271/345/207/272/345/261/202.md +430 -0
  320. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/015-steps/346/255/245/351/252/244/346/235/241.md +250 -0
  321. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/017-tooltip/346/226/207/345/255/227/346/217/220/347/244/272.md +101 -0
  322. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/018-progress/350/277/233/345/272/246/346/235/241.md +252 -0
  323. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/019-layout/345/270/203/345/261/200.md +324 -0
  324. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/023-toolbar/345/267/245/345/205/267/346/240/217.md +612 -0
  325. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/024-toolbarbtns/346/214/211/351/222/256/347/273/204.md +228 -0
  326. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/025-input/350/276/223/345/205/245/346/241/206.md +383 -0
  327. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/026-autocomplete/350/207/252/345/212/250/350/241/245/345/205/250/350/276/223/345/205/245/346/241/206.md +305 -0
  328. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/027-form/350/241/250/345/215/225.md +1343 -0
  329. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/028-cascader/347/272/247/350/201/224.md +695 -0
  330. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/029-image/345/233/276/347/211/207.md +211 -0
  331. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/031-datagrid/345/210/227/350/241/250.md +664 -0
  332. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/032-pagination/345/210/206/351/241/265.md +192 -0
  333. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/033-configprovider/345/205/250/345/261/200/351/205/215/347/275/256.md +417 -0
  334. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/034-switch/345/274/200/345/205/263.md +305 -0
  335. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/035-breadcrumb/351/235/242/345/214/205/345/261/221.md +90 -0
  336. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/036-empty/347/251/272/347/212/266/346/200/201.md +80 -0
  337. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/037-colorpalette/350/260/203/350/211/262/346/235/277.md +201 -0
  338. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/038-alert/346/217/220/347/244/272.md +206 -0
  339. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/039-scrollbar/346/273/232/345/212/250/346/235/241.md +256 -0
  340. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/040-skeleton/351/252/250/346/236/266/345/261/217.md +284 -0
  341. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/041-loading/345/212/240/350/275/275.md +183 -0
  342. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/042-verifycode/351/252/214/350/257/201/347/240/201.md +128 -0
  343. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/043-timeline/346/227/266/351/227/264/350/275/264.md +196 -0
  344. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/044-workflow/345/267/245/344/275/234/346/265/201.md +452 -0
  345. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/045-ewebeditor/345/257/214/346/226/207/346/234/254/347/274/226/350/276/221/345/231/250.md +236 -0
  346. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/046-tabs/346/240/207/347/255/276/351/241/265.md +388 -0
  347. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/047-notification/351/200/232/347/237/245.md +321 -0
  348. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/048-dropdown/344/270/213/346/213/211/350/217/234/345/215/225.md +400 -0
  349. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/049-tree/346/240/221/345/275/242/346/216/247/344/273/266.md +1567 -0
  350. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/050-popover/345/274/271/345/207/272/346/241/206.md +294 -0
  351. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/051-select/351/200/211/346/213/251/345/231/250.md +976 -0
  352. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/052-tree-select/346/240/221/345/275/242/351/200/211/346/213/251.md +918 -0
  353. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/053-inputnumber/346/225/260/345/255/227/350/276/223/345/205/245/346/241/206.md +206 -0
  354. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/054-tag/346/240/207/347/255/276.md +348 -0
  355. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/055-upload/344/270/212/344/274/240.md +718 -0
  356. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/056-message/346/266/210/346/201/257/346/217/220/347/244/272.md +287 -0
  357. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/057-segmented/345/210/206/346/256/265/346/216/247/345/210/266/345/231/250.md +222 -0
  358. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/058-progress/350/277/233/345/272/246/346/235/241.md +420 -0
  359. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/059-result/347/273/223/346/236/234.md +106 -0
  360. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/060-avatar/345/244/264/345/203/217.md +294 -0
  361. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/061-affix/345/233/272/351/222/211.md +120 -0
  362. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/062-popconfirm/346/260/224/346/263/241/347/241/256/350/256/244/346/241/206.md +139 -0
  363. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/063-input-tag/346/240/207/347/255/276/350/276/223/345/205/245/346/241/206.md +244 -0
  364. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/063-messagebox/346/266/210/346/201/257/345/274/271/346/241/206.md +527 -0
  365. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/064-rate/350/257/204/345/210/206.md +223 -0
  366. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/065-table/350/241/250/346/240/274.md +1417 -0
  367. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/066-link/351/223/276/346/216/245.md +177 -0
  368. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/067-file-upload/346/226/207/344/273/266/344/270/212/344/274/240.md +389 -0
  369. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/068-text/346/226/207/346/234/254.md +202 -0
  370. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/069-backtop/345/233/236/345/210/260/351/241/266/351/203/250.md +165 -0
  371. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/070-image-upload/345/233/276/347/211/207/344/270/212/344/274/240.md +388 -0
  372. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/071-file-list/346/226/207/344/273/266/345/210/227/350/241/250.md +94 -0
  373. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/072-sublist/345/255/220/350/241/250.md +729 -0
  374. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/073-carousel/350/265/260/351/251/254/347/201/257.md +306 -0
  375. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/075-date-picker/346/227/245/346/234/237/351/200/211/346/213/251.md +580 -0
  376. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/076-colorPicker/351/242/234/350/211/262/351/200/211/346/213/251/345/231/250.md +183 -0
  377. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/077-mention/346/217/220/345/217/212.md +390 -0
  378. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/079-timeselect/346/227/266/351/227/264/351/200/211/346/213/251/345/231/250.md +170 -0
  379. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/080-card/345/215/241/347/211/207.md +198 -0
  380. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/082-datetimepicker/346/227/266/351/227/264/351/200/211/346/213/251.md +392 -0
  381. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/085-timepicker/346/227/266/351/227/264/351/200/211/346/213/251/345/231/250.md +163 -0
  382. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/086-calendar/346/227/245/345/216/206.md +141 -0
  383. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/087-divider/345/210/206/345/211/262/347/272/277.md +77 -0
  384. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/090-upload-service/346/226/207/344/273/266/344/270/212/344/274/240.md +61 -0
  385. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/091-image-upload-service/345/233/276/347/211/207/344/270/212/344/274/240.md +49 -0
  386. package/docs/m8mpdoc-develop/018-EPUI/347/273/204/344/273/266/092-space/351/227/264/350/267/235.md +305 -0
  387. package/docs/m8mpdoc-develop/home-/351/246/226/351/241/265.md +612 -0
  388. package/docs/m8mpdoc-develop/home1-propose.md +45 -0
  389. package/package.json +54 -0
package/build/index.js ADDED
@@ -0,0 +1,963 @@
1
+ #!/usr/bin/env node
2
+ import{McpServer as Ne}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Ve}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as h}from"zod";import{fileURLToPath as Oe}from"url";import{dirname as Te,join as te}from"path";import{existsSync as Ee}from"fs";import*as C from"path";import*as w from"fs";import*as D from"path";function ne(e){try{return w.readFileSync(e,"utf-8")}catch(s){return console.error(`[Parser] \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: ${e}`,s),""}}function k(e){let s=[];try{if(!w.existsSync(e))return console.error(`[Parser] \u76EE\u5F55\u4E0D\u5B58\u5728: ${e}`),s;let t=w.readdirSync(e,{withFileTypes:!0});for(let n of t){let o=D.join(e,n.name);n.isDirectory()?s.push(...k(o)):n.isFile()&&n.name.endsWith(".md")&&s.push(o)}}catch(t){console.error(`[Parser] \u626B\u63CF\u76EE\u5F55\u5931\u8D25: ${e}`,t)}return s}function re(e){let s=[];for(let t of e){if(/^\|[\s\-:]+\|$/.test(t.trim()))continue;let n=t.split("|").map(o=>o.trim()).filter(o=>o!=="");n.length>0&&s.push(n)}return s}function j(e){let s=ne(e),t=[],n="",o=s.split(`
3
+ `),i=0;for(;i<o.length;){let a=o[i],r=a.match(/^(#{1,6})\s+(.+)$/);if(r){let l=r[1].length,p=r[2].trim();l===1&&!n&&(n=p),t.push({type:"heading",level:l,content:p}),i++;continue}if(a.startsWith("```")){let l=a.slice(3).trim(),p=[];for(i++;i<o.length&&!o[i].startsWith("```");)p.push(o[i]),i++;t.push({type:"code",content:p.join(`
4
+ `),language:l||"text"}),i++;continue}if(a.startsWith("|")){let l=[a];for(i++;i<o.length&&o[i].startsWith("|");)l.push(o[i]),i++;let p=re(l);t.push({type:"table",content:l.join(`
5
+ `),rows:p});continue}if(/^[\-\*\+]\s/.test(a)||/^\d+\.\s/.test(a)){let l=[a];for(i++;i<o.length&&(/^[\-\*\+]\s/.test(o[i])||/^\d+\.\s/.test(o[i])||/^\s+/.test(o[i]));)l.push(o[i]),i++;t.push({type:"list",content:l.join(`
6
+ `)});continue}if(a.trim()){let l=[a];for(i++;i<o.length&&o[i].trim()&&!o[i].startsWith("#")&&!o[i].startsWith("```")&&!o[i].startsWith("|");)l.push(o[i]),i++;t.push({type:"paragraph",content:l.join(`
7
+ `)});continue}i++}return{filePath:e,title:n,nodes:t,rawContent:s}}function b(e,s,t){let n=[],o=!1,i=0;for(let a of e){if(a.type==="heading"){if(a.content.toLowerCase().includes(s.toLowerCase())){if(!t||a.level===t){o=!0,i=a.level;continue}}else if(o&&a.level<=i)break}o&&n.push(a)}return n}function N(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function ie(e){let s=e.replace(".md","").replace(/^\d+-/,""),t=s.match(/^([a-zA-Z\-]+)(.*)$/);return t?{name:t[1].toLowerCase(),displayName:t[2]||t[1]}:{name:s.toLowerCase(),displayName:s}}function ae(e){let s=e.split(C.sep);for(let t of s)if(t.includes("\u7EC4\u4EF6")||t.includes("UI"))return t.replace(/^\d+-/,"");return"\u5176\u4ED6"}function L(e){let s=[];if(e.length<2)return s;let t=e[0].map(r=>r.toLowerCase()),n=t.findIndex(r=>r.includes("\u53C2\u6570")||r.includes("name")||r.includes("\u5C5E\u6027")),o=t.findIndex(r=>r.includes("\u7C7B\u578B")||r.includes("type")),i=t.findIndex(r=>r.includes("\u9ED8\u8BA4")||r.includes("default")),a=t.findIndex(r=>r.includes("\u8BF4\u660E")||r.includes("\u63CF\u8FF0")||r.includes("description"));for(let r=1;r<e.length;r++){let l=e[r],p={name:n>=0&&l[n]?l[n].trim():"",type:o>=0&&l[o]?l[o].trim():"any",description:a>=0&&l[a]?l[a].trim():""};i>=0&&l[i]&&(p.default=l[i].trim()),p.name&&s.push(p)}return s}function le(e){let s=[];if(e.length<2)return s;let t=e[0].map(a=>a.toLowerCase()),n=t.findIndex(a=>a.includes("\u4E8B\u4EF6")||a.includes("name")||a.includes("\u540D")),o=t.findIndex(a=>a.includes("\u8BF4\u660E")||a.includes("\u63CF\u8FF0")),i=t.findIndex(a=>a.includes("\u53C2\u6570")||a.includes("\u56DE\u8C03"));for(let a=1;a<e.length;a++){let r=e[a],l={name:n>=0&&r[n]?r[n].trim():"",description:o>=0&&r[o]?r[o].trim():""};i>=0&&r[i]&&(l.params=r[i].trim()),l.name&&s.push(l)}return s}function pe(e){let s=N();if(e.length<2)return s;let t=e[0].map(i=>i.toLowerCase()),n=e[1],o=[{keywords:["ejs","h5 \u5E94\u7528","h5\u5E94\u7528"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let i=0;i<t.length&&i<n.length;i++){let a=t[i],r=n[i].trim().toLowerCase();for(let{keywords:l,key:p}of o)if(l.some(c=>a.includes(c))){r==="\u652F\u6301"||r==="\u662F"||r==="true"||r==="yes"?s[p]=!0:r==="\u4E0D\u652F\u6301"||r==="\u5426"||r==="false"||r==="no"?s[p]=!1:r&&(s[p]=n[i].trim());break}}return s}function ce(e){let s=[],t="",n;for(let o of e)o.type==="heading"&&(t=o.content,o.content.includes("M8.3")||o.content.includes("vue2")?n="M8.3":(o.content.includes("M8.4")||o.content.includes("vue3"))&&(n="M8.4")),o.type==="code"&&o.language&&["html","vue","js","javascript","typescript"].includes(o.language.toLowerCase())&&s.push({title:t,code:o.content,language:o.language,frameworkVersion:n});return s}function ue(e){try{let s=j(e),t=C.basename(e),{name:n,displayName:o}=ie(t),i=ae(e),a="";for(let m of s.nodes)if(m.type==="paragraph"){a=m.content.split(`
8
+ `)[0];break}let r=[],l=b(s.nodes,"props");for(let m of l)if(m.type==="table"&&m.rows){r=L(m.rows);break}if(r.length===0){let m=b(s.nodes,"api");for(let f of m)if(f.type==="table"&&f.rows){r=L(f.rows);break}}let p=[],c=b(s.nodes,"events");for(let m of c)if(m.type==="table"&&m.rows){p=le(m.rows);break}let u=N();for(let m of s.nodes)if(m.type==="table"&&m.rows&&m.rows.length>=2){let f=m.rows[0].join(" ").toLowerCase();if(f.includes("\u5E73\u53F0")||f.includes("ejs")||f.includes("\u5FAE\u4FE1")){u=pe(m.rows);break}}let d=ce(s.nodes);return{name:n,displayName:o||s.title||n,description:a||s.title,category:i,props:r,events:p,examples:d,platformSupport:u,filePath:e}}catch(s){return console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6\u6587\u6863\u5931\u8D25: ${e}`,s),null}}function V(e){let s=[],t=k(e);for(let n of t)if(n.includes("UI\u7EC4\u4EF6")||n.includes("009-")){let o=ue(n);o&&s.push(o)}return s}import*as v from"path";function T(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function fe(e){let t=v.basename(e,".md").match(/api_(\w+)/);if(t)return t[1];let o=v.basename(v.dirname(e)).match(/api_(\w+)/);return o?o[1]:"unknown"}function E(e){let s=[];if(e.length<2)return s;let t=e[0].map(r=>r.toLowerCase()),n=t.findIndex(r=>r.includes("\u53C2\u6570")||r.includes("name")),o=t.findIndex(r=>r.includes("\u7C7B\u578B")||r.includes("type")),i=t.findIndex(r=>r.includes("\u8BF4\u660E")||r.includes("\u63CF\u8FF0")),a=t.findIndex(r=>r.includes("\u5E73\u53F0")||r.includes("\u5DEE\u5F02"));for(let r=1;r<e.length;r++){let l=e[r],p={name:n>=0&&l[n]?l[n].trim():"",type:o>=0&&l[o]?l[o].trim():"any",description:i>=0&&l[i]?l[i].trim():""};a>=0&&l[a]&&(p.platformNote=l[a].trim()),(p.description.includes("\u5FC5\u586B")||p.description.includes("required"))&&(p.required=!0),p.name&&s.push(p)}return s}function me(e){if(e.length<2)return;let s=E(e);if(s.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:s}}function de(e){let s=T();if(e.length<2)return s;let t=e[0].map(i=>i.toLowerCase()),n=e[1],o=[{keywords:["ejs\uFF08h5 \u5E94\u7528","ejs\uFF08h5\u5E94\u7528","ejs(h5"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\uFF08\u65B0\u70B9"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let i=0;i<t.length&&i<n.length;i++){let a=t[i],r=n[i].trim().toLowerCase();for(let{keywords:l,key:p}of o)if(l.some(c=>a.includes(c))){r==="\u652F\u6301"||r.includes("\u652F\u6301")?s[p]=!0:r==="\u4E0D\u652F\u6301"||r.includes("\u4E0D\u652F\u6301")?s[p]=!1:r&&(s[p]=n[i].trim());break}}return s}function he(e){let s=[/支持版本[::]\s*[`><=]*\s*([\d.]+)/,/版本\s*[`><=]*\s*([\d.]+)\s*开始支持/,/ejs\s*[><=]+\s*([\d.]+[a-z]*)/i,/v([\d.]+)\s*版本/];for(let t of s){let n=e.match(t);if(n)return n[1]}}function ge(e){let s=[];try{let t=j(e),n=fe(e),o=null,i="",a=[];for(let r of t.nodes)r.type==="heading"&&r.level===2?(o&&o.name&&(O(o,a),s.push(o)),o={module:n,name:r.content.replace(/[`*]/g,"").trim(),description:"",params:[],examples:[],platformSupport:T(),filePath:e},a=[],i=""):r.type==="heading"&&r.level===3&&o?i=r.content.toLowerCase():o&&(a.push({...r,_section:i}),r.type==="paragraph"&&!o.description&&(o.description=r.content.split(`
9
+ `)[0]));o&&o.name&&(O(o,a),s.push(o))}catch(t){console.error(`[EjsApiParser] \u89E3\u6790 API \u6587\u6863\u5931\u8D25: ${e}`,t)}return s}function O(e,s){for(let t of s){let n=t._section||"";if(t.type==="table"&&t.rows){let o=t.rows[0]?.join(" ").toLowerCase()||"";o.includes("\u5E73\u53F0")||o.includes("ejs")||o.includes("\u5FAE\u4FE1")?e.platformSupport=de(t.rows):n.includes("\u53C2\u6570")||o.includes("\u53C2\u6570")||o.includes("\u7C7B\u578B")?e.params=E(t.rows):(n.includes("\u8FD4\u56DE")||o.includes("\u8FD4\u56DE"))&&(e.returns=me(t.rows))}if(t.type==="code"&&t.language&&["js","javascript"].includes(t.language.toLowerCase())&&e.examples.push({title:n||"\u4F7F\u7528\u793A\u4F8B",code:t.content,language:t.language}),t.type==="paragraph"){let o=he(t.content);o&&!e.minVersion&&(e.minVersion=o)}}}function F(e){let s=[],t=k(e);for(let n of t){let o=v.basename(n);if(o.startsWith("api_")&&o.endsWith(".md")){let i=ge(n);s.push(...i)}}return s}async function W(e,s){console.error("[Index] \u5F00\u59CB\u6784\u5EFA\u7D22\u5F15..."),console.error(`[Index] EJS \u6587\u6863\u8DEF\u5F84: ${e}`),console.error(`[Index] M8 \u6587\u6863\u8DEF\u5F84: ${s}`);let t=V(s);console.error(`[Index] \u89E3\u6790\u5230 ${t.length} \u4E2A\u7EC4\u4EF6`);let n=F(e);console.error(`[Index] \u89E3\u6790\u5230 ${n.length} \u4E2A API`);let o={components:new Map,ejsApis:new Map,keywords:new Map,categories:new Map,buildTime:new Date};for(let i of t){let a=`component:${i.name}`;o.components.set(i.name,i);let r=_(i.name,i.displayName,i.description);for(let p of r){let c=o.keywords.get(p)||[];c.push(a),o.keywords.set(p,c)}let l=o.categories.get(i.category)||[];l.push(a),o.categories.set(i.category,l)}for(let i of n){let a=`api:${i.module}.${i.name}`;o.ejsApis.set(`${i.module}.${i.name}`,i);let r=_(i.name,i.module,i.description);for(let p of r){let c=o.keywords.get(p)||[];c.push(a),o.keywords.set(p,c)}let l=o.categories.get(`module:${i.module}`)||[];l.push(a),o.categories.set(`module:${i.module}`,l)}return console.error(`[Index] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210\uFF0C\u5173\u952E\u8BCD\u6570: ${o.keywords.size}`),o}function _(...e){let s=new Set;for(let t of e){if(!t)continue;let n=t.toLowerCase();s.add(n);let o=n.split(/[\s\-_,.,。、;:""''()【】]+/);for(let a of o)a.length>=2&&s.add(a);let i=t.match(/[\u4e00-\u9fa5]+/g);if(i)for(let a of i){s.add(a);for(let r of a)s.add(r)}}return Array.from(s)}function M(e,s,t){let n=e.toLowerCase(),o=s.toLowerCase();if(o===n)return 100;if(t&&o.includes(n))return 90;if(o.startsWith(n))return 80;if(o.includes(n))return 70;let i=0;for(let a of n)o.includes(a)&&i++;return Math.min(60,Math.floor(i/n.length*60))}function z(e,s){let n={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"}[s.toLowerCase()];if(!n)return!0;let o=e[n];return o===!0||typeof o=="string"&&o.length>0}function P(e,s,t={}){let n=[],o=s.toLowerCase();for(let[i,a]of e.components){if(t.category&&a.category!==t.category||t.platform&&!z(a.platformSupport,t.platform))continue;let r=0;r=Math.max(r,M(s,i,!0)),r=Math.max(r,M(s,a.displayName,!0)),a.description.toLowerCase().includes(o)&&(r=Math.max(r,50)),e.keywords.get(o)?.includes(`component:${i}`)&&(r=Math.max(r,60)),r>0&&n.push({type:"component",id:`component:${i}`,name:i,displayName:a.displayName,description:a.description,score:r,platformSupport:a.platformSupport,category:a.category})}return n.sort((i,a)=>a.score-i.score),t.limit?n.slice(0,t.limit):n}function S(e,s,t={}){let n=[],o=s.toLowerCase();for(let[i,a]of e.ejsApis){if(t.module&&a.module!==t.module||t.platform&&!z(a.platformSupport,t.platform))continue;let r=0;r=Math.max(r,M(s,a.name,!0)),r=Math.max(r,M(s,`${a.module}.${a.name}`,!0)),a.module.toLowerCase()===o&&(r=Math.max(r,80)),a.description.toLowerCase().includes(o)&&(r=Math.max(r,50)),e.keywords.get(o)?.includes(`api:${i}`)&&(r=Math.max(r,60)),r>0&&n.push({type:"ejsApi",id:`api:${i}`,name:a.name,displayName:`ejs.${a.module}.${a.name}`,description:a.description,score:r,platformSupport:a.platformSupport,category:a.module})}return n.sort((i,a)=>a.score-i.score),t.limit?n.slice(0,t.limit):n}function H(e,s,t={}){let n=P(e,s,t),o=S(e,s,t),i=[...n,...o];return i.sort((a,r)=>r.score-a.score),t.limit?i.slice(0,t.limit):i}function J(e,s,t={}){return!s||s.trim().length===0?[]:P(e,s.trim(),{...t,limit:t.limit||20})}function R(e,s,t={}){return!s||s.trim().length===0?[]:S(e,s.trim(),{...t,limit:t.limit||20})}function U(e,s){if(!s||s.trim().length===0)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u7EC4\u4EF6\u540D\u79F0"};let t=s.toLowerCase().trim(),n=e.components.get(t);if(n)return{found:!0,component:n};let o=[];for(let[i,a]of e.components)(i.includes(t)||t.includes(i)||a.displayName.toLowerCase().includes(t))&&o.push(i);return{found:!1,error:`\u672A\u627E\u5230\u7EC4\u4EF6: ${s}`,suggestions:o.slice(0,5)}}function K(e,s,t){if(!s||!t)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u6A21\u5757\u540D\u548C API \u540D\u79F0"};let n=`${s.toLowerCase()}.${t.toLowerCase()}`,o=e.ejsApis.get(n);if(o){let a=[];for(let[r,l]of e.ejsApis)l.module===o.module&&r!==n&&a.push(l.name);return{found:!0,api:o,relatedApis:a.slice(0,5)}}let i=[];for(let[a,r]of e.ejsApis)(a.includes(t.toLowerCase())||r.name.toLowerCase().includes(t.toLowerCase()))&&i.push(`${r.module}.${r.name}`);return{found:!1,error:`\u672A\u627E\u5230 API: ejs.${s}.${t}`,suggestions:i.slice(0,5)}}var Y={\u8868\u5355:{components:["form","field","input"],apis:[]},\u8F93\u5165:{components:["field","input","textarea"],apis:[]},\u9009\u62E9:{components:["picker","select","radio","checkbox"],apis:["ui.select"]},\u65E5\u671F:{components:["datepicker","calendar"],apis:["ui.pickDate","ui.pickDateTime"]},\u65F6\u95F4:{components:["datepicker"],apis:["ui.pickTime","ui.pickDateTime"]},\u4E0A\u4F20:{components:["uploader"],apis:["io.chooseImage","io.uploadFile"]},\u6587\u4EF6:{components:["uploader"],apis:["io.chooseFile","io.downloadFile"]},\u5217\u8868:{components:["cell","minirefresh"],apis:[]},\u4E0B\u62C9\u5237\u65B0:{components:["minirefresh"],apis:[]},\u52A0\u8F7D\u66F4\u591A:{components:["minirefresh"],apis:[]},\u5F39\u7A97:{components:["dialog","popup"],apis:["ui.alert","ui.confirm"]},\u63D0\u793A:{components:["toast","notify"],apis:["ui.toast","ui.alert"]},\u786E\u8BA4:{components:["dialog"],apis:["ui.confirm"]},\u52A0\u8F7D:{components:["loading"],apis:["ui.showWaiting","ui.closeWaiting"]},\u5BFC\u822A:{components:["header","tabbar","tab"],apis:["navigator.push","navigator.pop"]},\u6807\u7B7E\u9875:{components:["tab"],apis:[]},\u5E95\u90E8\u680F:{components:["tabbar"],apis:[]},\u62CD\u7167:{components:[],apis:["device.camera","io.chooseImage"]},\u626B\u7801:{components:[],apis:["device.scan"]},\u5B9A\u4F4D:{components:["amap"],apis:["device.getLocation"]},\u5730\u56FE:{components:["amap"],apis:["device.getLocation"]},\u7535\u8BDD:{components:[],apis:["device.callPhone"]},\u5206\u4EAB:{components:[],apis:["device.sendTo"]},\u5B58\u50A8:{components:[],apis:["storage.setItem","storage.getItem"]},\u7F13\u5B58:{components:[],apis:["storage.setItem","storage.getItem","storage.clear"]},\u56FE\u7247:{components:["image","imagepreview"],apis:["io.chooseImage"]},\u8F6E\u64AD:{components:["swipe"],apis:[]},\u6B65\u9AA4:{components:["steps"],apis:[]},\u8FDB\u5EA6:{components:["progress","circle"],apis:[]},\u8BC4\u5206:{components:["rate"],apis:[]},\u641C\u7D22:{components:["search"],apis:[]},\u5F00\u5173:{components:["switch"],apis:[]},\u6ED1\u5757:{components:["slider"],apis:[]},\u6298\u53E0:{components:["collapse"],apis:[]},\u6807\u7B7E:{components:["tag"],apis:[]},\u5FBD\u6807:{components:["badge"],apis:[]},\u7A7A\u72B6\u6001:{components:["empty"],apis:[]},\u9AA8\u67B6\u5C4F:{components:["skeleton"],apis:[]}};function ye(e){let s=[],t=e.toLowerCase();for(let n of Object.keys(Y))t.includes(n)&&s.push(n);return s}function B(e,s){if(!s)return!0;let n={ejsh5:"ejsH5",ejs:"ejsH5",h5:"h5",wechat:"wechat",alipay:"alipay",dingtalk:"dingtalk"}[s.toLowerCase()];if(!n)return!0;let o=e[n];return o===!0||typeof o=="string"&&o.length>0}function G(e,s,t){let n=[],o=[],i=new Set,a=new Set,r=ye(s);for(let p of r){let c=Y[p];if(c){for(let u of c.components){if(i.has(u))continue;let d=e.components.get(u);d&&B(d.platformSupport,t)&&(i.add(u),n.push({type:"component",name:u,displayName:d.displayName,description:d.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:80,platformSupport:d.platformSupport}))}for(let u of c.apis){if(a.has(u))continue;let[d,m]=u.split("."),f=e.ejsApis.get(`${d}.${m}`);f&&B(f.platformSupport,t)&&(a.add(u),o.push({type:"ejsApi",name:f.name,displayName:`ejs.${f.module}.${f.name}`,description:f.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:80,platformSupport:f.platformSupport}))}}}if(n.length<3||o.length<2){let p=H(e,s,{limit:10,platform:t});for(let c of p)if(c.type==="component"&&!i.has(c.name)){if(n.length<5){i.add(c.name);let u=e.components.get(c.name);u&&n.push({type:"component",name:c.name,displayName:u.displayName,description:u.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:c.score,platformSupport:u.platformSupport})}}else if(c.type==="ejsApi"&&!a.has(c.name)&&o.length<5){let u=c.id.replace("api:","");a.add(c.name);let d=e.ejsApis.get(u);d&&o.push({type:"ejsApi",name:d.name,displayName:`ejs.${d.module}.${d.name}`,description:d.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:c.score,platformSupport:d.platformSupport})}}n.sort((p,c)=>c.score-p.score),o.sort((p,c)=>c.score-p.score);let l="";return n.length>0||o.length>0?(l=`\u6839\u636E\u60A8\u7684\u9700\u6C42"${s}"\uFF0C\u63A8\u8350\u4EE5\u4E0B\u65B9\u6848\uFF1A
10
+
11
+ `,n.length>0&&(l+=`**UI \u7EC4\u4EF6\uFF1A** ${n.map(p=>p.displayName||p.name).join("\u3001")}
12
+ `),o.length>0&&(l+=`**EJS API\uFF1A** ${o.map(p=>p.displayName).join("\u3001")}
13
+ `),t&&(l+=`
14
+ \u4EE5\u4E0A\u63A8\u8350\u5747\u652F\u6301 ${t} \u5E73\u53F0\u3002`)):l=`\u672A\u627E\u5230\u4E0E"${s}"\u76F4\u63A5\u76F8\u5173\u7684\u7EC4\u4EF6\u6216 API\uFF0C\u5EFA\u8BAE\u5C1D\u8BD5\u66F4\u5177\u4F53\u7684\u63CF\u8FF0\u6216\u4F7F\u7528\u641C\u7D22\u529F\u80FD\u3002`,{components:n,apis:o,summary:l}}function we(e,s,t){return s==="M8.4"?$e(e,t):ve(e,t)}function ve(e,s){let t=`ne-${e.name}`,n=`<template>
15
+ <div class="${e.name}-container">
16
+ <!-- ${e.displayName}\u7EC4\u4EF6 -->
17
+ <${t}`,o=e.props.slice(0,3);for(let r of o)r.name==="value"||r.name==="v-model"?n+=`
18
+ v-model="${e.name}Value"`:r.type==="boolean"?n+=`
19
+ :${r.name}="${r.default||"false"}"`:r.type==="string"&&(n+=`
20
+ ${r.name}="${r.default||""}"`);if(e.events.length>0){let r=e.events[0];n+=`
21
+ @${r.name}="on${g(r.name)}"`}n+=`
22
+ />
23
+ </div>
24
+ </template>`,s&&(n=Q(n,s));let i=`<script>
25
+ /**
26
+ * ${e.displayName}\u7EC4\u4EF6\u793A\u4F8B
27
+ * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
28
+ */
29
+ export default {
30
+ name: '${g(e.name)}Demo',
31
+
32
+ data() {
33
+ return {
34
+ // ${e.displayName}\u7684\u503C
35
+ ${e.name}Value: ${X(e.props[0])}
36
+ };
37
+ },
38
+
39
+ methods: {
40
+ /**
41
+ * ${e.events[0]?.description||"\u4E8B\u4EF6\u5904\u7406"}
42
+ */
43
+ on${g(e.events[0]?.name||"Change")}(value) {
44
+ console.log('${e.displayName}\u503C\u53D8\u5316:', value);
45
+ // TODO: \u5904\u7406${e.displayName}\u4E8B\u4EF6
46
+ }
47
+ }
48
+ };
49
+ </script>`,a=`<style scoped>
50
+ .${e.name}-container {
51
+ padding: 16px;
52
+ }
53
+ </style>`;return{template:n,script:i,style:a,imports:[`import Ne${g(e.name)} from '@anthropic/ne-ui/lib/${e.name}';`],explanation:`\u8FD9\u662F ${e.displayName} \u7EC4\u4EF6\u7684 M8.3 (Vue2) \u793A\u4F8B\u4EE3\u7801\u3002
54
+ - \u4F7F\u7528 Options API \u98CE\u683C
55
+ - \u5305\u542B\u57FA\u672C\u7684\u6570\u636E\u7ED1\u5B9A\u548C\u4E8B\u4EF6\u5904\u7406
56
+ - \u53EF\u6839\u636E\u5B9E\u9645\u9700\u6C42\u4FEE\u6539\u5C5E\u6027\u548C\u4E8B\u4EF6`,frameworkVersion:"M8.3"}}function $e(e,s){let t=`ne-${e.name}`,n=`<template>
57
+ <div class="${e.name}-container">
58
+ <!-- ${e.displayName}\u7EC4\u4EF6 -->
59
+ <${t}`,o=e.props.slice(0,3);for(let r of o)r.name==="value"||r.name==="v-model"?n+=`
60
+ v-model="${e.name}Value"`:r.type==="boolean"?n+=`
61
+ :${r.name}="${r.default||"false"}"`:r.type==="string"&&(n+=`
62
+ ${r.name}="${r.default||""}"`);if(e.events.length>0){let r=e.events[0];n+=`
63
+ @${r.name}="on${g(r.name)}"`}n+=`
64
+ />
65
+ </div>
66
+ </template>`,s&&(n=Q(n,s));let i=`<script setup>
67
+ /**
68
+ * ${e.displayName}\u7EC4\u4EF6\u793A\u4F8B
69
+ * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
70
+ */
71
+ import { ref } from 'vue';
72
+
73
+ // ${e.displayName}\u7684\u503C
74
+ const ${e.name}Value = ref(${X(e.props[0])});
75
+
76
+ /**
77
+ * ${e.events[0]?.description||"\u4E8B\u4EF6\u5904\u7406"}
78
+ */
79
+ function on${g(e.events[0]?.name||"Change")}(value) {
80
+ console.log('${e.displayName}\u503C\u53D8\u5316:', value);
81
+ // TODO: \u5904\u7406${e.displayName}\u4E8B\u4EF6
82
+ }
83
+ </script>`,a=`<style scoped>
84
+ .${e.name}-container {
85
+ padding: 16px;
86
+ }
87
+ </style>`;return{template:n,script:i,style:a,imports:[],explanation:`\u8FD9\u662F ${e.displayName} \u7EC4\u4EF6\u7684 M8.4 (Vue3) \u793A\u4F8B\u4EE3\u7801\u3002
88
+ - \u4F7F\u7528 Composition API \u548C <script setup> \u8BED\u6CD5
89
+ - \u5305\u542B\u54CD\u5E94\u5F0F\u6570\u636E\u548C\u4E8B\u4EF6\u5904\u7406
90
+ - \u53EF\u6839\u636E\u5B9E\u9645\u9700\u6C42\u4FEE\u6539\u5C5E\u6027\u548C\u4E8B\u4EF6`,frameworkVersion:"M8.4"}}function ke(e,s){let t=`ejs.${e.module}.${e.name}`,n=[];for(let a of e.params)a.required&&n.push(` ${a.name}: ${xe(a.type)} // ${a.description}`);let o=`/**
91
+ * \u8C03\u7528 ${t}
92
+ * ${e.description}
93
+ */
94
+ ${t}({
95
+ ${n.join(`,
96
+ `)},
97
+ success: function(result) {
98
+ // \u6210\u529F\u56DE\u8C03
99
+ console.log('${e.name} \u6210\u529F:', result);
100
+ // TODO: \u5904\u7406\u6210\u529F\u7ED3\u679C
101
+ },
102
+ error: function(err) {
103
+ // \u9519\u8BEF\u56DE\u8C03
104
+ console.error('${e.name} \u5931\u8D25:', err);
105
+ // TODO: \u5904\u7406\u9519\u8BEF
106
+ }
107
+ });`,i=`/**
108
+ * \u8C03\u7528 ${t} (Promise \u98CE\u683C)
109
+ * ${e.description}
110
+ */
111
+ async function call${g(e.name)}() {
112
+ try {
113
+ const result = await ${t}({
114
+ ${n.join(`,
115
+ `)}
116
+ });
117
+ // \u6210\u529F\u5904\u7406
118
+ console.log('${e.name} \u6210\u529F:', result);
119
+ return result;
120
+ } catch (err) {
121
+ // \u9519\u8BEF\u5904\u7406
122
+ console.error('${e.name} \u5931\u8D25:', err);
123
+ throw err;
124
+ }
125
+ }`;return s==="M8.4"?{script:`<script setup>
126
+ /**
127
+ * EJS API \u8C03\u7528\u793A\u4F8B: ${t}
128
+ * \u6846\u67B6\u7248\u672C: M8.4 (Vue3)
129
+ */
130
+ import { ref } from 'vue';
131
+
132
+ // \u7ED3\u679C\u6570\u636E
133
+ const result = ref(null);
134
+ const loading = ref(false);
135
+ const error = ref(null);
136
+
137
+ ${i}
138
+
139
+ // \u5728\u7EC4\u4EF6\u4E2D\u8C03\u7528
140
+ async function handleAction() {
141
+ loading.value = true;
142
+ error.value = null;
143
+ try {
144
+ result.value = await call${g(e.name)}();
145
+ } catch (e) {
146
+ error.value = e;
147
+ } finally {
148
+ loading.value = false;
149
+ }
150
+ }
151
+ </script>`,explanation:`\u8FD9\u662F ${t} \u7684 M8.4 (Vue3) \u8C03\u7528\u793A\u4F8B\u3002
152
+ - \u4F7F\u7528 async/await \u548C Promise \u98CE\u683C
153
+ - \u5305\u542B\u5B8C\u6574\u7684\u9519\u8BEF\u5904\u7406
154
+ - \u4F7F\u7528\u54CD\u5E94\u5F0F\u72B6\u6001\u7BA1\u7406\u52A0\u8F7D\u548C\u9519\u8BEF\u72B6\u6001`,frameworkVersion:"M8.4"}:{script:`<script>
155
+ /**
156
+ * EJS API \u8C03\u7528\u793A\u4F8B: ${t}
157
+ * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
158
+ */
159
+ export default {
160
+ data() {
161
+ return {
162
+ result: null,
163
+ loading: false,
164
+ error: null
165
+ };
166
+ },
167
+
168
+ methods: {
169
+ /**
170
+ * \u8C03\u7528 ${e.name} API
171
+ */
172
+ call${g(e.name)}() {
173
+ this.loading = true;
174
+ this.error = null;
175
+
176
+ ${o.split(`
177
+ `).map(a=>" "+a).join(`
178
+ `)}
179
+ }
180
+ }
181
+ };
182
+ </script>`,explanation:`\u8FD9\u662F ${t} \u7684 M8.3 (Vue2) \u8C03\u7528\u793A\u4F8B\u3002
183
+ - \u4F7F\u7528\u56DE\u8C03\u51FD\u6570\u98CE\u683C
184
+ - \u5305\u542B success \u548C error \u56DE\u8C03\u5904\u7406
185
+ - \u53EF\u6839\u636E\u9700\u8981\u6539\u4E3A Promise \u98CE\u683C`,frameworkVersion:"M8.3"}}function Q(e,s){return`<!-- #ifdef ${{wechat:"MP-WEIXIN",alipay:"MP-ALIPAY",h5:"H5",ejs:"APP-PLUS",dingtalk:"MP-DINGTALK"}[s.toLowerCase()]||s.toUpperCase()} -->
186
+ ${e}
187
+ <!-- #endif -->`}function g(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function X(e){if(!e)return"''";if(e.default)return e.default;switch(e.type.toLowerCase()){case"string":return"''";case"number":return"0";case"boolean":return"false";case"array":return"[]";case"object":return"{}";default:return"null"}}function xe(e){switch(e.toLowerCase()){case"string":return"'\u8BF7\u586B\u5199'";case"number":return"0";case"boolean":return"true";case"array":return"[]";case"object":return"{}";case"function":return"() => {}";default:return"null"}}function Z(e,s){let t=s.options?.frameworkVersion||"M8.4",n=s.options?.platform;if(s.type==="component"){let o=e.components.get(s.name.toLowerCase());return o?we(o,t,n):{explanation:`\u672A\u627E\u5230\u7EC4\u4EF6: ${s.name}`,frameworkVersion:t}}if(s.type==="ejsApi"){let o="",i=s.name;s.name.includes(".")&&([o,i]=s.name.split("."));let a;if(o)a=e.ejsApis.get(`${o}.${i}`);else for(let[r,l]of e.ejsApis)if(l.name===i){a=l;break}return a?ke(a,t):{explanation:`\u672A\u627E\u5230 API: ${s.name}`,frameworkVersion:t}}return{explanation:`\u4E0D\u652F\u6301\u7684\u751F\u6210\u7C7B\u578B: ${s.type}`,frameworkVersion:t}}var A={ejsH5:"EJS H5 \u5E94\u7528",ejsMiniProgram:"EJS \u65B0\u70B9\u5C0F\u7A0B\u5E8F",h5:"H5",dingtalk:"\u9489\u9489",wechat:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",alipay:"\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F",weex:"Weex"},je={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"};function be(e,s){let t=[],n=[];for(let o of s){let i=je[o.toLowerCase()];if(!i)continue;let a=e[i],r=A[i]||o;a===!1?t.push(r):typeof a=="string"&&n.push(`${r}: ${a}`)}return{unsupported:t,limitations:n}}function Ce(e,s,t,n){let o=[];if(t==="component"){let i=e.components.get(s.toLowerCase());if(i)for(let[a,r]of e.components){if(a===s.toLowerCase()||r.category!==i.category)continue;let l=!0;for(let p of n){let c=Object.entries(A).find(([u,d])=>d===p)?.[0];if(c&&r.platformSupport[c]===!1){l=!1;break}}l&&o.push(`${r.displayName} (${a})`)}}else{let i=s.split("."),a=i.length>1?i[0]:"";for(let[r,l]of e.ejsApis){if(r===s||l.module!==a)continue;let p=!0;for(let c of n){let u=Object.entries(A).find(([d,m])=>m===c)?.[0];if(u&&l.platformSupport[u]===!1){p=!1;break}}p&&o.push(`ejs.${l.module}.${l.name}`)}}return o.slice(0,3)}function q(e,s,t){let n={items:[],allCompatible:!0,issues:[],suggestions:[]};for(let o of s){let i=o.toLowerCase(),a=!1,r="component",l,p=o,c=e.components.get(i);if(c&&(a=!0,r="component",l=c.platformSupport,p=c.displayName),!a){let f=e.ejsApis.get(i);if(f)a=!0,r="ejsApi",l=f.platformSupport,p=`ejs.${f.module}.${f.name}`;else for(let[oe,x]of e.ejsApis)if(x.name.toLowerCase()===i||oe===i){a=!0,r="ejsApi",l=x.platformSupport,p=`ejs.${x.module}.${x.name}`;break}}if(!a||!l){n.items.push({name:o,type:"component",platformSupport:Me(),unsupportedPlatforms:[],limitations:[`\u672A\u627E\u5230: ${o}`]}),n.issues.push(`\u672A\u627E\u5230\u7EC4\u4EF6\u6216 API: ${o}`);continue}let{unsupported:u,limitations:d}=be(l,t),m={name:p,type:r,platformSupport:l,unsupportedPlatforms:u,limitations:d};if(u.length>0){n.allCompatible=!1,n.issues.push(`${p} \u4E0D\u652F\u6301: ${u.join(", ")}`);let f=Ce(e,o,r,u);f.length>0&&(m.alternatives=f,n.suggestions.push(`${p} \u7684\u66FF\u4EE3\u65B9\u6848: ${f.join(", ")}`))}d.length>0&&n.issues.push(...d.map(f=>`${p} - ${f}`)),n.items.push(m)}return n.allCompatible?n.suggestions.push("\u6240\u6709\u7EC4\u4EF6\u548C API \u5728\u76EE\u6807\u5E73\u53F0\u4E0A\u5747\u5B8C\u5168\u652F\u6301\u3002"):n.suggestions.push("\u5EFA\u8BAE\u5728\u5F00\u53D1\u65F6\u4F7F\u7528\u6761\u4EF6\u7F16\u8BD1 (#ifdef) \u5904\u7406\u5E73\u53F0\u5DEE\u5F02\u3002"),n}function Me(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}var I={\u5217\u8868\u8BE6\u60C5:{name:"\u5217\u8868\u8BE6\u60C5",description:"\u5217\u8868\u9875\u9762\u70B9\u51FB\u8FDB\u5165\u8BE6\u60C5\u9875\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u9875\u9762\u8DF3\u8F6C\u7B49\u529F\u80FD",components:["cell","minirefresh","loading"],apis:["navigator.push","navigator.pop"],vue2Code:Pe(),vue3Code:Se(),keyPoints:["\u4F7F\u7528 minirefresh \u7EC4\u4EF6\u5B9E\u73B0\u4E0B\u62C9\u5237\u65B0\u548C\u52A0\u8F7D\u66F4\u591A","\u4F7F\u7528 cell \u7EC4\u4EF6\u5C55\u793A\u5217\u8868\u9879","\u4F7F\u7528 navigator.push \u8DF3\u8F6C\u5230\u8BE6\u60C5\u9875","\u8BE6\u60C5\u9875\u4F7F\u7528 navigator.pop \u8FD4\u56DE\u5217\u8868\u9875"]},\u8868\u5355\u63D0\u4EA4:{name:"\u8868\u5355\u63D0\u4EA4",description:"\u8868\u5355\u586B\u5199\u548C\u63D0\u4EA4\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u6570\u636E\u63D0\u4EA4\u3001\u7ED3\u679C\u53CD\u9988\u7B49\u529F\u80FD",components:["form","field","button","picker","datepicker"],apis:["ui.toast","ui.showWaiting","ui.closeWaiting"],vue2Code:Ae(),vue3Code:Ie(),keyPoints:["\u4F7F\u7528 form \u7EC4\u4EF6\u5305\u88F9\u8868\u5355\u5143\u7D20","\u4F7F\u7528 field \u7EC4\u4EF6\u5B9E\u73B0\u8F93\u5165\u6846","\u4F7F\u7528 picker/datepicker \u5B9E\u73B0\u9009\u62E9\u5668","\u63D0\u4EA4\u524D\u8FDB\u884C\u8868\u5355\u9A8C\u8BC1","\u4F7F\u7528 loading \u63D0\u793A\u7528\u6237\u7B49\u5F85","\u4F7F\u7528 toast \u53CD\u9988\u63D0\u4EA4\u7ED3\u679C"]},\u56FE\u7247\u4E0A\u4F20:{name:"\u56FE\u7247\u4E0A\u4F20",description:"\u56FE\u7247\u9009\u62E9\u548C\u4E0A\u4F20\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u56FE\u7247\u9009\u62E9\u3001\u9884\u89C8\u3001\u538B\u7F29\u3001\u4E0A\u4F20\u7B49\u529F\u80FD",components:["uploader","imagepreview"],apis:["io.chooseImage","io.uploadFile"],vue2Code:De(),vue3Code:Le(),keyPoints:["\u4F7F\u7528 uploader \u7EC4\u4EF6\u6216 io.chooseImage \u9009\u62E9\u56FE\u7247","\u652F\u6301\u56FE\u7247\u9884\u89C8\u529F\u80FD","\u4E0A\u4F20\u524D\u53EF\u8FDB\u884C\u56FE\u7247\u538B\u7F29","\u663E\u793A\u4E0A\u4F20\u8FDB\u5EA6"]}};function Pe(){return{template:`<template>
188
+ <div class="list-page">
189
+ <!-- \u4E0B\u62C9\u5237\u65B0\u5217\u8868 -->
190
+ <ne-minirefresh
191
+ ref="minirefresh"
192
+ :use-body-scroll="true"
193
+ @pulldown="onRefresh"
194
+ @pullup="onLoadMore"
195
+ >
196
+ <!-- \u5217\u8868\u5185\u5BB9 -->
197
+ <ne-cell
198
+ v-for="item in list"
199
+ :key="item.id"
200
+ :title="item.title"
201
+ :label="item.description"
202
+ is-link
203
+ @click="goDetail(item)"
204
+ />
205
+
206
+ <!-- \u7A7A\u72B6\u6001 -->
207
+ <ne-empty v-if="list.length === 0 && !loading" description="\u6682\u65E0\u6570\u636E" />
208
+ </ne-minirefresh>
209
+ </div>
210
+ </template>`,script:`<script>
211
+ /**
212
+ * \u5217\u8868\u8BE6\u60C5\u6A21\u5F0F - \u5217\u8868\u9875
213
+ * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
214
+ */
215
+ export default {
216
+ name: 'ListPage',
217
+
218
+ data() {
219
+ return {
220
+ list: [], // \u5217\u8868\u6570\u636E
221
+ page: 1, // \u5F53\u524D\u9875\u7801
222
+ pageSize: 10, // \u6BCF\u9875\u6761\u6570
223
+ loading: false, // \u52A0\u8F7D\u72B6\u6001
224
+ finished: false // \u662F\u5426\u52A0\u8F7D\u5B8C\u6210
225
+ };
226
+ },
227
+
228
+ mounted() {
229
+ // \u9875\u9762\u52A0\u8F7D\u65F6\u83B7\u53D6\u6570\u636E
230
+ this.loadData();
231
+ },
232
+
233
+ methods: {
234
+ /**
235
+ * \u52A0\u8F7D\u6570\u636E
236
+ */
237
+ async loadData() {
238
+ if (this.loading) return;
239
+ this.loading = true;
240
+
241
+ try {
242
+ // TODO: \u66FF\u6362\u4E3A\u5B9E\u9645\u7684 API \u8C03\u7528
243
+ const res = await this.$api.getList({
244
+ page: this.page,
245
+ pageSize: this.pageSize
246
+ });
247
+
248
+ if (this.page === 1) {
249
+ this.list = res.data;
250
+ } else {
251
+ this.list = [...this.list, ...res.data];
252
+ }
253
+
254
+ // \u5224\u65AD\u662F\u5426\u8FD8\u6709\u66F4\u591A\u6570\u636E
255
+ this.finished = res.data.length < this.pageSize;
256
+ } catch (err) {
257
+ console.error('\u52A0\u8F7D\u6570\u636E\u5931\u8D25:', err);
258
+ ejs.ui.toast({ message: '\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5' });
259
+ } finally {
260
+ this.loading = false;
261
+ this.$refs.minirefresh.endPulldown();
262
+ this.$refs.minirefresh.endPullup(this.finished);
263
+ }
264
+ },
265
+
266
+ /**
267
+ * \u4E0B\u62C9\u5237\u65B0
268
+ */
269
+ onRefresh() {
270
+ this.page = 1;
271
+ this.finished = false;
272
+ this.loadData();
273
+ },
274
+
275
+ /**
276
+ * \u52A0\u8F7D\u66F4\u591A
277
+ */
278
+ onLoadMore() {
279
+ if (this.finished) return;
280
+ this.page++;
281
+ this.loadData();
282
+ },
283
+
284
+ /**
285
+ * \u8DF3\u8F6C\u8BE6\u60C5\u9875
286
+ */
287
+ goDetail(item) {
288
+ // \u4F7F\u7528 EJS \u5BFC\u822A\u8DF3\u8F6C
289
+ ejs.navigator.push({
290
+ url: \`/pages/detail/detail?id=\${item.id}\`,
291
+ success: () => {
292
+ console.log('\u8DF3\u8F6C\u6210\u529F');
293
+ }
294
+ });
295
+ }
296
+ }
297
+ };
298
+ </script>`,style:`<style scoped>
299
+ .list-page {
300
+ min-height: 100vh;
301
+ background: #f5f5f5;
302
+ }
303
+ </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u8DF3\u8F6C\u8BE6\u60C5\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Se(){return{template:`<template>
304
+ <div class="list-page">
305
+ <!-- \u4E0B\u62C9\u5237\u65B0\u5217\u8868 -->
306
+ <ne-minirefresh
307
+ ref="minirefreshRef"
308
+ :use-body-scroll="true"
309
+ @pulldown="onRefresh"
310
+ @pullup="onLoadMore"
311
+ >
312
+ <!-- \u5217\u8868\u5185\u5BB9 -->
313
+ <ne-cell
314
+ v-for="item in list"
315
+ :key="item.id"
316
+ :title="item.title"
317
+ :label="item.description"
318
+ is-link
319
+ @click="goDetail(item)"
320
+ />
321
+
322
+ <!-- \u7A7A\u72B6\u6001 -->
323
+ <ne-empty v-if="list.length === 0 && !loading" description="\u6682\u65E0\u6570\u636E" />
324
+ </ne-minirefresh>
325
+ </div>
326
+ </template>`,script:`<script setup>
327
+ /**
328
+ * \u5217\u8868\u8BE6\u60C5\u6A21\u5F0F - \u5217\u8868\u9875
329
+ * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
330
+ */
331
+ import { ref, onMounted } from 'vue';
332
+
333
+ // \u54CD\u5E94\u5F0F\u6570\u636E
334
+ const list = ref([]);
335
+ const page = ref(1);
336
+ const pageSize = ref(10);
337
+ const loading = ref(false);
338
+ const finished = ref(false);
339
+ const minirefreshRef = ref(null);
340
+
341
+ /**
342
+ * \u52A0\u8F7D\u6570\u636E
343
+ */
344
+ async function loadData() {
345
+ if (loading.value) return;
346
+ loading.value = true;
347
+
348
+ try {
349
+ // TODO: \u66FF\u6362\u4E3A\u5B9E\u9645\u7684 API \u8C03\u7528
350
+ const res = await api.getList({
351
+ page: page.value,
352
+ pageSize: pageSize.value
353
+ });
354
+
355
+ if (page.value === 1) {
356
+ list.value = res.data;
357
+ } else {
358
+ list.value = [...list.value, ...res.data];
359
+ }
360
+
361
+ // \u5224\u65AD\u662F\u5426\u8FD8\u6709\u66F4\u591A\u6570\u636E
362
+ finished.value = res.data.length < pageSize.value;
363
+ } catch (err) {
364
+ console.error('\u52A0\u8F7D\u6570\u636E\u5931\u8D25:', err);
365
+ ejs.ui.toast({ message: '\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5' });
366
+ } finally {
367
+ loading.value = false;
368
+ minirefreshRef.value?.endPulldown();
369
+ minirefreshRef.value?.endPullup(finished.value);
370
+ }
371
+ }
372
+
373
+ /**
374
+ * \u4E0B\u62C9\u5237\u65B0
375
+ */
376
+ function onRefresh() {
377
+ page.value = 1;
378
+ finished.value = false;
379
+ loadData();
380
+ }
381
+
382
+ /**
383
+ * \u52A0\u8F7D\u66F4\u591A
384
+ */
385
+ function onLoadMore() {
386
+ if (finished.value) return;
387
+ page.value++;
388
+ loadData();
389
+ }
390
+
391
+ /**
392
+ * \u8DF3\u8F6C\u8BE6\u60C5\u9875
393
+ */
394
+ function goDetail(item) {
395
+ ejs.navigator.push({
396
+ url: \`/pages/detail/detail?id=\${item.id}\`,
397
+ success: () => {
398
+ console.log('\u8DF3\u8F6C\u6210\u529F');
399
+ }
400
+ });
401
+ }
402
+
403
+ // \u9875\u9762\u52A0\u8F7D\u65F6\u83B7\u53D6\u6570\u636E
404
+ onMounted(() => {
405
+ loadData();
406
+ });
407
+ </script>`,style:`<style scoped>
408
+ .list-page {
409
+ min-height: 100vh;
410
+ background: #f5f5f5;
411
+ }
412
+ </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C <script setup> \u8BED\u6CD5",frameworkVersion:"M8.4"}}function Ae(){return{template:`<template>
413
+ <div class="form-page">
414
+ <ne-form ref="form" :model="formData" :rules="rules">
415
+ <!-- \u6587\u672C\u8F93\u5165 -->
416
+ <ne-field
417
+ v-model="formData.name"
418
+ label="\u59D3\u540D"
419
+ placeholder="\u8BF7\u8F93\u5165\u59D3\u540D"
420
+ required
421
+ :rules="[{ required: true, message: '\u8BF7\u8F93\u5165\u59D3\u540D' }]"
422
+ />
423
+
424
+ <!-- \u624B\u673A\u53F7 -->
425
+ <ne-field
426
+ v-model="formData.phone"
427
+ label="\u624B\u673A\u53F7"
428
+ type="tel"
429
+ placeholder="\u8BF7\u8F93\u5165\u624B\u673A\u53F7"
430
+ :rules="[
431
+ { required: true, message: '\u8BF7\u8F93\u5165\u624B\u673A\u53F7' },
432
+ { pattern: /^1[3-9]\\d{9}$/, message: '\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u6B63\u786E' }
433
+ ]"
434
+ />
435
+
436
+ <!-- \u65E5\u671F\u9009\u62E9 -->
437
+ <ne-field
438
+ v-model="formData.date"
439
+ label="\u65E5\u671F"
440
+ placeholder="\u8BF7\u9009\u62E9\u65E5\u671F"
441
+ readonly
442
+ is-link
443
+ @click="showDatePicker = true"
444
+ />
445
+
446
+ <!-- \u9009\u62E9\u5668 -->
447
+ <ne-field
448
+ v-model="formData.typeName"
449
+ label="\u7C7B\u578B"
450
+ placeholder="\u8BF7\u9009\u62E9\u7C7B\u578B"
451
+ readonly
452
+ is-link
453
+ @click="showPicker = true"
454
+ />
455
+
456
+ <!-- \u63D0\u4EA4\u6309\u94AE -->
457
+ <div class="form-actions">
458
+ <ne-button type="primary" block @click="onSubmit">\u63D0\u4EA4</ne-button>
459
+ </div>
460
+ </ne-form>
461
+
462
+ <!-- \u65E5\u671F\u9009\u62E9\u5668\u5F39\u7A97 -->
463
+ <ne-datepicker
464
+ v-model="showDatePicker"
465
+ :value="formData.date"
466
+ @confirm="onDateConfirm"
467
+ />
468
+
469
+ <!-- \u9009\u62E9\u5668\u5F39\u7A97 -->
470
+ <ne-picker
471
+ v-model="showPicker"
472
+ :columns="typeOptions"
473
+ @confirm="onTypeConfirm"
474
+ />
475
+ </div>
476
+ </template>`,script:`<script>
477
+ /**
478
+ * \u8868\u5355\u63D0\u4EA4\u6A21\u5F0F
479
+ * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
480
+ */
481
+ export default {
482
+ name: 'FormPage',
483
+
484
+ data() {
485
+ return {
486
+ formData: {
487
+ name: '',
488
+ phone: '',
489
+ date: '',
490
+ type: '',
491
+ typeName: ''
492
+ },
493
+ showDatePicker: false,
494
+ showPicker: false,
495
+ typeOptions: [
496
+ { text: '\u7C7B\u578B\u4E00', value: '1' },
497
+ { text: '\u7C7B\u578B\u4E8C', value: '2' },
498
+ { text: '\u7C7B\u578B\u4E09', value: '3' }
499
+ ],
500
+ rules: {
501
+ name: [{ required: true, message: '\u8BF7\u8F93\u5165\u59D3\u540D' }],
502
+ phone: [
503
+ { required: true, message: '\u8BF7\u8F93\u5165\u624B\u673A\u53F7' },
504
+ { pattern: /^1[3-9]\\d{9}$/, message: '\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u6B63\u786E' }
505
+ ]
506
+ }
507
+ };
508
+ },
509
+
510
+ methods: {
511
+ /**
512
+ * \u65E5\u671F\u9009\u62E9\u786E\u8BA4
513
+ */
514
+ onDateConfirm(value) {
515
+ this.formData.date = value;
516
+ this.showDatePicker = false;
517
+ },
518
+
519
+ /**
520
+ * \u7C7B\u578B\u9009\u62E9\u786E\u8BA4
521
+ */
522
+ onTypeConfirm(value) {
523
+ this.formData.type = value.value;
524
+ this.formData.typeName = value.text;
525
+ this.showPicker = false;
526
+ },
527
+
528
+ /**
529
+ * \u63D0\u4EA4\u8868\u5355
530
+ */
531
+ async onSubmit() {
532
+ try {
533
+ // \u8868\u5355\u9A8C\u8BC1
534
+ await this.$refs.form.validate();
535
+
536
+ // \u663E\u793A\u52A0\u8F7D\u63D0\u793A
537
+ ejs.ui.showWaiting({ message: '\u63D0\u4EA4\u4E2D...' });
538
+
539
+ // TODO: \u66FF\u6362\u4E3A\u5B9E\u9645\u7684 API \u8C03\u7528
540
+ await this.$api.submitForm(this.formData);
541
+
542
+ // \u5173\u95ED\u52A0\u8F7D\u63D0\u793A
543
+ ejs.ui.closeWaiting();
544
+
545
+ // \u6210\u529F\u63D0\u793A
546
+ ejs.ui.toast({
547
+ message: '\u63D0\u4EA4\u6210\u529F',
548
+ success: () => {
549
+ // \u8FD4\u56DE\u4E0A\u4E00\u9875
550
+ ejs.navigator.pop();
551
+ }
552
+ });
553
+ } catch (err) {
554
+ ejs.ui.closeWaiting();
555
+ if (err.errors) {
556
+ // \u8868\u5355\u9A8C\u8BC1\u5931\u8D25
557
+ ejs.ui.toast({ message: err.errors[0].message });
558
+ } else {
559
+ // \u63D0\u4EA4\u5931\u8D25
560
+ ejs.ui.toast({ message: '\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5' });
561
+ }
562
+ }
563
+ }
564
+ }
565
+ };
566
+ </script>`,style:`<style scoped>
567
+ .form-page {
568
+ padding: 16px;
569
+ background: #fff;
570
+ }
571
+
572
+ .form-actions {
573
+ margin-top: 24px;
574
+ padding: 0 16px;
575
+ }
576
+ </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u9009\u62E9\u5668\u3001\u63D0\u4EA4\u53CD\u9988\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Ie(){return{template:`<template>
577
+ <div class="form-page">
578
+ <ne-form ref="formRef" :model="formData" :rules="rules">
579
+ <!-- \u6587\u672C\u8F93\u5165 -->
580
+ <ne-field
581
+ v-model="formData.name"
582
+ label="\u59D3\u540D"
583
+ placeholder="\u8BF7\u8F93\u5165\u59D3\u540D"
584
+ required
585
+ />
586
+
587
+ <!-- \u624B\u673A\u53F7 -->
588
+ <ne-field
589
+ v-model="formData.phone"
590
+ label="\u624B\u673A\u53F7"
591
+ type="tel"
592
+ placeholder="\u8BF7\u8F93\u5165\u624B\u673A\u53F7"
593
+ />
594
+
595
+ <!-- \u65E5\u671F\u9009\u62E9 -->
596
+ <ne-field
597
+ v-model="formData.date"
598
+ label="\u65E5\u671F"
599
+ placeholder="\u8BF7\u9009\u62E9\u65E5\u671F"
600
+ readonly
601
+ is-link
602
+ @click="showDatePicker = true"
603
+ />
604
+
605
+ <!-- \u9009\u62E9\u5668 -->
606
+ <ne-field
607
+ v-model="formData.typeName"
608
+ label="\u7C7B\u578B"
609
+ placeholder="\u8BF7\u9009\u62E9\u7C7B\u578B"
610
+ readonly
611
+ is-link
612
+ @click="showPicker = true"
613
+ />
614
+
615
+ <!-- \u63D0\u4EA4\u6309\u94AE -->
616
+ <div class="form-actions">
617
+ <ne-button type="primary" block @click="onSubmit">\u63D0\u4EA4</ne-button>
618
+ </div>
619
+ </ne-form>
620
+
621
+ <!-- \u65E5\u671F\u9009\u62E9\u5668\u5F39\u7A97 -->
622
+ <ne-datepicker
623
+ v-model="showDatePicker"
624
+ :value="formData.date"
625
+ @confirm="onDateConfirm"
626
+ />
627
+
628
+ <!-- \u9009\u62E9\u5668\u5F39\u7A97 -->
629
+ <ne-picker
630
+ v-model="showPicker"
631
+ :columns="typeOptions"
632
+ @confirm="onTypeConfirm"
633
+ />
634
+ </div>
635
+ </template>`,script:`<script setup>
636
+ /**
637
+ * \u8868\u5355\u63D0\u4EA4\u6A21\u5F0F
638
+ * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
639
+ */
640
+ import { ref, reactive } from 'vue';
641
+
642
+ // \u8868\u5355\u5F15\u7528
643
+ const formRef = ref(null);
644
+
645
+ // \u8868\u5355\u6570\u636E
646
+ const formData = reactive({
647
+ name: '',
648
+ phone: '',
649
+ date: '',
650
+ type: '',
651
+ typeName: ''
652
+ });
653
+
654
+ // \u5F39\u7A97\u72B6\u6001
655
+ const showDatePicker = ref(false);
656
+ const showPicker = ref(false);
657
+
658
+ // \u9009\u9879\u6570\u636E
659
+ const typeOptions = [
660
+ { text: '\u7C7B\u578B\u4E00', value: '1' },
661
+ { text: '\u7C7B\u578B\u4E8C', value: '2' },
662
+ { text: '\u7C7B\u578B\u4E09', value: '3' }
663
+ ];
664
+
665
+ // \u8868\u5355\u9A8C\u8BC1\u89C4\u5219
666
+ const rules = {
667
+ name: [{ required: true, message: '\u8BF7\u8F93\u5165\u59D3\u540D' }],
668
+ phone: [
669
+ { required: true, message: '\u8BF7\u8F93\u5165\u624B\u673A\u53F7' },
670
+ { pattern: /^1[3-9]\\d{9}$/, message: '\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u6B63\u786E' }
671
+ ]
672
+ };
673
+
674
+ /**
675
+ * \u65E5\u671F\u9009\u62E9\u786E\u8BA4
676
+ */
677
+ function onDateConfirm(value) {
678
+ formData.date = value;
679
+ showDatePicker.value = false;
680
+ }
681
+
682
+ /**
683
+ * \u7C7B\u578B\u9009\u62E9\u786E\u8BA4
684
+ */
685
+ function onTypeConfirm(value) {
686
+ formData.type = value.value;
687
+ formData.typeName = value.text;
688
+ showPicker.value = false;
689
+ }
690
+
691
+ /**
692
+ * \u63D0\u4EA4\u8868\u5355
693
+ */
694
+ async function onSubmit() {
695
+ try {
696
+ // \u8868\u5355\u9A8C\u8BC1
697
+ await formRef.value?.validate();
698
+
699
+ // \u663E\u793A\u52A0\u8F7D\u63D0\u793A
700
+ ejs.ui.showWaiting({ message: '\u63D0\u4EA4\u4E2D...' });
701
+
702
+ // TODO: \u66FF\u6362\u4E3A\u5B9E\u9645\u7684 API \u8C03\u7528
703
+ await api.submitForm(formData);
704
+
705
+ // \u5173\u95ED\u52A0\u8F7D\u63D0\u793A
706
+ ejs.ui.closeWaiting();
707
+
708
+ // \u6210\u529F\u63D0\u793A
709
+ ejs.ui.toast({
710
+ message: '\u63D0\u4EA4\u6210\u529F',
711
+ success: () => {
712
+ ejs.navigator.pop();
713
+ }
714
+ });
715
+ } catch (err) {
716
+ ejs.ui.closeWaiting();
717
+ if (err.errors) {
718
+ ejs.ui.toast({ message: err.errors[0].message });
719
+ } else {
720
+ ejs.ui.toast({ message: '\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5' });
721
+ }
722
+ }
723
+ }
724
+ </script>`,style:`<style scoped>
725
+ .form-page {
726
+ padding: 16px;
727
+ background: #fff;
728
+ }
729
+
730
+ .form-actions {
731
+ margin-top: 24px;
732
+ padding: 0 16px;
733
+ }
734
+ </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C reactive \u7BA1\u7406\u8868\u5355\u72B6\u6001",frameworkVersion:"M8.4"}}function De(){return{template:`<template>
735
+ <div class="upload-page">
736
+ <ne-uploader
737
+ v-model="fileList"
738
+ :max-count="9"
739
+ :max-size="5 * 1024 * 1024"
740
+ accept="image/*"
741
+ @oversize="onOversize"
742
+ @delete="onDelete"
743
+ >
744
+ <template #preview-cover="{ file }">
745
+ <div v-if="file.status === 'uploading'" class="upload-progress">
746
+ {{ file.progress }}%
747
+ </div>
748
+ </template>
749
+ </ne-uploader>
750
+
751
+ <ne-button type="primary" block @click="uploadAll">\u4E0A\u4F20\u5168\u90E8</ne-button>
752
+ </div>
753
+ </template>`,script:`<script>
754
+ /**
755
+ * \u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F
756
+ * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
757
+ */
758
+ export default {
759
+ name: 'UploadPage',
760
+
761
+ data() {
762
+ return {
763
+ fileList: []
764
+ };
765
+ },
766
+
767
+ methods: {
768
+ /**
769
+ * \u6587\u4EF6\u8D85\u51FA\u5927\u5C0F\u9650\u5236
770
+ */
771
+ onOversize(file) {
772
+ ejs.ui.toast({ message: '\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 5MB' });
773
+ },
774
+
775
+ /**
776
+ * \u5220\u9664\u6587\u4EF6
777
+ */
778
+ onDelete(file, detail) {
779
+ console.log('\u5220\u9664\u6587\u4EF6:', file, detail);
780
+ },
781
+
782
+ /**
783
+ * \u4E0A\u4F20\u5355\u4E2A\u6587\u4EF6
784
+ */
785
+ async uploadFile(file) {
786
+ return new Promise((resolve, reject) => {
787
+ ejs.io.uploadFile({
788
+ url: '/api/upload',
789
+ filePath: file.url,
790
+ name: 'file',
791
+ success: (res) => {
792
+ const data = JSON.parse(res.data);
793
+ resolve(data.url);
794
+ },
795
+ error: (err) => {
796
+ reject(err);
797
+ },
798
+ progress: (progress) => {
799
+ file.progress = progress;
800
+ }
801
+ });
802
+ });
803
+ },
804
+
805
+ /**
806
+ * \u4E0A\u4F20\u5168\u90E8\u6587\u4EF6
807
+ */
808
+ async uploadAll() {
809
+ const pendingFiles = this.fileList.filter(f => !f.uploaded);
810
+
811
+ if (pendingFiles.length === 0) {
812
+ ejs.ui.toast({ message: '\u6CA1\u6709\u9700\u8981\u4E0A\u4F20\u7684\u6587\u4EF6' });
813
+ return;
814
+ }
815
+
816
+ ejs.ui.showWaiting({ message: '\u4E0A\u4F20\u4E2D...' });
817
+
818
+ try {
819
+ for (const file of pendingFiles) {
820
+ file.status = 'uploading';
821
+ const url = await this.uploadFile(file);
822
+ file.url = url;
823
+ file.status = 'done';
824
+ file.uploaded = true;
825
+ }
826
+
827
+ ejs.ui.closeWaiting();
828
+ ejs.ui.toast({ message: '\u4E0A\u4F20\u6210\u529F' });
829
+ } catch (err) {
830
+ ejs.ui.closeWaiting();
831
+ ejs.ui.toast({ message: '\u4E0A\u4F20\u5931\u8D25' });
832
+ }
833
+ }
834
+ }
835
+ };
836
+ </script>`,style:`<style scoped>
837
+ .upload-page {
838
+ padding: 16px;
839
+ }
840
+
841
+ .upload-progress {
842
+ position: absolute;
843
+ bottom: 0;
844
+ left: 0;
845
+ right: 0;
846
+ background: rgba(0, 0, 0, 0.5);
847
+ color: #fff;
848
+ text-align: center;
849
+ font-size: 12px;
850
+ padding: 2px 0;
851
+ }
852
+ </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u591A\u56FE\u4E0A\u4F20\u3001\u8FDB\u5EA6\u663E\u793A\u3001\u5927\u5C0F\u9650\u5236\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Le(){return{template:`<template>
853
+ <div class="upload-page">
854
+ <ne-uploader
855
+ v-model="fileList"
856
+ :max-count="9"
857
+ :max-size="5 * 1024 * 1024"
858
+ accept="image/*"
859
+ @oversize="onOversize"
860
+ @delete="onDelete"
861
+ >
862
+ <template #preview-cover="{ file }">
863
+ <div v-if="file.status === 'uploading'" class="upload-progress">
864
+ {{ file.progress }}%
865
+ </div>
866
+ </template>
867
+ </ne-uploader>
868
+
869
+ <ne-button type="primary" block @click="uploadAll">\u4E0A\u4F20\u5168\u90E8</ne-button>
870
+ </div>
871
+ </template>`,script:`<script setup>
872
+ /**
873
+ * \u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F
874
+ * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
875
+ */
876
+ import { ref } from 'vue';
877
+
878
+ // \u6587\u4EF6\u5217\u8868
879
+ const fileList = ref([]);
880
+
881
+ /**
882
+ * \u6587\u4EF6\u8D85\u51FA\u5927\u5C0F\u9650\u5236
883
+ */
884
+ function onOversize(file) {
885
+ ejs.ui.toast({ message: '\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 5MB' });
886
+ }
887
+
888
+ /**
889
+ * \u5220\u9664\u6587\u4EF6
890
+ */
891
+ function onDelete(file, detail) {
892
+ console.log('\u5220\u9664\u6587\u4EF6:', file, detail);
893
+ }
894
+
895
+ /**
896
+ * \u4E0A\u4F20\u5355\u4E2A\u6587\u4EF6
897
+ */
898
+ function uploadFile(file) {
899
+ return new Promise((resolve, reject) => {
900
+ ejs.io.uploadFile({
901
+ url: '/api/upload',
902
+ filePath: file.url,
903
+ name: 'file',
904
+ success: (res) => {
905
+ const data = JSON.parse(res.data);
906
+ resolve(data.url);
907
+ },
908
+ error: (err) => {
909
+ reject(err);
910
+ },
911
+ progress: (progress) => {
912
+ file.progress = progress;
913
+ }
914
+ });
915
+ });
916
+ }
917
+
918
+ /**
919
+ * \u4E0A\u4F20\u5168\u90E8\u6587\u4EF6
920
+ */
921
+ async function uploadAll() {
922
+ const pendingFiles = fileList.value.filter(f => !f.uploaded);
923
+
924
+ if (pendingFiles.length === 0) {
925
+ ejs.ui.toast({ message: '\u6CA1\u6709\u9700\u8981\u4E0A\u4F20\u7684\u6587\u4EF6' });
926
+ return;
927
+ }
928
+
929
+ ejs.ui.showWaiting({ message: '\u4E0A\u4F20\u4E2D...' });
930
+
931
+ try {
932
+ for (const file of pendingFiles) {
933
+ file.status = 'uploading';
934
+ const url = await uploadFile(file);
935
+ file.url = url;
936
+ file.status = 'done';
937
+ file.uploaded = true;
938
+ }
939
+
940
+ ejs.ui.closeWaiting();
941
+ ejs.ui.toast({ message: '\u4E0A\u4F20\u6210\u529F' });
942
+ } catch (err) {
943
+ ejs.ui.closeWaiting();
944
+ ejs.ui.toast({ message: '\u4E0A\u4F20\u5931\u8D25' });
945
+ }
946
+ }
947
+ </script>`,style:`<style scoped>
948
+ .upload-page {
949
+ padding: 16px;
950
+ }
951
+
952
+ .upload-progress {
953
+ position: absolute;
954
+ bottom: 0;
955
+ left: 0;
956
+ right: 0;
957
+ background: rgba(0, 0, 0, 0.5);
958
+ color: #fff;
959
+ text-align: center;
960
+ font-size: 12px;
961
+ padding: 2px 0;
962
+ }
963
+ </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u7BA1\u7406\u6587\u4EF6\u5217\u8868\u548C\u4E0A\u4F20\u72B6\u6001",frameworkVersion:"M8.4"}}function ee(e,s){let t=I[e];if(!t){let n=e.toLowerCase();for(let[o,i]of Object.entries(I))if(o.toLowerCase().includes(n)||n.includes(o.toLowerCase()))return i;return{error:`\u672A\u627E\u5230\u573A\u666F: ${e}`,availablePatterns:Object.keys(I)}}if(s){let n=s==="M8.4"?t.vue3Code:t.vue2Code;return{...t,vue2Code:s==="M8.3"?t.vue2Code:{explanation:"\u8BF7\u4F7F\u7528 M8.3 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.3"},vue3Code:s==="M8.4"?t.vue3Code:{explanation:"\u8BF7\u4F7F\u7528 M8.4 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.4"}}}return t}var $=null,Fe=Oe(import.meta.url),_e=Te(Fe),We=te(_e,"..");function se(e,s,t){if(process.env[e])return process.env[e];let n=te(We,"docs",s);return Ee(n)?n:t}var ze=se("EJS_DOC_PATH","ejs-doc","ejs-doc"),He=se("M8_DOC_PATH","m8mpdoc-develop","m8mpdoc-develop");async function Je(){console.error("[M8 MCP] \u6B63\u5728\u521D\u59CB\u5316\u6587\u6863\u7D22\u5F15...");try{$=await W(ze,He),console.error(`[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210: ${$.components.size} \u4E2A\u7EC4\u4EF6, ${$.ejsApis.size} \u4E2A API`)}catch(e){console.error("[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5931\u8D25:",e),$={components:new Map,ejsApis:new Map,keywords:new Map,categories:new Map,buildTime:new Date}}}function y(){if(!$)throw new Error("\u6587\u6863\u7D22\u5F15\u5C1A\u672A\u521D\u59CB\u5316");return $}function Re(){let e=new Ne({name:"M8FrameworkMCP",version:"1.0.0"});return e.tool("search_component","\u641C\u7D22 M8 \u6846\u67B6 UI \u7EC4\u4EF6\uFF0C\u652F\u6301\u6309\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:h.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982\u7EC4\u4EF6\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),category:h.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u8868\u5355\u7EC4\u4EF6"\u3001"\u53CD\u9988\u7EC4\u4EF6"'),platform:h.string().optional().describe('\u53EF\u9009\u7684\u5E73\u53F0\u8FC7\u6EE4\uFF0C\u5982"wechat"\u3001"alipay"')},async({query:s,category:t,platform:n})=>{let o=J(y(),s,{category:t,platform:n});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),e.tool("search_ejs_api","\u641C\u7D22 EJS \u539F\u751F API\uFF0C\u652F\u6301\u6309\u6A21\u5757\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:h.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 API \u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),module:h.string().optional().describe('\u53EF\u9009\u7684\u6A21\u5757\u8FC7\u6EE4\uFF0C\u5982"ui"\u3001"device"\u3001"storage"')},async({query:s,module:t})=>{let n=R(y(),s,{module:t});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),e.tool("get_component_detail","\u83B7\u53D6 M8 \u6846\u67B6 UI \u7EC4\u4EF6\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC Props\u3001Events\u3001\u793A\u4F8B\u4EE3\u7801",{name:h.string().describe('\u7EC4\u4EF6\u540D\u79F0\uFF0C\u5982"button"\u3001"form"\u3001"picker"')},async({name:s})=>{let t=U(y(),s);return{content:[{type:"text",text:JSON.stringify(t,null,2)}]}}),e.tool("get_api_detail","\u83B7\u53D6 EJS API \u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u5E73\u53F0\u5DEE\u5F02",{module:h.string().describe('\u6A21\u5757\u540D\uFF0C\u5982"ui"\u3001"device"'),name:h.string().describe('API \u540D\u79F0\uFF0C\u5982"toast"\u3001"alert"')},async({module:s,name:t})=>{let n=K(y(),s,t);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),e.tool("recommend","\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u667A\u80FD\u63A8\u8350\u5408\u9002\u7684\u7EC4\u4EF6\u548C API",{requirement:h.string().describe('\u9700\u6C42\u63CF\u8FF0\uFF0C\u5982"\u5B9E\u73B0\u4E00\u4E2A\u5E26\u65E5\u671F\u9009\u62E9\u7684\u8868\u5355"'),platform:h.string().optional().describe('\u76EE\u6807\u5E73\u53F0\uFF0C\u5982"wechat"\u3001"h5"')},async({requirement:s,platform:t})=>{let n=G(y(),s,t);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),e.tool("generate_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u652F\u6301 M8.3(Vue2) \u548C M8.4(Vue3)",{type:h.enum(["component","ejsApi","pattern"]).describe("\u751F\u6210\u7C7B\u578B"),name:h.string().describe("\u7EC4\u4EF6/API/\u6A21\u5F0F\u540D\u79F0"),frameworkVersion:h.enum(["M8.3","M8.4"]).describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),platform:h.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:s,name:t,frameworkVersion:n,platform:o})=>{let i=Z(y(),{type:s,name:t,options:{frameworkVersion:n,platform:o}});return{content:[{type:"text",text:JSON.stringify(i,null,2)}]}}),e.tool("check_compatibility","\u68C0\u67E5\u7EC4\u4EF6\u6216 API \u5728\u76EE\u6807\u5E73\u53F0\u7684\u517C\u5BB9\u6027",{items:h.array(h.string()).describe("\u8981\u68C0\u67E5\u7684\u7EC4\u4EF6\u6216 API \u5217\u8868"),targetPlatforms:h.array(h.string()).describe('\u76EE\u6807\u5E73\u53F0\u5217\u8868\uFF0C\u5982["wechat", "alipay", "h5"]')},async({items:s,targetPlatforms:t})=>{let n=q(y(),s,t);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),e.tool("get_pattern","\u83B7\u53D6\u5E38\u89C1\u573A\u666F\u7684\u5B9E\u73B0\u6A21\u5F0F\uFF0C\u5982\u5217\u8868\u8BE6\u60C5\u3001\u8868\u5355\u63D0\u4EA4",{scenario:h.string().describe('\u573A\u666F\u540D\u79F0\uFF0C\u5982"\u5217\u8868\u8BE6\u60C5"\u3001"\u8868\u5355\u63D0\u4EA4"'),frameworkVersion:h.enum(["M8.3","M8.4"]).optional().describe("\u6846\u67B6\u7248\u672C\uFF0C\u4E0D\u6307\u5B9A\u5219\u8FD4\u56DE\u4E24\u4E2A\u7248\u672C")},async({scenario:s,frameworkVersion:t})=>{let n=ee(s,t);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),e}async function Ue(){await Je();let e=Re(),s=new Ve;console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u4E2D..."),await e.connect(s),console.error("[M8 MCP] \u670D\u52A1\u5668\u5DF2\u542F\u52A8\uFF0C\u7B49\u5F85\u8FDE\u63A5...")}Ue().catch(e=>{console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25:",e),process.exit(1)});