From ff94980b063f659fede0f46f00e6044cb4aad882 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 21 Aug 2025 14:38:02 +0700 Subject: [PATCH] fix: duplicate value --- src/components/shared/select/select.ts | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) 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; } }