m8-mcp-server 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 (160) hide show
  1. package/README.md +67 -0
  2. package/bin/m8-mcp.js +2 -0
  3. package/dist/constants.js +1 -0
  4. package/dist/data/ejs-doc/api_audio/api_audio.md +225 -0
  5. package/dist/data/ejs-doc/api_auth/api_auth.md +256 -0
  6. package/dist/data/ejs-doc/api_contact/api_contact.md +295 -0
  7. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  8. package/dist/data/ejs-doc/api_device/api_device.md +761 -0
  9. package/dist/data/ejs-doc/api_event/api_event.md +244 -0
  10. package/dist/data/ejs-doc/api_global/api_global.md +440 -0
  11. package/dist/data/ejs-doc/api_io/api_io.md +369 -0
  12. package/dist/data/ejs-doc/api_navigator/api_navigator.md +654 -0
  13. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  14. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  15. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  16. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  17. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  18. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  19. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  20. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  21. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  22. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  23. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  24. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  25. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  26. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  27. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  28. package/dist/data/ejs-doc/api_page/api_page.md +261 -0
  29. package/dist/data/ejs-doc/api_runtime/api_runtime.md +788 -0
  30. package/dist/data/ejs-doc/api_storage/api_storage.md +320 -0
  31. package/dist/data/ejs-doc/api_stream/api_stream.md +152 -0
  32. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  33. package/dist/data/ejs-doc/api_ui/api_ui.md +836 -0
  34. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  35. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  36. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  37. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  38. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  39. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  40. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  41. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  42. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  43. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  44. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  45. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  46. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  47. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  48. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  49. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  50. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  51. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  52. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  53. package/dist/data/ejs-doc/api_util/api_util.md +615 -0
  54. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  55. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  56. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  57. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  58. 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 +247 -0
  59. 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 +276 -0
  60. 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 +130 -0
  61. 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 +115 -0
  62. 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 +398 -0
  63. 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 +456 -0
  64. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +128 -0
  65. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +142 -0
  66. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +210 -0
  67. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +85 -0
  68. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +21 -0
  69. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +36 -0
  70. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +128 -0
  71. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +148 -0
  72. 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 +76 -0
  73. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +59 -0
  74. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +95 -0
  75. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +76 -0
  76. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +202 -0
  77. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +92 -0
  78. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +412 -0
  79. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +146 -0
  80. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +137 -0
  81. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +363 -0
  82. 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 +188 -0
  83. 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 +460 -0
  84. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +285 -0
  85. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +211 -0
  86. 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 +213 -0
  87. 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 +501 -0
  88. 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 +168 -0
  89. 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 +617 -0
  90. 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 +539 -0
  91. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +999 -0
  92. 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 +150 -0
  93. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +133 -0
  94. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +117 -0
  95. 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 +152 -0
  96. 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 +427 -0
  97. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +212 -0
  98. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +85 -0
  99. 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 +175 -0
  100. 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 +519 -0
  101. 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 +152 -0
  102. 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 +103 -0
  103. 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 +285 -0
  104. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +189 -0
  105. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +217 -0
  106. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +166 -0
  107. 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 +340 -0
  108. 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 +265 -0
  109. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +196 -0
  110. 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 +115 -0
  111. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +232 -0
  112. 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 +631 -0
  113. 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 +531 -0
  114. 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 +111 -0
  115. 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 +337 -0
  116. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +150 -0
  117. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +144 -0
  118. 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 +429 -0
  119. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +467 -0
  120. 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 +295 -0
  121. 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 +577 -0
  122. 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 +491 -0
  123. 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 +265 -0
  124. 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 +203 -0
  125. 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 +139 -0
  126. 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 +199 -0
  127. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +183 -0
  128. 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 +289 -0
  129. 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 +97 -0
  130. 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 +146 -0
  131. 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 +292 -0
  132. 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 +120 -0
  133. 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 +114 -0
  134. 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 +119 -0
  135. 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 +208 -0
  136. 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 +161 -0
  137. 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 +248 -0
  138. 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 +314 -0
  139. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +162 -0
  140. 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 +325 -0
  141. 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 +360 -0
  142. 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 +595 -0
  143. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +262 -0
  144. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +51 -0
  145. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +132 -0
  146. 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 +1538 -0
  147. 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 +261 -0
  148. 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 +161 -0
  149. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +381 -0
  150. 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 +531 -0
  151. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +849 -0
  152. 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 +116 -0
  153. package/dist/data/standards/css-style.md +531 -0
  154. package/dist/data/standards/js-style.md +394 -0
  155. package/dist/data/standards/project-structure.md +325 -0
  156. package/dist/data/standards/vue-style.md +644 -0
  157. package/dist/index.js +1 -0
  158. package/dist/tools/search.js +1 -0
  159. package/dist/tools/standards.js +1 -0
  160. package/package.json +43 -0
