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