@opentiny/vue-docs 2.2.3 → 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 (51) 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/grid/data-source/static-data-composition-api.vue +1 -1
  13. package/demos/pc/app/grid/expand/expand-config-composition-api.vue +1 -1
  14. package/demos/pc/app/grid/filter/simple-date-filter.spec.ts +2 -20
  15. package/demos/pc/app/grid/operation-column/selection-config-composition-api.vue +1 -1
  16. package/demos/pc/app/grid/operation-column/selection-config.vue +2 -3
  17. package/demos/pc/app/grid/slot/editor-slot-composition-api.vue +1 -1
  18. package/demos/pc/app/grid/slot/header-slot-composition-api.vue +4 -1
  19. package/demos/pc/app/grid/slot/header-slot.vue +2 -1
  20. package/demos/pc/app/icon/basic-usage.spec.js +8 -1
  21. package/demos/pc/app/icon/iconGroups.js +195 -195
  22. package/demos/pc/app/icon/list.spec.js +10 -5
  23. package/demos/pc/app/icon/show-title.spec.ts +8 -0
  24. package/demos/pc/app/layout/gutter-composition-api.vue +11 -0
  25. package/demos/pc/app/layout/gutter.spec.ts +3 -0
  26. package/demos/pc/app/layout/gutter.vue +11 -0
  27. package/demos/pc/app/layout/webdoc/layout.js +14 -3
  28. package/demos/pc/app/select/copy-multi.spec.ts +15 -6
  29. package/demos/pc/app/select/is-drop-inherit-width.spec.ts +2 -3
  30. package/demos/pc/app/select/nest-grid-composition-api.vue +3 -1
  31. package/demos/pc/app/select/optimization.spec.ts +1 -0
  32. package/demos/pc/app/tag/closable.spec.ts +1 -1
  33. package/demos/pc/app/tag/color3.spec.ts +1 -1
  34. package/demos/pc/app/tag/content.spec.ts +2 -2
  35. package/demos/pc/app/tag/create.spec.ts +3 -3
  36. package/demos/pc/app/tag/disabled.spec.ts +1 -1
  37. package/demos/pc/app/tag/effect.spec.ts +4 -3
  38. package/demos/pc/app/wizard/btn-events-composition-api.vue +5 -5
  39. package/demos/pc/app/wizard/btn-events.spec.ts +63 -0
  40. package/demos/pc/app/wizard/btn-events.vue +5 -5
  41. package/demos/pc/app/wizard/page-guide.spec.ts +6 -6
  42. package/demos/pc/app/wizard/slot-step-button.spec.ts +1 -1
  43. package/demos/pc/app/wizard/time-line-flow.spec.ts +5 -5
  44. package/demos/pc/menus.js +1 -1
  45. package/demos/pc/webdoc/changelog.md +521 -305
  46. package/demos/pc/webdoc/installation-en.md +11 -6
  47. package/demos/pc/webdoc/installation.md +14 -8
  48. package/package.json +6 -6
  49. package/playground/App.vue +2 -2
  50. package/src/App.vue +2 -0
  51. package/src/tools/useBulletin.jsx +43 -0
@@ -2,7 +2,7 @@ import { test, expect } from '@playwright/test'
2
2
 
