Skip to content

Commit 0a6f8f2

Browse files
feat(select): editable-select和select组件增加input-cahnge事件 (DevCloudFE#1738)
Co-authored-by: GreatZP <greatzp@greatzp.cn>
1 parent 16a4a1b commit 0a6f8f2

File tree

7 files changed

+18
-5
lines changed

7 files changed

+18
-5
lines changed

packages/devui-vue/devui/editable-select/src/composables/use-input-event.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export function useInputEvent(
6464

6565
const handleInputChange = () => {
6666
states.query = states.inputValue;
67+
ctx.emit('inputChange', states.query);
6768
handleQueryChange(states.query);
6869
};
6970

packages/devui-vue/devui/editable-select/src/editable-select.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import './editable-select.scss';
2121
export default defineComponent({
2222
name: 'DEditableSelect',
2323
props: editableSelectProps,
24-
emits: ['update:modelValue', 'focus', 'blur', 'clear', 'change', 'visibleChange', 'loadMore'],
24+
emits: ['update:modelValue', 'focus', 'blur', 'clear', 'change', 'visibleChange', 'loadMore', 'inputChange'],
2525
setup(props: EditableSelectProps, ctx: SetupContext) {
2626
// name space
2727
const ns = useNamespace('editable-select');

packages/devui-vue/devui/select/src/select.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { FlexibleOverlay, Placement } from '../../overlay';
2929
export default defineComponent({
3030
name: 'DSelect',
3131
props: selectProps,
32-
emits: ['toggle-change', 'value-change', 'update:modelValue', 'focus', 'blur', 'remove-tag', 'clear'],
32+
emits: ['toggle-change', 'value-change', 'update:modelValue', 'focus', 'blur', 'remove-tag', 'clear', 'input-change'],
3333
setup(props: SelectProps, ctx: SetupContext) {
3434
const app = getCurrentInstance();
3535
const t = createI18nTranslate('DSelect', app);

packages/devui-vue/devui/select/src/use-select.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ export default function useSelect(
268268

269269
const queryChange = (query: string) => {
270270
filterQuery.value = query;
271+
ctx.emit('input-change', query);
271272
};
272273

273274
const isLoading = computed(() => typeof props.loading === 'boolean' && props.loading);

packages/devui-vue/docs/components/editable-select/index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ export default defineComponent({
215215

216216
```vue
217217
<template>
218-
<d-editable-select v-model="value" :width="450" :options="options" allow-clear></d-editable-select>
218+
<d-editable-select v-model="value" :width="450" :options="options" allow-clear @input-change="handleInputChange"></d-editable-select>
219219
</template>
220220
221221
<script>
@@ -240,9 +240,14 @@ export default defineComponent({
240240
},
241241
]);
242242
243+
const handleInputChange = (val) => {
244+
console.log(val);
245+
};
246+
243247
return {
244248
value,
245249
options,
250+
handleInputChange,
246251
};
247252
},
248253
});
@@ -471,6 +476,7 @@ export default defineComponent({
471476
| blur | `(e: FocusEvent)->void` | 可选,当 input 失去焦点时触发 | |
472477
| change | `(value:string\|number)=>void` | 可选,选中值发生变化时触发 |
473478
| visible-change | `(visible:boolean)=>void` | 可选,下拉框显隐时触发 |
479+
| input-change | `(inputvalue:string)=>void` | 可选,输入框输入内容时触发 |[可清空选项](#可清空选项)|
474480

475481
### EditableSelect 插槽
476482

packages/devui-vue/docs/components/menu/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ const addSelect = () => {
374374
| open-keys | Array | [] | 默认展开的子菜单 key 值 | [默认展开](#默认展开) |
375375
| default-select-keys | Array | [] | 默认选择菜单项 key 值 | [基本用法](#基本用法) |
376376
| router | Boolean | false | 是否启用`vue-router`模式。启用该模式会在激活导航时以 key 作为 path 进行路由跳转 | - |
377-
| disableOverflowStyle| Boolean | false | 是否禁用宽度过小时菜单的省略样式 | - |
377+
| disable-overflow-style| Boolean | false | 是否禁用宽度过小时菜单的省略样式 | - |
378378

379379
### Menu 事件
380380

packages/devui-vue/docs/components/select/index.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ export default defineComponent({
376376
```vue
377377
<template>
378378
<div class="mb-0">默认筛选</div>
379-
<d-select class="mb-2" v-model="value1" :allow-clear="true" filter>
379+
<d-select class="mb-2" v-model="value1" :allow-clear="true" filter @input-change="handleInput">
380380
<d-option v-for="(item, index) in options.data" :key="index" :value="item.value" :name="item.name"></d-option>
381381
</d-select>
382382
<div class="mb-0">远程搜索</div>
@@ -418,13 +418,17 @@ export default defineComponent({
418418
options1.data = [];
419419
}
420420
};
421+
const handleInput = (val) => {
422+
console.log(val);
423+
};
421424
return {
422425
value1,
423426
value2,
424427
options,
425428
options1,
426429
loading,
427430
filterFunc,
431+
handleInput,
428432
};
429433
},
430434
});
@@ -539,6 +543,7 @@ export default defineComponent({
539543
| clear | `Function()` | 可选, 通过右侧删除图标清空所有选项时触发 |
540544
| remove-tag | `Function(value)` | 可选,多选时删除单个 tag 时触发,参数为当前 tag 的值 |
541545
| load-more | `Function()` | 可选,下拉框有滚动条时滚动到底部触发 |[下拉列表显隐方法](#下拉列表显隐方法)|
546+
| input-change | `Function(value)` | 可选,输入框输入内容时触发,参数为输入的值 |[筛选、搜索选项](#筛选、搜索选项)|
542547

543548
### Select 插槽
544549

0 commit comments

Comments
 (0)