Files
insar-management-system-v2/frontend/src/store/pairingStore.js
T

69 lines
2.5 KiB
JavaScript

import { create } from 'zustand';
const s = (set, key) => (v) =>
set((state) => ({ [key]: typeof v === 'function' ? v(state[key]) : v }));
export const usePairingStore = create((set) => ({
// Pairing
foundPairs: [],
showPairingModal: false,
pairingFiles: null,
pairingAoiMode: 'shp',
pairingRegionOptions: { provinces: [], cities: [] },
pairingRegionSelection: { province: '', city: '' },
pairingRegionLoading: false,
pairingRegionError: '',
pairingParams: {
time_baseline_min: 1,
time_baseline_max: 90,
overlap_threshold: 0.5,
spatial_baseline_max_meters: 3000,
limit_footprint_center_distance: false,
coverage_diversity_penalty: 0.3,
require_same_imaging_mode: false,
require_same_polarization: false,
aoi_overlap_threshold: 0,
start_date: '',
// === 新增字段 ===
master_date_from: '',
master_date_to: '',
slave_date_from: '',
slave_date_to: '',
strategy: 'all',
num_connections: 1,
reference_image_id: null,
allowed_satellites: ['LT1A', 'LT1B'],
cross_satellite_pairing: false,
},
pairingAlert: { warnings: [], fallbackUsed: false },
// PS
showPsModal: false,
psFiles: null,
psAoiMode: 'shp',
psRegionOptions: { provinces: [], cities: [] },
psRegionSelection: { province: '', city: '' },
psRegionLoading: false,
psRegionError: '',
psResults: null,
psParams: { initial_overlap_threshold: 0.3, final_overlap_threshold: 0.95 },
setFoundPairs: s(set, 'foundPairs'),
setShowPairingModal: s(set, 'showPairingModal'),
setPairingFiles: s(set, 'pairingFiles'),
setPairingAoiMode: s(set, 'pairingAoiMode'),
setPairingRegionOptions: s(set, 'pairingRegionOptions'),
setPairingRegionSelection: s(set, 'pairingRegionSelection'),
setPairingRegionLoading: s(set, 'pairingRegionLoading'),
setPairingRegionError: s(set, 'pairingRegionError'),
setPairingParams: s(set, 'pairingParams'),
setPairingAlert: s(set, 'pairingAlert'),
setShowPsModal: s(set, 'showPsModal'),
setPsFiles: s(set, 'psFiles'),
setPsAoiMode: s(set, 'psAoiMode'),
setPsRegionOptions: s(set, 'psRegionOptions'),
setPsRegionSelection: s(set, 'psRegionSelection'),
setPsRegionLoading: s(set, 'psRegionLoading'),
setPsRegionError: s(set, 'psRegionError'),
setPsResults: s(set, 'psResults'),
setPsParams: s(set, 'psParams'),
}));