Integrate SBAS workflows and redesign task center

This commit is contained in:
2026-06-13 13:10:12 +08:00
parent b931e8db53
commit 58a87706ef
275 changed files with 18750 additions and 42524 deletions
+17 -18
View File
@@ -9,7 +9,7 @@ import { ModalLoadingFallback } from './AppLoadingFallbacks';
const LazyPairingModal = lazy(() => import('../PairingModal'));
const LazyPsStackModal = lazy(() => import('../PsStackModal'));
const LazyDataInfoModal = lazy(() => import('../DataInfoModal'));
const LazyActiveTasksOverlay = lazy(() => import('../ActiveTasksOverlay'));
const LazyGlobalTaskCenter = lazy(() => import('../GlobalTaskCenter'));
const LazyStatisticsDashboard = lazy(() => import('../../StatisticsDashboard'));
const LazyAiReportModal = lazy(() => import('../AiReportModal'));
const LazyMapExportModal = lazy(() => import('../MapExportModal'));
@@ -31,14 +31,13 @@ export default function AppOverlays({
onRefreshLicenseStatus,
licenseFileName,
licenseUploadStatus,
isGlobalLocked,
activeTasks,
showForceUnlock,
forceUnlockPwd,
onShowForceUnlock,
onForceUnlockPwdChange,
onForceUnlockConfirm,
onCancelForceUnlock,
showCancelTask,
cancelTaskPwd,
onShowCancelTask,
onCancelTaskPwdChange,
onCancelTaskConfirm,
onCloseCancelTask,
mapExport,
}) {
const { language, t } = useI18n();
@@ -126,19 +125,19 @@ export default function AppOverlays({
</Suspense>
)}
{isGlobalLocked && (
<Suspense fallback={<ModalLoadingFallback message="正在加载任务控制面板..." />}>
<LazyActiveTasksOverlay
isVisible={isGlobalLocked}
{activeTasks.length > 0 && (
<Suspense fallback={<ModalLoadingFallback message="正在加载任务中心..." />}>
<LazyGlobalTaskCenter
isVisible={activeTasks.length > 0}
activeTasks={activeTasks}
t={t}
isAdmin={isAdmin}
showForceUnlock={showForceUnlock}
forceUnlockPwd={forceUnlockPwd}
onShowForceUnlock={onShowForceUnlock}
onForceUnlockPwdChange={onForceUnlockPwdChange}
onForceUnlockConfirm={onForceUnlockConfirm}
onCancelForceUnlock={onCancelForceUnlock}
showCancelTask={showCancelTask}
cancelTaskPwd={cancelTaskPwd}
onShowCancelTask={onShowCancelTask}
onCancelTaskPwdChange={onCancelTaskPwdChange}
onCancelTaskConfirm={onCancelTaskConfirm}
onCloseCancelTask={onCloseCancelTask}
/>
</Suspense>
)}
+8 -7
View File
@@ -30,6 +30,7 @@ const LazyBatchPanel = lazy(() => import('../../panels/BatchPanel'));
const LazyPairsListPanel = lazy(() => import('../../panels/PairsListPanel'));
const LazyPsResultsPanel = lazy(() => import('../../panels/PsResultsPanel'));
const LazyPsinsarCatalogPanel = lazy(() => import('../PsinsarCatalogPanel'));
const LazySbasInsarMapAnalysisPanel = lazy(() => import('../../panels/SbasInsarMapAnalysisPanel'));
const LazyProductionWorkspace = lazy(() => import('../../ProductionWorkspace'));
export default function AppSidePanel({
@@ -62,6 +63,7 @@ export default function AppSidePanel({
aiPanel,
pairsPanel,
psPanel,
sbasAnalysisPanel,
}) {
const isProductionWorkspace = PRODUCTION_WORKSPACE_ROUTE_TABS.has(leftPanelTab);
const activeLeftGroup = LEFT_TAB_GROUP[leftPanelTab] || 'data';
@@ -425,13 +427,12 @@ export default function AppSidePanel({
{leftPanelTab === 'psinsar_analysis' && (
<div className="panel-content" style={{ flex: '1 1 auto', padding: 0, overflow: 'auto' }}>
<div style={{ padding: '16px' }}>
<div className="empty-state">
时序InSAR 分析页已预留
<br />
后续可以在这里放置时序分析速率分级热点识别和专题统计能力
</div>
</div>
<Suspense fallback={<PanelLoadingBody message="正在加载时序InSAR地图分析..." />}>
<LazySbasInsarMapAnalysisPanel
readOnly={isReadOnlyUser}
{...sbasAnalysisPanel}
/>
</Suspense>
</div>
)}