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,381 @@
1
+ # 组件使用
2
+
3
+ ## Chart 图表
4
+
5
+ ### 介绍
6
+
7
+ - 参考[`echarts-for-weixin`](https://github.com/ecomfe/echarts-for-weixin),基于[`Echarts`图表库](https://echarts.apache.org/handbook/zh/concepts/chart-size)封装的跨端组件。该组件自`v8.3.9`版本开始支持。
8
+
9
+ ### 代码演示
10
+
11
+ ```html
12
+ <div class="content">
13
+ <em-chart ref="emChart" width="100vw" height="400px" @loaded="loaded"></em-chart>
14
+ <em-button type="primary" @click="getImage">获取图片</em-button>
15
+ <em-button type="info" @click="refresh">刷新图表</em-button>
16
+ <em-button type="info" @click="addEvent">绑定图表点击事件</em-button>
17
+ <em-image v-if="imageUrl" width="100vw" height="400px" :src="imageUrl" />
18
+ </div>
19
+ ```
20
+
21
+ ::: ifdef M83
22
+
23
+ ```js
24
+ import * as echarts from '@components/../sub_components/em-chart/ec-chart/echarts.js';
25
+ export default {
26
+ data() {
27
+ return {
28
+ imageUrl: ''
29
+ };
30
+ },
31
+ methods: {
32
+ async loaded() {
33
+ this.myChartNode = this.$refs.emChart;
34
+ this.myChartNode.initChart(this.getOption());
35
+ // 获取echarts图表的实例,可使用echarts实例上的方法
36
+ // 由于图表初始化完成后才可以获取echarts实例,所以该方法是异步的
37
+ this.myChart = await this.$refs.emChart.getInstance();
38
+ },
39
+ getImage() {
40
+ const self = this;
41
+
42
+ // 小程序平台都是由canvas渲染,生成图片时会将tooltip一起截图
43
+ // 为了与H5端保持一致,建议在获取图片时隐藏多余的组件
44
+ this.myChart.dispatchAction({
45
+ type: 'hideTip'
46
+ });
47
+
48
+ setTimeout(() => {
49
+ this.myChartNode.getImage({
50
+ success(res) {
51
+ // 在H5平台下,tempFilePath 为 base64
52
+ // 支付宝小程序的IDE不支持 canvasToTempFilePath,请在真机上进行预览
53
+ self.imageUrl = res.tempFilePath;
54
+ },
55
+ fail(error) {
56
+ console.log(error);
57
+ }
58
+ });
59
+ }, 300);
60
+ },
61
+ refresh() {
62
+ let option = this.getOption();
63
+
64
+ option.title.text = '蒸发量和降水量比较';
65
+ this.myChartNode.setOption(option);
66
+ },
67
+ addEvent() {
68
+ this.myChart.on('click', 'series', function () {
69
+ // 默认使用同层渲染
70
+ // 微信小程序的IDE上预览图表时,若遮挡了其他元素,请在真机上预览,以真机预览效果为准
71
+ ejs.ui.toast('series 被点击了');
72
+ });
73
+ },
74
+ getOption() {
75
+ return {
76
+ title: {
77
+ text: '某地区蒸发量和降水量',
78
+ subtext: '纯属虚构'
79
+ },
80
+ tooltip: {
81
+ trigger: 'axis'
82
+ },
83
+ legend: {
84
+ data: ['蒸发量', '降水量'],
85
+ y: 'bottom'
86
+ },
87
+ toolbox: {
88
+ show: true,
89
+ feature: {
90
+ magicType: { show: true, type: ['line', 'bar'] },
91
+ restore: { show: true }
92
+ }
93
+ },
94
+ calculable: true,
95
+ xAxis: [
96
+ {
97
+ type: 'category',
98
+ data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
99
+ }
100
+ ],
101
+ yAxis: [
102
+ {
103
+ type: 'value'
104
+ }
105
+ ],
106
+ series: [
107
+ {
108
+ name: '蒸发量',
109
+ type: 'bar',
110
+ data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
111
+ markPoint: {
112
+ data: [
113
+ { type: 'max', name: '最大值' },
114
+ { type: 'min', name: '最小值' }
115
+ ]
116
+ },
117
+ markLine: {
118
+ data: [{ type: 'average', name: '平均值' }]
119
+ },
120
+ itemStyle: {
121
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
122
+ {
123
+ offset: 0,
124
+ color: '#005BEA'
125
+ },
126
+ {
127
+ offset: 1,
128
+ color: '#00C6FB'
129
+ }
130
+ ])
131
+ }
132
+ },
133
+ {
134
+ name: '降水量',
135
+ type: 'bar',
136
+ data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
137
+ markPoint: {
138
+ data: [
139
+ { name: '年最高', value: 182.2, xAxis: 7, yAxis: 183 },
140
+ { name: '年最低', value: 2.3, xAxis: 11, yAxis: 3 }
141
+ ]
142
+ },
143
+ markLine: {
144
+ data: [{ type: 'average', name: '平均值' }]
145
+ }
146
+ }
147
+ ]
148
+ };
149
+ }
150
+ }
151
+ };
152
+ ```
153
+
154
+ ::: endif
155
+ ::: ifdef M84
156
+
157
+ ```js
158
+ import { ref } from 'vue';
159
+ import * as echarts from '@components/../sub_components/em-chart/ec-chart/echarts.js';
160
+
161
+ const emChart = ref(null);
162
+ const imageUrl = ref('');
163
+ const myChartNode = ref(null);
164
+ const myChart = ref(null);
165
+
166
+ const loaded = async () => {
167
+ myChartNode.value = emChart.value;
168
+ myChartNode.value.initChart(getOption());
169
+ // 获取echarts图表的实例,可使用echarts实例上的方法
170
+ myChart.value = await myChartNode.value.getInstance();
171
+ };
172
+
173
+ const getImage = () => {
174
+ // 小程序平台都是由canvas渲染,生成图片时会将tooltip一起截图
175
+ myChart.value.dispatchAction({
176
+ type: 'hideTip'
177
+ });
178
+
179
+ setTimeout(() => {
180
+ myChartNode.value.getImage({
181
+ success(res) {
182
+ // 在H5平台下,tempFilePath 为 base64
183
+ // 支付宝小程序的IDE不支持 canvasToTempFilePath,请在真机上进行预览
184
+ imageUrl.value = res.tempFilePath;
185
+ },
186
+ fail(error) {
187
+ console.log(error);
188
+ }
189
+ });
190
+ }, 300);
191
+ };
192
+
193
+ const refresh = () => {
194
+ let option = getOption();
195
+ option.title.text = '蒸发量和降水量比较';
196
+ myChartNode.value.setOption(option);
197
+ };
198
+
199
+ const addEvent = () => {
200
+ myChart.value.on('click', 'series', function () {
201
+ // 默认使用同层渲染
202
+ ejs.ui.toast('series 被点击了');
203
+ });
204
+ };
205
+
206
+ const getOption = () => {
207
+ return {
208
+ title: {
209
+ text: '某地区蒸发量和降水量',
210
+ subtext: '纯属虚构'
211
+ },
212
+ tooltip: {
213
+ trigger: 'axis'
214
+ },
215
+ legend: {
216
+ data: ['蒸发量', '降水量'],
217
+ y: 'bottom'
218
+ },
219
+ toolbox: {
220
+ show: true,
221
+ feature: {
222
+ magicType: { show: true, type: ['line', 'bar'] },
223
+ restore: { show: true }
224
+ }
225
+ },
226
+ calculable: true,
227
+ xAxis: [
228
+ {
229
+ type: 'category',
230
+ data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
231
+ }
232
+ ],
233
+ yAxis: [
234
+ {
235
+ type: 'value'
236
+ }
237
+ ],
238
+ series: [
239
+ {
240
+ name: '蒸发量',
241
+ type: 'bar',
242
+ data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
243
+ markPoint: {
244
+ data: [
245
+ { type: 'max', name: '最大值' },
246
+ { type: 'min', name: '最小值' }
247
+ ]
248
+ },
249
+ markLine: {
250
+ data: [{ type: 'average', name: '平均值' }]
251
+ },
252
+ itemStyle: {
253
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
254
+ {
255
+ offset: 0,
256
+ color: '#005BEA'
257
+ },
258
+ {
259
+ offset: 1,
260
+ color: '#00C6FB'
261
+ }
262
+ ])
263
+ }
264
+ },
265
+ {
266
+ name: '降水量',
267
+ type: 'bar',
268
+ data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
269
+ markPoint: {
270
+ data: [
271
+ { name: '年最高', value: 182.2, xAxis: 7, yAxis: 183 },
272
+ { name: '年最低', value: 2.3, xAxis: 11, yAxis: 3 }
273
+ ]
274
+ },
275
+ markLine: {
276
+ data: [{ type: 'average', name: '平均值' }]
277
+ }
278
+ }
279
+ ]
280
+ };
281
+ };
282
+ ```
283
+
284
+ ::: endif
285
+
286
+ ### API
287
+
288
+ #### Props
289
+
290
+ | 参数 | 说明 | 类型 | 默认值 |
291
+ | :------------ | :-------------------------------------------------------------------------------------------------------------------: | :------------ | :------ |
292
+ | disable-touch | 禁用`touch`事件 | boolean | `false` |
293
+ | width | 组件宽度,默认单位`px` | string/number | `300px` |
294
+ | height | 组件高度,默认单位`px` | string/number | `200px` |
295
+ | lazyLoad | 是否手动初始化图表 | boolean | `true` |
296
+ | option | 自动初始化图表时,传入的图表配置项,见官方文档 [`ECharts`配置项手册](https://echarts.apache.org/zh/option.html#title) | object | `-` |
297
+
298
+ #### 方法
299
+
300
+ | 方法名 | 说明 | 参数 | 返回值 |
301
+ | :----------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------- | :-------- |
302
+ | initChart | 初始化图表 | option:图表配置项 | - |
303
+ | setOption | 刷新图表 | option:图表配置项 | - |
304
+ | getImage | 生成图片,H5 端通过`ECharts`实例方法`getDataURL`获取,平台小程序端通过各平台`canvasToTempFilePath`方法获取 | option:各平台对应方法的参数配置,获取结果通过`option.success`回调 | - |
305
+ | getInstance | 获取`ECharts`实例,由于初始化完成后才能获取到实例,所以该方法是个异步方法 | - | `Promise` |
306
+ | getEcharts ::: ifdef M83 `8.3.23-beta.3` ::: endif ::: ifdef M84 `8.4.0-beta.12` ::: endif | 获取`echarts`变量,可在异步分包时通过该方法获取 `echarts`,避免框架重复在分包中打包 `echarts`库 | - | `echarts` |
307
+
308
+ #### Events
309
+
310
+ | 事件名 | 说明 | 回调参数 |
311
+ | :--------------- | :-----------------------------------------------------------: | :------- |
312
+ | loaded `v8.3.12` | 图表组件`mounted`生命周期触发,用于异步化分包时进行初始化操作 | - |
313
+
314
+ ### 注意事项
315
+
316
+ #### 未支持的功能
317
+
318
+ `Echarts`是 H5 端流行的图表库,但是在跨平台兼容方面有些问题,据`echarts-for-weixin`官方文档介绍,有些功能在小程序端还未支持:
319
+
320
+ 1. 图片
321
+
322
+ 2. 多个 `zlevel` 分层
323
+
324
+ 3. `toolbox` 中的 `dataView`、`saveAsImage`
325
+
326
+ #### 兼容性问题
327
+
328
+ 在跨端框架中使用 `ECharts` 时,也会有一些兼容性问题,框架会根据项目反馈持续总结在该文档中供参考。
329
+
330
+ 1. H5 环境下`tooltip`无法正常触发
331
+
332
+ 原因:`ECharts`判断运行环境时,会通过是否存在全局变量`wx`来判断当前是否是微信环境,而`uniapp`在 H5 端为了兼容如微信公众号、企业微信等环境,会默认覆盖设置全局变量`wx`,导致 `ECharts` 对运行环境误判,出现该问题。
333
+
334
+ 解决方式:H5 端在页面引入`ECharts`之前,将该全局变量`wx`置空。`em-chart`组件在 H5 端已默认添加置空语句。
335
+
336
+ ```js
337
+ // #ifdef H5
338
+ window.wx = undefined;
339
+ // #endif
340
+ ```
341
+
342
+ #### 其他图表库
343
+
344
+ `ECharts`虽然图表类型丰富、功能强大,但其跨平台方面有些不足,在小程序端也会有些性能问题。
345
+
346
+ 在跨端框架中展示图表,若需要的图表类型不用太丰富,非常推荐使用`uChart`库:[`uChart`文档](https://www.ucharts.cn/v2/#/)
347
+
348
+ - 优点:唯一一款跨全端的图表库,`uniapp`官方推荐使用,与跨端框架适配。
349
+
350
+ - 缺点:图表类型相比 `ECharts` 少,自定义样式功能相比 `ECharts` 少
351
+
352
+ ::: ifdef M83
353
+ <iframe
354
+ src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-chart"
355
+ frameborder=0
356
+ allowfullscreen class="ui-showcase-iframe">
357
+ </iframe>
358
+ ::: endif
359
+ ::: ifdef M84
360
+ <iframe
361
+ src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-chart"
362
+ frameborder=0
363
+ allowfullscreen class="ui-showcase-iframe">
364
+ </iframe>
365
+ ::: endif
366
+
367
+ <style>
368
+ .ui-showcase-iframe {
369
+ position: fixed;
370
+ right: 3.5vw;
371
+ top: 17%;
372
+ width: 375px;
373
+ height: 75vh;
374
+ box-shadow: 0 0 12px 6px #eee;
375
+ border-radius: 15px;
376
+ }
377
+ .main .markdown-body {
378
+ padding: 45px;
379
+ width: calc(97vw - 661px);
380
+ }
381
+ </style>