feat: autocomplete add status
							parent
							
								
									6e1f30666b
								
							
						
					
					
						commit
						dbe7fe78ce
					
				|  | @ -6,6 +6,7 @@ | |||
|     <non-case-sensitive /> | ||||
|     <certain-category /> | ||||
|     <uncertain-category /> | ||||
|     <statusVue /> | ||||
|   </demo-sort> | ||||
| </template> | ||||
| 
 | ||||
|  | @ -16,6 +17,7 @@ import Custom from './custom.vue'; | |||
| import NonCaseSensitive from './non-case-sensitive.vue'; | ||||
| import CertainCategory from './certain-category.vue'; | ||||
| import UncertainCategory from './uncertain-category.vue'; | ||||
| import statusVue from './status.vue'; | ||||
| 
 | ||||
| import CN from '../index.zh-CN.md'; | ||||
| import US from '../index.en-US.md'; | ||||
|  | @ -25,6 +27,7 @@ export default defineComponent({ | |||
|   CN, | ||||
|   US, | ||||
|   components: { | ||||
|     statusVue, | ||||
|     Basic, | ||||
|     Options, | ||||
|     Custom, | ||||
|  |  | |||
|  | @ -0,0 +1,85 @@ | |||
| <docs> | ||||
| --- | ||||
| order: 19 | ||||
| version: 3.3.0 | ||||
| title: | ||||
|   zh-CN: 自定义状态 | ||||
|   en-US: Status | ||||
| --- | ||||
| 
 | ||||
| ## zh-CN | ||||
| 
 | ||||
| 使用 `status` 为 AutoComplete 添加状态,可选 `error` 或者 `warning`。 | ||||
| 
 | ||||
| ## en-US | ||||
| 
 | ||||
| Add status to AutoComplete with `status`, which could be `error` or `warning`. | ||||
| 
 | ||||
| </docs> | ||||
| 
 | ||||
| <template> | ||||
|   <a-space direction="vertical" style="width: 100%"> | ||||
|     <a-auto-complete | ||||
|       v-model:value="value" | ||||
|       :options="options" | ||||
|       style="width: 200px" | ||||
|       placeholder="input here" | ||||
|       status="error" | ||||
|       @select="onSelect" | ||||
|       @search="onSearch" | ||||
|     /> | ||||
|     <a-auto-complete | ||||
|       v-model:value="value1" | ||||
|       :options="options" | ||||
|       style="width: 200px" | ||||
|       placeholder="input here" | ||||
|       status="warning" | ||||
|       allow-clear | ||||
|       @select="onSelect" | ||||
|       @search="onSearch" | ||||
|       @clear="onClear" | ||||
|     /> | ||||
|   </a-space> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref, watch } from 'vue'; | ||||
| 
 | ||||
| interface MockVal { | ||||
|   value: string; | ||||
| } | ||||
| const mockVal = (str: string, repeat = 1): MockVal => { | ||||
|   return { | ||||
|     value: str.repeat(repeat), | ||||
|   }; | ||||
| }; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value = ref(''); | ||||
|     const value1 = ref(''); | ||||
|     const options = ref<MockVal[]>([]); | ||||
|     const onSearch = (searchText: string) => { | ||||
|       console.log('searchText'); | ||||
|       options.value = !searchText | ||||
|         ? [] | ||||
|         : [mockVal(searchText), mockVal(searchText, 2), mockVal(searchText, 3)]; | ||||
|     }; | ||||
|     const onSelect = (value: string) => { | ||||
|       console.log('onSelect', value); | ||||
|     }; | ||||
|     watch(value, () => { | ||||
|       console.log('value', value.value); | ||||
|     }); | ||||
|     return { | ||||
|       value, | ||||
|       value1, | ||||
|       options, | ||||
|       onSearch, | ||||
|       onSelect, | ||||
|       onClear: () => { | ||||
|         console.log('onClear'); | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
| </script> | ||||
|  | @ -40,6 +40,7 @@ The differences with Select are: | |||
| | option | custom render option by slot | v-slot:option="{value, label, [disabled, key, title]}" | - | 3.0 | | ||||
| | options | Data source for autocomplete | [DataSourceItemType](https://github.com/vueComponent/ant-design-vue/blob/724d53b907e577cf5880c1e6742d4c3f924f8f49/components/auto-complete/index.vue#L9)\[] |  |  | | ||||
| | placeholder | placeholder of input | string | - |  | | ||||
| | status | Set validation status | 'error' \| 'warning' | - | 3.3.0 | | ||||
| | v-model:value | selected option | string\|string\[]\|{ key: string, label: string\|vNodes }\|Array<{ key: string, label: string\|vNodes }> | - |  | | ||||
| 
 | ||||
| ### events | ||||
|  | @ -52,6 +53,7 @@ The differences with Select are: | |||
| | focus | Called when entering the component | function() |  |  | | ||||
| | search | Called when searching items. | function(value) | - |  | | ||||
| | select | Called when a option is selected. param is option's value and option instance. | function(value, option) |  |  | | ||||
| | clear | Called when clear | function | - | 3.3.0 | | ||||
| 
 | ||||
| ## Methods | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Option from './Option'; | |||
| import OptGroup from './OptGroup'; | ||||
| import omit from '../_util/omit'; | ||||
| import useConfigInject from '../_util/hooks/useConfigInject'; | ||||
| import type { InputStatus } from '../_util/statusUtils'; | ||||
| 
 | ||||
| function isSelectOptionOrSelectOptGroup(child: any): boolean { | ||||
|   return child?.type?.isSelectOption || child?.type?.isSelectOptGroup; | ||||
|  | @ -30,6 +31,7 @@ export const autoCompleteProps = () => ({ | |||
|   // optionLabelProp: PropTypes.string.def('children'), | ||||
|   filterOption: { type: [Boolean, Function], default: false }, | ||||
|   defaultActiveFirstOption: { type: Boolean, default: true }, | ||||
|   status: String as PropType<InputStatus>, | ||||
| }); | ||||
| 
 | ||||
| export type AutoCompleteProps = Partial<ExtractPropTypes<ReturnType<typeof autoCompleteProps>>>; | ||||
|  |  | |||
|  | @ -41,18 +41,20 @@ cover: https://gw.alipayobjects.com/zos/alicdn/qtJm4yt45/AutoComplete.svg | |||
| | option | 通过 option 插槽,自定义节点 | v-slot:option="{value, label, [disabled, key, title]}" | - | 3.0 | | ||||
| | options | 自动完成的数据源 | [DataSourceItemType](https://github.com/vueComponent/ant-design-vue/blob/724d53b907e577cf5880c1e6742d4c3f924f8f49/components/auto-complete/index.vue#L9)\[] |  |  | | ||||
| | placeholder | 输入框提示 | string \| slot | - |  | | ||||
| | status | 设置校验状态 | 'error' \| 'warning' | - | 3.3.0 | | ||||
| | v-model:value | 指定当前选中的条目 | string\|string\[]\|{ key: string, label: string\|vNodes }\|Array<{ key: string, label: string\|vNodes }> | 无 |  | | ||||
| 
 | ||||
| ### 事件 | ||||
| 
 | ||||
| | 事件名称 | 说明 | 回调参数 | 版本 | | ||||
| | --- | --- | --- | --- | | ||||
| | --- | --- | --- | --- | --- | | ||||
| | blur | 失去焦点时的回调 | function() |  | | ||||
| | change | 选中 option,或 input 的 value 变化时,调用此函数 | function(value) |  | | ||||
| | dropdownVisibleChange | 展开下拉菜单的回调 | function(open) |  | | ||||
| | focus | 获得焦点时的回调 | function() |  | | ||||
| | search | 搜索补全项的时候调用 | function(value) |  | | ||||
| | select | 被选中时调用,参数为选中项的 value 值 | function(value, option) |  | | ||||
| | clear | 清除内容时回调 | function | - | 3.3.0 | | ||||
| 
 | ||||
| ## 方法 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 tangjinzhou
						tangjinzhou