m8-mcp-server 1.0.1 → 1.1.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 (164) hide show
  1. package/README.md +118 -32
  2. package/dist/index.d.mts +449 -0
  3. package/dist/index.d.ts +449 -0
  4. package/dist/index.js +700 -1
  5. package/dist/index.mjs +700 -0
  6. package/package.json +34 -21
  7. package/prompts/PROMPTS.md +476 -0
  8. package/bin/m8-mcp.js +0 -2
  9. package/dist/constants.js +0 -1
  10. package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
  11. package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
  12. package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
  13. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  14. package/dist/data/ejs-doc/api_device/api_device.md +0 -761
  15. package/dist/data/ejs-doc/api_event/api_event.md +0 -244
  16. package/dist/data/ejs-doc/api_global/api_global.md +0 -440
  17. package/dist/data/ejs-doc/api_io/api_io.md +0 -369
  18. package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
  19. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  20. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  21. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  22. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  23. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  24. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  25. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  26. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  27. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  28. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  29. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  30. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  31. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  32. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  33. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  34. package/dist/data/ejs-doc/api_page/api_page.md +0 -261
  35. package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
  36. package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
  37. package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
  38. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  39. package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
  40. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  41. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  42. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  43. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  44. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  45. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  46. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  47. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  48. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  49. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  50. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  51. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  52. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  53. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  54. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  55. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  56. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  57. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  58. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  59. package/dist/data/ejs-doc/api_util/api_util.md +0 -615
  60. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  61. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  62. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  63. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  64. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +0 -247
  65. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +0 -276
  66. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +0 -130
  67. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +0 -115
  68. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +0 -398
  69. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -456
  70. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  71. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  72. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  73. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  74. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  75. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  76. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  77. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  78. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +0 -76
  79. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  80. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  81. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  82. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  83. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  84. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  85. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  86. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  87. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  88. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +0 -188
  89. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +0 -460
  90. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  91. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  92. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  93. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  94. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +0 -168
  95. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -617
  96. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  97. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  98. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +0 -150
  99. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  100. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  101. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  102. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +0 -427
  103. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  104. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  105. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +0 -175
  106. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  107. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  108. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  109. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  110. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  111. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  112. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  113. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  114. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +0 -265
  115. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  116. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +0 -115
  117. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  118. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +0 -631
  119. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -531
  120. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  121. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +0 -337
  122. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  123. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  124. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  125. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  126. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +0 -295
  127. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  128. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  129. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -265
  130. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +0 -203
  131. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  132. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -199
  133. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  134. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  135. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  136. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  137. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +0 -292
  138. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  139. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  140. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  141. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +0 -208
  142. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  143. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +0 -248
  144. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  145. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  146. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +0 -325
  147. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +0 -360
  148. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +0 -595
  149. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  150. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  151. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  152. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  153. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +0 -261
  154. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +0 -161
  155. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  156. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  157. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  158. package/dist/data/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +0 -116
  159. package/dist/data/standards/css-style.md +0 -531
  160. package/dist/data/standards/js-style.md +0 -394
  161. package/dist/data/standards/project-structure.md +0 -325
  162. package/dist/data/standards/vue-style.md +0 -644
  163. package/dist/tools/search.js +0 -1
  164. package/dist/tools/standards.js +0 -1
@@ -1,467 +0,0 @@
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>