3
3
  test('change事件', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
- await page.goto('anchor#on-change')
5
+ await page.goto('anchor#change')
6
6
 
7
7
  const anchor = page.locator('.tiny-anchor')
8
8
  const link1 = anchor.getByRole('link', { name: '演示' })
@@ -11,7 +11,6 @@ test('change事件', async ({ page }) => {
11
11
 
12
12
  await link1.click()
13
13
  await expect(modal).toHaveCount(1)
14
- await expect(modal).toHaveText(/#demonstrate/)
15
14
  await link2.click()
16
15
  await expect(modal).toHaveCount(2)
17
16
  await expect(modal.last()).toHaveText(/#on-change/)
@@ -4,8 +4,9 @@ test('固定模式', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('anchor#is-affix')
6
6
 
7
- const button = page.locator('.tiny-switch')
8
- const anchor = page.locator('.tiny-anchor__wrapper')
7
+ const preview = page.locator('.all-demos-container')
8
+ const button = preview.locator('.tiny-switch')
9
+ const anchor = preview.locator('.tiny-anchor__wrapper')
9
10
  const { x: x1, y: y1 } = await anchor.boundingBox()
10
11
 
11
12
  await button.click()
@@ -14,5 +15,5 @@ test('固定模式', async ({ page }) => {
14
15
  await page.mouse.wheel(0, 500)
15
16
  const { x: x2, y: y2 } = await anchor.boundingBox()
16
17
  await expect(x1).toEqual(x2)
17
- await expect(y1).toEqual(y2)
18
+ await expect(y2).toBeGreaterThanOrEqual(y2)
18
19
  })
@@ -4,22 +4,22 @@ test('滚动容器', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('anchor#set-container')
6
6
 
7
- const anchor = page.locator('.tiny-anchor')
8
- const container = page.locator('#container')
7
+ const preview = page.locator('.all-demos-container')
8
+ const anchor = preview.locator('.tiny-anchor')
9
9
  const link2 = anchor.getByRole('link', { name: 'Sec 2' })
10
10
  const link3 = anchor.getByRole('link', { name: 'Sec 3' }).first()
11
- const sec2 = page.locator('#sec-2')
12
- const sec3 = page.locator('#sec-3')
13
- const { x: x1, y: y1 } = await container.boundingBox()
11
+ const sec1 = preview.locator('#sec-1')
12
+ const sec2 = preview.locator('#sec-2')
13
+ const sec3 = preview.locator('#sec-3')
14
+ const { x: x1 } = await sec1.boundingBox()
14
15
 
15
16
  await link2.click()
16
17
  await page.waitForTimeout(400)
17
18
  const { x: x2, y: y2 } = await sec2.boundingBox()
18
19
  await expect(x2).toEqual(x1)
19
- await expect(y2).toEqual(y1)
20
20
  await link3.click()
21
21
  await page.waitForTimeout(400) // 滚动的距离较长,需要足够的等待时间
22
22
  const { x: x3, y: y3 } = await sec3.boundingBox()
23
23
  await expect(x3).toEqual(x1)
24
- await expect(y3).toEqual(y1)
24
+ await expect(y3).toEqual(y2)
25
25
  })
@@ -51,9 +51,10 @@ export default {
51
51
  'type': 'string',
52
52
  'defaultValue': '',
53
53
  'desc': {
54
- 'zh-CN': '用于单页面 hash 路由模式时指定滚动容器的id值,不指定则默认为 HTML 文档的根节点 body 元素',
54
+ 'zh-CN':
55
+ '用于单页面 hash 路由模式时指定滚动容器的id值,id为空时则滚动容器默认为 HTML 文档的根节点 body 元素',
55
56
  'en-US':
56
- 'When using single page hash routing mode, specify the id value of the scrolling container. If not specified, it defaults to the root node body element of the HTML document'
57
+ 'When used in single page hash routing mode, specify the id value of the scrolling container. If the id is empty, the scrolling container defaults to the body element of the root node of the HTML document'
57
58
  },
58
59
  'demoId': 'set-container'
59
60
  },
@@ -97,23 +98,13 @@ export default {
97
98
  }
98
99
  ],
99
100
  'events': [
100
- {
101
- 'name': 'link-click',
102
- 'type': '(event: Event, currentLink: {link: string, title: string}) => void',
103
- 'defaultValue': '',
104
- 'desc': {
105
- 'zh-CN': '锚点点击事件; currentLink: {link: 当前锚点链接, title: 当前锚点标题 }',
106
- 'en-US': 'Anchor click event; currentLink: {link: Current anchor link, title: Current anchor title}'
107
- },
108
- 'demoId': 'set-container'
109
- },
110
101
  {
111
102
  'name': 'change',
112
103
  'type': '(hash: string) => void',
113
104
  'defaultValue': '',
114
105
  'desc': {
115
- 'zh-CN': '锚点链接改变事件; hash: 当前锚点的 hash 值',
116
- 'en-US': 'Anchor link change event; hash: hash value of the current anchor point'
106
+ 'zh-CN': '锚点链接改变事件',
107
+ 'en-US': 'Anchor link change event'
117
108
  },
118
109
  'demoId': 'change'
119
110
  },
@@ -122,11 +113,21 @@ export default {
122
113
  'type': '(hash: string) => void',
123
114
  'defaultValue': '',
124
115
  'desc': {
125
- 'zh-CN': '[deprecated v3.12.0废弃,v3.17.0移除;移除原因:命名规范,使用change代替]',
116
+ 'zh-CN': '使用change代替;[deprecated v3.12.0废弃,v3.17.0移除;移除原因:命名规范]',
126
117
  'en-US':
127
- '[deprecated v3.12.0 abandoned, v3.17.0 removed; reason for removal: naming convention, use change instead]'
118
+ 'use change instead [deprecated v3.12.0 abandoned, v3.17.0 removed; reason for removal: naming convention]'
128
119
  },
129
120
  'demoId': 'change'
121
+ },
122
+ {
123
+ 'name': 'link-click',
124
+ 'type': '(event: Event, currentLink: {link: string, title: string}) => void',
125
+ 'defaultValue': '',
126
+ 'desc': {
127
+ 'zh-CN': '锚点点击事件',
128
+ 'en-US': 'Anchor click event'
129
+ },
130
+ 'demoId': 'set-container'
130
131
  }
131
132
  ],
132
133
  'slots': []
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <tiny-layout>
3
3
  <tiny-row>
4
- <tiny-button>按钮</tiny-button>
4
+ <tiny-button>默认按钮</tiny-button>
5
5
  <tiny-button type="primary" native-type="submit"> 主要按钮 </tiny-button>
6
6
  <tiny-button type="success"> 成功按钮 </tiny-button>
7
7
  <tiny-button type="info"> 信息按钮 </tiny-button>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <tiny-layout>
3
3
  <tiny-row>
4
- <tiny-button>按钮</tiny-button>
4
+ <tiny-button>默认按钮</tiny-button>
5
5
  <tiny-button type="primary" native-type="submit"> 主要按钮 </tiny-button>
6
6
  <tiny-button type="success"> 成功按钮 </tiny-button>
7
7
  <tiny-button type="info"> 信息按钮 </tiny-button>
@@ -2,7 +2,6 @@
2
2
  <tiny-layout>
3
3
  <tiny-row> 是否禁用:<tiny-switch v-model="disabled"></tiny-switch> </tiny-row>
4
4
  <tiny-row>
5
- <tiny-button :icon="IconSearch" type="text" size="mini" :disabled="disabled"></tiny-button>
6
5
  <tiny-button :disabled="disabled">默认按钮</tiny-button>
7
6
  <tiny-button type="primary" :disabled="disabled">主要按钮</tiny-button>
8
7
  <tiny-button type="success" :disabled="disabled">成功按钮</tiny-button>
@@ -9,6 +9,9 @@ test('测试禁用状态是否生效', async ({ page }) => {
9
9
 
10
10
  await switchBtn.click()
11
11
  await expect(demo.locator('.tiny-button').first()).toBeDisabled()
12
+ await expect(demo.locator('.tiny-button').first()).toHaveCSS('background-color', 'rgb(245, 245, 246)')
13
+ await expect(demo.locator('.tiny-button').first()).toHaveCSS('color', 'rgb(173, 176, 184)')
14
+ await expect(demo.locator('.tiny-button').first()).toHaveCSS('border-bottom-color', 'rgb(223, 225, 230)')
12
15
  await expect(demo.getByRole('button', { name: '默认按钮' }).first()).toBeDisabled()
13
16
  await expect(demo.getByRole('button', { name: '主要按钮' }).first()).toBeDisabled()
14
17
  await expect(demo.getByRole('button', { name: '成功按钮' }).first()).toBeDisabled()
@@ -2,7 +2,6 @@
2
2
  <tiny-layout>
3
3
  <tiny-row> 是否禁用:<tiny-switch v-model="disabled"></tiny-switch> </tiny-row>
4
4
  <tiny-row>
5
- <tiny-button :icon="IconSearch" type="text" size="mini" :disabled="disabled"></tiny-button>
6
5
  <tiny-button :disabled="disabled">默认按钮</tiny-button>
7
6
  <tiny-button type="primary" :disabled="disabled">主要按钮</tiny-button>
8
7
  <tiny-button type="success" :disabled="disabled">成功按钮</tiny-button>
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <tiny-layout>
4
4
  <tiny-row>
5
- <tiny-button :icon="TinyIconSearch" type="text"> </tiny-button>
5
+ <tiny-button :icon="TinyIconSearch"> 图标按钮 </tiny-button>
6
6
  <tiny-button type="primary" :icon="TinyIconEdit"> 图标按钮 </tiny-button>
7
7
  <tiny-button type="success" :icon="TinyIconYes"> 图标按钮 </tiny-button>
8
8
  <tiny-button type="info" :icon="TinyIconMail"> 图标按钮 </tiny-button>
@@ -10,6 +10,7 @@
10
10
  <tiny-button type="danger" :icon="TinyIconDel"> 图标按钮 </tiny-button>
11
11
  </tiny-row>
12
12
  <tiny-row>
13
+ <tiny-button :icon="TinyIconSearch"> </tiny-button>
13
14
  <tiny-button type="primary" :icon="TinyIconEdit"> </tiny-button>
14
15
  <tiny-button type="success" :icon="TinyIconYes"> </tiny-button>
15
16
  <tiny-button type="info" :icon="TinyIconMail"></tiny-button>
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <tiny-layout>
4
4
  <tiny-row>
5
- <tiny-button :icon="IconSearch" type="text"> </tiny-button>
5
+ <tiny-button :icon="IconSearch"> 图标按钮 </tiny-button>
6
6
  <tiny-button type="primary" :icon="IconEdit"> 图标按钮 </tiny-button>
7
7
  <tiny-button type="success" :icon="IconYes"> 图标按钮 </tiny-button>
8
8
  <tiny-button type="info" :icon="IconMail"> 图标按钮 </tiny-button>
@@ -10,6 +10,7 @@
10
10
  <tiny-button type="danger" :icon="IconDel"> 图标按钮 </tiny-button>
11
11
  </tiny-row>
12
12
  <tiny-row>
13
+ <tiny-button :icon="IconSearch"> </tiny-button>
13
14
  <tiny-button type="primary" :icon="IconEdit"> </tiny-button>
14
15
  <tiny-button type="success" :icon="IconYes"> </tiny-button>
15
16
  <tiny-button type="info" :icon="IconMail"></tiny-button>
@@ -17,7 +17,7 @@
17
17
 
18
18
  <script setup lang="jsx">
19
19
  import { ref } from 'vue'
20
- import { Grid as TinyGrid, GridColumn as TinyGridColumn } from '@opentiny/vue'
20
+ import { Grid as TinyGrid, GridColumn as TinyGridColumn, Button as TinyButton } from '@opentiny/vue'
21
21
 
22
22
  const tableData = ref([
23
23
  {
@@ -84,7 +84,7 @@ onMounted(() => {
84
84
 
85
85
  allData.forEach((item, index) => {
86
86
  if (index % 2 === 0) {
87
- expandConfigData.value.expandRowKeys.push(item._RID) // 添加默认展开指定行
87
+ expandConfigData.expandRowKeys.push(item._RID) // 添加默认展开指定行
88
88
  }
89
89
  })
90
90
  })
@@ -4,29 +4,11 @@ test('简化版筛选面板-时间日期菜单', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('grid-filter#filter-simple-date-filter')
6
6
  await page.getByRole('cell', { name: '开始时间' }).getByRole('img').click()
7
- await page
8
- .locator('li')
9
- .filter({
10
- hasText: '开始日期2023 年11 月日一二三四五六29303112345678910111213141516171819202122232425262728293012'
11
- })
12
- .getByRole('textbox')
13
- .click()
14
- await page.getByRole('textbox', { name: '选择日期' }).click()
7
+ await page.locator('.tiny-input__suffix-inner').nth(0).click()
15
8
  await page.getByRole('textbox', { name: '选择日期' }).fill('2021-12-03')
16
- await page.getByRole('textbox', { name: '选择时间' }).click()
17
9
  await page.getByRole('button', { name: '确定' }).nth(1).click()
18
- await page.getByRole('button', { name: '确定' }).nth(1).click()
19
- await page
20
- .locator('li')
21
- .filter({
22
- hasText: '结束日期2023 年11 月日一二三四五六29303112345678910111213141516171819202122232425262728293012'
23
- })
24
- .getByRole('textbox')
25
- .click()
26
- await page.getByRole('textbox', { name: '选择日期' }).click()
10
+ await page.locator('.tiny-input__suffix-inner').nth(1).click()
27
11
  await page.getByRole('textbox', { name: '选择日期' }).fill('2023-11-19')
28
- await page.getByRole('textbox', { name: '选择时间' }).click()
29
- await page.getByRole('button', { name: '确定' }).nth(1).click()
30
12
  await page.getByRole('button', { name: '确定' }).nth(1).click()
31
13
  await page.getByRole('button', { name: '确定' }).click()
32
14
  await expect(page.getByRole('cell', { name: 'Elisa Menez' }).getByText('Elisa Menez')).toBeVisible()
@@ -30,7 +30,7 @@
30
30
 
31
31
  <script setup lang="jsx">
32
32
  import { ref } from 'vue'
33
- import { Grid as TinyGrid, GridColumn as TinyGridColumn, Button as TinyButton } from '@opentiny/vue'
33
+ import { Grid as TinyGrid, GridColumn as TinyGridColumn } from '@opentiny/vue'
34
34
 
35
35
  const tableData = ref([
36
36
  {
@@ -29,13 +29,12 @@
29
29
  </template>
30
30
 
31
31
  <script lang="jsx">
32
- import { Grid, GridColumn, Button } from '@opentiny/vue'
32
+ import { Grid, GridColumn } from '@opentiny/vue'
33
33
 
34
34
  export default {
35
35
  components: {
36
36
  TinyGrid: Grid,
37
- TinyGridColumn: GridColumn,
38
- TinyButton: Button
37
+ TinyGridColumn: GridColumn
39
38
  },
40
39
  data() {
41
40
  const tableData = [
@@ -15,7 +15,7 @@
15
15
  </div>
16
16
  </template>
17
17
 
18
- <script>
18
+ <script setup>
19
19
  import { ref } from 'vue'
20
20
  import { Grid as TinyGrid, GridColumn as TinyGridColumn, Input as TinyInput } from '@opentiny/vue'
21
21
 
@@ -5,7 +5,9 @@
5
5
  <tiny-grid-column field="name" title="名称"></tiny-grid-column>
6
6
  <tiny-grid-column field="employees" title="员工人数"></tiny-grid-column>
7
7
  <tiny-grid-column field="area" title="所属区域">
8
- <template #header> <icon-mark-on></icon-mark-on> <span class="location-area">位置区域</span> </template>
8
+ <template #header>
9
+ <tiny-icon-mark-on></tiny-icon-mark-on> <span class="location-area">位置区域</span>
10
+ </template>
9
11
  </tiny-grid-column>
10
12
  <tiny-grid-column field="address" title="地址"></tiny-grid-column>
11
13
  <tiny-grid-column field="introduction" title="公司简介" show-overflow></tiny-grid-column>
@@ -70,6 +72,7 @@ const tableData = ref([
70
72
  ])
71
73
  const TinyIconMarkOn = IconMarkOn()
72
74
  </script>
75
+
73
76
  <style scoped>
74
77
  .location-area {
75
78
  margin-left: 10px;
@@ -13,7 +13,7 @@
13
13
  </div>
14
14
  </template>
15
15
 
16
- <script lang="jsx">
16
+ <script>
17
17
  import { Grid, GridColumn } from '@opentiny/vue'
18
18
  import { IconMarkOn } from '@opentiny/vue-icon'
19
19
 
@@ -79,6 +79,7 @@ export default {
79
79
  }
80
80
  }
81
81
  </script>
82
+
82
83
  <style scoped>
83
84
  .location-area {
84
85
  margin-left: 10px;
@@ -4,5 +4,12 @@ test('test', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('icon#basic-usage')
6
6
 
7
- await expect(page.locator('.icon-demo > svg').first()).toHaveCSS('font-size', '48px')
7
+ const icons = page.locator('.icon-demo > svg')
8
+
9
+ await expect(icons.first()).toHaveCSS('font-size', '48px')
10
+
11
+ for (let i = 0; i < 5; i++) {
12
+ await expect(icons.nth(i)).toHaveCSS('width', '48px')
13
+ await expect(icons.nth(i)).toHaveCSS('height', '48px')
14
+ }
8
15
  })