|
|
|
@ -59,9 +59,15 @@ interface Props { |
|
|
|
* - `first`:自动选择第一个选项 |
|
|
|
* - `last`:自动选择最后一个选项 |
|
|
|
* - `one`: 当请求的结果只有一个选项时,自动选择该选项 |
|
|
|
* - 函数:自定义选择逻辑,函数的参数为请求的结果数组,返回值为选择的选项 |
|
|
|
* - false:不自动选择(默认) |
|
|
|
*/ |
|
|
|
autoSelect?: 'first' | 'last' | 'one' | false; |
|
|
|
autoSelect?: |
|
|
|
| 'first' |
|
|
|
| 'last' |
|
|
|
| 'one' |
|
|
|
| ((item: OptionsItem[]) => OptionsItem) |
|
|
|
| false; |
|
|
|
} |
|
|
|
|
|
|
|
defineOptions({ name: 'ApiComponent', inheritAttrs: false }); |
|
|
|
@ -209,24 +215,28 @@ function emitChange() { |
|
|
|
unref(getOptions).length > 0 |
|
|
|
) { |
|
|
|
let firstOption; |
|
|
|
switch (props.autoSelect) { |
|
|
|
case 'first': { |
|
|
|
firstOption = unref(getOptions)[0]; |
|
|
|
break; |
|
|
|
} |
|
|
|
case 'last': { |
|
|
|
firstOption = unref(getOptions)[unref(getOptions).length - 1]; |
|
|
|
break; |
|
|
|
} |
|
|
|
case 'one': { |
|
|
|
if (unref(getOptions).length === 1) { |
|
|
|
if (isFunction(props.autoSelect)) { |
|
|
|
firstOption = props.autoSelect(unref(getOptions)); |
|
|
|
} else { |
|
|
|
switch (props.autoSelect) { |
|
|
|
case 'first': { |
|
|
|
firstOption = unref(getOptions)[0]; |
|
|
|
break; |
|
|
|
} |
|
|
|
case 'last': { |
|
|
|
firstOption = unref(getOptions)[unref(getOptions).length - 1]; |
|
|
|
break; |
|
|
|
} |
|
|
|
case 'one': { |
|
|
|
if (unref(getOptions).length === 1) { |
|
|
|
firstOption = unref(getOptions)[0]; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (firstOption) modelValue.value = firstOption[props.valueField]; |
|
|
|
if (firstOption) modelValue.value = firstOption.value; |
|
|
|
} |
|
|
|
emit('optionsChange', unref(getOptions)); |
|
|
|
} |
|
|
|
|