@opentiny/vue-docs 3.17.3 → 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-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/basic-usage.spec.ts +20 -0
- package/demos/pc/app/tree-select/basic-usage.vue +62 -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.cn.md +7 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.en.md +7 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.js +142 -0
- package/demos/pc/menus.js +12 -2
- 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
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="cascader-panel-demo-props">
|
|
3
|
+
<div>
|
|
4
|
+
选中值:<span>{{ value }}</span>
|
|
5
|
+
</div>
|
|
6
|
+
<tiny-cascader-panel
|
|
7
|
+
v-model="value"
|
|
8
|
+
:options="optionsCascader"
|
|
9
|
+
:props="{
|
|
10
|
+
multiple: true
|
|
11
|
+
}"
|
|
12
|
+
></tiny-cascader-panel>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script setup>
|
|
17
|
+
import { ref } from 'vue'
|
|
18
|
+
import { CascaderPanel as TinyCascaderPanel } from '@opentiny/vue'
|
|
19
|
+
|
|
20
|
+
const value = ref([
|
|
21
|
+
['zhinan', 'anzhuang', 'xiangmudengji'],
|
|
22
|
+
['zhinan', 'anzhuang', 'huanjingzhunbei'],
|
|
23
|
+
['zhinan', 'anzhuang', 'anzhuangcli'],
|
|
24
|
+
['zhinan', 'kaifa', 'monishuju']
|
|
25
|
+
])
|
|
26
|
+
const optionsCascader = ref([
|
|
27
|
+
{
|
|
28
|
+
value: 'zhinan',
|
|
29
|
+
label: '指南',
|
|
30
|
+
children: [
|
|
31
|
+
{
|
|
32
|
+
value: 'anzhuang',
|
|
33
|
+
label: '安装',
|
|
34
|
+
children: [
|
|
35
|
+
{
|
|
36
|
+
value: 'xiangmudengji',
|
|
37
|
+
label: '项目登记'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: 'huanjingzhunbei',
|
|
41
|
+
label: '环境准备'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
value: 'anzhuangcli',
|
|
45
|
+
label: '安装 CLI'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
value: 'chuangjianxiangmu',
|
|
49
|
+
label: '创建项目'
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
value: 'kaifa',
|
|
55
|
+
label: '开发',
|
|
56
|
+
children: [
|
|
57
|
+
{
|
|
58
|
+
value: 'yinruzujian',
|
|
59
|
+
label: '引入组件'
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
value: 'monishuju',
|
|
63
|
+
label: '模拟数据'
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
value: 'zujian',
|
|
71
|
+
label: '组件',
|
|
72
|
+
children: [
|
|
73
|
+
{
|
|
74
|
+
value: 'basic',
|
|
75
|
+
label: '框架风格',
|
|
76
|
+
children: [
|
|
77
|
+
{
|
|
78
|
+
value: 'layout',
|
|
79
|
+
label: 'Layout 布局'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
value: 'color',
|
|
83
|
+
label: 'Color 色彩'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
value: 'font',
|
|
87
|
+
label: 'Font 字体'
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
value: 'icon',
|
|
91
|
+
label: 'Icon 图标'
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
value: 'form',
|
|
97
|
+
label: '表单组件',
|
|
98
|
+
children: [
|
|
99
|
+
{
|
|
100
|
+
value: 'radio',
|
|
101
|
+
label: 'Radio 单选框'
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
value: 'checkbox',
|
|
105
|
+
label: 'Checkbox 多选框'
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
value: 'input',
|
|
109
|
+
label: 'Input 输入框'
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
value: 'number',
|
|
113
|
+
label: 'Numeric 计数器'
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
value: 'select',
|
|
117
|
+
label: 'Select 选择器'
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
value: 'cascader',
|
|
121
|
+
label: 'Cascader 级联选择器'
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
value: 'switch',
|
|
125
|
+
label: 'Switch 开关'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
value: 'slider',
|
|
129
|
+
label: 'Slider 滑块'
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
value: 'time-picker',
|
|
133
|
+
label: 'TimePicker 时间选择器'
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
value: 'date-picker',
|
|
137
|
+
label: 'DatePicker 日期选择器'
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
value: 'form',
|
|
141
|
+
label: 'Form 表单'
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
value: 'data',
|
|
147
|
+
label: '数据组件',
|
|
148
|
+
children: [
|
|
149
|
+
{
|
|
150
|
+
value: 'tree',
|
|
151
|
+
label: 'Tree 树形控件'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
value: 'pager',
|
|
155
|
+
label: 'Pager 分页'
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
value: 'notice',
|
|
161
|
+
label: '提示组件',
|
|
162
|
+
children: [
|
|
163
|
+
{
|
|
164
|
+
value: 'alert',
|
|
165
|
+
label: 'Alert 警告'
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
value: 'loading',
|
|
169
|
+
label: 'Loading 加载'
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
value: 'navigation',
|
|
175
|
+
label: '导航组件',
|
|
176
|
+
children: [
|
|
177
|
+
{
|
|
178
|
+
value: 'menu',
|
|
179
|
+
label: 'NavMenu 导航菜单'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
value: 'tabs',
|
|
183
|
+
label: 'Tabs 标签页'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
value: 'breadcrumb',
|
|
187
|
+
label: 'Breadcrumb 面包屑'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
value: 'steps',
|
|
191
|
+
label: 'Steps 步骤条'
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
value: 'others',
|
|
197
|
+
label: '其他组件',
|
|
198
|
+
children: [
|
|
199
|
+
{
|
|
200
|
+
value: 'rate',
|
|
201
|
+
label: 'Rate 评分'
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
value: 'tag',
|
|
205
|
+
label: 'Tag 标签'
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
value: 'usercontact',
|
|
209
|
+
label: 'UserContact 联系人'
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
value: 'slidebar',
|
|
213
|
+
label: 'SlideBar 滚动块'
|
|
214
|
+
}
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
])
|
|
220
|
+
</script>
|
|
221
|
+
|
|
222
|
+
<style scoped>
|
|
223
|
+
.cascader-panel-demo-props > :not(:last-child) {
|
|
224
|
+
margin-bottom: 12px;
|
|
225
|
+
}
|
|
226
|
+
</style>
|
|
@@ -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('cascader-panel#multiple')
|
|
6
|
+
const multipleText1 = page.getByText(
|
|
7
|
+
'选中值:[ [ "zhinan", "anzhuang", "xiangmudengji" ], [ "zhinan", "anzhuang", "huanjingzhunbei" ], [ "zhinan", "anzhuang", "anzhuangcli" ], [ "zhinan", "kaifa", "monishuju" ] ]'
|
|
8
|
+
)
|
|
9
|
+
await expect(multipleText1).toBeVisible()
|
|
10
|
+
await page.getByRole('menuitem', { name: '创建项目' }).locator('span').nth(1).click()
|
|
11
|
+
const multipleText2 = page.getByText(
|
|
12
|
+
'选中值:[ [ "zhinan", "anzhuang", "xiangmudengji" ], [ "zhinan", "anzhuang", "huanjingzhunbei" ], [ "zhinan", "anzhuang", "anzhuangcli" ], [ "zhinan", "anzhuang", "chuangjianxiangmu" ], [ "zhinan", "kaifa", "monishuju" ] ]'
|
|
13
|
+
)
|
|
14
|
+
await expect(multipleText2).toBeVisible()
|
|
15
|
+
})
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="cascader-panel-demo-props">
|
|
3
|
+
<div>
|
|
4
|
+
选中值:<span>{{ value }}</span>
|
|
5
|
+
</div>
|
|
6
|
+
<tiny-cascader-panel
|
|
7
|
+
v-model="value"
|
|
8
|
+
:options="optionsCascader"
|
|
9
|
+
:props="{
|
|
10
|
+
multiple: true
|
|
11
|
+
}"
|
|
12
|
+
></tiny-cascader-panel>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script>
|
|
17
|
+
import { CascaderPanel } from '@opentiny/vue'
|
|
18
|
+
|
|
19
|
+
export default {
|
|
20
|
+
components: {
|
|
21
|
+
TinyCascaderPanel: CascaderPanel
|
|
22
|
+
},
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
value: [
|
|
26
|
+
['zhinan', 'anzhuang', 'xiangmudengji'],
|
|
27
|
+
['zhinan', 'anzhuang', 'huanjingzhunbei'],
|
|
28
|
+
['zhinan', 'anzhuang', 'anzhuangcli'],
|
|
29
|
+
['zhinan', 'kaifa', 'monishuju']
|
|
30
|
+
],
|
|
31
|
+
optionsCascader: [
|
|
32
|
+
{
|
|
33
|
+
value: 'zhinan',
|
|
34
|
+
label: '指南',
|
|
35
|
+
children: [
|
|
36
|
+
{
|
|
37
|
+
value: 'anzhuang',
|
|
38
|
+
label: '安装',
|
|
39
|
+
children: [
|
|
40
|
+
{
|
|
41
|
+
value: 'xiangmudengji',
|
|
42
|
+
label: '项目登记'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
value: 'huanjingzhunbei',
|
|
46
|
+
label: '环境准备'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
value: 'anzhuangcli',
|
|
50
|
+
label: '安装 CLI'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
value: 'chuangjianxiangmu',
|
|
54
|
+
label: '创建项目'
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
value: 'kaifa',
|
|
60
|
+
label: '开发',
|
|
61
|
+
children: [
|
|
62
|
+
{
|
|
63
|
+
value: 'yinruzujian',
|
|
64
|
+
label: '引入组件'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
value: 'monishuju',
|
|
68
|
+
label: '模拟数据'
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
value: 'zujian',
|
|
76
|
+
label: '组件',
|
|
77
|
+
children: [
|
|
78
|
+
{
|
|
79
|
+
value: 'basic',
|
|
80
|
+
label: '框架风格',
|
|
81
|
+
children: [
|
|
82
|
+
{
|
|
83
|
+
value: 'layout',
|
|
84
|
+
label: 'Layout 布局'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
value: 'color',
|
|
88
|
+
label: 'Color 色彩'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
value: 'font',
|
|
92
|
+
label: 'Font 字体'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
value: 'icon',
|
|
96
|
+
label: 'Icon 图标'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
value: 'form',
|
|
102
|
+
label: '表单组件',
|
|
103
|
+
children: [
|
|
104
|
+
{
|
|
105
|
+
value: 'radio',
|
|
106
|
+
label: 'Radio 单选框'
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
value: 'checkbox',
|
|
110
|
+
label: 'Checkbox 多选框'
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
value: 'input',
|
|
114
|
+
label: 'Input 输入框'
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
value: 'number',
|
|
118
|
+
label: 'Numeric 计数器'
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
value: 'select',
|
|
122
|
+
label: 'Select 选择器'
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
value: 'cascader',
|
|
126
|
+
label: 'Cascader 级联选择器'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
value: 'switch',
|
|
130
|
+
label: 'Switch 开关'
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
value: 'slider',
|
|
134
|
+
label: 'Slider 滑块'
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
value: 'time-picker',
|
|
138
|
+
label: 'TimePicker 时间选择器'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
value: 'date-picker',
|
|
142
|
+
label: 'DatePicker 日期选择器'
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
value: 'form',
|
|
146
|
+
label: 'Form 表单'
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
value: 'data',
|
|
152
|
+
label: '数据组件',
|
|
153
|
+
children: [
|
|
154
|
+
{
|
|
155
|
+
value: 'tree',
|
|
156
|
+
label: 'Tree 树形控件'
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
value: 'pager',
|
|
160
|
+
label: 'Pager 分页'
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
value: 'notice',
|
|
166
|
+
label: '提示组件',
|
|
167
|
+
children: [
|
|
168
|
+
{
|
|
169
|
+
value: 'alert',
|
|
170
|
+
label: 'Alert 警告'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
value: 'loading',
|
|
174
|
+
label: 'Loading 加载'
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
value: 'navigation',
|
|
180
|
+
label: '导航组件',
|
|
181
|
+
children: [
|
|
182
|
+
{
|
|
183
|
+
value: 'menu',
|
|
184
|
+
label: 'NavMenu 导航菜单'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
value: 'tabs',
|
|
188
|
+
label: 'Tabs 标签页'
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
value: 'breadcrumb',
|
|
192
|
+
label: 'Breadcrumb 面包屑'
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
value: 'steps',
|
|
196
|
+
label: 'Steps 步骤条'
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
value: 'others',
|
|
202
|
+
label: '其他组件',
|
|
203
|
+
children: [
|
|
204
|
+
{
|
|
205
|
+
value: 'rate',
|
|
206
|
+
label: 'Rate 评分'
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
value: 'tag',
|
|
210
|
+
label: 'Tag 标签'
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
value: 'usercontact',
|
|
214
|
+
label: 'UserContact 联系人'
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
value: 'slidebar',
|
|
218
|
+
label: 'SlideBar 滚动块'
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
</script>
|
|
229
|
+
|
|
230
|
+
<style scoped>
|
|
231
|
+
.cascader-panel-demo-props > :not(:last-child) {
|
|
232
|
+
margin-bottom: 12px;
|
|
233
|
+
}
|
|
234
|
+
</style>
|
|
@@ -30,6 +30,18 @@ export default {
|
|
|
30
30
|
},
|
|
31
31
|
codeFiles: ['custom-option-content.vue']
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
demoId: 'multiple',
|
|
35
|
+
name: {
|
|
36
|
+
'zh-CN': '多选',
|
|
37
|
+
'en-US': 'Multiple Choices'
|
|
38
|
+
},
|
|
39
|
+
desc: {
|
|
40
|
+
'zh-CN': '<p>通过 <code>props.multiple = true</code> 来开启多选模式。</p>\n',
|
|
41
|
+
'en-US': '<p>Use <code>props.multiple = true</code> to enable the multi-selection mode. </p>\n'
|
|
42
|
+
},
|
|
43
|
+
codeFiles: ['multiple.vue']
|
|
44
|
+
},
|
|
33
45
|
{
|
|
34
46
|
demoId: 'cascader-panel-props',
|
|
35
47
|
name: {
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
## 安装
|
|
2
|
+
|
|
3
|
+
推荐使用`npm`或者`yarn`方式进行开发
|
|
4
|
+
|
|
5
|
+
```javascript
|
|
6
|
+
npm i @opentiny/vue
|
|
7
|
+
# 或者
|
|
8
|
+
yarn add @opentiny/vue
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 使用
|
|
12
|
+
|
|
13
|
+
`tinyChart`支持多组件引入、单组件引入以及完整引入三种方式。
|
|
14
|
+
|
|
15
|
+
### 多组件引入
|
|
16
|
+
|
|
17
|
+
`TinyChart`多组件引用即从依赖包 @opentiny/vue中引用多个组件,参考示例如下(以 `ChartLine` 和 `ChartBar` 组件为例):
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<template>
|
|
21
|
+
<div>
|
|
22
|
+
<tiny-chart-line></tiny-chart-line>
|
|
23
|
+
<tiny-chart-bar></tiny-chart-bar>
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
26
|
+
<script>
|
|
27
|
+
import { ChartLine, ChartBar } from '@opentiny/vue'
|
|
28
|
+
export default {
|
|
29
|
+
components: {
|
|
30
|
+
TinyChartLine: ChartLine,
|
|
31
|
+
TinyChartBar: ChartBar
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
</script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 单组件引入
|
|
38
|
+
|
|
39
|
+
`TinyChart` 每个组件都可以独立安装、独立使用,即只安装单个组件的依赖并单独引用该组件,参考示例如下(以 `ChartLine`和`ChartBar` 组件为例):
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<template>
|
|
43
|
+
<div>
|
|
44
|
+
<tiny-chart-line></tiny-chart-line>
|
|
45
|
+
<tiny-chart-bar></tiny-chart-bar>
|
|
46
|
+
</div>
|
|
47
|
+
</template>
|
|
48
|
+
<script>
|
|
49
|
+
import ChartLine from '@opentiny/vue/ChartLine'
|
|
50
|
+
import ChartBar from '@opentiny/vue/chartBar'
|
|
51
|
+
export default {
|
|
52
|
+
components: {
|
|
53
|
+
TinyChartLine: ChartLine,
|
|
54
|
+
TinyChartBar: ChartBar
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 完整引入
|
|
61
|
+
|
|
62
|
+
完整引入组建后,可以通过 `type` 属性去获取想要的图表,我们并不推荐直接使用完整引入,这样会全量引入所有组件,无法实现按需加载。但如果确实有场景的需求,可以通过以下方式引用,参考示例如下(以 `ChartLine` 和 `ChartBar` 组件为例):
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<template>
|
|
66
|
+
<div>
|
|
67
|
+
<tiny-chart type="line"></tiny-chart>
|
|
68
|
+
<tiny-chart type="bar"></tiny-chart>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
<script>
|
|
72
|
+
import { Chart } from '@opentiny/vue'
|
|
73
|
+
export default {
|
|
74
|
+
components: {
|
|
75
|
+
TinyChart: Chart
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
</script>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 组件使用
|
|
82
|
+
|
|
83
|
+
下面是一个简单的小示例
|
|
84
|
+
|
|
85
|
+
```html
|
|
86
|
+
<template>
|
|
87
|
+
<div>
|
|
88
|
+
<tiny-chart-line></tiny-chart-line>
|
|
89
|
+
<tiny-chart-bar></tiny-chart-bar>
|
|
90
|
+
</div>
|
|
91
|
+
</template>
|
|
92
|
+
<script>
|
|
93
|
+
import { ChartLine, ChartBar } from '@opentiny/vue'
|
|
94
|
+
export default {
|
|
95
|
+
components: {
|
|
96
|
+
TinyChartLine: ChartLine,
|
|
97
|
+
TinyChartBar: ChartBar
|
|
98
|
+
},
|
|
99
|
+
data() {
|
|
100
|
+
return {
|
|
101
|
+
options: {
|
|
102
|
+
padding: [50, 30, 50, 20],
|
|
103
|
+
legend: {
|
|
104
|
+
show: true,
|
|
105
|
+
icon: 'line'
|
|
106
|
+
},
|
|
107
|
+
data: [
|
|
108
|
+
{ 'Month': 'Jan', 'Domestic': 33, 'Abroad': 1 },
|
|
109
|
+
{ 'Month': 'Feb', 'Domestic': 27, 'Abroad': 39 },
|
|
110
|
+
{ 'Month': 'Mar', 'Domestic': 31, 'Abroad': 20 },
|
|
111
|
+
{ 'Month': 'Apr', 'Domestic': 30, 'Abroad': 15 },
|
|
112
|
+
{ 'Month': 'May', 'Domestic': 37, 'Abroad': 1 },
|
|
113
|
+
{ 'Month': 'Jun', 'Domestic': 36, 'Abroad': 17 },
|
|
114
|
+
{ 'Month': 'Jul', 'Domestic': 42, 'Abroad': 22 },
|
|
115
|
+
{ 'Month': 'Aug', 'Domestic': 22, 'Abroad': 12 },
|
|
116
|
+
{ 'Month': 'Sep', 'Domestic': 17, 'Abroad': 30 },
|
|
117
|
+
{ 'Month': 'Oct', 'Domestic': 40, 'Abroad': 33 },
|
|
118
|
+
{ 'Month': 'Nov', 'Domestic': 42, 'Abroad': 22 },
|
|
119
|
+
{ 'Month': 'Dec', 'Domestic': 32, 'Abroad': 1 }
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
</script>
|
|
126
|
+
```
|