@opentiny/vue-docs 2.2.8 → 2.2.9

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 (453) hide show
  1. package/demos/mobile/app/button/base.vue +42 -0
  2. package/demos/mobile/app/button/disabled.vue +42 -0
  3. package/demos/mobile/app/button/event.vue +46 -0
  4. package/demos/mobile/app/button/icon.vue +8 -7
  5. package/demos/mobile/app/button/loading.vue +21 -9
  6. package/demos/mobile/app/button/reset-time.vue +9 -16
  7. package/demos/mobile/app/button/size.vue +28 -11
  8. package/demos/mobile/app/button/webdoc/button.js +43 -98
  9. package/demos/mobile/app/file-upload/custom-upload-tip.vue +1 -1
  10. package/demos/mobile/app/switch/webdoc/switch.cn.md +3 -4
  11. package/demos/mobile-first/app/switch/webdoc/switch.cn.md +1 -1
  12. package/demos/mobile-first/app/switch/webdoc/switch.en.md +1 -1
  13. package/demos/pc/app/action-menu/webdoc/action-menu.js +2 -2
  14. package/demos/pc/app/alert/basic-usage-composition-api.vue +1 -0
  15. package/demos/pc/app/alert/basic-usage.vue +1 -0
  16. package/demos/pc/app/alert/custom-close.spec.ts +1 -1
  17. package/demos/pc/app/alert/icon-composition-api.vue +3 -2
  18. package/demos/pc/app/alert/icon.vue +4 -3
  19. package/demos/pc/app/alert/webdoc/alert.js +12 -2
  20. package/demos/pc/app/anchor/basic-usage-composition-api.vue +7 -7
  21. package/demos/pc/app/anchor/basic-usage.spec.ts +2 -2
  22. package/demos/pc/app/anchor/basic-usage.vue +7 -7
  23. package/demos/pc/app/anchor/change-composition-api.vue +7 -7
  24. package/demos/pc/app/anchor/change.spec.ts +2 -2
  25. package/demos/pc/app/anchor/change.vue +7 -7
  26. package/demos/pc/app/anchor/is-affix-composition-api.vue +7 -7
  27. package/demos/pc/app/anchor/is-affix.vue +7 -7
  28. package/demos/pc/app/anchor/webdoc/anchor.js +4 -4
  29. package/demos/pc/app/autocomplete/webdoc/autocomplete.js +2 -2
  30. package/demos/pc/app/badge/webdoc/badge.js +1 -1
  31. package/demos/pc/app/button/webdoc/button.js +1 -1
  32. package/demos/pc/app/button-group/basic-usage.spec.ts +1 -0
  33. package/demos/pc/app/button-group/slot-empty-composition-api.vue +25 -0
  34. package/demos/pc/app/button-group/slot-empty.spec.ts +11 -0
  35. package/demos/pc/app/button-group/slot-empty.vue +33 -0
  36. package/demos/pc/app/button-group/webdoc/button-group.js +9 -0
  37. package/demos/pc/app/calendar/basic-usage-composition-api.vue +1 -1
  38. package/demos/pc/app/calendar/basic-usage.spec.ts +33 -0
  39. package/demos/pc/app/calendar/basic-usage.vue +1 -1
  40. package/demos/pc/app/calendar/calendar-mode-composition-api.vue +1 -1
  41. package/demos/pc/app/calendar/calendar-mode.spec.ts +33 -0
  42. package/demos/pc/app/calendar/calendar-mode.vue +1 -1
  43. package/demos/pc/app/calendar/custom-calendar-toolbar-composition-api.vue +3 -3
  44. package/demos/pc/app/calendar/custom-calendar-toolbar.spec.ts +18 -0
  45. package/demos/pc/app/calendar/custom-calendar-toolbar.vue +3 -3
  46. package/demos/pc/app/calendar/custom-day-cell-composition-api.vue +1 -1
  47. package/demos/pc/app/calendar/custom-day-cell.spec.ts +10 -0
  48. package/demos/pc/app/calendar/custom-day-cell.vue +1 -1
  49. package/demos/pc/app/calendar/dynamic-add-schedule-composition-api.vue +1 -1
  50. package/demos/pc/app/calendar/dynamic-add-schedule.spec.ts +26 -0
  51. package/demos/pc/app/calendar/dynamic-add-schedule.vue +1 -1
  52. package/demos/pc/app/calendar/show-selected-date-composition-api.vue +1 -1
  53. package/demos/pc/app/calendar/show-selected-date.spec.ts +14 -0
  54. package/demos/pc/app/calendar/show-selected-date.vue +1 -1
  55. package/demos/pc/app/calendar/webdoc/calendar.js +22 -8
  56. package/demos/pc/app/calendar-view/basic-usage.spec.ts +18 -0
  57. package/demos/pc/app/calendar-view/calendar-day-mark.spec.ts +23 -0
  58. package/demos/pc/app/calendar-view/calendar-disabled-day-composition-api.vue +2 -2
  59. package/demos/pc/app/calendar-view/calendar-disabled-day.spec.ts +12 -0
  60. package/demos/pc/app/calendar-view/calendar-disabled-day.vue +1 -1
  61. package/demos/pc/app/calendar-view/calendar-event.spec.ts +25 -0
  62. package/demos/pc/app/calendar-view/calendar-mode.spec.ts +25 -0
  63. package/demos/pc/app/calendar-view/calendar-schedule-slot.spec.ts +18 -0
  64. package/demos/pc/app/calendar-view/calendar-timeline-range.spec.ts +11 -0
  65. package/demos/pc/app/calendar-view/calendar-timeline-slot.spec.ts +23 -0
  66. package/demos/pc/app/calendar-view/custom-calendar-toolbar.spec.ts +8 -0
  67. package/demos/pc/app/calendar-view/custom-day-bg-color.spec.ts +8 -0
  68. package/demos/pc/app/calendar-view/custom-header.spec.ts +11 -0
  69. package/demos/pc/app/calendar-view/multi-select-composition-api.vue +2 -2
  70. package/demos/pc/app/calendar-view/multi-select.spec.ts +13 -0
  71. package/demos/pc/app/calendar-view/multi-select.vue +1 -1
  72. package/demos/pc/app/calendar-view/set-working-day-composition-api.vue +3 -7
  73. package/demos/pc/app/calendar-view/set-working-day.spec.ts +22 -0
  74. package/demos/pc/app/calendar-view/set-working-day.vue +1 -1
  75. package/demos/pc/app/calendar-view/webdoc/calendar-view.js +1 -1
  76. package/demos/pc/app/carousel/autoplay-composition-api.vue +2 -2
  77. package/demos/pc/app/carousel/autoplay.spec.ts +2 -0
  78. package/demos/pc/app/carousel/autoplay.vue +2 -2
  79. package/demos/pc/app/carousel/basic-usage-composition-api.vue +2 -2
  80. package/demos/pc/app/carousel/basic-usage.spec.ts +1 -8
  81. package/demos/pc/app/carousel/basic-usage.vue +2 -2
  82. package/demos/pc/app/carousel/card-mode-composition-api.vue +2 -2
  83. package/demos/pc/app/carousel/card-mode.vue +2 -2
  84. package/demos/pc/app/carousel/carousel-arrow-always-composition-api.vue +2 -2
  85. package/demos/pc/app/carousel/carousel-arrow-always.vue +2 -2
  86. package/demos/pc/app/carousel/carousel-arrow-hover-composition-api.vue +2 -2
  87. package/demos/pc/app/carousel/carousel-arrow-hover.vue +2 -2
  88. package/demos/pc/app/carousel/carousel-arrow-never-composition-api.vue +2 -2
  89. package/demos/pc/app/carousel/carousel-arrow-never.vue +2 -2
  90. package/demos/pc/app/carousel/carousel-events-composition-api.vue +2 -2
  91. package/demos/pc/app/carousel/carousel-events.vue +2 -2
  92. package/demos/pc/app/carousel/close-loop-composition-api.vue +2 -2
  93. package/demos/pc/app/carousel/close-loop.vue +2 -2
  94. package/demos/pc/app/carousel/custom-height-composition-api.vue +2 -2
  95. package/demos/pc/app/carousel/custom-height.vue +2 -2
  96. package/demos/pc/app/carousel/indicator-trigger-composition-api.vue +2 -2
  97. package/demos/pc/app/carousel/indicator-trigger.vue +2 -2
  98. package/demos/pc/app/carousel/initial-index-composition-api.vue +2 -2
  99. package/demos/pc/app/carousel/initial-index.vue +2 -2
  100. package/demos/pc/app/carousel/manual-play-composition-api.vue +19 -8
  101. package/demos/pc/app/carousel/manual-play.vue +18 -8
  102. package/demos/pc/app/carousel/play-interval-composition-api.vue +2 -2
  103. package/demos/pc/app/carousel/play-interval.vue +2 -2
  104. package/demos/pc/app/carousel/show-title-composition-api.vue +2 -2
  105. package/demos/pc/app/carousel/show-title.vue +2 -2
  106. package/demos/pc/app/carousel/up-down-carousel-composition-api.vue +2 -2
  107. package/demos/pc/app/carousel/up-down-carousel.vue +2 -2
  108. package/demos/pc/app/chart/histogram/demo4-composition-api.vue +0 -2
  109. package/demos/pc/app/chart/histogram/demo4.vue +0 -2
  110. package/demos/pc/app/checkbox/checkbox-events-composition-api.vue +2 -3
  111. package/demos/pc/app/checkbox/checkbox-events.vue +2 -3
  112. package/demos/pc/app/checkbox/group-options-composition-api.vue +1 -1
  113. package/demos/pc/app/checkbox/group-options.vue +1 -1
  114. package/demos/pc/app/checkbox/size-composition-api.vue +0 -1
  115. package/demos/pc/app/checkbox/text-composition-api.vue +3 -2
  116. package/demos/pc/app/checkbox/text.vue +2 -1
  117. package/demos/pc/app/checkbox/webdoc/checkbox.js +3 -3
  118. package/demos/pc/app/collapse/title-composition-api.vue +3 -2
  119. package/demos/pc/app/collapse/title.vue +3 -2
  120. package/demos/pc/app/collapse/webdoc/collapse.js +11 -11
  121. package/demos/pc/app/config-provider/webdoc/config-provider.js +3 -3
  122. package/demos/pc/app/date-picker/align.spec.ts +11 -12
  123. package/demos/pc/app/date-picker/basic-usage.spec.ts +17 -23
  124. package/demos/pc/app/date-picker/clear.spec.ts +24 -5
  125. package/demos/pc/app/date-picker/date-range.spec.ts +63 -11
  126. package/demos/pc/app/date-picker/default-value.spec.ts +19 -4
  127. package/demos/pc/app/date-picker/events.spec.ts +24 -10
  128. package/demos/pc/app/date-picker/format.spec.ts +12 -11
  129. package/demos/pc/app/date-picker/shortcuts.spec.ts +6 -5
  130. package/demos/pc/app/dialog-box/basic-usage-composition-api.vue +1 -1
  131. package/demos/pc/app/dialog-box/basic-usage.vue +1 -1
  132. package/demos/pc/app/dialog-box/center-composition-api.vue +2 -2
  133. package/demos/pc/app/dialog-box/center.vue +2 -2
  134. package/demos/pc/app/dialog-box/close-on-click-modal-composition-api.vue +2 -2
  135. package/demos/pc/app/dialog-box/close-on-click-modal.vue +2 -2
  136. package/demos/pc/app/dialog-box/close-on-press-escape-composition-api.vue +2 -2
  137. package/demos/pc/app/dialog-box/close-on-press-escape.vue +2 -2
  138. package/demos/pc/app/dialog-box/custom-dialog-content-composition-api.vue +2 -2
  139. package/demos/pc/app/dialog-box/custom-dialog-content.vue +2 -2
  140. package/demos/pc/app/dialog-box/custom-dialog-footer-composition-api.vue +2 -2
  141. package/demos/pc/app/dialog-box/custom-dialog-footer.vue +4 -4
  142. package/demos/pc/app/dialog-box/custom-dialog-title-composition-api.vue +2 -2
  143. package/demos/pc/app/dialog-box/custom-dialog-title.vue +2 -2
  144. package/demos/pc/app/dialog-box/dialog-top-height-composition-api.vue +2 -2
  145. package/demos/pc/app/dialog-box/dialog-top-height.vue +2 -2
  146. package/demos/pc/app/dialog-box/dialog-width-composition-api.vue +3 -3
  147. package/demos/pc/app/dialog-box/dialog-width.vue +3 -3
  148. package/demos/pc/app/dialog-box/lock-scroll-composition-api.vue +2 -2
  149. package/demos/pc/app/dialog-box/lock-scroll.vue +2 -2
  150. package/demos/pc/app/dialog-box/webdoc/dialog-box.js +63 -63
  151. package/demos/pc/app/dialog-select/nest-grid-multi-composition-api.vue +9 -3
  152. package/demos/pc/app/dialog-select/nest-grid-multi.vue +8 -3
  153. package/demos/pc/app/dialog-select/nest-grid-single-composition-api.vue +3 -2
  154. package/demos/pc/app/dialog-select/nest-grid-single.vue +3 -2
  155. package/demos/pc/app/dialog-select/nest-tree-multi-composition-api.vue +3 -2
  156. package/demos/pc/app/dialog-select/nest-tree-multi.vue +3 -2
  157. package/demos/pc/app/dialog-select/nest-tree-single-composition-api.vue +3 -2
  158. package/demos/pc/app/dialog-select/nest-tree-single.vue +3 -2
  159. package/demos/pc/app/dialog-select/webdoc/dialog-select.js +90 -42
  160. package/demos/pc/app/drawer/confirm-event-composition-api.vue +1 -1
  161. package/demos/pc/app/drawer/confirm-event.vue +1 -1
  162. package/demos/pc/app/drawer/webdoc/drawer.cn.md +1 -1
  163. package/demos/pc/app/drawer/webdoc/drawer.en.md +7 -0
  164. package/demos/pc/app/drawer/webdoc/drawer.js +94 -47
  165. package/demos/pc/app/drawer/z-index-composition-api.vue +1 -1
  166. package/demos/pc/app/drawer/z-index.spec.ts +1 -1
  167. package/demos/pc/app/drawer/z-index.vue +1 -1
  168. package/demos/pc/app/drop-times/basic-usage.spec.ts +1 -1
  169. package/demos/pc/app/drop-times/size.spec.ts +5 -1
  170. package/demos/pc/app/drop-times/start-end-step.spec.ts +1 -1
  171. package/demos/pc/app/dropdown/webdoc/dropdown.js +2 -2
  172. package/demos/pc/app/fall-menu/webdoc/fall-menu.js +4 -10
  173. package/demos/pc/app/file-upload/abort-quest-composition-api.vue +1 -1
  174. package/demos/pc/app/file-upload/abort-quest.vue +1 -1
  175. package/demos/pc/app/file-upload/basic-usage.spec.ts +2 -2
  176. package/demos/pc/app/file-upload/{prevent-upload-file-composition-api.vue → before-upload-limit-composition-api.vue} +13 -5
  177. package/demos/pc/app/file-upload/{prevent-upload-file.spec.ts → before-upload-limit.spec.ts} +9 -4
  178. package/demos/pc/app/file-upload/{prevent-upload-file.vue → before-upload-limit.vue} +15 -5
  179. package/demos/pc/app/file-upload/custom-upload-tip-composition-api.vue +1 -1
  180. package/demos/pc/app/file-upload/custom-upload-tip.spec.ts +1 -1
  181. package/demos/pc/app/file-upload/custom-upload-tip.vue +1 -1
  182. package/demos/pc/app/file-upload/form-validation-composition-api.vue +10 -4
  183. package/demos/pc/app/file-upload/form-validation.vue +9 -3
  184. package/demos/pc/app/file-upload/multiple-file.spec.ts +3 -1
  185. package/demos/pc/app/file-upload/upload-events-composition-api.vue +8 -8
  186. package/demos/pc/app/file-upload/upload-events.vue +8 -8
  187. package/demos/pc/app/file-upload/upload-request-composition-api.vue +1 -1
  188. package/demos/pc/app/file-upload/upload-request.vue +1 -1
  189. package/demos/pc/app/file-upload/webdoc/file-upload.js +97 -96
  190. package/demos/pc/app/form/form-validation-composition-api.vue +2 -2
  191. package/demos/pc/app/form/form-validation.vue +1 -1
  192. package/demos/pc/app/form/label-position.spec.ts +3 -0
  193. package/demos/pc/app/form/popper-options.spec.ts +1 -0
  194. package/demos/pc/app/form/slot-label-composition-api.vue +1 -1
  195. package/demos/pc/app/form/validate-debounce-composition-api.vue +3 -3
  196. package/demos/pc/app/form/validate-debounce.vue +3 -3
  197. package/demos/pc/app/form/webdoc/form.js +10 -9
  198. package/demos/pc/app/grid/dynamically-columns/dynamically-columns-composition-api.vue +6 -4
  199. package/demos/pc/app/grid/dynamically-columns/dynamically-columns.vue +6 -4
  200. package/demos/pc/app/grid/dynamically-columns/reverse-row-composition-api.vue +3 -1
  201. package/demos/pc/app/grid/dynamically-columns/reverse-row.vue +3 -1
  202. package/demos/pc/app/grid/faq/grid-in-dialog-box-composition-api.vue +1 -1
  203. package/demos/pc/app/grid/faq/grid-in-dialog-box.spec.js +1 -1
  204. package/demos/pc/app/grid/faq/grid-in-dialog-box.vue +1 -1
  205. package/demos/pc/app/grid/filter/advanced-filter-composition-api.vue +0 -15
  206. package/demos/pc/app/grid/filter/advanced-filter.spec.js +1 -1
  207. package/demos/pc/app/grid/filter/advanced-filter.vue +0 -14
  208. package/demos/pc/app/grid/filter/custom-filter.spec.js +1 -1
  209. package/demos/pc/app/grid/filter/default-filter-composition-api.vue +1 -1
  210. package/demos/pc/app/grid/filter/default-filter.spec.ts +1 -1
  211. package/demos/pc/app/grid/filter/default-filter.vue +1 -1
  212. package/demos/pc/app/grid/filter/simple-default-value-filter-composition-api.vue +0 -14
  213. package/demos/pc/app/grid/filter/simple-default-value-filter.vue +0 -14
  214. package/demos/pc/app/grid/filter/simple-filter-composition-api.vue +0 -14
  215. package/demos/pc/app/grid/filter/simple-filter.vue +0 -14
  216. package/demos/pc/app/grid/footer/configuration-summary.spec.js +1 -1
  217. package/demos/pc/app/grid/highlight/set-current-row-composition-api.vue +4 -1
  218. package/demos/pc/app/grid/highlight/set-current-row.vue +4 -1
  219. package/demos/pc/app/grid/large-data/scroll-to-composition-api.vue +6 -3
  220. package/demos/pc/app/grid/large-data/scroll-to.vue +6 -3
  221. package/demos/pc/app/grid/pager/inner-pager-composition-api.vue +1 -1
  222. package/demos/pc/app/grid/pager/inner-pager.spec.js +1 -1
  223. package/demos/pc/app/grid/pager/inner-pager.vue +1 -1
  224. package/demos/pc/app/grid/sort/server-sort-composition-api.vue +3 -3
  225. package/demos/pc/app/grid/sort/server-sort.vue +2 -2
  226. package/demos/pc/app/grid/sort/sort-composition-api.vue +4 -1
  227. package/demos/pc/app/grid/sort/sort.spec.js +1 -1
  228. package/demos/pc/app/grid/sort/sort.vue +4 -1
  229. package/demos/pc/app/grid/toolbar/insert-delete-update-composition-api.vue +2 -1
  230. package/demos/pc/app/grid/toolbar/insert-delete-update.vue +2 -1
  231. package/demos/pc/app/grid/toolbar/toolbar-op-config-composition-api.vue +3 -2
  232. package/demos/pc/app/grid/toolbar/toolbar-op-config.vue +3 -2
  233. package/demos/pc/app/grid/validation/before-submit-validation-composition-api.vue +5 -5
  234. package/demos/pc/app/grid/validation/before-submit-validation.spec.js +2 -2
  235. package/demos/pc/app/grid/validation/before-submit-validation.vue +5 -5
  236. package/demos/pc/app/grid/webdoc/grid-appearance-settings.js +2 -2
  237. package/demos/pc/app/grid/webdoc/grid-context-menu.js +4 -4
  238. package/demos/pc/app/grid/webdoc/grid-custom-style.js +2 -2
  239. package/demos/pc/app/grid/webdoc/grid-custom.js +31 -31
  240. package/demos/pc/app/grid/webdoc/grid-drag.js +1 -1
  241. package/demos/pc/app/grid/webdoc/grid-dynamically-columns.js +4 -1
  242. package/demos/pc/app/grid/webdoc/grid-editor.js +2 -2
  243. package/demos/pc/app/grid/webdoc/grid-empty.js +4 -1
  244. package/demos/pc/app/grid/webdoc/grid-expand.js +3 -3
  245. package/demos/pc/app/grid/webdoc/grid-faq.js +4 -4
  246. package/demos/pc/app/grid/webdoc/grid-filter.js +4 -4
  247. package/demos/pc/app/grid/webdoc/grid-footer.js +1 -1
  248. package/demos/pc/app/grid/webdoc/grid-highlight.js +2 -2
  249. package/demos/pc/app/grid/webdoc/grid-import-export.js +5 -2
  250. package/demos/pc/app/grid/webdoc/grid-large-data.js +6 -5
  251. package/demos/pc/app/grid/webdoc/grid-mouse-keyboard.js +2 -2
  252. package/demos/pc/app/grid/webdoc/grid-pager.js +11 -2
  253. package/demos/pc/app/grid/webdoc/grid-renderer.js +11 -11
  254. package/demos/pc/app/grid/webdoc/grid-row-grouping.js +2 -2
  255. package/demos/pc/app/grid/webdoc/grid-size.js +6 -6
  256. package/demos/pc/app/grid/webdoc/grid-slot.js +16 -4
  257. package/demos/pc/app/grid/webdoc/grid-tip.js +3 -3
  258. package/demos/pc/app/grid/webdoc/grid-toolbar.js +17 -9
  259. package/demos/pc/app/grid/webdoc/grid-tree-table.js +9 -7
  260. package/demos/pc/app/grid/webdoc/grid-validation.js +6 -6
  261. package/demos/pc/app/grid/webdoc/grid.js +160 -85
  262. package/demos/pc/app/icon/iconGroups.js +1 -0
  263. package/demos/pc/app/icon/list-composition-api.vue +8 -0
  264. package/demos/pc/app/icon/list.vue +7 -0
  265. package/demos/pc/app/image/basic-usage.spec.ts +1 -1
  266. package/demos/pc/app/image/events.spec.ts +1 -1
  267. package/demos/pc/app/image/lazy.spec.ts +1 -1
  268. package/demos/pc/app/image/preview-in-dialog.spec.ts +1 -1
  269. package/demos/pc/app/image/preview.spec.ts +1 -1
  270. package/demos/pc/app/image/slot.spec.ts +1 -1
  271. package/demos/pc/app/image/webdoc/image.cn.md +3 -1
  272. package/demos/pc/app/image/webdoc/image.en.md +3 -1
  273. package/demos/pc/app/image/webdoc/image.js +34 -18
  274. package/demos/pc/app/input/method-addMemory-composition-api.vue +1 -0
  275. package/demos/pc/app/input/method-addMemory.spec.ts +11 -0
  276. package/demos/pc/app/input/method-addMemory.vue +1 -0
  277. package/demos/pc/app/input/webdoc/input.js +12 -2
  278. package/demos/pc/app/ip-address/webdoc/ip-address.cn.md +2 -2
  279. package/demos/pc/app/ip-address/webdoc/ip-address.js +2 -2
  280. package/demos/pc/app/link/webdoc/link.js +1 -1
  281. package/demos/pc/app/loading/webdoc/loading.js +1 -1
  282. package/demos/pc/app/milestone/show-number-composition-api.vue +1 -1
  283. package/demos/pc/app/milestone/show-number.vue +1 -1
  284. package/demos/pc/app/milestone/solid-style-composition-api.vue +1 -1
  285. package/demos/pc/app/milestone/solid-style.vue +1 -1
  286. package/demos/pc/app/milestone/webdoc/milestone.js +9 -9
  287. package/demos/pc/app/mind-map/basic-usage-composition-api.vue +14 -0
  288. package/demos/pc/app/mind-map/basic-usage.spec.ts +36 -0
  289. package/demos/pc/app/mind-map/basic-usage.vue +20 -0
  290. package/demos/pc/app/mind-map/event-composition-api.vue +125 -0
  291. package/demos/pc/app/mind-map/event.spec.ts +52 -0
  292. package/demos/pc/app/mind-map/event.vue +136 -0
  293. package/demos/pc/app/mind-map/export-data-composition-api.vue +108 -0
  294. package/demos/pc/app/mind-map/export-data.spec.ts +19 -0
  295. package/demos/pc/app/mind-map/export-data.vue +119 -0
  296. package/demos/pc/app/mind-map/webdoc/mind-map.cn.md +7 -0
  297. package/demos/pc/app/mind-map/webdoc/mind-map.en.md +7 -0
  298. package/demos/pc/app/mind-map/webdoc/mind-map.js +250 -0
  299. package/demos/pc/app/modal/webdoc/modal.js +47 -47
  300. package/demos/pc/app/nav-menu/custom-service-composition-api.vue +5 -5
  301. package/demos/pc/app/nav-menu/custom-service.vue +5 -5
  302. package/demos/pc/app/notify/webdoc/notify.js +9 -6
  303. package/demos/pc/app/numeric/webdoc/numeric.js +23 -23
  304. package/demos/pc/app/pager/before-page-change-composition-api.vue +1 -1
  305. package/demos/pc/app/pager/before-page-change.vue +1 -1
  306. package/demos/pc/app/pager/custom-layout-composition-api.vue +8 -6
  307. package/demos/pc/app/pager/custom-layout.vue +8 -6
  308. package/demos/pc/app/pager/custom-total-composition-api.vue +20 -18
  309. package/demos/pc/app/pager/custom-total.vue +20 -18
  310. package/demos/pc/app/pager/hide-on-single-page-composition-api.vue +1 -1
  311. package/demos/pc/app/pager/hide-on-single-page.spec.ts +1 -1
  312. package/demos/pc/app/pager/hide-on-single-page.vue +1 -1
  313. package/demos/pc/app/pager/pager-event-composition-api.vue +10 -5
  314. package/demos/pc/app/pager/pager-event.vue +10 -5
  315. package/demos/pc/app/pager/webdoc/pager.js +3 -3
  316. package/demos/pc/app/pop-upload/webdoc/pop-upload.js +3 -3
  317. package/demos/pc/app/popconfirm/webdoc/popconfirm.js +1 -1
  318. package/demos/pc/app/progress/custom-color-composition-api.vue +10 -5
  319. package/demos/pc/app/progress/custom-color.spec.ts +14 -1
  320. package/demos/pc/app/progress/custom-color.vue +10 -5
  321. package/demos/pc/app/progress/custom-status-composition-api.vue +30 -11
  322. package/demos/pc/app/progress/custom-status.vue +30 -11
  323. package/demos/pc/app/progress/webdoc/progress.js +7 -8
  324. package/demos/pc/app/qr-code/level-composition-api.vue +5 -8
  325. package/demos/pc/app/qr-code/style-composition-api.vue +1 -0
  326. package/demos/pc/app/qr-code/style.vue +1 -0
  327. package/demos/pc/app/qr-code/webdoc/qr-code.js +22 -10
  328. package/demos/pc/app/radio/group-options-composition-api.vue +13 -0
  329. package/demos/pc/app/radio/group-options.vue +20 -2
  330. package/demos/pc/app/radio/webdoc/radio.js +3 -3
  331. package/demos/pc/app/rate/webdoc/rate.js +8 -10
  332. package/demos/pc/app/search/events-composition-api.vue +4 -4
  333. package/demos/pc/app/search/events.vue +4 -4
  334. package/demos/pc/app/search/slot-prefix-composition-api.vue +1 -1
  335. package/demos/pc/app/search/slot-prefix.vue +1 -1
  336. package/demos/pc/app/search/webdoc/search.js +2 -2
  337. package/demos/pc/app/select/basic-usage-composition-api.vue +11 -6
  338. package/demos/pc/app/select/basic-usage.spec.ts +34 -9
  339. package/demos/pc/app/select/basic-usage.vue +11 -6
  340. package/demos/pc/app/select/clear-no-match-value-composition-api.vue +1 -1
  341. package/demos/pc/app/select/clear-no-match-value.vue +1 -1
  342. package/demos/pc/app/select/events-composition-api.vue +12 -6
  343. package/demos/pc/app/select/events.vue +10 -5
  344. package/demos/pc/app/select/is-drop-inherit-width-composition-api.vue +1 -2
  345. package/demos/pc/app/select/is-drop-inherit-width.vue +1 -2
  346. package/demos/pc/app/select/no-data-text-composition-api.vue +1 -1
  347. package/demos/pc/app/select/no-data-text.spec.ts +1 -1
  348. package/demos/pc/app/select/no-data-text.vue +1 -1
  349. package/demos/pc/app/select/optimization-composition-api.vue +5 -2
  350. package/demos/pc/app/select/optimization.vue +4 -1
  351. package/demos/pc/app/select/option-group-composition-api.vue +33 -11
  352. package/demos/pc/app/select/option-group.spec.ts +2 -2
  353. package/demos/pc/app/select/option-group.vue +34 -13
  354. package/demos/pc/app/select/slot-default-composition-api.vue +49 -13
  355. package/demos/pc/app/select/slot-default.spec.ts +5 -2
  356. package/demos/pc/app/select/slot-default.vue +50 -14
  357. package/demos/pc/app/select/slot-empty-composition-api.vue +16 -3
  358. package/demos/pc/app/select/slot-empty.spec.ts +1 -1
  359. package/demos/pc/app/select/slot-empty.vue +18 -4
  360. package/demos/pc/app/select/webdoc/select.js +89 -16
  361. package/demos/pc/app/slider/basic-usage-composition-api.vue +1 -1
  362. package/demos/pc/app/slider/basic-usage.vue +1 -1
  363. package/demos/pc/app/switch/before-change-composition-api.vue +4 -1
  364. package/demos/pc/app/switch/before-change.vue +4 -3
  365. package/demos/pc/app/switch/custom-true-false-value-composition-api.vue +1 -1
  366. package/demos/pc/app/switch/custom-true-false-value.spec.ts +2 -2
  367. package/demos/pc/app/switch/custom-true-false-value.vue +1 -1
  368. package/demos/pc/app/switch/event-change-composition-api.vue +1 -1
  369. package/demos/pc/app/switch/event-change.vue +1 -1
  370. package/demos/pc/app/switch/webdoc/switch.cn.md +1 -1
  371. package/demos/pc/app/switch/webdoc/switch.js +1 -1
  372. package/demos/pc/app/tabs/webdoc/tabs.js +3 -3
  373. package/demos/pc/app/tag/webdoc/tag.js +1 -1
  374. package/demos/pc/app/tag-group/basic-usage.vue +1 -1
  375. package/demos/pc/app/tag-group/webdoc/tag-group.js +2 -2
  376. package/demos/pc/app/time-select/basic-usage.spec.ts +6 -5
  377. package/demos/pc/app/time-select/clear-icon.spec.ts +7 -5
  378. package/demos/pc/app/time-select/default-value.spec.ts +3 -2
  379. package/demos/pc/app/time-select/event-blur.spec.ts +2 -2
  380. package/demos/pc/app/time-select/focus.spec.ts +5 -4
  381. package/demos/pc/app/time-select/picker-options.spec.ts +1 -1
  382. package/demos/pc/app/time-select/range-placeholder.spec.ts +16 -13
  383. package/demos/pc/app/time-select/size-medium.spec.ts +5 -1
  384. package/demos/pc/app/toggle-menu/webdoc/toggle-menu.js +2 -2
  385. package/demos/pc/app/transfer/basic-usage.spec.ts +1 -1
  386. package/demos/pc/app/transfer/before-transfer.spec.ts +1 -1
  387. package/demos/pc/app/transfer/custom-btns.spec.ts +1 -1
  388. package/demos/pc/app/transfer/custom-filter.spec.ts +1 -1
  389. package/demos/pc/app/transfer/custom-footer.spec.ts +2 -1
  390. package/demos/pc/app/transfer/custom-render.spec.ts +1 -1
  391. package/demos/pc/app/transfer/custom-titles.spec.ts +1 -1
  392. package/demos/pc/app/transfer/default-checked.spec.ts +1 -1
  393. package/demos/pc/app/transfer/drop-config.spec.ts +1 -1
  394. package/demos/pc/app/transfer/nested-table.spec.ts +1 -1
  395. package/demos/pc/app/transfer/nested-tree.spec.ts +1 -1
  396. package/demos/pc/app/transfer/target-order.spec.ts +1 -1
  397. package/demos/pc/app/transfer/transfer-events.spec.ts +1 -1
  398. package/demos/pc/app/transfer/webdoc/transfer.cn.md +1 -1
  399. package/demos/pc/app/transfer/webdoc/transfer.en.md +3 -3
  400. package/demos/pc/app/transfer/webdoc/transfer.js +76 -43
  401. package/demos/pc/app/tree/basic-usage.spec.ts +1 -1
  402. package/demos/pc/app/tree/check-op.spec.ts +1 -1
  403. package/demos/pc/app/tree/checkbox.spec.ts +1 -1
  404. package/demos/pc/app/tree/contextmenu.spec.ts +1 -1
  405. package/demos/pc/app/tree/drag.spec.ts +1 -1
  406. package/demos/pc/app/tree/edit.spec.ts +1 -1
  407. package/demos/pc/app/tree/expand-control.spec.ts +1 -1
  408. package/demos/pc/app/tree/filter-view.spec.ts +1 -1
  409. package/demos/pc/app/tree/icons.spec.ts +1 -1
  410. package/demos/pc/app/tree/lazy.spec.ts +1 -1
  411. package/demos/pc/app/tree/node-hl.spec.ts +1 -1
  412. package/demos/pc/app/tree/node-op.spec.ts +1 -1
  413. package/demos/pc/app/tree/other.spec.ts +1 -1
  414. package/demos/pc/app/tree/props.spec.ts +1 -1
  415. package/demos/pc/app/tree/radio.spec.ts +1 -1
  416. package/demos/pc/app/tree/slot.spec.ts +1 -1
  417. package/demos/pc/app/tree/webdoc/tree.cn.md +1 -1
  418. package/demos/pc/app/tree/webdoc/tree.en.md +1 -1
  419. package/demos/pc/app/tree/webdoc/tree.js +67 -19
  420. package/demos/pc/app/tree-menu/custom-icon.spec.ts +1 -0
  421. package/demos/pc/app/tree-menu/only-check-children.spec.ts +24 -2
  422. package/demos/pc/app/tree-menu/props.spec.ts +22 -2
  423. package/demos/pc/app/tree-menu/show-expand.spec.ts +36 -4
  424. package/demos/pc/app/tree-menu/show-filter.spec.ts +54 -3
  425. package/demos/pc/app/tree-menu/show-number.spec.ts +14 -1
  426. package/demos/pc/app/tree-menu/webdoc/tree-menu.js +4 -4
  427. package/demos/pc/app/user-head/image-user-head-composition-api.vue +1 -1
  428. package/demos/pc/app/user-head/image-user-head.vue +1 -1
  429. package/demos/pc/app/user-head/webdoc/user-head.js +17 -17
  430. package/demos/pc/app/watermark/webdoc/watermark.js +32 -16
  431. package/demos/pc/menus.js +6 -1
  432. package/demos/pc/webdoc/form-valid-en.md +9 -3
  433. package/demos/pc/webdoc/form-valid.md +3 -1
  434. package/demos/pc/webdoc/theme-en.md +10 -8
  435. package/package.json +8 -7
  436. package/playground/App.vue +9 -0
  437. package/demos/mobile/app/button/event-click.vue +0 -40
  438. package/demos/mobile/app/button/native-type.vue +0 -105
  439. package/demos/mobile/app/button/plain.vue +0 -33
  440. package/demos/mobile/app/button/round.vue +0 -34
  441. package/demos/mobile/app/button/text.vue +0 -38
  442. package/demos/pc/app/calendar-view/hide-mode-composition-api.vue +0 -7
  443. package/demos/pc/app/calendar-view/hide-mode.vue +0 -13
  444. package/demos/pc/app/calendar-view/mode-combination-composition-api.vue +0 -7
  445. package/demos/pc/app/calendar-view/mode-combination.vue +0 -14
  446. package/demos/pc/app/file-upload/upload-limit-composition-api.vue +0 -22
  447. package/demos/pc/app/file-upload/upload-limit.spec.ts +0 -20
  448. package/demos/pc/app/file-upload/upload-limit.vue +0 -32
  449. package/demos/pc/app/time-select/disabled-composition-api.vue +0 -18
  450. package/demos/pc/app/time-select/disabled.spec.ts +0 -8
  451. package/demos/pc/app/time-select/disabled.vue +0 -26
  452. package/demos/pc/resource/user-group-2.png +0 -0
  453. package/demos/pc/resource/user-group.png +0 -0