@@ -0,0 +1,116 @@
1
+ # Mock 的使用
2
+
3
+ ## 前言
4
+
5
+ 在跨端框架中,为了支持跨平台小程序使用,使用`better-mock`库代替了mockjs库,使用方法保持一致。
6
+
7
+ `Mock.js` 是一款模拟数据生成器,旨在帮助前端工程师独立于后端进行开发。提供了以下模拟功能:
8
+
9
+ - 根据数据模板生成模拟数据
10
+ - 模拟 `Ajax` 请求,生成并返回模拟数据
11
+
12
+ `Mock` 的具体使用方法可参照 [Mock.js 官方文档](http://mockjs.com/0.1/ 'Mock.js官方文档')
13
+
14
+ ## 配置开启
15
+
16
+ 需要`mock`数据时,在框架 `ejs.m8.project -> src -> shared` 文件夹下的 `config.js` 配置文件中设置 `isMock` 字段为 `true`,框架会自动开启 `Mock` 的功能。
17
+
18
+ ```js
19
+ export default {
20
+ ...
21
+ /**
22
+ * 是否进行mock模拟数据请求
23
+ * 仅在debug模式下有效
24
+ */
25
+ isMock: true,
26
+ ...
27
+ };
28
+ ```
29
+
30
+ ___
31
+
32
+ 支持在pages下的每个模块下定义mock.js文件,框架将会自动引入定义的mock.js文件
33
+
34
+
35
+ ## 文件位置
36
+
37
+ ```
38
+ ejs.m8.project
39
+ ├── src
40
+ │   ├── pages
41
+ │   │   ├── [module_name] // 以模块名命名的文件夹
42
+ │   │   │ ├── css // 当前模块下的css样式目录
43
+ │   │   │ ├── images // 当前模块下的图片资源目录
44
+ │   │   │ ├── [module_name_A].vue // 模块单文件组件
45
+ │   │   │ ├── [module_name_B].vue // 模块单文件组件
46
+ │   │   │ ├── [module_name_C].vue // 模块单文件组件
47
+ │   │   │ ├── router.js // 此模块对应的路由定义
48
+ │   │   │ ├── store.js // 此模块对应的状态管理定义
49
+ │   │   │ ├── mock.js // v8.2.15版本支持,此模块对应的mock管理定义
50
+ ```
51
+
52
+ ## mock.js文件示例
53
+ 示例一
54
+
55
+ ```js
56
+ import Mock from '@mock'; // 与M8.2应用不同,跨端中通过重新定义别名引用。注意引用的名称为 @mock
57
+ export default [
58
+ {
59
+ // 接口地址
60
+ methodUrl: '/rest/mock/test',
61
+ // 入参
62
+ input: {
63
+ guid: ''
64
+ },
65
+ // 出参
66
+ output: Mock.mock({
67
+ info: {
68
+ title: Mock.Random.csentence(5, 10), // 随机生成一段中文文本。
69
+ data: Mock.Random.csentence(25, 30)
70
+ }
71
+ })
72
+ }
73
+ ];
74
+ ```
75
+ 导出resultData数组,每个元素为一个mock数据对象,其中包含以下属性:
76
+
77
+ - methodUrl:用于匹配mock的接口地址
78
+ - input: 入参
79
+ - output: 用于模拟的出参mock数据
80
+
81
+ 经过以上步骤模拟好请求后,在应用中请求相应接口就会接收到对应的模拟数据(框架中已封装好`axios`),例如:
82
+
83
+ ```js
84
+ Util.ajax({
85
+ url: `${Config.serverUrl}/rest/mock/test`,
86
+ data: {
87
+ params: JSON.stringify({
88
+ guid: id
89
+ })
90
+ }
91
+ })
92
+ .then(result => {
93
+ if (result && result.status && result.status.code === 1) {
94
+ console.log(result);
95
+ }
96
+ })
97
+ .catch(err => {
98
+ console.error(err);
99
+ });
100
+ ```
101
+
102
+ 控制台打印:
103
+
104
+ ```js
105
+ {
106
+ custom: {
107
+ info: {
108
+ data: "元府连度圆委象比做县接南条系区集根标式状节温打水院集。",
109
+ title: "包近际计包院主于。"
110
+ }
111
+ },
112
+ status: {
113
+ code: 1
114
+ }
115
+ }
116
+ ```
@@ -0,0 +1,531 @@
1
+ # CSS/SCSS 编码规范
2
+
3
+ <!-- id: css-style -->
4
+ <!-- category: css -->
5
+ <!-- version: 1.1.0 -->
6
+ <!-- lastUpdated: 2024-12-19 -->
7
+
8
+ 本规范定义了 M8 框架项目中 CSS/SCSS 的编码标准。
9
+
10
+ ## 样式变量管理
11
+
12
+ ### 使用 SASS 变量统一管理颜色和样式
13
+
14
+ 整体风格(颜色、字体、间距等)必须使用 SASS 变量统一管理,禁止在代码中硬编码颜色值。
15
+
16
+ ```scss
17
+ // ✅ 正确 - 在 variables.scss 中定义
18
+ // 主题色
19
+ $color-primary: #1890ff;
20
+ $color-success: #52c41a;
21
+ $color-warning: #faad14;
22
+ $color-error: #ff4d4f;
23
+
24
+ // 文字颜色
25
+ $color-text-primary: #333;
26
+ $color-text-secondary: #666;
27
+ $color-text-placeholder: #999;
28
+
29
+ // 背景色
30
+ $color-bg-base: #fff;
31
+ $color-bg-gray: #f5f5f5;
32
+
33
+ // 边框色
34
+ $color-border: #e8e8e8;
35
+
36
+ // 字体大小
37
+ $font-size-xs: 10px;
38
+ $font-size-sm: 12px;
39
+ $font-size-base: 14px;
40
+ $font-size-lg: 16px;
41
+ $font-size-xl: 18px;
42
+
43
+ // 间距
44
+ $spacing-xs: 4px;
45
+ $spacing-sm: 8px;
46
+ $spacing-md: 16px;
47
+ $spacing-lg: 24px;
48
+ $spacing-xl: 32px;
49
+
50
+ // 使用变量
51
+ .button {
52
+ background-color: $color-primary;
53
+ color: $color-text-primary;
54
+ font-size: $font-size-base;
55
+ padding: $spacing-sm $spacing-md;
56
+ }
57
+
58
+ // ❌ 错误 - 硬编码颜色值
59
+ .button {
60
+ background-color: #1890ff;
61
+ color: #333333;
62
+ }
63
+ ```
64
+
65
+ ## 命名规范
66
+
67
+ ### BEM 命名规范
68
+
69
+ 推荐使用 BEM (Block Element Modifier) 命名规范,但需结合项目实际情况。
70
+
71
+ - 块 (Block): `block`
72
+ - 元素 (Element): `block__element`
73
+ - 修饰符 (Modifier): `block--modifier`
74
+
75
+ ```css
76
+ .card {
77
+ }
78
+ .card__header {
79
+ }
80
+ .card__header--active {
81
+ }
82
+ ```
83
+
84
+ ### 采用模块化命名方式
85
+
86
+ 使用大的框架命名,如 header/footer/wrapper/left/right 等。
87
+
88
+ ```css
89
+ /* ✅ 正确 - 框架命名 */
90
+ .header {
91
+ }
92
+ .footer {
93
+ }
94
+ .wrapper {
95
+ }
96
+ .sidebar_left {
97
+ }
98
+ .sidebar_right {
99
+ }
100
+ .main_content {
101
+ }
102
+
103
+ /* ✅ 正确 - 模块化命名 */
104
+ .user_card {
105
+ }
106
+ .user_card_header {
107
+ }
108
+ .user_card_body {
109
+ }
110
+ .nav_menu {
111
+ }
112
+ .nav_menu_item {
113
+ }
114
+ ```
115
+
116
+ ### 类名使用小写英文、数字和下划线组合
117
+
118
+ 样式名称由小写英文、数字和下划线组合命名,避免使用中文拼音,命名要语义化、简明化。
119
+
120
+ ```css
121
+ /* ✅ 正确 */
122
+ .page_header {
123
+ }
124
+ .nav_item {
125
+ }
126
+ .btn_primary {
127
+ }
128
+ .list_item_1 {
129
+ }
130
+ .user_avatar {
131
+ }
132
+
133
+ /* ❌ 错误 - 使用中文拼音 */
134
+ .yonghu_touxiang {
135
+ }
136
+ .daohang_liebiao {
137
+ }
138
+
139
+ /* ❌ 错误 - 使用驼峰命名 */
140
+ .pageHeader {
141
+ }
142
+ .navItem {
143
+ }
144
+
145
+ /* ❌ 错误 - 命名不语义化 */
146
+ .a1 {
147
+ }
148
+ .box1 {
149
+ }
150
+ .div2 {
151
+ }
152
+ ```
153
+
154
+ ### 样式穿透 (Deep Selectors)
155
+
156
+ - **Vue2**: 使用 `::v-deep` 代替 `/deep/` (已废弃)。
157
+ - **Vue3**: 官方推荐使用 `:deep()` 选择器。
158
+
159
+ **注意**:使用 `::v-deep` 或者 `:deep()` 在对组件样式穿透后,禁止结合 BEM 后缀选择器(如 `&__title`),因为 Sass 无法正确编译。
160
+
161
+ 解决方式 1:分开写选择器
162
+
163
+ ```scss
164
+ :deep(.em-cell) {
165
+ // .em-cell 的样式
166
+ }
167
+
168
+ :deep(.em-cell__title) {
169
+ // .em-cell__title 的样式
170
+ }
171
+ ```
172
+
173
+ 解决方式 2:使用 Sass 的 `@at-root` 指令
174
+
175
+ ```scss
176
+ :deep(.em-cell) {
177
+ @at-root {
178
+ #{&}__title {
179
+ // 你的样式
180
+ }
181
+ }
182
+ }
183
+ ```
184
+
185
+ ## 选择器规范
186
+
187
+ ### 避免使用 ID 选择器
188
+
189
+ ID 选择器优先级过高,不利于样式复用和覆盖。
190
+
191
+ ```css
192
+ /* ✅ 正确 */
193
+ .header {
194
+ }
195
+ .main_content {
196
+ }
197
+
198
+ /* ❌ 错误 */
199
+ #header {
200
+ }
201
+ #main_content {
202
+ }
203
+ ```
204
+
205
+ ### 尽量少使用标签选择器
206
+
207
+ ```css
208
+ /* ✅ 正确 */
209
+ .nav_link {
210
+ }
211
+ .list_item {
212
+ }
213
+
214
+ /* ❌ 错误 - 直接使用标签选择器 */
215
+ a {
216
+ }
217
+ li {
218
+ }
219
+ div {
220
+ }
221
+ ```
222
+
223
+ ### 尽量少使用通配符选择器
224
+
225
+ ```css
226
+ /* ❌ 错误 */
227
+ * {
228
+ margin: 0;
229
+ padding: 0;
230
+ }
231
+
232
+ /* ✅ 正确 - 使用 reset 或 normalize */
233
+ html,
234
+ body,
235
+ div,
236
+ span,
237
+ h1,
238
+ h2,
239
+ h3,
240
+ p {
241
+ margin: 0;
242
+ padding: 0;
243
+ }
244
+ ```
245
+
246
+ ### 多选择器情况,每个选择器单独占一行
247
+
248
+ ```css
249
+ /* ✅ 正确 */
250
+ .header,
251
+ .footer,
252
+ .sidebar {
253
+ padding: 16px;
254
+ }
255
+
256
+ /* ❌ 错误 */
257
+ .header,
258
+ .footer,
259
+ .sidebar {
260
+ padding: 16px;
261
+ }
262
+ ```
263
+
264
+ ### 选择器嵌套不超过 3 层
265
+
266
+ 过深的嵌套会增加选择器优先级,降低性能。
267
+
268
+ ```scss
269
+ /* ✅ 正确 */
270
+ .card {
271
+ .card_header {
272
+ .card_title {
273
+ }
274
+ }
275
+ }
276
+
277
+ /* ❌ 错误 */
278
+ .page {
279
+ .content {
280
+ .card {
281
+ .card_header {
282
+ .card_title {
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+ ```
289
+
290
+ ## 属性书写规范
291
+
292
+ ### CSS 推荐书写顺序
293
+
294
+ 按以下顺序排列 CSS 属性:
295
+
296
+ 1. 位置属性 (position, top, right, z-index, display, float 等)
297
+ 2. 大小 (width, height, padding, margin)
298
+ 3. 文字系列 (font, line-height, letter-spacing, color, text-align 等)
299
+ 4. 背景 (background, border 等)
300
+ 5. 其他 (animation, transition 等)
301
+
302
+ ```css
303
+ /* ✅ 正确 */
304
+ .element {
305
+ /* 1. 位置属性 */
306
+ position: absolute;
307
+ top: 0;
308
+ left: 0;
309
+ z-index: 10;
310
+ display: flex;
311
+ float: left;
312
+
313
+ /* 2. 大小 */
314
+ width: 100%;
315
+ height: 50px;
316
+ padding: 16px;
317
+ margin: 0 auto;
318
+
319
+ /* 3. 文字系列 */
320
+ font-size: 14px;
321
+ font-weight: 500;
322
+ line-height: 1.5;
323
+ letter-spacing: 1px;
324
+ color: #333;
325
+ text-align: center;
326
+
327
+ /* 4. 背景 */
328
+ background: #fff;
329
+ border: 1px solid #eee;
330
+ border-radius: 4px;
331
+
332
+ /* 5. 其他 */
333
+ cursor: pointer;
334
+ animation: fadeIn 0.3s;
335
+ transition: all 0.3s;
336
+ }
337
+ ```
338
+
339
+ ### 使用 position 定位时,必须加上 z-index
340
+
341
+ ```css
342
+ /* ✅ 正确 */
343
+ .modal {
344
+ position: fixed;
345
+ top: 0;
346
+ left: 0;
347
+ z-index: 1000;
348
+ }
349
+
350
+ .dropdown {
351
+ position: absolute;
352
+ top: 100%;
353
+ left: 0;
354
+ z-index: 100;
355
+ }
356
+
357
+ /* ❌ 错误 - 缺少 z-index */
358
+ .modal {
359
+ position: fixed;
360
+ top: 0;
361
+ left: 0;
362
+ }
363
+ ```
364
+
365
+ ### 16 进制颜色值可缩写时必须缩写
366
+
367
+ 当设置的颜色是 16 进制的色彩值时,如果每两位的值相同,必须缩写。
368
+
369
+ ```css
370
+ /* ✅ 正确 */
371
+ .text {
372
+ color: #333;
373
+ background: #fff;
374
+ border-color: #eee;
375
+ }
376
+
377
+ /* ❌ 错误 */
378
+ .text {
379
+ color: #333333;
380
+ background: #ffffff;
381
+ border-color: #eeeeee;
382
+ }
383
+ ```
384
+
385
+ ### 避免为 0 值指定单位
386
+
387
+ ```css
388
+ /* ✅ 正确 */
389
+ .element {
390
+ margin: 0;
391
+ padding: 0;
392
+ border: 0;
393
+ }
394
+
395
+ /* ❌ 错误 */
396
+ .element {
397
+ margin: 0px;
398
+ padding: 0px;
399
+ border: 0px;
400
+ }
401
+ ```
402
+
403
+ ## 代码整洁
404
+
405
+ ### 删除冗余代码
406
+
407
+ CSS 文件中的冗余代码必须删除,包括:
408
+
409
+ - 未使用的样式规则
410
+ - 重复的属性声明
411
+ - 被注释掉的旧代码
412
+ - 空的样式规则
413
+
414
+ ```css
415
+ /* ❌ 错误 - 冗余代码 */
416
+ .button {
417
+ color: red;
418
+ color: blue; /* 重复声明 */
419
+ }
420
+
421
+ /* .old_button { } */ /* 注释掉的旧代码 */
422
+
423
+ .empty {
424
+ } /* 空规则 */
425
+
426
+ /* ✅ 正确 */
427
+ .button {
428
+ color: blue;
429
+ }
430
+ ```
431
+
432
+ ## SCSS 规范
433
+
434
+ ### 变量命名
435
+
436
+ 使用有意义的变量名,遵循 `$组件-属性-状态` 的命名模式。
437
+
438
+ ```scss
439
+ /* ✅ 正确 */
440
+ $color-primary: #1890ff;
441
+ $color-success: #52c41a;
442
+ $font-size-base: 14px;
443
+ $btn-padding-horizontal: 16px;
444
+
445
+ /* ❌ 错误 */
446
+ $blue: #1890ff;
447
+ $c1: #52c41a;
448
+ $fs: 14px;
449
+ ```
450
+
451
+ ### Mixin 使用
452
+
453
+ 复用的样式块应该抽取为 mixin。
454
+
455
+ ```scss
456
+ /* ✅ 正确 */
457
+ @mixin ellipsis($lines: 1) {
458
+ @if $lines == 1 {
459
+ overflow: hidden;
460
+ text-overflow: ellipsis;
461
+ white-space: nowrap;
462
+ } @else {
463
+ display: -webkit-box;
464
+ -webkit-line-clamp: $lines;
465
+ -webkit-box-orient: vertical;
466
+ overflow: hidden;
467
+ }
468
+ }
469
+
470
+ .title {
471
+ @include ellipsis(2);
472
+ }
473
+ ```
474
+
475
+ ## 响应式设计
476
+
477
+ ### 使用移动优先策略
478
+
479
+ ```scss
480
+ /* ✅ 正确 - 移动优先 */
481
+ .container {
482
+ padding: 16px;
483
+
484
+ @media (min-width: 768px) {
485
+ padding: 24px;
486
+ }
487
+
488
+ @media (min-width: 1024px) {
489
+ padding: 32px;
490
+ }
491
+ }
492
+
493
+ /* ❌ 错误 - 桌面优先 */
494
+ .container {
495
+ padding: 32px;
496
+
497
+ @media (max-width: 1024px) {
498
+ padding: 24px;
499
+ }
500
+
501
+ @media (max-width: 768px) {
502
+ padding: 16px;
503
+ }
504
+ }
505
+ ```
506
+
507
+ ## 反模式
508
+
509
+ ### 避免使用 !important
510
+
511
+ ```css
512
+ /* ❌ 错误 */
513
+ .button {
514
+ color: red !important;
515
+ }
516
+
517
+ /* ✅ 正确 - 提高选择器优先级 */
518
+ .page .button {
519
+ color: red;
520
+ }
521
+ ```
522
+
523
+ ### 避免使用内联样式
524
+
525
+ ```html
526
+ <!-- ❌ 错误 -->
527
+ <div style="color: red; font-size: 14px;">内容</div>
528
+
529
+ <!-- ✅ 正确 -->
530
+ <div class="highlight_text">内容</div>
531
+ ```