shuishen
22 hours ago fbb068ec702338d609c1ca6eddbdb9f182d8f211
apps/workbench-console/src/stores/artifacts.ts
@@ -5,14 +5,18 @@
  loadChangeArtifacts,
  loadSemanticArtifacts,
  loadMeasurementArtifacts,
  loadPointCloudArtifacts,
  loadTrajectoryArtifacts,
  loadAnomalyArtifacts,
  loadRiskRuleArtifacts,
  type DetectionCase,
  type ChangeCase,
  type SemanticCase,
  type MeasurementCase,
  type PointCloudCase,
  type TrajectoryCase,
  type AnomalyCase
  type AnomalyCase,
  type RiskRuleCase
} from "@/api/artifacts";
interface ArtifactState {
@@ -20,8 +24,10 @@
  trajectoryCases: Record<string, TrajectoryCase>;
  semanticCases: Record<string, SemanticCase>;
  measurementCases: Record<string, MeasurementCase>;
  pointCloudCases: Record<string, PointCloudCase>;
  changeCases: Record<string, ChangeCase>;
  anomalyCases: Record<string, AnomalyCase>;
  riskRuleCases: Record<string, RiskRuleCase>;
  loading: boolean;
  error: string | null;
}
@@ -31,7 +37,7 @@
    detectionRun: (state) => Object.values(state.detectionCases)[0]?.run ?? null,
    detectionImages: (state) => Object.values(state.detectionCases)[0]?.images ?? []
  },
  state: (): ArtifactState => ({ detectionCases: {}, trajectoryCases: {}, semanticCases: {}, measurementCases: {}, changeCases: {}, anomalyCases: {}, loading: false, error: null }),
  state: (): ArtifactState => ({ detectionCases: {}, trajectoryCases: {}, semanticCases: {}, measurementCases: {}, pointCloudCases: {}, changeCases: {}, anomalyCases: {}, riskRuleCases: {}, loading: false, error: null }),
  actions: {
    async loadChange(force = false) {
      if (!force && Object.keys(this.changeCases).length) return;
@@ -74,6 +80,20 @@
      try { this.anomalyCases = await loadAnomalyArtifacts(); }
      catch (error) { this.error = error instanceof Error ? error.message : "异常检测结果读取失败"; }
      finally { this.loading = false; }
    },
    async loadPointCloud(force = false) {
      if (!force && Object.keys(this.pointCloudCases).length) return;
      this.loading = true; this.error = null;
      try { this.pointCloudCases = await loadPointCloudArtifacts(); }
      catch (error) { this.error = error instanceof Error ? error.message : "Three-dimensional point-cloud results could not be loaded."; }
      finally { this.loading = false; }
    },
    async loadRiskRule(force = false) {
      if (!force && Object.keys(this.riskRuleCases).length) return;
      this.loading = true; this.error = null;
      try { this.riskRuleCases = await loadRiskRuleArtifacts(); }
      catch (error) { this.error = error instanceof Error ? error.message : "空间规则与风险评分结果读取失败"; }
      finally { this.loading = false; }
    }
  }
});