diff --git a/src/components/shared/select/select.ts b/src/components/shared/select/select.ts index cf1555cb..11ec46d4 100644 --- a/src/components/shared/select/select.ts +++ b/src/components/shared/select/select.ts @@ -70,22 +70,25 @@ export const createSelect = >( if (!currentValue) return; - const option = selectOptions.value.find( - (v) => v[valueField] === currentValue, - ); - - if (option) { - valueOption.value = option; - return; - } if (valueOption.value && valueOption.value[valueField] === currentValue) { - return selectOptions.value.unshift(valueOption.value); + selectOptions.value.unshift(valueOption.value); + selectOptions.value = selectOptions.value.filter((curr, idx, arr) => { + return ( + arr.findIndex((item) => item[valueField] === curr[valueField]) === idx + ); + }); + return; } const ret = await getByValue(currentValue); if (ret) { selectOptions.value.unshift(ret); + selectOptions.value = selectOptions.value.filter((curr, idx, arr) => { + return ( + arr.findIndex((item) => item[valueField] === curr[valueField]) === idx + ); + }); valueOption.value = ret; } }