@opentiny/vue-docs 2.2.2 → 2.2.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.
Files changed (58) hide show
  1. package/demos/pc/app/anchor/change.spec.ts +1 -2
  2. package/demos/pc/app/anchor/is-affix.spec.ts +4 -3
  3. package/demos/pc/app/anchor/set-container.spec.ts +7 -7
  4. package/demos/pc/app/anchor/webdoc/anchor.js +17 -16
  5. package/demos/pc/app/button/basic-usage-composition-api.vue +1 -1
  6. package/demos/pc/app/button/basic-usage.vue +1 -1
  7. package/demos/pc/app/button/dynamic-disabled-composition-api.vue +0 -1
  8. package/demos/pc/app/button/dynamic-disabled.spec.js +3 -0
  9. package/demos/pc/app/button/dynamic-disabled.vue +0 -1
  10. package/demos/pc/app/button/icon-composition-api.vue +2 -1
  11. package/demos/pc/app/button/icon.vue +2 -1
  12. package/demos/pc/app/credit-card-form/webdoc/credit-card-form.js +4 -0
  13. package/demos/pc/app/grid/data-source/static-data-composition-api.vue +1 -1
  14. package/demos/pc/app/grid/expand/expand-config-composition-api.vue +1 -1
  15. package/demos/pc/app/grid/filter/simple-date-filter.spec.ts +2 -20
  16. package/demos/pc/app/grid/operation-column/selection-config-composition-api.vue +1 -1
  17. package/demos/pc/app/grid/operation-column/selection-config.vue +2 -3
  18. package/demos/pc/app/grid/slot/editor-slot-composition-api.vue +1 -1
  19. package/demos/pc/app/grid/slot/header-slot-composition-api.vue +4 -1
  20. package/demos/pc/app/grid/slot/header-slot.vue +2 -1
  21. package/demos/pc/app/icon/basic-usage.spec.js +8 -1
  22. package/demos/pc/app/icon/iconGroups.js +195 -195
  23. package/demos/pc/app/icon/list.spec.js +10 -5
  24. package/demos/pc/app/icon/show-title.spec.ts +8 -0
  25. package/demos/pc/app/layout/gutter-composition-api.vue +11 -0
  26. package/demos/pc/app/layout/gutter.spec.ts +3 -0
  27. package/demos/pc/app/layout/gutter.vue +11 -0
  28. package/demos/pc/app/layout/webdoc/layout.js +14 -3
  29. package/demos/pc/app/qr-code/webdoc/qr-code.js +6 -0
  30. package/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.js +3 -0
  31. package/demos/pc/app/select/copy-multi.spec.ts +15 -6
  32. package/demos/pc/app/select/is-drop-inherit-width.spec.ts +2 -3
  33. package/demos/pc/app/select/nest-grid-composition-api.vue +3 -1
  34. package/demos/pc/app/select/optimization.spec.ts +1 -0
  35. package/demos/pc/app/slide-bar/webdoc/slide-bar.js +4 -0
  36. package/demos/pc/app/tabs/tabs-draggable.spec.ts +8 -8
  37. package/demos/pc/app/tag/closable.spec.ts +1 -1
  38. package/demos/pc/app/tag/color3.spec.ts +1 -1
  39. package/demos/pc/app/tag/content.spec.ts +2 -2
  40. package/demos/pc/app/tag/create.spec.ts +3 -3
  41. package/demos/pc/app/tag/disabled.spec.ts +1 -1
  42. package/demos/pc/app/tag/effect.spec.ts +4 -3
  43. package/demos/pc/app/watermark/webdoc/watermark.js +6 -0
  44. package/demos/pc/app/wizard/btn-events-composition-api.vue +5 -5
  45. package/demos/pc/app/wizard/btn-events.spec.ts +63 -0
  46. package/demos/pc/app/wizard/btn-events.vue +5 -5
  47. package/demos/pc/app/wizard/page-guide.spec.ts +6 -6
  48. package/demos/pc/app/wizard/slot-step-button.spec.ts +1 -1
  49. package/demos/pc/app/wizard/time-line-flow.spec.ts +5 -5
  50. package/demos/pc/menus.js +43 -5
  51. package/demos/pc/webdoc/changelog.md +521 -305
  52. package/demos/pc/webdoc/installation-en.md +11 -6
  53. package/demos/pc/webdoc/installation.md +14 -8
  54. package/package.json +6 -6
  55. package/playground/App.vue +2 -2
  56. package/src/App.vue +2 -0
  57. package/src/tools/useBulletin.jsx +43 -0
  58. package/src/views/components/VersionTip.vue +9 -2
