File tree Expand file tree Collapse file tree 2 files changed +58
-1
lines changed
packages/component/component/select Expand file tree Collapse file tree 2 files changed +58
-1
lines changed Original file line number Diff line number Diff line change @@ -243,4 +243,56 @@ describe("LaySelect", () => {
243
243
expect ( tags1 . length ) . toBe ( 0 ) ;
244
244
expect ( value1 . value . length ) . toBe ( 0 ) ;
245
245
} ) ;
246
+
247
+ test ( "输入内容,自动弹出下拉框" , async ( ) => {
248
+ const teleportProps = { to : "body" , disabled : true } ;
249
+
250
+ const value1 = ref ( [ 1 ] ) ;
251
+
252
+ const wrapper = mount (
253
+ {
254
+ setup ( ) {
255
+ const options = [
256
+ { label : "学习" , value : 1 } ,
257
+ { label : "复习" , value : 2 } ,
258
+ ] ;
259
+
260
+ return ( ) => (
261
+ < LaySelect
262
+ v-model = { value1 . value }
263
+ options = { options }
264
+ multiple
265
+ show-search
266
+ teleportProps = { teleportProps }
267
+ > </ LaySelect >
268
+ ) ;
269
+ } ,
270
+ } ,
271
+ { attachTo : document . body }
272
+ ) ;
273
+
274
+ const inputComponent = wrapper . findComponent ( ".layui-tag-input" ) ;
275
+
276
+ await inputComponent . trigger ( "click" ) ;
277
+ await nextTick ( ) ;
278
+ await sleep ( ) ;
279
+
280
+ const tooltip1 = wrapper . find ( ".layui-popper" ) ;
281
+ expect ( tooltip1 . exists ( ) ) . toBeTruthy ( ) ;
282
+ expect ( tooltip1 . isVisible ( ) ) . toBeTruthy ( ) ;
283
+
284
+ await inputComponent . trigger ( "click" ) ;
285
+ await nextTick ( ) ;
286
+ await sleep ( ) ;
287
+ expect ( tooltip1 . isVisible ( ) ) . toBeFalsy ( ) ;
288
+
289
+ const inputInstance = wrapper . find (
290
+ ".layui-tag-input .layui-tag-input-inner input"
291
+ ) ;
292
+ await inputInstance . setValue ( "hello" ) ;
293
+
294
+ await nextTick ( ) ;
295
+ await sleep ( ) ;
296
+ expect ( tooltip1 . isVisible ( ) ) . toBeTruthy ( ) ;
297
+ } ) ;
246
298
} ) ;
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ const props = withDefaults(defineProps<SelectProps>(), {
73
73
const { size } = useProps (props );
74
74
75
75
const slots = useSlots ();
76
- const selectRef = ref ( );
76
+ const selectRef = ref < typeof LayDropdown | null >( null );
77
77
const searchValue = ref (" " );
78
78
const singleValue = ref (" " );
79
79
const multipleValue: Ref <any []> = ref ([]);
@@ -203,6 +203,11 @@ const handleSearch = (value: string) => {
203
203
if (composing .value ) return ;
204
204
emits (" search" , value );
205
205
searchValue .value = value ;
206
+
207
+ // 当拉下关闭 | 用户输入,弹出弹窗
208
+ if (value && ! openState .value ) {
209
+ selectRef .value && selectRef .value .show ();
210
+ }
206
211
};
207
212
208
213
const handleClear = () => {
You can’t perform that action at this time.
0 commit comments