@touchvue/ui 1.0.0-beta.57 → 1.0.0-beta.59
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/es/components/breadcrumb/src/breadcrumb.vue.d.ts +3 -1
- package/es/components/calendar/src/calendar.d.ts +4 -0
- package/es/components/calendar/src/calendar.vue.d.ts +9 -0
- package/es/components/checkboxes/src/Checkboxes.vue.d.ts +2 -0
- package/es/components/ellipsis/index.d.ts +15 -0
- package/es/components/ellipsis/src/Ellipsis.vue.d.ts +9 -0
- package/es/components/grid/src/grid-item.vue.d.ts +2 -0
- package/es/components/timeline/src/timeline.d.ts +1 -1
- package/es/components/timeline/src/timeline.vue.d.ts +1 -1
- package/es/hooks/useSetClass.d.ts +4 -0
- package/es/index.d.mjs +1 -1
- package/es/index.mjs +1 -1
- package/es/packages/components/box/src/box.vue2.mjs +41 -2
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs +3 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/packages/components/button/src/button.mjs +1 -1
- package/es/packages/components/button/src/button.mjs.map +1 -1
- package/es/packages/components/button/src/button.vue2.mjs +62 -24
- package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.mjs +4 -0
- package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +210 -232
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs +2 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs +2 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +14 -11
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +8 -4
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs +2 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +4 -5
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
- package/es/packages/components/daterange/src/date-range.vue2.mjs +30 -10
- package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs +2 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.mjs +1 -1
- package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
- package/es/packages/components/divider/src/divider.vue2.mjs +2 -1
- package/es/packages/components/divider/src/divider.vue2.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs +4 -0
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs.map +1 -1
- package/es/packages/components/export/src/export.vue2.mjs +2 -1
- package/es/packages/components/export/src/export.vue2.mjs.map +1 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs +2 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/Float.vue2.mjs +2 -1
- package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/float.mjs +1 -1
- package/es/packages/components/float/src/float.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +3 -2
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/gap/src/gap.vue2.mjs +2 -1
- package/es/packages/components/gap/src/gap.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid-item.vue2.mjs +11 -4
- package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid.vue2.mjs +2 -1
- package/es/packages/components/grid/src/grid.vue2.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +3 -2
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/header/src/header.vue2.mjs +2 -1
- package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
- package/es/packages/components/icon/src/icon.vue2.mjs +2 -1
- package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/packages/components/import/src/import.vue2.mjs +27 -29
- package/es/packages/components/import/src/import.vue2.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +9 -8
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/packages/components/msg/src/msg.vue2.mjs +2 -1
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs +3 -2
- package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs +8 -7
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/Param.vue2.mjs +2 -1
- package/es/packages/components/param/src/Param.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/param.mjs +1 -1
- package/es/packages/components/param/src/param.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs +2 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue2.mjs +2 -1
- package/es/packages/components/progress/src/Progress.vue2.mjs.map +1 -1
- package/es/packages/components/range/src/range.vue2.mjs +2 -1
- package/es/packages/components/range/src/range.vue2.mjs.map +1 -1
- package/es/packages/components/rate/src/rate.vue2.mjs +4 -3
- package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +2 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +1 -1
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs +2 -1
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs +2 -3
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +2 -3
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/slide/src/slide.vue2.mjs +2 -1
- package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
- package/es/packages/components/step/src/step.vue2.mjs +2 -1
- package/es/packages/components/step/src/step.vue2.mjs.map +1 -1
- package/es/packages/components/switch/src/switch.vue2.mjs +2 -1
- package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +5 -1
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +2 -1
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/components/tag/src/tag.vue2.mjs +41 -2
- package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/packages/components/text/src/text.vue2.mjs +16 -4
- package/es/packages/components/text/src/text.vue2.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs +3 -2
- package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
- package/es/packages/components/tip/index.mjs +1 -1
- package/es/packages/components/tip/index.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.vue2.mjs +2 -1
- package/es/packages/components/tip/src/tip.vue2.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs +2 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs +2 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
- package/es/packages/components/tree/src/tree.vue2.mjs +2 -1
- package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
- package/es/packages/components/upload/src/upload.vue2.mjs +2 -1
- package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/packages/directives/dis/src/dis.mjs +5 -0
- package/es/packages/directives/dis/src/dis.mjs.map +1 -1
- package/es/packages/hooks/index.d.mjs +1 -1
- package/es/packages/hooks/index.mjs +1 -1
- package/es/packages/hooks/useSetClass.mjs +5 -2
- package/es/packages/hooks/useSetClass.mjs.map +1 -1
- package/es/packages/locale/lang/en-US.mjs +1 -0
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs +1 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/es/utils/constants/base.d.ts +1 -1
- package/lib/components/breadcrumb/src/breadcrumb.vue.d.ts +3 -1
- package/lib/components/calendar/src/calendar.d.ts +4 -0
- package/lib/components/calendar/src/calendar.vue.d.ts +9 -0
- package/lib/components/checkboxes/src/Checkboxes.vue.d.ts +2 -0
- package/lib/components/ellipsis/index.d.ts +15 -0
- package/lib/components/ellipsis/src/Ellipsis.vue.d.ts +9 -0
- package/lib/components/grid/src/grid-item.vue.d.ts +2 -0
- package/lib/components/timeline/src/timeline.d.ts +1 -1
- package/lib/components/timeline/src/timeline.vue.d.ts +1 -1
- package/lib/hooks/useSetClass.d.ts +4 -0
- package/lib/index.d.js +1 -0
- package/lib/index.d.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/packages/components/box/src/box.vue2.js +40 -1
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js +3 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/packages/components/button/src/button.js +1 -1
- package/lib/packages/components/button/src/button.js.map +1 -1
- package/lib/packages/components/button/src/button.vue2.js +61 -23
- package/lib/packages/components/button/src/button.vue2.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.js +4 -0
- package/lib/packages/components/calendar/src/calendar.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +210 -232
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js +2 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js +2 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js +14 -11
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +7 -3
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js +2 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js +4 -5
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
- package/lib/packages/components/daterange/src/date-range.vue2.js +29 -9
- package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js +2 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.js +1 -1
- package/lib/packages/components/dialog/src/dialog.js.map +1 -1
- package/lib/packages/components/divider/src/divider.vue2.js +2 -1
- package/lib/packages/components/divider/src/divider.vue2.js.map +1 -1
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js +4 -0
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js.map +1 -1
- package/lib/packages/components/export/src/export.vue2.js +2 -1
- package/lib/packages/components/export/src/export.vue2.js.map +1 -1
- package/lib/packages/components/fix/src/Fix.vue2.js +2 -1
- package/lib/packages/components/fix/src/Fix.vue2.js.map +1 -1
- package/lib/packages/components/float/src/Float.vue2.js +2 -1
- package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
- package/lib/packages/components/float/src/float.js +1 -1
- package/lib/packages/components/float/src/float.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +3 -2
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/gap/src/gap.vue2.js +2 -1
- package/lib/packages/components/gap/src/gap.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid-item.vue2.js +10 -3
- package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid.vue2.js +2 -1
- package/lib/packages/components/grid/src/grid.vue2.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +3 -2
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/header/src/header.vue2.js +2 -1
- package/lib/packages/components/header/src/header.vue2.js.map +1 -1
- package/lib/packages/components/icon/src/icon.vue2.js +2 -1
- package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/packages/components/import/src/import.vue2.js +26 -28
- package/lib/packages/components/import/src/import.vue2.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +9 -8
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/packages/components/msg/src/msg.vue2.js +2 -1
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js +3 -2
- package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js +7 -6
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/param/src/Param.vue2.js +2 -1
- package/lib/packages/components/param/src/Param.vue2.js.map +1 -1
- package/lib/packages/components/param/src/param.js +1 -1
- package/lib/packages/components/param/src/param.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js +2 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue2.js +2 -1
- package/lib/packages/components/progress/src/Progress.vue2.js.map +1 -1
- package/lib/packages/components/range/src/range.vue2.js +2 -1
- package/lib/packages/components/range/src/range.vue2.js.map +1 -1
- package/lib/packages/components/rate/src/rate.vue2.js +3 -2
- package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +2 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +1 -1
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js +2 -1
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-class-style.js +2 -3
- package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +2 -3
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/slide/src/slide.vue2.js +2 -1
- package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
- package/lib/packages/components/step/src/step.vue2.js +2 -1
- package/lib/packages/components/step/src/step.vue2.js.map +1 -1
- package/lib/packages/components/switch/src/switch.vue2.js +2 -1
- package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +5 -1
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +2 -1
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/components/tag/src/tag.vue2.js +40 -1
- package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/packages/components/text/src/text.vue2.js +15 -3
- package/lib/packages/components/text/src/text.vue2.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js +3 -2
- package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
- package/lib/packages/components/tip/index.js +1 -1
- package/lib/packages/components/tip/index.js.map +1 -1
- package/lib/packages/components/tip/src/tip.vue2.js +2 -1
- package/lib/packages/components/tip/src/tip.vue2.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js +2 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js.map +1 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js +2 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
- package/lib/packages/components/tree/src/tree.vue2.js +2 -1
- package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
- package/lib/packages/components/upload/src/upload.vue2.js +2 -1
- package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/packages/directives/dis/src/dis.js +5 -0
- package/lib/packages/directives/dis/src/dis.js.map +1 -1
- package/lib/packages/hooks/index.d.js +1 -0
- package/lib/packages/hooks/index.d.js.map +1 -1
- package/lib/packages/hooks/index.js +1 -0
- package/lib/packages/hooks/index.js.map +1 -1
- package/lib/packages/hooks/useSetClass.js +5 -1
- package/lib/packages/hooks/useSetClass.js.map +1 -1
- package/lib/packages/locale/lang/en-US.js +1 -0
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js +1 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/lib/utils/constants/base.d.ts +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +529 -237
- package/theme/img/loading.png +0 -0
- package/theme/index.css +529 -237
- package/theme/skin/default.css +529 -237
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pic.vue2.mjs","sources":["../../../../../../packages/components/pic/src/Pic.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToPic'\n});\n</script>\n<template>\n\t<span :role=\"link ? 'button' : null\" :flex=\"flex ? flex : null\" class=\"to-pic\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<img :src=\"src\" class=\"to-pic-content\" :alt=\"alt\" @click=\"clickHandler\" />\n\t\t<to-tag v-if=\"count !== '' && count !== undefined && Number(count) !== 0\" type=\"number\" class=\"to-pic-count\">{{ count }}</to-tag>\n\t\t<template v-if=\"preview\">\n\t\t\t<pic-viewer v-if=\"showViewer\" :mask-closable=\"true\" :z-index=\"zIndex\" :initial-index=\"imageIndex\" :on-close=\"closeViewer\" :url-list=\"previews\"></pic-viewer>\n\t\t</template>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed } from 'vue'\nimport { picProps } from './pic'\nimport PicViewer from './PicViewer.vue'\nimport { ToTag } from '@touchvue/components'\n\n\n\nconst props = defineProps(picProps)\n\nconst showViewer = ref(false)\nlet prevOverflow = ''\n\nconst preview = computed(() => {\n\treturn Array.isArray(props.previews) && props.previews.length > 0\n})\n\nconst imageIndex = computed(() => {\n\tlet previewIndex = 0\n\tconst srcIndex = (props.previews as string[]).indexOf(props.src)\n\tif (srcIndex >= 0) {\n\t\tpreviewIndex = srcIndex\n\t}\n\treturn previewIndex\n})\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(
|
|
1
|
+
{"version":3,"file":"Pic.vue2.mjs","sources":["../../../../../../packages/components/pic/src/Pic.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToPic'\n});\n</script>\n<template>\n\t<span :role=\"link ? 'button' : null\" :flex=\"flex ? flex : null\" class=\"to-pic\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<img :src=\"src\" class=\"to-pic-content\" :alt=\"alt\" @click=\"clickHandler\" />\n\t\t<to-tag v-if=\"count !== '' && count !== undefined && Number(count) !== 0\" type=\"number\" class=\"to-pic-count\">{{ count }}</to-tag>\n\t\t<template v-if=\"preview\">\n\t\t\t<pic-viewer v-if=\"showViewer\" :mask-closable=\"true\" :z-index=\"zIndex\" :initial-index=\"imageIndex\" :on-close=\"closeViewer\" :url-list=\"previews\"></pic-viewer>\n\t\t</template>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { picProps } from './pic'\nimport PicViewer from './PicViewer.vue'\nimport { ToTag } from '@touchvue/components'\n\n\n\nconst props = defineProps(picProps)\n\nconst showViewer = ref(false)\nlet prevOverflow = ''\n\nconst preview = computed(() => {\n\treturn Array.isArray(props.previews) && props.previews.length > 0\n})\n\nconst imageIndex = computed(() => {\n\tlet previewIndex = 0\n\tconst srcIndex = (props.previews as string[]).indexOf(props.src)\n\tif (srcIndex >= 0) {\n\t\tpreviewIndex = srcIndex\n\t}\n\treturn previewIndex\n})\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\n\tif (props.link) {\n\t\tarr.push(`is-link`)\n\t}\n\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst obj: Record<string, string> = {}\n\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tobj['--width'] = props.width + 'em'\n\t\t} else if (props.width === 'full') {\n\t\t\tobj['--width'] = '100%'\n\t\t} else {\n\t\t\tobj['--width'] = String(props.width)\n\t\t}\n\t}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else if (props.height === 'full') {\n\t\t\tobj.height = '100%'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\tif (props.height !== 'auto') {\n\t\tif (typeof props.height === 'number') {\n\t\t\tobj.height = `${props.height}em`\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\tif (props.previews && props.previews.length > 0) {\n\t\tobj.cursor = 'pointer'\n\t}\n\n\treturn obj\n})\n\nconst clickHandler = () => {\n\tif (!preview.value) {\n\t\treturn\n\t}\n\tshowViewer.value = true\n}\n\nconst closeViewer = () => {\n\tdocument.body.style.overflow = prevOverflow\n\tshowViewer.value = false\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","link","flex","_normalizeClass","_createElementVNode","src","alt","count","_createBlock","_unref","_Fragment","zIndex","previews"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.vue.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(`mode-${props.mode}`)\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":["flex","setStyle","type","_openBlock","_createElementBlock","_Fragment","_createElementVNode","radius","strokeDashoffset","titleValue","_renderSlot","content","_toDisplayString","setBarStyle","_normalizeStyle","textPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.vue.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(...getModeClasses(props.mode))\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":["flex","setStyle","type","_openBlock","_createElementBlock","_Fragment","_createElementVNode","radius","strokeDashoffset","titleValue","_renderSlot","content","_toDisplayString","setBarStyle","_normalizeStyle","textPosition"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, onMounted, nextTick, onBeforeUnmount, watch } from 'vue';
|
|
2
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
2
3
|
|
|
3
4
|
var _sfc_main = defineComponent({
|
|
4
5
|
name: "ToProgress",
|
|
@@ -129,7 +130,7 @@ var _sfc_main = defineComponent({
|
|
|
129
130
|
arr.push(`type-${props.type}`);
|
|
130
131
|
}
|
|
131
132
|
if (props.mode) {
|
|
132
|
-
arr.push(
|
|
133
|
+
arr.push(...getModeClasses(props.mode));
|
|
133
134
|
}
|
|
134
135
|
return arr;
|
|
135
136
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.vue2.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(`mode-${props.mode}`)\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.vue2.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(...getModeClasses(props.mode))\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":";;;AA+BA,gBAAe,eAAgB,CAAA;AAAA,EAC9B,IAAM,EAAA,YAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACN,IAAM,EAAA,OAAA;AAAA;AAAA,IAEN,IAAM,EAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,QAAA;AAAA,MACT,SAAA,EAAW,CAAC,GAAgB,KAAA,CAAC,UAAU,SAAW,EAAA,QAAQ,CAAE,CAAA,QAAA,CAAS,GAAG,CAAA;AAAA,KACzE;AAAA;AAAA,IAEA,KAAO,EAAA;AAAA,MACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,CAAA;AAAA,MACT,QAAU,EAAA,IAAA;AAAA,KACX;AAAA;AAAA,IAEA,IAAM,EAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,SAAA;AAAA,KACV;AAAA;AAAA,IAEA,IAAM,EAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,EAAA;AAAA,KACV;AAAA;AAAA,IAEA,KAAO,EAAA;AAAA,MACN,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,KAAA,CAAA;AAAA,KACV;AAAA;AAAA,IAEA,OAAS,EAAA;AAAA,MACR,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,EAAA;AAAA,KACV;AAAA;AAAA,IAEA,YAAc,EAAA;AAAA,MACb,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,OAAA;AAAA,MACT,SAAA,EAAW,CAAC,GAAgB,KAAA,CAAC,SAAS,OAAS,EAAA,MAAM,CAAE,CAAA,QAAA,CAAS,GAAG,CAAA;AAAA,KACpE;AAAA;AAAA,IAEA,SAAW,EAAA;AAAA,MACV,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,MAAA;AAAA,KACV;AAAA;AAAA,IAEA,KAAO,EAAA;AAAA,MACN,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,SAAA;AAAA,KACV;AAAA;AAAA,IAEA,KAAO,EAAA;AAAA,MACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,EAAA;AAAA,KACV;AAAA;AAAA,IAEA,OAAS,EAAA;AAAA,MACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,CAAA;AAAA,KACV;AAAA,GACD;AAAA,EACA,MAAM,KAAO,EAAA;AAEZ,IAAM,MAAA,KAAA,GAAQ,IAAwB,IAAI,CAAA,CAAA;AAC1C,IAAM,MAAA,MAAA,GAAS,IAAY,CAAC,CAAA,CAAA;AAC5B,IAAM,MAAA,KAAA,GAAQ,IAAY,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,SAAA,GAAY,IAAY,CAAC,CAAA,CAAA;AAC/B,IAAM,MAAA,QAAA,GAAW,IAAY,CAAC,CAAA,CAAA;AAC9B,IAAM,MAAA,EAAA,GAAK,IAAI,CAAC,CAAA,CAAA;AAChB,IAAM,MAAA,WAAA,GAAc,IAAI,CAAC,CAAA,CAAA;AACzB,IAAM,MAAA,WAAA,GAAc,IAAI,EAAE,CAAA,CAAA;AAE1B,IAAM,MAAA,QAAA,GAAW,CAAC,KAAkB,KAAA;AACnC,MAAA,IAAI,CAAI,GAAA,KAAA,CAAA;AAER,MAAI,IAAA,MAAA,GAAS,CAAC,SAAW,EAAA,SAAA,EAAW,WAAW,QAAU,EAAA,MAAA,EAAQ,aAAa,IAAI,CAAA,CAAA;AAClF,MAAA,IAAI,SAAS,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,MAAA,KAAW,CAAC,CAAA,CAAA;AACzC,MAAA,IAAI,UAAU,OAAS,EAAA;AACtB,QAAA,CAAA,GAAI,OAAO,MAAM,CAAA,CAAA;AAAA,OAClB;AAEA,MAAA,QAAQ,CAAG;AAAA,QACV,KAAK,IAAA;AACJ,UAAO,OAAA,MAAA,CAAA;AAAA,QACR,KAAK,MAAA;AACJ,UAAO,OAAA,MAAA,CAAA;AAAA,QACR,KAAK,SAAA;AACJ,UAAO,OAAA,SAAA,CAAA;AAAA,QACR,KAAK,SAAA;AACJ,UAAO,OAAA,SAAA,CAAA;AAAA,QACR,KAAK,QAAA;AACJ,UAAO,OAAA,SAAA,CAAA;AAAA,QACR,KAAK,WAAA;AACJ,UAAO,OAAA,SAAA,CAAA;AAAA,QACR,KAAK,SAAA;AACJ,UAAO,OAAA,SAAA,CAAA;AAAA,QACR;AACC,UAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA;AAEA,IAAA,MAAM,gBAAgB,QAAS,CAAA,MAAM,IAAI,IAAK,CAAA,EAAA,GAAK,OAAO,KAAK,CAAA,CAAA;AAC/D,IAAA,MAAM,eAAkB,GAAA,QAAA,CAAS,MAAM,aAAA,CAAc,KAAK,CAAA,CAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,QAAS,CAAA,MAAM,aAAc,CAAA,KAAA,IAAS,IAAI,MAAO,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,GAAI,CAAA,CAAA,CAAA;AAE7F,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAChC,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,OAAO,KAAM,CAAA,IAAA,CAAA;AAAA,OACP,MAAA;AACN,QAAA,OAAO,WAAY,CAAA,KAAA,CAAA;AAAA,OACpB;AAAA,KACA,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AACjC,MAAI,IAAA,KAAA,CAAM,UAAU,KAAW,CAAA,EAAA;AAC9B,QAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,OACP,MAAA;AAEN,QAAA,MAAM,eAAe,MAAO,CAAA,WAAA,CAAY,MAAM,OAAQ,CAAA,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AAC9D,QAAA,IAAI,YAAgB,IAAA,GAAA,IAAO,KAAM,CAAA,IAAA,KAAS,QAAU,EAAA;AACnD,UAAO,OAAA,MAAA,CAAA;AAAA,SACR;AACA,QAAA,OAAO,WAAY,CAAA,KAAA,CAAA;AAAA,OACpB;AAAA,KACA,CAAA,CAAA;AAED,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC/B,MAAA,MAAM,MAAgB,EAAC,CAAA;AACvB,MAAI,GAAA,CAAA,IAAA,CAAK,CAAS,MAAA,EAAA,KAAA,CAAM,KAAO,CAAA,CAAA,CAAA,CAAA;AAC/B,MAAA,IAAI,MAAM,YAAc,EAAA;AACvB,QAAI,GAAA,CAAA,IAAA,CAAK,CAAiB,cAAA,EAAA,KAAA,CAAM,YAAc,CAAA,CAAA,CAAA,CAAA;AAAA,OAC/C;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAI,GAAA,CAAA,IAAA,CAAK,CAAQ,KAAA,EAAA,KAAA,CAAM,IAAM,CAAA,CAAA,CAAA,CAAA;AAAA,OAC9B;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,GAAA,CAAI,IAAK,CAAA,GAAG,cAAe,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAAA,OACvC;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC/B,MAAA,MAAM,MAA8B,EAAC,CAAA;AACrC,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAI,IAAA,KAAA,CAAM,SAAS,QAAU,EAAA;AAC5B,UAAA,IAAI,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAC,CAAG,EAAA;AAEhC,YAAA,MAAM,IAAO,GAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAI,GAAA,IAAA,CAAA;AACnC,YAAA,GAAA,CAAI,KAAQ,GAAA,IAAA,CAAA;AACZ,YAAA,GAAA,CAAI,MAAS,GAAA,IAAA,CAAA;AAAA,WACd,MAAA,IAAW,KAAM,CAAA,KAAA,KAAU,MAAQ,EAAA;AAClC,YAAA,GAAA,CAAI,KAAQ,GAAA,MAAA,CAAA;AAEZ,YAAA,GAAA,CAAI,WAAc,GAAA,KAAA,CAAA;AAAA,WACZ,MAAA;AACN,YAAA,GAAA,CAAI,QAAQ,KAAM,CAAA,KAAA,CAAA;AAClB,YAAA,GAAA,CAAI,SAAS,KAAM,CAAA,KAAA,CAAA;AAAA,WACpB;AAAA,SACM,MAAA;AACN,UAAA,IAAI,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAC,CAAG,EAAA;AAChC,YAAI,GAAA,CAAA,KAAA,GAAQ,MAAM,KAAQ,GAAA,IAAA,CAAA;AAAA,WAC3B,MAAA,IAAW,KAAM,CAAA,KAAA,KAAU,MAAQ,EAAA;AAClC,YAAA,GAAA,CAAI,KAAQ,GAAA,MAAA,CAAA;AAAA,WACN,MAAA;AACN,YAAA,GAAA,CAAI,QAAQ,KAAM,CAAA,KAAA,CAAA;AAAA,WACnB;AAAA,SACD;AAAA,OACD;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AAClC,MAAA,OAAO,WAAW,WAAY,CAAA,KAAA,CAAA;AAAA,KAC9B,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AACnC,MAAI,IAAA,KAAA,CAAM,cAAc,MAAQ,EAAA;AAC/B,QAAO,OAAA,EAAA,CAAA;AAAA,OACD,MAAA;AACN,QAAO,OAAA,QAAA,GAAW,MAAM,SAAY,GAAA,IAAA,CAAA;AAAA,OACrC;AAAA,KACA,CAAA,CAAA;AAGD,IAAA,MAAM,gBAAgB,MAAM;AAC3B,MAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,MAAA,IAAA,CAAK,MAAM,KAAQ,GAAA,EAAA,EAAI,OAAQ,CAAA,GAAG,IAAI,CAAI,CAAA,EAAA;AACzC,QAAA,CAAA,GAAI,OAAQ,KAAM,CAAA,KAAA,CAAiB,OAAQ,CAAA,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AAAA,OAC7C,MAAA;AACN,QAAI,CAAA,GAAA,MAAA,CAAO,MAAM,KAAK,CAAA,CAAA;AAAA,OACvB;AACA,MAAA,IAAI,IAAI,CAAG,EAAA;AACV,QAAI,CAAA,GAAA,CAAA,CAAA;AAAA,OACL;AACA,MAAA,WAAA,CAAY,QAAQ,CAAI,GAAA,GAAA,CAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,OAAO,MAAM;AAClB,MAAA,IAAI,KAAuB,GAAA,IAAA,CAAA;AAC3B,MAAQ,KAAA,GAAA,MAAA,CAAO,WAAW,MAAM;AAC/B,QAAA,EAAA,CAAG,KAAQ,GAAA,EAAA,CAAA;AACX,QAAM,MAAA,EAAA,GAAK,QAAS,CAAA,aAAA,CAAc,cAAc,CAAA,CAAA;AAChD,QAAA,IAAI,EAAI,EAAA;AACP,UAAI,IAAA,KAAA,CAAM,SAAS,QAAU,EAAA;AAE5B,YAAM,MAAA,YAAA,GAAe,WAAW,gBAAiB,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,gBAAA,CAAiB,SAAS,CAAC,CAAA,CAAA;AACzF,YAAM,MAAA,aAAA,GAAgB,WAAW,gBAAiB,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,gBAAA,CAAiB,aAAa,CAAC,CAAA,CAAA;AAC9F,YAAM,MAAA,KAAA,GAAQ,WAAW,gBAAiB,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,gBAAA,CAAiB,SAAS,CAAC,CAAA,CAAA;AAGlF,YAAM,KAAA,CAAA,KAAA,GAAS,eAAe,KAAS,GAAA,GAAA,CAAA;AACvC,YAAS,QAAA,CAAA,KAAA,GAAS,gBAAgB,KAAS,GAAA,GAAA,CAAA;AAC3C,YAAO,MAAA,CAAA,KAAA,GAAQ,KAAK,IAAK,CAAA,GAAA,CAAI,MAAM,KAAO,EAAA,QAAA,CAAS,KAAK,CAAI,GAAA,CAAA,CAAA;AAG5D,YAAA,WAAA,CAAY,KAAQ,GAAA,GAAA,CAAA;AAGpB,YAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAU,EAAA;AACpC,cAAY,WAAA,CAAA,KAAA,GAAQ,MAAM,KAAQ,GAAA,EAAA,CAAA;AAAA,aACxB,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,MAAA,IAAU,GAAG,aAAe,EAAA;AACtD,cAAY,WAAA,CAAA,KAAA,GAAQ,GAAG,aAAc,CAAA,WAAA,CAAA;AAAA,aACtC;AAAA,WACM,MAAA;AACN,YAAA,WAAA,CAAY,QAAQ,EAAG,CAAA,WAAA,CAAA;AAAA,WACxB;AAAA,SACD;AACA,QAAA,IAAI,KAAO,EAAA;AACV,UAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,UAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,SACT;AAAA,SACE,GAAG,CAAA,CAAA;AAAA,KACP,CAAA;AAGA,IAAA,SAAA,CAAU,MAAM;AACf,MAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,IAAI,CAAA,CAAA;AACtC,MAAA,QAAA,CAAS,MAAM;AACd,QAAK,IAAA,EAAA,CAAA;AAAA,OACL,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAO,MAAA,CAAA,mBAAA,CAAoB,UAAU,IAAI,CAAA,CAAA;AAAA,KACzC,CAAA,CAAA;AAGD,IAAA,KAAA;AAAA,MACC,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,MAAM;AACL,QAAc,aAAA,EAAA,CAAA;AAAA,OACf;AAAA,KACD,CAAA;AAGA,IAAc,aAAA,EAAA,CAAA;AAEd,IAAO,OAAA;AAAA,MACN,KAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,KACD,CAAA;AAAA,GACD;AACD,CAAC,CAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, onMounted, watch, nextTick, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createCommentVNode, createBlock, unref } from 'vue';
|
|
2
2
|
import { ToInput } from '../../input/index.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToRange"
|
|
@@ -109,7 +110,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
109
110
|
arr.push(`is-disabled`);
|
|
110
111
|
}
|
|
111
112
|
if (props.mode) {
|
|
112
|
-
arr.push(
|
|
113
|
+
arr.push(...getModeClasses(props.mode));
|
|
113
114
|
}
|
|
114
115
|
return arr;
|
|
115
116
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.vue2.mjs","sources":["../../../../../../packages/components/range/src/range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRange'\n});\n</script>\n<template>\n\t<span class=\"to-range\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\" @touchmove=\"moveHandle($event)\" @touchend=\"endHandle($event)\">\n\t\t<span ref=\"barRef\" class=\"to-range-bar\">\n\t\t\t<span ref=\"progressRef\" class=\"to-range-progress\" :style=\"{ width: endProgress - startProgress + '%', left: startProgress + '%' }\">\n\t\t\t\t<span v-if=\"start\" ref=\"startRef\" class=\"to-range-handle is-start\" @mousedown=\"onStartButtonDown\"></span>\n\t\t\t\t<span ref=\"endRef\" class=\"to-range-handle\" @mousedown=\"onButtonDown\" @touchstart=\"endStartHandle($event)\"></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<to-input v-if=\"inputable\" v-model=\"endProgress\" class=\"to-range-input\" :width=\"inputWidth\" :dot=\"fixed\"></to-input>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { ToInput } from '@touchvue/components'\n\n\nexport interface RangeProps {\n\tflex?: boolean\n\tmode?: string\n\tmodelValue?: string | number\n\tdisabled?: boolean\n\tinputable?: boolean\n\tmax?: string | number\n\tmin?: string | number\n\truler?: boolean\n\tstart?: boolean\n\tstep?: string | number\n\twidth?: string | number\n\tinputWidth?: string | number\n\ttoFixed?: string | number\n}\nconst props = withDefaults(defineProps<RangeProps>(), {\n\tmode: 'default',\n\tmodelValue: 0,\n\tdisabled: false,\n\tinputable: false,\n\tmax: 100,\n\tmin: 0,\n\tflex: false,\n\truler: false,\n\tstart: false,\n\tstep: 1,\n\twidth: '',\n\tinputWidth: 6,\n\ttoFixed: 0\n})\n\nconst endProgress = ref(0)\nconst startProgress = ref(0)\nconst progressRef = ref(null)\nconst endRef = ref(null)\nconst startRef = ref(null)\nconst barRef = ref(null)\nconst endDragX = ref(0)\nconst startDragX = ref(0)\nconst endProgressWidth = ref(0)\nconst startLeft = ref(0)\nconst fixed = ref(0)\nconst valueWidth = ref(0)\nconst stepProgress = ref(0)\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nonMounted(() => {\n\tvalueWidth.value = Number(props.max) - Number(props.min)\n\tif (props.step) {\n\t\tstepProgress.value = Number(((1 / (valueWidth.value / Number(props.step))) * 100).toFixed(2))\n\t}\n\tfixed.value = Number(props.toFixed) ? Number(props.toFixed) : getDecimalPlaces(props.min)\n})\nwatch(\n\t() => endProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (startProgress.value / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => startProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (endProgress.value / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\tif (props.start && typeof val === 'string') {\n\t\t\tlet arr = val.split(',')\n\t\t\tendProgress.value = ((Number(arr[1]) - Number(props.min)) / valueWidth) * 100\n\t\t\tstartProgress.value = ((Number(arr[0]) - Number(props.min)) / valueWidth) * 100\n\t\t} else {\n\t\t\tlet width = ((Number(val) - Number(props.min)) / valueWidth) * 100\n\t\t\tendProgress.value = width\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nfunction getDecimalPlaces(num) {\n\t// 处理整数(无小数点)的情况\n\tif (Number.isInteger(num)) return 0\n\n\t// 将数字转为字符串并按小数点分割\n\tconst parts = num.toString().split('.')\n\n\t// 小数点后部分的长度即为小数位数(若没有小数点,返回0)\n\treturn parts.length > 1 ? parts[1].length : 0\n}\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.inputable) {\n\t\tarr.push(`is-inputable`)\n\t}\n\tif (props.disabled) {\n\t\tarr.push(`is-disabled`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.width) {\n\t\tobj.width = isNaN(Number(props.width)) ? props.width : `${props.width}em`\n\t}\n\treturn obj\n})\n\nfunction onButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonEndDragStart(event)\n\twindow.addEventListener('mousemove', onDragging)\n\twindow.addEventListener('touchmove', onDragging)\n\twindow.addEventListener('mouseup', onDragEnd)\n\twindow.addEventListener('touchend', onDragEnd)\n\twindow.addEventListener('contextmenu', onDragEnd)\n}\nfunction onStartButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonStartDragStart(event)\n\twindow.addEventListener('mousemove', onStartDragging)\n\twindow.addEventListener('touchmove', onStartDragging)\n\twindow.addEventListener('mouseup', onStartDragEnd)\n\twindow.addEventListener('touchend', onStartDragEnd)\n\twindow.addEventListener('contextmenu', onStartDragEnd)\n}\nfunction onStartDragStart(event: MouseEvent) {\n\tstartDragX.value = event.clientX\n\tstartLeft.value = Number(progressRef.value.style.left.split('%')[0])\n}\nfunction onEndDragStart(event: MouseEvent) {\n\tendDragX.value = event.clientX\n\tendProgressWidth.value = progressRef.value.offsetWidth\n}\nfunction onStartDragging(e: MouseEvent) {\n\tlet width = e.clientX - startDragX.value\n\tlet barWidth = barRef.value.offsetWidth\n\tif (width > 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per < endProgress.value) {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t} else if (width <= 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per <= 0) {\n\t\t\tstartProgress.value = 0\n\t\t} else {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t}\n}\nfunction onDragging(e: MouseEvent) {\n\tlet width = e.clientX - endDragX.value //变动值\n\tlet barWidth = barRef.value.offsetWidth //滚动区域总宽度\n\tlet startWidth = (startProgress.value / 100) * barWidth //开始按钮的位置\n\tif (props.start) {\n\t\tlet per = (width / barWidth) * 100 + ((endProgressWidth.value + startWidth) * 100) / barWidth\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth - startWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tif (Math.abs(width) > barWidth - startWidth) {\n\t\t\t\tendProgress.value = startProgress.value\n\t\t\t} else {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tlet per = (endProgressWidth.value / barWidth + width / barWidth) * 100\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tlet per = (width / barWidth) * 100 + (endProgressWidth.value / barWidth) * 100\n\t\t\tif (per >= 0) {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t} else if (per < 0) {\n\t\t\t\tendProgress.value = 0\n\t\t\t}\n\t\t}\n\t}\n}\nfunction onDragEnd() {\n\twindow.removeEventListener('mousemove', onDragging)\n\twindow.removeEventListener('touchmove', onDragging)\n\twindow.removeEventListener('mouseup', onDragEnd)\n\twindow.removeEventListener('touchend', onDragEnd)\n\twindow.removeEventListener('contextmenu', onDragEnd)\n}\nfunction onStartDragEnd() {\n\twindow.removeEventListener('mousemove', onStartDragging)\n\twindow.removeEventListener('touchmove', onStartDragging)\n\twindow.removeEventListener('mouseup', onStartDragEnd)\n\twindow.removeEventListener('touchend', onStartDragEnd)\n\twindow.removeEventListener('contextmenu', onStartDragEnd)\n}\nfunction endStartHandle(event) {\n\tconsole.log('endStartHandle', event)\n}\nfunction moveHandle(event) {\n\tconsole.log('moveHandle', event)\n}\nfunction endHandle(event) {\n\tconsole.log('moveHandle', event)\n}\n</script>\n"],"names":["DO_defineComponent","valueWidth","_createElementBlock","_normalizeClass","flex","_createElementVNode","_normalizeStyle","start","inputable","_createBlock","_unref","inputWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"range.vue2.mjs","sources":["../../../../../../packages/components/range/src/range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRange'\n});\n</script>\n<template>\n\t<span class=\"to-range\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\" @touchmove=\"moveHandle($event)\" @touchend=\"endHandle($event)\">\n\t\t<span ref=\"barRef\" class=\"to-range-bar\">\n\t\t\t<span ref=\"progressRef\" class=\"to-range-progress\" :style=\"{ width: endProgress - startProgress + '%', left: startProgress + '%' }\">\n\t\t\t\t<span v-if=\"start\" ref=\"startRef\" class=\"to-range-handle is-start\" @mousedown=\"onStartButtonDown\"></span>\n\t\t\t\t<span ref=\"endRef\" class=\"to-range-handle\" @mousedown=\"onButtonDown\" @touchstart=\"endStartHandle($event)\"></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<to-input v-if=\"inputable\" v-model=\"endProgress\" class=\"to-range-input\" :width=\"inputWidth\" :dot=\"fixed\"></to-input>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToInput } from '@touchvue/components'\n\n\nexport interface RangeProps {\n\tflex?: boolean\n\tmode?: string\n\tmodelValue?: string | number\n\tdisabled?: boolean\n\tinputable?: boolean\n\tmax?: string | number\n\tmin?: string | number\n\truler?: boolean\n\tstart?: boolean\n\tstep?: string | number\n\twidth?: string | number\n\tinputWidth?: string | number\n\ttoFixed?: string | number\n}\nconst props = withDefaults(defineProps<RangeProps>(), {\n\tmode: 'default',\n\tmodelValue: 0,\n\tdisabled: false,\n\tinputable: false,\n\tmax: 100,\n\tmin: 0,\n\tflex: false,\n\truler: false,\n\tstart: false,\n\tstep: 1,\n\twidth: '',\n\tinputWidth: 6,\n\ttoFixed: 0\n})\n\nconst endProgress = ref(0)\nconst startProgress = ref(0)\nconst progressRef = ref(null)\nconst endRef = ref(null)\nconst startRef = ref(null)\nconst barRef = ref(null)\nconst endDragX = ref(0)\nconst startDragX = ref(0)\nconst endProgressWidth = ref(0)\nconst startLeft = ref(0)\nconst fixed = ref(0)\nconst valueWidth = ref(0)\nconst stepProgress = ref(0)\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nonMounted(() => {\n\tvalueWidth.value = Number(props.max) - Number(props.min)\n\tif (props.step) {\n\t\tstepProgress.value = Number(((1 / (valueWidth.value / Number(props.step))) * 100).toFixed(2))\n\t}\n\tfixed.value = Number(props.toFixed) ? Number(props.toFixed) : getDecimalPlaces(props.min)\n})\nwatch(\n\t() => endProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (startProgress.value / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => startProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (endProgress.value / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\tif (props.start && typeof val === 'string') {\n\t\t\tlet arr = val.split(',')\n\t\t\tendProgress.value = ((Number(arr[1]) - Number(props.min)) / valueWidth) * 100\n\t\t\tstartProgress.value = ((Number(arr[0]) - Number(props.min)) / valueWidth) * 100\n\t\t} else {\n\t\t\tlet width = ((Number(val) - Number(props.min)) / valueWidth) * 100\n\t\t\tendProgress.value = width\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nfunction getDecimalPlaces(num) {\n\t// 处理整数(无小数点)的情况\n\tif (Number.isInteger(num)) return 0\n\n\t// 将数字转为字符串并按小数点分割\n\tconst parts = num.toString().split('.')\n\n\t// 小数点后部分的长度即为小数位数(若没有小数点,返回0)\n\treturn parts.length > 1 ? parts[1].length : 0\n}\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.inputable) {\n\t\tarr.push(`is-inputable`)\n\t}\n\tif (props.disabled) {\n\t\tarr.push(`is-disabled`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.width) {\n\t\tobj.width = isNaN(Number(props.width)) ? props.width : `${props.width}em`\n\t}\n\treturn obj\n})\n\nfunction onButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonEndDragStart(event)\n\twindow.addEventListener('mousemove', onDragging)\n\twindow.addEventListener('touchmove', onDragging)\n\twindow.addEventListener('mouseup', onDragEnd)\n\twindow.addEventListener('touchend', onDragEnd)\n\twindow.addEventListener('contextmenu', onDragEnd)\n}\nfunction onStartButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonStartDragStart(event)\n\twindow.addEventListener('mousemove', onStartDragging)\n\twindow.addEventListener('touchmove', onStartDragging)\n\twindow.addEventListener('mouseup', onStartDragEnd)\n\twindow.addEventListener('touchend', onStartDragEnd)\n\twindow.addEventListener('contextmenu', onStartDragEnd)\n}\nfunction onStartDragStart(event: MouseEvent) {\n\tstartDragX.value = event.clientX\n\tstartLeft.value = Number(progressRef.value.style.left.split('%')[0])\n}\nfunction onEndDragStart(event: MouseEvent) {\n\tendDragX.value = event.clientX\n\tendProgressWidth.value = progressRef.value.offsetWidth\n}\nfunction onStartDragging(e: MouseEvent) {\n\tlet width = e.clientX - startDragX.value\n\tlet barWidth = barRef.value.offsetWidth\n\tif (width > 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per < endProgress.value) {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t} else if (width <= 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per <= 0) {\n\t\t\tstartProgress.value = 0\n\t\t} else {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t}\n}\nfunction onDragging(e: MouseEvent) {\n\tlet width = e.clientX - endDragX.value //变动值\n\tlet barWidth = barRef.value.offsetWidth //滚动区域总宽度\n\tlet startWidth = (startProgress.value / 100) * barWidth //开始按钮的位置\n\tif (props.start) {\n\t\tlet per = (width / barWidth) * 100 + ((endProgressWidth.value + startWidth) * 100) / barWidth\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth - startWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tif (Math.abs(width) > barWidth - startWidth) {\n\t\t\t\tendProgress.value = startProgress.value\n\t\t\t} else {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tlet per = (endProgressWidth.value / barWidth + width / barWidth) * 100\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tlet per = (width / barWidth) * 100 + (endProgressWidth.value / barWidth) * 100\n\t\t\tif (per >= 0) {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t} else if (per < 0) {\n\t\t\t\tendProgress.value = 0\n\t\t\t}\n\t\t}\n\t}\n}\nfunction onDragEnd() {\n\twindow.removeEventListener('mousemove', onDragging)\n\twindow.removeEventListener('touchmove', onDragging)\n\twindow.removeEventListener('mouseup', onDragEnd)\n\twindow.removeEventListener('touchend', onDragEnd)\n\twindow.removeEventListener('contextmenu', onDragEnd)\n}\nfunction onStartDragEnd() {\n\twindow.removeEventListener('mousemove', onStartDragging)\n\twindow.removeEventListener('touchmove', onStartDragging)\n\twindow.removeEventListener('mouseup', onStartDragEnd)\n\twindow.removeEventListener('touchend', onStartDragEnd)\n\twindow.removeEventListener('contextmenu', onStartDragEnd)\n}\nfunction endStartHandle(event) {\n\tconsole.log('endStartHandle', event)\n}\nfunction moveHandle(event) {\n\tconsole.log('moveHandle', event)\n}\nfunction endHandle(event) {\n\tconsole.log('moveHandle', event)\n}\n</script>\n"],"names":["DO_defineComponent","valueWidth","_createElementBlock","_normalizeClass","flex","_createElementVNode","_normalizeStyle","start","inputable","_createBlock","_unref","inputWidth"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, createVNode,
|
|
1
|
+
import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, Fragment, renderList, createVNode, toDisplayString, createCommentVNode } from 'vue';
|
|
2
2
|
import { ToIcon } from '../../icon/index.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToRate"
|
|
@@ -50,7 +51,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
50
51
|
},
|
|
51
52
|
mode: {
|
|
52
53
|
type: String,
|
|
53
|
-
default: ""
|
|
54
|
+
default: "default"
|
|
54
55
|
}
|
|
55
56
|
},
|
|
56
57
|
emits: ["update:modelValue", "change"],
|
|
@@ -160,7 +161,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
160
161
|
{
|
|
161
162
|
class: normalizeClass(["to-rate", [
|
|
162
163
|
`color-${__props.color}`,
|
|
163
|
-
|
|
164
|
+
...unref(getModeClasses)(__props.mode),
|
|
164
165
|
{
|
|
165
166
|
"is-half": isHalf.value,
|
|
166
167
|
"is-disabled": __props.disabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate.vue2.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRate'\n});\n</script>\n<template>\n\t<div\n\t\tclass=\"to-rate\"\n\t\t:class=\"[\n\t\t\t`color-${color}`,\n\t\t\t`mode-${mode}`,\n\t\t\t{\n\t\t\t\t'is-half': isHalf,\n\t\t\t\t'is-disabled': disabled\n\t\t\t}\n\t\t]\"\n\t\t@mouseleave=\"handleMouseLeave\"\n\t>\n\t\t<div class=\"to-rate-group\">\n\t\t\t<div v-for=\"i in normalizedCount\" :key=\"i\" class=\"to-rate-item\" :class=\"getItemClass(i)\" @click=\"handleClick(i, $event)\" @mousemove=\"handleMouseMove(i, $event)\" @mouseenter=\"handleMouseEnter(i)\">\n\t\t\t\t<to-icon class=\"to-rate-icon is-off\" type=\"fill\" :value=\"icon\" />\n\t\t\t\t<to-icon class=\"to-rate-icon is-on\" type=\"fill\" :value=\"icon\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">\n\t\t\t<span class=\"to-rate-score-text\">{{ displayValue }}</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ToIcon } from '../../icon'\n\n\n\nconst props = defineProps({\n\tmodelValue: {\n\t\ttype: Number,\n\t\tdefault: 0\n\t},\n\tmax: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tcount: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\tdisabled: Boolean,\n\tstep: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tdot: {\n\t\ttype: [Number, String],\n\t\tdefault: 'auto'\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'primary'\n\t},\n\tshowScore: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\ticon: {\n\t\ttype: String,\n\t\tdefault: 'star'\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(0)\nconst hoverValue = ref(0)\n\nconst normalizedCount = computed(() => Math.max(1, Math.floor(Number(props.count) || 1)))\nconst normalizedMax = computed(() => Math.max(0, Number(props.max) || 0))\nconst scoreUnit = computed(() => normalizedMax.value / normalizedCount.value)\nconst normalizedStep = computed(() => (Number(props.step) === 0.5 ? 0.5 : 1))\nconst isHalf = computed(() => normalizedStep.value === 0.5)\nconst normalizedDot = computed(() => {\n\tif (props.dot === 'auto') return isHalf.value ? 1 : 0\n\tconst dot = Number(props.dot)\n\tif (!Number.isFinite(dot)) return 0\n\treturn Math.max(0, Math.floor(dot))\n})\n\nconst activeValue = computed(() => {\n\tif (!props.disabled && hoverValue.value > 0) {\n\t\treturn hoverValue.value\n\t}\n\treturn ivalue.value\n})\n\nconst activeRateValue = computed(() => {\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = activeValue.value / scoreUnit.value\n\treturn Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n})\n\nconst displayValue = computed(() => activeValue.value.toFixed(normalizedDot.value))\n\nwatch(\n\t() => [props.modelValue, props.max, props.count, props.step, props.dot] as const,\n\t() => {\n\t\tivalue.value = normalizeModelValue(props.modelValue)\n\t},\n\t{ immediate: true }\n)\n\nfunction normalizeModelValue(value: number) {\n\tconst num = Number(value)\n\tif (!Number.isFinite(num)) return 0\n\treturn formatValue(Math.min(Math.max(num, 0), normalizedMax.value))\n}\n\nfunction normalizeStepValue(value: number) {\n\tconst limited = normalizeModelValue(value)\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = limited / scoreUnit.value\n\tconst steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n\treturn formatValue(steppedValue * scoreUnit.value)\n}\n\nfunction formatValue(value: number) {\n\treturn Number(value.toFixed(normalizedDot.value))\n}\n\nfunction getItemClass(i: number) {\n\tconst value = activeRateValue.value\n\treturn {\n\t\t'is-on': i <= value,\n\t\t'is-half-on': isHalf.value && Math.abs(i - 0.5 - value) < 0.0000001,\n\t\t'is-hover': !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)\n\t}\n}\n\nfunction getValueByEvent(i: number, event: MouseEvent) {\n\tif (!isHalf.value) return i * scoreUnit.value\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\treturn (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value\n}\n\nfunction updateValue(value: number) {\n\tconst normalizedValue = normalizeStepValue(value)\n\tivalue.value = normalizedValue\n\temit('update:modelValue', normalizedValue)\n\temit('change', normalizedValue)\n}\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\tlet value = getValueByEvent(i, event)\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tupdateValue(value)\n}\n\nfunction handleMouseMove(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\thoverValue.value = getValueByEvent(i, event)\n}\n\nfunction handleMouseEnter(i: number) {\n\tif (props.disabled || isHalf.value) return\n\thoverValue.value = i * scoreUnit.value\n}\n\nfunction handleMouseLeave() {\n\tif (!props.disabled) {\n\t\thoverValue.value = 0\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createVNode","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rate.vue2.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRate'\n});\n</script>\n<template>\n\t<div\n\t\tclass=\"to-rate\"\n\t\t:class=\"[\n\t\t\t`color-${color}`,\n\t\t\t...getModeClasses(mode),\n\t\t\t{\n\t\t\t\t'is-half': isHalf,\n\t\t\t\t'is-disabled': disabled\n\t\t\t}\n\t\t]\"\n\t\t@mouseleave=\"handleMouseLeave\"\n\t>\n\t\t<div class=\"to-rate-group\">\n\t\t\t<div v-for=\"i in normalizedCount\" :key=\"i\" class=\"to-rate-item\" :class=\"getItemClass(i)\" @click=\"handleClick(i, $event)\" @mousemove=\"handleMouseMove(i, $event)\" @mouseenter=\"handleMouseEnter(i)\">\n\t\t\t\t<to-icon class=\"to-rate-icon is-off\" type=\"fill\" :value=\"icon\" />\n\t\t\t\t<to-icon class=\"to-rate-icon is-on\" type=\"fill\" :value=\"icon\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">\n\t\t\t<span class=\"to-rate-score-text\">{{ displayValue }}</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ToIcon } from '../../icon'\nimport { getModeClasses } from '@touchvue/hooks'\n\n\n\nconst props = defineProps({\n\tmodelValue: {\n\t\ttype: Number,\n\t\tdefault: 0\n\t},\n\tmax: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tcount: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\tdisabled: Boolean,\n\tstep: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tdot: {\n\t\ttype: [Number, String],\n\t\tdefault: 'auto'\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'primary'\n\t},\n\tshowScore: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\ticon: {\n\t\ttype: String,\n\t\tdefault: 'star'\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(0)\nconst hoverValue = ref(0)\n\nconst normalizedCount = computed(() => Math.max(1, Math.floor(Number(props.count) || 1)))\nconst normalizedMax = computed(() => Math.max(0, Number(props.max) || 0))\nconst scoreUnit = computed(() => normalizedMax.value / normalizedCount.value)\nconst normalizedStep = computed(() => (Number(props.step) === 0.5 ? 0.5 : 1))\nconst isHalf = computed(() => normalizedStep.value === 0.5)\nconst normalizedDot = computed(() => {\n\tif (props.dot === 'auto') return isHalf.value ? 1 : 0\n\tconst dot = Number(props.dot)\n\tif (!Number.isFinite(dot)) return 0\n\treturn Math.max(0, Math.floor(dot))\n})\n\nconst activeValue = computed(() => {\n\tif (!props.disabled && hoverValue.value > 0) {\n\t\treturn hoverValue.value\n\t}\n\treturn ivalue.value\n})\n\nconst activeRateValue = computed(() => {\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = activeValue.value / scoreUnit.value\n\treturn Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n})\n\nconst displayValue = computed(() => activeValue.value.toFixed(normalizedDot.value))\n\nwatch(\n\t() => [props.modelValue, props.max, props.count, props.step, props.dot] as const,\n\t() => {\n\t\tivalue.value = normalizeModelValue(props.modelValue)\n\t},\n\t{ immediate: true }\n)\n\nfunction normalizeModelValue(value: number) {\n\tconst num = Number(value)\n\tif (!Number.isFinite(num)) return 0\n\treturn formatValue(Math.min(Math.max(num, 0), normalizedMax.value))\n}\n\nfunction normalizeStepValue(value: number) {\n\tconst limited = normalizeModelValue(value)\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = limited / scoreUnit.value\n\tconst steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n\treturn formatValue(steppedValue * scoreUnit.value)\n}\n\nfunction formatValue(value: number) {\n\treturn Number(value.toFixed(normalizedDot.value))\n}\n\nfunction getItemClass(i: number) {\n\tconst value = activeRateValue.value\n\treturn {\n\t\t'is-on': i <= value,\n\t\t'is-half-on': isHalf.value && Math.abs(i - 0.5 - value) < 0.0000001,\n\t\t'is-hover': !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)\n\t}\n}\n\nfunction getValueByEvent(i: number, event: MouseEvent) {\n\tif (!isHalf.value) return i * scoreUnit.value\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\treturn (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value\n}\n\nfunction updateValue(value: number) {\n\tconst normalizedValue = normalizeStepValue(value)\n\tivalue.value = normalizedValue\n\temit('update:modelValue', normalizedValue)\n\temit('change', normalizedValue)\n}\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\tlet value = getValueByEvent(i, event)\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tupdateValue(value)\n}\n\nfunction handleMouseMove(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\thoverValue.value = getValueByEvent(i, event)\n}\n\nfunction handleMouseEnter(i: number) {\n\tif (props.disabled || isHalf.value) return\n\thoverValue.value = i * scoreUnit.value\n}\n\nfunction handleMouseLeave() {\n\tif (!props.disabled) {\n\t\thoverValue.value = 0\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createVNode"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, provide, nextTick, watch, onMounted, onUnmounted, openBlock, createElementBlock, normalizeClass, normalizeStyle, createCommentVNode, createElementVNode, renderSlot } from 'vue';
|
|
2
2
|
import { scrollProps } from './scroll.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToScroll"
|
|
@@ -262,7 +263,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
262
263
|
const setClass = computed(() => {
|
|
263
264
|
let arr = [];
|
|
264
265
|
if (props.mode) {
|
|
265
|
-
arr.push(
|
|
266
|
+
arr.push(...getModeClasses(props.mode));
|
|
266
267
|
}
|
|
267
268
|
if (props.type) {
|
|
268
269
|
arr.push(`type-${props.type}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n})\n\nonUnmounted(() => {\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n})\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\tif (props.hide) {\n\t\tarr.push('is-hide')\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n})\n\nonUnmounted(() => {\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n})\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\tif (props.hide) {\n\t\tarr.push('is-hide')\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollProps = {\n\tflex: Boolean,\n\t/**\n\t * 顶部间距\n\t */\n\ttop: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 双向绑定的滚动位置,支持v-model\n\t */\n\tmodelValue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 兼容旧版本,等同于modelValue\n\t * @deprecated 推荐使用modelValue\n\t */\n\tvalue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 内边距\n\t */\n\tpadding: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 内边距位置\n\t */\n\tpaddingPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 底部间距\n\t */\n\tbottom: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 高度\n\t */\n\theight: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 排除项\n\t */\n\texcept: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 背景颜色\n\t */\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 滚动模式\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否隐藏\n\t */\n\thide: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n}\n\nexport type ScrollProps = ExtractPropTypes<typeof scrollProps>\n\nexport interface ScrollInstance {\n\t/**\n\t * 滚动到指定位置\n\t */\n\tscrollTo: (options: ScrollToOptions | number, yCoord?: number) => void\n\t/**\n\t * 滚动到指定元素\n\t */\n\tscrollToElement: (element: HTMLElement | null, offset?: number) => void\n\t/**\n\t * 按步长滚动\n\t */\n\tscrollStep: (direction: 'up' | 'down' | 'left' | 'right') => void\n\t/**\n\t * 滚动容器元素\n\t */\n\tscrollRef: HTMLElement | null\n\t/**\n\t * 是否正在滚动\n\t */\n\tisScrolling: boolean\n\t/**\n\t * 滚动到指定目标\n\t */\n\tto: (target: HTMLElement | string | number | any) => void\n}\n\n/**\n * Scroll组件提供给子组件的上下文接口\n */\nexport interface ScrollContext {\n\t/**\n\t * 注册滚动点\n\t */\n\tregisterScrollPoint: (el: HTMLElement, value: string | number) => void\n}\n"],"names":[],"mappings":"AAEO,MAAM,WAAc,GAAA;AAAA,EAC1B,IAAM,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,GAAK,EAAA;AAAA,IACJ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,eAAiB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,
|
|
1
|
+
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollProps = {\n\tflex: Boolean,\n\t/**\n\t * 顶部间距\n\t */\n\ttop: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 双向绑定的滚动位置,支持v-model\n\t */\n\tmodelValue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 兼容旧版本,等同于modelValue\n\t * @deprecated 推荐使用modelValue\n\t */\n\tvalue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 内边距\n\t */\n\tpadding: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 内边距位置\n\t */\n\tpaddingPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 底部间距\n\t */\n\tbottom: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 高度\n\t */\n\theight: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 排除项\n\t */\n\texcept: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 背景颜色\n\t */\n\tmode: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\t/**\n\t * 滚动模式\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否隐藏\n\t */\n\thide: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n}\n\nexport type ScrollProps = ExtractPropTypes<typeof scrollProps>\n\nexport interface ScrollInstance {\n\t/**\n\t * 滚动到指定位置\n\t */\n\tscrollTo: (options: ScrollToOptions | number, yCoord?: number) => void\n\t/**\n\t * 滚动到指定元素\n\t */\n\tscrollToElement: (element: HTMLElement | null, offset?: number) => void\n\t/**\n\t * 按步长滚动\n\t */\n\tscrollStep: (direction: 'up' | 'down' | 'left' | 'right') => void\n\t/**\n\t * 滚动容器元素\n\t */\n\tscrollRef: HTMLElement | null\n\t/**\n\t * 是否正在滚动\n\t */\n\tisScrolling: boolean\n\t/**\n\t * 滚动到指定目标\n\t */\n\tto: (target: HTMLElement | string | number | any) => void\n}\n\n/**\n * Scroll组件提供给子组件的上下文接口\n */\nexport interface ScrollContext {\n\t/**\n\t * 注册滚动点\n\t */\n\tregisterScrollPoint: (el: HTMLElement, value: string | number) => void\n}\n"],"names":[],"mappings":"AAEO,MAAM,WAAc,GAAA;AAAA,EAC1B,IAAM,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,GAAK,EAAA;AAAA,IACJ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,eAAiB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AACD;;;;"}
|