@opentiny/vue-docs 3.26.7 → 3.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demos/apis/base-select.js +13 -0
- package/demos/apis/calendar-view.js +12 -0
- package/demos/apis/color-picker.js +16 -0
- package/demos/apis/color-select-panel.js +14 -0
- package/demos/apis/config-provider.js +2 -1
- package/demos/apis/date-picker.js +52 -0
- package/demos/apis/dialog-box.js +16 -4
- package/demos/apis/drawer.js +22 -0
- package/demos/apis/exception.js +43 -27
- package/demos/apis/grid.js +38 -3
- package/demos/apis/guide.js +14 -0
- package/demos/apis/pager.js +3 -3
- package/demos/apis/query-builder.js +346 -1
- package/demos/apis/select.js +41 -0
- package/demos/apis/space.js +99 -0
- package/demos/apis/steps.js +15 -0
- package/demos/apis/time-picker.js +28 -0
- package/demos/apis/time-select.js +30 -0
- package/demos/apis/tree-menu.js +14 -0
- package/demos/mobile-first/app/calendar-view/basic-usage.vue +1 -1
- package/demos/mobile-first/app/exception/webdoc/exception.js +4 -4
- package/demos/mobile-first/app/load-list/webdoc/load-list.en.md +1 -1
- package/demos/mobile-first/app/space/basic-usage-composition-api.vue +41 -0
- package/demos/mobile-first/app/space/basic-usage.spec.ts +37 -0
- package/demos/mobile-first/app/space/basic-usage.vue +37 -0
- package/demos/mobile-first/app/space/space-align-composition-api.vue +37 -0
- package/demos/mobile-first/app/space/space-align.spec.ts +24 -0
- package/demos/mobile-first/app/space/space-align.vue +37 -0
- package/demos/mobile-first/app/space/space-direction-composition-api.vue +32 -0
- package/demos/mobile-first/app/space/space-direction.spec.ts +17 -0
- package/demos/mobile-first/app/space/space-direction.vue +32 -0
- package/demos/mobile-first/app/space/space-justify-composition-api.vue +44 -0
- package/demos/mobile-first/app/space/space-justify.spec.ts +18 -0
- package/demos/mobile-first/app/space/space-justify.vue +39 -0
- package/demos/mobile-first/app/space/space-order-composition-api.vue +14 -0
- package/demos/mobile-first/app/space/space-order.spec.ts +13 -0
- package/demos/mobile-first/app/space/space-order.vue +14 -0
- package/demos/mobile-first/app/space/space-size-composition-api.vue +39 -0
- package/demos/mobile-first/app/space/space-size.spec.ts +37 -0
- package/demos/mobile-first/app/space/space-size.vue +39 -0
- package/demos/mobile-first/app/space/space-wrap-composition-api.vue +31 -0
- package/demos/mobile-first/app/space/space-wrap.spec.ts +25 -0
- package/demos/mobile-first/app/space/space-wrap.vue +31 -0
- package/demos/mobile-first/app/space/webdoc/space.cn.md +9 -0
- package/demos/mobile-first/app/space/webdoc/space.en.md +9 -0
- package/demos/mobile-first/app/space/webdoc/space.js +98 -0
- package/demos/mobile-first/menus.js +3 -1
- package/demos/pc/app/calendar-view/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/calendar-view/basic-usage.vue +1 -1
- package/demos/pc/app/carousel/webdoc/carousel.js +2 -1
- package/demos/pc/app/color-picker/linear-gradient-composition-api.vue +20 -0
- package/demos/pc/app/color-picker/linear-gradient.spec.ts +10 -0
- package/demos/pc/app/color-picker/linear-gradient.vue +28 -0
- package/demos/pc/app/color-picker/webdoc/color-picker.js +27 -0
- package/demos/pc/app/color-select-panel/linear-gradient-composition-api.vue +38 -0
- package/demos/pc/app/color-select-panel/linear-gradient.spec.ts +71 -0
- package/demos/pc/app/color-select-panel/linear-gradient.vue +45 -0
- package/demos/pc/app/color-select-panel/webdoc/color-select-panel.js +12 -0
- package/demos/pc/app/config-provider/webdoc/config-provider.js +2 -1
- package/demos/pc/app/date-panel/basic-usage.vue +19 -8
- package/demos/pc/app/date-panel/custom-weeks.vue +19 -9
- package/demos/pc/app/date-panel/disabled-date.vue +29 -19
- package/demos/pc/app/date-panel/event.vue +38 -31
- package/demos/pc/app/date-panel/format.vue +15 -5
- package/demos/pc/app/date-panel/readonly.vue +19 -8
- package/demos/pc/app/date-panel/shortcuts.vue +182 -176
- package/demos/pc/app/date-panel/unlink-panels.vue +15 -5
- package/demos/pc/app/date-picker/now-composition-api.vue +4 -1
- package/demos/pc/app/date-picker/now.vue +6 -2
- package/demos/pc/app/date-picker/slot-composition-api.vue +112 -0
- package/demos/pc/app/date-picker/slot.spec.ts +41 -0
- package/demos/pc/app/date-picker/slot.vue +119 -0
- package/demos/pc/app/date-picker/webdoc/date-picker.js +12 -0
- package/demos/pc/app/dialog-box/before-close-composition-api.vue +65 -0
- package/demos/pc/app/dialog-box/before-close.spec.ts +6 -0
- package/demos/pc/app/dialog-box/before-close.vue +71 -0
- package/demos/pc/app/dialog-box/webdoc/dialog-box.js +16 -0
- package/demos/pc/app/dialog-select/nest-tree-single.spec.ts +4 -7
- package/demos/pc/app/drawer/webdoc/drawer.js +2 -1
- package/demos/pc/app/exception/basic-usage-composition-api.vue +15 -0
- package/demos/pc/app/exception/basic-usage.vue +21 -0
- package/demos/pc/app/exception/button-text-composition-api.vue +13 -0
- package/demos/pc/app/exception/button-text.vue +21 -0
- package/demos/pc/app/exception/component-page-composition-api.vue +44 -0
- package/demos/pc/app/exception/component-page.vue +55 -0
- package/demos/pc/app/exception/page-empty-composition-api.vue +7 -0
- package/demos/pc/app/exception/page-empty.vue +13 -0
- package/demos/pc/app/exception/slot-composition-api.vue +29 -0
- package/demos/pc/app/exception/slot.vue +23 -0
- package/demos/pc/app/exception/sub-message-composition-api.vue +7 -0
- package/demos/pc/app/exception/sub-message.vue +13 -0
- package/demos/pc/app/exception/webdoc/exception.cn.md +5 -0
- package/demos/pc/app/exception/webdoc/exception.en.md +5 -0
- package/demos/pc/app/exception/webdoc/exception.js +84 -0
- package/demos/pc/app/grid/custom/default-customs-composition-api.vue +66 -0
- package/demos/pc/app/grid/custom/default-customs.spec.ts +9 -0
- package/demos/pc/app/grid/custom/default-customs.vue +75 -0
- package/demos/pc/app/grid/mouse-keyboard/mouse-config-hover-composition-api.vue +70 -0
- package/demos/pc/app/grid/mouse-keyboard/mouse-config-hover.vue +79 -0
- package/demos/pc/app/grid/validation/highlight-error-composition-api.vue +183 -0
- package/demos/pc/app/grid/validation/highlight-error.vue +192 -0
- package/demos/pc/app/grid/webdoc/grid-custom.js +11 -0
- package/demos/pc/app/grid/webdoc/grid-editor.js +2 -2
- package/demos/pc/app/grid/webdoc/grid-mouse-keyboard.js +9 -0
- package/demos/pc/app/grid/webdoc/grid-validation.js +9 -0
- package/demos/pc/app/guide/mask-composition-api.vue +31 -0
- package/demos/pc/app/guide/mask.spec.ts +13 -0
- package/demos/pc/app/guide/mask.vue +41 -0
- package/demos/pc/app/guide/webdoc/guide.js +12 -0
- package/demos/pc/app/input/resize.spec.ts +1 -1
- package/demos/pc/app/notify/manual-close-composition-api.vue +9 -11
- package/demos/pc/app/notify/manual-close.spec.ts +1 -1
- package/demos/pc/app/notify/manual-close.vue +9 -11
- package/demos/pc/app/notify/verticalOffset.spec.ts +3 -1
- package/demos/pc/app/query-builder/handle.vue +558 -0
- package/demos/pc/app/query-builder/limit.vue +555 -0
- package/demos/pc/app/query-builder/webdoc/query-builder.js +29 -1
- package/demos/pc/app/radio/dynamic-disable.vue +1 -1
- package/demos/pc/app/space/basic-usage-composition-api.vue +41 -0
- package/demos/pc/app/space/basic-usage.spec.ts +37 -0
- package/demos/pc/app/space/basic-usage.vue +37 -0
- package/demos/pc/app/space/space-align-composition-api.vue +37 -0
- package/demos/pc/app/space/space-align.spec.ts +24 -0
- package/demos/pc/app/space/space-align.vue +37 -0
- package/demos/pc/app/space/space-direction-composition-api.vue +32 -0
- package/demos/pc/app/space/space-direction.spec.ts +17 -0
- package/demos/pc/app/space/space-direction.vue +32 -0
- package/demos/pc/app/space/space-justify-composition-api.vue +44 -0
- package/demos/pc/app/space/space-justify.spec.ts +18 -0
- package/demos/pc/app/space/space-justify.vue +39 -0
- package/demos/pc/app/space/space-order-composition-api.vue +14 -0
- package/demos/pc/app/space/space-order.spec.ts +13 -0
- package/demos/pc/app/space/space-order.vue +14 -0
- package/demos/pc/app/space/space-size-composition-api.vue +39 -0
- package/demos/pc/app/space/space-size.spec.ts +37 -0
- package/demos/pc/app/space/space-size.vue +39 -0
- package/demos/pc/app/space/space-wrap-composition-api.vue +31 -0
- package/demos/pc/app/space/space-wrap.spec.ts +25 -0
- package/demos/pc/app/space/space-wrap.vue +31 -0
- package/demos/pc/app/space/webdoc/space.cn.md +9 -0
- package/demos/pc/app/space/webdoc/space.en.md +9 -0
- package/demos/pc/app/space/webdoc/space.js +98 -0
- package/demos/pc/app/steps/slot-icon-composition-api.vue +46 -0
- package/demos/pc/app/steps/slot-icon.vue +54 -0
- package/demos/pc/app/steps/webdoc/steps.js +12 -0
- package/demos/pc/app/tree-menu/events-composition-api.vue +4 -0
- package/demos/pc/app/tree-menu/events.vue +4 -0
- package/demos/pc/app/tree-menu/webdoc/tree-menu.js +2 -2
- package/demos/pc/app/tree-menu/with-icon-composition-api.vue +149 -24
- package/demos/pc/app/tree-menu/with-icon.spec.ts +1 -1
- package/demos/pc/app/tree-menu/with-icon.vue +149 -24
- package/demos/pc/menus.js +16 -0
- package/demos/pc/webdoc/changelog.md +209 -177
- package/env/.env.saas +1 -1
- package/env/.env.saaspages +9 -0
- package/package.json +20 -19
- package/playground/App.vue +2 -2
- package/src/App.vue +2 -1
- package/src/components/anchor.vue +20 -74
- package/src/const.ts +2 -0
- package/src/main.js +2 -5
- package/src/menus.js +2 -1
- package/src/tools/docsearch.js +3 -2
- package/src/tools/useTemplateMode.js +2 -1
- package/src/tools/useTheme.js +2 -2
- package/src/views/components-doc/cmp-config.js +2 -1
- package/src/views/components-doc/common.vue +76 -12
- /package/demos/pc/app/user/{nodata-text-composition-api.vue → no-data-text-composition-api.vue} +0 -0
- /package/demos/pc/app/user/{nodata-text.vue → no-data-text.vue} +0 -0
|
@@ -9,13 +9,23 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
|
-
<script
|
|
13
|
-
import { ref } from 'vue'
|
|
12
|
+
<script>
|
|
14
13
|
import { TinyDatePanel, TinyDateRange, TinyMonthRange } from '@opentiny/vue'
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
export default {
|
|
16
|
+
components: {
|
|
17
|
+
TinyDatePanel,
|
|
18
|
+
TinyDateRange,
|
|
19
|
+
TinyMonthRange
|
|
20
|
+
},
|
|
21
|
+
data() {
|
|
22
|
+
return {
|
|
23
|
+
value: '2025/01/15',
|
|
24
|
+
value1: ['2025/01/15', '2025/02/15'],
|
|
25
|
+
value2: ['2024/03', '2025/02']
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
19
29
|
</script>
|
|
20
30
|
|
|
21
31
|
<style scoped lang="less">
|
|
@@ -15,16 +15,27 @@
|
|
|
15
15
|
</div>
|
|
16
16
|
</template>
|
|
17
17
|
|
|
18
|
-
<script
|
|
19
|
-
import { ref } from 'vue'
|
|
18
|
+
<script>
|
|
20
19
|
import { TinyDatePanel, TinyDateRange, TinyMonthRange, TinyYearRange } from '@opentiny/vue'
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
export default {
|
|
22
|
+
components: {
|
|
23
|
+
TinyDatePanel,
|
|
24
|
+
TinyDateRange,
|
|
25
|
+
TinyMonthRange,
|
|
26
|
+
TinyYearRange
|
|
27
|
+
},
|
|
28
|
+
data() {
|
|
29
|
+
return {
|
|
30
|
+
value: '2025-01-15',
|
|
31
|
+
month: '2025-01',
|
|
32
|
+
year: '2025',
|
|
33
|
+
value1: ['2025-01-15', '2025-02-15'],
|
|
34
|
+
value2: ['2024-03', '2025-02'],
|
|
35
|
+
value3: ['2024', '2028']
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
28
39
|
</script>
|
|
29
40
|
|
|
30
41
|
<style scoped lang="less">
|
|
@@ -15,187 +15,193 @@
|
|
|
15
15
|
</div>
|
|
16
16
|
</template>
|
|
17
17
|
|
|
18
|
-
<script
|
|
19
|
-
import { ref } from 'vue'
|
|
18
|
+
<script>
|
|
20
19
|
import { TinyDatePanel, TinyDateRange, TinyMonthRange, TinyYearRange } from '@opentiny/vue'
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const shortcuts = [
|
|
29
|
-
{
|
|
30
|
-
text: '今天',
|
|
31
|
-
onClick(picker) {
|
|
32
|
-
const date = new Date()
|
|
33
|
-
picker.$emit('pick', date)
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
text: '昨天',
|
|
38
|
-
onClick(picker) {
|
|
39
|
-
const date = new Date()
|
|
40
|
-
date.setTime(date.getTime() - 3600 * 1000 * 24)
|
|
41
|
-
picker.$emit('pick', date)
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
text: '一周前',
|
|
46
|
-
onClick(picker) {
|
|
47
|
-
const date = new Date()
|
|
48
|
-
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
|
|
49
|
-
picker.$emit('pick', date)
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
]
|
|
53
|
-
|
|
54
|
-
const shortcutsMonth = [
|
|
55
|
-
{
|
|
56
|
-
text: '一个月前',
|
|
57
|
-
onClick(picker) {
|
|
58
|
-
const date = new Date()
|
|
59
|
-
date.setMonth(date.getMonth() - 1)
|
|
60
|
-
picker.$emit('pick', date)
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
text: '三个月前',
|
|
65
|
-
onClick(picker) {
|
|
66
|
-
const date = new Date()
|
|
67
|
-
date.setMonth(date.getMonth() - 3)
|
|
68
|
-
picker.$emit('pick', date)
|
|
69
|
-
}
|
|
21
|
+
export default {
|
|
22
|
+
components: {
|
|
23
|
+
TinyDatePanel,
|
|
24
|
+
TinyDateRange,
|
|
25
|
+
TinyMonthRange,
|
|
26
|
+
TinyYearRange
|
|
70
27
|
},
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
28
|
+
data() {
|
|
29
|
+
return {
|
|
30
|
+
value: '2025-01-15',
|
|
31
|
+
month: '2025-01',
|
|
32
|
+
year: '2025',
|
|
33
|
+
value1: ['2025-01-15', '2025-02-15'],
|
|
34
|
+
value2: ['2024-03', '2025-02'],
|
|
35
|
+
value3: ['2024', '2028'],
|
|
36
|
+
shortcuts: [
|
|
37
|
+
{
|
|
38
|
+
text: '今天',
|
|
39
|
+
onClick(picker) {
|
|
40
|
+
const date = new Date()
|
|
41
|
+
picker.$emit('pick', date)
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
text: '昨天',
|
|
46
|
+
onClick(picker) {
|
|
47
|
+
const date = new Date()
|
|
48
|
+
date.setTime(date.getTime() - 3600 * 1000 * 24)
|
|
49
|
+
picker.$emit('pick', date)
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
text: '一周前',
|
|
54
|
+
onClick(picker) {
|
|
55
|
+
const date = new Date()
|
|
56
|
+
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
|
|
57
|
+
picker.$emit('pick', date)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
shortcutsMonth: [
|
|
62
|
+
{
|
|
63
|
+
text: '一个月前',
|
|
64
|
+
onClick(picker) {
|
|
65
|
+
const date = new Date()
|
|
66
|
+
date.setMonth(date.getMonth() - 1)
|
|
67
|
+
picker.$emit('pick', date)
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
text: '三个月前',
|
|
72
|
+
onClick(picker) {
|
|
73
|
+
const date = new Date()
|
|
74
|
+
date.setMonth(date.getMonth() - 3)
|
|
75
|
+
picker.$emit('pick', date)
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
text: '六个月前',
|
|
80
|
+
onClick(picker) {
|
|
81
|
+
const date = new Date()
|
|
82
|
+
date.setMonth(date.getMonth() - 6)
|
|
83
|
+
picker.$emit('pick', date)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
shortcutsYear: [
|
|
88
|
+
{
|
|
89
|
+
text: '一年前',
|
|
90
|
+
onClick(picker) {
|
|
91
|
+
const date = new Date()
|
|
92
|
+
date.setFullYear(date.getFullYear() - 1)
|
|
93
|
+
picker.$emit('pick', date)
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
text: '五年前',
|
|
98
|
+
onClick(picker) {
|
|
99
|
+
const date = new Date()
|
|
100
|
+
date.setFullYear(date.getFullYear() - 5)
|
|
101
|
+
picker.$emit('pick', date)
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
text: '十年前',
|
|
106
|
+
onClick(picker) {
|
|
107
|
+
const date = new Date()
|
|
108
|
+
date.setFullYear(date.getFullYear() - 10)
|
|
109
|
+
picker.$emit('pick', date)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
shortcuts1: [
|
|
114
|
+
{
|
|
115
|
+
text: '最近一周',
|
|
116
|
+
onClick(picker) {
|
|
117
|
+
const end = new Date()
|
|
118
|
+
const start = new Date()
|
|
119
|
+
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
120
|
+
picker.$emit('pick', [start, end])
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
text: '最近一个月',
|
|
125
|
+
onClick(picker) {
|
|
126
|
+
const end = new Date()
|
|
127
|
+
const start = new Date()
|
|
128
|
+
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
129
|
+
picker.$emit('pick', [start, end])
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
text: '最近三个月',
|
|
134
|
+
onClick(picker) {
|
|
135
|
+
const end = new Date()
|
|
136
|
+
const start = new Date()
|
|
137
|
+
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
138
|
+
picker.$emit('pick', [start, end])
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
shortcuts2: [
|
|
143
|
+
{
|
|
144
|
+
text: '本月',
|
|
145
|
+
onClick(picker) {
|
|
146
|
+
const date = new Date()
|
|
147
|
+
const tmp = new Date(date.getFullYear(), date.getMonth() + 1, 1, 0, 0, 0)
|
|
148
|
+
const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0)
|
|
149
|
+
const end = new Date(tmp.getTime() - 1)
|
|
150
|
+
picker.$emit('pick', [start, end])
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
text: '今年至今',
|
|
155
|
+
onClick(picker) {
|
|
156
|
+
const date = new Date()
|
|
157
|
+
const start = new Date(date.getFullYear(), 0)
|
|
158
|
+
const end = new Date()
|
|
159
|
+
picker.$emit('pick', [start, end])
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
text: '最近六个月',
|
|
164
|
+
onClick(picker) {
|
|
165
|
+
const end = new Date()
|
|
166
|
+
const start = new Date()
|
|
167
|
+
start.setMonth(start.getMonth() - 6)
|
|
168
|
+
picker.$emit('pick', [start, end])
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
shortcuts3: [
|
|
173
|
+
{
|
|
174
|
+
text: '本年',
|
|
175
|
+
onClick(picker) {
|
|
176
|
+
const date = new Date()
|
|
177
|
+
const tmp = new Date(date.getFullYear(), 0, 2)
|
|
178
|
+
const start = new Date(date.getFullYear(), 0, 2)
|
|
179
|
+
const end = new Date(tmp.getTime() - 1)
|
|
180
|
+
picker.$emit('pick', [start, end])
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
text: '近五年',
|
|
185
|
+
onClick(picker) {
|
|
186
|
+
const date = new Date()
|
|
187
|
+
const start = new Date(date.getFullYear() - 5, 0, 2)
|
|
188
|
+
const end = date
|
|
189
|
+
picker.$emit('pick', [start, end])
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
text: '近十年',
|
|
194
|
+
onClick(picker) {
|
|
195
|
+
const date = new Date()
|
|
196
|
+
const start = new Date(date.getFullYear() - 10, 0, 2)
|
|
197
|
+
const end = new Date()
|
|
198
|
+
picker.$emit('pick', [start, end])
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
]
|
|
77
202
|
}
|
|
78
203
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const shortcutsYear = [
|
|
82
|
-
{
|
|
83
|
-
text: '一年前',
|
|
84
|
-
onClick(picker) {
|
|
85
|
-
const date = new Date()
|
|
86
|
-
date.setFullYear(date.getFullYear() - 1)
|
|
87
|
-
picker.$emit('pick', date)
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
text: '五年前',
|
|
92
|
-
onClick(picker) {
|
|
93
|
-
const date = new Date()
|
|
94
|
-
date.setFullYear(date.getFullYear() - 5)
|
|
95
|
-
picker.$emit('pick', date)
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
text: '十年前',
|
|
100
|
-
onClick(picker) {
|
|
101
|
-
const date = new Date()
|
|
102
|
-
date.setFullYear(date.getFullYear() - 10)
|
|
103
|
-
picker.$emit('pick', date)
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
]
|
|
107
|
-
|
|
108
|
-
const shortcuts1 = [
|
|
109
|
-
{
|
|
110
|
-
text: '最近一周',
|
|
111
|
-
onClick(picker) {
|
|
112
|
-
const end = new Date()
|
|
113
|
-
const start = new Date()
|
|
114
|
-
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
115
|
-
picker.$emit('pick', [start, end])
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
text: '最近一个月',
|
|
120
|
-
onClick(picker) {
|
|
121
|
-
const end = new Date()
|
|
122
|
-
const start = new Date()
|
|
123
|
-
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
124
|
-
picker.$emit('pick', [start, end])
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
text: '最近三个月',
|
|
129
|
-
onClick(picker) {
|
|
130
|
-
const end = new Date()
|
|
131
|
-
const start = new Date()
|
|
132
|
-
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
133
|
-
picker.$emit('pick', [start, end])
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
]
|
|
137
|
-
|
|
138
|
-
const shortcuts2 = [
|
|
139
|
-
{
|
|
140
|
-
text: '本月',
|
|
141
|
-
onClick(picker) {
|
|
142
|
-
const date = new Date()
|
|
143
|
-
const tmp = new Date(date.getFullYear(), date.getMonth() + 1, 1, 0, 0, 0)
|
|
144
|
-
const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0)
|
|
145
|
-
const end = new Date(tmp.getTime() - 1)
|
|
146
|
-
picker.$emit('pick', [start, end])
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
text: '今年至今',
|
|
151
|
-
onClick(picker) {
|
|
152
|
-
const date = new Date()
|
|
153
|
-
const start = new Date(date.getFullYear(), 0)
|
|
154
|
-
const end = new Date()
|
|
155
|
-
picker.$emit('pick', [start, end])
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
text: '最近六个月',
|
|
160
|
-
onClick(picker) {
|
|
161
|
-
const end = new Date()
|
|
162
|
-
const start = new Date()
|
|
163
|
-
start.setMonth(start.getMonth() - 6)
|
|
164
|
-
picker.$emit('pick', [start, end])
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
]
|
|
168
|
-
|
|
169
|
-
const shortcuts3 = [
|
|
170
|
-
{
|
|
171
|
-
text: '本年',
|
|
172
|
-
onClick(picker) {
|
|
173
|
-
const date = new Date()
|
|
174
|
-
const tmp = new Date(date.getFullYear(), 0, 2)
|
|
175
|
-
const start = new Date(date.getFullYear(), 0, 2)
|
|
176
|
-
const end = new Date(tmp.getTime() - 1)
|
|
177
|
-
picker.$emit('pick', [start, end])
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
text: '近五年',
|
|
182
|
-
onClick(picker) {
|
|
183
|
-
const date = new Date()
|
|
184
|
-
const start = new Date(date.getFullYear() - 5, 0, 2)
|
|
185
|
-
const end = date
|
|
186
|
-
picker.$emit('pick', [start, end])
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
text: '近十年',
|
|
191
|
-
onClick(picker) {
|
|
192
|
-
const date = new Date()
|
|
193
|
-
const start = new Date(date.getFullYear() - 10, 0, 2)
|
|
194
|
-
const end = new Date()
|
|
195
|
-
picker.$emit('pick', [start, end])
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
]
|
|
204
|
+
}
|
|
199
205
|
</script>
|
|
200
206
|
|
|
201
207
|
<style scoped lang="less">
|
|
@@ -18,13 +18,23 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
</template>
|
|
20
20
|
|
|
21
|
-
<script
|
|
22
|
-
import { ref } from 'vue'
|
|
21
|
+
<script>
|
|
23
22
|
import { TinyDateRange, TinyMonthRange, TinyYearRange } from '@opentiny/vue'
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
export default {
|
|
25
|
+
components: {
|
|
26
|
+
TinyDateRange,
|
|
27
|
+
TinyMonthRange,
|
|
28
|
+
TinyYearRange
|
|
29
|
+
},
|
|
30
|
+
data() {
|
|
31
|
+
return {
|
|
32
|
+
value: ['2025-01-15', '2025-02-15'],
|
|
33
|
+
value1: ['2024-03', '2025-02'],
|
|
34
|
+
value2: ['2024', '2028']
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
28
38
|
</script>
|
|
29
39
|
|
|
30
40
|
<style scoped lang="less">
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
<template #now>
|
|
7
7
|
<div class="nowclass" @click="now">此刻(服务器时间)</div>
|
|
8
8
|
</template>
|
|
9
|
+
<template #confirm="{ confirm }">
|
|
10
|
+
<tiny-button type="primary" @click="confirm">确定</tiny-button>
|
|
11
|
+
</template>
|
|
9
12
|
</tiny-date-picker>
|
|
10
13
|
</div>
|
|
11
14
|
|
|
@@ -18,7 +21,7 @@
|
|
|
18
21
|
|
|
19
22
|
<script setup>
|
|
20
23
|
import { ref } from 'vue'
|
|
21
|
-
import { TinyDatePicker } from '@opentiny/vue'
|
|
24
|
+
import { TinyDatePicker, TinyButton } from '@opentiny/vue'
|
|
22
25
|
|
|
23
26
|
const value1 = ref('2020-11-11 10:10:11')
|
|
24
27
|
const value2 = ref('2020-11-11 10:10:11')
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
<template #now>
|
|
7
7
|
<div class="nowclass" @click="now">此刻(服务器时间)</div>
|
|
8
8
|
</template>
|
|
9
|
+
<template #confirm="{ confirm }">
|
|
10
|
+
<tiny-button type="primary" @click="confirm">确定</tiny-button>
|
|
11
|
+
</template>
|
|
9
12
|
</tiny-date-picker>
|
|
10
13
|
</div>
|
|
11
14
|
|
|
@@ -17,11 +20,12 @@
|
|
|
17
20
|
</template>
|
|
18
21
|
|
|
19
22
|
<script>
|
|
20
|
-
import { TinyDatePicker } from '@opentiny/vue'
|
|
23
|
+
import { TinyDatePicker, TinyButton } from '@opentiny/vue'
|
|
21
24
|
|
|
22
25
|
export default {
|
|
23
26
|
components: {
|
|
24
|
-
TinyDatePicker
|
|
27
|
+
TinyDatePicker,
|
|
28
|
+
TinyButton
|
|
25
29
|
},
|
|
26
30
|
data() {
|
|
27
31
|
return {
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="demo-footer-slot">
|
|
3
|
+
<tiny-date-picker v-model="value" type="date" placeholder="请选择日期">
|
|
4
|
+
<template #footer="{ confirm }">
|
|
5
|
+
<div class="custom-footer end">
|
|
6
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
</tiny-date-picker>
|
|
10
|
+
<tiny-date-picker v-model="dateTimeValue" type="datetime" placeholder="请选择日期时间">
|
|
11
|
+
<template #footer="{ confirm, changeToNow }">
|
|
12
|
+
<div class="custom-footer">
|
|
13
|
+
<tiny-button type="default" @click="changeToNow">自定义此刻</tiny-button>
|
|
14
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
</tiny-date-picker>
|
|
18
|
+
<tiny-date-picker v-model="weekValue" type="week" placeholder="请选择周">
|
|
19
|
+
<template #footer="{ confirm }">
|
|
20
|
+
<div class="custom-footer end">
|
|
21
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
</tiny-date-picker>
|
|
25
|
+
<tiny-date-picker v-model="monthValue" type="month" placeholder="请选择月份">
|
|
26
|
+
<template #footer="{ confirm }">
|
|
27
|
+
<div class="custom-footer end">
|
|
28
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
29
|
+
</div>
|
|
30
|
+
</template>
|
|
31
|
+
</tiny-date-picker>
|
|
32
|
+
<tiny-date-picker v-model="yearValue" type="year" placeholder="请选择年份">
|
|
33
|
+
<template #footer="{ confirm }">
|
|
34
|
+
<div class="custom-footer end">
|
|
35
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
36
|
+
</div>
|
|
37
|
+
</template>
|
|
38
|
+
</tiny-date-picker>
|
|
39
|
+
<tiny-date-picker v-model="valueRange" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期">
|
|
40
|
+
<template #footer="{ confirm, clear }">
|
|
41
|
+
<div class="custom-footer">
|
|
42
|
+
<tiny-button type="default" @click="clear">自定义清空</tiny-button>
|
|
43
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
44
|
+
</div>
|
|
45
|
+
</template>
|
|
46
|
+
</tiny-date-picker>
|
|
47
|
+
<tiny-date-picker
|
|
48
|
+
v-model="valueDateTimeRange"
|
|
49
|
+
type="datetimerange"
|
|
50
|
+
start-placeholder="开始日期时间"
|
|
51
|
+
end-placeholder="结束日期时间"
|
|
52
|
+
>
|
|
53
|
+
<template #footer="{ confirm, clear }">
|
|
54
|
+
<div class="custom-footer">
|
|
55
|
+
<tiny-button type="default" @click="clear">自定义清空</tiny-button>
|
|
56
|
+
<tiny-button type="primary" @click="confirm">自定义按钮</tiny-button>
|
|
57
|
+
</div>
|
|
58
|
+
</template>
|
|
59
|
+
</tiny-date-picker>
|
|
60
|
+
<tiny-date-picker
|
|
61
|
+
v-model="valueMonthRange"
|
|
62
|
+
type="monthrange"
|
|
63
|
+
start-placeholder="开始月份"
|
|
64
|
+
end-placeholder="结束月份"
|
|
65
|
+
>
|
|
66
|
+
<template #footer>
|
|
67
|
+
<div class="custom-footer end">
|
|
68
|
+
<tiny-button type="primary">自定义按钮</tiny-button>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
</tiny-date-picker>
|
|
72
|
+
<tiny-date-picker v-model="valueYearRange" type="yearrange" start-placeholder="开始年份" end-placeholder="结束年份">
|
|
73
|
+
<template #footer>
|
|
74
|
+
<div class="custom-footer end">
|
|
75
|
+
<tiny-button type="primary">自定义按钮</tiny-button>
|
|
76
|
+
</div>
|
|
77
|
+
</template>
|
|
78
|
+
</tiny-date-picker>
|
|
79
|
+
</div>
|
|
80
|
+
</template>
|
|
81
|
+
|
|
82
|
+
<script setup>
|
|
83
|
+
import { ref } from 'vue'
|
|
84
|
+
import { TinyDatePicker, TinyButton } from '@opentiny/vue'
|
|
85
|
+
|
|
86
|
+
const value = ref('')
|
|
87
|
+
const dateTimeValue = ref('')
|
|
88
|
+
const weekValue = ref('')
|
|
89
|
+
const monthValue = ref('')
|
|
90
|
+
const yearValue = ref('')
|
|
91
|
+
const valueRange = ref([])
|
|
92
|
+
const valueDateTimeRange = ref([])
|
|
93
|
+
const valueMonthRange = ref([])
|
|
94
|
+
const valueYearRange = ref([])
|
|
95
|
+
</script>
|
|
96
|
+
|
|
97
|
+
<style scoped lang="less">
|
|
98
|
+
.demo-footer-slot {
|
|
99
|
+
width: 360px;
|
|
100
|
+
gap: 10px;
|
|
101
|
+
display: flex;
|
|
102
|
+
flex-direction: column;
|
|
103
|
+
}
|
|
104
|
+
.custom-footer {
|
|
105
|
+
display: flex;
|
|
106
|
+
width: 100%;
|
|
107
|
+
justify-content: space-between;
|
|
108
|
+
}
|
|
109
|
+
.end {
|
|
110
|
+
justify-content: flex-end;
|
|
111
|
+
}
|
|
112
|
+
</style>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test'
|
|
2
|
+
|
|
3
|
+
test('[DatePicker] 测试尺寸设置', async ({ page }) => {
|
|
4
|
+
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
|
+
await page.goto('date-picker#slot')
|
|
6
|
+
|
|
7
|
+
let btn = page.getByRole('button', { name: '自定义按钮' })
|
|
8
|
+
let nowBtn = page.getByRole('button', { name: '自定义此刻' })
|
|
9
|
+
|
|
10
|
+
await page.locator('#slot').getByRole('textbox', { name: '请选择日期', exact: true }).click()
|
|
11
|
+
await page.waitForTimeout(200)
|
|
12
|
+
await expect(btn).toBeVisible()
|
|
13
|
+
|
|
14
|
+
await page.getByRole('textbox', { name: '请选择日期时间' }).click()
|
|
15
|
+
await page.waitForTimeout(200)
|
|
16
|
+
await expect(nowBtn).toBeVisible()
|
|
17
|
+
|
|
18
|
+
await page.locator('#slot').getByRole('textbox', { name: '请选择周' }).click()
|
|
19
|
+
await page.waitForTimeout(200)
|
|
20
|
+
await expect(btn.first()).toBeVisible()
|
|
21
|
+
|
|
22
|
+
await page.locator('#slot').getByRole('textbox', { name: '请选择月份' }).click()
|
|
23
|
+
await page.waitForTimeout(200)
|
|
24
|
+
await expect(btn.first()).toBeVisible()
|
|
25
|
+
|
|
26
|
+
await page.locator('#slot').getByRole('textbox', { name: '请选择年份' }).click()
|
|
27
|
+
await page.waitForTimeout(200)
|
|
28
|
+
await expect(btn.first()).toBeVisible()
|
|
29
|
+
|
|
30
|
+
await page.getByPlaceholder('开始日期时间').click()
|
|
31
|
+
await page.waitForTimeout(200)
|
|
32
|
+
await expect(btn.first()).toBeVisible()
|
|
33
|
+
|
|
34
|
+
await page.locator('#slot').getByPlaceholder('开始月份').click()
|
|
35
|
+
await page.waitForTimeout(200)
|
|
36
|
+
await expect(btn.first()).toBeVisible()
|
|
37
|
+
|
|
38
|
+
await page.locator('#slot').getByPlaceholder('开始年份').click()
|
|
39
|
+
await page.waitForTimeout(200)
|
|
40
|
+
await expect(btn.first()).toBeVisible()
|
|
41
|
+
})
|