@opentiny/vue-docs 2.2.18 → 2.2.19
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.
- package/demos/apis/card.js +56 -23
- package/demos/apis/dialog-box.js +12 -5
- package/demos/apis/fall-menu.js +2 -2
- package/demos/apis/file-upload.js +2 -1
- package/demos/apis/float-button.js +211 -0
- package/demos/apis/grid.js +40 -40
- package/demos/apis/ip-address.js +3 -3
- package/demos/apis/multi-select.js +141 -22
- package/demos/apis/numeric.js +13 -0
- package/demos/apis/popeditor.js +20 -14
- package/demos/apis/search.js +11 -0
- package/demos/apis/slider.js +13 -2
- package/demos/apis/steps.js +6 -6
- package/demos/apis/tabs.js +39 -0
- package/demos/apis/time-line.js +34 -1
- package/demos/apis/time-select.js +1 -1
- package/demos/apis/tooltip.js +1 -1
- package/demos/apis/tree-menu.js +5 -5
- package/demos/mobile/app/alert/icon.vue +1 -1
- package/demos/mobile/app/alert/size.vue +1 -1
- package/demos/mobile/app/alert/slot-default.vue +8 -2
- package/demos/mobile/app/exception/buttonText.vue +4 -2
- package/demos/mobile/app/exception/exceptionClass.vue +4 -2
- package/demos/mobile/app/exception/message.vue +4 -7
- package/demos/mobile/app/exception/type.vue +4 -2
- package/demos/mobile/app/loading/background.vue +24 -0
- package/demos/mobile/app/loading/base.vue +16 -6
- package/demos/mobile/app/loading/custom-class.vue +29 -0
- package/demos/mobile/app/loading/global-registry.vue +61 -0
- package/demos/mobile/app/loading/size.vue +59 -0
- package/demos/mobile/app/loading/spinner.vue +26 -0
- package/demos/mobile/app/loading/tip-text.vue +23 -0
- package/demos/mobile/app/loading/webdoc/loading.js +155 -9
- package/demos/mobile/app/multi-select/basic-usage.vue +221 -73
- package/demos/mobile/app/multi-select/disabled.vue +174 -206
- package/demos/mobile/app/multi-select/event-click-item.vue +60 -75
- package/demos/mobile/app/multi-select/filter.vue +65 -93
- package/demos/mobile/app/multi-select/mask.vue +60 -0
- package/demos/mobile/app/multi-select/slots.vue +66 -0
- package/demos/mobile/app/multi-select/type-wheel.vue +39 -49
- package/demos/mobile/app/multi-select/webdoc/multi-select.js +49 -10
- package/demos/mobile/app/popover/base.vue +2 -3
- package/demos/mobile/app/search/base.vue +2 -2
- package/demos/mobile/app/user-head/basic-usage.vue +2 -5
- package/demos/mobile-first/app/card/basic-usage.vue +4 -2
- package/demos/mobile-first/app/card/card-type.vue +6 -12
- package/demos/mobile-first/app/card/slot.vue +2 -5
- package/demos/mobile-first/app/carousel/close-loop.vue +12 -4
- package/demos/mobile-first/app/column-list-item/basic-usage.vue +3 -7
- package/demos/mobile-first/app/column-list-item/custom-width.vue +4 -7
- package/demos/mobile-first/app/column-list-item/icon-click-event.vue +2 -5
- package/demos/mobile-first/app/column-list-item/icon-disabled.vue +2 -5
- package/demos/mobile-first/app/column-list-item/size.vue +3 -6
- package/demos/mobile-first/app/select/filter-method.vue +47 -18
- package/demos/mobile-first/app/time-line/limited-nodes.vue +29 -0
- package/demos/mobile-first/app/time-line/node-max.vue +26 -0
- package/demos/mobile-first/app/time-line/webdoc/time-line.js +26 -1
- package/demos/pc/app/alert/custom-close-composition-api.vue +7 -2
- package/demos/pc/app/alert/custom-close.spec.ts +1 -1
- package/demos/pc/app/alert/custom-close.vue +7 -2
- package/demos/pc/app/area/custom-service.spec.ts +1 -2
- package/demos/pc/app/button/ghost.spec.ts +6 -6
- package/demos/pc/app/card/basic-usage-composition-api.vue +24 -0
- package/demos/pc/app/card/basic-usage.vue +32 -0
- package/demos/pc/app/card/card-disabled-composition-api.vue +45 -0
- package/demos/pc/app/card/card-disabled.vue +53 -0
- package/demos/pc/app/card/card-events-composition-api.vue +66 -0
- package/demos/pc/app/card/card-events.vue +75 -0
- package/demos/pc/app/card/card-group-composition-api.vue +69 -0
- package/demos/pc/app/card/card-group.vue +79 -0
- package/demos/pc/app/card/card-size-composition-api.vue +59 -0
- package/demos/pc/app/card/card-size.vue +67 -0
- package/demos/pc/app/card/card-status-composition-api.vue +49 -0
- package/demos/pc/app/card/card-status.vue +58 -0
- package/demos/pc/app/card/card-type-composition-api.vue +47 -0
- package/demos/pc/app/card/card-type.vue +55 -0
- package/demos/pc/app/card/check-type-checkbox-composition-api.vue +31 -0
- package/demos/pc/app/card/check-type-checkbox.vue +40 -0
- package/demos/pc/app/card/check-type-radio-composition-api.vue +31 -0
- package/demos/pc/app/card/check-type-radio.vue +39 -0
- package/demos/pc/app/card/custom-class-composition-api.vue +51 -0
- package/demos/pc/app/card/custom-class.vue +59 -0
- package/demos/pc/app/card/operate-bar-composition-api.vue +53 -0
- package/demos/pc/app/card/operate-bar.vue +60 -0
- package/demos/pc/app/card/slot-composition-api.vue +67 -0
- package/demos/pc/app/card/slot.vue +76 -0
- package/demos/pc/app/card/webdoc/card.cn.md +7 -0
- package/demos/pc/app/card/webdoc/card.en.md +7 -0
- package/demos/pc/app/card/webdoc/card.js +148 -0
- package/demos/pc/app/carousel/basic-usage.spec.ts +3 -3
- package/demos/pc/app/carousel/card-mode.spec.ts +4 -11
- package/demos/pc/app/carousel/carousel-arrow-hover.spec.ts +5 -7
- package/demos/pc/app/carousel/carousel-events.spec.ts +7 -16
- package/demos/pc/app/carousel/manual-play.spec.ts +0 -2
- package/demos/pc/app/carousel/play-interval.spec.ts +1 -4
- package/demos/pc/app/cascader/auto-load-checkStrictly.spec.ts +1 -1
- package/demos/pc/app/cascader/auto-load.spec.ts +5 -2
- package/demos/pc/app/color-picker/base.spec.ts +2 -2
- package/demos/pc/app/color-picker/event.spec.ts +1 -1
- package/demos/pc/app/color-picker/history.spec.ts +2 -6
- package/demos/pc/app/color-picker/predefine.spec.ts +2 -5
- package/demos/pc/app/company/basic-usage.spec.ts +3 -6
- package/demos/pc/app/company/custom-service.spec.ts +4 -8
- package/demos/pc/app/country/custom-service.spec.js +4 -4
- package/demos/pc/app/country/fields.spec.js +2 -2
- package/demos/pc/app/crop/aspect-ratio.spec.ts +1 -2
- package/demos/pc/app/crop/auto-crop-area.spec.ts +1 -4
- package/demos/pc/app/crop/basic-usage.spec.ts +0 -2
- package/demos/pc/app/crop/crop-meth.spec.ts +0 -2
- package/demos/pc/app/crop/event-ready.spec.ts +0 -1
- package/demos/pc/app/crop/get-container-data.spec.ts +0 -1
- package/demos/pc/app/crop/get-crop-box-data.spec.ts +0 -2
- package/demos/pc/app/crop/get-data.spec.ts +0 -1
- package/demos/pc/app/crop/min-crop-box-width-height.spec.ts +0 -2
- package/demos/pc/app/crop/no-background.spec.ts +0 -1
- package/demos/pc/app/crop/no-modal.spec.ts +0 -2
- package/demos/pc/app/crop/replace-image.spec.ts +4 -5
- package/demos/pc/app/crop/view-mode.spec.ts +1 -16
- package/demos/pc/app/date-picker/align.spec.ts +17 -14
- package/demos/pc/app/date-picker/basic-usage.spec.ts +17 -22
- package/demos/pc/app/date-picker/clear.spec.ts +13 -7
- package/demos/pc/app/date-picker/date-range.spec.ts +39 -10
- package/demos/pc/app/date-picker/events.spec.ts +11 -3
- package/demos/pc/app/date-picker/format.spec.ts +2 -2
- package/demos/pc/app/date-picker/shortcuts.spec.ts +1 -2
- package/demos/pc/app/dept/custom-service.spec.ts +16 -4
- package/demos/pc/app/detail-page/basic-usage.spec.ts +4 -4
- package/demos/pc/app/dialog-box/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/basic-usage.vue +1 -1
- package/demos/pc/app/dialog-box/center-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/center.vue +1 -1
- package/demos/pc/app/dialog-box/close-on-click-modal-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/close-on-click-modal.vue +1 -1
- package/demos/pc/app/dialog-box/close-on-press-escape-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/close-on-press-escape.vue +1 -1
- package/demos/pc/app/dialog-box/custom-dialog-content-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/custom-dialog-content.vue +1 -1
- package/demos/pc/app/dialog-box/custom-dialog-footer-composition-api.vue +2 -2
- package/demos/pc/app/dialog-box/custom-dialog-footer.spec.ts +1 -1
- package/demos/pc/app/dialog-box/custom-dialog-title-composition-api.vue +2 -2
- package/demos/pc/app/dialog-box/custom-dialog-title.spec.ts +1 -1
- package/demos/pc/app/dialog-box/custom-dialog-title.vue +2 -2
- package/demos/pc/app/dialog-box/dialog-top-height-composition-api.vue +2 -2
- package/demos/pc/app/dialog-box/dialog-top-height.vue +2 -2
- package/demos/pc/app/dialog-box/dialog-width-composition-api.vue +2 -2
- package/demos/pc/app/dialog-box/dialog-width.vue +2 -2
- package/demos/pc/app/dialog-box/draggable-composition-api.vue +15 -3
- package/demos/pc/app/dialog-box/draggable.spec.ts +2 -2
- package/demos/pc/app/dialog-box/draggable.vue +15 -3
- package/demos/pc/app/dialog-box/form-in-dialog.spec.ts +0 -1
- package/demos/pc/app/dialog-box/open-close-events-composition-api.vue +1 -1
- package/demos/pc/app/dialog-box/open-close-events.vue +1 -1
- package/demos/pc/app/dialog-box/webdoc/dialog-box.js +2 -2
- package/demos/pc/app/drawer/tips-props-composition-api.vue +23 -0
- package/demos/pc/app/drawer/tips-props.spec.ts +15 -0
- package/demos/pc/app/drawer/tips-props.vue +33 -0
- package/demos/pc/app/drawer/webdoc/drawer.js +10 -12
- package/demos/pc/app/drop-roles/custom-service.spec.ts +1 -1
- package/demos/pc/app/file-upload/custom-prefix.spec.ts +1 -1
- package/demos/pc/app/file-upload/file-picture-card.spec.ts +1 -1
- package/demos/pc/app/file-upload/manual-upload.spec.ts +1 -1
- package/demos/pc/app/file-upload/picture-card.spec.ts +3 -2
- package/demos/pc/app/file-upload/picture-list.spec.ts +3 -3
- package/demos/pc/app/file-upload/upload-file-list.spec.ts +1 -1
- package/demos/pc/app/file-upload/upload-request.spec.ts +11 -6
- package/demos/pc/app/float-button/backTop-composition-api.vue +40 -0
- package/demos/pc/app/float-button/backTop.vue +51 -0
- package/demos/pc/app/float-button/basic-usage-composition-api.vue +39 -0
- package/demos/pc/app/float-button/basic-usage.vue +48 -0
- package/demos/pc/app/float-button/icon-composition-api.vue +21 -0
- package/demos/pc/app/float-button/icon.vue +31 -0
- package/demos/pc/app/float-button/jump-composition-api.vue +19 -0
- package/demos/pc/app/float-button/jump.vue +26 -0
- package/demos/pc/app/float-button/reset-time-composition-api.vue +22 -0
- package/demos/pc/app/float-button/reset-time.vue +26 -0
- package/demos/pc/app/float-button/trigger-composition-api.vue +31 -0
- package/demos/pc/app/float-button/trigger.vue +40 -0
- package/demos/pc/app/float-button/webdoc/float-button.cn.md +7 -0
- package/demos/pc/app/float-button/webdoc/float-button.en.md +7 -0
- package/demos/pc/app/float-button/webdoc/float-button.js +68 -0
- package/demos/pc/app/floatbar/base.spec.ts +1 -1
- package/demos/pc/app/floatbar/custom-floatbar-item.spec.ts +1 -1
- package/demos/pc/app/floatbar/custom-style.spec.ts +1 -1
- package/demos/pc/app/floatbar/operation-floatbar-item.spec.ts +1 -1
- package/demos/pc/app/form/form-row-col.spec.js +2 -0
- package/demos/pc/app/form/label-position.spec.ts +3 -3
- package/demos/pc/app/grid/custom/ordercolumn-local.spec.js +2 -2
- package/demos/pc/app/grid/data-source/static-data-composition-api.vue +1 -1
- package/demos/pc/app/grid/data-source/static-data.spec.js +1 -1
- package/demos/pc/app/grid/data-source/static-data.vue +1 -1
- package/demos/pc/app/grid/edit/grid-equals-composition-api.vue +50 -0
- package/demos/pc/app/grid/edit/grid-equals.spec.js +10 -0
- package/demos/pc/app/grid/edit/grid-equals.vue +60 -0
- package/demos/pc/app/grid/edit/has-row-change.spec.js +2 -2
- package/demos/pc/app/grid/edit/trigger-mode-hm-editing-composition-api.vue +11 -11
- package/demos/pc/app/grid/editor/mutil-render.spec.js +1 -1
- package/demos/pc/app/grid/event/get-row-method.spec.js +4 -4
- package/demos/pc/app/grid/filter/server-filter.spec.js +1 -1
- package/demos/pc/app/grid/fixed/left-fixed.vue +1 -1
- package/demos/pc/app/grid/large-data/column-anchor.vue +132 -0
- package/demos/pc/app/grid/large-data/scroll-to.spec.js +1 -1
- package/demos/pc/app/grid/loading/grid-loading-tip.spec.js +1 -1
- package/demos/pc/app/grid/pager/show-save-msg-composition-api.vue +1 -1
- package/demos/pc/app/grid/pager/show-save-msg.vue +1 -1
- package/demos/pc/app/grid/renderer/inner-renderer-date-composition-api.vue +40 -0
- package/demos/pc/app/grid/renderer/inner-renderer-date.spec.js +9 -0
- package/demos/pc/app/grid/renderer/inner-renderer-date.vue +50 -0
- package/demos/pc/app/grid/size/grid-size-composition-api.vue +33 -26
- package/demos/pc/app/grid/size/grid-size.spec.js +7 -3
- package/demos/pc/app/grid/size/grid-size.vue +34 -26
- package/demos/pc/app/grid/sort/sort.vue +0 -1
- package/demos/pc/app/grid/toolbar/grid-full-screen-teleport-composition-api.vue +65 -0
- package/demos/pc/app/grid/toolbar/grid-full-screen-teleport.spec.js +10 -0
- package/demos/pc/app/grid/toolbar/grid-full-screen-teleport.vue +73 -0
- package/demos/pc/app/grid/tree-table/tree-grid-insert-delete-update.spec.js +1 -1
- package/demos/pc/app/grid/validation/before-submit-validation.spec.js +1 -1
- package/demos/pc/app/grid/webdoc/grid-edit.js +11 -0
- package/demos/pc/app/grid/webdoc/grid-large-data.js +1 -49
- package/demos/pc/app/grid/webdoc/grid-renderer.js +11 -0
- package/demos/pc/app/grid/webdoc/grid-toolbar.js +10 -1
- package/demos/pc/app/guide/basic-usage.spec.ts +3 -2
- package/demos/pc/app/guide/offset.spec.ts +3 -1
- package/demos/pc/app/hrapprover/basic-usage.spec.ts +2 -6
- package/demos/pc/app/hrapprover/custom-service.spec.ts +5 -2
- package/demos/pc/app/hrapprover/disabled.spec.ts +1 -1
- package/demos/pc/app/ip-address/delimiter.spec.ts +1 -1
- package/demos/pc/app/loading/webdoc/loading.js +1 -1
- package/demos/pc/app/locales/custom-service.spec.ts +0 -3
- package/demos/pc/app/logout/basic-usage.spec.ts +5 -5
- package/demos/pc/app/milestone/show-number.spec.ts +1 -1
- package/demos/pc/app/milestone/solid-style.spec.ts +1 -1
- package/demos/pc/app/modal/basic-usage.spec.ts +1 -1
- package/demos/pc/app/modal/duration.spec.ts +1 -2
- package/demos/pc/app/modal/{min-width-composition-api.vue → min-width-height-composition-api.vue} +4 -2
- package/demos/pc/app/modal/{min-width.spec.ts → min-width-height.spec.ts} +3 -3
- package/demos/pc/app/modal/{min-width.vue → min-width-height.vue} +4 -2
- package/demos/pc/app/modal/prop-slots-composition-api.vue +2 -2
- package/demos/pc/app/modal/show-header-footer-composition-api.vue +11 -0
- package/demos/pc/app/modal/{showHeader.spec.ts → show-header-footer.spec.ts} +3 -3
- package/demos/pc/app/modal/{showHeader.vue → show-header-footer.vue} +2 -2
- package/demos/pc/app/modal/webdoc/modal.js +12 -36
- package/demos/pc/app/notify/closeIcon.spec.ts +1 -1
- package/demos/pc/app/numeric/change-event-composition-api.vue +9 -2
- package/demos/pc/app/numeric/change-event.vue +10 -3
- package/demos/pc/app/numeric/dynamic-disabled-composition-api.vue +10 -2
- package/demos/pc/app/numeric/dynamic-disabled.spec.ts +1 -1
- package/demos/pc/app/numeric/dynamic-disabled.vue +11 -3
- package/demos/pc/app/numeric/precision-composition-api.vue +1 -1
- package/demos/pc/app/numeric/precision.spec.ts +10 -11
- package/demos/pc/app/pager/before-page-change.spec.ts +1 -1
- package/demos/pc/app/pager/disabled-and-size.spec.ts +1 -1
- package/demos/pc/app/pop-upload/basic-usage.spec.ts +1 -1
- package/demos/pc/app/pop-upload/custom-request-headers.spec.ts +1 -1
- package/demos/pc/app/popeditor/condition-form-composition-api.vue +0 -1
- package/demos/pc/app/popeditor/condition-form.vue +0 -1
- package/demos/pc/app/popeditor/events-composition-api.vue +8 -2
- package/demos/pc/app/popeditor/events.vue +8 -2
- package/demos/pc/app/popeditor/webdoc/popeditor.js +9 -9
- package/demos/pc/app/popover/webdoc/popover.js +69 -28
- package/demos/pc/app/radio/group-options-composition-api.vue +1 -1
- package/demos/pc/app/rate/custom-3-threshold-colors.spec.js +0 -13
- package/demos/pc/app/rate/custom-3-threshold-icon.spec.js +5 -5
- package/demos/pc/app/rate/disabled-not-selected-class.spec.js +1 -1
- package/demos/pc/app/rate/not-selected-class.spec.js +1 -1
- package/demos/pc/app/rate/threshold-value.spec.js +0 -13
- package/demos/pc/app/search/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/search/basic-usage.vue +1 -1
- package/demos/pc/app/search/webdoc/search.js +3 -2
- package/demos/pc/app/select/copy-multi.spec.ts +6 -5
- package/demos/pc/app/select/copy-single.spec.ts +7 -4
- package/demos/pc/app/select/events.spec.ts +2 -2
- package/demos/pc/app/select/optimization.spec.ts +3 -7
- package/demos/pc/app/select/option-group-composition-api.vue +2 -2
- package/demos/pc/app/select/option-group.vue +2 -2
- package/demos/pc/app/select/searchable.spec.ts +1 -1
- package/demos/pc/app/select/size.spec.ts +1 -1
- package/demos/pc/app/select/tag-type-composition-api.vue +1 -1
- package/demos/pc/app/select/tag-type.spec.ts +1 -1
- package/demos/pc/app/select/tag-type.vue +1 -1
- package/demos/pc/app/slide-bar/basic-usage.spec.ts +0 -5
- package/demos/pc/app/slide-bar/wheel-blocks.spec.ts +2 -6
- package/demos/pc/app/slider/marks-composition-api.vue +20 -0
- package/demos/pc/app/slider/marks.spec.ts +12 -0
- package/demos/pc/app/slider/marks.vue +27 -0
- package/demos/pc/app/slider/show-input-composition-api.vue +2 -0
- package/demos/pc/app/slider/show-input.vue +3 -1
- package/demos/pc/app/slider/show-iput.spec.ts +14 -4
- package/demos/pc/app/slider/webdoc/slider.js +12 -0
- package/demos/pc/app/steps/advanced-steps-composition-api.vue +2 -2
- package/demos/pc/app/steps/advanced-steps.spec.ts +3 -3
- package/demos/pc/app/steps/advanced-steps.vue +2 -2
- package/demos/pc/app/steps/click-composition-api.vue +3 -10
- package/demos/pc/app/steps/click.vue +4 -12
- package/demos/pc/app/steps/line-horizontal-composition-api.vue +1 -1
- package/demos/pc/app/steps/line-horizontal.vue +1 -1
- package/demos/pc/app/steps/line-vertical-composition-api.vue +1 -1
- package/demos/pc/app/steps/line-vertical.vue +1 -1
- package/demos/pc/app/tabs/overflow-title-composition-api.vue +19 -0
- package/demos/pc/app/tabs/overflow-title.vue +28 -0
- package/demos/pc/app/tabs/tabs-events-close-composition-api.vue +5 -1
- package/demos/pc/app/tabs/tabs-events-close.vue +5 -1
- package/demos/pc/app/tabs/webdoc/tabs.js +18 -4
- package/demos/pc/app/tag/delete.spec.ts +3 -3
- package/demos/pc/app/time-line/shape-composition-api.vue +5 -2
- package/demos/pc/app/time-line/shape.spec.ts +2 -0
- package/demos/pc/app/time-line/shape.vue +5 -1
- package/demos/pc/app/time-line/show-divider-composition-api.vue +1 -1
- package/demos/pc/app/time-line/show-divider.vue +1 -1
- package/demos/pc/app/time-picker/disabled.spec.ts +9 -1
- package/demos/pc/app/time-picker/event.spec.ts +1 -2
- package/demos/pc/app/time-picker/format.spec.ts +10 -3
- package/demos/pc/app/time-picker/step.spec.ts +4 -1
- package/demos/pc/app/time-select/basic-usage.spec.ts +1 -1
- package/demos/pc/app/time-select/clear-icon.spec.ts +1 -1
- package/demos/pc/app/time-select/default-value.spec.ts +1 -1
- package/demos/pc/app/time-select/event-blur-composition-api.vue +3 -3
- package/demos/pc/app/time-select/event-blur.spec.ts +1 -1
- package/demos/pc/app/time-select/event-blur.vue +3 -3
- package/demos/pc/app/time-select/focus-composition-api.vue +1 -1
- package/demos/pc/app/time-select/focus.spec.ts +2 -3
- package/demos/pc/app/time-select/focus.vue +1 -1
- package/demos/pc/app/time-select/range-placeholder.spec.ts +2 -2
- package/demos/pc/app/tooltip/theme-composition-api.vue +28 -26
- package/demos/pc/app/tooltip/theme.vue +28 -26
- package/demos/pc/app/tooltip/webdoc/tooltip.js +55 -29
- package/demos/pc/app/transfer/webdoc/transfer.js +130 -44
- package/demos/pc/app/tree/webdoc/tree.js +319 -68
- package/demos/pc/app/tree-menu/basic-usage.spec.ts +0 -1
- package/demos/pc/app/tree-menu/props.spec.ts +2 -1
- package/demos/pc/app/user/custom-service.spec.ts +1 -1
- package/demos/pc/app/user-account/custom-service.spec.ts +2 -8
- package/demos/pc/app/user-contact/contact-espace-composition-api.vue +1 -0
- package/demos/pc/app/user-link/custom-service.spec.ts +2 -2
- package/demos/pc/app/watermark/webdoc/watermark.js +1 -1
- package/demos/pc/menus.js +2 -1
- package/demos/pc/resource/newVars.json +2 -2
- package/demos/pc/webdoc/changelog.md +138 -0
- package/demos/pc/webdoc/import-components-en.md +40 -2
- package/demos/pc/webdoc/import-components.md +40 -2
- package/package.json +11 -11
- package/playground/App.vue +2 -2
- package/src/App.vue +3 -2
- package/src/const.ts +27 -0
- package/src/router.js +5 -3
- package/src/tools/useTheme.js +60 -50
- package/src/views/components/components.vue +12 -33
- package/src/views/components/demo.vue +4 -4
- package/src/views/layout/layout.vue +6 -6
- package/src/views/overview.vue +6 -3
- package/demos/pc/app/credit-card-form/background-image.spec.ts +0 -10
- package/demos/pc/app/credit-card-form/basic-usage.spec.ts +0 -13
- package/demos/pc/app/credit-card-form/credit-card-form-events.spec.ts +0 -18
- package/demos/pc/app/drawer/default-slot-composition-api.vue +0 -25
- package/demos/pc/app/drawer/default-slot.spec.ts +0 -11
- package/demos/pc/app/drawer/default-slot.vue +0 -35
- package/demos/pc/app/font/Font-usage-specifications.spec.js +0 -41
- package/demos/pc/app/font/chinese-font-set.spec.js +0 -10
- package/demos/pc/app/font/english-fonts.spec.js +0 -10
- package/demos/pc/app/hrapprover/category-type.spec.ts +0 -13
- package/demos/pc/app/modal/min-height-composition-api.vue +0 -16
- package/demos/pc/app/modal/min-height.spec.ts +0 -21
- package/demos/pc/app/modal/min-height.vue +0 -23
- package/demos/pc/app/modal/showFooter-composition-api.vue +0 -11
- package/demos/pc/app/modal/showFooter.spec.ts +0 -10
- package/demos/pc/app/modal/showFooter.vue +0 -18
- package/demos/pc/app/modal/showHeader-composition-api.vue +0 -11
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" center title="消息" width="30%">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" center title="消息" width="30%">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" :close-on-click-modal="false" title="消息" width="30%">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" :close-on-click-modal="false" title="消息" width="30%">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box :visible="boxVisibility" :close-on-press-escape="false" title="消息" width="30%" @close="close">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box :visible="boxVisibility" :close-on-press-escape="false" title="消息" width="30%" @close="close">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" title="消息" width="30%">
|
|
5
|
-
<tiny-alert description="内容是Alert组件"></tiny-alert>
|
|
5
|
+
<tiny-alert description="内容是 Alert 组件"></tiny-alert>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" title="消息" width="30%">
|
|
5
|
-
<tiny-alert description="内容是Alert组件"></tiny-alert>
|
|
5
|
+
<tiny-alert description="内容是 Alert 组件"></tiny-alert>
|
|
6
6
|
<template #footer>
|
|
7
7
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
8
8
|
</template>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" title="消息" width="30%">
|
|
5
|
-
<span>dialog-box内容</span>
|
|
5
|
+
<span>dialog-box 内容</span>
|
|
6
6
|
<template #footer>
|
|
7
|
-
<div style="width: 100%; height: 100%; background: #dddddd">自定义footer区域</div>
|
|
7
|
+
<div style="width: 100%; height: 100%; background: #dddddd">自定义 footer 区域</div>
|
|
8
8
|
</template>
|
|
9
9
|
</tiny-dialog-box>
|
|
10
10
|
</div>
|
|
@@ -4,6 +4,6 @@ test('dialogBox 自定义底部', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('dialog-box#custom-dialog-footer')
|
|
6
6
|
await page.getByRole('button', { name: /Dialog/ }).click()
|
|
7
|
-
await expect(page.locator('.tiny-dialog-box__footer > div')).toHaveText(
|
|
7
|
+
await expect(page.locator('.tiny-dialog-box__footer > div')).toHaveText(/自定义/)
|
|
8
8
|
await page.getByLabel('Close').click()
|
|
9
9
|
})
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" width="30%">
|
|
5
5
|
<template #title>
|
|
6
|
-
<div style="width: 80%; height: 100%; background: #dddddd">自定义title区域</div>
|
|
6
|
+
<div style="width: 80%; height: 100%; background: #dddddd">自定义 title 区域</div>
|
|
7
7
|
</template>
|
|
8
|
-
<span>dialog-box内容</span>
|
|
8
|
+
<span>dialog-box 内容</span>
|
|
9
9
|
<template #footer>
|
|
10
10
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
11
11
|
</template>
|
|
@@ -4,6 +4,6 @@ test('dialogBox 自定义标题', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('dialog-box#custom-dialog-title')
|
|
6
6
|
await page.getByRole('button', { name: /Dialog/ }).click()
|
|
7
|
-
await expect(page.locator('.tiny-dialog-box__header > div')).toHaveText(
|
|
7
|
+
await expect(page.locator('.tiny-dialog-box__header > div')).toHaveText(/自定义/)
|
|
8
8
|
await page.getByRole('button', { name: /确 定/ }).click()
|
|
9
9
|
})
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility = true" title="弹出 Dialog">弹出 Dialog</tiny-button>
|
|
4
4
|
<tiny-dialog-box v-model:visible="boxVisibility" width="30%">
|
|
5
5
|
<template #title>
|
|
6
|
-
<div style="width: 80%; height: 100%; background: #dddddd">自定义title区域</div>
|
|
6
|
+
<div style="width: 80%; height: 100%; background: #dddddd">自定义 title 区域</div>
|
|
7
7
|
</template>
|
|
8
|
-
<span>dialog-box内容</span>
|
|
8
|
+
<span>dialog-box 内容</span>
|
|
9
9
|
<template #footer>
|
|
10
10
|
<tiny-button type="primary" @click="boxVisibility = false">确 定</tiny-button>
|
|
11
11
|
</template>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility1 = true" type="info">显示在顶部</tiny-button>
|
|
4
4
|
<tiny-button @click="boxVisibility2 = true">距离顶部 300px</tiny-button>
|
|
5
5
|
<tiny-dialog-box top="0" v-model:visible="boxVisibility1" title="消息" width="30%">
|
|
6
|
-
<span>dialog-box内容</span>
|
|
6
|
+
<span>dialog-box 内容</span>
|
|
7
7
|
<template #footer>
|
|
8
8
|
<tiny-button type="primary" @click="boxVisibility1 = false">确 定</tiny-button>
|
|
9
9
|
</template>
|
|
10
10
|
</tiny-dialog-box>
|
|
11
11
|
<tiny-dialog-box top="300px" v-model:visible="boxVisibility2" title="消息" width="30%">
|
|
12
|
-
<span>dialog-box内容</span>
|
|
12
|
+
<span>dialog-box 内容</span>
|
|
13
13
|
<template #footer>
|
|
14
14
|
<tiny-button type="primary" @click="boxVisibility2 = false">确 定</tiny-button>
|
|
15
15
|
</template>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility1 = true" type="info">显示在顶部</tiny-button>
|
|
4
4
|
<tiny-button @click="boxVisibility2 = true">距离顶部 300px</tiny-button>
|
|
5
5
|
<tiny-dialog-box top="0" v-model:visible="boxVisibility1" title="消息" width="30%">
|
|
6
|
-
<span>dialog-box内容</span>
|
|
6
|
+
<span>dialog-box 内容</span>
|
|
7
7
|
<template #footer>
|
|
8
8
|
<tiny-button type="primary" @click="boxVisibility1 = false">确 定</tiny-button>
|
|
9
9
|
</template>
|
|
10
10
|
</tiny-dialog-box>
|
|
11
11
|
<tiny-dialog-box top="300px" v-model:visible="boxVisibility2" title="消息" width="30%">
|
|
12
|
-
<span>dialog-box内容</span>
|
|
12
|
+
<span>dialog-box 内容</span>
|
|
13
13
|
<template #footer>
|
|
14
14
|
<tiny-button type="primary" @click="boxVisibility2 = false">确 定</tiny-button>
|
|
15
15
|
</template>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility1 = true" type="info">宽度 30%</tiny-button>
|
|
4
4
|
<tiny-button @click="boxVisibility2 = true">宽度 60%</tiny-button>
|
|
5
5
|
<tiny-dialog-box v-model:visible="boxVisibility1" title="消息" width="30%">
|
|
6
|
-
<span>dialog-box内容</span>
|
|
6
|
+
<span>dialog-box 内容</span>
|
|
7
7
|
<template #footer>
|
|
8
8
|
<tiny-button type="primary" @click="boxVisibility1 = false">确 定</tiny-button>
|
|
9
9
|
</template>
|
|
10
10
|
</tiny-dialog-box>
|
|
11
11
|
<tiny-dialog-box v-model:visible="boxVisibility2" title="消息" width="60%">
|
|
12
|
-
<span>dialog-box内容</span>
|
|
12
|
+
<span>dialog-box 内容</span>
|
|
13
13
|
<template #footer>
|
|
14
14
|
<tiny-button type="primary" @click="boxVisibility2 = false">确 定</tiny-button>
|
|
15
15
|
</template>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<tiny-button @click="boxVisibility1 = true" type="info">宽度 30%</tiny-button>
|
|
4
4
|
<tiny-button @click="boxVisibility2 = true">宽度 60%</tiny-button>
|
|
5
5
|
<tiny-dialog-box v-model:visible="boxVisibility1" title="消息" width="30%">
|
|
6
|
-
<span>dialog-box内容</span>
|
|
6
|
+
<span>dialog-box 内容</span>
|
|
7
7
|
<template #footer>
|
|
8
8
|
<tiny-button type="primary" @click="boxVisibility1 = false">确 定</tiny-button>
|
|
9
9
|
</template>
|
|
10
10
|
</tiny-dialog-box>
|
|
11
11
|
<tiny-dialog-box v-model:visible="boxVisibility2" title="消息" width="60%">
|
|
12
|
-
<span>dialog-box内容</span>
|
|
12
|
+
<span>dialog-box 内容</span>
|
|
13
13
|
<template #footer>
|
|
14
14
|
<tiny-button type="primary" @click="boxVisibility2 = false">确 定</tiny-button>
|
|
15
15
|
</template>
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<tiny-button @click="
|
|
4
|
-
<tiny-button @click="
|
|
3
|
+
<tiny-button @click="dragDialog"> 可拖拽弹窗 </tiny-button>
|
|
4
|
+
<tiny-button @click="dragDialogOutSide"> 可拖拽出窗口弹窗 </tiny-button>
|
|
5
5
|
<tiny-dialog-box
|
|
6
|
+
v-if="boxVisibility"
|
|
6
7
|
draggable
|
|
7
8
|
v-model:visible="boxVisibility"
|
|
8
9
|
title="鼠标移入标题区域单击拖拽"
|
|
10
|
+
:drag-outside-window="isDragOutSideFlag"
|
|
9
11
|
width="30%"
|
|
10
12
|
@drag-start="dragStart"
|
|
11
13
|
@drag-end="dragEnd"
|
|
@@ -18,7 +20,7 @@
|
|
|
18
20
|
<tiny-input v-model="input" clearable></tiny-input>
|
|
19
21
|
</div>
|
|
20
22
|
</template>
|
|
21
|
-
<span>dialog-box内容</span>
|
|
23
|
+
<span>dialog-box 内容</span>
|
|
22
24
|
<template #footer>
|
|
23
25
|
<tiny-button type="primary" @click="boxVisibility = false"> 确 定 </tiny-button>
|
|
24
26
|
</template>
|
|
@@ -31,6 +33,7 @@ import { ref } from 'vue'
|
|
|
31
33
|
import { Button as TinyButton, DialogBox as TinyDialogBox, Notify, Input as TinyInput, Modal } from '@opentiny/vue'
|
|
32
34
|
|
|
33
35
|
const boxVisibility = ref(false)
|
|
36
|
+
const isDragOutSideFlag = ref(false)
|
|
34
37
|
const isNotifyMoving = ref(false)
|
|
35
38
|
const input = ref('鼠标移入标题区域单击拖拽')
|
|
36
39
|
|
|
@@ -60,4 +63,13 @@ function dragMove() {
|
|
|
60
63
|
function beforeClose() {
|
|
61
64
|
Modal.message({ message: 'before-close', status: 'info' })
|
|
62
65
|
}
|
|
66
|
+
function dragDialog() {
|
|
67
|
+
boxVisibility.value = true
|
|
68
|
+
isDragOutSideFlag.value = false
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function dragDialogOutSide() {
|
|
72
|
+
boxVisibility.value = true
|
|
73
|
+
isDragOutSideFlag.value = true
|
|
74
|
+
}
|
|
63
75
|
</script>
|
|
@@ -7,13 +7,13 @@ test('dialogBox 可拖拽的弹窗', async ({ page }) => {
|
|
|
7
7
|
const button = page.getByRole('button', { name: '可拖拽弹窗' })
|
|
8
8
|
const notify = page.locator('.tiny-notify')
|
|
9
9
|
const dialogBox = page.locator('.tiny-dialog-box')
|
|
10
|
-
const
|
|
10
|
+
const header = dialogBox.locator('.tiny-dialog-box__header')
|
|
11
11
|
|
|
12
12
|
await button.click()
|
|
13
13
|
await expect(dialogBox).toBeVisible()
|
|
14
14
|
|
|
15
15
|
// 获取拖拽元素的位置
|
|
16
|
-
const { x, y } = await
|
|
16
|
+
const { x, y } = await header.boundingBox()
|
|
17
17
|
|
|
18
18
|
// 开始拖拽
|
|
19
19
|
await page.mouse.move(x + 2, y + 2)
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<tiny-button @click="
|
|
3
|
+
<tiny-button @click="dragDialog"> 可拖拽弹窗 </tiny-button>
|
|
4
|
+
<tiny-button @click="dragDialogOutSide"> 可拖拽出窗口弹窗 </tiny-button>
|
|
4
5
|
<tiny-dialog-box
|
|
6
|
+
v-if="boxVisibility"
|
|
5
7
|
draggable
|
|
6
8
|
v-model:visible="boxVisibility"
|
|
7
9
|
title="鼠标移入标题区域单击拖拽"
|
|
8
10
|
width="30%"
|
|
11
|
+
:drag-outside-window="isDragOutSideFlag"
|
|
9
12
|
@drag-start="dragStart"
|
|
10
13
|
@drag-end="dragEnd"
|
|
11
14
|
@drag-move="dragMove"
|
|
@@ -17,7 +20,7 @@
|
|
|
17
20
|
<tiny-input v-model="input" clearable></tiny-input>
|
|
18
21
|
</div>
|
|
19
22
|
</template>
|
|
20
|
-
<span>dialog-box内容</span>
|
|
23
|
+
<span>dialog-box 内容</span>
|
|
21
24
|
<template #footer>
|
|
22
25
|
<tiny-button type="primary" @click="boxVisibility = false"> 确 定 </tiny-button>
|
|
23
26
|
</template>
|
|
@@ -38,7 +41,8 @@ export default {
|
|
|
38
41
|
return {
|
|
39
42
|
input: '鼠标移入标题区域单击拖拽',
|
|
40
43
|
boxVisibility: false,
|
|
41
|
-
isNotifyMoving: false
|
|
44
|
+
isNotifyMoving: false,
|
|
45
|
+
isDragOutSideFlag: false
|
|
42
46
|
}
|
|
43
47
|
},
|
|
44
48
|
methods: {
|
|
@@ -65,6 +69,14 @@ export default {
|
|
|
65
69
|
},
|
|
66
70
|
beforeClose() {
|
|
67
71
|
Modal.message({ message: 'before-close', status: 'info' })
|
|
72
|
+
},
|
|
73
|
+
dragDialog() {
|
|
74
|
+
this.boxVisibility = true
|
|
75
|
+
this.isDragOutSideFlag = false
|
|
76
|
+
},
|
|
77
|
+
dragDialogOutSide() {
|
|
78
|
+
this.boxVisibility = true
|
|
79
|
+
this.isDragOutSideFlag = true
|
|
68
80
|
}
|
|
69
81
|
}
|
|
70
82
|
}
|
|
@@ -16,7 +16,6 @@ test('弹窗表单', async ({ page }) => {
|
|
|
16
16
|
|
|
17
17
|
// 验证下拉选择校验提示不会异常
|
|
18
18
|
await page.locator('#form-in-dialog').locator('.tiny-select__tags-group').click()
|
|
19
|
-
await page.locator('#form-in-dialog').locator('.tiny-svg.tiny-dialog-box__close').first().click()
|
|
20
19
|
await page.waitForTimeout(200)
|
|
21
20
|
await expect(page.locator('.tiny-form__valid.tiny-tooltip')).not.toBeVisible()
|
|
22
21
|
})
|
|
@@ -207,9 +207,9 @@ export default {
|
|
|
207
207
|
},
|
|
208
208
|
desc: {
|
|
209
209
|
'zh-CN':
|
|
210
|
-
'<p>可通过<code>draggable</code>属性设置<code>true</code>,鼠标点击标题区域拖拽;通过<code
|
|
210
|
+
'<p>可通过<code>draggable</code>属性设置<code>true</code>,鼠标点击标题区域拖拽;通过<code>drag-outside-window</code>属性设置<code>true</code>,将弹窗拖出窗口。具体事件:<code>@drag-start</code><code>@drag-move</code><code>@drag-end</code>。</p>\n',
|
|
211
211
|
'en-US':
|
|
212
|
-
'<p>By setting the<code>draggable</code>attribute to<code>true</code>, click and drag in the title area with the mouse; setting the code <code>
|
|
212
|
+
'<p>By setting the<code>draggable</code>attribute to<code>true</code>, click and drag in the title area with the mouse; setting the code <code>drag-outside-window</code>attribute to<code>true</code>, drag the dialog box outside the window.Specific events:<code>@drag-start</code><code>@drag-move</code><code>@drag-end</code>.</p>\n'
|
|
213
213
|
},
|
|
214
214
|
codeFiles: ['draggable.vue']
|
|
215
215
|
},
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="demo-drawer">
|
|
3
|
+
<tiny-button @click="fn" type="primary"> 展开抽屉 </tiny-button>
|
|
4
|
+
<tiny-drawer title="标题" :tipsProps="tipsProps" :visible="visible" @update:visible="visible = $event">
|
|
5
|
+
<div>内容区域</div>
|
|
6
|
+
</tiny-drawer>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script setup>
|
|
11
|
+
import { reactive, ref } from 'vue'
|
|
12
|
+
import { Drawer as TinyDrawer, Button as TinyButton } from '@opentiny/vue'
|
|
13
|
+
|
|
14
|
+
const visible = ref(false)
|
|
15
|
+
const tipsProps = reactive({
|
|
16
|
+
content: '这是一段帮助提示。。。',
|
|
17
|
+
placement: 'right'
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
function fn() {
|
|
21
|
+
visible.value = true
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test'
|
|
2
|
+
|
|
3
|
+
test('帮助提示', async ({ page }) => {
|
|
4
|
+
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
|
+
await page.goto('drawer#tips-props')
|
|
6
|
+
|
|
7
|
+
const drawer = page.locator('.tiny-drawer__main')
|
|
8
|
+
const helpIcon = drawer.locator('.tiny-drawer__help-icon')
|
|
9
|
+
const tooltip = page.getByRole('tooltip', { name: '这是一段帮助提示。。。' })
|
|
10
|
+
|
|
11
|
+
await page.getByRole('button', { name: '展开抽屉' }).click()
|
|
12
|
+
await expect(helpIcon).toBeVisible()
|
|
13
|
+
await helpIcon.hover()
|
|
14
|
+
await expect(tooltip).toBeVisible()
|
|
15
|
+
})
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="demo-drawer">
|
|
3
|
+
<tiny-button @click="fn" type="primary"> 展开抽屉 </tiny-button>
|
|
4
|
+
<tiny-drawer title="标题" :tipsProps="tipsProps" :visible="visible" @update:visible="visible = $event">
|
|
5
|
+
<div>内容区域</div>
|
|
6
|
+
</tiny-drawer>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
import { Drawer, Button } from '@opentiny/vue'
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
components: {
|
|
15
|
+
TinyDrawer: Drawer,
|
|
16
|
+
TinyButton: Button
|
|
17
|
+
},
|
|
18
|
+
data() {
|
|
19
|
+
return {
|
|
20
|
+
visible: false,
|
|
21
|
+
tipsProps: {
|
|
22
|
+
content: '这是一段帮助提示。。。',
|
|
23
|
+
placement: 'right'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
methods: {
|
|
28
|
+
fn() {
|
|
29
|
+
this.visible = true
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
@@ -27,6 +27,16 @@ export default {
|
|
|
27
27
|
},
|
|
28
28
|
codeFiles: ['placement.vue']
|
|
29
29
|
},
|
|
30
|
+
{
|
|
31
|
+
demoId: 'tips-props',
|
|
32
|
+
name: { 'zh-CN': '帮助提示', 'en-US': 'Help tips' },
|
|
33
|
+
desc: {
|
|
34
|
+
'zh-CN':
|
|
35
|
+
'<p>通过 <code>tips-props</code> 属性可自定义标题帮助提示信息,具体属性配置参考 <a href="tooltip#tooltip">ToolTip 组件</a> 的 props 说明。</p>',
|
|
36
|
+
'en-US': ''
|
|
37
|
+
},
|
|
38
|
+
codeFiles: ['tips-props.vue']
|
|
39
|
+
},
|
|
30
40
|
{
|
|
31
41
|
demoId: 'width',
|
|
32
42
|
name: {
|
|
@@ -139,18 +149,6 @@ export default {
|
|
|
139
149
|
},
|
|
140
150
|
codeFiles: ['z-index.vue']
|
|
141
151
|
},
|
|
142
|
-
{
|
|
143
|
-
demoId: 'default-slot',
|
|
144
|
-
name: {
|
|
145
|
-
'zh-CN': '默认插槽',
|
|
146
|
-
'en-US': ''
|
|
147
|
-
},
|
|
148
|
-
desc: {
|
|
149
|
-
'zh-CN': '<p>自定义抽屉主体内容。</p>',
|
|
150
|
-
'en-US': ''
|
|
151
|
-
},
|
|
152
|
-
codeFiles: ['default-slot.vue']
|
|
153
|
-
},
|
|
154
152
|
{
|
|
155
153
|
demoId: 'header-slot',
|
|
156
154
|
name: {
|
|
@@ -4,7 +4,7 @@ test('自定义服务', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).not.toBeNull())
|
|
5
5
|
await page.goto('drop-roles#custom-service')
|
|
6
6
|
|
|
7
|
-
const input = page.
|
|
7
|
+
const input = page.locator('.tiny-select input')
|
|
8
8
|
const listItems = page.getByRole('listitem')
|
|
9
9
|
const url = await page.evaluate(() => window.location.href)
|
|
10
10
|
const notify1 = page.locator('.tiny-notify').filter({
|
|
@@ -9,7 +9,7 @@ test('文件选择前确认', async ({ page }) => {
|
|
|
9
9
|
await upload.click()
|
|
10
10
|
await page.locator('.tiny-modal').filter({ hasText: 'beforeAddFile 钩子函数' }).isVisible()
|
|
11
11
|
|
|
12
|
-
const confirmBtn = page.getByRole('button', { name: '
|
|
12
|
+
const confirmBtn = page.getByRole('button', { name: '确定' })
|
|
13
13
|
const [fileChooser] = await Promise.all([page.waitForEvent('filechooser'), confirmBtn.click()])
|
|
14
14
|
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
@@ -21,7 +21,7 @@ test('照片墙的预览、下载与删除', async ({ page, context }) => {
|
|
|
21
21
|
await expect(lists).toHaveCount(1)
|
|
22
22
|
await lists.first().hover()
|
|
23
23
|
const [newPage] = await Promise.all([context.waitForEvent('page'), dowPic.click()])
|
|
24
|
-
await expect(newPage.url()).toContain('blob:http
|
|
24
|
+
await expect(newPage.url()).toContain('blob:http')
|
|
25
25
|
await newPage.close()
|
|
26
26
|
await lists.first().hover()
|
|
27
27
|
await prevPic.click()
|
|
@@ -9,12 +9,12 @@ test('手动上传', async ({ page }) => {
|
|
|
9
9
|
const lists = page.locator('.tiny-upload-list__item')
|
|
10
10
|
const [fileChooser] = await Promise.all([page.waitForEvent('filechooser'), upload.click()])
|
|
11
11
|
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
12
13
|
const path = require('node:path')
|
|
13
14
|
const currentPath = path.resolve(__dirname, '测试.jpg')
|
|
14
15
|
|
|
15
16
|
await fileChooser.setFiles(currentPath)
|
|
16
17
|
await expect(lists).toHaveText(/测试.jpg/)
|
|
17
18
|
await server.click()
|
|
18
|
-
await lists.waitFor({ state: 'hidden', timeout: 3000 })
|
|
19
19
|
await expect(lists).toHaveCount(0)
|
|
20
20
|
})
|
|
@@ -20,6 +20,7 @@ test('照片墙', async ({ page }) => {
|
|
|
20
20
|
const dialogClose = page.getByRole('button', { name: 'Close' })
|
|
21
21
|
const { width, height } = await first.boundingBox()
|
|
22
22
|
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
23
24
|
const path = require('node:path')
|
|
24
25
|
const currentPath = path.resolve(__dirname, '测试.jpg')
|
|
25
26
|
|
|
@@ -29,10 +30,10 @@ test('照片墙', async ({ page }) => {
|
|
|
29
30
|
await fileChooser.setFiles(currentPath)
|
|
30
31
|
await first.hover()
|
|
31
32
|
await prevPic.click()
|
|
32
|
-
await expect(prevImg).toHaveAttribute('src',
|
|
33
|
+
await expect(prevImg).toHaveAttribute('src', /\/fruit.jpg/)
|
|
33
34
|
await dialogClose.click()
|
|
34
35
|
await first.hover()
|
|
35
36
|
await delButton.click()
|
|
36
37
|
await page.waitForTimeout(200)
|
|
37
|
-
await
|
|
38
|
+
await first.isHidden()
|
|
38
39
|
})
|
|
@@ -16,13 +16,13 @@ test('图片列表缩略图', async ({ page }) => {
|
|
|
16
16
|
const path = require('node:path')
|
|
17
17
|
const currentPath = path.resolve(__dirname, '测试.jpg')
|
|
18
18
|
|
|
19
|
-
await expect(width).toBeGreaterThanOrEqual(
|
|
19
|
+
await expect(width).toBeGreaterThanOrEqual(height)
|
|
20
20
|
await expect(height).toBeGreaterThanOrEqual(56)
|
|
21
21
|
await expect(lists).toHaveCount(2)
|
|
22
22
|
await fileChooser.setFiles(currentPath)
|
|
23
23
|
await expect(images.nth(0)).toHaveCSS('width', '56px')
|
|
24
24
|
await expect(images.nth(0)).toHaveCSS('height', '56px')
|
|
25
|
-
await expect(images.nth(0)).toHaveAttribute('src',
|
|
26
|
-
await expect(images.nth(1)).toHaveAttribute('src',
|
|
25
|
+
await expect(images.nth(0)).toHaveAttribute('src', /\/fruit.jpg/)
|
|
26
|
+
await expect(images.nth(1)).toHaveAttribute('src', /\/book.jpg/)
|
|
27
27
|
await expect(triangles.nth(0)).toHaveCSS('transform', 'matrix(0.707107, 0.707107, -0.707107, 0.707107, 0, 0)')
|
|
28
28
|
})
|
|
@@ -13,7 +13,7 @@ test('文件列表', async ({ page }) => {
|
|
|
13
13
|
const path = require('node:path')
|
|
14
14
|
const currentPath = path.resolve(__dirname, '测试.jpg')
|
|
15
15
|
|
|
16
|
-
await expect(width).toBeGreaterThanOrEqual(
|
|
16
|
+
await expect(width).toBeGreaterThanOrEqual(height)
|
|
17
17
|
await expect(height).toBeGreaterThanOrEqual(25, 0)
|
|
18
18
|
await expect(items).toHaveCount(2)
|
|
19
19
|
await expect(items).toHaveText([/test1/, /test2/])
|
|
@@ -10,8 +10,11 @@ test.describe('设置上传请求', () => {
|
|
|
10
10
|
|
|
11
11
|
const upload = page.getByRole('button', { name: '选取文件' })
|
|
12
12
|
const [fileChooser] = await Promise.all([page.waitForEvent('filechooser'), upload.click()])
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
await fileChooser.setFiles(path1)
|
|
14
|
+
page.on('requestfailed', (request) => {
|
|
15
|
+
expect(request.url()).toEqual('http://localhost:3000/api/upload')
|
|
16
|
+
})
|
|
17
|
+
await page.waitForTimeout(200)
|
|
15
18
|
})
|
|
16
19
|
|
|
17
20
|
test('支持发送 cookie 凭证信息', async ({ page }) => {
|
|
@@ -20,10 +23,12 @@ test.describe('设置上传请求', () => {
|
|
|
20
23
|
|
|
21
24
|
const upload = page.getByRole('button', { name: '选取文件' })
|
|
22
25
|
const [fileChooser] = await Promise.all([page.waitForEvent('filechooser'), upload.click()])
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
await fileChooser.setFiles(path1)
|
|
27
|
+
page.on('requestfailed', (request) => {
|
|
28
|
+
const { authorization } = request.headers()
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
expect(request.headers()).not.toBeNull()
|
|
31
|
+
expect(authorization).toEqual('Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==')
|
|
32
|
+
})
|
|
28
33
|
})
|
|
29
34
|
})
|