Просмотр исходного кода

fix(s8): guard empty monitoring module code filters

YY968XX 2 месяцев назад
Родитель
Сommit
fcbaac35cd

+ 10 - 5
Web/src/views/aidop/s8/api/s8DeliveryMonitoringApi.ts

@@ -36,13 +36,18 @@ const DELIVERY_ANOMALY_SPECS = [
 	},
 	},
 ] as const;
 ] as const;
 
 
+const EMPTY_SUMMARY: S8MonitoringSummary = { total: 0, red: 0, yellow: 0, green: 0, timeout: 0, byModule: [] };
+
 export const s8DeliveryMonitoringApi = {
 export const s8DeliveryMonitoringApi = {
-	/** 获取交付域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
-	summary: (moduleCodes: string[]) =>
-		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
+	/** 获取交付域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。空数组时直接返回空态,不退化为后端全量。 */
+	summary: (moduleCodes: string[]): Promise<S8MonitoringSummary> =>
+		moduleCodes.length === 0
+			? Promise.resolve({ ...EMPTY_SUMMARY, byModule: [] })
+			: s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
 
-	/** 获取交付域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
-	modules: (moduleCodes: string[]) => {
+	/** 获取交付域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。空数组时不调接口,直接返回空数组。 */
+	modules: (moduleCodes: string[]): Promise<S8ModuleOrderSummary[]> => {
+		if (moduleCodes.length === 0) return Promise.resolve([]);
 		const set = new Set(moduleCodes);
 		const set = new Set(moduleCodes);
 		return s8MonitoringApi.orderGrid().then((data) =>
 		return s8MonitoringApi.orderGrid().then((data) =>
 			data.modules.filter((m) => set.has(m.moduleCode)),
 			data.modules.filter((m) => set.has(m.moduleCode)),

+ 10 - 5
Web/src/views/aidop/s8/api/s8ProductionMonitoringApi.ts

@@ -36,13 +36,18 @@ const PRODUCTION_ANOMALY_SPECS = [
 	},
 	},
 ] as const;
 ] as const;
 
 
+const EMPTY_SUMMARY: S8MonitoringSummary = { total: 0, red: 0, yellow: 0, green: 0, timeout: 0, byModule: [] };
+
 export const s8ProductionMonitoringApi = {
 export const s8ProductionMonitoringApi = {
-	/** 获取生产域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
-	summary: (moduleCodes: string[]) =>
-		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
+	/** 获取生产域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。空数组时直接返回空态,不退化为后端全量。 */
+	summary: (moduleCodes: string[]): Promise<S8MonitoringSummary> =>
+		moduleCodes.length === 0
+			? Promise.resolve({ ...EMPTY_SUMMARY, byModule: [] })
+			: s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
 
-	/** 获取生产域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
-	modules: (moduleCodes: string[]) => {
+	/** 获取生产域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。空数组时不调接口,直接返回空数组。 */
+	modules: (moduleCodes: string[]): Promise<S8ModuleOrderSummary[]> => {
+		if (moduleCodes.length === 0) return Promise.resolve([]);
 		const set = new Set(moduleCodes);
 		const set = new Set(moduleCodes);
 		return s8MonitoringApi.orderGrid().then((data) =>
 		return s8MonitoringApi.orderGrid().then((data) =>
 			data.modules.filter((m) => set.has(m.moduleCode)),
 			data.modules.filter((m) => set.has(m.moduleCode)),

+ 10 - 5
Web/src/views/aidop/s8/api/s8SupplyMonitoringApi.ts

@@ -60,13 +60,18 @@ const SUPPLY_ANOMALY_SPECS = [
 	},
 	},
 ] as const;
 ] as const;
 
 
+const EMPTY_SUMMARY: S8MonitoringSummary = { total: 0, red: 0, yellow: 0, green: 0, timeout: 0, byModule: [] };
+
 export const s8SupplyMonitoringApi = {
 export const s8SupplyMonitoringApi = {
-	/** 获取供应域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
-	summary: (moduleCodes: string[]) =>
-		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
+	/** 获取供应域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。空数组时直接返回空态,不退化为后端全量。 */
+	summary: (moduleCodes: string[]): Promise<S8MonitoringSummary> =>
+		moduleCodes.length === 0
+			? Promise.resolve({ ...EMPTY_SUMMARY, byModule: [] })
+			: s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
 
-	/** 获取供应域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
-	modules: (moduleCodes: string[]) => {
+	/** 获取供应域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。空数组时不调接口,直接返回空数组。 */
+	modules: (moduleCodes: string[]): Promise<S8ModuleOrderSummary[]> => {
+		if (moduleCodes.length === 0) return Promise.resolve([]);
 		const set = new Set(moduleCodes);
 		const set = new Set(moduleCodes);
 		return s8MonitoringApi.orderGrid().then((data) =>
 		return s8MonitoringApi.orderGrid().then((data) =>
 			data.modules.filter((m) => set.has(m.moduleCode)),
 			data.modules.filter((m) => set.has(m.moduleCode)),