Skip to content

Commit 2b21294

Browse files
authored
feat(base-select): [base-select] optimize base select and fix some bugs (#2532)
* fix(base-select): [base-select] fix data init error when set options and multiple * fix(base-select): fix data display error when set disabled and hover-expand * fix(base-select): fix e2e test failed * fix(base-select): fix search component style when set searchable * fix(base-select): fix top-create style * fix(base-select): fix slot-prefix demo style * fix(base-select): fix option can not selected when set clear-no-match-value to true * chore(base-select): remove beta tag
1 parent d77c5ee commit 2b21294

File tree

18 files changed

+147
-116
lines changed

18 files changed

+147
-116
lines changed

examples/sites/demos/pc/app/base-select/disabled.spec.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ test('多选,禁用项默认选中', async ({ page }) => {
6464

6565
// 默认值显示tag数
6666
await expect(tag).toHaveCount(2)
67-
// 禁用项默认选中不显示关闭图标
68-
await expect(tag.filter({ hasText: '上海' }).locator('svg')).toHaveCount(0)
6967
// 非禁用项显示关闭图标
7068
await expect(tag.filter({ hasText: '天津' }).locator('svg')).toHaveCount(1)
7169

examples/sites/demos/pc/app/base-select/size-composition-api.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<template>
22
<div>
3-
<p>默认</p>
4-
<tiny-base-select v-model="value1" multiple :options="options"></tiny-base-select>
53
<p>medium</p>
64
<tiny-base-select v-model="value2" size="medium" multiple :options="options"></tiny-base-select>
5+
<p>默认</p>
6+
<tiny-base-select v-model="value1" multiple :options="options"></tiny-base-select>
77
<p>small</p>
88
<tiny-base-select v-model="value3" size="small" multiple :options="options"> </tiny-base-select>
99
<p>mini</p>

examples/sites/demos/pc/app/base-select/size.spec.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { test, expect } from '@playwright/test'
22

3-
test('默认尺寸', async ({ page }) => {
3+
test('medium 尺寸', async ({ page }) => {
44
page.on('pageerror', (exception) => expect(exception).toBeNull())
55
await page.goto('base-select#size')
66

@@ -9,11 +9,12 @@ test('默认尺寸', async ({ page }) => {
99
const input = select.locator('.tiny-input')
1010
const tag = select.locator('.tiny-tag')
1111

12-
await expect(input.locator('.tiny-input__inner')).toHaveCSS('height', '32px')
13-
await expect(tag.nth(0)).toHaveClass(/tiny-tag--light/)
12+
await expect(input).toHaveClass(/tiny-input-medium/)
13+
await expect(input.locator('.tiny-input__inner')).toHaveCSS('height', '40px')
14+
await expect(tag.nth(0)).toHaveClass(/tiny-tag--medium tiny-tag--light/)
1415
})
1516

16-
test('medium 尺寸', async ({ page }) => {
17+
test('默认尺寸', async ({ page }) => {
1718
page.on('pageerror', (exception) => expect(exception).toBeNull())
1819
await page.goto('base-select#size')
1920

@@ -22,9 +23,8 @@ test('medium 尺寸', async ({ page }) => {
2223
const input = select.locator('.tiny-input')
2324
const tag = select.locator('.tiny-tag')
2425

25-
await expect(input).toHaveClass(/tiny-input-medium/)
26-
await expect(input.locator('.tiny-input__inner')).toHaveCSS('height', '40px')
27-
await expect(tag.nth(0)).toHaveClass(/tiny-tag--medium tiny-tag--light/)
26+
await expect(input.locator('.tiny-input__inner')).toHaveCSS('height', '32px')
27+
await expect(tag.nth(0)).toHaveClass(/tiny-tag--light/)
2828
})
2929

3030
test('small 尺寸', async ({ page }) => {

examples/sites/demos/pc/app/base-select/size.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<template>
22
<div>
3-
<p>默认</p>
4-
<tiny-base-select v-model="value1" multiple :options="options"></tiny-base-select>
53
<p>medium</p>
64
<tiny-base-select v-model="value2" size="medium" multiple :options="options"></tiny-base-select>
5+
<p>默认</p>
6+
<tiny-base-select v-model="value1" multiple :options="options"></tiny-base-select>
77
<p>small</p>
88
<tiny-base-select v-model="value3" size="small" multiple :options="options"> </tiny-base-select>
99
<p>mini</p>

examples/sites/demos/pc/app/base-select/slot-default-composition-api.vue

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<template>
22
<div>
33
<p>场景1:带标签和提示信息</p>
4+
<br />
45
<tiny-base-select v-model="value1" popper-class="slot-default">
56
<template v-for="item in options1">
67
<tiny-tooltip v-if="item.tip" :content="item.tip" placement="right" effect="light" :key="item.value">
@@ -15,8 +16,10 @@
1516
</tiny-option>
1617
</template>
1718
</tiny-base-select>
19+
<br /><br />
1820

1921
<p>场景2:选项双行</p>
22+
<br />
2023
<tiny-base-select v-model="value2" popper-class="double-row">
2124
<tiny-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value">
2225
<div>
@@ -69,11 +72,6 @@ const value2 = ref('选项1')
6972
margin: 6px;
7073
}
7174
}
72-
p {
73-
font-size: 14px;
74-
line-height: 1.5;
75-
padding: 16px 0;
76-
}
7775
</style>
7876

7977
<style lang="less">

examples/sites/demos/pc/app/base-select/slot-default.vue

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<template>
22
<div>
33
<p>场景1:带标签和提示信息</p>
4+
<br />
45
<tiny-base-select v-model="value1" popper-class="slot-default">
56
<template v-for="item in options1">
67
<tiny-tooltip v-if="item.tip" :content="item.tip" placement="right" effect="light" :key="item.value">
@@ -15,8 +16,10 @@
1516
</tiny-option>
1617
</template>
1718
</tiny-base-select>
19+
<br /><br />
1820

1921
<p>场景2:选项双行</p>
22+
<br />
2023
<tiny-base-select v-model="value2" popper-class="double-row">
2124
<tiny-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value">
2225
<div>
@@ -78,11 +81,6 @@ export default {
7881
margin: 6px;
7982
}
8083
}
81-
p {
82-
font-size: 14px;
83-
line-height: 1.5;
84-
padding: 16px 0;
85-
}
8684
</style>
8785

8886
<style lang="less">

examples/sites/demos/pc/app/base-select/slot-prefix-composition-api.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<tiny-base-select v-model="value" multiple collapse-tags>
33
<template #prefix>
4-
<tiny-icon-share></tiny-icon-share>
4+
<tiny-icon-location></tiny-icon-location>
55
</template>
66
<tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
77
</tiny-base-select>
@@ -10,7 +10,7 @@
1010
<script setup>
1111
import { ref } from 'vue'
1212
import { TinyBaseSelect, TinyOption } from '@opentiny/vue'
13-
import { iconShare } from '@opentiny/vue-icon'
13+
import { iconLocation } from '@opentiny/vue-icon'
1414
1515
const options = ref([
1616
{ value: '选项1', label: '北京' },
@@ -21,7 +21,7 @@ const options = ref([
2121
])
2222
const value = ref('')
2323
24-
const TinyIconShare = iconShare()
24+
const TinyIconLocation = iconLocation()
2525
</script>
2626

2727
<style lang="less" scoped>

examples/sites/demos/pc/app/base-select/slot-prefix.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
<template>
22
<tiny-base-select v-model="value" multiple collapse-tags>
33
<template #prefix>
4-
<icon-share></icon-share>
4+
<tiny-icon-location></tiny-icon-location>
55
</template>
66
<tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
77
</tiny-base-select>
88
</template>
99

1010
<script>
1111
import { TinyBaseSelect, TinyOption } from '@opentiny/vue'
12-
import { iconShare } from '@opentiny/vue-icon'
12+
import { iconLocation } from '@opentiny/vue-icon'
1313
1414
export default {
1515
components: {
1616
TinyBaseSelect,
1717
TinyOption,
18-
IconShare: iconShare()
18+
TinyIconLocation: iconLocation()
1919
},
2020
data() {
2121
return {

examples/sites/demos/pc/app/base-select/webdoc/base-select.cn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ title: BaseSelect 基础选择器
44

55
# BaseSelect 基础选择器
66

7-
BaseSelect 基础选择器是 Select 组件的基础版本,用法和 Select 一样,但是不包含下拉树和下拉表格功能。
7+
BaseSelect 基础选择器是 Select 组件的基础版本,用法和 Select 一样,但是不包含下拉树和下拉表格功能。BaseSelect 组件的包体积更小,如果你不需要下拉树和下拉表格功能,推荐使用 BaseSelect 组件,而不是 Select 组件。

examples/sites/demos/pc/app/base-select/webdoc/base-select.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
export default {
22
column: '2',
33
owner: '',
4-
meta: {
5-
experimental: '3.16.0'
6-
},
74
demos: [
85
{
96
demoId: 'basic-usage',

0 commit comments

Comments
 (0)