diff --git a/packages/nc-gui/components/cell/MultiSelect.vue b/packages/nc-gui/components/cell/MultiSelect.vue index 3a3d5f56fe..f9a1bc59e2 100644 --- a/packages/nc-gui/components/cell/MultiSelect.vue +++ b/packages/nc-gui/components/cell/MultiSelect.vue @@ -314,9 +314,14 @@ const handleClose = (e: MouseEvent) => { useEventListener(document, 'click', handleClose, true) -// todo: maintain order const selectedOpts = computed(() => { - return options.value.filter((o) => vModel.value.includes(o.value!)) + return options.value.reduce<(SelectOptionType & { index: number })[]>((selectedOptions, option) => { + const index = vModel.value.indexOf(option.value!) + if (index !== -1) { + selectedOptions.push({ ...option, index }) + } + return selectedOptions + }, []) }) @@ -324,7 +329,7 @@ const selectedOpts = computed(() => {