@@ -271,7 +271,7 @@ export default {
271
271
  },
272
272
  {
273
273
  'name': 'suffix-icon',
274
- 'type': 'VueComponent',
274
+ 'type': 'Component',
275
275
  'defaultValue': '',
276
276
  'desc': {
277
277
  'zh-CN': '下拉触发源图标',
@@ -473,7 +473,7 @@ export default {
473
473
  },
474
474
  {
475
475
  'name': 'icon',
476
- 'type': 'VueComponent',
476
+ 'type': 'Component',
477
477
  'defaultValue': '',
478
478
  'desc': {
479
479
  'zh-CN': '内嵌图标',
@@ -5,15 +5,9 @@ export default {
5
5
  {
6
6
  'demoId': 'data-basic',
7
7
  'name': { 'zh-CN': '基本用法', 'en-US': 'Basic Usage' },
8
- 'desc': { 'zh-CN': '详细用法参考如下示例。', 'en-US': 'For details, see the following example.' },
9
- 'codeFiles': ['data-resource.vue']
10
- },
11
- {
12
- 'demoId': 'data-resource',
13
- 'name': { 'zh-CN': '数据源', 'en-US': 'Data Source' },
14
8
  'desc': {
15
- 'zh-CN': '<p>通过 <code>data</code> 设置瀑布菜单的数据。</p>\n',
16
- 'en-US': '<p>Set the data of the waterfall menu through <code>data</code>. </p>\n'
9
+ 'zh-CN': '可通过<code>data</code>属性设置瀑布菜单数据。',
10
+ 'en-US': 'Menu data can be set through the<code>data</code>attribute.'
17
11
  },
18
12
  'codeFiles': ['data-resource.vue']
19
13
  },
@@ -22,7 +16,7 @@ export default {
22
16
  'name': { 'zh-CN': '自定义左/右侧图标', 'en-US': 'Customizing Left/Right Icons' },
23
17
  'desc': {
24
18
  'zh-CN':
25
- '<p>通过 <code>left</code> 插槽自定义左侧切换图标为 IconLeft ,通过 <code>right</code> 插槽右侧切换图标 IconRight 。</p>\n',
19
+ '<p>可通过 <code>left</code> 属性设置插槽自定义左侧切换图标为 IconLeft <code>right</code> 属性设置插槽右侧切换图标 IconRight 。</p>\n',
26
20
  'en-US':
27
21
  '<p>Use the <code>left</code> slot to set the left switch icon to IconLeft, and use the <code>right</code> slot to set the right switch icon to IconRight. </p>\n'
28
22
  },
@@ -33,7 +27,7 @@ export default {
33
27
  'name': { 'zh-CN': '自定义内容', 'en-US': 'Custom Content' },
34
28
  'desc': {
35
29
  'zh-CN':
36
- '<p>通过 <code>level1</code> 插槽自定义一级菜单内容,通过 <code>level2</code> 插槽自定义二级菜单内容,通过 <code>level3</code> 插槽自定义三级菜单内容。</p>\n',
30
+ '<p>可通过 <code>level1</code>属性设置插槽自定义一级菜单内容,<code>level2</code> 属性设置插槽自定义二级菜单内容,<code>level3</code>属性设置插槽自定义三级菜单内容。</p>\n',
37
31
  'en-US':
38
32
  '<p>The level-1 menu content is customized through the <code>level1</code> slot, the level-2 menu content is customized through the <code>level2</code> slot, and the level-3 menu content is customized through the <code>level3</code> slot. </p>\n'
39
33
  },
@@ -16,7 +16,7 @@ const action = ref('http://localhost:3000/api/upload')
16
16
  const uploadRef = ref()
17
17
 
18
18
  function cancelUpload() {
19
- Modal.message('手动取消上传')
19
+ Modal.message({ message: '手动取消上传', status: 'info' })
20
20
  uploadRef.value.abort()
21
21
  }
22
22
  </script>
@@ -23,7 +23,7 @@ export default {
23
23
  },
24
24
  methods: {
25
25
  cancelUpload() {
26
- Modal.message('手动取消上传')
26
+ Modal.message({ message: '手动取消上传', status: 'info' })
27
27
  this.$refs.upload.abort()
28
28
  }
29
29
  }
@@ -5,13 +5,13 @@ test('基本用法', async ({ page }) => {
5
5
  await page.goto('file-upload#basic-usage')
6
6
 
7
7
  const upload = page.getByRole('button', { name: '点击上传' })
8
- const lists = page.locator('.tiny-upload-list__item')
8
+ const lists = page.locator('.tiny-upload-list__li')
9
9
  const [fileChooser] = await Promise.all([page.waitForEvent('filechooser'), upload.click()])
10
10
 
11
11
  const path = require('node:path')
12
12
  const currentPath = path.resolve(__dirname, '测试.jpg')
13
13
 
14
14
  await fileChooser.setFiles(currentPath)
15
- await expect(lists).toHaveCount(1)
15
+ await page.getByText('测试.jpg').isVisible()
16
16
  await expect(lists).toHaveText('测试.jpg按 delete 键可删除')
17
17
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-file-upload ref="uploadRef" :action="action" :file-list="fileList" :before-upload="beforeUpload">
2
+ <tiny-file-upload ref="uploadRef" :action="action" :file-list="fileList" :before-upload="beforeAvatarUpload">
3
3
  <template #trigger>
4
4
  <tiny-button type="primary">选取文件</tiny-button>
5
5
  </template>
@@ -18,11 +18,19 @@ const fileList = ref([
18
18
  }
19
19
  ])
20
20
 
21
- function beforeUpload(file) {
21
+ function beforeAvatarUpload(file) {
22
22
  return new Promise((resolve, reject) => {
23
- Modal.confirm(`确定要上传 ${file.name}?`).then((res) => {
24
- res === 'confirm' ? resolve() : reject()
25
- })
23
+ const isJPG = file.type === 'image/jpeg'
24
+ const isLt2M = file.size / 1024 / 1024 < 2
25
+ const allow = isJPG && isLt2M
26
+
27
+ if (!allow) {
28
+ Modal.confirm(`自定义提示:《${file.name}》文件不合规范,文件类型或大小超出限制,确定要上传吗?`).then((res) => {
29
+ res === 'confirm' ? resolve() : reject()
30
+ })
31
+ } else {
32
+ resolve()
33
+ }
26
34
  })
27
35
  }
28
36
  </script>
@@ -1,8 +1,8 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('阻止上传文件', async ({ page }) => {
3
+ test('定义上传前限制', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
- await page.goto('file-upload#prevent-upload-file')
5
+ await page.goto('file-upload#before-upload-limit')
6
6
 
7
7
  const upload = page.getByRole('button', { name: '选取文件' })
8
8
  const modal = page.locator('.tiny-modal').nth(1)
@@ -12,12 +12,17 @@ test('阻止上传文件', async ({ page }) => {
12
12
 
13
13
  const path = require('node:path')
14
14
  const currentPath = path.resolve(__dirname, '测试.jpg')
15
+ const exceedFilePath = path.resolve(__dirname, 'before-upload-limit.vue')
15
16
 
16
17
  await expect(lists).toHaveCount(1)
17
- await expect(lists).toHaveText(/test1/)
18
+ await page.getByText('test1').isVisible()
19
+ await page.getByText('测试.jpg').isVisible()
18
20
  await fileChooser.setFiles(currentPath)
21
+ await page.getByText('测试.jpg').isVisible()
22
+
23
+ await fileChooser.setFiles(exceedFilePath)
19
24
  await modal.waitFor({ state: 'attached', timeout: 100 })
20
25
  await modalCancel.click()
21
26
  await expect(lists).toHaveCount(1)
22
- await expect(lists).toHaveText(/test1/)
27
+ await page.getByText('test1').isVisible()
23
28
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-file-upload ref="upload" :action="action" :file-list="fileList" :before-upload="beforeUpload">
2
+ <tiny-file-upload ref="upload" :action="action" :file-list="fileList" :before-upload="beforeAvatarUpload">
3
3
  <template #trigger>
4
4
  <tiny-button type="primary">选取文件</tiny-button>
5
5
  </template>
@@ -26,11 +26,21 @@ export default {
26
26
  }
27
27
  },
28
28
  methods: {
29
- beforeUpload(file) {
29
+ beforeAvatarUpload(file) {
30
30
  return new Promise((resolve, reject) => {
31
- Modal.confirm(`确定要上传 ${file.name}?`).then((res) => {
32
- res === 'confirm' ? resolve() : reject()
33
- })
31
+ const isJPG = file.type === 'image/jpeg'
32
+ const isLt2M = file.size / 1024 / 1024 < 2
33
+ const allow = isJPG && isLt2M
34
+
35
+ if (!allow) {
36
+ Modal.confirm(`自定义提示:《${file.name}》文件不合规范,文件类型或大小超出限制,确定要上传吗?`).then(
37
+ (res) => {
38
+ res === 'confirm' ? resolve() : reject()
39
+ }
40
+ )
41
+ } else {
42
+ resolve()
43
+ }
34
44
  })
35
45
  }
36
46
  }
@@ -4,7 +4,7 @@
4
4
  <tiny-button type="primary">选取文件</tiny-button>
5
5
  </template>
6
6
  <template #tip>
7
- <div class="tiny-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
7
+ <div class="tiny-upload__tip">只能上传 jpg/png 文件,且不超过500 kb</div>
8
8
  </template>
9
9
  </tiny-file-upload>
10
10
  </template>
@@ -6,5 +6,5 @@ test('自定义上传提示', async ({ page }) => {
6
6
 
7
7
  const tip = page.locator('.tiny-upload__tip')
8
8
 
9
- await expect(tip).toHaveText('只能上传jpg/png文件,且不超过500kb')
9
+ await expect(tip).toHaveText('只能上传 jpg/png 文件,且不超过500 kb')
10
10
  })
@@ -4,7 +4,7 @@
4
4
  <tiny-button type="primary">选取文件</tiny-button>
5
5
  </template>
6
6
  <template #tip>
7
- <div class="tiny-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
7
+ <div class="tiny-upload__tip">只能上传 jpg/png 文件,且不超过500 kb</div>
8
8
  </template>
9
9
  </tiny-file-upload>
10
10
  </template>
@@ -20,7 +20,7 @@
20
20
  <tiny-button type="primary">选取文件</tiny-button>
21
21
  </template>
22
22
  <template #tip>
23
- <div class="tiny-upload__tip">只能上传jpg/png文件</div>
23
+ <div class="tiny-upload__tip">只能上传 jpg/png 文件</div>
24
24
  </template>
25
25
  </tiny-file-upload>
26
26
  </tiny-form-item>
@@ -65,6 +65,9 @@ const rules = reactive({
65
65
  const uploadSuccess = () => {
66
66
  // 模拟上传成功后,返回的数据信息,以此通过validatePass的校验
67
67
  createData.files = `https://res.hc-cdn.com/tiny-vue-web-doc/3.10.5.20230903162611/static/images/book.jpg`
68
+
69
+ // 上传成功后再进行表单验证
70
+ formValidate()
68
71
  }
69
72
 
70
73
  const beforeUpload = (file) => {
@@ -72,21 +75,24 @@ const beforeUpload = (file) => {
72
75
  uploadSuccess()
73
76
  }
74
77
 
75
- const handleSubmit = () => {
78
+ const formValidate = () => {
76
79
  ruleFormRef.value.validate((valid) => {
77
80
  if (valid) {
78
81
  Modal.alert('校验通过')
79
82
  } else {
80
- Modal.message({ message: '校验不通过!!', status: 'warning' })
83
+ Modal.message({ message: '校验不通过', status: 'warning' })
81
84
  return false
82
85
  }
83
86
  })
84
87
  }
85
88
 
89
+ const handleSubmit = () => {
90
+ formValidate()
91
+ }
92
+
86
93
  const handleRemove = (file) => {
87
94
  const index = fileList.findIndex((item) => item.name === file.name)
88
95
  fileList.splice(index, 1)
89
- console.log('fileList', fileList)
90
96
  createData.files = ''
91
97
  }
92
98
  </script>
@@ -21,7 +21,7 @@
21
21
  <tiny-button type="primary">选取文件</tiny-button>
22
22
  </template>
23
23
  <template #tip>
24
- <div class="tiny-upload__tip">只能上传jpg/png文件</div>
24
+ <div class="tiny-upload__tip">只能上传 jpg/png 文件</div>
25
25
  </template>
26
26
  </tiny-file-upload>
27
27
  </tiny-form-item>
@@ -67,21 +67,27 @@ export default {
67
67
  uploadSuccess() {
68
68
  // 模拟上传成功后,返回的数据信息,以此通过validatePass的校验
69
69
  this.createData.files = `https://res.hc-cdn.com/tiny-vue-web-doc/3.10.5.20230903162611/static/images/book.jpg`
70
+
71
+ // 上传成功后再进行表单验证
72
+ this.formValidate()
70
73
  },
71
74
  beforeUpload(file) {
72
75
  this.fileList.push({ name: file.name, url: file.url })
73
76
  this.uploadSuccess()
74
77
  },
75
- handleSubmit() {
78
+ formValidate() {
76
79
  this.$refs.ruleFormRef.validate((valid) => {
77
80
  if (valid) {
78
81
  Modal.alert('校验通过')
79
82
  } else {
80
- Modal.message({ message: '校验不通过!!', status: 'warning' })
83
+ Modal.message({ message: '校验不通过', status: 'warning' })
81
84
  return false
82
85
  }
83
86
  })
84
87
  },
88
+ handleSubmit() {
89
+ this.formValidate()
90
+ },
85
91
  handleRemove(file) {
86
92
  const index = this.fileList.findIndex((item) => item.name === file.name)
87
93
  this.fileList.splice(index, 1)
@@ -16,6 +16,8 @@ test('文件多选', async ({ page }) => {
16
16
 
17
17
  await expect(fileChooser.isMultiple()).toBe(true)
18
18
  await fileChooser.setFiles([path1, path2, path3])
19
- await expect(lists).toHaveCount(3)
19
+ await lists.getByText('测试.jpg').isVisible()
20
+ await lists.getByText('测试.svg').isVisible()
21
+ await lists.getByText('测试.png').isVisible()
20
22
  await expect(input).toHaveAttribute('multiple', '')
21
23
  })
@@ -36,34 +36,34 @@ const fileList = ref([
36
36
  ])
37
37
 
38
38
  function handleRemove() {
39
- Modal.message('触发删除文件回调事件')
39
+ Modal.message({ message: '触发删除文件回调事件', status: 'info' })
40
40
  }
41
41
 
42
42
  function handlePreview(file) {
43
- Modal.message(file.url)
43
+ Modal.message({ message: file.url, status: 'info' })
44
44
  }
45
45
 
46
46
  function progressEvent() {
47
- Modal.message('文件上传时的回调 返回进程')
47
+ Modal.message({ message: '文件上传时的回调 返回进程', status: 'loading' })
48
48
  }
49
49
 
50
50
  function errorEvent() {
51
- Modal.message('文件上传失败回调')
51
+ Modal.message({ message: '文件上传失败回调', status: 'error' })
52
52
  }
53
53
 
54
54
  function handleExceed() {
55
- Modal.message('触发文件超出个数限制回调事件')
55
+ Modal.message({ message: '触发文件超出个数限制回调事件', status: 'warning' })
56
56
  }
57
57
 
58
58
  function handleAvatarSuccess() {
59
- Modal.message('触发上传文件成功回调事件')
59
+ Modal.message({ message: '触发上传文件成功回调事件', status: 'success' })
60
60
  }
61
61
 
62
62
  function handleChange() {
63
- Modal.message('触发上传文件改变回调事件')
63
+ Modal.message({ message: '触发上传文件改变回调事件', status: 'info' })
64
64
  }
65
65
 
66
66
  function handleHashProgress() {
67
- Modal.message('文件上传生成hash值时的回调 返回进程')
67
+ Modal.message({ message: '文件上传生成hash值时的回调 返回进程', status: 'info' })
68
68
  }
69
69
  </script>
@@ -44,28 +44,28 @@ export default {
44
44
  },
45
45
  methods: {
46
46
  handleRemove() {
47
- Modal.message('触发删除文件回调事件')
47
+ Modal.message({ message: '触发删除文件回调事件', status: 'info' })
48
48
  },
49
49
  handlePreview(file) {
50
- Modal.message(file.url)
50
+ Modal.message({ message: file.url, status: 'info' })
51
51
  },
52
52
  progressEvent() {
53
- Modal.message('文件上传时的回调 返回进程')
53
+ Modal.message({ message: '文件上传时的回调 返回进程', status: 'loading' })
54
54
  },
55
55
  errorEvent() {
56
- Modal.message('文件上传失败回调')
56
+ Modal.message({ message: '文件上传失败回调', status: 'error' })
57
57
  },
58
58
  handleExceed() {
59
- Modal.message('触发文件超出个数限制回调事件')
59
+ Modal.message({ message: '触发文件超出个数限制回调事件', status: 'warning' })
60
60
  },
61
61
  handleAvatarSuccess() {
62
- Modal.message('触发上传文件成功回调事件')
62
+ Modal.message({ message: '触发上传文件成功回调事件', status: 'success' })
63
63
  },
64
64
  handleChange() {
65
- Modal.message('触发上传文件改变回调事件')
65
+ Modal.message({ message: '触发上传文件改变回调事件', status: 'info' })
66
66
  },
67
67
  handleHashProgress() {
68
- Modal.message('文件上传生成hash值时的回调 返回进程')
68
+ Modal.message({ message: '文件上传生成hash值时的回调 返回进程', status: 'info' })
69
69
  }
70
70
  }
71
71
  }
@@ -30,7 +30,7 @@ const headers = ref({
30
30
  })
31
31
 
32
32
  function beforeUpload() {
33
- Modal.message('查看请求头示例请打开浏览器开发者工具 network 的 upload 请求')
33
+ Modal.message({ message: '查看请求头示例请打开浏览器开发者工具 network 的 upload 请求', status: 'info' })
34
34
 
35
35
  return true
36
36
  }
@@ -38,7 +38,7 @@ export default {
38
38
  },
39
39
  methods: {
40
40
  beforeUpload() {
41
- Modal.message('查看请求头示例请打开浏览器开发者工具 network 的 upload 请求')
41
+ Modal.message({ message: '查看请求头示例请打开浏览器开发者工具 network 的 upload 请求', status: 'info' })
42
42
 
43
43
  return true
44
44
  }