@opentiny/vue-docs 3.24.6 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.stylelintrc.js +2 -2
- package/demos/apis/button.js +15 -0
- package/demos/apis/calendar-view.js +3 -2
- package/demos/apis/chart-demo.js +1 -1
- package/demos/apis/chart-docs.js +1 -1
- package/demos/apis/chart-events.js +1 -1
- package/demos/apis/chart-question.js +1 -1
- package/demos/apis/chart.js +1 -1
- package/demos/apis/form.js +3 -0
- package/demos/apis/grid.js +76 -16
- package/demos/apis/modal.js +1 -1
- package/demos/apis/numeric.js +3 -3
- package/demos/apis/search.js +28 -0
- package/demos/apis/slider-button.js +22 -0
- package/demos/apis/split.js +11 -0
- package/demos/apis/steps.js +3 -3
- package/demos/apis/tabs.js +12 -0
- package/demos/apis/time-line.js +20 -0
- package/demos/mobile-first/app/button/type.vue +1 -1
- package/demos/mobile-first/app/button/webdoc/button.js +2 -2
- package/demos/mobile-first/app/slider-button/basic-usage.vue +5 -5
- package/demos/mobile-first/app/slider-button/webdoc/slider-button.js +1 -1
- package/demos/mobile-first/app/steps/advanced-steps.vue +8 -1
- package/demos/mobile-first/menus.js +16 -9
- package/demos/pc/app/action-menu/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/basic-usage.vue +1 -1
- package/demos/pc/app/action-menu/card-mode-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/card-mode.vue +1 -1
- package/demos/pc/app/action-menu/disabled-composition-api.vue +2 -2
- package/demos/pc/app/action-menu/disabled.vue +2 -2
- package/demos/pc/app/action-menu/events-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/events.vue +1 -1
- package/demos/pc/app/action-menu/icon-composition-api.vue +2 -2
- package/demos/pc/app/action-menu/icon.vue +2 -2
- package/demos/pc/app/action-menu/max-show-num-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/max-show-num.vue +1 -1
- package/demos/pc/app/action-menu/more-text-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/more-text.vue +1 -1
- package/demos/pc/app/action-menu/popper-class-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/popper-class.vue +1 -1
- package/demos/pc/app/action-menu/slot-item-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/slot-item.vue +1 -1
- package/demos/pc/app/action-menu/spacing-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/spacing.vue +1 -1
- package/demos/pc/app/action-menu/text-field-composition-api.vue +1 -1
- package/demos/pc/app/action-menu/text-field.spec.ts +1 -1
- package/demos/pc/app/action-menu/text-field.vue +1 -1
- package/demos/pc/app/amount/custom-service.spec.js +4 -4
- package/demos/pc/app/base-select/slot-reference.spec.ts +1 -1
- package/demos/pc/app/button/icon-composition-api.vue +3 -1
- package/demos/pc/app/button/icon.vue +3 -1
- package/demos/pc/app/button/webdoc/button.js +3 -2
- package/demos/pc/app/calendar-view/calendar-mode-composition-api.vue +7 -1
- package/demos/pc/app/calendar-view/calendar-mode.spec.ts +3 -0
- package/demos/pc/app/calendar-view/calendar-mode.vue +7 -1
- package/demos/pc/app/carousel/webdoc/carousel.js +0 -18
- package/demos/pc/app/color-picker/alpha-composition-api.vue +1 -1
- package/demos/pc/app/color-picker/alpha.spec.ts +2 -2
- package/demos/pc/app/color-picker/alpha.vue +1 -1
- package/demos/pc/app/color-picker/base.spec.ts +2 -2
- package/demos/pc/app/color-picker/default-visible.spec.ts +1 -1
- package/demos/pc/app/color-picker/event-composition-api.vue +2 -2
- package/demos/pc/app/color-picker/event.spec.ts +4 -4
- package/demos/pc/app/color-picker/event.vue +1 -1
- package/demos/pc/app/color-picker/format.spec.ts +6 -6
- package/demos/pc/app/color-picker/history.spec.ts +1 -7
- package/demos/pc/app/color-picker/predefine.spec.ts +3 -10
- package/demos/pc/app/color-picker/size.spec.ts +4 -4
- package/demos/pc/app/color-select-panel/format.spec.ts +2 -8
- package/demos/pc/app/color-select-panel/history.spec.ts +0 -2
- package/demos/pc/app/color-select-panel/predefine.spec.ts +0 -3
- package/demos/pc/app/container/basic-usage-composition-api.vue +10 -10
- package/demos/pc/app/container/basic-usage.vue +10 -10
- package/demos/pc/app/container/custom-with-height-composition-api.vue +8 -8
- package/demos/pc/app/container/custom-with-height.vue +10 -10
- package/demos/pc/app/date-panel/custom-week.spec.ts +2 -2
- package/demos/pc/app/dialog-select/nest-grid-single.spec.ts +40 -0
- package/demos/pc/app/dialog-select/nest-tree-multi.spec.ts +53 -0
- package/demos/pc/app/dialog-select/nest-tree-single.spec.ts +25 -0
- package/demos/pc/app/dialog-select/set-selection.spec.ts +20 -0
- package/demos/pc/app/file-upload/before-upload-limit-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/before-upload-limit.spec.ts +1 -1
- package/demos/pc/app/file-upload/before-upload-limit.vue +1 -1
- package/demos/pc/app/file-upload/custom-trigger-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/custom-trigger.spec.ts +1 -1
- package/demos/pc/app/file-upload/custom-trigger.vue +1 -1
- package/demos/pc/app/file-upload/custom-upload-tip-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/custom-upload-tip.vue +1 -1
- package/demos/pc/app/file-upload/form-validation-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/form-validation.vue +1 -1
- package/demos/pc/app/file-upload/image-size-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/image-size.spec.ts +1 -1
- package/demos/pc/app/file-upload/image-size.vue +1 -1
- package/demos/pc/app/file-upload/multiple-file-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/multiple-file.spec.ts +1 -1
- package/demos/pc/app/file-upload/multiple-file.vue +1 -1
- package/demos/pc/app/file-upload/prevent-delete-file-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/prevent-delete-file.vue +1 -1
- package/demos/pc/app/file-upload/upload-request-composition-api.vue +1 -1
- package/demos/pc/app/file-upload/upload-request.spec.ts +2 -2
- package/demos/pc/app/file-upload/upload-request.vue +1 -1
- package/demos/pc/app/grid/base/basic-usage-composition-api.vue +1 -17
- package/demos/pc/app/grid/custom/column-fixed.spec.js +2 -1
- package/demos/pc/app/grid/custom/page-size.spec.js +1 -1
- package/demos/pc/app/grid/data-source/auto-load.spec.js +0 -1
- package/demos/pc/app/grid/data-source/request-service.spec.js +1 -1
- package/demos/pc/app/grid/data-source/static-data.spec.js +1 -1
- package/demos/pc/app/grid/dynamically-columns/dynamically-columns.spec.js +2 -1
- package/demos/pc/app/grid/edit/scrollbar-not-blur-composition-api.vue +119 -0
- package/demos/pc/app/grid/edit/scrollbar-not-blur.spec.ts +28 -0
- package/demos/pc/app/grid/edit/scrollbar-not-blur.vue +129 -0
- package/demos/pc/app/grid/editor/custom-edit.spec.js +7 -2
- package/demos/pc/app/grid/empty/empty-data-iscenter.spec.js +1 -1
- package/demos/pc/app/grid/event/toolbar-button-click-event.spec.js +1 -1
- package/demos/pc/app/grid/expand/expand-trigger-slot-composition-api.vue +85 -0
- package/demos/pc/app/grid/expand/expand-trigger-slot.spec.ts +11 -0
- package/demos/pc/app/grid/expand/expand-trigger-slot.vue +95 -0
- package/demos/pc/app/grid/expand/set-row-expansion.spec.js +4 -0
- package/demos/pc/app/grid/filter/custom-filter.spec.js +3 -3
- package/demos/pc/app/grid/filter/default-filter-composition-api.vue +6 -0
- package/demos/pc/app/grid/filter/default-filter.vue +6 -0
- package/demos/pc/app/grid/filter/default-relation.spec.js +1 -1
- package/demos/pc/app/grid/filter/server-filter.spec.js +1 -1
- package/demos/pc/app/grid/filter/simple-filter.spec.ts +5 -4
- package/demos/pc/app/grid/fixed/right-fixed-composition-api.vue +4 -4
- package/demos/pc/app/grid/fixed/right-fixed.vue +4 -4
- package/demos/pc/app/grid/footer/footer-summation-empty.spec.js +0 -1
- package/demos/pc/app/grid/large-data/full-data-loading.spec.js +10 -3
- package/demos/pc/app/grid/large-data/virtual-rolling.spec.js +9 -2
- package/demos/pc/app/grid/mouse-keyboard/keyboard-navigation.spec.js +4 -1
- package/demos/pc/app/grid/renderer/inner-renderer-date-composition-api.vue +4 -3
- package/demos/pc/app/grid/renderer/inner-renderer-date.spec.js +2 -2
- package/demos/pc/app/grid/renderer/inner-renderer-date.vue +3 -3
- package/demos/pc/app/grid/renderer/inner-renderer.spec.js +4 -0
- package/demos/pc/app/grid/size/max-min-grid-height.spec.js +2 -2
- package/demos/pc/app/grid/slot/slot-conf-composition-api.vue +141 -0
- package/demos/pc/app/grid/slot/slot-conf.spec.js +12 -0
- package/demos/pc/app/grid/slot/slot-conf.vue +151 -0
- package/demos/pc/app/grid/sort/combinations-sort.spec.js +2 -2
- package/demos/pc/app/grid/webdoc/grid-edit.js +12 -0
- package/demos/pc/app/grid/webdoc/grid-empty.js +1 -1
- package/demos/pc/app/grid/webdoc/grid-expand.js +11 -0
- package/demos/pc/app/grid/webdoc/grid-slot.js +9 -0
- package/demos/pc/app/icon/iconGroups.js +8 -2
- package/demos/pc/app/input/basic-usage.spec.ts +1 -1
- package/demos/pc/app/loading/background.spec.ts +3 -1
- package/demos/pc/app/loading/custom-class.spec.ts +4 -2
- package/demos/pc/app/loading/fullscreen.spec.ts +6 -4
- package/demos/pc/app/loading/loading-tip-text.spec.ts +3 -1
- package/demos/pc/app/loading/size.spec.ts +5 -3
- package/demos/pc/app/locales/custom-service-composition-api.vue +3 -3
- package/demos/pc/app/locales/custom-service.spec.ts +1 -1
- package/demos/pc/app/locales/custom-service.vue +3 -3
- package/demos/pc/app/modal/basic-usage.spec.ts +2 -1
- package/demos/pc/app/modal/message-close.spec.ts +2 -2
- package/demos/pc/app/modal/message-id.spec.ts +2 -2
- package/demos/pc/app/modal/modal-fn-slots.spec.ts +5 -7
- package/demos/pc/app/modal/modal-header.spec.ts +2 -1
- package/demos/pc/app/numeric/input-event-composition-api.vue +26 -0
- package/demos/pc/app/numeric/input-event.spec.ts +15 -0
- package/demos/pc/app/numeric/input-event.vue +34 -0
- package/demos/pc/app/numeric/webdoc/numeric.js +12 -0
- package/demos/pc/app/pager/align-composition-api.vue +10 -13
- package/demos/pc/app/pager/align.spec.ts +8 -3
- package/demos/pc/app/pager/align.vue +11 -5
- package/demos/pc/app/pager/page-size-composition-api.vue +2 -2
- package/demos/pc/app/pager/page-size.spec.ts +1 -1
- package/demos/pc/app/pager/page-size.vue +2 -2
- package/demos/pc/app/pager/pager-in-grid-composition-api.vue +0 -1
- package/demos/pc/app/pager/pager-in-grid.vue +0 -1
- package/demos/pc/app/pager/popper-append-to-body-composition-api.vue +1 -7
- package/demos/pc/app/pager/popper-append-to-body.vue +1 -7
- package/demos/pc/app/pager/popper-class-composition-api.vue +1 -7
- package/demos/pc/app/pager/popper-class.vue +1 -7
- package/demos/pc/app/popeditor/conditions.spec.ts +1 -1
- package/demos/pc/app/popeditor/suggest.spec.ts +1 -1
- package/demos/pc/app/qr-code/icon-composition-api.vue +17 -3
- package/demos/pc/app/qr-code/icon.spec.ts +19 -0
- package/demos/pc/app/qr-code/icon.vue +25 -4
- package/demos/pc/app/qr-code/style-composition-api.vue +2 -9
- package/demos/pc/app/qr-code/style.spec.ts +18 -1
- package/demos/pc/app/qr-code/style.vue +11 -8
- package/demos/pc/app/query-builder/webdoc/query-builder.js +5 -3
- package/demos/pc/app/search/events.spec.ts +1 -1
- package/demos/pc/app/search/events.vue +9 -0
- package/demos/pc/app/search/slot-prefix-suffix.spec.ts +1 -1
- package/demos/pc/app/search/webdoc/search.js +12 -4
- package/demos/pc/app/select/nest-grid-remote.spec.ts +3 -3
- package/demos/pc/app/select/nest-grid.spec.ts +1 -1
- package/demos/pc/app/select/nest-radio-grid-much-data.spec.ts +5 -7
- package/demos/pc/app/tabs/basic-usage.spec.ts +2 -2
- package/demos/pc/app/tabs/header-only.vue +56 -0
- package/demos/pc/app/tabs/size.spec.ts +2 -2
- package/demos/pc/app/tabs/webdoc/tabs.js +12 -0
- package/demos/pc/app/time-line/slot-default-composition-api.vue +81 -0
- package/demos/pc/app/time-line/slot-default.spec.ts +13 -0
- package/demos/pc/app/time-line/slot-default.vue +95 -0
- package/demos/pc/app/time-line/webdoc/time-line.js +12 -0
- package/demos/pc/menus.js +20 -10
- package/demos/pc/webdoc/changelog-en.md +224 -197
- package/demos/pc/webdoc/changelog.md +167 -387
- package/demos/pc/webdoc/faq.md +14 -0
- package/demos/saas/menus.js +2 -14
- package/env/.env +3 -0
- package/package.json +25 -24
- package/playground/App.vue +2 -2
- package/postcss.config.cjs +1 -0
- package/src/App.vue +26 -59
- package/src/components/anchor.vue +5 -1
- package/src/components/demo.vue +18 -7
- package/src/components/design-token.vue +90 -0
- package/src/components/float-settings.vue +4 -23
- package/src/components/mcp-docs.vue +4 -26
- package/src/components/version-tip.vue +1 -1
- package/src/composable/useTinyRemoter.ts +176 -0
- package/src/composable/utils.ts +2 -166
- package/src/const.ts +6 -1
- package/src/i18n/en.json +2 -0
- package/src/i18n/es.json +47 -0
- package/src/i18n/index.js +24 -5
- package/src/i18n/pt.json +47 -0
- package/src/i18n/zh.json +2 -0
- package/src/main.js +17 -13
- package/src/{menus.jsx → menus.js} +0 -1
- package/src/router.js +3 -18
- package/src/tools/appData.js +6 -16
- package/src/tools/storage.js +5 -3
- package/src/tools/useApiMode.js +11 -3
- package/src/tools/useBulletin.jsx +9 -8
- package/src/tools/useStyleSettings.js +8 -0
- package/src/tools/useTemplateMode.js +5 -1
- package/src/tools/utils.js +32 -1
- package/src/views/components-doc/cmp-config.js +13 -1
- package/src/views/components-doc/common.vue +42 -15
- package/src/views/layout/layout.vue +5 -8
- package/src/views/overview.vue +1 -1
- package/tsconfig.node.json +2 -4
- package/src/components/MessageCard.vue +0 -117
- package/src/components/tiny-robot-chat.vue +0 -128
- package/src/composable/DifyModelProvider.ts +0 -65
- package/src/composable/useTinyRobot.ts +0 -167
- package/src/tools/useAllTaskFinish.ts +0 -0
- package/src/views/comprehensive/Demo.vue +0 -212
- package/src/views/comprehensive/index.vue +0 -380
- package/src/views/comprehensive/products.json +0 -98
- package/src/views/comprehensive/types/index.ts +0 -37
- package/src/views/remoter/index.vue +0 -63
- package/src/views/remoter/sound.vue +0 -349
- /package/demos/pc/app/grid/expand/{expand-config.spec.js → expand-config.spec.ts} +0 -0
|
@@ -3,14 +3,21 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('全量加载', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('grid-large-data#large-data-full-data-loading')
|
|
6
|
-
await page.
|
|
6
|
+
await page.setViewportSize({
|
|
7
|
+
width: 1400,
|
|
8
|
+
height: 2500
|
|
9
|
+
})
|
|
10
|
+
await page.waitForTimeout(1000)
|
|
11
|
+
await page.locator('.tiny-grid__body-wrapper').hover()
|
|
12
|
+
await page.locator('.tiny-grid__body-wrapper').click()
|
|
7
13
|
// 先滚动 1000px
|
|
8
14
|
await page.mouse.wheel(0, 1000)
|
|
9
15
|
await expect(page.getByRole('cell', { name: '28' })).toBeVisible()
|
|
10
16
|
await page.waitForTimeout(500)
|
|
11
|
-
await page.locator('.tiny-grid__body').hover()
|
|
17
|
+
await page.locator('.tiny-grid__body-wrapper').hover()
|
|
18
|
+
await page.locator('.tiny-grid__body-wrapper').click()
|
|
12
19
|
// 先滚动 4000px
|
|
13
20
|
await page.mouse.wheel(0, 5000)
|
|
14
21
|
await page.waitForTimeout(200)
|
|
15
|
-
await expect(page.getByRole('cell', { name: '
|
|
22
|
+
await expect(page.getByRole('cell', { name: '129' })).toBeVisible()
|
|
16
23
|
})
|
|
@@ -3,12 +3,19 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('虚拟滚动', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('grid-large-data#large-data-virtual-rolling')
|
|
6
|
-
await page.
|
|
6
|
+
await page.setViewportSize({
|
|
7
|
+
width: 1400,
|
|
8
|
+
height: 2500
|
|
9
|
+
})
|
|
10
|
+
await page.waitForTimeout(1000)
|
|
11
|
+
await page.locator('.tiny-grid__body-wrapper').hover()
|
|
12
|
+
await page.locator('.tiny-grid__body-wrapper').click()
|
|
7
13
|
// 先滚动 1000px
|
|
8
14
|
await page.mouse.wheel(0, 1000)
|
|
9
15
|
await expect(page.getByRole('cell', { name: '24' })).toBeVisible()
|
|
10
16
|
await page.waitForTimeout(500)
|
|
11
|
-
await page.locator('.tiny-grid__body').hover()
|
|
17
|
+
await page.locator('.tiny-grid__body-wrapper').hover()
|
|
18
|
+
await page.locator('.tiny-grid__body-wrapper').click()
|
|
12
19
|
// 先滚动 4000px
|
|
13
20
|
await page.mouse.wheel(0, 5000)
|
|
14
21
|
await expect(page.getByRole('cell', { name: '124' })).toBeVisible()
|
|
@@ -4,7 +4,10 @@ test('键盘导航测试', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
const demo = page.locator('#mouse-keyboard-keyboard-navigation')
|
|
6
6
|
await page.goto('grid-mouse-keyboard#mouse-keyboard-keyboard-navigation')
|
|
7
|
-
|
|
7
|
+
await page.setViewportSize({
|
|
8
|
+
width: 1400,
|
|
9
|
+
height: 2500
|
|
10
|
+
})
|
|
8
11
|
await page.getByText('GFD 科技 YX 公司').click()
|
|
9
12
|
await page.waitForTimeout(300)
|
|
10
13
|
await page.locator('body').press('ArrowDown')
|
|
@@ -7,19 +7,19 @@
|
|
|
7
7
|
field="date3"
|
|
8
8
|
title="日期3"
|
|
9
9
|
format-text="date"
|
|
10
|
-
:format-config="{
|
|
10
|
+
:format-config="{ dateFormat: 'dd/MM/yyyy' }"
|
|
11
11
|
></tiny-grid-column>
|
|
12
12
|
<tiny-grid-column
|
|
13
13
|
field="date4"
|
|
14
14
|
title="日期4"
|
|
15
15
|
format-text="date"
|
|
16
|
-
:format-config="{
|
|
16
|
+
:format-config="{ dateFormat: 'dd/MM/yyyy' }"
|
|
17
17
|
></tiny-grid-column>
|
|
18
18
|
<tiny-grid-column
|
|
19
19
|
field="date5"
|
|
20
20
|
title="日期5"
|
|
21
21
|
format-text="date"
|
|
22
|
-
:format-config="{
|
|
22
|
+
:format-config="{ dateFormat: 'MM/dd/yyyy' }"
|
|
23
23
|
></tiny-grid-column>
|
|
24
24
|
</tiny-grid>
|
|
25
25
|
</template>
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
<script setup>
|
|
28
28
|
import { ref } from 'vue'
|
|
29
29
|
import { TinyGrid, TinyGridColumn } from '@opentiny/vue'
|
|
30
|
+
|
|
30
31
|
const tableData = ref([
|
|
31
32
|
{
|
|
32
33
|
id: '1',
|
|
@@ -4,6 +4,6 @@ test('日期渲染器', async ({ page }) => {
|
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('grid-renderer#renderer-inner-renderer-date')
|
|
6
6
|
await expect(page.getByText('-07-02').first()).toBeVisible()
|
|
7
|
-
await expect(page.getByText('
|
|
8
|
-
await expect(page.getByText('
|
|
7
|
+
await expect(page.getByText('02/07/2024').first()).toBeVisible()
|
|
8
|
+
await expect(page.getByText('02/15/2024').first()).toBeVisible()
|
|
9
9
|
})
|
|
@@ -7,19 +7,19 @@
|
|
|
7
7
|
field="date3"
|
|
8
8
|
title="日期3"
|
|
9
9
|
format-text="date"
|
|
10
|
-
:format-config="{
|
|
10
|
+
:format-config="{ dateFormat: 'dd/MM/yyyy' }"
|
|
11
11
|
></tiny-grid-column>
|
|
12
12
|
<tiny-grid-column
|
|
13
13
|
field="date4"
|
|
14
14
|
title="日期4"
|
|
15
15
|
format-text="date"
|
|
16
|
-
:format-config="{
|
|
16
|
+
:format-config="{ dateFormat: 'dd/MM/yyyy' }"
|
|
17
17
|
></tiny-grid-column>
|
|
18
18
|
<tiny-grid-column
|
|
19
19
|
field="date5"
|
|
20
20
|
title="日期5"
|
|
21
21
|
format-text="date"
|
|
22
|
-
:format-config="{
|
|
22
|
+
:format-config="{ dateFormat: 'MM/dd/yyyy' }"
|
|
23
23
|
></tiny-grid-column>
|
|
24
24
|
</tiny-grid>
|
|
25
25
|
</template>
|
|
@@ -3,6 +3,10 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('内置渲染器', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('grid-renderer#renderer-inner-renderer')
|
|
6
|
+
await page.setViewportSize({
|
|
7
|
+
width: 1400,
|
|
8
|
+
height: 2500
|
|
9
|
+
})
|
|
6
10
|
const cell = page.getByRole('cell', { name: '90.0%' }).locator('.tiny-grid__rate-chart')
|
|
7
11
|
await expect(cell).toHaveCSS('background-color', 'rgb(92, 179, 0)')
|
|
8
12
|
})
|
|
@@ -3,6 +3,6 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('设置 maxHeight 最大高度', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('grid-size#size-max-min-grid-height')
|
|
6
|
-
await expect(page.locator('.tiny-grid__body-wrapper').nth(0)).toHaveCSS('max-height', '
|
|
7
|
-
await expect(page.locator('.tiny-grid__body-wrapper').nth(1)).toHaveCSS('min-height', '
|
|
6
|
+
await expect(page.locator('.tiny-grid__body-wrapper').nth(0)).toHaveCSS('max-height', '200px')
|
|
7
|
+
await expect(page.locator('.tiny-grid__body-wrapper').nth(1)).toHaveCSS('min-height', '300px')
|
|
8
8
|
})
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<tiny-grid v-bind="op"></tiny-grid>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup lang="jsx">
|
|
6
|
+
import { ref } from 'vue'
|
|
7
|
+
import { TinyGrid } from '@opentiny/vue'
|
|
8
|
+
|
|
9
|
+
const tableData = [
|
|
10
|
+
{
|
|
11
|
+
id: '1',
|
|
12
|
+
name: 'GFD 科技 YX 公司',
|
|
13
|
+
city: '福州',
|
|
14
|
+
employees: 800,
|
|
15
|
+
createdDate: '2014-04-30 00:56:00',
|
|
16
|
+
boole: false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: '2',
|
|
20
|
+
name: 'WWW 科技 YX 公司',
|
|
21
|
+
city: '深圳',
|
|
22
|
+
employees: 300,
|
|
23
|
+
createdDate: '2016-07-08 12:36:22',
|
|
24
|
+
boole: true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: '3',
|
|
28
|
+
name: 'RFV 有限责任公司',
|
|
29
|
+
city: '中山',
|
|
30
|
+
employees: 1300,
|
|
31
|
+
createdDate: '2014-02-14 14:14:14',
|
|
32
|
+
boole: false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: '4',
|
|
36
|
+
name: 'TGB 科技 YX 公司',
|
|
37
|
+
city: '龙岩',
|
|
38
|
+
employees: 360,
|
|
39
|
+
createdDate: '2013-01-13 13:13:13',
|
|
40
|
+
boole: true
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: '5',
|
|
44
|
+
name: 'YHN 科技 YX 公司',
|
|
45
|
+
city: '韶关',
|
|
46
|
+
employees: 810,
|
|
47
|
+
createdDate: '2012-12-12 12:12:12',
|
|
48
|
+
boole: true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: '6',
|
|
52
|
+
name: 'WSX 科技 YX 公司',
|
|
53
|
+
city: '黄冈',
|
|
54
|
+
employees: 800,
|
|
55
|
+
createdDate: '2011-11-11 11:11:11',
|
|
56
|
+
boole: true
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: '7',
|
|
60
|
+
name: 'KBG 物业 YX 公司',
|
|
61
|
+
city: '赤壁',
|
|
62
|
+
employees: 400,
|
|
63
|
+
createdDate: '2016-04-30 23:56:00',
|
|
64
|
+
boole: false
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: '8',
|
|
68
|
+
name: '深圳市福德宝网络技术 YX 公司',
|
|
69
|
+
boole: true,
|
|
70
|
+
city: '厦门',
|
|
71
|
+
createdDate: '2016-06-03 13:53:25',
|
|
72
|
+
employees: 540
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
const op = ref({
|
|
77
|
+
editConfig: {
|
|
78
|
+
trigger: 'click',
|
|
79
|
+
mode: 'cell',
|
|
80
|
+
showStatus: true
|
|
81
|
+
},
|
|
82
|
+
columns: [
|
|
83
|
+
{
|
|
84
|
+
type: 'index',
|
|
85
|
+
width: 60
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'selection',
|
|
89
|
+
width: 60
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
field: 'employees',
|
|
93
|
+
title: '员工数'
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
field: 'createdDate',
|
|
97
|
+
title: '创建日期'
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
field: 'city',
|
|
101
|
+
title: '城市',
|
|
102
|
+
slots: {
|
|
103
|
+
default: ({ row }) => {
|
|
104
|
+
return (
|
|
105
|
+
<div class="city-slot" style={{ color: 'red' }}>
|
|
106
|
+
{row.city}
|
|
107
|
+
</div>
|
|
108
|
+
)
|
|
109
|
+
},
|
|
110
|
+
header: () => {
|
|
111
|
+
return (
|
|
112
|
+
<div class="city-header" style={{ color: 'blue' }}>
|
|
113
|
+
城市
|
|
114
|
+
</div>
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
field: 'boole',
|
|
121
|
+
title: '布尔值',
|
|
122
|
+
align: 'center',
|
|
123
|
+
formatText: 'boole',
|
|
124
|
+
editor: checkboxEdit
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
data: tableData
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
function checkboxEdit(h, { row }) {
|
|
131
|
+
return (
|
|
132
|
+
<input
|
|
133
|
+
type="checkbox"
|
|
134
|
+
checked={row.boole}
|
|
135
|
+
onChange={(event) => {
|
|
136
|
+
row.boole = event.target.checked
|
|
137
|
+
}}
|
|
138
|
+
/>
|
|
139
|
+
)
|
|
140
|
+
}
|
|
141
|
+
</script>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test'
|
|
2
|
+
|
|
3
|
+
test('配置式表格插槽', async ({ page }) => {
|
|
4
|
+
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
|
+
await page.goto('grid-slot#slot-conf-slot')
|
|
6
|
+
|
|
7
|
+
const dom = page.locator('#slot-conf-slot')
|
|
8
|
+
const citySlot = dom.locator('.city-slot').first()
|
|
9
|
+
await expect(citySlot).toHaveCSS('color', 'rgb(255, 0, 0)')
|
|
10
|
+
const cityHeader = dom.locator('.city-header').first()
|
|
11
|
+
await expect(cityHeader).toHaveCSS('color', 'rgb(0, 0, 255)')
|
|
12
|
+
})
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<tiny-grid v-bind="op"></tiny-grid>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script lang="jsx">
|
|
6
|
+
import { TinyGrid } from '@opentiny/vue'
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
components: {
|
|
10
|
+
TinyGrid
|
|
11
|
+
},
|
|
12
|
+
data() {
|
|
13
|
+
const tableData = [
|
|
14
|
+
{
|
|
15
|
+
id: '1',
|
|
16
|
+
name: 'GFD 科技 YX 公司',
|
|
17
|
+
city: '福州',
|
|
18
|
+
employees: 800,
|
|
19
|
+
createdDate: '2014-04-30 00:56:00',
|
|
20
|
+
boole: false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: '2',
|
|
24
|
+
name: 'WWW 科技 YX 公司',
|
|
25
|
+
city: '深圳',
|
|
26
|
+
employees: 300,
|
|
27
|
+
createdDate: '2016-07-08 12:36:22',
|
|
28
|
+
boole: true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: '3',
|
|
32
|
+
name: 'RFV 有限责任公司',
|
|
33
|
+
city: '中山',
|
|
34
|
+
employees: 1300,
|
|
35
|
+
createdDate: '2014-02-14 14:14:14',
|
|
36
|
+
boole: false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: '4',
|
|
40
|
+
name: 'TGB 科技 YX 公司',
|
|
41
|
+
city: '龙岩',
|
|
42
|
+
employees: 360,
|
|
43
|
+
createdDate: '2013-01-13 13:13:13',
|
|
44
|
+
boole: true
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: '5',
|
|
48
|
+
name: 'YHN 科技 YX 公司',
|
|
49
|
+
city: '韶关',
|
|
50
|
+
employees: 810,
|
|
51
|
+
createdDate: '2012-12-12 12:12:12',
|
|
52
|
+
boole: true
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: '6',
|
|
56
|
+
name: 'WSX 科技 YX 公司',
|
|
57
|
+
city: '黄冈',
|
|
58
|
+
employees: 800,
|
|
59
|
+
createdDate: '2011-11-11 11:11:11',
|
|
60
|
+
boole: true
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: '7',
|
|
64
|
+
name: 'KBG 物业 YX 公司',
|
|
65
|
+
city: '赤壁',
|
|
66
|
+
employees: 400,
|
|
67
|
+
createdDate: '2016-04-30 23:56:00',
|
|
68
|
+
boole: false
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: '8',
|
|
72
|
+
name: '深圳市福德宝网络技术 YX 公司',
|
|
73
|
+
boole: true,
|
|
74
|
+
city: '厦门',
|
|
75
|
+
createdDate: '2016-06-03 13:53:25',
|
|
76
|
+
employees: 540
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
op: {
|
|
82
|
+
editConfig: {
|
|
83
|
+
trigger: 'click',
|
|
84
|
+
mode: 'cell',
|
|
85
|
+
showStatus: true
|
|
86
|
+
},
|
|
87
|
+
columns: [
|
|
88
|
+
{
|
|
89
|
+
type: 'index',
|
|
90
|
+
width: 60
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'selection',
|
|
94
|
+
width: 60
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
field: 'employees',
|
|
98
|
+
title: '员工数'
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
field: 'createdDate',
|
|
102
|
+
title: '创建日期'
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
field: 'city',
|
|
106
|
+
title: '城市',
|
|
107
|
+
slots: {
|
|
108
|
+
default: ({ row }) => {
|
|
109
|
+
return (
|
|
110
|
+
<div class="city-slot" style={{ color: 'red' }}>
|
|
111
|
+
{row.city}
|
|
112
|
+
</div>
|
|
113
|
+
)
|
|
114
|
+
},
|
|
115
|
+
header: () => {
|
|
116
|
+
return (
|
|
117
|
+
<div class="city-header" style={{ color: 'blue' }}>
|
|
118
|
+
城市
|
|
119
|
+
</div>
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
field: 'boole',
|
|
126
|
+
title: '布尔值',
|
|
127
|
+
align: 'center',
|
|
128
|
+
formatText: 'boole',
|
|
129
|
+
editor: this.checkboxEdit
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
data: tableData
|
|
133
|
+
},
|
|
134
|
+
tableData
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
methods: {
|
|
138
|
+
checkboxEdit(h, { row }) {
|
|
139
|
+
return (
|
|
140
|
+
<input
|
|
141
|
+
type="checkbox"
|
|
142
|
+
checked={row.boole}
|
|
143
|
+
onChange={(event) => {
|
|
144
|
+
row.boole = event.target.checked
|
|
145
|
+
}}
|
|
146
|
+
/>
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
</script>
|
|
@@ -5,7 +5,7 @@ test('多字段组合排序', async ({ page }) => {
|
|
|
5
5
|
await page.goto('grid-sort#sort-combinations-sort')
|
|
6
6
|
await page.getByRole('cell', { name: '员工数(员工数和名称组合排序)' }).getByRole('img').click()
|
|
7
7
|
// 员工数第一优先级排序
|
|
8
|
-
await expect(page.locator('.tiny-grid-body__row').first()).toContainText('
|
|
8
|
+
await expect(page.locator('.tiny-grid-body__row').first()).toContainText('300')
|
|
9
9
|
// 公司名称第二优先级排序
|
|
10
|
-
await expect(page.locator('.tiny-grid-body__row').nth(
|
|
10
|
+
await expect(page.locator('.tiny-grid-body__row').nth(6)).toContainText('YHN 科技 YX 公司')
|
|
11
11
|
})
|
|
@@ -100,6 +100,18 @@ export default {
|
|
|
100
100
|
'<p>Table attribute setting<code>edit-config</code>Enable the editing mode, and then set <code>trigger</code> in the attribute object to modify the triggering mode. The options are as follows: <code>click trigger (click), double-click trigger (dblclick), and manual trigger (manual)</code>. The default value is <code>click trigger</code>. </p>\n'
|
|
101
101
|
},
|
|
102
102
|
codeFiles: ['edit/trigger-mode-for-editing.vue']
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
demoId: 'scrollbar-not-blur',
|
|
106
|
+
name: { 'zh-CN': '行编辑滚动不失焦', 'en-US': 'Scroll not blur' },
|
|
107
|
+
desc: {
|
|
108
|
+
'zh-CN': `
|
|
109
|
+
<p>配置 <code>edit-config</code> 的<code>blurOutside</code>自定义编辑态的退出逻辑。</p>
|
|
110
|
+
`,
|
|
111
|
+
'en-US':
|
|
112
|
+
'<p>Configure <code>blurOutside</code> of <code>edit-config</code> to customize the exit logic of the editing state. </p>\n'
|
|
113
|
+
},
|
|
114
|
+
codeFiles: ['edit/scrollbar-not-blur.vue']
|
|
103
115
|
}
|
|
104
116
|
],
|
|
105
117
|
apis: [{ name: 'grid-edit', 'type': 'component', 'props': [], 'events': [], 'slots': [] }]
|
|
@@ -27,7 +27,7 @@ export default {
|
|
|
27
27
|
name: { 'zh-CN': '固定居中', 'en-US': 'Fix Center' },
|
|
28
28
|
desc: {
|
|
29
29
|
'zh-CN':
|
|
30
|
-
'<p
|
|
30
|
+
'<p>(从3.25.0版本开始默认固定居中)配置 <code>is-center-empty</code> 为 <code>true</code> 时,拖动横向滚动条可以保持空数据提示使终相对表格宽度居中显示。</p>\n',
|
|
31
31
|
'en-US':
|
|
32
32
|
'<p>When <code>is-center-empty</code> is set to <code>true</code>, drag the horizontal scroll bar to keep the empty data prompt so that the final data is displayed in the center of the table width</p>\n'
|
|
33
33
|
},
|
|
@@ -15,6 +15,17 @@ export default {
|
|
|
15
15
|
},
|
|
16
16
|
codeFiles: ['expand/has-row-expand.vue']
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
demoId: 'expand-trigger-slot',
|
|
20
|
+
name: { 'zh-CN': '展开行触发器插槽', 'en-US': 'Expand row trigger slot' },
|
|
21
|
+
desc: {
|
|
22
|
+
'zh-CN': `
|
|
23
|
+
<p>通过 <code>expand-trigger</code> 插槽可以自定义展开行图标。</p>
|
|
24
|
+
`,
|
|
25
|
+
'en-US': '<p>You can customize the expand row icon through the <code>expand-trigger</code> slot. </p>\n'
|
|
26
|
+
},
|
|
27
|
+
codeFiles: ['expand/expand-trigger-slot.vue']
|
|
28
|
+
},
|
|
18
29
|
{
|
|
19
30
|
demoId: 'expand-expand-config',
|
|
20
31
|
name: { 'zh-CN': '展开行配置项', 'en-US': 'Basic Usage' },
|
|
@@ -11,6 +11,15 @@ export default {
|
|
|
11
11
|
},
|
|
12
12
|
codeFiles: ['slot/default-slot.vue']
|
|
13
13
|
},
|
|
14
|
+
{
|
|
15
|
+
demoId: 'slot-conf-slot',
|
|
16
|
+
name: { 'zh-CN': '配置式表格插槽', 'en-US': 'Config slot' },
|
|
17
|
+
desc: {
|
|
18
|
+
'zh-CN': `<p>通过 <code>column.slots</code> 添加表格列的插槽。</p>`,
|
|
19
|
+
'en-US': 'For details, see the following example.'
|
|
20
|
+
},
|
|
21
|
+
codeFiles: ['slot/slot-conf.vue']
|
|
22
|
+
},
|
|
14
23
|
{
|
|
15
24
|
demoId: 'slot-buttons-slot',
|
|
16
25
|
name: { 'zh-CN': '工具栏插槽', 'en-US': 'Toolbar slot' },
|
|
@@ -71,7 +71,8 @@ export const iconGroups = {
|
|
|
71
71
|
'IconUp',
|
|
72
72
|
'IconUpdate',
|
|
73
73
|
'IconUpO',
|
|
74
|
-
'IconUpWard'
|
|
74
|
+
'IconUpWard',
|
|
75
|
+
'IconTriangleUp'
|
|
75
76
|
],
|
|
76
77
|
Downward: [
|
|
77
78
|
'IconArrowBottom',
|
|
@@ -291,6 +292,7 @@ export const iconGroups = {
|
|
|
291
292
|
'IconTabletView',
|
|
292
293
|
'IconUnlock',
|
|
293
294
|
'IconUser',
|
|
295
|
+
'IconDelegatedProcessing',
|
|
294
296
|
'IconVersiontree',
|
|
295
297
|
'IconWebPlus',
|
|
296
298
|
'IconJs',
|
|
@@ -387,7 +389,11 @@ export const iconGroups = {
|
|
|
387
389
|
'IconSmile',
|
|
388
390
|
'IconStarActive',
|
|
389
391
|
'IconStarDisable',
|
|
390
|
-
'IconStarO'
|
|
392
|
+
'IconStarO',
|
|
393
|
+
'IconBadgeHotCn',
|
|
394
|
+
'IconBadgeHotEn',
|
|
395
|
+
'IconBadgeNewCn',
|
|
396
|
+
'IconBadgeNewEn'
|
|
391
397
|
],
|
|
392
398
|
Tool: [
|
|
393
399
|
'IconConfig',
|
|
@@ -3,7 +3,7 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('基本示例', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('input#basic-usage')
|
|
6
|
-
const input = page.locator('.demo-input > .tiny-input > .tiny-input-display-only > input')
|
|
6
|
+
const input = page.locator('#basic-usage .demo-input > .tiny-input > .tiny-input-display-only > input')
|
|
7
7
|
|
|
8
8
|
await expect(input).toBeVisible()
|
|
9
9
|
await expect(input).toHaveAttribute('placeholder', 'Please input')
|
|
@@ -3,6 +3,8 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('自定义遮罩背景色', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('loading#background')
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#background')
|
|
8
|
+
const loadingBg = demo.locator('.tiny-loading__mask')
|
|
7
9
|
await expect(loadingBg).toHaveCSS('background-color', 'rgba(0, 0, 0, 0.2)')
|
|
8
10
|
})
|
|
@@ -3,8 +3,10 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('自定义样式', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('loading#custom-class')
|
|
6
|
-
|
|
7
|
-
const
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#custom-class')
|
|
8
|
+
const loadingBg = demo.locator('.tiny-loading__mask')
|
|
9
|
+
const loadingText = demo.locator('.new-loading')
|
|
8
10
|
await expect(loadingBg).toHaveCSS('background-color', 'rgb(89, 89, 89)')
|
|
9
11
|
await expect(loadingText).toBeVisible()
|
|
10
12
|
})
|
|
@@ -3,11 +3,13 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('全局加载', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('loading#fullscreen')
|
|
6
|
-
|
|
7
|
-
const
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#fullscreen')
|
|
8
|
+
await demo.getByRole('button', { name: '指令方式加载全屏 Loading' }).click()
|
|
9
|
+
const vLoading = page.locator('.tiny-loading.tiny-loading__mask.is-fullscreen')
|
|
8
10
|
await expect(vLoading).toBeVisible()
|
|
9
11
|
|
|
10
|
-
await
|
|
11
|
-
const sLoading =
|
|
12
|
+
await demo.getByRole('button', { name: '静态方法加载全屏 Loading' }).click()
|
|
13
|
+
const sLoading = vLoading.getByText('正在提交...', { exact: true })
|
|
12
14
|
await expect(sLoading).toBeVisible()
|
|
13
15
|
})
|
|
@@ -3,6 +3,8 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('自定义加载提示文本', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('loading#loading-tip-text')
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#loading-tip-text')
|
|
8
|
+
const loadingText = demo.locator('.tiny-loading__text')
|
|
7
9
|
await expect(loadingText).toContainText('加载中')
|
|
8
10
|
})
|
|
@@ -3,9 +3,11 @@ import { test, expect } from '@playwright/test'
|
|
|
3
3
|
test('尺寸', async ({ page }) => {
|
|
4
4
|
page.on('pageerror', (exception) => expect(exception).toBeNull())
|
|
5
5
|
await page.goto('loading#size')
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
|
|
7
|
+
const demo = page.locator('#size')
|
|
8
|
+
const smallLoading = demo.locator('.tiny-loading__spinner-small')
|
|
9
|
+
const mediumLoading = demo.locator('.tiny-loading__spinner-medium')
|
|
10
|
+
const largeLoading = demo.locator('.tiny-loading__spinner-large')
|
|
9
11
|
await expect(smallLoading).toBeVisible()
|
|
10
12
|
await expect(mediumLoading).toBeVisible()
|
|
11
13
|
await expect(largeLoading).toBeVisible()
|
|
@@ -11,15 +11,15 @@ import { TinyLocales } from '@opentiny/vue'
|
|
|
11
11
|
|
|
12
12
|
function getLocale() {
|
|
13
13
|
// resolve 出来的必须是国际化的 key
|
|
14
|
-
return Promise.resolve(['
|
|
14
|
+
return Promise.resolve(['zhCN', 'enUS', 'zhTW'])
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
function getCurrentLocale() {
|
|
18
|
-
return Promise.resolve(['
|
|
18
|
+
return Promise.resolve(['zhCN'])
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
function getChangeLocaleUrl(targetLocale) {
|
|
22
|
-
if (targetLocale === '
|
|
22
|
+
if (targetLocale === 'enUS') {
|
|
23
23
|
return Promise.resolve(`${window.location.origin}/#/webenglish/en-US/component/locales/custom-service`)
|
|
24
24
|
} else {
|
|
25
25
|
return Promise.resolve(`${window.location.origin}/#/zh-CN/component/custom-service`)
|