m8-mcp-server 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/README.md +153 -30
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +14 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/docs/apis.d.ts +38 -0
  7. package/dist/docs/apis.d.ts.map +1 -0
  8. package/dist/docs/apis.js +326 -0
  9. package/dist/docs/apis.js.map +1 -0
  10. package/dist/docs/components.d.ts +45 -0
  11. package/dist/docs/components.d.ts.map +1 -0
  12. package/dist/docs/components.js +186 -0
  13. package/dist/docs/components.js.map +1 -0
  14. package/dist/docs/index.d.ts +94 -0
  15. package/dist/docs/index.d.ts.map +1 -0
  16. package/dist/docs/index.js +182 -0
  17. package/dist/docs/index.js.map +1 -0
  18. package/dist/docs/loader.d.ts +51 -0
  19. package/dist/docs/loader.d.ts.map +1 -0
  20. package/dist/docs/loader.js +165 -0
  21. package/dist/docs/loader.js.map +1 -0
  22. package/dist/docs/search.d.ts +28 -0
  23. package/dist/docs/search.d.ts.map +1 -0
  24. package/dist/docs/search.js +196 -0
  25. package/dist/docs/search.js.map +1 -0
  26. package/dist/docs/standards.d.ts +41 -0
  27. package/dist/docs/standards.d.ts.map +1 -0
  28. package/dist/docs/standards.js +134 -0
  29. package/dist/docs/standards.js.map +1 -0
  30. package/dist/docs/utils.d.ts +46 -0
  31. package/dist/docs/utils.d.ts.map +1 -0
  32. package/dist/docs/utils.js +129 -0
  33. package/dist/docs/utils.js.map +1 -0
  34. package/dist/generator/header.d.ts +32 -0
  35. package/dist/generator/header.d.ts.map +1 -0
  36. package/dist/generator/header.js +83 -0
  37. package/dist/generator/header.js.map +1 -0
  38. package/dist/generator/index.d.ts +50 -0
  39. package/dist/generator/index.d.ts.map +1 -0
  40. package/dist/generator/index.js +387 -0
  41. package/dist/generator/index.js.map +1 -0
  42. package/dist/generator/vue-template.d.ts +54 -0
  43. package/dist/generator/vue-template.d.ts.map +1 -0
  44. package/dist/generator/vue-template.js +191 -0
  45. package/dist/generator/vue-template.js.map +1 -0
  46. package/dist/index.d.ts +21 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +73 -1
  49. package/dist/index.js.map +1 -0
  50. package/dist/recommend/index.d.ts +27 -0
  51. package/dist/recommend/index.d.ts.map +1 -0
  52. package/dist/recommend/index.js +412 -0
  53. package/dist/recommend/index.js.map +1 -0
  54. package/dist/tools/generate-code.d.ts +18 -0
  55. package/dist/tools/generate-code.d.ts.map +1 -0
  56. package/dist/tools/generate-code.js +155 -0
  57. package/dist/tools/generate-code.js.map +1 -0
  58. package/dist/tools/get-api-info.d.ts +18 -0
  59. package/dist/tools/get-api-info.d.ts.map +1 -0
  60. package/dist/tools/get-api-info.js +65 -0
  61. package/dist/tools/get-api-info.js.map +1 -0
  62. package/dist/tools/get-coding-standard.d.ts +18 -0
  63. package/dist/tools/get-coding-standard.d.ts.map +1 -0
  64. package/dist/tools/get-coding-standard.js +66 -0
  65. package/dist/tools/get-coding-standard.js.map +1 -0
  66. package/dist/tools/get-component-info.d.ts +18 -0
  67. package/dist/tools/get-component-info.d.ts.map +1 -0
  68. package/dist/tools/get-component-info.js +60 -0
  69. package/dist/tools/get-component-info.js.map +1 -0
  70. package/dist/tools/get-util-info.d.ts +18 -0
  71. package/dist/tools/get-util-info.d.ts.map +1 -0
  72. package/dist/tools/get-util-info.js +65 -0
  73. package/dist/tools/get-util-info.js.map +1 -0
  74. package/dist/tools/index.d.ts +56 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +101 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/recommend-solution.d.ts +18 -0
  79. package/dist/tools/recommend-solution.d.ts.map +1 -0
  80. package/dist/tools/recommend-solution.js +67 -0
  81. package/dist/tools/recommend-solution.js.map +1 -0
  82. package/dist/tools/search-docs.d.ts +18 -0
  83. package/dist/tools/search-docs.d.ts.map +1 -0
  84. package/dist/tools/search-docs.js +71 -0
  85. package/dist/tools/search-docs.js.map +1 -0
  86. package/dist/types/index.d.ts +285 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +8 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/package.json +27 -26
  91. package/resources/cases/.gitkeep +0 -0
  92. package/resources/cases/form-submit-vue2.json +15 -0
  93. package/resources/cases/index.json +8 -0
  94. package/resources/cases/list-detail-vue2.json +27 -0
  95. package/resources/components/.gitkeep +0 -0
  96. package/resources/components/button.json +74 -0
  97. package/resources/components/cell.json +69 -0
  98. package/resources/components/field.json +88 -0
  99. package/resources/components/index.json +72 -0
  100. package/resources/standards/.gitkeep +0 -0
  101. package/resources/standards/css.json +108 -0
  102. package/resources/standards/javascript.json +129 -0
  103. package/resources/standards/project-structure.json +101 -0
  104. package/resources/standards/vue.json +122 -0
  105. package/resources/utils/.gitkeep +0 -0
  106. package/resources/utils/ajax.json +76 -0
  107. package/resources/utils/common.json +129 -0
  108. package/resources/utils/index.json +7 -0
  109. package/resources/utils/string.json +112 -0
  110. package/bin/m8-mcp.js +0 -2
  111. package/dist/constants.js +0 -1
  112. package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
  113. package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
  114. package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
  115. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  116. package/dist/data/ejs-doc/api_device/api_device.md +0 -761
  117. package/dist/data/ejs-doc/api_event/api_event.md +0 -244
  118. package/dist/data/ejs-doc/api_global/api_global.md +0 -440
  119. package/dist/data/ejs-doc/api_io/api_io.md +0 -369
  120. package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
  121. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  122. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  123. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  124. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  125. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  126. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  127. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  128. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  129. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  130. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  131. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  132. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  133. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  134. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  135. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  136. package/dist/data/ejs-doc/api_page/api_page.md +0 -261
  137. package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
  138. package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
  139. package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
  140. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  141. package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
  142. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  143. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  144. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  145. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  146. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  147. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  148. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  149. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  150. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  151. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  152. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  153. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  154. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  155. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  156. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  157. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  158. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  159. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  160. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  161. package/dist/data/ejs-doc/api_util/api_util.md +0 -615
  162. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  163. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  164. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  165. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  166. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +0 -247
  167. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +0 -276
  168. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +0 -130
  169. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +0 -115
  170. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +0 -398
  171. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -456
  172. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  173. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  174. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  175. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  176. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  177. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  178. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  179. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  180. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +0 -76
  181. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  182. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  183. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  184. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  185. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  186. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  187. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  188. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  189. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  190. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +0 -188
  191. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +0 -460
  192. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  193. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  194. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  195. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  196. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +0 -168
  197. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -617
  198. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  199. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  200. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +0 -150
  201. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  202. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  203. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  204. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +0 -427
  205. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  206. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  207. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +0 -175
  208. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  209. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  210. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  211. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  212. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  213. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  214. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  215. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  216. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +0 -265
  217. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  218. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +0 -115
  219. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  220. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +0 -631
  221. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -531
  222. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  223. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +0 -337
  224. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  225. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  226. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  227. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  228. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +0 -295
  229. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  230. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  231. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -265
  232. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +0 -203
  233. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  234. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -199
  235. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  236. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  237. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  238. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  239. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +0 -292
  240. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  241. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  242. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  243. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +0 -208
  244. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  245. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +0 -248
  246. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  247. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  248. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +0 -325
  249. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +0 -360
  250. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +0 -595
  251. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  252. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  253. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  254. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  255. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +0 -261
  256. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +0 -161
  257. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  258. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  259. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  260. package/dist/data/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +0 -116
  261. package/dist/data/standards/css-style.md +0 -531
  262. package/dist/data/standards/js-style.md +0 -394
  263. package/dist/data/standards/project-structure.md +0 -325
  264. package/dist/data/standards/vue-style.md +0 -644
  265. package/dist/tools/search.js +0 -1
  266. package/dist/tools/standards.js +0 -1
