diff --git a/src/views/Survey/views/Preview/components/questions/PreviewChoice.vue b/src/views/Survey/views/Preview/components/questions/PreviewChoice.vue index 2befb86..c13039c 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewChoice.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewChoice.vue @@ -26,7 +26,7 @@ const question = defineModel('question', { default: { config: { is_required: false } } }); -const filterOptions = []; +let filterOptions = []; const list = computed(() => { // 有意外情况,可能存在 hideOptions @@ -37,13 +37,11 @@ const list = computed(() => { // 取出 hideOptions,然后提出相应的元素,需要重置 hideOptions。 // 不然会出现再次进入无法得到原来所有的选项 const hideOptions = question.value.hideOptions; + // 备份 options + filterOptions = [...options]; + _list.options = options.filter((option) => { - const res = hideOptions.includes(option.option_key); - if (res) { - // 如果有相应的选项, 需要把它 push 到 filterOptions - filterOptions.push(option); - } - return !res; + return !hideOptions.includes(option.option_key); }); question.value.hideOptions = []; } else { @@ -92,14 +90,8 @@ watch( onUnmounted(() => { if (!filterOptions.length) return; - let options = question.value.list[0].options; - // 把 filterOptions 里面的选项加上 - options = [...options, ...filterOptions]; - question.value.list[0].options = options; - // 如果已经有随机的配置,不需要重新进行排序 - if (question.value.config.select_random) return; - // 重新进行排序 - options.sort((optionA, optionB) => Number(optionA.option_key) - Number(optionB.option_key)); + // 把 options 还原 + question.value.list[0].options = filterOptions; });