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,360 @@
1
+ # 组件使用
2
+
3
+ ## cascader 级联选择框
4
+
5
+ ### 介绍
6
+
7
+ - 级联选择框,用于多层级数据的选择,典型场景为省市区选择, M8 框架`8.2.10`版本以上支持。
8
+
9
+ ### 代码演示
10
+
11
+ #### 基础用法
12
+
13
+ 级联选择组件可以搭配 `Field` 和 `Popup` 组件使用,示例如下:
14
+
15
+ ```html
16
+ <em-field v-model="fieldValue" is-link readonly label="地区" placeholder="请选择所在地区" @click="show = true" />
17
+ <em-cascader
18
+ v-model="show"
19
+ title="请选择所在地区"
20
+ :selected-value="cascaderValue"
21
+ :options="options"
22
+ @close="show = false"
23
+ @finish="onFinish"
24
+ />
25
+ ```
26
+
27
+ ::: ifdef M83
28
+
29
+ ```js
30
+ export default {
31
+ data() {
32
+ return {
33
+ show: false,
34
+ fieldValue: '',
35
+ cascaderValue: '',
36
+ // 选项列表,children 代表子选项,支持多级嵌套
37
+ options: [
38
+ {
39
+ text: '浙江省',
40
+ value: '330000',
41
+ children: [{ text: '杭州市', value: '330100' }]
42
+ },
43
+ {
44
+ text: '江苏省',
45
+ value: '320000',
46
+ children: [{ text: '南京市', value: '320100' }]
47
+ }
48
+ ]
49
+ };
50
+ },
51
+ methods: {
52
+ // 全部选项选择完毕后,会触发 finish 事件
53
+ onFinish({ selectedOptions }) {
54
+ this.show = false;
55
+ this.fieldValue = selectedOptions.map((option) => option.text).join('/');
56
+ }
57
+ }
58
+ };
59
+ ```
60
+
61
+ ::: endif
62
+ ::: ifdef M84
63
+
64
+ ```js
65
+ import { ref } from 'vue';
66
+
67
+ // 使用 ref 创建响应式数据
68
+ const show = ref(false);
69
+ const fieldValue = ref('');
70
+ const cascaderValue = ref('');
71
+
72
+ // 选项列表,支持多级嵌套
73
+ const options = ref([
74
+ {
75
+ text: '浙江省',
76
+ value: '330000',
77
+ children: [{ text: '杭州市', value: '330100' }]
78
+ },
79
+ {
80
+ text: '江苏省',
81
+ value: '320000',
82
+ children: [{ text: '南京市', value: '320100' }]
83
+ }
84
+ ]);
85
+
86
+ // 全部选项选择完毕后,会触发 finish 事件
87
+ const onFinish = ({ selectedOptions }) => {
88
+ show.value = false;
89
+ fieldValue.value = selectedOptions.map((option) => option.text).join('/');
90
+ };
91
+ ```
92
+
93
+ ::: endif
94
+
95
+ #### 自定义颜色
96
+
97
+ 通过 `active-color` 属性来设置选中状态的高亮颜色。
98
+
99
+ ```html
100
+ <em-cascader
101
+ v-model="show"
102
+ title="请选择所在地区"
103
+ active-color="#1989fa"
104
+ :options="options"
105
+ @close="show = false"
106
+ @finish="onFinish"
107
+ />
108
+ ```
109
+
110
+ #### 异步加载选项
111
+
112
+ 可以监听 `change` 事件并动态设置 `options`,实现异步加载选项。
113
+
114
+ ```html
115
+ <em-field v-model="fieldValue" is-link readonly label="地区" placeholder="请选择所在地区" @click="show = true" />
116
+ <em-cascader
117
+ v-model="show"
118
+ :selected-value="cascaderValue"
119
+ title="请选择所在地区"
120
+ :options="options"
121
+ @close="show = false"
122
+ @finish="onFinish"
123
+ @change="onChange"
124
+ />
125
+ ```
126
+
127
+ ::: ifdef M83
128
+
129
+ ```js
130
+ export default {
131
+ data() {
132
+ return {
133
+ show: false,
134
+ fieldValue: '',
135
+ cascaderValue: '',
136
+ options: [
137
+ {
138
+ text: '浙江省',
139
+ value: '330000',
140
+ children: []
141
+ }
142
+ ]
143
+ };
144
+ },
145
+ methods: {
146
+ onChange({ value }) {
147
+ if (value === this.options[0].value) {
148
+ setTimeout(() => {
149
+ this.options[0].children = [
150
+ { text: '杭州市', value: '330100' },
151
+ { text: '宁波市', value: '330200' }
152
+ ];
153
+ }, 500);
154
+ }
155
+ },
156
+ onFinish({ selectedOptions }) {
157
+ this.show = false;
158
+ this.fieldValue = selectedOptions.map((option) => option.text).join('/');
159
+ }
160
+ }
161
+ };
162
+ ```
163
+
164
+ ::: endif
165
+ ::: ifdef M84
166
+
167
+ ```js
168
+ import { ref } from 'vue';
169
+
170
+ // 使用 ref 创建响应式数据
171
+ const show = ref(false);
172
+ const fieldValue = ref('');
173
+ const cascaderValue = ref('');
174
+
175
+ // 选项列表,支持多级嵌套
176
+ const options = ref([
177
+ {
178
+ text: '浙江省',
179
+ value: '330000',
180
+ children: []
181
+ }
182
+ ]);
183
+
184
+ // 选中项变化时触发
185
+ const onChange = ({ value }) => {
186
+ if (value === options.value[0].value) {
187
+ setTimeout(() => {
188
+ options.value[0].children = [
189
+ { text: '杭州市', value: '330100' },
190
+ { text: '宁波市', value: '330200' }
191
+ ];
192
+ }, 500);
193
+ }
194
+ };
195
+
196
+ // 全部选项选择完成后触发
197
+ const onFinish = ({ selectedOptions }) => {
198
+ show.value = false;
199
+ fieldValue.value = selectedOptions.map((option) => option.text).join('/');
200
+ };
201
+ ```
202
+
203
+ ::: endif
204
+
205
+ #### 自定义字段名
206
+
207
+ 通过 `field-names` 属性可以自定义 `options` 里的字段名称。
208
+
209
+ ```html
210
+ <em-cascader
211
+ v-model="show"
212
+ title="请选择所在地区"
213
+ :options="options"
214
+ :field-names="fieldNames"
215
+ @close="show = false"
216
+ @finish="onFinish"
217
+ />
218
+ ```
219
+
220
+ ::: ifdef M83
221
+
222
+ ```js
223
+ export default {
224
+ data() {
225
+ return {
226
+ fieldNames: {
227
+ text: 'name',
228
+ value: 'code',
229
+ children: 'items'
230
+ },
231
+ options: [
232
+ {
233
+ name: '浙江省',
234
+ code: '330000',
235
+ items: [{ name: '杭州市', code: '330100' }]
236
+ },
237
+ {
238
+ name: '江苏省',
239
+ code: '320000',
240
+ items: [{ name: '南京市', code: '320100' }]
241
+ }
242
+ ]
243
+ };
244
+ }
245
+ };
246
+ ```
247
+
248
+ ::: endif
249
+ ::: ifdef M84
250
+
251
+ ```js
252
+ import { ref } from 'vue';
253
+
254
+ // 使用 ref 创建响应式数据
255
+ const fieldNames = ref({
256
+ text: 'name',
257
+ value: 'code',
258
+ children: 'items'
259
+ });
260
+
261
+ // 选项列表,支持多级嵌套
262
+ const options = ref([
263
+ {
264
+ name: '浙江省',
265
+ code: '330000',
266
+ items: [{ name: '杭州市', code: '330100' }]
267
+ },
268
+ {
269
+ name: '江苏省',
270
+ code: '320000',
271
+ items: [{ name: '南京市', code: '320100' }]
272
+ }
273
+ ]);
274
+ ```
275
+
276
+ ::: endif
277
+
278
+ ### API
279
+
280
+ #### Cascader Props
281
+
282
+ | 参数 | 说明 | 类型 | 默认值 |
283
+ | :--------------------------------------------------------------------------- | :---------------------------: | :-------------- | :------------------------------------------------------- |
284
+ | v-model ::: ifdef M83 (value) ::: endif ::: ifdef M84 (modelValue) ::: endif | 级联选择组件的显隐 | boolean | `false` |
285
+ | title | 顶部标题 | string | - |
286
+ | selected-value | 选中项的值 | string / number | - |
287
+ | options | 可选项数据源 | Option[] | `[]` |
288
+ | placeholder | 未选中时的提示文案 | string | `请选择` |
289
+ | active-color | 选中状态的高亮颜色 | string | `#2e6be5` |
290
+ | closeable | 是否显示关闭图标 | boolean | `true` |
291
+ | field-names | 自定义 `options` 结构中的字段 | object | `{ text: 'text', value: 'value', children: 'children' }` |
292
+
293
+ #### Popup Props
294
+
295
+ 级联选择组件已经包裹了`popup`组件,故也支持传递`popup`组件的部分`props`。相关`props`的具体示例请参考`popup`组件章节。
296
+
297
+ | 参数 | 说明 | 类型 | 默认值 |
298
+ | :--------------------- | :---------------------------------------: | :------ | :----- |
299
+ | overlay | 是否显示遮罩层 | boolean | `true` |
300
+ | overlay-class | 自定义遮罩层类名 | string | - |
301
+ | overlay-style | 自定义遮罩层样式 | object | - |
302
+ | transition | 动画类名,等价于 `transtion` 的`name`属性 | string | - |
303
+ | close-on-click-overlay | 是否在点击遮罩层后关闭 | boolean | `true` |
304
+ | lock-scroll | 是否锁定背景滚动 | boolean | `true` |
305
+ | lazy-render | 是否在显示弹层时才渲染节点 | boolean | `true` |
306
+
307
+ 注意,其中`transition`属性组件库支持的可选值有:`em-fade` `em-fade-up` `em-fade-down` `em-fade-left` `em-fade-right` `em-slide-up` `em-slide-down` `em-slide-left` `em-slide-right`
308
+
309
+ #### Cascader Events
310
+
311
+ | 事件 | 说明 | 回调参数 |
312
+ | :----- | :--------------------: | :------------------------------------- |
313
+ | change | 选中项变化时触发 | `{ value, selectedOptions, tabIndex }` |
314
+ | finish | 全部选项选择完成后触发 | `{ value, selectedOptions, tabIndex }` |
315
+ | close | 点击关闭图标时触发 | - |
316
+
317
+ #### Popup Events
318
+
319
+ 级联选择组件已经包裹了`popup`组件,故也支持`popup`组件的部分事件。相关事件的具体示例请参考`popup`组件章节。
320
+
321
+ | 事件名 | 说明 | 回调参数 |
322
+ | :----- | :--------------: | :-------------------------- |
323
+ | close | 关闭弹出层时触发 | `value`: 当前弹出层是否展开 |
324
+
325
+ #### Cascader Slots
326
+
327
+ | 名称 | 说明 |
328
+ | :---- | :------------: |
329
+ | title | 自定义顶部标题 |
330
+
331
+ ::: ifdef M83
332
+ <iframe
333
+ src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-cascader"
334
+ frameborder=0
335
+ allowfullscreen class="ui-showcase-iframe">
336
+ </iframe>
337
+ ::: endif
338
+ ::: ifdef M84
339
+ <iframe
340
+ src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-cascader"
341
+ frameborder=0
342
+ allowfullscreen class="ui-showcase-iframe">
343
+ </iframe>
344
+ ::: endif
345
+
346
+ <style>
347
+ .ui-showcase-iframe {
348
+ position: fixed;
349
+ right: 3.5vw;
350
+ top: 17%;
351
+ width: 375px;
352
+ height: 75vh;
353
+ box-shadow: 0 0 12px 6px #eee;
354
+ border-radius: 15px;
355
+ }
356
+ .main .markdown-body {
357
+ padding: 45px;
358
+ width: calc(97vw - 661px);
359
+ }
360
+ </style>