@opentiny/vue-docs 3.17.2 → 3.17.4
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/action-sheet.js +1 -1
- package/demos/apis/autocomplete.js +2 -2
- package/demos/apis/button-group.js +3 -0
- package/demos/apis/cascader.js +1 -1
- package/demos/apis/chart-attributes-demo.js +397 -291
- package/demos/apis/chart-autonavi-map.js +394 -296
- package/demos/apis/chart-baidu-map.js +394 -296
- package/demos/apis/chart-bar.js +394 -296
- package/demos/apis/chart-boxplot.js +394 -297
- package/demos/apis/chart-candle.js +394 -296
- package/demos/apis/chart-demo.js +397 -291
- package/demos/apis/chart-docs.js +403 -0
- package/demos/apis/chart-events.js +397 -291
- package/demos/apis/chart-funnel.js +394 -296
- package/demos/apis/chart-gauge.js +394 -296
- package/demos/apis/chart-graph.js +394 -296
- package/demos/apis/chart-heatmap.js +394 -296
- package/demos/apis/chart-histogram.js +394 -296
- package/demos/apis/chart-line.js +394 -296
- package/demos/apis/chart-liquidfill.js +394 -296
- package/demos/apis/chart-map.js +394 -296
- package/demos/apis/chart-pie.js +395 -297
- package/demos/apis/chart-process.js +28 -28
- package/demos/apis/chart-question.js +397 -291
- package/demos/apis/chart-radar.js +394 -296
- package/demos/apis/chart-ring.js +394 -296
- package/demos/apis/chart-sankey.js +394 -296
- package/demos/apis/chart-scatter.js +394 -296
- package/demos/apis/chart-sunburst.js +394 -296
- package/demos/apis/chart-tree.js +394 -296
- package/demos/apis/chart-waterfall.js +394 -296
- package/demos/apis/chart-wordcloud.js +394 -296
- package/demos/apis/chart.js +199 -81
- package/demos/apis/dialog-box.js +1 -1
- package/demos/apis/dialog-select.js +14 -0
- package/demos/apis/dropdown.js +16 -0
- package/demos/apis/file-upload.js +2 -1
- package/demos/apis/fluent-editor.js +110 -0
- package/demos/apis/form.js +1 -1
- package/demos/apis/grid.js +24 -0
- package/demos/apis/guide.js +1 -1
- package/demos/apis/input.js +15 -0
- package/demos/apis/numeric.js +6 -6
- package/demos/apis/search.js +11 -0
- package/demos/apis/switch.js +24 -0
- package/demos/apis/tabs.js +3 -5
- package/demos/apis/tree-menu.js +2 -13
- package/demos/apis/tree-select.js +192 -15
- package/demos/apis/tree.js +11 -0
- package/demos/mobile-first/app/file-upload/file-size-array.vue +19 -0
- package/demos/mobile-first/app/file-upload/file-size.vue +76 -0
- package/demos/mobile-first/app/file-upload/webdoc/file-upload.js +24 -0
- package/demos/mobile-first/app/grid/basic-usage.vue +5 -1
- package/demos/pc/app/cascader-panel/multiple-composition-api.vue +226 -0
- package/demos/pc/app/cascader-panel/multiple.spec.ts +15 -0
- package/demos/pc/app/cascader-panel/multiple.vue +234 -0
- package/demos/pc/app/cascader-panel/webdoc/cascader-panel.js +12 -0
- package/demos/pc/app/chart/webdoc/chart-docs.cn.md +126 -0
- package/demos/pc/app/chart/webdoc/chart-docs.en.md +127 -0
- package/demos/pc/app/chart/webdoc/chart-docs.js +6 -0
- package/demos/pc/app/chart/webdoc/chart-docs.json.cn.md +126 -0
- package/demos/pc/app/chart/webdoc/chart-docs.json.en.md +127 -0
- package/demos/pc/app/chart/webdoc/chart.cn.md +1 -1
- package/demos/pc/app/chart/webdoc/chart.en.md +1 -1
- package/demos/pc/app/color-picker/base.vue +1 -0
- package/demos/pc/app/dialog-box/webdoc/dialog-box.js +4 -2
- package/demos/pc/app/directives/highlight-query/avoid-composition-api.vue +52 -0
- package/demos/pc/app/directives/highlight-query/avoid.spec.js +15 -0
- package/demos/pc/app/directives/highlight-query/avoid.vue +65 -0
- package/demos/pc/app/directives/highlight-query/basic-usage-composition-api.vue +31 -0
- package/demos/pc/app/directives/highlight-query/basic-usage.spec.js +12 -0
- package/demos/pc/app/directives/highlight-query/basic-usage.vue +40 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.cn.md +7 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.en.md +7 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.js +39 -0
- package/demos/pc/app/dropdown/lazy-show-popper-composition-api.vue +43 -0
- package/demos/pc/app/dropdown/lazy-show-popper.spec.ts +20 -0
- package/demos/pc/app/dropdown/lazy-show-popper.vue +47 -0
- package/demos/pc/app/dropdown/webdoc/dropdown.js +13 -0
- package/demos/pc/app/file-upload/file-size-array.vue +85 -0
- package/demos/pc/app/file-upload/file-size.vue +78 -0
- package/demos/pc/app/file-upload/webdoc/file-upload.js +24 -0
- package/demos/pc/app/form/message-type-composition-api.vue +1 -1
- package/demos/pc/app/form/message-type.vue +1 -1
- package/demos/pc/app/form/webdoc/form.js +2 -2
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll-composition-api.vue +81 -0
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.spec.js +14 -0
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.vue +89 -0
- package/demos/pc/app/grid/webdoc/grid-dynamically-columns.js +12 -0
- package/demos/pc/app/grid/webdoc/grid-pager.js +1 -1
- package/demos/pc/app/icon/iconGroups.js +278 -157
- package/demos/pc/app/input/basic-usage.spec.ts +1 -1
- package/demos/pc/app/input/show-tooltip-composition-api.vue +27 -0
- package/demos/pc/app/input/show-tooltip.spec.ts +10 -0
- package/demos/pc/app/input/show-tooltip.vue +34 -0
- package/demos/pc/app/input/webdoc/input.js +13 -0
- package/demos/pc/app/numeric/numeric-size-composition-api.vue +2 -0
- package/demos/pc/app/numeric/numeric-size.vue +2 -0
- package/demos/pc/app/numeric/webdoc/numeric.js +2 -2
- package/demos/pc/app/rich-text-editor/basic-usage.vue +2 -0
- package/demos/pc/app/search/slot-prefix-composition-api.vue +10 -2
- package/demos/pc/app/search/slot-prefix.spec.ts +1 -1
- package/demos/pc/app/search/slot-prefix.vue +16 -5
- package/demos/pc/app/search/webdoc/search.js +5 -4
- package/demos/pc/app/select/popup-style-position-composition-api.vue +1 -2
- package/demos/pc/app/select/popup-style-position.vue +1 -2
- package/demos/pc/app/slider/about-step-composition-api.vue +6 -0
- package/demos/pc/app/slider/about-step.vue +6 -0
- package/demos/pc/app/slider/basic-usage-composition-api.vue +6 -0
- package/demos/pc/app/slider/basic-usage.vue +6 -0
- package/demos/pc/app/slider/dynamic-disable-composition-api.vue +6 -0
- package/demos/pc/app/slider/dynamic-disable.vue +6 -0
- package/demos/pc/app/slider/format-tooltip-composition-api.vue +6 -0
- package/demos/pc/app/slider/format-tooltip.vue +6 -0
- package/demos/pc/app/slider/marks-composition-api.vue +7 -5
- package/demos/pc/app/slider/marks.vue +7 -5
- package/demos/pc/app/slider/max-min-composition-api.vue +6 -0
- package/demos/pc/app/slider/max-min.vue +6 -0
- package/demos/pc/app/slider/range-select-composition-api.vue +6 -0
- package/demos/pc/app/slider/range-select.vue +6 -0
- package/demos/pc/app/slider/shortcut-operation-composition-api.vue +6 -0
- package/demos/pc/app/slider/shortcut-operation.vue +6 -0
- package/demos/pc/app/slider/show-input-composition-api.vue +6 -0
- package/demos/pc/app/slider/show-input.vue +6 -0
- package/demos/pc/app/slider/show-tip-composition-api.vue +6 -0
- package/demos/pc/app/slider/show-tip.vue +6 -0
- package/demos/pc/app/slider/slider-event-composition-api.vue +6 -0
- package/demos/pc/app/slider/slider-event.vue +6 -0
- package/demos/pc/app/slider/slider-slot-composition-api.vue +6 -0
- package/demos/pc/app/slider/slider-slot.vue +6 -0
- package/demos/pc/app/slider/vertical-mode-composition-api.vue +6 -0
- package/demos/pc/app/slider/vertical-mode.vue +6 -0
- package/demos/pc/app/switch/custom-open-close-icon-composition-api.vue +20 -0
- package/demos/pc/app/switch/custom-open-close-icon.spec.ts +15 -0
- package/demos/pc/app/switch/custom-open-close-icon.vue +23 -0
- package/demos/pc/app/switch/webdoc/switch.js +13 -0
- package/demos/pc/app/tabs/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/tabs/basic-usage.vue +1 -1
- package/demos/pc/app/tabs/size-composition-api.vue +31 -0
- package/demos/pc/app/tabs/size.spec.ts +15 -0
- package/demos/pc/app/tabs/size.vue +41 -0
- package/demos/pc/app/tabs/tabs-second-layer-composition-api.vue +0 -1
- package/demos/pc/app/tabs/tabs-second-layer.vue +0 -1
- package/demos/pc/app/tabs/tabs-separator-composition-api.vue +3 -1
- package/demos/pc/app/tabs/tabs-separator.vue +3 -1
- package/demos/pc/app/tabs/webdoc/tabs.js +12 -0
- package/demos/pc/app/time-picker/default-value.spec.ts +1 -1
- package/demos/pc/app/time-picker/picker-options.spec.ts +4 -3
- package/demos/pc/app/tree/filter-view-composition-api.vue +9 -0
- package/demos/pc/app/tree/filter-view.spec.ts +8 -0
- package/demos/pc/app/tree/filter-view.vue +9 -0
- package/demos/pc/app/tree/webdoc/tree.js +2 -0
- package/demos/pc/app/tree-menu/custom-icon-composition-api.vue +1 -1
- package/demos/pc/app/tree-menu/custom-icon.vue +1 -1
- package/demos/pc/app/tree-menu/webdoc/tree-menu.js +2 -2
- package/demos/pc/app/tree-select/basic-usage.vue +1 -0
- package/demos/pc/app/tree-select/collapse-tags-composition-api.vue +71 -0
- package/demos/pc/app/tree-select/collapse-tags.vue +78 -0
- package/demos/pc/app/tree-select/copy-composition-api.vue +70 -0
- package/demos/pc/app/tree-select/copy.vue +78 -0
- package/demos/pc/app/tree-select/disabled-composition-api.vue +69 -0
- package/demos/pc/app/tree-select/disabled.vue +76 -0
- package/demos/pc/app/tree-select/map-field-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/map-field.vue +62 -0
- package/demos/pc/app/tree-select/multiple-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/multiple.vue +62 -0
- package/demos/pc/app/tree-select/native-properties-composition-api.vue +61 -0
- package/demos/pc/app/tree-select/native-properties.vue +68 -0
- package/demos/pc/app/tree-select/panel-style-composition-api.vue +73 -0
- package/demos/pc/app/tree-select/panel-style.vue +80 -0
- package/demos/pc/app/tree-select/reference-style-composition-api.vue +76 -0
- package/demos/pc/app/tree-select/reference-style.vue +83 -0
- package/demos/pc/app/tree-select/size-composition-api.vue +69 -0
- package/demos/pc/app/tree-select/size.vue +76 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.js +124 -0
- package/demos/pc/menus.js +5 -1
- package/demos/pc/overviewimage/chart-docs.svg +44 -0
- package/package.json +7 -7
- package/playground/App.vue +1 -0
- package/src/assets/images/Infinitely-icon.png +0 -0
- package/src/assets/images/Infinitely.png +0 -0
- package/src/assets/images/glaciers-icon.png +0 -0
- package/src/assets/images/glaciers.png +0 -0
- package/src/assets/images/oceanic-icon.png +0 -0
- package/src/assets/images/oceanic.png +0 -0
- package/src/assets/images/starry-sky-icon.png +0 -0
- package/src/assets/images/starry-sky.png +0 -0
- package/src/i18n/en.json +4 -2
- package/src/i18n/zh.json +4 -2
- package/src/style.css +10 -2
- package/src/tools/appData.js +7 -10
- package/src/tools/useApiMode.js +5 -0
- package/src/tools/useStyleSettings.js +16 -0
- package/src/tools/useTheme.js +39 -4
- package/src/views/components/components.vue +14 -6
- package/src/views/components/demo.vue +4 -4
- package/src/views/components/float-settings.vue +124 -98
- package/src/views/layout/layout.vue +1 -1
- package/vite.config.ts +2 -1
- package/demos/mobile-first/app/time-line-new/auto-slot.vue +0 -50
- package/demos/mobile-first/app/time-line-new/basic-usage.vue +0 -23
- package/demos/mobile-first/app/time-line-new/fold-time.vue +0 -29
- package/demos/mobile-first/app/time-line-new/limited-nodes.vue +0 -29
- package/demos/mobile-first/app/time-line-new/many-status.vue +0 -24
- package/demos/mobile-first/app/time-line-new/node-max.vue +0 -26
- package/demos/mobile-first/app/time-line-new/node-toset.vue +0 -32
- package/demos/mobile-first/app/time-line-new/single-status.vue +0 -40
- package/demos/mobile-first/app/time-line-new/sub-field.vue +0 -23
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.cn.md +0 -9
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.en.md +0 -9
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.js +0 -120
- /package/demos/pc/app/slider/{show-iput.spec.ts → show-input.spec.ts} +0 -0
|
@@ -101,9 +101,9 @@ export default {
|
|
|
101
101
|
},
|
|
102
102
|
desc: {
|
|
103
103
|
'zh-CN':
|
|
104
|
-
'
|
|
104
|
+
'可通过 <code>size</code> 属性设置计数器尺寸,可选值有 <code>medium</code><code>small</code><code>mini</code>。',
|
|
105
105
|
'en-US':
|
|
106
|
-
'You can set the counter size through the<code>size</code>attribute
|
|
106
|
+
'You can set the counter size through the<code>size</code>attribute,the value can be <code>medium</code><code>small</code><code>mini</code>. '
|
|
107
107
|
},
|
|
108
108
|
codeFiles: ['numeric-size.vue']
|
|
109
109
|
},
|
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<tiny-
|
|
3
|
+
<tiny-button class="mb10" @click="changeDisabled"
|
|
4
|
+
>点击切换为“{{ disabled ? '非禁用状态' : '禁用状态' }}”</tiny-button
|
|
5
|
+
>
|
|
6
|
+
<tiny-search class="mb10" v-model="value" placeholder="请输入关键字搜索" :disabled="disabled" clearable>
|
|
4
7
|
<template #prefix>
|
|
5
8
|
<tiny-icon-search />
|
|
6
9
|
</template>
|
|
7
10
|
</tiny-search>
|
|
11
|
+
<tiny-search v-model="value" placeholder="请输入关键词" :disabled="disabled"></tiny-search>
|
|
8
12
|
<div class="mt10">{{ value }}</div>
|
|
9
13
|
</div>
|
|
10
14
|
</template>
|
|
11
15
|
|
|
12
16
|
<script setup lang="jsx">
|
|
13
17
|
import { ref } from 'vue'
|
|
14
|
-
import { Search as TinySearch } from '@opentiny/vue'
|
|
18
|
+
import { Search as TinySearch, Button as TinyButton } from '@opentiny/vue'
|
|
15
19
|
import { iconSearch } from '@opentiny/vue-icon'
|
|
16
20
|
|
|
17
21
|
const value = ref('')
|
|
22
|
+
const disabled = ref(false)
|
|
18
23
|
|
|
19
24
|
const TinyIconSearch = iconSearch()
|
|
25
|
+
const changeDisabled = () => {
|
|
26
|
+
disabled.value = !disabled.value
|
|
27
|
+
}
|
|
20
28
|
</script>
|
|
@@ -4,7 +4,7 @@ test('左侧插槽是否正常显示', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('search#slot-prefix')
|
|
6
6
|
|
|
7
|
-
const search = page.locator('.tiny-search')
|
|
7
|
+
const search = page.locator('.tiny-search').first()
|
|
8
8
|
const prefix = search.locator('.tiny-search__prefix > svg')
|
|
9
9
|
|
|
10
10
|
await expect(prefix).toBeVisible()
|
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<tiny-
|
|
3
|
+
<tiny-button class="mb10" @click="changeDisabled"
|
|
4
|
+
>点击切换为“{{ disabled ? '非禁用状态' : '禁用状态' }}”</tiny-button
|
|
5
|
+
>
|
|
6
|
+
<tiny-search class="mb10" v-model="value" placeholder="请输入关键字搜索" :disabled="disabled" clearable>
|
|
4
7
|
<template #prefix>
|
|
5
|
-
<icon-search />
|
|
8
|
+
<tiny-icon-search />
|
|
6
9
|
</template>
|
|
7
10
|
</tiny-search>
|
|
11
|
+
<tiny-search v-model="value" placeholder="请输入关键词" :disabled="disabled"></tiny-search>
|
|
8
12
|
<div class="mt10">{{ value }}</div>
|
|
9
13
|
</div>
|
|
10
14
|
</template>
|
|
11
15
|
|
|
12
16
|
<script lang="jsx">
|
|
13
|
-
import { Search } from '@opentiny/vue'
|
|
17
|
+
import { Search, Button } from '@opentiny/vue'
|
|
14
18
|
import { iconSearch } from '@opentiny/vue-icon'
|
|
15
19
|
|
|
16
20
|
export default {
|
|
17
21
|
components: {
|
|
18
22
|
TinySearch: Search,
|
|
19
|
-
|
|
23
|
+
TinyButton: Button,
|
|
24
|
+
TinyIconSearch: iconSearch()
|
|
20
25
|
},
|
|
21
26
|
data() {
|
|
22
27
|
return {
|
|
23
|
-
value: ''
|
|
28
|
+
value: '',
|
|
29
|
+
disabled: false
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
methods: {
|
|
33
|
+
changeDisabled() {
|
|
34
|
+
this.disabled = !this.disabled
|
|
24
35
|
}
|
|
25
36
|
}
|
|
26
37
|
}
|
|
@@ -92,12 +92,13 @@ export default {
|
|
|
92
92
|
{
|
|
93
93
|
demoId: 'slot-prefix',
|
|
94
94
|
name: {
|
|
95
|
-
'zh-CN': '
|
|
96
|
-
'en-US': 'Left slot'
|
|
95
|
+
'zh-CN': '左侧插槽与禁用',
|
|
96
|
+
'en-US': 'Left slot and Disabled'
|
|
97
97
|
},
|
|
98
98
|
desc: {
|
|
99
|
-
'zh-CN': '通过 <code>prefix</code>
|
|
100
|
-
'en-US':
|
|
99
|
+
'zh-CN': '通过 <code>prefix</code> 插槽自定义左侧内容, <code>disabled</code> 控制禁用状态。',
|
|
100
|
+
'en-US':
|
|
101
|
+
'Customize the left content through the <code>prefix</code> slot, <code>disabled</code>Control the disabled state.'
|
|
101
102
|
},
|
|
102
103
|
codeFiles: ['slot-prefix.vue']
|
|
103
104
|
},
|
|
@@ -12,8 +12,7 @@ const options = reactive([
|
|
|
12
12
|
{ value: '选项1', label: '北京' },
|
|
13
13
|
{ value: '选项2', label: '上海' },
|
|
14
14
|
{ value: '选项3', label: '天津' },
|
|
15
|
-
{ value: '选项4', label: '重庆' }
|
|
16
|
-
{ value: '选项5', label: '深圳' }
|
|
15
|
+
{ value: '选项4', label: '重庆' }
|
|
17
16
|
])
|
|
18
17
|
const value = ref('')
|
|
19
18
|
</script>
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<div>
|
|
4
|
-
<tiny-slider v-model="value" :marks="marks"></tiny-slider>
|
|
5
|
-
</div>
|
|
6
|
-
</div>
|
|
2
|
+
<tiny-slider v-model="value" :marks="marks"></tiny-slider>
|
|
7
3
|
</template>
|
|
8
4
|
|
|
9
5
|
<script setup>
|
|
@@ -18,3 +14,9 @@ const marks = ref({
|
|
|
18
14
|
|
|
19
15
|
const value = ref(20)
|
|
20
16
|
</script>
|
|
17
|
+
|
|
18
|
+
<style scoped>
|
|
19
|
+
.tiny-slider-container {
|
|
20
|
+
margin-top: 50px;
|
|
21
|
+
}
|
|
22
|
+
</style>
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<div>
|
|
4
|
-
<tiny-slider v-model="value" :marks="marks"></tiny-slider>
|
|
5
|
-
</div>
|
|
6
|
-
</div>
|
|
2
|
+
<tiny-slider v-model="value" :marks="marks"></tiny-slider>
|
|
7
3
|
</template>
|
|
8
4
|
|
|
9
5
|
<script>
|
|
@@ -25,3 +21,9 @@ export default {
|
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
23
|
</script>
|
|
24
|
+
|
|
25
|
+
<style scoped>
|
|
26
|
+
.tiny-slider-container {
|
|
27
|
+
margin-top: 50px;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<tiny-switch>
|
|
3
|
+
<template #active-icon>
|
|
4
|
+
<TinyIconArrowLeft />
|
|
5
|
+
</template>
|
|
6
|
+
<template #inactive-icon>
|
|
7
|
+
<TinyIconArrowRight />
|
|
8
|
+
</template>
|
|
9
|
+
</tiny-switch>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script setup>
|
|
13
|
+
import { Switch } from '@opentiny/vue'
|
|
14
|
+
import { IconArrowLeft, IconArrowRight } from '@opentiny/vue-icon'
|
|
15
|
+
|
|
16
|
+
const TinyIconArrowLeft = IconArrowLeft()
|
|
17
|
+
const TinyIconArrowRight = IconArrowRight()
|
|
18
|
+
|
|
19
|
+
const TinySwitch = Switch
|
|
20
|
+
</script>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test'
|
|
2
|
+
|
|
3
|
+
test('自定义开关图标', async ({ page }) => {
|
|
4
|
+
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
|
+
await page.goto('switch#custom-open-close-icon')
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#custom-open-close-icon')
|
|
8
|
+
const switchContainer = demo.locator('.tiny-switch')
|
|
9
|
+
|
|
10
|
+
const switchBtn = switchContainer.locator('.tiny-switch__button').first()
|
|
11
|
+
|
|
12
|
+
const switchIcon = switchBtn.locator('.tiny-svg').first()
|
|
13
|
+
|
|
14
|
+
await expect(switchIcon).not.toBeNull()
|
|
15
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<tiny-switch>
|
|
3
|
+
<template #active-icon>
|
|
4
|
+
<TinyIconArrowLeft />
|
|
5
|
+
</template>
|
|
6
|
+
<template #inactive-icon>
|
|
7
|
+
<TinyIconArrowRight />
|
|
8
|
+
</template>
|
|
9
|
+
</tiny-switch>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
import { Switch } from '@opentiny/vue'
|
|
14
|
+
import { IconArrowLeft, IconArrowRight } from '@opentiny/vue-icon'
|
|
15
|
+
|
|
16
|
+
export default {
|
|
17
|
+
components: {
|
|
18
|
+
TinySwitch: Switch,
|
|
19
|
+
TinyIconArrowLeft: IconArrowLeft(),
|
|
20
|
+
TinyIconArrowRight: IconArrowRight()
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
@@ -79,6 +79,19 @@ export default {
|
|
|
79
79
|
},
|
|
80
80
|
codeFiles: ['dynamic-disable.vue']
|
|
81
81
|
},
|
|
82
|
+
{
|
|
83
|
+
demoId: 'custom-open-close-icon',
|
|
84
|
+
name: {
|
|
85
|
+
'zh-CN': '自定义开关图标',
|
|
86
|
+
'en-US': 'Custom switch icon'
|
|
87
|
+
},
|
|
88
|
+
desc: {
|
|
89
|
+
'zh-CN': '<p>通过具名插槽 <code>active-icon</code> 和 <code>inactive-icon</code> 自定义开关图标。</p>',
|
|
90
|
+
'en-US':
|
|
91
|
+
'<p>Customize switch icons through named slots<code>active icon</code>and<code>inactive icon</code> .</p>'
|
|
92
|
+
},
|
|
93
|
+
codeFiles: ['custom-open-close-icon.vue']
|
|
94
|
+
},
|
|
82
95
|
{
|
|
83
96
|
demoId: 'event-change',
|
|
84
97
|
name: {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<tiny-tabs v-model="activeName" size="small">
|
|
4
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
5
|
+
</tiny-tabs>
|
|
6
|
+
<tiny-tabs v-model="activeName" separator size="small">
|
|
7
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
8
|
+
</tiny-tabs>
|
|
9
|
+
<tiny-tabs v-model="activeName" tab-style="button-card" size="small">
|
|
10
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
11
|
+
</tiny-tabs>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script setup lang="jsx">
|
|
16
|
+
import { ref, reactive } from 'vue'
|
|
17
|
+
import { Tabs as TinyTabs, TabItem as TinyTabItem } from '@opentiny/vue'
|
|
18
|
+
|
|
19
|
+
const activeName = ref('1')
|
|
20
|
+
const Tabs = reactive([])
|
|
21
|
+
|
|
22
|
+
// 创建tabs
|
|
23
|
+
for (let i = 1; i < 5; i++) {
|
|
24
|
+
const title = `Tab ${i}`
|
|
25
|
+
Tabs.push({
|
|
26
|
+
title,
|
|
27
|
+
name: i + '',
|
|
28
|
+
content: `${title} content `
|
|
29
|
+
})
|
|
30
|
+
}
|
|
31
|
+
</script>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test'
|
|
2
|
+
|
|
3
|
+
test('小尺寸', async ({ page }) => {
|
|
4
|
+
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
|
+
await page.goto('tabs#size')
|
|
6
|
+
|
|
7
|
+
const headerBox = page.locator('.tiny-tabs .tiny-tabs__nav-scroll')
|
|
8
|
+
|
|
9
|
+
await expect(headerBox.nth(0)).toHaveCSS('height', '40px')
|
|
10
|
+
await expect(headerBox.nth(0)).toHaveCSS('font-size', '16px')
|
|
11
|
+
await expect(headerBox.nth(1)).toHaveCSS('height', '24px')
|
|
12
|
+
await expect(headerBox.nth(1)).toHaveCSS('font-size', '14px')
|
|
13
|
+
await expect(headerBox.nth(2)).toHaveCSS('height', '24px')
|
|
14
|
+
await expect(headerBox.nth(2)).toHaveCSS('font-size', '12px')
|
|
15
|
+
})
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<tiny-tabs v-model="activeName" size="small">
|
|
4
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
5
|
+
</tiny-tabs>
|
|
6
|
+
<tiny-tabs v-model="activeName" separator size="small">
|
|
7
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
8
|
+
</tiny-tabs>
|
|
9
|
+
<tiny-tabs v-model="activeName" tab-style="button-card" size="small">
|
|
10
|
+
<tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
|
|
11
|
+
</tiny-tabs>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script lang="jsx">
|
|
16
|
+
import { Tabs, TabItem } from '@opentiny/vue'
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
components: {
|
|
20
|
+
TinyTabs: Tabs,
|
|
21
|
+
TinyTabItem: TabItem
|
|
22
|
+
},
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
activeName: '1',
|
|
26
|
+
Tabs: []
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
created() {
|
|
30
|
+
// 创建tabs
|
|
31
|
+
for (let i = 1; i < 5; i++) {
|
|
32
|
+
const title = `Tab ${i}`
|
|
33
|
+
this.Tabs.push({
|
|
34
|
+
title,
|
|
35
|
+
name: i + '',
|
|
36
|
+
content: `${title} content `
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
</script>
|