From ff7f9e4c7ee28a10e6c5c1459f8a8cf1b31b34e1 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 03 十二月 2025 15:32:01 +0800
Subject: [PATCH] 回调

---
 utils/equipmentInspection.js |   74 +++++++++++++++++++++++++++++++-----
 1 files changed, 63 insertions(+), 11 deletions(-)

diff --git a/utils/equipmentInspection.js b/utils/equipmentInspection.js
index 68cac48..a3eacf5 100644
--- a/utils/equipmentInspection.js
+++ b/utils/equipmentInspection.js
@@ -1,12 +1,13 @@
 // 璁惧鐐规鎺ュ彛杈呭姪鏂规硶锛岄鐣欏悗鍙版帴鍏ュ苟鎻愪緵鏈湴缂撳瓨闄嶇骇閫昏緫
 const STORAGE_PREFIX = 'equipment_inspection_cache_'; // 鏈湴缂撳瓨鍓嶇紑锛屼究浜庤皟璇曢樁娈靛瓨鍌�
 const DAY_COUNT = 31;
-const MONTH_COUNT = 12;
+const DAILY_ITEM_COUNT = 6;  // 鏃ュ父鐐规椤圭洰鏁伴噺
+const MONTHLY_ITEM_COUNT = 2;  // 鏈堝害鐐规椤圭洰鏁伴噺
 
 function buildDefaultRecord() {
 	return {
-		dailyChecks: Array(DAY_COUNT).fill(false),
-		monthlyChecks: Array(MONTH_COUNT).fill(false)
+		dailyChecks: Array(DAILY_ITEM_COUNT).fill(null).map(() => Array(DAY_COUNT).fill(false)),
+		monthlyChecks: Array(MONTHLY_ITEM_COUNT).fill(null).map(() => Array(DAY_COUNT).fill(false))
 	};
 }
 
@@ -19,20 +20,59 @@
 		return buildDefaultRecord();
 	}
 
-	const daily = Array.isArray(payload.dailyChecks) ? payload.dailyChecks.slice(0, DAY_COUNT) : [];
-	const monthly = Array.isArray(payload.monthlyChecks) ? payload.monthlyChecks.slice(0, MONTH_COUNT) : [];
+	// 楠岃瘉骞惰鑼冨寲鏃ュ父鐐规鏁版嵁锛�6椤姑�31澶╋級
+	let dailyChecks = [];
+	if (Array.isArray(payload.dailyChecks)) {
+		dailyChecks = payload.dailyChecks.slice(0, DAILY_ITEM_COUNT).map(item => {
+			if (Array.isArray(item)) {
+				// 纭繚姣忛」閮芥槸31澶╃殑鏁扮粍
+				const normalized = item.slice(0, DAY_COUNT);
+				while (normalized.length < DAY_COUNT) {
+					normalized.push(false);
+				}
+				return normalized;
+			}
+			// 濡傛灉涓嶆槸鏁扮粍锛岃繑鍥炲叏false鐨�31澶╂暟缁�
+			return Array(DAY_COUNT).fill(false);
+		});
+	}
+	// 琛ラ綈鍒�6椤�
+	while (dailyChecks.length < DAILY_ITEM_COUNT) {
+		dailyChecks.push(Array(DAY_COUNT).fill(false));
+	}
+
+	// 楠岃瘉骞惰鑼冨寲鏈堝害鐐规鏁版嵁锛�2椤姑�31澶╋級
+	let monthlyChecks = [];
+	if (Array.isArray(payload.monthlyChecks)) {
+		monthlyChecks = payload.monthlyChecks.slice(0, MONTHLY_ITEM_COUNT).map(item => {
+			if (Array.isArray(item)) {
+				// 纭繚姣忛」閮芥槸31澶╃殑鏁扮粍
+				const normalized = item.slice(0, DAY_COUNT);
+				while (normalized.length < DAY_COUNT) {
+					normalized.push(false);
+				}
+				return normalized;
+			}
+			// 濡傛灉涓嶆槸鏁扮粍锛岃繑鍥炲叏false鐨�31澶╂暟缁�
+			return Array(DAY_COUNT).fill(false);
+		});
+	}
+	// 琛ラ綈鍒�2椤�
+	while (monthlyChecks.length < MONTHLY_ITEM_COUNT) {
+		monthlyChecks.push(Array(DAY_COUNT).fill(false));
+	}
 
 	return {
-		dailyChecks: [...daily, ...Array(Math.max(0, DAY_COUNT - daily.length)).fill(false)],
-		monthlyChecks: [...monthly, ...Array(Math.max(0, MONTH_COUNT - monthly.length)).fill(false)]
+		dailyChecks,
+		monthlyChecks
 	};
 }
 
-export async function queryEquipmentInspection(vueCtx, { machineNo, year }, options = {}) {
+export async function queryEquipmentInspection(vueCtx, { machineNo, date }, options = {}) {
 	const { mock = true, showLoading = false } = options;
 	const params = {
 		url: '/EquipmentInspection/Query',
-		data: { machineNo, year },
+		data: { machineNo, date },
 		showLoading
 	};
 
@@ -43,10 +83,18 @@
 	try {
 		// 棰勭暀鍚庡彴 POST 鎺ュ彛锛岃姹傛垚鍔熷悗鐩存帴杩斿洖鏈嶅姟绔暟鎹�
 		const response = await vueCtx.$post(params);
+
+		// 澶勭悊鏍囧噯鐨� MES API 鍝嶅簲鏍煎紡 { status: 0, data: {...} }
+		if (response && response.status === 0 && response.data) {
+			return normalizeResponse(response.data);
+		}
+
+		// 澶勭悊 { success: true, data: {...} } 鏍煎紡
 		if (response && response.success && response.data) {
 			return normalizeResponse(response.data);
 		}
 
+		// 澶勭悊鐩存帴杩斿洖鏁版嵁鐨勬儏鍐�
 		if (response && (response.dailyChecks || response.monthlyChecks)) {
 			return normalizeResponse(response);
 		}
@@ -58,6 +106,8 @@
 	}
 
 	if (mock) {
+		// 浠� date (yyyy-MM) 鎻愬彇骞翠唤鐢ㄤ簬缂撳瓨key
+		const year = date ? date.split('-')[0] : new Date().getFullYear();
 		const cacheKey = buildStorageKey(machineNo, year);
 		const cache = uni.getStorageSync(cacheKey);
 		if (cache) {
@@ -73,11 +123,11 @@
 	return buildDefaultRecord();
 }
 
-export async function saveEquipmentInspection(vueCtx, { machineNo, year, dailyChecks, monthlyChecks }, options = {}) {
+export async function saveEquipmentInspection(vueCtx, { machineNo, date, dailyChecks, monthlyChecks }, options = {}) {
 	const { mock = true, showLoading = true } = options;
 	const payload = {
 		machineNo,
-		year,
+		date,
 		dailyChecks,
 		monthlyChecks
 	};
@@ -107,6 +157,8 @@
 
 	if (mock) {
 		// 鏈湴缂撳瓨妯℃嫙淇濆瓨锛屼究浜庡墠绔紨绀轰笌鑱旇皟
+		// 浠� date (yyyy-MM) 鎻愬彇骞翠唤鐢ㄤ簬缂撳瓨key
+		const year = date ? date.split('-')[0] : new Date().getFullYear();
 		const cacheKey = buildStorageKey(machineNo, year);
 		uni.setStorageSync(cacheKey, JSON.stringify(payload));
 		return { success: true, message: '宸蹭繚瀛樿嚦鏈湴缂撳瓨' };

--
Gitblit v1.9.3