diff --git a/.github/workflows/auto-all-publish.yml b/.github/workflows/auto-all-publish.yml
index 042c623577..3c44781f92 100644
--- a/.github/workflows/auto-all-publish.yml
+++ b/.github/workflows/auto-all-publish.yml
@@ -9,7 +9,6 @@ jobs:
build:
runs-on: windows-latest
outputs:
- publishVersion: ${{ steps.parseTag.outputs.publishVersion }}
branchVersion: ${{ steps.parseTag.outputs.branchVersion }}
steps:
- name: Parse Tag
@@ -18,9 +17,7 @@ jobs:
with:
script: |
const tag = `${{ github.ref_name }}`
- const publishVersion = tag.slice(3)
- const branchVersion = tag.slice(1)
- core.setOutput('publishVersion', publishVersion)
+ const branchVersion = tag.slice(1).split('.').slice(0, 2).join('.') + '.0'
core.setOutput('branchVersion', branchVersion)
- name: CheckOut Code
@@ -53,10 +50,10 @@ jobs:
run: pnpm i --no-frozen-lockfile
- name: Run Build Components
- run: pnpm build:ui -t ${{ steps.parseTag.outputs.publishVersion }}
+ run: pnpm build:ui
- name: Run Build Sass Common
- run: pnpm build:ui saas-common -t ${{ steps.parseTag.outputs.publishVersion }} -d saas
+ run: pnpm build:ui saas-common -d saas
- name: Run Build Theme
run: pnpm build:theme
diff --git a/examples/docs/package.json b/examples/docs/package.json
index ea29be8f0f..f9984e12bd 100644
--- a/examples/docs/package.json
+++ b/examples/docs/package.json
@@ -20,6 +20,6 @@
"sortablejs": "1.15.0"
},
"devDependencies": {
- "@playwright/test": "~1.42.0"
+ "@playwright/test": "catalog:"
}
}
diff --git a/examples/sites/demos/pc/app/grid/custom/column-fixed.spec.js b/examples/sites/demos/pc/app/grid/custom/column-fixed.spec.js
index fd5027b5c4..8b4ad4a35b 100644
--- a/examples/sites/demos/pc/app/grid/custom/column-fixed.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/column-fixed.spec.js
@@ -2,10 +2,11 @@ import { test, expect } from '@playwright/test'
test('列冻结', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
await page.goto('grid-custom#custom-column-fixed')
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('row', { name: '员工数 显示 未冻结' }).getByTitle('未冻结').getByRole('img').click()
- await page.getByRole('row', { name: '员工数 显示 左冻结' }).getByTitle('左冻结').getByRole('img').click()
+ await custom.getByRole('row', { name: '员工数 ' }).getByTitle('未冻结').getByRole('img').click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('左冻结').getByRole('img').click()
await page.getByRole('button', { name: '确定' }).click()
await expect(page.getByRole('cell', { name: '员工数' })).toHaveCSS('right', '0px')
})
diff --git a/examples/sites/demos/pc/app/grid/custom/column-sort.spec.js b/examples/sites/demos/pc/app/grid/custom/column-sort.spec.js
index 69f5436d6a..8bfc4d377a 100644
--- a/examples/sites/demos/pc/app/grid/custom/column-sort.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/column-sort.spec.js
@@ -2,9 +2,10 @@ import { test, expect } from '@playwright/test'
test('个性化排序测试', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
await page.goto('grid-custom#custom-column-sort')
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('row', { name: '员工数 显示 未排序 未冻结' }).getByTitle('未排序').getByRole('img').click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('未排序').getByRole('img').click()
await page.getByRole('button', { name: '确定' }).click()
await page.waitForTimeout(200)
const sortBtn = await page.getByRole('cell', { name: '员工数' }).getByRole('img')
diff --git a/examples/sites/demos/pc/app/grid/custom/column-visible-hidden.spec.js b/examples/sites/demos/pc/app/grid/custom/column-visible-hidden.spec.js
index a9eb8f20c5..ee892590b7 100644
--- a/examples/sites/demos/pc/app/grid/custom/column-visible-hidden.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/column-visible-hidden.spec.js
@@ -2,9 +2,10 @@ import { test, expect } from '@playwright/test'
test('列显示隐藏', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
await page.goto('grid-custom#custom-column-visible-hidden')
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('row', { name: '员工数 显示 未冻结' }).getByTitle('显示').getByRole('img').click()
- await page.getByRole('button', { name: '确定' }).click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('显示').getByRole('img').click()
+ await custom.getByRole('button', { name: '确定' }).click()
await expect(page.getByRole('cell', { name: '员工数' })).not.toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/custom/multiple-column-sort.spec.js b/examples/sites/demos/pc/app/grid/custom/multiple-column-sort.spec.js
index 33e672bf93..8a1d565db4 100644
--- a/examples/sites/demos/pc/app/grid/custom/multiple-column-sort.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/multiple-column-sort.spec.js
@@ -2,16 +2,17 @@ import { test, expect } from '@playwright/test'
test('多列排序', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
await page.goto('grid-custom#custom-multiple-column-sort')
await page.locator('.tiny-grid-custom__setting-btn').first().click()
- await page.getByRole('row', { name: '员工数 显示 未排序 未冻结' }).getByTitle('未排序').locator('path').click()
- await page.getByTitle('未排序').locator('path').click()
- await page.getByRole('button', { name: '确定' }).click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('未排序').locator('path').click()
+ await custom.getByTitle('未排序').locator('path').click()
+ await custom.getByRole('button', { name: '确定' }).click()
await expect(page.locator('.tiny-grid-body__row').nth(3)).toContainText('GFD 科技有限公司')
await page.locator('.tiny-grid-custom__setting-btn').nth(1).click()
- await page.getByRole('row', { name: '员工数 显示 未排序 未冻结' }).getByTitle('未排序').getByRole('img').click()
- await page.getByTitle('未排序').getByRole('img').click()
- await page.getByRole('button', { name: '确定' }).click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('未排序').getByRole('img').click()
+ await custom.getByTitle('未排序').getByRole('img').click()
+ await custom.getByRole('button', { name: '确定' }).click()
await expect(page.locator('.tiny-grid-body__row').nth(10)).toContainText('YHN 科技有限公司')
})
diff --git a/examples/sites/demos/pc/app/grid/custom/ordercolumn-local.spec.js b/examples/sites/demos/pc/app/grid/custom/ordercolumn-local.spec.js
index 8f94cc81b5..fbb106a344 100644
--- a/examples/sites/demos/pc/app/grid/custom/ordercolumn-local.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/ordercolumn-local.spec.js
@@ -2,18 +2,19 @@ import { test, expect } from '@playwright/test'
test('个性化按钮点击事件', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
await page.goto('grid-custom#custom-ordercolumn-local')
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('cell', { name: '显示 未冻结' }).getByTitle('显示').getByRole('img').click()
- await page.getByRole('button', { name: '确定' }).click()
+ await custom.locator('.tiny-grid-body__row').first().getByTitle('显示').getByRole('img').click()
+ await custom.getByRole('button', { name: '确定' }).click()
await expect(
page.getByText('点击了确认按钮{"sortType":"page","pageSize":10,"columns":[{"property":"name","order":nu')
).toBeVisible()
await page.getByRole('button', { name: '确定' }).click()
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('button', { name: '重置' }).click()
+ await custom.getByRole('button', { name: '重置' }).click()
await expect(page.getByText('点击了重置按钮')).toBeVisible()
await page.getByRole('button', { name: '确定' }).nth(1).click()
- await page.getByRole('button', { name: '取消' }).click()
+ await custom.getByRole('button', { name: '取消' }).click()
await expect(page.getByText('点击了取消按钮 undefined')).toBeVisible
})
diff --git a/examples/sites/demos/pc/app/grid/custom/reset-resizable.spec.js b/examples/sites/demos/pc/app/grid/custom/reset-resizable.spec.js
index 111237fba2..ce160c13c0 100644
--- a/examples/sites/demos/pc/app/grid/custom/reset-resizable.spec.js
+++ b/examples/sites/demos/pc/app/grid/custom/reset-resizable.spec.js
@@ -30,10 +30,12 @@ test.describe('手动重置列操作', () => {
test('重置列隐藏', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const custom = page.locator('.tiny-grid-custom')
+
await page.goto('grid-custom#custom-reset-resizable')
await page.locator('.tiny-grid-custom__setting-btn').click()
- await page.getByRole('row', { name: '员工数 显示 未冻结' }).getByTitle('显示').getByRole('img').click()
- await page.getByRole('button', { name: '确定' }).click()
+ await custom.getByRole('row', { name: '员工数' }).getByTitle('显示').getByRole('img').click()
+ await custom.getByRole('button', { name: '确定' }).click()
const thHeader = page.locator('th.tiny-grid-header__column').nth(1)
await expect(thHeader).toContainText('地址')
await page.getByRole('button', { name: '重置列的隐藏操作' }).click()
diff --git a/examples/sites/demos/pc/app/grid/edit/custom-editing.spec.js b/examples/sites/demos/pc/app/grid/edit/custom-editing.spec.js
index a02b460e18..0d6defbb79 100644
--- a/examples/sites/demos/pc/app/grid/edit/custom-editing.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/custom-editing.spec.js
@@ -6,11 +6,5 @@ test('自定义编辑规则', async ({ page }) => {
await page.getByText('GFD 科技 YX 公司').first().click()
await expect(page.getByText('GFD 科技 YX 公司').first()).toBeVisible()
await page.getByText('WWWW 科技 YX 公司').first().click()
- await expect(
- page
- .getByRole('row', {
- name: '2 华南区 2014-02-14 14:14:14 1300 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- ).toBeVisible()
+ await expect(page.locator('.tiny-grid-default-input')).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/edit/editing.spec.js b/examples/sites/demos/pc/app/grid/edit/editing.spec.js
index 3582b200bf..06a37e55b6 100644
--- a/examples/sites/demos/pc/app/grid/edit/editing.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/editing.spec.js
@@ -5,18 +5,7 @@ test('编辑方式', async ({ page }) => {
await page.goto('grid-edit#edit-editing')
// 单元格编辑
await page.getByRole('cell', { name: 'GFD 科技 YX 公司' }).first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('GFD 科技 Y 水电费第三方 X 公司')
+ await page.locator('.tiny-grid-default-input').fill('GFD 科技 Y 水电费第三方 X 公司')
await page.getByRole('heading', { name: '单元格编辑:' }).click()
await expect(await page.getByText('GFD 科技 Y 水电费第三方 X 公司')).toHaveCount(2)
diff --git a/examples/sites/demos/pc/app/grid/edit/has-row-change.spec.js b/examples/sites/demos/pc/app/grid/edit/has-row-change.spec.js
index f72ee40a3b..19d18c5e7e 100644
--- a/examples/sites/demos/pc/app/grid/edit/has-row-change.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/has-row-change.spec.js
@@ -2,18 +2,14 @@ import { test, expect } from '@playwright/test'
test('检查数据是否改变', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#edit-has-row-change')
await page.goto('grid-edit#edit-has-row-change')
- await page.getByText('GFD 科技 YX 公司').first().click()
- await page.getByRole('row', { name: '1 保存' }).locator('input[type="text"]').fill('sdf')
- await page.getByRole('row', { name: '1 保存' }).getByRole('button', { name: '保存' }).click()
+ await demo.getByText('GFD 科技 YX 公司').first().click()
+ await demo.locator('.tiny-grid-body__row').first().locator('input[type="text"]').fill('sdf')
+ await demo.locator('.tiny-grid-body__row').first().getByRole('button', { name: '保存' }).click()
await expect(page.getByText('保存成功!')).toBeVisible()
await page.getByRole('button', { name: '确定' }).click()
- await page
- .getByRole('row', {
- name: '2 WWWW 科技 YX 公司 华南区 深圳福田区 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。 保存'
- })
- .getByRole('button', { name: '保存' })
- .click()
+ await demo.locator('.tiny-grid-body__row').nth(1).getByRole('button', { name: '保存' }).click()
await expect(page.getByText('当前数据未改变!')).toBeVisible()
await page.getByRole('button', { name: '确定' }).click()
})
diff --git a/examples/sites/demos/pc/app/grid/edit/revert-data.spec.js b/examples/sites/demos/pc/app/grid/edit/revert-data.spec.js
index ad185c3fda..1f1c7019e4 100644
--- a/examples/sites/demos/pc/app/grid/edit/revert-data.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/revert-data.spec.js
@@ -4,19 +4,9 @@ test('表格编辑还原更改', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-edit#edit-revert-data')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。 恢复'
- })
- .getByRole('textbox')
- .fill('sss')
+ await page.locator('.tiny-grid-default-input').fill('sss')
await page.getByText('RFV 有限责任公司').first().click()
- await page
- .getByRole('row', {
- name: '3 华南区 中山市 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。 恢复'
- })
- .getByRole('textbox')
- .fill('eee')
+ await page.locator('.tiny-grid-default-input').fill('eee')
await page.locator('#edit-revert-data').getByRole('cell', { name: '名称' }).click()
await page.getByRole('button', { name: '恢复全部' }).click()
await expect(page.getByText('GFD 科技 YX 公司').first()).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/edit/status-of-editing.spec.js b/examples/sites/demos/pc/app/grid/edit/status-of-editing.spec.js
index 39cb53b58f..88ccb3b8c6 100644
--- a/examples/sites/demos/pc/app/grid/edit/status-of-editing.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/status-of-editing.spec.js
@@ -4,12 +4,7 @@ test('开启编辑状态', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-edit#edit-status-of-editing')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('sdfdf')
+ await page.locator('.tiny-grid-default-input').fill('sdfdf')
await page.getByRole('heading', { name: '开启编辑状态:' }).click()
await expect(page.getByRole('cell', { name: 'sdfdf' }).nth(0)).toHaveClass(/col__valid-success/)
await expect(page.getByRole('cell', { name: 'sdfdf' }).nth(1)).not.toHaveClass(/col__valid-success/)
diff --git a/examples/sites/demos/pc/app/grid/edit/trigger-mode-for-editing.spec.js b/examples/sites/demos/pc/app/grid/edit/trigger-mode-for-editing.spec.js
index ba5e9ad796..8bd3a7dd33 100644
--- a/examples/sites/demos/pc/app/grid/edit/trigger-mode-for-editing.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/trigger-mode-for-editing.spec.js
@@ -4,21 +4,9 @@ test('触发编辑方式', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-edit#edit-trigger-mode-for-editing')
await page.getByText('GFD 科技 YX 公司').first().click()
- await expect(
- page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- ).toBeVisible()
+ await expect(page.locator('.tiny-grid-default-input')).toBeVisible()
await page.getByText('WWWW 科技 YX 公司').nth(1).dblclick()
- await expect(
- page
- .getByRole('row', {
- name: '2 华南区 深圳福田区 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- ).toBeVisible()
+ await expect(page.locator('.tiny-grid-default-input')).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/edit/trigger-mode-hm-editing.spec.js b/examples/sites/demos/pc/app/grid/edit/trigger-mode-hm-editing.spec.js
index beb4a8df4a..1765e2ad64 100644
--- a/examples/sites/demos/pc/app/grid/edit/trigger-mode-hm-editing.spec.js
+++ b/examples/sites/demos/pc/app/grid/edit/trigger-mode-hm-editing.spec.js
@@ -2,18 +2,12 @@ import { test, expect } from '@playwright/test'
test('手动触发编辑', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#edit-trigger-mode-hm-editing')
await page.goto('grid-edit#edit-trigger-mode-hm-editing')
await page.getByText('GFD 科技 YX 公司').first().click()
await expect(page.getByText('GFD 科技 YX 公司').first()).toBeVisible()
- await page
- .getByRole('row', {
- name: '1 GFD 科技 YX 公司 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。 编辑'
- })
- .getByRole('button', { name: '编辑' })
- .click()
- await expect(
- page.getByRole('row', { name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863' }).getByRole('textbox')
- ).toBeVisible()
+ await demo.locator('.tiny-grid-body__row').first().getByRole('button', { name: '编辑' }).click()
+ await expect(page.locator('.tiny-grid-default-input')).toBeVisible()
await page.getByRole('row', { name: '3 RFV' }).getByRole('button').click()
await expect(page.getByRole('combobox')).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/editor/inner-editor.spec.js b/examples/sites/demos/pc/app/grid/editor/inner-editor.spec.js
index 0709af760d..af7890e534 100644
--- a/examples/sites/demos/pc/app/grid/editor/inner-editor.spec.js
+++ b/examples/sites/demos/pc/app/grid/editor/inner-editor.spec.js
@@ -2,13 +2,10 @@ import { test, expect } from '@playwright/test'
test('Grid-编辑器 - 内置编辑器', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#editor-inner-editor')
await page.goto('grid-editor#grid_Example-gridEdit-inner-editor')
await page.getByText('GFD 科技 YX 公司').first().click()
- const input = page
- .getByRole('row', {
- name: '1 800 华东区 2014-04-30 00:56:00 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
+ const input = demo.locator('.tiny-grid-body__row input').first()
// 内置编辑器
await expect(input).toHaveClass(/tiny-grid-default-input/)
diff --git a/examples/sites/demos/pc/app/grid/event/valid-error-event.spec.js b/examples/sites/demos/pc/app/grid/event/valid-error-event.spec.js
index bd725e068a..93aa45a75c 100644
--- a/examples/sites/demos/pc/app/grid/event/valid-error-event.spec.js
+++ b/examples/sites/demos/pc/app/grid/event/valid-error-event.spec.js
@@ -4,12 +4,7 @@ test('校验不通过事件', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-event#event-valid-error-event')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .clear()
+ await page.locator('.tiny-grid-default-input').clear()
await page.waitForTimeout(400)
await expect(page.getByText('触发校验不通过事件').first()).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/faq/grid-in-dialog-box.spec.js b/examples/sites/demos/pc/app/grid/faq/grid-in-dialog-box.spec.js
index b217ca1fbb..afb6d677f2 100644
--- a/examples/sites/demos/pc/app/grid/faq/grid-in-dialog-box.spec.js
+++ b/examples/sites/demos/pc/app/grid/faq/grid-in-dialog-box.spec.js
@@ -5,12 +5,7 @@ test('弹窗框中表格编辑器失焦功能测试', async ({ page }) => {
await page.goto('grid-faq#faq-grid-in-dialog-box')
await page.getByRole('button', { name: '弹出 Dialog false' }).click()
await page.getByText('GFD 科技有限公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('ss')
+ await page.locator('.tiny-grid-default-input').fill('ss')
await page.getByText('消息').click()
await expect(page.getByText('ss').first()).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/pager/show-save-msg.spec.js b/examples/sites/demos/pc/app/grid/pager/show-save-msg.spec.js
index 859e035112..d23d89f3a1 100644
--- a/examples/sites/demos/pc/app/grid/pager/show-save-msg.spec.js
+++ b/examples/sites/demos/pc/app/grid/pager/show-save-msg.spec.js
@@ -4,12 +4,7 @@ test('保存', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-pager#pager-show-save-msg')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('GFD 科技 YX 公司 ds')
+ await page.locator('.tiny-grid-default-input').fill('GFD 科技 YX 公司 ds')
await page.locator('#pager-show-save-msg').getByRole('cell', { name: '名称' }).click()
await page.getByRole('listitem').filter({ hasText: '2' }).click()
await expect(page.getByText('有修改的数据,是否要保存?')).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/toolbar/save-data.spec.js b/examples/sites/demos/pc/app/grid/toolbar/save-data.spec.js
index f019ceab41..568a83364a 100644
--- a/examples/sites/demos/pc/app/grid/toolbar/save-data.spec.js
+++ b/examples/sites/demos/pc/app/grid/toolbar/save-data.spec.js
@@ -4,12 +4,7 @@ test('服务端数据保存和删除方法', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('grid-toolbar#toolbar-save-data')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('dsfds')
+ await page.locator('.tiny-grid-default-input').fill('dsfds')
await page.getByRole('row', { name: '名称 区域 地址 公司简介' }).getByText('名称').click()
await page.getByRole('button', { name: '保存' }).click()
await expect(page.getByText('dsfds').first()).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/tree-table/tree-grid-insert-delete-update.spec.js b/examples/sites/demos/pc/app/grid/tree-table/tree-grid-insert-delete-update.spec.js
index 3472169ea4..4a931bcf0c 100644
--- a/examples/sites/demos/pc/app/grid/tree-table/tree-grid-insert-delete-update.spec.js
+++ b/examples/sites/demos/pc/app/grid/tree-table/tree-grid-insert-delete-update.spec.js
@@ -24,8 +24,7 @@ test.describe('树表增删改功能', () => {
.first()
.click()
await page.getByRole('row', { name: '3 WWWW 科技股份有限子公司 华南区 720' }).getByText('华南区').first().click()
- await page.getByRole('row', { name: '3 WWWW 科技股份有限子公司 720' }).getByRole('textbox').first().click()
- await page.getByRole('row', { name: '3 WWWW 科技股份有限子公司 720' }).getByRole('textbox').fill('华南区 ee')
+ await page.locator('.tiny-grid-default-input').fill('华南区 ee')
await page.getByText('WWWW 科技 YX 公司').first().click()
await page.getByRole('button', { name: '获取修改' }).click()
diff --git a/examples/sites/demos/pc/app/grid/validation/before-submit-validation.spec.js b/examples/sites/demos/pc/app/grid/validation/before-submit-validation.spec.js
index f679f9dd2d..2d7c895346 100644
--- a/examples/sites/demos/pc/app/grid/validation/before-submit-validation.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/before-submit-validation.spec.js
@@ -2,14 +2,11 @@ import { test, expect } from '@playwright/test'
test('提交前校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#validation-before-submit-validation')
await page.goto('grid-validation#validation-before-submit-validation')
- await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('')
+ await demo.getByText('GFD 科技 YX 公司').first().click()
+ await demo.locator('.tiny-grid-default-input').fill('')
+
await page.getByRole('button', { name: '提交数据' }).click()
await expect(page.getByText('校验不通过', { exact: true })).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/validation/custcomp.spec.js b/examples/sites/demos/pc/app/grid/validation/custcomp.spec.js
index 7452fb4ded..442fceffb5 100644
--- a/examples/sites/demos/pc/app/grid/validation/custcomp.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/custcomp.spec.js
@@ -2,14 +2,10 @@ import { test, expect } from '@playwright/test'
test('自定义组件与插槽编辑器校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#validation-custcomp')
await page.goto('grid-validation#validation-custcomp')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。 1234567890'
- })
- .getByRole('textbox')
- .fill('')
+ await demo.locator('.tiny-grid-default-input').fill('')
await expect(page.getByRole('tooltip', { name: '必填' })).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/validation/editing-isvalidalways-validation.spec.js b/examples/sites/demos/pc/app/grid/validation/editing-isvalidalways-validation.spec.js
index b0055e6eaf..83a4eba672 100644
--- a/examples/sites/demos/pc/app/grid/validation/editing-isvalidalways-validation.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/editing-isvalidalways-validation.spec.js
@@ -2,19 +2,10 @@ import { test, expect } from '@playwright/test'
test('隐藏列编辑时校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+
+ const demo = page.locator('#validation-editing-isvalidalways-validation')
await page.goto('grid-validation#validation-editing-isvalidalways-validation')
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .clear()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('GF')
+ await demo.locator('.tiny-grid-default-input').first().fill('GF')
await expect(page.getByRole('tooltip', { name: '名称长度在 3 到 50 个字符' })).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/validation/editing-validation.spec.js b/examples/sites/demos/pc/app/grid/validation/editing-validation.spec.js
index 3ea773d95b..702ab97ae5 100644
--- a/examples/sites/demos/pc/app/grid/validation/editing-validation.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/editing-validation.spec.js
@@ -2,14 +2,10 @@ import { test, expect } from '@playwright/test'
test('表格校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#validation-editing-validation')
await page.goto('grid-validation#validation-editing-validation')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('')
+ await demo.locator('.tiny-grid-default-input').fill('')
await expect(page.getByRole('tooltip', { name: '名称必填' })).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/validation/row-data-valid.spec.js b/examples/sites/demos/pc/app/grid/validation/row-data-valid.spec.js
index 202159d661..f088ea2a70 100644
--- a/examples/sites/demos/pc/app/grid/validation/row-data-valid.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/row-data-valid.spec.js
@@ -2,9 +2,10 @@ import { test, expect } from '@playwright/test'
test('数据关联校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#validation-row-data-valid')
await page.goto('grid-validation#validation-row-data-valid')
await page.getByText('70').first().click()
- await page.getByRole('row', { name: '1 100 0' }).getByRole('textbox').fill('700')
+ await demo.locator('.tiny-grid-default-input').fill('700')
await expect(page.getByRole('tooltip', { name: '数值不能大于 100' })).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/validation/select-validation.spec.js b/examples/sites/demos/pc/app/grid/validation/select-validation.spec.js
index db7ec65ccb..4562957c9f 100644
--- a/examples/sites/demos/pc/app/grid/validation/select-validation.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/select-validation.spec.js
@@ -2,21 +2,13 @@ import { test, expect } from '@playwright/test'
test('选中时校验', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+
+ const demo = page.locator('#validation-select-validation')
await page.goto('grid-validation#validation-select-validation')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .clear()
+ await demo.locator('.tiny-grid-default-input').fill('')
await page.waitForTimeout(200)
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .locator('span')
- .click()
+ await demo.locator('.tiny-grid-body__row .tiny-grid-checkbox__icon').first().click()
await page.getByRole('button', { name: '校验选中数据' }).click()
await expect(page.getByText('校验不通过', { exact: true })).toBeVisible()
diff --git a/examples/sites/demos/pc/app/grid/validation/tipconfig.spec.js b/examples/sites/demos/pc/app/grid/validation/tipconfig.spec.js
index 30789e1485..8e0cdf6d52 100644
--- a/examples/sites/demos/pc/app/grid/validation/tipconfig.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/tipconfig.spec.js
@@ -2,20 +2,10 @@ import { test, expect } from '@playwright/test'
test('错误提示配置项', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
+ const demo = page.locator('#validation-tipconfig')
await page.goto('grid-validation#validation-tipconfig')
await page.getByText('GFD 科技 YX 公司').click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('')
+ await demo.locator('.tiny-grid-default-input').fill('')
await expect(page.getByRole('tooltip', { name: '名称必填' })).toBeVisible()
})
diff --git a/examples/sites/demos/pc/app/grid/validation/validation-scroll-to-col.spec.js b/examples/sites/demos/pc/app/grid/validation/validation-scroll-to-col.spec.js
index 4a90ade787..df79e4da83 100644
--- a/examples/sites/demos/pc/app/grid/validation/validation-scroll-to-col.spec.js
+++ b/examples/sites/demos/pc/app/grid/validation/validation-scroll-to-col.spec.js
@@ -6,12 +6,7 @@ test('触发校验时自动定位到当前校验的单元格', async ({ page })
const demo = page.locator('#validation-validation-scroll-to-col')
await page.getByText('GFD 科技 YX 公司').first().click()
- await page
- .getByRole('row', {
- name: '1 华东区 福州 公司技术和研发实力雄厚,是国家 863 项目的参与者,并被政府认定为“高新技术企业”。'
- })
- .getByRole('textbox')
- .fill('')
+ await demo.locator('.tiny-input__inner').fill('')
await demo.getByText('名称').click()
const lastColumn = demo.getByText('公司简介')
await lastColumn.scrollIntoViewIfNeeded()
diff --git a/examples/sites/demos/pc/app/rich-text-editor/basic-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/basic-usage-composition-api.vue
deleted file mode 100644
index 153e9b596b..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/basic-usage-composition-api.vue
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/basic-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/basic-usage.vue
deleted file mode 100644
index 627e9d7d14..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/basic-usage.vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage-composition-api.vue
deleted file mode 100644
index 708844c7f4..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage-composition-api.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage.vue
deleted file mode 100644
index 6840c8dcf2..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/collaboration-usage.vue
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage-composition-api.vue
deleted file mode 100644
index f546111296..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage-composition-api.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage.vue
deleted file mode 100644
index 5993c079e1..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/custom-bar-usage.vue
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/event-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/event-usage-composition-api.vue
deleted file mode 100644
index c2b73d71cf..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/event-usage-composition-api.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/event-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/event-usage.vue
deleted file mode 100644
index a8490481cb..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/event-usage.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/options-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/options-usage-composition-api.vue
deleted file mode 100644
index f6a0d50db2..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/options-usage-composition-api.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/options-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/options-usage.vue
deleted file mode 100644
index c04dc044f8..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/options-usage.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage-composition-api.vue b/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage-composition-api.vue
deleted file mode 100644
index 3f02ceb672..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage-composition-api.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage.vue b/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage.vue
deleted file mode 100644
index b824fc9d94..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/placeholder-usage.vue
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
diff --git a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.cn.md b/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.cn.md
deleted file mode 100644
index 9d1f9ecb66..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.cn.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: RichTextEditor 富文本编辑器
----
-
-# RichTextEditor 富文本编辑器
-
-
富文本编辑器可以让用户在编辑器中不仅可以编辑常规文本,同时还可以添加图像、视频、链接、表格、列表等元素,并对文本进行格式化,如加粗、斜体、下划线、字体、颜色等。
diff --git a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.en.md b/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.en.md
deleted file mode 100644
index 4db2aacc25..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.en.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Rich Text Editor
----
-
-# Rich Text Editor
-
-Rich text editor allows users to not only edit regular text, but also add images, videos, links, tables, lists and other elements, and format the text, such as bold, italic, underline, font, color, and so on.
diff --git a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.js b/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.js
deleted file mode 100644
index d186f3d22f..0000000000
--- a/examples/sites/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.js
+++ /dev/null
@@ -1,69 +0,0 @@
-export default {
- column: '1',
- owner: '',
- meta: {
- experimental: '3.11.0'
- },
- demos: [
- {
- demoId: 'basic-usage',
- name: {
- 'zh-CN': '基本用法',
- 'en-US': 'Basic Usage'
- },
- desc: {
- 'zh-CN': '详细用法参考如下示例',
- 'en-US': 'For details, see the following example.'
- },
- codeFiles: ['basic-usage.vue']
- },
- {
- demoId: 'custom-bar-usage',
- name: {
- 'zh-CN': '自定义工具栏用法',
- 'en-US': 'Basic Usage'
- },
- desc: {
- 'zh-CN': '详细用法参考如下示例',
- 'en-US': 'For details, see the following example.'
- },
- codeFiles: ['custom-bar-usage.vue']
- },
- {
- demoId: 'event-usage',
- name: {
- 'zh-CN': '事件用法',
- 'en-US': 'Basic Usage'
- },
- desc: {
- 'zh-CN': '详细用法参考如下示例',
- 'en-US': 'For details, see the following example.'
- },
- codeFiles: ['event-usage.vue']
- },
- {
- demoId: 'options-usage',
- name: {
- 'zh-CN': 'options 选项用法',
- 'en-US': 'Basic Usage'
- },
- desc: {
- 'zh-CN': '详细用法参考如下示例',
- 'en-US': 'For details, see the following example.'
- },
- codeFiles: ['options-usage.vue']
- },
- {
- demoId: 'placeholder-usage',
- name: {
- 'zh-CN': 'placeholder 选项用法',
- 'en-US': 'Basic Usage'
- },
- desc: {
- 'zh-CN': '详细用法参考如下示例',
- 'en-US': 'For details, see the following example.'
- },
- codeFiles: ['placeholder-usage.vue']
- }
- ]
-}
diff --git a/examples/sites/demos/pc/app/time-picker/format.spec.ts b/examples/sites/demos/pc/app/time-picker/format.spec.ts
index 0a4c4c9bde..3b20e811f3 100644
--- a/examples/sites/demos/pc/app/time-picker/format.spec.ts
+++ b/examples/sites/demos/pc/app/time-picker/format.spec.ts
@@ -12,21 +12,21 @@ test('时间格式化', async ({ page }) => {
await page.getByRole('textbox', { name: '19:40:00 pm' }).click()
await page.waitForTimeout(100)
- await page.getByRole('listitem').filter({ hasText: '08 pm' }).first().locator('span').click()
+ await page.locator('.tiny-time-panel[visible=true]').getByText('08 pm').click()
await page.getByRole('button', { name: '确定' }).click()
await page.waitForTimeout(100)
await expect(page.getByRole('textbox', { name: '20:40:00 pm' })).toBeVisible()
await page.getByRole('textbox', { name: '8:40:0 PM' }).click()
await page.waitForTimeout(100)
- await page.getByRole('listitem').filter({ hasText: '09 PM' }).locator('span').click()
+ await page.locator('.tiny-time-panel[visible=true]').getByText('09 PM').click()
await page.getByRole('button', { name: '确定' }).click()
await page.waitForTimeout(100)
await expect(page.getByRole('textbox', { name: '9:40:0 PM' })).toBeVisible()
await page.getByRole('textbox', { name: '21:40:0 PM' }).click()
await page.waitForTimeout(100)
- await page.getByRole('listitem').filter({ hasText: '10 PM' }).locator('span').click()
+ await page.locator('.tiny-time-panel[visible=true]').getByText('10 PM').click()
await page.getByRole('button', { name: '确定' }).click()
await page.waitForTimeout(100)
await expect(page.getByRole('textbox', { name: '22:40:0 PM' })).toBeVisible()
@@ -34,14 +34,14 @@ test('时间格式化', async ({ page }) => {
// value-format: 选中值的格式
await page.getByRole('textbox', { name: '18:30:00' }).click()
await page.waitForTimeout(100)
- await page.getByRole('listitem').filter({ hasText: '19' }).first().click()
+ await page.locator('.tiny-time-panel[visible=true]').getByText('19').first().click()
await page.getByRole('button', { name: '确定' }).click()
await page.waitForTimeout(100)
await expect(page.getByRole('textbox', { name: '19:30:00' })).toBeVisible()
// picker-options.format: 下拉框中显示的格式
- const timePickerHour = page.getByRole('listitem').filter({ hasText: '18' }).first()
- const timePickerMinute = page.getByRole('listitem').filter({ hasText: '40' }).first()
+ const timePickerHour = page.locator('.tiny-time-panel[visible=true]').getByText('18').first()
+ const timePickerMinute = page.locator('.tiny-time-panel[visible=true]').getByText('40').first()
const timePickerSecond = page.locator('.of-hidden > div:nth-child(12) .tiny-scrollbar').nth(2)
await page.getByRole('textbox', { name: '18:40:00' }).click()
await page.waitForTimeout(200)
diff --git a/examples/sites/demos/pc/webdoc/changelog.md b/examples/sites/demos/pc/webdoc/changelog.md
index e0190ca7fb..b53d797abc 100644
--- a/examples/sites/demos/pc/webdoc/changelog.md
+++ b/examples/sites/demos/pc/webdoc/changelog.md
@@ -4,6 +4,125 @@ Tiny Vue 团队在正常情况下使用 每月 发布策略。
在此页面上,您只能看到我们的 更新日志 最新三个迭代的日志记录,如您要查看完整记录可以查看:[Release](https://github.com/opentiny/tiny-vue/releases)
+## v2.21.0/v3.21.0
+
+`2025/01/15`
+
+## What's Changed
+
+### Exciting New Features 🎉
+
+- feat(tiny-vue-nuxt): [tiny-vue-nuxt] add tiny-vue-nuxt module and add… by @18003228289 in https://github.com/opentiny/tiny-vue/pull/1761
+- feat(tiny-vue-nuxt): [tiny-vue-nuxt] finish importing all components to nuxt module by @18003228289 in https://github.com/opentiny/tiny-vue/pull/1838
+- fix(random): [random] use Math.random() instead to support SSR by @18003228289 in https://github.com/opentiny/tiny-vue/pull/1868
+- feat: add nuxt dev environment by @zzcr in https://github.com/opentiny/tiny-vue/pull/1993
+- feat: add mobile dependence by @zzcr in https://github.com/opentiny/tiny-vue/pull/2609
+- feat: sync 3.20.0 to dev by @zzcr in https://github.com/opentiny/tiny-vue/pull/2639
+- feat: support nuxt by @zzcr in https://github.com/opentiny/tiny-vue/pull/2635
+- feat(dropdown): [dropdown] add right side expansion function for dropdown by @MomoPoppy in https://github.com/opentiny/tiny-vue/pull/2608
+- feat: support nuxt by @kagol in https://github.com/opentiny/tiny-vue/pull/2641
+- feat: add @opentiny/utils package by @zzcr in https://github.com/opentiny/tiny-vue/pull/2661
+- feat(fluent-editor): add before-editor-init props by @kagol in https://github.com/opentiny/tiny-vue/pull/2670
+- feat: [grid,alert,form]use catalog to globally upgrade vite and vitest; and add mobile build config by @zzcr in https://github.com/opentiny/tiny-vue/pull/2680
+- feat(site): Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2688
+- feat(site): optimize the performance of the official website, use lazy loading for document examples by @zzcr in https://github.com/opentiny/tiny-vue/pull/2713
+- feat(nav-menu): [nav-menu] Add custom selected mode by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/2718
+- feat(nav-menu): [nav-menu] Simplify the demo data by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/2728
+- feat: add utils packages type module by @zzcr in https://github.com/opentiny/tiny-vue/pull/2731
+- feat: update version to 3.21.0 by @zzcr in https://github.com/opentiny/tiny-vue/pull/2734
+- feat: remove chart e2e-test cases by @zzcr in https://github.com/opentiny/tiny-vue/pull/2742
+- feat(alert): [alert] display title when size is large by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/2744
+- feat: enhance the divider dialogbox treemenu function by @zzcr in https://github.com/opentiny/tiny-vue/pull/2758
+- feat: update playground versions by @zzcr in https://github.com/opentiny/tiny-vue/pull/2763
+- feat(alert): [alert] display title when size is large in mobile-first by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/2765
+
+### Bug Fixes 🐛
+
+- fix(crypto): [crypto] use nanoid instead to support SSR by @18003228289 in https://github.com/opentiny/tiny-vue/pull/1860
+- fix(ssr): [ssr] fix ssr problems by @18003228289 in https://github.com/opentiny/tiny-vue/pull/1935
+- fix(nuxt): update vue version to fix button slot error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2026
+- fix(plugin): [plugin] fix nuxt plugin by @18003228289 in https://github.com/opentiny/tiny-vue/pull/2220
+- fix(plugin): [plugin] fix nuxt plugin by @18003228289 in https://github.com/opentiny/tiny-vue/pull/2212
+- fix(chart): huiCharts 打包替换为 Chart by @Davont in https://github.com/opentiny/tiny-vue/pull/2622
+- fix: fix slider compilation error in vue2 by @zzcr in https://github.com/opentiny/tiny-vue/pull/2625
+- fix(tabbar): modify mobile tabbar problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2638
+- fix(dropdown-menu): fix mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2642
+- fix(form): modify mobile form problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2643
+- fix(container): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2646
+- fix(dialog-box): modify mobile dialog-box problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2644
+- fix(select): [select] fix the vertical centering of the suffix icon by @MomoPoppy in https://github.com/opentiny/tiny-vue/pull/2645
+- fix(tree-select): solve the problem of tree attributes not being passed through by @kagol in https://github.com/opentiny/tiny-vue/pull/2659
+- fix(label): modify mobile bug by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2672
+- fix(input): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2671
+- fix(slider): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2669
+- fix(tree): default-expanded-keys description is wrong by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2667
+- fix(checkbox): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2666
+- fix(form): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2665
+- fix(popover): remove aria-hidden by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2664
+- fix(progress): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2654
+- fix(button): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2660
+- fix(auto-import-plugin): support functional components by @mengqiuleo in https://github.com/opentiny/tiny-vue/pull/2511
+- fix: fix warning in cascader component by @zzcr in https://github.com/opentiny/tiny-vue/pull/2662
+- fix(nuxt): fix the error when starting the nuxt project by @zzcr in https://github.com/opentiny/tiny-vue/pull/2668
+- fix(unplugin-tiny-vue): fix error TinyVueResolver name by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2676
+- fix(action-sheet): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2692
+- fix(pull-refresh): modify mobile bug by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2677
+- fix(exception): modify mobile problem by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2690
+- fix(file-upload): [file-upload] Optimized the usage of the customized upload example. by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/2694
+- fix(vue-renderless): [action-menu, alert] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2693
+- fix: fix change theme error when open playground by @zzcr in https://github.com/opentiny/tiny-vue/pull/2681
+- fix(vue-renderless): [autocomplete,base-select,amount,anchor,area] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2695
+- fix(mobile): fix mobile components build error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2696
+- fix(site): fix error when build saas site by @zzcr in https://github.com/opentiny/tiny-vue/pull/2701
+- fix(mini-picker): the demo on the mobile client is modified. by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2698
+- fix(modal): modify the display and error issues of the mobile demo by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2704
+- fix(user-head): the problem and type of the demo on the mobile client are modified by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2699
+- fix(vue-renderless): [breadcrumb, bulletin-board, button, button-group,calendar, calendar-view, card, carousel, cascader, cascader-panel, chart,checkbox, collapse, color-picker, color-select-panel,company,config-provider,container,crop,currency,date-picker,dept,dialog-box,dialog-select,directives,divider,drawer,drop-roles,drop-times,dropdown,espace,fall-menu,file-upload,filter-panel,float-button,floatbar,flowchart,fluent-editor,form,fullscreen] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2709
+- fix(tabs): modify the issue of the mobile demo not displaying and reporting errors by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2710
+- fix(vue-renderless): [grid] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2714
+- fix(grid): [grid] fix the initial position on the left when dragging … by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/2719
+- fix(statistic): [statistic] synchronize the statistic component of the release-3.18 version to the dev branch by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2717
+- fix(file-upload): modify the error reported by the upload component on the mobile client and add the demo by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2724
+- fix(input): [input] cancel bacground style of input count in textarea by @wNing50 in https://github.com/opentiny/tiny-vue/pull/2715
+- fix(modal): [modal] repeatedly dispatch the close event by @betavs in https://github.com/opentiny/tiny-vue/pull/2573
+- fix(vue-renderless): [grid-select,guide,hrapprover,hrapprover,icon,icon-multicolor,image,infinite-scroll,input,ip-address,layout,link,link-menu,loading,locales,logon-user,logout,milestone,mind-map,modal,nav-menu,notify,numeric,pager,pop-upload,popconfirm,popeditor,popover,progress,qr-code,query-builder] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2721
+- fix(modal): [modal] modifying the modal component and clicking the confirm button accidentally triggered the close event by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2727
+- fix(vue-renderless): [radio,rate,rich-text-editor,roles,scroll-text,search,select,skeleton,slider,split,statistic,steps,sticky,switch,tabs,tag,tag-group,text-popup,time-line,time-line-new,time-picker,time-select,toggle-menu,tooltip,transfer,tree,tree-menu,tree-select] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2729
+- fix(vite-import): fix the issue of escaping comment code in on-demand packaging plugin by @zzcr in https://github.com/opentiny/tiny-vue/pull/2726
+- fix(vue-renderless): [user,user-account,user-contact,user-head,user-link,virtual-scroll-box,virtual-tree,watermark,wizard] fix site: Optimize site documentation typesetting by @dufu1991 in https://github.com/opentiny/tiny-vue/pull/2732
+- fix: supplement mistakenly deleted files by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2736
+- fix(e2e): [tooltip,select] fix the security that causes e2e test failures. by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2743
+- fix(e2e): [file-upload] Fix the error reported in the E2E test case of the upload component. by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/2741
+- fix(e2e): [cascader,color-picker,crop] fix cascader color-picker crop components e2e-test error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2746
+- fix(demos/checkbox): [checkbox] fix checkbox e2e-test error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2745
+- fix(modal): [modal] modify e2e test case error by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2747
+- fix(date-picker): [date-picker] fix date-picker e2e test error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2749
+- fix(time-select): [time-select] Fix and optimize issues with invalid … by @Youyou-smiles in https://github.com/opentiny/tiny-vue/pull/2735
+- fix(popeditor): the default width of the label in popeditor is added by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2750
+- fix(modal): [modal] the style does not take effect by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2751
+- fix(carousel): [carousel] modify the vertical arrow display issue of the carousel component by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2752
+- fix(grid): [grid] fix can not select first option when value is empty by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/2756
+- fix(dialog-box): [dialog-box] modify the style of the dialog box by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2757
+- fix(loading): [loading] v-loading's lifecycle name replace by inserted by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2759
+- fix(grid): [grid] fix checkbox border become smaller when config show… by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/2762
+- fix: fix huichart build error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2760
+- fix(renderless): fix renderless package publish error by @zzcr in https://github.com/opentiny/tiny-vue/pull/2761
+- fix(divider): [divider] modify e2e test cases for the divider component by @James-9696 in https://github.com/opentiny/tiny-vue/pull/2766
+
+### Other Changes
+
+- docs: hide the search input on the left menu at open source sites by @kagol in https://github.com/opentiny/tiny-vue/pull/2607
+- ci: auto deploy site by @kagol in https://github.com/opentiny/tiny-vue/pull/2617
+- docs: add dufu1991 as a contributor for doc by @allcontributors in https://github.com/opentiny/tiny-vue/pull/2703
+- docs(select): add the description of the filterMethod prop for Select by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/2708
+- docs: fix back to top does not work and the document tab title does n… by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/2712
+- test(grid): [grid] fix unit test error by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/2754
+
+## New Contributors
+
+- @18003228289 made their first contribution in https://github.com/opentiny/tiny-vue/pull/1761
+- @dufu1991 made their first contribution in https://github.com/opentiny/tiny-vue/pull/2688
+
## v2.20.0/v3.20.0
`2024/12/06`
@@ -508,102 +627,3 @@ Tiny Vue 团队在正常情况下使用 每月 发布策略。
## New Contributors
- @BWrong made their first contribution in https://github.com/opentiny/tiny-vue/pull/2387
-
-## v2.18.0/v3.18.0
-
-`2024/08/20`
-
-## What's Changed
-
-### Exciting New Features 🎉
-
-- feat(tree-select): [tree-select] add tree-select component by @kagol in https://github.com/opentiny/tiny-vue/pull/1683
-- feat: support solidjs (#1566) by @zzcr in https://github.com/opentiny/tiny-vue/pull/1682
-- feat(tree-menu)[tree-menu]: clearable by @GaoNeng-wWw in https://github.com/opentiny/tiny-vue/pull/1672
-- feat(tabs): [tabs] Add new specification function by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1762
-- feat(search): [search] add disabled functionality to the search component and adapt to new specifications by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1756
-- feat(fluent-editor): add mobile-first template by @kagol in https://github.com/opentiny/tiny-vue/pull/1763
-- feat(Switch): [switch] suppor custom open and close icon. by @AcWrong02 in https://github.com/opentiny/tiny-vue/pull/1551
-- feat(runtime): add directive runtime by @zzcr in https://github.com/opentiny/tiny-vue/pull/1784
-- fix(warning): fix all warning , fix dialog-box's visible ,default false by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/1792
-- feat(fluent-editor): optimize fluent-editor mobile-first by @kagol in https://github.com/opentiny/tiny-vue/pull/1794
-- feat(file-upload): [file-upload]刷新上传组件新规范 by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1811
-- feat(pager): [pager] add new props total-fixed-left by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1819
-- develop split for smb-design theme by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/1830
-- feat(fall-menu): [fall-menu]modify smb-theme by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1842
-- feat(bulletin-board): [bulletin-board] updata bulletin-board xdesign by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/1844
-- feat(link-menu): [link-menu]modify smb-theme by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1846
-- feat(nav-menu): [nav-menu] updata nav-menu xdesign by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/1849
-- feat(pop-upload): [pop-upload] 刷新 popupload 规范,增加 uploadTip 插槽 by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1850
-- feat(pop-upload): [pop-upload] 刷新 popupload 规范,表格头部优化,增加上传数据统计能力,修复长度限制 bug by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1852
-- feat(toggle-menu): [toggle-menu] add smb theme by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1861
-- feat(color-select-panel): [color-select-panel]modify smb-theme by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1837
-- fix(button): [button] add ts declaration for button , and remove hook-updated … by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/1853
-- fix (anchor): [anchor] Fix the issue that the scrolling response lags after the anchor is clicked. Add a tooltip to adapt to the SaaS theme. by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1892
-
-### Bug Fixes 🐛
-
-- fix(unplugin-virtual-template): fix build internals error in node v18.19.1 by @gweesin in https://github.com/opentiny/tiny-vue/pull/1676
-- fix(vue-renderless): [radio] fix handleKeydown blocking default events and bubble logic by @Nowitzki41 in https://github.com/opentiny/tiny-vue/pull/1650
-- fix: fix pnpm site error by @kagol in https://github.com/opentiny/tiny-vue/pull/1702
-- chore(fluent-editor): update package.json by @kagol in https://github.com/opentiny/tiny-vue/pull/1721
-- fix(docs): fix components number by @zzcr in https://github.com/opentiny/tiny-vue/pull/1754
-- fix(tree-menu): [tree-menu] resolve the issue of disabled treemenu components not taking effect by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/1736
-- fix(auto-tip): [auto-tip] Fix the issue where the placement configuration always has old values by @MomoPoppy in https://github.com/opentiny/tiny-vue/pull/1774
-- fix(rich-text-editor): [rich-text-editor] fix data binding doen't work by @gweesin in https://github.com/opentiny/tiny-vue/pull/1779
-- fix(playground): could not open playground as Composition mode by @gweesin in https://github.com/opentiny/tiny-vue/pull/1787
-- fix(picker): fix mobile breakpoint cannot use pc datepicker and timep… by @gweesin in https://github.com/opentiny/tiny-vue/pull/1678
-- fix(fluent-editor): fix toolbar icon and undo/redo by @kagol in https://github.com/opentiny/tiny-vue/pull/1786
-- fix: fix layout asider layer error on mobile mode by @gweesin in https://github.com/opentiny/tiny-vue/pull/1778
-- fix(color-picker): [color-picker,color-select-panel] fix issue 1684 by @GaoNeng-wWw in https://github.com/opentiny/tiny-vue/pull/1686
-- fix: fix Vue packages version mismatch by @kagol in https://github.com/opentiny/tiny-vue/pull/1791
-- fix(fluent-editor): fix better-table module by @kagol in https://github.com/opentiny/tiny-vue/pull/1788
-- fix(fluent-editor): fix image module and optimize toolbar style by @kagol in https://github.com/opentiny/tiny-vue/pull/1799
-- fix(form): [form] fix text validation style error in other size form … by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1798
-- fix(tree-menu): [tree-menu] Delete the prefix-icon attribute of the tree-menu component by @wuyiping0628 in https://github.com/opentiny/tiny-vue/pull/1789
-- fix(grid): fix grid click menu item jump to blank tab in playground c… by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1802
-- fix(fluent-editor): fix error when execute pnpm site by @kagol in https://github.com/opentiny/tiny-vue/pull/1815
-- fix(fluent-editor): fix fluent-editor saas theme by @kagol in https://github.com/opentiny/tiny-vue/pull/1814
-- fix(form): [form] fix content not aligned when display only close #1698 by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1805
-- fix(warning): fix unocss version conflicts by @gweesin in https://github.com/opentiny/tiny-vue/pull/1825
-- fix(playground): fix old version runtime not found close #1817 by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1818
-- fix(fluent-editor): fix style error by @kagol in https://github.com/opentiny/tiny-vue/pull/1829
-- fix(fluent-editor): fix style missing by @kagol in https://github.com/opentiny/tiny-vue/pull/1831
-- fix(fluent-editor): fix console warn by @kagol in https://github.com/opentiny/tiny-vue/pull/1833
-- fix(select): [select] Adapt to multiple+disabled+displayOnly scenarios with different themes by @MomoPoppy in https://github.com/opentiny/tiny-vue/pull/1835
-- fix(fluent-editor): fix tasklist format by @kagol in https://github.com/opentiny/tiny-vue/pull/1845
-- fix(base-select): [base-select] fix check all style by @kagol in https://github.com/opentiny/tiny-vue/pull/1848
-- fix(form): [form] fix dynamic change size fail in prod mode by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1857
-- fix(theme): [anchor] Fixed the theme switch bug and the anchor line color under the default theme. by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1854
-- fix(pop-confirm): [pop-confirm] remove m funtion from pc template by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/1863
-- fix(build): fix some bugs when build components by @zzcr in https://github.com/opentiny/tiny-vue/pull/1873
-- fix(theme): Fixed the issue that multiple root files are generated when the theme is packaged. by @chenxi-20 in https://github.com/opentiny/tiny-vue/pull/1893
-
-### Other Changes
-
-- chore(base-select): [base-select] add mark and metaData by @kagol in https://github.com/opentiny/tiny-vue/pull/1681
-- chore: update workflow node-version to 20 by @kagol in https://github.com/opentiny/tiny-vue/pull/1742
-- docs(changelog): update changelog and runtime doc by @zzcr in https://github.com/opentiny/tiny-vue/pull/1749
-- feat: update site design style by @zzcr in https://github.com/opentiny/tiny-vue/pull/1752
-- docs(sites): fix docs typo by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1758
-- docs(tree-select): [tree-select] optimize demo/api docs by @kagol in https://github.com/opentiny/tiny-vue/pull/1743
-- docs(fluent-editor): optimize demo/api docs by @kagol in https://github.com/opentiny/tiny-vue/pull/1757
-- docs(grid): add grid-column props docs by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1782
-- docs(dialog-box): [dialog-box] update document by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1732
-- docs(numeric): [numeric]optimized docs of numeric component by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1753
-- docs(button-group): add new slot api version by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1797
-- docs(fluent-editor): optimize fluent-editor mobile-first docs by @kagol in https://github.com/opentiny/tiny-vue/pull/1804
-- fix(numeric): modify docs by @James-9696 in https://github.com/opentiny/tiny-vue/pull/1803
-- feat: update vue-docs by @zzcr in https://github.com/opentiny/tiny-vue/pull/1810
-- docs(fluent-editor): optimize fluent-editor pc docs by @kagol in https://github.com/opentiny/tiny-vue/pull/1807
-- docs(theme): add custom cssvar variable prefix documentation by @zzcr in https://github.com/opentiny/tiny-vue/pull/1806
-- feat(link): add link‘s typescript and docs by @shenjunjian in https://github.com/opentiny/tiny-vue/pull/1816
-- feat(readme): add readme files to main packages by @zzcr in https://github.com/opentiny/tiny-vue/pull/1826
-- docs(fluent-editor): add fluent-editor docs by @kagol in https://github.com/opentiny/tiny-vue/pull/1834
-- docs(fluent-editor): optimize mobile-first demo by @kagol in https://github.com/opentiny/tiny-vue/pull/1836
-- ci: add automate script to transform demos to add "Tiny" prefix by @gimmyhehe in https://github.com/opentiny/tiny-vue/pull/1832
-
-## New Contributors
-
-- @Nowitzki41 made their first contribution in https://github.com/opentiny/tiny-vue/pull/1650
-- @Simon-He95 made their first contribution in https://github.com/opentiny/tiny-vue/pull/1839
diff --git a/examples/sites/demos/pc/webdoc/installation-en.md b/examples/sites/demos/pc/webdoc/installation-en.md
index 3f8c8cf2f6..7f7bc3e129 100644
--- a/examples/sites/demos/pc/webdoc/installation-en.md
+++ b/examples/sites/demos/pc/webdoc/installation-en.md
@@ -48,12 +48,8 @@ export default defineConfig({
```
-
To avoid the uncertainty associated with monthly (minor) upgrades of @opentiny/vue
, it is recommended to use ~ before relying on the version number of the package in package.json
in your project.
For example, "@opentiny/vue": "~3.12.0
.
-
-
-
@opentiny/vue
supports multiple modes. If your project is not a mobile project, you can declare the value of TINY_MODE
in process.env
in the above configuration code. In order to make the project during construction, the mobile side code can be shaken off and the volume of the packaged product can be optimized. For example, 'process.env': {... env,TINY_MODE:'pc'}
.
diff --git a/examples/sites/demos/pc/webdoc/installation.md b/examples/sites/demos/pc/webdoc/installation.md
index 03c12eb6a9..7d1e17761d 100644
--- a/examples/sites/demos/pc/webdoc/installation.md
+++ b/examples/sites/demos/pc/webdoc/installation.md
@@ -48,12 +48,8 @@ export default defineConfig({
```
-
为了避免 @opentiny/vue
的月度版本 (minor) 升级带来的不确定因素,因此推荐在您的工程中的 package.json
中依赖包的版本号前使用 ~,
比如 "@opentiny/vue": "~3.12.0
。
-
-
-
@opentiny/vue
支持多种模式。如果您的工程非移动端工程,可以在上面配置代码中的process.env
中,声明TINY_MODE
的值,以使工程在构建时,能将移动端模式的代码摇掉,优化打包产物的体积。比如 'process.env': { ...process.env,TINY_MODE:'pc' }
。
@@ -86,7 +82,7 @@ export default defineConfig({
| Runtime 名称 | 使用说明 |
| ------------------------- | -------------------------- |
-| tiny-vue-pc.mjs | 包含所有 pc 模板的组件集合 |
+| tiny-vue-pc.mjs | 包含所有 pc 模板的组件集合 |
| tiny-vue-mobile.mjs | 包含所有移动模板的组件集合 |
| tiny-vue-mobile-first.mjs | 包含所有多端模板的组件集合 |
| tiny-vue-simple.mjs | 包含常用组件的集合 |
diff --git a/examples/sites/package.json b/examples/sites/package.json
index 66e43b493d..f23ac78cb2 100644
--- a/examples/sites/package.json
+++ b/examples/sites/package.json
@@ -22,6 +22,9 @@
"pub": "pnpm publish --no-git-checks --access=public"
},
"dependencies": {
+ "@docsearch/css": "^3.8.0",
+ "@docsearch/js": "^3.8.0",
+ "@docsearch/react": "npm:@docsearch/css",
"@opentiny/vue": "workspace:~",
"@opentiny/vue-common": "workspace:~",
"@opentiny/vue-design-aurora": "workspace:~",
@@ -48,16 +51,12 @@
"tailwindcss": "^3.2.4",
"vue": "^3.4.31",
"vue-i18n": "^9.1.10",
- "vue-router": "4.1.5",
- "@docsearch/js": "^3.8.0",
- "@docsearch/css": "^3.8.0",
- "@docsearch/react": "npm:@docsearch/css"
+ "vue-router": "4.1.5"
},
"devDependencies": {
"@opentiny-internal/unplugin-virtual-template": "workspace:~",
"@opentiny/vue-mobile": "workspace:~",
- "@playwright/test": "~1.42.0",
- "rollup-plugin-visualizer": "^5.12.0",
+ "@playwright/test": "catalog:",
"@types/markdown-it": "^12.2.3",
"@types/node": "^17.0.45",
"@unocss/preset-icons": "^0.38.2",
@@ -78,6 +77,7 @@
"markdown-it-table-of-contents": "^0.6.0",
"markdown-it-toc-done-right": "^4.2.0",
"prettier": "^2.7.1",
+ "rollup-plugin-visualizer": "^5.12.0",
"stylelint": "^14.9.1",
"stylelint-config-standard": "^26.0.0",
"typescript": "catalog:",
diff --git a/examples/sites/src/views/components/demo.vue b/examples/sites/src/views/components/demo.vue
index 1ff9c4ba5b..cd04a05d8e 100644
--- a/examples/sites/src/views/components/demo.vue
+++ b/examples/sites/src/views/components/demo.vue
@@ -301,6 +301,7 @@ export default defineComponent({