@@ -0,0 +1,15 @@
1
+ {
2
+ "id": "form-submit-vue2",
3
+ "title": "表单提交 (Vue2/M8.3)",
4
+ "description": "使用 M8.3 移动前端框架进行表单页面的开发和提交",
5
+ "category": "form-submit",
6
+ "vueVersion": 2,
7
+ "files": [
8
+ {
9
+ "name": "form.vue",
10
+ "path": "src/pages/m8demo/form.vue",
11
+ "description": "表单页面组件",
12
+ "code": "<!--\n * @作者: 开发者\n * @创建时间: 2024-12-29\n * @修改时间: 2024-12-29\n * @版本: [1.0]\n * @版权: 国泰新点软件股份有限公司\n * @描述: 表单提交示例页面\n-->\n<template>\n <view class=\"container\">\n <em-form ref=\"form\" :model=\"formData\" :rules=\"rules\">\n <em-cell-group>\n <em-field\n v-model=\"formData.name\"\n name=\"name\"\n label=\"姓名\"\n placeholder=\"请输入姓名\"\n required\n />\n <em-field\n v-model=\"formData.phone\"\n name=\"phone\"\n type=\"tel\"\n label=\"手机号\"\n placeholder=\"请输入手机号\"\n required\n />\n <em-field\n v-model=\"formData.date\"\n name=\"date\"\n label=\"日期\"\n placeholder=\"请选择日期\"\n readonly\n clickable\n is-link\n @click=\"showDatePicker = true\"\n />\n <em-field\n v-model=\"formData.remark\"\n name=\"remark\"\n type=\"textarea\"\n label=\"备注\"\n placeholder=\"请输入备注\"\n :autosize=\"{ minHeight: 80 }\"\n />\n </em-cell-group>\n </em-form>\n \n <view class=\"btn-wrapper\">\n <em-button type=\"primary\" block @click=\"onSubmit\">提交</em-button>\n </view>\n \n <em-datepicker\n v-model=\"showDatePicker\"\n @confirm=\"onDateConfirm\"\n />\n </view>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n formData: {\n name: '',\n phone: '',\n date: '',\n remark: ''\n },\n rules: {\n name: [{ required: true, message: '请输入姓名' }],\n phone: [\n { required: true, message: '请输入手机号' },\n { pattern: /^1[3-9]\\d{9}$/, message: '手机号格式不正确' }\n ]\n },\n showDatePicker: false\n };\n },\n methods: {\n onDateConfirm(value) {\n this.formData.date = value;\n this.showDatePicker = false;\n },\n async onSubmit() {\n try {\n await this.$refs.form.validate();\n \n ejs.ui.showWaiting({ message: '提交中...' });\n \n const result = await Util.ajax({\n url: Config.serverUrl + '/rest/submit',\n type: 'POST',\n data: {\n params: JSON.stringify(this.formData)\n }\n });\n \n ejs.ui.closeWaiting();\n \n if (result && result.status && result.status.code === 1) {\n ejs.ui.toast({ message: '提交成功' });\n ejs.page.close();\n } else {\n ejs.ui.toast({ message: result.status.text || '提交失败' });\n }\n } catch (error) {\n ejs.ui.closeWaiting();\n console.error('表单验证失败:', error);\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container {\n padding-bottom: 80px;\n}\n.btn-wrapper {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 16px;\n background: #fff;\n}\n</style>"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "cases": [
3
+ { "id": "list-detail-vue2", "title": "列表详情 (Vue2/M8.3)", "category": "list-detail", "vueVersion": 2, "file": "list-detail-vue2.json" },
4
+ { "id": "list-detail-vue3", "title": "列表详情 (Vue3/M8.4)", "category": "list-detail", "vueVersion": 3, "file": "list-detail-vue3.json" },
5
+ { "id": "form-submit-vue2", "title": "表单提交 (Vue2/M8.3)", "category": "form-submit", "vueVersion": 2, "file": "form-submit-vue2.json" },
6
+ { "id": "form-submit-vue3", "title": "表单提交 (Vue3/M8.4)", "category": "form-submit", "vueVersion": 3, "file": "form-submit-vue3.json" }
7
+ ]
8
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "id": "list-detail-vue2",
3
+ "title": "列表详情 (Vue2/M8.3)",
4
+ "description": "使用 M8.3 移动前端框架进行下拉刷新列表、详情页面的开发",
5
+ "category": "list-detail",
6
+ "vueVersion": 2,
7
+ "files": [
8
+ {
9
+ "name": "router.js",
10
+ "path": "src/pages/m8demo/router.js",
11
+ "description": "路由配置文件",
12
+ "code": "/**\n * router.js无需import组件,需要path路径与vue组件名称保持匹配。\n */\nconst routes = [\n {\n path: 'pages/m8demo/list',\n style: {\n navigationBarTitleText: '列表页面',\n },\n },\n {\n path: 'pages/m8demo/detail',\n style: {\n navigationBarTitleText: '详情页面',\n },\n },\n];\n\nexport default routes;"
13
+ },
14
+ {
15
+ "name": "list.vue",
16
+ "path": "src/pages/m8demo/list.vue",
17
+ "description": "列表页面组件",
18
+ "code": "<template>\n <view class=\"container\">\n <em-minirefresh\n ref=\"scrollPull\"\n :initPageIndex=\"initPageIndex\"\n :page-size=\"pageSize\"\n :url=\"url\"\n :request-data=\"dataRequest\"\n :change-data=\"dataChange\"\n >\n <template v-slot:default=\"{ listData }\">\n <em-cell v-for=\"(item, index) in listData\" :key=\"index\" :title=\"item.title\" @click=\"itemClick(item)\" />\n </template>\n </em-minirefresh>\n </view>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n url: `${Config.serverUrl}/rest/list`,\n initPageIndex: 0,\n pageSize: 10\n };\n },\n methods: {\n dataRequest(currPage, pageSize) {\n return {\n params: JSON.stringify({\n currentpageindex: currPage,\n pagesize: pageSize\n })\n };\n },\n dataChange(res) {\n if (res && res.status && res.status.code === 1) {\n return res.custom.infolist;\n }\n console.error('接口返回参数错误');\n return [];\n },\n itemClick(item) {\n ejs.page.open({\n pageUrl: './detail',\n data: { id: item.id }\n });\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container {\n height: 100vh;\n}\n</style>"
19
+ },
20
+ {
21
+ "name": "detail.vue",
22
+ "path": "src/pages/m8demo/detail.vue",
23
+ "description": "详情页面组件",
24
+ "code": "<template>\n <div class=\"container\">\n <h1>{{ title }}</h1>\n <div v-html=\"content\"></div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'detail',\n data() {\n return {\n title: '',\n content: ''\n };\n },\n created() {\n const id = Util.getExtraDataByKey('id') || '';\n this.getDetail(id);\n },\n methods: {\n getDetail(id) {\n Util.ajax({\n url: `${Config.serverUrl}/rest/detail`,\n data: {\n params: JSON.stringify({ guid: id })\n }\n })\n .then((result) => {\n if (result && result.status && result.status.code === 1) {\n this.title = result.custom.info.title;\n this.content = result.custom.info.data;\n }\n })\n .catch((err) => {\n console.error(err);\n });\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>"
25
+ }
26
+ ]
27
+ }
File without changes
@@ -0,0 +1,74 @@
1
+ {
2
+ "id": "button",
3
+ "name": "em-button",
4
+ "title": "按钮",
5
+ "description": "按钮组件,支持多种类型、尺寸和状态。",
6
+ "props": [
7
+ { "name": "type", "type": "string", "default": "info", "required": false, "description": "类型,可选值为 primary、default、warning、danger" },
8
+ { "name": "size", "type": "string", "default": "normal", "required": false, "description": "尺寸,可选值为 large、small、mini" },
9
+ { "name": "text", "type": "string", "default": "-", "required": false, "description": "按钮文字" },
10
+ { "name": "color", "type": "string", "default": "-", "required": false, "description": "按钮颜色,支持传入 linear-gradient 渐变色" },
11
+ { "name": "icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
12
+ { "name": "icon-size", "type": "string/number", "default": "-", "required": false, "description": "图标大小,默认单位是 px" },
13
+ { "name": "icon-position", "type": "string", "default": "left", "required": false, "description": "图标展示位置,可选值为 right" },
14
+ { "name": "block", "type": "boolean", "default": "false", "required": false, "description": "是否为块级元素" },
15
+ { "name": "plain", "type": "boolean", "default": "false", "required": false, "description": "是否为朴素按钮" },
16
+ { "name": "square", "type": "boolean", "default": "false", "required": false, "description": "是否为方形按钮" },
17
+ { "name": "round", "type": "boolean", "default": "true", "required": false, "description": "是否为圆形按钮" },
18
+ { "name": "disabled", "type": "boolean", "default": "false", "required": false, "description": "是否禁用按钮" },
19
+ { "name": "hairline", "type": "boolean", "default": "false", "required": false, "description": "是否使用 0.5px 边框" },
20
+ { "name": "loading", "type": "boolean", "default": "false", "required": false, "description": "是否显示为加载状态" },
21
+ { "name": "loading-text", "type": "string", "default": "-", "required": false, "description": "加载状态提示文字" },
22
+ { "name": "loading-type", "type": "string", "default": "circular", "required": false, "description": "加载图标类型,可选值为 spinner、ball、operation" },
23
+ { "name": "loading-size", "type": "string", "default": "20px", "required": false, "description": "加载图标大小" },
24
+ { "name": "url", "type": "string", "default": "-", "required": false, "description": "点击后跳转的链接地址" },
25
+ { "name": "to", "type": "string/object", "default": "-", "required": false, "description": "点击后跳转的目标路由对象" },
26
+ { "name": "replace", "type": "boolean", "default": "false", "required": false, "description": "是否在跳转时替换当前页面历史" }
27
+ ],
28
+ "events": [
29
+ { "name": "click", "parameters": "event: Event", "description": "点击按钮,且按钮状态不为加载或禁用时触发" },
30
+ { "name": "touchstart", "parameters": "event: TouchEvent", "description": "开始触摸按钮时触发" }
31
+ ],
32
+ "slots": [],
33
+ "examples": {
34
+ "vue2": [
35
+ {
36
+ "title": "按钮类型",
37
+ "code": "<em-button type=\"primary\">主要按钮</em-button>\n<em-button type=\"info\">信息按钮</em-button>\n<em-button type=\"default\">默认按钮</em-button>\n<em-button type=\"warning\">警告按钮</em-button>\n<em-button type=\"danger\">危险按钮</em-button>",
38
+ "description": "按钮支持 default、primary、info、warning、danger 五种类型"
39
+ },
40
+ {
41
+ "title": "朴素按钮",
42
+ "code": "<em-button plain type=\"primary\">朴素按钮</em-button>\n<em-button plain type=\"info\">朴素按钮</em-button>",
43
+ "description": "通过 plain 属性将按钮设置为朴素按钮"
44
+ },
45
+ {
46
+ "title": "禁用状态",
47
+ "code": "<em-button disabled type=\"primary\">禁用状态</em-button>",
48
+ "description": "通过 disabled 属性来禁用按钮"
49
+ },
50
+ {
51
+ "title": "加载状态",
52
+ "code": "<em-button loading type=\"primary\" />\n<em-button loading type=\"info\" loading-text=\"加载中...\" />",
53
+ "description": "通过 loading 属性设置按钮为加载状态"
54
+ },
55
+ {
56
+ "title": "按钮尺寸",
57
+ "code": "<em-button type=\"primary\" size=\"large\">大号按钮</em-button>\n<em-button type=\"primary\" size=\"normal\">普通按钮</em-button>\n<em-button type=\"primary\" size=\"small\">小型按钮</em-button>\n<em-button type=\"primary\" size=\"mini\">迷你按钮</em-button>",
58
+ "description": "支持 large、normal、small、mini 四种尺寸"
59
+ }
60
+ ],
61
+ "vue3": [
62
+ {
63
+ "title": "按钮类型",
64
+ "code": "<em-button type=\"primary\">主要按钮</em-button>\n<em-button type=\"info\">信息按钮</em-button>\n<em-button type=\"default\">默认按钮</em-button>\n<em-button type=\"warning\">警告按钮</em-button>\n<em-button type=\"danger\">危险按钮</em-button>",
65
+ "description": "按钮支持 default、primary、info、warning、danger 五种类型"
66
+ },
67
+ {
68
+ "title": "朴素按钮",
69
+ "code": "<em-button plain type=\"primary\">朴素按钮</em-button>\n<em-button plain type=\"info\">朴素按钮</em-button>",
70
+ "description": "通过 plain 属性将按钮设置为朴素按钮"
71
+ }
72
+ ]
73
+ }
74
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "id": "cell",
3
+ "name": "em-cell",
4
+ "title": "单元格",
5
+ "description": "单元格组件,用于展示列表项。",
6
+ "props": [
7
+ { "name": "title", "type": "number/string", "default": "-", "required": false, "description": "左侧标题" },
8
+ { "name": "value", "type": "number/string", "default": "-", "required": false, "description": "右侧内容" },
9
+ { "name": "label", "type": "string", "default": "-", "required": false, "description": "标题下方的描述信息" },
10
+ { "name": "size", "type": "string", "default": "-", "required": false, "description": "单元格大小,可选值为 large" },
11
+ { "name": "icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
12
+ { "name": "icon-prefix", "type": "string", "default": "van-icon", "required": false, "description": "图标类名前缀" },
13
+ { "name": "url", "type": "string", "default": "-", "required": false, "description": "点击后跳转的链接地址" },
14
+ { "name": "to", "type": "string/object", "default": "-", "required": false, "description": "点击后跳转的目标路由对象" },
15
+ { "name": "border", "type": "boolean", "default": "true", "required": false, "description": "是否显示内边框" },
16
+ { "name": "replace", "type": "boolean", "default": "false", "required": false, "description": "是否在跳转时替换当前页面历史" },
17
+ { "name": "clickable", "type": "boolean", "default": "false", "required": false, "description": "是否开启点击反馈" },
18
+ { "name": "is-link", "type": "boolean", "default": "false", "required": false, "description": "是否展示右侧箭头并开启点击反馈" },
19
+ { "name": "required", "type": "boolean", "default": "false", "required": false, "description": "是否显示表单必填星号" },
20
+ { "name": "center", "type": "boolean", "default": "false", "required": false, "description": "是否使内容垂直居中" },
21
+ { "name": "arrow-direction", "type": "string", "default": "right", "required": false, "description": "箭头方向,可选值为 left、up、down" },
22
+ { "name": "title-style", "type": "string", "default": "-", "required": false, "description": "左侧标题额外样式" },
23
+ { "name": "title-class", "type": "string", "default": "-", "required": false, "description": "左侧标题额外类名" },
24
+ { "name": "value-class", "type": "string", "default": "-", "required": false, "description": "右侧内容额外类名" },
25
+ { "name": "label-class", "type": "string", "default": "-", "required": false, "description": "描述信息额外类名" }
26
+ ],
27
+ "events": [
28
+ { "name": "click", "parameters": "event: Event", "description": "点击单元格时触发" }
29
+ ],
30
+ "slots": [
31
+ { "name": "default", "description": "自定义右侧 value 的内容" },
32
+ { "name": "title", "description": "自定义左侧 title 的内容" },
33
+ { "name": "label", "description": "自定义标题下方 label 的内容" },
34
+ { "name": "icon", "description": "自定义左侧图标" },
35
+ { "name": "rightIcon", "description": "自定义右侧按钮,默认为 arrow" },
36
+ { "name": "extra", "description": "自定义单元格的额外内容" }
37
+ ],
38
+ "examples": {
39
+ "vue2": [
40
+ {
41
+ "title": "基础用法",
42
+ "code": "<em-cell-group>\n <em-cell title=\"单元格\" value=\"内容\" />\n <em-cell title=\"单元格\" value=\"内容\" label=\"描述信息\" :border=\"false\" />\n</em-cell-group>",
43
+ "description": "Cell 可以单独使用,也可以与 CellGroup 搭配使用"
44
+ },
45
+ {
46
+ "title": "展示箭头",
47
+ "code": "<em-cell title=\"单元格\" is-link />\n<em-cell title=\"单元格\" is-link value=\"内容\" />\n<em-cell title=\"单元格\" is-link arrow-direction=\"down\" value=\"内容\" />",
48
+ "description": "设置 is-link 属性后会在单元格右侧显示箭头"
49
+ },
50
+ {
51
+ "title": "展示图标",
52
+ "code": "<em-cell title=\"单元格\" icon=\"location-o\" />",
53
+ "description": "通过 icon 属性在标题左侧展示图标"
54
+ }
55
+ ],
56
+ "vue3": [
57
+ {
58
+ "title": "基础用法",
59
+ "code": "<em-cell-group>\n <em-cell title=\"单元格\" value=\"内容\" />\n <em-cell title=\"单元格\" value=\"内容\" label=\"描述信息\" :border=\"false\" />\n</em-cell-group>",
60
+ "description": "Cell 可以单独使用,也可以与 CellGroup 搭配使用"
61
+ },
62
+ {
63
+ "title": "展示箭头",
64
+ "code": "<em-cell title=\"单元格\" is-link />\n<em-cell title=\"单元格\" is-link value=\"内容\" />",
65
+ "description": "设置 is-link 属性后会在单元格右侧显示箭头"
66
+ }
67
+ ]
68
+ }
69
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "id": "field",
3
+ "name": "em-field",
4
+ "title": "输入框",
5
+ "description": "表单中的输入框组件,支持多种类型和样式。",
6
+ "props": [
7
+ { "name": "v-model", "type": "number/string", "default": "-", "required": false, "description": "当前输入的值" },
8
+ { "name": "label", "type": "string", "default": "-", "required": false, "description": "输入框左侧文本" },
9
+ { "name": "name", "type": "string", "default": "-", "required": false, "description": "名称,提交表单的标识符" },
10
+ { "name": "type", "type": "string", "default": "text", "required": false, "description": "输入框类型,可选值为 tel、digit、number、textarea、password 等" },
11
+ { "name": "size", "type": "string", "default": "-", "required": false, "description": "大小,可选值为 large" },
12
+ { "name": "maxlength", "type": "number/string", "default": "-", "required": false, "description": "输入的最大字符数" },
13
+ { "name": "placeholder", "type": "string", "default": "-", "required": false, "description": "输入框占位提示文字" },
14
+ { "name": "placeholder-style", "type": "string", "default": "color: #b8becc;", "required": false, "description": "指定 placeholder 的样式" },
15
+ { "name": "border", "type": "boolean", "default": "true", "required": false, "description": "是否显示内边框" },
16
+ { "name": "disabled", "type": "boolean", "default": "false", "required": false, "description": "是否禁用输入框" },
17
+ { "name": "readonly", "type": "boolean", "default": "false", "required": false, "description": "是否只读" },
18
+ { "name": "colon", "type": "boolean", "default": "false", "required": false, "description": "是否在 label 后面添加冒号" },
19
+ { "name": "required", "type": "boolean", "default": "false", "required": false, "description": "是否显示表单必填星号" },
20
+ { "name": "center", "type": "boolean", "default": "false", "required": false, "description": "是否使内容垂直居中" },
21
+ { "name": "clearable", "type": "boolean", "default": "false", "required": false, "description": "是否启用清除图标" },
22
+ { "name": "clickable", "type": "boolean", "default": "false", "required": false, "description": "是否开启点击反馈" },
23
+ { "name": "is-link", "type": "boolean", "default": "false", "required": false, "description": "是否展示右侧箭头并开启点击反馈" },
24
+ { "name": "autofocus", "type": "boolean", "default": "false", "required": false, "description": "是否自动聚焦" },
25
+ { "name": "show-word-limit", "type": "boolean", "default": "false", "required": false, "description": "是否显示字数统计" },
26
+ { "name": "error", "type": "boolean", "default": "false", "required": false, "description": "是否将输入内容标红" },
27
+ { "name": "error-message", "type": "string", "default": "-", "required": false, "description": "底部错误提示文案" },
28
+ { "name": "formatter", "type": "Function", "default": "-", "required": false, "description": "输入内容格式化函数" },
29
+ { "name": "format-trigger", "type": "string", "default": "onChange", "required": false, "description": "格式化函数触发的时机,可选值为 onBlur" },
30
+ { "name": "label-width", "type": "number/string", "default": "96px", "required": false, "description": "左侧文本宽度" },
31
+ { "name": "label-align", "type": "string", "default": "left", "required": false, "description": "左侧文本对齐方式,可选值为 center、right" },
32
+ { "name": "input-align", "type": "string", "default": "left", "required": false, "description": "输入框对齐方式,可选值为 center、right、vertical" },
33
+ { "name": "autosize", "type": "boolean/object", "default": "false", "required": false, "description": "是否自适应内容高度,只对 textarea 有效" },
34
+ { "name": "left-icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
35
+ { "name": "right-icon", "type": "string", "default": "-", "required": false, "description": "右侧图标名称或图片链接" },
36
+ { "name": "rules", "type": "Rule[]", "default": "-", "required": false, "description": "表单校验规则" },
37
+ { "name": "basic", "type": "boolean", "default": "false", "required": false, "description": "是否使用基座风格样式" }
38
+ ],
39
+ "events": [
40
+ { "name": "input", "parameters": "value: string", "description": "输入框内容变化时触发" },
41
+ { "name": "focus", "parameters": "event: Event", "description": "输入框获得焦点时触发" },
42
+ { "name": "blur", "parameters": "event: Event", "description": "输入框失去焦点时触发" },
43
+ { "name": "clear", "parameters": "event: Event", "description": "点击清除按钮时触发" },
44
+ { "name": "click", "parameters": "event: Event", "description": "点击 Field 时触发" },
45
+ { "name": "click-input", "parameters": "event: Event", "description": "点击输入区域时触发" },
46
+ { "name": "click-left-icon", "parameters": "event: Event", "description": "点击左侧图标时触发" },
47
+ { "name": "click-right-icon", "parameters": "event: Event", "description": "点击右侧图标时触发" }
48
+ ],
49
+ "slots": [
50
+ { "name": "label", "description": "自定义输入框 label 标签" },
51
+ { "name": "input", "description": "自定义输入框" },
52
+ { "name": "leftIcon", "description": "自定义输入框头部图标" },
53
+ { "name": "rightIcon", "description": "自定义输入框尾部图标" },
54
+ { "name": "button", "description": "自定义输入框尾部按钮" },
55
+ { "name": "extra", "description": "自定义输入框最右侧的额外内容" }
56
+ ],
57
+ "examples": {
58
+ "vue2": [
59
+ {
60
+ "title": "基础用法",
61
+ "code": "<em-cell-group>\n <em-field v-model=\"value\" label=\"文本\" placeholder=\"请输入用户名\" />\n</em-cell-group>\n\n<script>\nexport default {\n data() {\n return {\n value: ''\n };\n }\n};\n</script>",
62
+ "description": "通过 v-model 双向绑定输入框的值"
63
+ },
64
+ {
65
+ "title": "基座风格",
66
+ "code": "<em-cell-group>\n <em-field label=\"横向必填项\" basic required is-link placeholder=\"请输入\" v-model=\"value\"></em-field>\n</em-cell-group>",
67
+ "description": "通过 basic 设置基座风格的样式"
68
+ },
69
+ {
70
+ "title": "自定义类型",
71
+ "code": "<em-field v-model=\"tel\" type=\"tel\" label=\"手机号\" />\n<em-field v-model=\"number\" type=\"number\" label=\"整数\" />\n<em-field v-model=\"password\" type=\"password\" label=\"密码\" />",
72
+ "description": "根据 type 属性定义不同类型的输入框"
73
+ }
74
+ ],
75
+ "vue3": [
76
+ {
77
+ "title": "基础用法",
78
+ "code": "<em-cell-group>\n <em-field v-model=\"value\" label=\"文本\" placeholder=\"请输入用户名\" />\n</em-cell-group>\n\n<script setup>\nimport { ref } from 'vue';\nconst value = ref('');\n</script>",
79
+ "description": "通过 v-model 双向绑定输入框的值"
80
+ },
81
+ {
82
+ "title": "基座风格",
83
+ "code": "<em-cell-group>\n <em-field label=\"横向必填项\" basic required is-link placeholder=\"请输入\" v-model=\"value\"></em-field>\n</em-cell-group>\n\n<script setup>\nimport { ref } from 'vue';\nconst value = ref('');\n</script>",
84
+ "description": "通过 basic 设置基座风格的样式"
85
+ }
86
+ ]
87
+ }
88
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "components": [
3
+ { "id": "actionsheet", "name": "em-actionsheet", "title": "动作面板", "file": "actionsheet.json" },
4
+ { "id": "amap", "name": "em-amap", "title": "地图", "file": "amap.json" },
5
+ { "id": "button", "name": "em-button", "title": "按钮", "file": "button.json" },
6
+ { "id": "cell", "name": "em-cell", "title": "单元格", "file": "cell.json" },
7
+ { "id": "checkbox", "name": "em-checkbox", "title": "复选框", "file": "checkbox.json" },
8
+ { "id": "circle", "name": "em-circle", "title": "环形进度条", "file": "circle.json" },
9
+ { "id": "datepicker", "name": "em-datepicker", "title": "日期选择", "file": "datepicker.json" },
10
+ { "id": "field", "name": "em-field", "title": "输入框", "file": "field.json" },
11
+ { "id": "form", "name": "em-form", "title": "表单", "file": "form.json" },
12
+ { "id": "header", "name": "em-header", "title": "头部导航栏", "file": "header.json" },
13
+ { "id": "icon", "name": "em-icon", "title": "图标", "file": "icon.json" },
14
+ { "id": "loading", "name": "em-loading", "title": "加载", "file": "loading.json" },
15
+ { "id": "noticebar", "name": "em-noticebar", "title": "通知栏", "file": "noticebar.json" },
16
+ { "id": "numberkeyboard", "name": "em-numberkeyboard", "title": "数字键盘", "file": "numberkeyboard.json" },
17
+ { "id": "pagination", "name": "em-pagination", "title": "分页", "file": "pagination.json" },
18
+ { "id": "panel", "name": "em-panel", "title": "面板", "file": "panel.json" },
19
+ { "id": "passwordinput", "name": "em-passwordinput", "title": "密码输入框", "file": "passwordinput.json" },
20
+ { "id": "picker", "name": "em-picker", "title": "选择器", "file": "picker.json" },
21
+ { "id": "popup", "name": "em-popup", "title": "弹出层", "file": "popup.json" },
22
+ { "id": "progress", "name": "em-progress", "title": "进度条", "file": "progress.json" },
23
+ { "id": "radio", "name": "em-radio", "title": "单选框", "file": "radio.json" },
24
+ { "id": "rate", "name": "em-rate", "title": "评分", "file": "rate.json" },
25
+ { "id": "search", "name": "em-search", "title": "搜索", "file": "search.json" },
26
+ { "id": "slider", "name": "em-slider", "title": "滑块", "file": "slider.json" },
27
+ { "id": "stepper", "name": "em-stepper", "title": "步进器", "file": "stepper.json" },
28
+ { "id": "swipecell", "name": "em-swipecell", "title": "滑动单元格", "file": "swipecell.json" },
29
+ { "id": "switch", "name": "em-switch", "title": "开关", "file": "switch.json" },
30
+ { "id": "switchcell", "name": "em-switchcell", "title": "开关单元格", "file": "switchcell.json" },
31
+ { "id": "tag", "name": "em-tag", "title": "标记", "file": "tag.json" },
32
+ { "id": "treeselect", "name": "em-treeselect", "title": "分类选择", "file": "treeselect.json" },
33
+ { "id": "uploader", "name": "em-uploader", "title": "文件上传", "file": "uploader.json" },
34
+ { "id": "verifycode", "name": "em-verifycode", "title": "验证码", "file": "verifycode.json" },
35
+ { "id": "minirefresh", "name": "em-minirefresh", "title": "下拉刷新", "file": "minirefresh.json" },
36
+ { "id": "layout", "name": "em-layout", "title": "布局", "file": "layout.json" },
37
+ { "id": "image", "name": "em-image", "title": "图片", "file": "image.json" },
38
+ { "id": "toast", "name": "em-toast", "title": "轻提示", "file": "toast.json" },
39
+ { "id": "calendar", "name": "em-calendar", "title": "日历", "file": "calendar.json" },
40
+ { "id": "area", "name": "em-area", "title": "省市区选择", "file": "area.json" },
41
+ { "id": "tab", "name": "em-tab", "title": "标签页", "file": "tab.json" },
42
+ { "id": "dialog", "name": "em-dialog", "title": "弹出框", "file": "dialog.json" },
43
+ { "id": "dropdownmenu", "name": "em-dropdownmenu", "title": "下拉菜单", "file": "dropdownmenu.json" },
44
+ { "id": "notify", "name": "em-notify", "title": "消息通知", "file": "notify.json" },
45
+ { "id": "overlay", "name": "em-overlay", "title": "遮罩层", "file": "overlay.json" },
46
+ { "id": "collapse", "name": "em-collapse", "title": "折叠面板", "file": "collapse.json" },
47
+ { "id": "grid", "name": "em-grid", "title": "宫格", "file": "grid.json" },
48
+ { "id": "countdown", "name": "em-countdown", "title": "倒计时", "file": "countdown.json" },
49
+ { "id": "divider", "name": "em-divider", "title": "分割线", "file": "divider.json" },
50
+ { "id": "empty", "name": "em-empty", "title": "空状态", "file": "empty.json" },
51
+ { "id": "imagepreview", "name": "em-imagepreview", "title": "图片预览", "file": "imagepreview.json" },
52
+ { "id": "lazyload", "name": "em-lazyload", "title": "懒加载", "file": "lazyload.json" },
53
+ { "id": "skeleton", "name": "em-skeleton", "title": "骨架屏", "file": "skeleton.json" },
54
+ { "id": "steps", "name": "em-steps", "title": "步骤条", "file": "steps.json" },
55
+ { "id": "sticky", "name": "em-sticky", "title": "粘性布局", "file": "sticky.json" },
56
+ { "id": "indexbar", "name": "em-indexbar", "title": "索引栏", "file": "indexbar.json" },
57
+ { "id": "sidebar", "name": "em-sidebar", "title": "侧边导航", "file": "sidebar.json" },
58
+ { "id": "tabbar", "name": "em-tabbar", "title": "标签栏", "file": "tabbar.json" },
59
+ { "id": "badge", "name": "em-badge", "title": "徽标", "file": "badge.json" },
60
+ { "id": "popover", "name": "em-popover", "title": "气泡弹出框", "file": "popover.json" },
61
+ { "id": "cascader", "name": "em-cascader", "title": "级联选择", "file": "cascader.json" },
62
+ { "id": "selectperson", "name": "em-selectperson", "title": "选人组件", "file": "selectperson.json" },
63
+ { "id": "swipe", "name": "em-swipe", "title": "轮播", "file": "swipe.json" },
64
+ { "id": "easycalendar", "name": "em-easycalendar", "title": "日历", "file": "easycalendar.json" },
65
+ { "id": "qrcode", "name": "em-qrcode", "title": "二维码", "file": "qrcode.json" },
66
+ { "id": "imagescale", "name": "em-imagescale", "title": "图片裁剪", "file": "imagescale.json" },
67
+ { "id": "dragsort", "name": "em-dragsort", "title": "拖拽排序", "file": "dragsort.json" },
68
+ { "id": "chart", "name": "em-chart", "title": "图表", "file": "chart.json" },
69
+ { "id": "rtc", "name": "em-rtc", "title": "音视频", "file": "rtc.json" },
70
+ { "id": "table", "name": "em-table", "title": "表格", "file": "table.json" }
71
+ ]
72
+ }
File without changes
@@ -0,0 +1,108 @@
1
+ {
2
+ "id": "css-style",
3
+ "category": "css",
4
+ "title": "CSS/SCSS 编码规范",
5
+ "version": "1.1.0",
6
+ "lastUpdated": "2024-12-19",
7
+ "description": "M8 框架项目中 CSS/SCSS 的编码标准",
8
+ "rules": [
9
+ {
10
+ "id": "css-variables",
11
+ "title": "使用 SASS 变量统一管理颜色和样式",
12
+ "description": "整体风格(颜色、字体、间距等)必须使用 SASS 变量统一管理,禁止在代码中硬编码颜色值。",
13
+ "correctExample": "// 在 variables.scss 中定义\n$color-primary: #1890ff;\n$color-text-primary: #333;\n\n// 使用变量\n.button {\n background-color: $color-primary;\n color: $color-text-primary;\n}",
14
+ "incorrectExample": ".button {\n background-color: #1890ff;\n color: #333333;\n}"
15
+ },
16
+ {
17
+ "id": "css-bem",
18
+ "title": "BEM 命名规范",
19
+ "description": "推荐使用 BEM (Block Element Modifier) 命名规范。块: block,元素: block__element,修饰符: block--modifier",
20
+ "correctExample": ".card { }\n.card__header { }\n.card__header--active { }",
21
+ "incorrectExample": ".card-header-active { }"
22
+ },
23
+ {
24
+ "id": "css-naming",
25
+ "title": "类名使用小写英文、数字和下划线组合",
26
+ "description": "样式名称由小写英文、数字和下划线组合命名,避免使用中文拼音,命名要语义化、简明化。",
27
+ "correctExample": ".page_header { }\n.nav_item { }\n.btn_primary { }\n.user_avatar { }",
28
+ "incorrectExample": ".yonghu_touxiang { } // 中文拼音\n.pageHeader { } // 驼峰命名\n.a1 { } // 不语义化"
29
+ },
30
+ {
31
+ "id": "css-deep-selectors",
32
+ "title": "样式穿透 (Deep Selectors)",
33
+ "description": "Vue2 使用 ::v-deep,Vue3 使用 :deep()。使用样式穿透后,禁止结合 BEM 后缀选择器。",
34
+ "correctExample": ":deep(.em-cell) {\n // .em-cell 的样式\n}\n\n:deep(.em-cell__title) {\n // .em-cell__title 的样式\n}",
35
+ "incorrectExample": ":deep(.em-cell) {\n &__title { } // Sass 无法正确编译\n}"
36
+ },
37
+ {
38
+ "id": "css-no-id",
39
+ "title": "避免使用 ID 选择器",
40
+ "description": "ID 选择器优先级过高,不利于样式复用和覆盖。",
41
+ "correctExample": ".header { }\n.main_content { }",
42
+ "incorrectExample": "#header { }\n#main_content { }"
43
+ },
44
+ {
45
+ "id": "css-no-tag",
46
+ "title": "尽量少使用标签选择器",
47
+ "description": "避免直接使用标签选择器,使用类选择器代替。",
48
+ "correctExample": ".nav_link { }\n.list_item { }",
49
+ "incorrectExample": "a { }\nli { }\ndiv { }"
50
+ },
51
+ {
52
+ "id": "css-selector-newline",
53
+ "title": "多选择器情况,每个选择器单独占一行",
54
+ "description": "当有多个选择器时,每个选择器应该单独占一行。",
55
+ "correctExample": ".header,\n.footer,\n.sidebar {\n padding: 16px;\n}",
56
+ "incorrectExample": ".header, .footer, .sidebar { padding: 16px; }"
57
+ },
58
+ {
59
+ "id": "css-nesting-depth",
60
+ "title": "选择器嵌套不超过 3 层",
61
+ "description": "过深的嵌套会增加选择器优先级,降低性能。",
62
+ "correctExample": ".card {\n .card_header {\n .card_title { }\n }\n}",
63
+ "incorrectExample": ".page {\n .content {\n .card {\n .card_header {\n .card_title { }\n }\n }\n }\n}"
64
+ },
65
+ {
66
+ "id": "css-property-order",
67
+ "title": "CSS 推荐书写顺序",
68
+ "description": "按以下顺序排列 CSS 属性:1.位置属性 2.大小 3.文字系列 4.背景 5.其他",
69
+ "correctExample": ".element {\n /* 1. 位置属性 */\n position: absolute;\n display: flex;\n /* 2. 大小 */\n width: 100%;\n padding: 16px;\n /* 3. 文字系列 */\n font-size: 14px;\n color: #333;\n /* 4. 背景 */\n background: #fff;\n border: 1px solid #eee;\n /* 5. 其他 */\n transition: all 0.3s;\n}",
70
+ "incorrectExample": ".element {\n color: #333;\n position: absolute;\n background: #fff;\n width: 100%;\n}"
71
+ },
72
+ {
73
+ "id": "css-position-zindex",
74
+ "title": "使用 position 定位时,必须加上 z-index",
75
+ "description": "当使用 position: fixed/absolute 时,必须指定 z-index 值。",
76
+ "correctExample": ".modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1000;\n}",
77
+ "incorrectExample": ".modal {\n position: fixed;\n top: 0;\n left: 0;\n}"
78
+ },
79
+ {
80
+ "id": "css-hex-shorthand",
81
+ "title": "16 进制颜色值可缩写时必须缩写",
82
+ "description": "当设置的颜色是 16 进制的色彩值时,如果每两位的值相同,必须缩写。",
83
+ "correctExample": ".text {\n color: #333;\n background: #fff;\n}",
84
+ "incorrectExample": ".text {\n color: #333333;\n background: #ffffff;\n}"
85
+ },
86
+ {
87
+ "id": "css-zero-unit",
88
+ "title": "避免为 0 值指定单位",
89
+ "description": "当值为 0 时,不需要指定单位。",
90
+ "correctExample": ".element {\n margin: 0;\n padding: 0;\n}",
91
+ "incorrectExample": ".element {\n margin: 0px;\n padding: 0px;\n}"
92
+ },
93
+ {
94
+ "id": "css-no-important",
95
+ "title": "避免使用 !important",
96
+ "description": "!important 会破坏样式的层叠规则,应该通过提高选择器优先级来解决。",
97
+ "correctExample": ".page .button {\n color: red;\n}",
98
+ "incorrectExample": ".button {\n color: red !important;\n}"
99
+ },
100
+ {
101
+ "id": "css-no-inline",
102
+ "title": "避免使用内联样式",
103
+ "description": "内联样式难以维护和复用,应该使用类选择器。",
104
+ "correctExample": "<div class=\"highlight_text\">内容</div>",
105
+ "incorrectExample": "<div style=\"color: red; font-size: 14px;\">内容</div>"
106
+ }
107
+ ]
108
+ }