@@ -1,4 +1,199 @@
1
1
  export const iconGroups = {
2
+ Arrow: [
3
+ 'IconArrowDown',
4
+ 'IconArrowLeft',
5
+ 'IconArrowRight',
6
+ 'IconArrowUp',
7
+ 'IconAscending',
8
+ 'IconChevronDown',
9
+ 'IconChevronLeft',
10
+ 'IconChevronRight',
11
+ 'IconChevronUp',
12
+ 'IconDefault',
13
+ 'IconDeltaDownO',
14
+ 'IconDeltaDown',
15
+ 'IconDeltaLeftO',
16
+ 'IconDeltaLeft',
17
+ 'IconDeltaRightO',
18
+ 'IconDeltaRight',
19
+ 'IconDeltaUpO',
20
+ 'IconDeltaUp',
21
+ 'IconDoubleLeft',
22
+ 'IconDoubleRight',
23
+ 'IconDownO',
24
+ 'IconDown',
25
+ 'IconDownWard',
26
+ 'IconEnd',
27
+ 'IconLeftO',
28
+ 'IconLeftWard',
29
+ 'IconLeftWardArrow',
30
+ 'IconLeft',
31
+ 'IconPopup',
32
+ 'IconRightO',
33
+ 'IconRight',
34
+ 'IconRightward',
35
+ 'IconTriangleDown',
36
+ 'IconUpO',
37
+ 'IconUp',
38
+ 'IconUpWard'
39
+ ],
40
+ Brands: ['IconAngularjs', 'IconEspaceAuto', 'IconEspace', 'IconNodejs', 'IconReactjs', 'IconVuejs'],
41
+ Charts: ['IconAreaChart', 'IconDotChart', 'IconLineChart', 'IconPieChart', 'IconStatistics'],
42
+ Editor: [
43
+ 'IconEditorAlignCenter',
44
+ 'IconEditorAlignLeft',
45
+ 'IconEditorAlignRight',
46
+ 'IconEditorBackground',
47
+ 'IconEditorBold',
48
+ 'IconEditorCode',
49
+ 'IconEditorDeleteline',
50
+ 'IconEditorEraser',
51
+ 'IconEditorItalic',
52
+ 'IconEditorLeftBorder',
53
+ 'IconEditorList',
54
+ 'IconEditorListDot',
55
+ 'IconEditorListNum',
56
+ 'IconEditorMenuLeft',
57
+ 'IconEditorMenuRight',
58
+ 'IconEditorQuote',
59
+ 'IconEditorRedo',
60
+ 'IconEditorRightBorder',
61
+ 'IconEditorSub',
62
+ 'IconEditorSubtitle',
63
+ 'IconEditorSuper',
64
+ 'IconEditorTable',
65
+ 'IconEditorTextcolor',
66
+ 'IconEditorTitle',
67
+ 'IconEditorUnderline',
68
+ 'IconEditorUndo',
69
+ 'IconEditorVideo',
70
+ 'IconOperationfaildL',
71
+ 'IconOuterLink',
72
+ 'IconTextDecoration',
73
+ 'IconUnderline',
74
+ 'IconWriting'
75
+ ],
76
+ IT: [
77
+ 'IconAdministrator',
78
+ 'IconDataSource',
79
+ 'IconDesktopView',
80
+ 'IconEmailAdd',
81
+ 'IconEmailCircle',
82
+ 'IconExcel',
83
+ 'IconException',
84
+ 'IconExclamation',
85
+ 'IconLanguage',
86
+ 'IconMailContent',
87
+ 'IconMail',
88
+ 'IconMarkOn',
89
+ 'IconMobileView',
90
+ 'IconMobile',
91
+ 'IconPrintPreview',
92
+ 'IconReplies',
93
+ 'IconSent',
94
+ 'IconShare',
95
+ 'IconShareArrow',
96
+ 'IconShoppingCard',
97
+ 'IconTabletView',
98
+ 'IconUnlock',
99
+ 'IconUnsent',
100
+ 'IconUser',
101
+ 'IconVersiontree',
102
+ 'IconWebPlus',
103
+ 'IconJs'
104
+ ],
105
+ Media: [
106
+ 'IconCourse',
107
+ 'IconCustom',
108
+ 'IconCustomerService',
109
+ 'IconDialog',
110
+ 'IconDialog2',
111
+ 'IconInformation',
112
+ 'IconMessageCircle',
113
+ 'IconPagerFirst',
114
+ 'IconPagerLast',
115
+ 'IconPagerNext',
116
+ 'IconPagerPrev',
117
+ 'IconPauseCircle',
118
+ 'IconPause',
119
+ 'IconPicture',
120
+ 'IconStartCircle',
121
+ 'IconStart',
122
+ 'IconTime'
123
+ ],
124
+ Objects: [
125
+ 'IconBoat',
126
+ 'IconCalculator',
127
+ 'IconCalendar',
128
+ 'IconClockWork',
129
+ 'IconCloudDownload',
130
+ 'IconCloudUpload',
131
+ 'IconCoin',
132
+ 'IconTaskCooperation',
133
+ 'IconTelephoneCircle',
134
+ 'IconTelephone'
135
+ ],
136
+ Symbols: [
137
+ 'IconBusy',
138
+ 'IconCheck',
139
+ 'IconCheckedLinear',
140
+ 'IconCheckedSur',
141
+ 'IconCloseCircle',
142
+ 'IconCloseSquare',
143
+ 'IconCode',
144
+ 'IconCommission',
145
+ 'IconCueL',
146
+ 'IconCrop',
147
+ 'IconDotIpv4',
148
+ 'IconEllipsis',
149
+ 'IconError',
150
+ 'IconEyeclose',
151
+ 'IconEyeopen',
152
+ 'IconFrownO',
153
+ 'IconFrown',
154
+ 'IconGroup',
155
+ 'IconHeartempty',
156
+ 'IconHelpCircle',
157
+ 'IconHelpQuery',
158
+ 'IconHelpSolid',
159
+ 'IconHelp',
160
+ 'IconHelpful',
161
+ 'IconLeave',
162
+ 'IconLoading',
163
+ 'IconLock',
164
+ 'IconMale',
165
+ 'IconMeh',
166
+ 'IconMore',
167
+ 'IconPlus',
168
+ 'IconNodeOpen',
169
+ 'IconNode',
170
+ 'IconNone',
171
+ 'IconOffLine',
172
+ 'IconOnLine',
173
+ 'IconPanelMax',
174
+ 'IconPanelMini',
175
+ 'IconPanelNormal',
176
+ 'IconRadio',
177
+ 'IconRadioselected',
178
+ 'IconSmileO',
179
+ 'IconSmile',
180
+ 'IconStarActive',
181
+ 'IconStarDisable',
182
+ 'IconStarO',
183
+ 'IconStop',
184
+ 'IconSuccess',
185
+ 'IconSuccessful',
186
+ 'IconInfoSolid',
187
+ 'IconInfoCircle',
188
+ 'IconInfo',
189
+ 'IconOperationfaild',
190
+ 'IconUnknow',
191
+ 'IconUnknown',
192
+ 'IconWarning',
193
+ 'IconWarningTriangle',
194
+ 'IconClose',
195
+ 'IconYes'
196
+ ],
2
197
  Tools: [
3
198
  'IconAdd',
4
199
  'IconAlignBaseline',
@@ -119,200 +314,5 @@ export const iconGroups = {
119
314
  'IconView',
120
315
  'IconZoomIn',
121
316
  'IconZoomOut'
122
- ],
123
- Editor: [
124
- 'IconEditorAlignCenter',
125
- 'IconEditorAlignLeft',
126
- 'IconEditorAlignRight',
127
- 'IconEditorBackground',
128
- 'IconEditorBold',
129
- 'IconEditorCode',
130
- 'IconEditorDeleteline',
131
- 'IconEditorEraser',
132
- 'IconEditorItalic',
133
- 'IconEditorLeftBorder',
134
- 'IconEditorList',
135
- 'IconEditorListDot',
136
- 'IconEditorListNum',
137
- 'IconEditorMenuLeft',
138
- 'IconEditorMenuRight',
139
- 'IconEditorQuote',
140
- 'IconEditorRedo',
141
- 'IconEditorRightBorder',
142
- 'IconEditorSub',
143
- 'IconEditorSubtitle',
144
- 'IconEditorSuper',
145
- 'IconEditorTable',
146
- 'IconEditorTextcolor',
147
- 'IconEditorTitle',
148
- 'IconEditorUnderline',
149
- 'IconEditorUndo',
150
- 'IconEditorVideo',
151
- 'IconOperationfaildL',
152
- 'IconOuterLink',
153
- 'IconTextDecoration',
154
- 'IconUnderline',
155
- 'IconWriting'
156
- ],
157
- Arrow: [
158
- 'IconArrowDown',
159
- 'IconArrowLeft',
160
- 'IconArrowRight',
161
- 'IconArrowUp',
162
- 'IconAscending',
163
- 'IconChevronDown',
164
- 'IconChevronLeft',
165
- 'IconChevronRight',
166
- 'IconChevronUp',
167
- 'IconDefault',
168
- 'IconDeltaDownO',
169
- 'IconDeltaDown',
170
- 'IconDeltaLeftO',
171
- 'IconDeltaLeft',
172
- 'IconDeltaRightO',
173
- 'IconDeltaRight',
174
- 'IconDeltaUpO',
175
- 'IconDeltaUp',
176
- 'IconDoubleLeft',
177
- 'IconDoubleRight',
178
- 'IconDownO',
179
- 'IconDown',
180
- 'IconDownWard',
181
- 'IconEnd',
182
- 'IconLeftO',
183
- 'IconLeftWard',
184
- 'IconLeftWardArrow',
185
- 'IconLeft',
186
- 'IconPopup',
187
- 'IconRightO',
188
- 'IconRight',
189
- 'IconRightward',
190
- 'IconTriangleDown',
191
- 'IconUpO',
192
- 'IconUp',
193
- 'IconUpWard'
194
- ],
195
- Symbols: [
196
- 'IconBusy',
197
- 'IconCheck',
198
- 'IconCheckedLinear',
199
- 'IconCheckedSur',
200
- 'IconCloseCircle',
201
- 'IconCloseSquare',
202
- 'IconCode',
203
- 'IconCommission',
204
- 'IconCueL',
205
- 'IconCrop',
206
- 'IconDotIpv4',
207
- 'IconEllipsis',
208
- 'IconError',
209
- 'IconEyeclose',
210
- 'IconEyeopen',
211
- 'IconFrownO',
212
- 'IconFrown',
213
- 'IconGroup',
214
- 'IconHeartempty',
215
- 'IconHelpCircle',
216
- 'IconHelpQuery',
217
- 'IconHelpSolid',
218
- 'IconHelp',
219
- 'IconHelpful',
220
- 'IconLeave',
221
- 'IconLoading',
222
- 'IconLock',
223
- 'IconMale',
224
- 'IconMeh',
225
- 'IconMore',
226
- 'IconPlus',
227
- 'IconNodeOpen',
228
- 'IconNode',
229
- 'IconNone',
230
- 'IconOffLine',
231
- 'IconOnLine',
232
- 'IconPanelMax',
233
- 'IconPanelMini',
234
- 'IconPanelNormal',
235
- 'IconRadio',
236
- 'IconRadioselected',
237
- 'IconSmileO',
238
- 'IconSmile',
239
- 'IconStarActive',
240
- 'IconStarDisable',
241
- 'IconStarO',
242
- 'IconStop',
243
- 'IconSuccess',
244
- 'IconSuccessful',
245
- 'IconInfoSolid',
246
- 'IconInfoCircle',
247
- 'IconInfo',
248
- 'IconOperationfaild',
249
- 'IconUnknow',
250
- 'IconUnknown',
251
- 'IconWarning',
252
- 'IconWarningTriangle',
253
- 'IconClose',
254
- 'IconYes'
255
- ],
256
- Media: [
257
- 'IconCourse',
258
- 'IconCustom',
259
- 'IconCustomerService',
260
- 'IconDialog',
261
- 'IconDialog2',
262
- 'IconInformation',
263
- 'IconMessageCircle',
264
- 'IconPagerFirst',
265
- 'IconPagerLast',
266
- 'IconPagerNext',
267
- 'IconPagerPrev',
268
- 'IconPauseCircle',
269
- 'IconPause',
270
- 'IconPicture',
271
- 'IconStartCircle',
272
- 'IconStart',
273
- 'IconTime'
274
- ],
275
- Brands: ['IconAngularjs', 'IconEspaceAuto', 'IconEspace', 'IconNodejs', 'IconReactjs', 'IconVuejs'],
276
- Objects: [
277
- 'IconBoat',
278
- 'IconCalculator',
279
- 'IconCalendar',
280
- 'IconClockWork',
281
- 'IconCloudDownload',
282
- 'IconCloudUpload',
283
- 'IconCoin',
284
- 'IconTaskCooperation',
285
- 'IconTelephoneCircle',
286
- 'IconTelephone'
287
- ],
288
- Charts: ['IconAreaChart', 'IconDotChart', 'IconLineChart', 'IconPieChart', 'IconStatistics'],
289
- IT: [
290
- 'IconAdministrator',
291
- 'IconDataSource',
292
- 'IconDesktopView',
293
- 'IconEmailAdd',
294
- 'IconEmailCircle',
295
- 'IconExcel',
296
- 'IconException',
297
- 'IconExclamation',
298
- 'IconLanguage',
299
- 'IconMailContent',
300
- 'IconMail',
301
- 'IconMarkOn',
302
- 'IconMobileView',
303
- 'IconMobile',
304
- 'IconPrintPreview',
305
- 'IconReplies',
306
- 'IconSent',
307
- 'IconShare',
308
- 'IconShareArrow',
309
- 'IconShoppingCard',
310
- 'IconTabletView',
311
- 'IconUnlock',
312
- 'IconUnsent',
313
- 'IconUser',
314
- 'IconVersiontree',
315
- 'IconWebPlus',
316
- 'IconJs'
317
317
  ]
318
318
  }
@@ -1,8 +1,13 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('test', async ({ page }) => {
4
- await page.goto('icon#show-title')
5
- await page.getByText('显示 Title').nth(1).click()
6
- await page.getByTitle('复制').locator('svg').click()
7
- await expect(page.locator('//*[@id="preview"]/div[2]/div[2]')).toHaveAttribute('title', '复制')
3
+ test('图标集', async ({ page }) => {
4
+ page.on('pageerror', (exception) => expect(exception).toBeNull())
5
+ await page.goto('icon#list')
6
+
7
+ const icons = page.locator('.svgs-item > .tiny-svg')
8
+
9
+ for (let i = 0; i < 10; i++) {
10
+ await expect(icons.nth(i)).toHaveCSS('width', '24px')
11
+ await expect(icons.nth(i)).toHaveCSS('height', '24px')
12
+ }
8
13
  })
@@ -0,0 +1,8 @@
1
+ import { test, expect } from '@playwright/test'
2
+
3
+ test('显示title', async ({ page }) => {
4
+ page.on('pageerror', (exception) => expect(exception).toBeNull())
5
+ await page.goto('icon#show-title')
6
+
7
+ await expect(page.getByTitle('复制')).toHaveCount(1)
8
+ })
@@ -12,6 +12,17 @@
12
12
  <div class="col">gutter {{ gutter }}px</div>
13
13
  </tiny-col>
14
14
  </tiny-row>
15
+ <tiny-row :gutter="0" noSpace>
16
+ <tiny-col :span="4">
17
+ <div class="col">noSpace</div>
18
+ </tiny-col>
19
+ <tiny-col :span="4">
20
+ <div class="col">noSpace</div>
21
+ </tiny-col>
22
+ <tiny-col :span="4">
23
+ <div class="col">noSpace</div>
24
+ </tiny-col>
25
+ </tiny-row>
15
26
  </tiny-layout>
16
27
  </div>
17
28
  </template>
@@ -13,4 +13,7 @@ test('gutter栅格间隔', async ({ page }) => {
13
13
 
14
14
  const row3 = layout.nth(2)
15
15
  await expect(row3.locator('div').first()).toHaveCSS('padding-left', '10px')
16
+
17
+ const row4 = layout.first()
18
+ await expect(row4).toHaveCSS('margin-left', '0px')
16
19
  })
@@ -12,6 +12,17 @@
12
12
  <div class="col">gutter {{ gutter }}px</div>
13
13
  </tiny-col>
14
14
  </tiny-row>
15
+ <tiny-row :gutter="0" noSpace>
16
+ <tiny-col :span="4">
17
+ <div class="col">noSpace</div>
18
+ </tiny-col>
19
+ <tiny-col :span="4">
20
+ <div class="col">noSpace</div>
21
+ </tiny-col>
22
+ <tiny-col :span="4">
23
+ <div class="col">noSpace</div>
24
+ </tiny-col>
25
+ </tiny-row>
15
26
  </tiny-layout>
16
27
  </div>
17
28
  </template>
@@ -81,8 +81,9 @@ export default {
81
81
  'name': { 'zh-CN': '栅格间隔', 'en-US': 'Gutter' },
82
82
  'desc': {
83
83
  'zh-CN': `
84
- 通过使用 <code>Row</code> 组件的 <code>gutter</code> 属性实现栅格间隔。
85
- 不设置 <code>gutter</code> 时,组件会默认为 <code>Col</code> 设置<code> 左右10px </code>的padding值。
84
+ 通过使用 <code>Row</code> 组件的 <code>gutter</code> 属性实现栅格间隔。<br>
85
+ 不设置 <code>gutter</code> 时,组件会默认为 <code>Col</code> 设置<code> 左右10px </code>的padding值<br>
86
+ 通过 <code>noSpace</code> 属性,让子项间没有间距。
86
87
  `,
87
88
  'en-US': `
88
89
  This is done by using the <code>gutter</code> property of the <code>Row</code> component.
@@ -156,10 +157,20 @@ export default {
156
157
  {
157
158
  'name': 'gutter',
158
159
  'type': 'number',
159
- 'defaultValue': '20',
160
+ 'defaultValue': '0',
160
161
  'desc': { 'zh-CN': '子项的间隔的像素', 'en-US': 'The spacing of the child items in pixels' },
161
162
  'demoId': 'gutter'
162
163
  },
164
+ {
165
+ 'name': 'noSpace',
166
+ 'type': 'boolean',
167
+ 'defaultValue': 'false',
168
+ 'desc': {
169
+ 'zh-CN': '子项没有间隔,相当于强制gutter=0的情况',
170
+ 'en-US': 'Child entries have no spacing, equivalent to forcing gutter=0'
171
+ },
172
+ 'demoId': 'gutter'
173
+ },
163
174
  {
164
175
  'name': 'justify',
165
176
  'type': 'string',
@@ -1,6 +1,12 @@
1
1
  export default {
2
2
  column: '2',
3
3
  owner: '',
4
+ metaData: {
5
+ stable: '3.12.0'
6
+ },
7
+ versionTipOption: {
8
+ stages: ['stable']
9
+ },
4
10
  demos: [
5
11
  {
6
12
  'demoId': 'basic-usage',
@@ -1,6 +1,9 @@
1
1
  export default {
2
2
  column: '1',
3
3
  owner: '',
4
+ metaData: {
5
+ experimental: '3.11.0'
6
+ },
4
7
  demos: [
5
8
  {
6
9
  'demoId': 'basic-usage',
@@ -3,15 +3,24 @@ import { test, expect } from '@playwright/test'
3
3
  test('多选复制单个标签', async ({ page }) => {
4
4
  await page.goto('select#copy-multi')
5
5
 
6
- await page.waitForTimeout(1000)
7
- await page.mouse.move(392, 316)
8
- await page.waitForTimeout(1000)
6
+ const wrap = page.locator('#copy-multi')
7
+ const select = wrap.locator('.tiny-select').nth(0)
8
+ const tag = select.locator('.tiny-tag').nth(0)
9
+ const tagBox = await tag.locator('span').boundingBox()
10
+ const x = tagBox.x + tagBox.width
11
+ const y = tagBox.y + tagBox.height - 5
12
+
13
+ await page.waitForTimeout(200)
14
+ await page.mouse.move(tagBox.x, tagBox.y)
15
+ await page.waitForTimeout(200)
9
16
  await page.mouse.down()
10
- await page.waitForTimeout(1000)
11
- await page.mouse.move(346, 316)
12
- await page.waitForTimeout(1000)
17
+ await page.waitForTimeout(200)
18
+ await page.mouse.move(x, y)
19
+ await page.waitForTimeout(200)
13
20
  await page.mouse.up()
21
+
14
22
  await page.keyboard.press('Control+C')
23
+ await page.waitForTimeout(200)
15
24
  const valueInput = page.locator('.copy-value .tiny-input__inner')
16
25
  await expect(valueInput).toHaveValue('')
17
26
  await valueInput.focus()
@@ -28,7 +28,6 @@ test('下拉弹框宽度与输入框一致', async ({ page }) => {
28
28
  await select.click()
29
29
  const inputBox = await input.boundingBox()
30
30
  const listitemBox = await option.first().boundingBox()
31
-
32
- const result = listitemBox.width === inputBox.width
33
- await expect(result).toBe(true)
31
+ const result = listitemBox.width - inputBox.width
32
+ await expect(result).toBeCloseTo(0, 0)
34
33
  })
@@ -36,7 +36,9 @@
36
36
  import { ref, reactive } from 'vue'
37
37
  import { Select as TinySelect } from '@opentiny/vue'
38
38
 
39
- const radioValue = ref('')
39
+ const value1 = ref('')
40
+ const value2 = reactive([])
41
+ const value3 = ref('')
40
42
 
41
43
  const gridOpSingle = reactive({
42
44
  data: [
@@ -16,6 +16,7 @@ test('单选虚拟滚动', async ({ page }) => {
16
16
  await page.waitForTimeout(1000)
17
17
  await expect(option.filter({ hasText: '黄金糕17' })).toBeHidden()
18
18
  await option.nth(9).scrollIntoViewIfNeeded()
19
+ await page.waitForTimeout(1000)
19
20
  await option.filter({ hasText: '黄金糕17' }).click()
20
21
  await expect(input).toHaveValue('黄金糕17')
21
22
  })
@@ -1,6 +1,10 @@
1
1
  export default {
2
2
  column: '2',
3
3
  owner: '',
4
+ metaData: {
5
+ deprecated: '3.12.0',
6
+ removed: '3.15.0'
7
+ },
4
8
  demos: [
5
9
  {
6
10
  'demoId': 'basic-usage',
@@ -5,25 +5,25 @@ test('可拖拽', async ({ page }) => {
5
5
  await page.goto('tabs#tabs-draggable')
6
6
 
7
7
  const items = page.getByRole('tab')
8
- const box1 = await items.nth(0).boundingBox()
9
- const box2 = await items.nth(1).boundingBox()
10
- const box3 = await items.nth(2).boundingBox()
11
- const arr2 = ['1', '3', '2']
8
+ const box2 = await page.getByRole('tab', { name: 'Tab 2' }).boundingBox()
9
+ const box3 = await page.getByRole('tab', { name: 'Tab 3' }).boundingBox()
10
+ const arr2 = ['2', '3', '1']
12
11
 
13
12
  for (let i = 0; i < 3; ++i) {
14
13
  await expect(items.nth(i)).toHaveText(`Tab ${i + 1}`)
15
14
  }
16
15
 
17
- await page.mouse.move(box1.x + box1.width / 2, box1.y + box1.height / 2)
16
+ await page.getByRole('tab', { name: 'Tab 1' }).hover()
18
17
  await page.mouse.down()
19
18
  await page.mouse.move(box2.x + box2.width / 2, box2.y + box2.height / 2)
19
+ await page.mouse.up()
20
20
 
21
+ await page.waitForTimeout(200)
22
+ await page.getByRole('tab', { name: 'Tab 1' }).hover()
21
23
  await page.mouse.down()
22
24
  await page.mouse.move(box3.x + box3.width / 2, box3.y + box3.height / 2)
23
25
  await page.mouse.up()
24
26
  for (let i = 0; i < 3; ++i) {
25
- await expect(items.nth(i)).toHaveText(`Tab ${i + 1}`)
26
- // 网页测试拖拽无法改变位置,示例测试时打开以下代码运行
27
- // await expect(items.nth(i)).toHaveText(`Tab ${arr2[i]}`)
27
+ await expect(items.nth(i)).toHaveText(`Tab ${arr2[i]}`)
28
28
  }
29
29
  })
@@ -6,7 +6,7 @@ test('是否正常移除标签', async ({ page }) => {
6
6
 
7
7
  const first = page.locator('.tiny-tag').filter({ hasText: '标签一' })
8
8
  const close = first.locator('.tiny-tag__close')
9
- const modal = page.locator('.tiny-modal__box')
9
+ const modal = page.locator('.tiny-modal__box').nth(0)
10
10
 
11
11
  await close.click()
12
12
  await modal.waitFor({ state: 'attached', timeout: 100 })
@@ -4,7 +4,7 @@ test('边框和自定义背景色', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).not.toBeNull())
5
5
  await page.goto('tag#color3')
6
6
 
7
- const tags = page.locator('.tiny-tag')
7
+ const tags = page.locator('.all-demos-container').locator('.tiny-tag')
8
8
  const first = tags.nth(0)
9
9
 
10
10
  await expect(tags).toHaveClass([
@@ -1,10 +1,10 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('progress 正常显示', async ({ page }) => {
3
+ test('配置式标签', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).not.toBeNull())
5
5
  await page.goto('tag#content')
6
6
 
7
- const tag = page.locator('#preview').getByText('配置式标签')
7
+ const tag = page.locator('.all-demos-container').getByText('配置式标签')
8
8
 
9
9
  await expect(tag).toHaveCount(1)
10
10
  })