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,467 @@
1
+ # 组件使用
2
+
3
+ ## calendar 日历
4
+
5
+ ### 介绍
6
+
7
+ - 日历组件用于选择日期或日期区间。
8
+
9
+ ### 代码演示
10
+
11
+ #### 选择单个日期
12
+
13
+ 下面演示了结合单元格来使用日历组件的用法,日期选择完成后会触发 `confirm` 事件。
14
+
15
+ ```html
16
+ <em-cell title="选择单个日期" :value="date" @click="show = true" />
17
+ <em-calendar v-model="show" @confirm="onConfirm" />
18
+ ```
19
+
20
+ ::: ifdef M83
21
+
22
+ ```js
23
+ export default {
24
+ data() {
25
+ return {
26
+ date: '',
27
+ show: false
28
+ };
29
+ },
30
+ methods: {
31
+ formatDate(date) {
32
+ return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
33
+ },
34
+ onConfirm(date) {
35
+ this.show = false;
36
+ this.date = this.formatDate(date);
37
+ }
38
+ }
39
+ };
40
+ ```
41
+
42
+ ::: endif
43
+ ::: ifdef M84
44
+
45
+ ```js
46
+ import { ref } from 'vue';
47
+
48
+ const date = ref('');
49
+ const show = ref(false);
50
+
51
+ const formatDate = (currdate) => {
52
+ return `${currdate.getFullYear()}/${currdate.getMonth() + 1}/${currdate.getDate()}`;
53
+ };
54
+
55
+ const onConfirm = (currdate) => {
56
+ show.value = false;
57
+ date.value = formatDate(currdate);
58
+ };
59
+ ```
60
+
61
+ ::: endif
62
+
63
+ #### 选择多个日期
64
+
65
+ 设置 `type` 为 `multiple` 后可以选择多个日期,此时 `confirm` 事件返回的 `date` 为数组结构,数组包含若干个选中的日期。
66
+
67
+ ```html
68
+ <em-cell title="选择多个日期" :value="text" @click="show = true" />
69
+ <em-calendar v-model="show" type="multiple" @confirm="onConfirm" />
70
+ ```
71
+
72
+ ::: ifdef M83
73
+
74
+ ```js
75
+ export default {
76
+ data() {
77
+ return {
78
+ text: '',
79
+ show: false
80
+ };
81
+ },
82
+ methods: {
83
+ onConfirm(date) {
84
+ this.show = false;
85
+ this.text = `选择了 ${date.length} 个日期`;
86
+ }
87
+ }
88
+ };
89
+ ```
90
+
91
+ ::: endif
92
+ ::: ifdef M84
93
+
94
+ ```js
95
+ import { ref } from 'vue';
96
+
97
+ const text = ref('');
98
+ const show = ref(false);
99
+
100
+ const onConfirm = (date) => {
101
+ show.value = false;
102
+ text.value = `选择了 ${date.length} 个日期`;
103
+ };
104
+ ```
105
+
106
+ ::: endif
107
+
108
+ #### 选择日期区间
109
+
110
+ 设置 `type` 为 `range` 后可以选择日期区间,此时 `confirm` 事件返回的 `date` 为数组结构,数组第一项为开始时间,第二项为结束时间。
111
+
112
+ ```html
113
+ <em-cell title="选择日期区间" :value="date" @click="show = true" />
114
+ <em-calendar v-model="show" type="range" @confirm="onConfirm" />
115
+ ```
116
+
117
+ ::: ifdef M83
118
+
119
+ ```js
120
+ export default {
121
+ data() {
122
+ return {
123
+ date: '',
124
+ show: false
125
+ };
126
+ },
127
+ methods: {
128
+ formatDate(date) {
129
+ return `${date.getMonth() + 1}/${date.getDate()}`;
130
+ },
131
+ onConfirm(date) {
132
+ const [start, end] = date;
133
+ this.show = false;
134
+ this.date = `${this.formatDate(start)} - ${this.formatDate(end)}`;
135
+ }
136
+ }
137
+ };
138
+ ```
139
+
140
+ ::: endif
141
+ ::: ifdef M84
142
+
143
+ ```js
144
+ import { ref } from 'vue';
145
+
146
+ const date = ref('');
147
+ const show = ref(false);
148
+
149
+ const formatDate = (currdate) => {
150
+ return `${currdate.getMonth() + 1}/${currdate.getDate()}`;
151
+ };
152
+
153
+ const onConfirm = (date) => {
154
+ const [start, end] = date;
155
+ show.value = false;
156
+ date.value = `${formatDate(start)} - ${formatDate(end)}`;
157
+ };
158
+ ```
159
+
160
+ ::: endif
161
+
162
+ #### 快捷选择
163
+
164
+ 将 `show-confirm` 设置为 `false` 可以隐藏确认按钮,这种情况下选择完成后会立即触发 `confirm` 事件。
165
+
166
+ ```html
167
+ <em-calendar v-model="show" :show-confirm="false" />
168
+ ```
169
+
170
+ #### 自定义颜色
171
+
172
+ 通过 `color` 属性可以自定义日历的颜色,对选中日期和底部按钮生效。
173
+
174
+ ```html
175
+ <em-calendar v-model="show" color="#07c160" />
176
+ ```
177
+
178
+ #### 自定义日期范围
179
+
180
+ 通过 `min-date` 和 `max-date` 定义日历的范围。
181
+
182
+ ```html
183
+ <em-calendar v-model="show" :min-date="minDate" :max-date="maxDate" />
184
+ ```
185
+
186
+ ::: ifdef M83
187
+
188
+ ```js
189
+ export default {
190
+ data() {
191
+ return {
192
+ show: false,
193
+ minDate: new Date(2010, 0, 1).getTime(),
194
+ maxDate: new Date(2010, 0, 31).getTime()
195
+ };
196
+ }
197
+ };
198
+ ```
199
+
200
+ ::: endif
201
+ ::: ifdef M84
202
+
203
+ ```js
204
+ import { ref } from 'vue';
205
+
206
+ const show = ref(false);
207
+ const minDate = ref(new Date(2010, 0, 1).getTime());
208
+ const maxDate = ref(new Date(2010, 0, 31).getTime());
209
+ ```
210
+
211
+ ::: endif
212
+
213
+ #### 自定义按钮文字
214
+
215
+ 通过 `confirm-text` 设置按钮文字,通过 `confirm-disabled-text` 设置按钮禁用时的文字。
216
+
217
+ ```html
218
+ <em-calendar v-model="show" type="range" confirm-text="完成" confirm-disabled-text="请选择结束时间" />
219
+ ```
220
+
221
+ #### 自定义日期文案
222
+
223
+ 通过传入 `formatter` 函数来对日历上每一格的内容进行格式化。
224
+
225
+ ```html
226
+ <em-cell is-link title="自定义日期文案" :value="date9" @click="onclickShow" />
227
+ <em-calendar v-model="show9" :min-date="minDate" :max-date="maxDate" type="range" :formatter="formatter" />
228
+ ```
229
+ ::: ifdef M83
230
+ ```js
231
+ // 动态添加和去除ref名称
232
+ export default {
233
+ data() {
234
+ return {
235
+ date9: '',
236
+ show9: false,
237
+ minDate: new Date(2010, 4, 1).getTime(),
238
+ maxDate: new Date(2010, 4, 31).getTime()
239
+ };
240
+ },
241
+ methods: {
242
+ onclickShow() {
243
+ this.show9 = true;
244
+ },
245
+ formatter(day) {
246
+ const month = day.date.getMonth() + 1;
247
+ const date = day.date.getDate();
248
+
249
+ if (month === 5) {
250
+ if (date === 1) {
251
+ day.topInfo = '劳动节';
252
+ } else if (date === 4) {
253
+ day.topInfo = '青年节';
254
+ } else if (date === 11) {
255
+ day.text = '今天';
256
+ }
257
+ }
258
+
259
+ if (day.type === 'start') {
260
+ day.bottomInfo = '入店';
261
+ } else if (day.type === 'end') {
262
+ day.bottomInfo = '离店';
263
+ }
264
+
265
+ return day;
266
+ }
267
+ }
268
+ };
269
+ ```
270
+ ::: endif
271
+ ::: ifdef M84
272
+ ```js
273
+ import { ref } from 'vue';
274
+
275
+ const date9 = ref('');
276
+ const show9 = ref(false);
277
+ const minDate = ref(new Date(2010, 4, 1).getTime());
278
+ const maxDate = ref(new Date(2010, 4, 31).getTime());
279
+
280
+ const onclickShow = () => {
281
+ show9.value = true;
282
+ };
283
+
284
+ const formatter = (day) => {
285
+ const month = day.date.getMonth() + 1;
286
+ const date = day.date.getDate();
287
+
288
+ if (month === 5) {
289
+ if (date === 1) {
290
+ day.topInfo = '劳动节';
291
+ } else if (date === 4) {
292
+ day.topInfo = '青年节';
293
+ } else if (date === 11) {
294
+ day.text = '今天';
295
+ }
296
+ }
297
+
298
+ if (day.type === 'start') {
299
+ day.bottomInfo = '入店';
300
+ } else if (day.type === 'end') {
301
+ day.bottomInfo = '离店';
302
+ }
303
+
304
+ return day;
305
+ };
306
+ ```
307
+ ::: endif
308
+
309
+ #### 自定义弹出位置
310
+
311
+ 通过 `position` 属性自定义弹出层的弹出位置,可选值为 `top`、`left`、`right`。
312
+
313
+ ```html
314
+ <em-calendar v-model="show" :round="false" position="right" />
315
+ ```
316
+
317
+ #### 日期区间最大范围
318
+
319
+ 选择日期区间时,可以通过 `max-range` 属性来指定最多可选天数,选择的范围超过最多可选天数时,会弹出相应的提示文案。
320
+
321
+ ```html
322
+ <em-calendar type="range" :max-range="3" :style="{ height: '500px' }" />
323
+ ```
324
+
325
+ #### 自定义周起始日
326
+
327
+ 通过 `first-day-of-week` 属性设置一周从哪天开始。
328
+
329
+ ```html
330
+ <em-calendar first-day-of-week="1" />
331
+ ```
332
+
333
+ #### 平铺展示
334
+
335
+ 将 `poppable` 设置为 `false`,日历会直接展示在页面内,而不是以弹层的形式出现。
336
+
337
+ ```html
338
+ <em-calendar title="日历" :poppable="false" :show-confirm="false" custom-style="height:500px;" ref="calendar" />
339
+ ```
340
+
341
+ ### API
342
+
343
+ #### Props
344
+
345
+ | 参数 | 说明 | 类型 | 默认值 |
346
+ | :-------------------- | :------------------------------------------------------------------------------------: | :---------------- | :----------------- |
347
+ | type | 选择类型:`single`表示选择单个日期,`multiple`表示选择多个日期,`range`表示选择日期区间 | string | `single` |
348
+ | title | 日历标题 | string | 日期选择 |
349
+ | color | 主题色,对底部按钮和选中日期生效 | string | `#ee0a24` |
350
+ | min-date | 可选择的最小日期 | Number(时间戳) | 当前日期 |
351
+ | max-date | 可选择的最大日期 | Number(时间戳) | 当前日期的六个月后 |
352
+ | default-date | 默认选中的日期,`type`为`multiple`或`range`时为数组 | Number(时间戳) | 今天 |
353
+ | row-height | 日期行高 | number / string | `64` |
354
+ | formatter | 日期格式化函数 | (day: Day) => Day | - |
355
+ | poppable | 是否以弹层的形式展示日历 | boolean | `true` |
356
+ | show-mark | 是否显示月份背景水印 | boolean | `true` |
357
+ | show-title | 是否展示日历标题 | boolean | `true` |
358
+ | show-subtitle | 是否展示日历副标题(年月) | boolean | `true` |
359
+ | show-confirm | 是否展示确认按钮 | boolean | `true` |
360
+ | readonly | 是否为只读状态,只读状态下不能选择日期 | boolean | `false` |
361
+ | confirm-text | 确认按钮的文字 | string | 确定 |
362
+ | confirm-disabled-text | 确认按钮处于禁用状态时的文字 | string | 确定 |
363
+ | first-day-of-week | 设置周起始日 | 0-6 | `0` |
364
+
365
+ #### Poppable Props
366
+
367
+ 当 `Canlendar` 的 `poppable` 为 `true` 时,支持以下 `props`:
368
+
369
+ | 参数 | 说明 | 类型 | 默认值 |
370
+ | :--------------------------------------------------------------------------- | :-------------------------------------: | :------ | :------- |
371
+ | v-model ::: ifdef M83 (value) ::: endif ::: ifdef M84 (modelValue) ::: endif | 是否显示日历弹窗 | boolean | `false` |
372
+ | position | 弹出位置,可选值为 `top` `right` `left` | string | `bottom` |
373
+ | round | 是否显示圆角弹窗 | boolean | `true` |
374
+ | close-on-click-overlay | 是否在点击遮罩层后关闭 | boolean | `true` |
375
+ | safe-area-inset-bottom | 是否开启底部安全区适配 | boolean | `true` |
376
+
377
+ #### Range Props
378
+
379
+ 当 `Canlendar` 的 `type` 为 `range` 时,支持以下 `props`:
380
+
381
+ | 参数 | 说明 | 类型 | 默认值 |
382
+ | :------------- | :----------------------------------: | :-------------- | :--------------------- |
383
+ | max-range | 日期区间最多可选天数 | number / string | 无限制 |
384
+ | range-prompt | 范围选择超过最多可选天数时的提示文案 | string | 选择天数不能超过 xx 天 |
385
+ | allow-same-day | 是否允许日期范围的起止时间为同一天 | boolean | `fasle` |
386
+
387
+ #### Multiple Props
388
+
389
+ 当 `Canlendar` 的 `type` 为 `multiple` 时,支持以下 `props`:
390
+
391
+ | 参数 | 说明 | 类型 | 默认值 |
392
+ | :----------- | :------------------------------: | :-------------- | :--------------------- |
393
+ | max-range | 日期最多可选天数 | number / string | 无限制 |
394
+ | range-prompt | 选择超过最多可选天数时的提示文案 | string | 选择天数不能超过 xx 天 |
395
+
396
+ #### Day 数据结构
397
+
398
+ 日历中的每个日期都对应一个 `Day` 对象,通过`formatter`属性可以自定义 `Day` 对象的内容
399
+
400
+ | 键名 | 说明 | 类型 |
401
+ | :--------- | :----------------------------------------------------------------: | :----- |
402
+ | date | 日期对应的 Date 对象 | Date |
403
+ | type | 日期类型,可选值为`selected`、`start`、`middle`、`end`、`disabled` | string |
404
+ | text | 中间显示的文字 | string |
405
+ | topInfo | 上方的提示信息 | string |
406
+ | bottomInfo | 下方的提示信息 | string |
407
+ | className | 额外类名 | string |
408
+
409
+ #### Events
410
+
411
+ | 事件名 | 说明 | 回调参数 |
412
+ | :--------- | :----------------------------------------------------------------: | :---------------------------- |
413
+ | select | 点击并选中任意日期时触发 | value: Date / Date[] |
414
+ | confirm | 日期选择完成后触发,若`show-confirm`为`true`,则点击确认按钮后触发 | value: Date / Date[] |
415
+ | open | 打开弹出层时触发 | - |
416
+ | close | 关闭弹出层时触发 | - |
417
+ | opened | 打开弹出层且动画结束后触发 | - |
418
+ | closed | 关闭弹出层且动画结束后触发 | - |
419
+ | unselect | 当日历组件的 `type` 为 `multiple` 时,取消选中日期时触发 | value: Date |
420
+ | month-show | 当某个月份进入可视区域时触发 | { date: Date, title: string } |
421
+
422
+ #### Slots
423
+
424
+ | 名称 | 说明 |
425
+ | :----- | :----------------: |
426
+ | title | 自定义标题 |
427
+ | footer | 自定义底部区域内容 |
428
+
429
+ #### 方法
430
+
431
+ 通过 `ref` 可以获取到 `Calendar` 实例并调用实例方法,详见组件实例方法
432
+
433
+ | 方法名 | 说明 | 参数 | 返回值 |
434
+ | :----------- | :--------------------------------------------------: | :------------------------- | :----- |
435
+ | reset | 将选中的日期重置到指定日期,未传参时会重置到默认日期 | number?: number / number[] | - |
436
+ | scrollToDate | 滚动到某个日期 | date: Date | - |
437
+
438
+ ::: ifdef M83
439
+ <iframe
440
+ src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-calendar"
441
+ frameborder=0
442
+ allowfullscreen class="ui-showcase-iframe">
443
+ </iframe>
444
+ ::: endif
445
+ ::: ifdef M84
446
+ <iframe
447
+ src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-calendar"
448
+ frameborder=0
449
+ allowfullscreen class="ui-showcase-iframe">
450
+ </iframe>
451
+ ::: endif
452
+
453
+ <style>
454
+ .ui-showcase-iframe {
455
+ position: fixed;
456
+ right: 3.5vw;
457
+ top: 17%;
458
+ width: 375px;
459
+ height: 75vh;
460
+ box-shadow: 0 0 12px 6px #eee;
461
+ border-radius: 15px;
462
+ }
463
+ .main .markdown-body {
464
+ padding: 45px;
465
+ width: calc(97vw - 661px);
466
+ }
467
+ </style>