fix: stablize station select options

This commit is contained in:
yangsy
2025-08-25 11:08:14 +08:00
parent d15c3c2edf
commit 560ed3bad2
3 changed files with 13 additions and 33 deletions

View File

@@ -10,26 +10,11 @@ import dayjs from 'dayjs';
import type { DataTableColumns, DataTableRowData, PaginationProps, SelectOption } from 'naive-ui';
import { NForm, NInput, NButton, NSpace, NDataTable, NFormItemGi, NGrid, NSelect, NGridItem, NDatePicker } from 'naive-ui';
import { storeToRefs } from 'pinia';
import { ref, reactive, onBeforeMount, h, shallowRef, watch, computed } from 'vue';
import { ref, reactive, onBeforeMount, h, computed } from 'vue';
const stationStore = useStationStore();
const { stationList } = storeToRefs(stationStore);
// const stationSelectOptions = shallowRef<SelectOption[]>([]);
// watch(
// stationList,
// (list) => {
// const next = list.map<SelectOption>((station) => ({
// label: station.name,
// value: station.deviceIdPrefix,
// }));
// stationSelectOptions.value.splice(0, stationSelectOptions.value.length, ...next);
// },
// {
// immediate: true,
// deep: true,
// },
// );
const stationSelectOptions = computed(() => {
return stationList.value.map<SelectOption>((station) => ({
label: station.name,

View File

@@ -24,31 +24,17 @@ import {
type SelectOption,
} from 'naive-ui';
import { storeToRefs } from 'pinia';
import { computed, h, onBeforeMount, reactive, ref, shallowRef, watch } from 'vue';
import { computed, h, onBeforeMount, reactive, ref } from 'vue';
useStationListQuery();
const stationStore = useStationStore();
const { stationList } = storeToRefs(stationStore);
// const stationSelectOptions = shallowRef<SelectOption[]>([]);
// watch(
// stationList,
// (list) => {
// const next = list.map<SelectOption>((station) => ({
// label: station.name,
// value: station.deviceIdPrefix,
// }));
// stationSelectOptions.value.splice(0, stationSelectOptions.value.length, ...next);
// },
// {
// immediate: true,
// deep: true,
// },
// );
const stationSelectOptions = computed(() => {
return stationList.value.map<SelectOption>((station) => ({
label: station.name,
value: station.deviceIdPrefix,
disabled: !station.online,
}));
});