refactor(frontend): align TJWater Next integrations
This commit is contained in:
@@ -202,7 +202,7 @@ const AnalysisParameters: React.FC<AnalysisParametersProps> = ({
|
||||
return;
|
||||
}
|
||||
if (highlightFeature) return;
|
||||
queryFeaturesByIds([sourceNode], "geo_junctions_mat").then((features) => {
|
||||
queryFeaturesByIds([sourceNode], "junctions").then((features) => {
|
||||
setHighlightFeature(features[0] ?? null);
|
||||
});
|
||||
}, [highlightFeature, sourceNode]);
|
||||
|
||||
@@ -25,10 +25,10 @@ import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
|
||||
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
|
||||
import "dayjs/locale/zh-cn";
|
||||
import dayjs, { Dayjs } from "dayjs";
|
||||
import { api } from "@/lib/api";
|
||||
import { listAnalysisSchemes } from "@/lib/analysisRuns";
|
||||
import moment from "moment";
|
||||
import { useNotification } from "@refinedev/core";
|
||||
import { config, NETWORK_NAME } from "@config/config";
|
||||
import { NETWORK_NAME } from "@config/config";
|
||||
import { queryFeaturesByIds } from "@/utils/mapQueryService";
|
||||
import { useControllableObjectState } from "@components/olmap/core/useControllableState";
|
||||
import { useData, useMap } from "@components/olmap/core/MapComponent";
|
||||
@@ -39,7 +39,7 @@ import { Style, Icon, Circle, Fill, Stroke } from "ol/style";
|
||||
import Feature from "ol/Feature";
|
||||
import { bbox, featureCollection } from "@turf/turf";
|
||||
import Timeline from "@components/olmap/core/Controls/Timeline";
|
||||
import { ContaminantSchemaItem, ContaminantSchemeRecord } from "./types";
|
||||
import { ContaminantSchemeRecord } from "./types";
|
||||
import { useSchemeCreatorName } from "@components/olmap/core/useSchemeCreatorName";
|
||||
import { SchemeQueryEmptyState } from "@components/olmap/common/PanelEmptyState";
|
||||
|
||||
@@ -60,7 +60,7 @@ export interface ContaminantSchemeQueryState {
|
||||
showTimeline: boolean;
|
||||
selectedDate: Date | undefined;
|
||||
timeRange: { start: Date; end: Date } | undefined;
|
||||
expandedId: number | null;
|
||||
expandedId: string | null;
|
||||
hasQueried: boolean;
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
const { open } = useNotification();
|
||||
const map = useMap();
|
||||
const data = useData();
|
||||
const { schemeName, setSchemeName } = data || {};
|
||||
const { schemeName, setSchemeName, schemeRunId, setSchemeRunId } = data || {};
|
||||
|
||||
const schemes =
|
||||
externalSchemes !== undefined ? externalSchemes : internalSchemes;
|
||||
@@ -222,40 +222,16 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
if (!queryAll && !queryDate) return;
|
||||
setLoading(true);
|
||||
try {
|
||||
const params: Record<string, string> = {
|
||||
scheme_type: SCHEME_TYPE,
|
||||
};
|
||||
if (!queryAll && queryDate) {
|
||||
params.query_date = queryDate.startOf("day").toISOString();
|
||||
}
|
||||
const response = await api.get(`${config.BACKEND_URL}/api/v1/schemes`, {
|
||||
params,
|
||||
});
|
||||
let filteredResults = response.data;
|
||||
|
||||
if (!queryAll) {
|
||||
const formattedDate = queryDate!.format("YYYY-MM-DD");
|
||||
filteredResults = response.data.filter(
|
||||
(item: ContaminantSchemaItem) => {
|
||||
const itemDate = moment(item.create_time).format("YYYY-MM-DD");
|
||||
return itemDate === formattedDate;
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
const nextSchemes = filteredResults.map((item: ContaminantSchemaItem) => ({
|
||||
id: item.scheme_id,
|
||||
schemeName: item.scheme_name,
|
||||
type: item.scheme_type,
|
||||
username: item.username,
|
||||
create_time: item.create_time,
|
||||
startTime: item.scheme_start_time,
|
||||
schemeDetail: item.scheme_detail,
|
||||
}));
|
||||
const nextSchemes = (await listAnalysisSchemes({
|
||||
runType: SCHEME_TYPE,
|
||||
queryDate: !queryAll && queryDate
|
||||
? queryDate.format("YYYY-MM-DD")
|
||||
: undefined,
|
||||
})) as unknown as ContaminantSchemeRecord[];
|
||||
setSchemes(nextSchemes);
|
||||
setQueryField("hasQueried", true);
|
||||
|
||||
if (filteredResults.length === 0) {
|
||||
if (nextSchemes.length === 0) {
|
||||
open?.({
|
||||
type: "success",
|
||||
message: "查询结果",
|
||||
@@ -267,7 +243,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
open?.({
|
||||
type: "success",
|
||||
message: "查询成功",
|
||||
description: `共找到 ${filteredResults.length} 条方案记录`,
|
||||
description: `共找到 ${nextSchemes.length} 条方案记录`,
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -284,7 +260,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
|
||||
const handleLocateSource = (sourceIds: string[]) => {
|
||||
if (sourceIds.length > 0) {
|
||||
queryFeaturesByIds(sourceIds, "geo_junctions_mat").then((features) => {
|
||||
queryFeaturesByIds(sourceIds, "junctions").then((features) => {
|
||||
if (features.length > 0) {
|
||||
// 设置高亮要素
|
||||
setHighlightFeatures(features);
|
||||
@@ -307,7 +283,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
}
|
||||
};
|
||||
|
||||
const handleViewDetails = (id: number) => {
|
||||
const handleViewDetails = (id: string) => {
|
||||
const scheme = filteredSchemes.find((s) => s.id === id);
|
||||
if (!scheme) return;
|
||||
|
||||
@@ -328,6 +304,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
}));
|
||||
}
|
||||
setSchemeName?.(scheme.schemeName);
|
||||
setSchemeRunId?.(scheme.id);
|
||||
if (scheme.schemeDetail?.source) {
|
||||
handleLocateSource([scheme.schemeDetail.source]);
|
||||
}
|
||||
@@ -343,6 +320,7 @@ const SchemeQuery: React.FC<SchemeQueryProps> = ({
|
||||
timeRange={timeRange}
|
||||
disableDateSelection={!!timeRange}
|
||||
schemeName={schemeName}
|
||||
schemeRunId={schemeRunId}
|
||||
schemeType={SCHEME_TYPE}
|
||||
/>,
|
||||
mapContainer,
|
||||
|
||||
@@ -6,7 +6,7 @@ export interface ContaminantSchemeDetail {
|
||||
}
|
||||
|
||||
export interface ContaminantSchemeRecord {
|
||||
id: number;
|
||||
id: string;
|
||||
schemeName: string;
|
||||
type: string;
|
||||
username: string;
|
||||
@@ -14,13 +14,3 @@ export interface ContaminantSchemeRecord {
|
||||
startTime: string;
|
||||
schemeDetail?: ContaminantSchemeDetail;
|
||||
}
|
||||
|
||||
export interface ContaminantSchemaItem {
|
||||
scheme_id: number;
|
||||
scheme_name: string;
|
||||
scheme_type: string;
|
||||
username: string;
|
||||
create_time: string;
|
||||
scheme_start_time: string;
|
||||
scheme_detail?: ContaminantSchemeDetail;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user