From fcadf16afa65a8a5ca53a33c4b8f4bf2efe2ea03 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 16 九月 2026 09:21:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_新疆_新聚' into dev_新疆_新聚
---
src/workers/InspectionWorker.worker.js | 34 +++++++++++++++++++++++++++++-----
1 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/src/workers/InspectionWorker.worker.js b/src/workers/InspectionWorker.worker.js
index a8756a7..fe3e56d 100644
--- a/src/workers/InspectionWorker.worker.js
+++ b/src/workers/InspectionWorker.worker.js
@@ -35,6 +35,11 @@
// 褰撳墠杩欐杈撳叆瀵瑰簲鐨勫師濮嬫楠岄」銆傝绠楄繃绋嬩腑 pId 浼氬垏鎹㈠埌涓嬫父璁$畻椤癸紝
// 淇濆瓨鏃跺繀椤诲悓鏃跺甫鍥炲師濮嬫楠岄」锛屽惁鍒欏彧浼氫繚瀛樿绠楃粨鏋溿��
let sourceInsItemId = null;
+// 褰撳墠娑堟伅鐗堟湰銆俉orker 鍗曠嚎绋嬩覆琛屽鐞嗘秷鎭紝渚涢�掑綊鍏紡璁$畻瀹屾垚鍚庡洖浼犵粰涓荤嚎绋嬨��
+let currentRevision = null;
+// 鏈杈撳叆鏄惁寰�鍗曞厓鏍煎啓鍏ヨ繃璁$畻缁撴灉銆傞摼寮忓叕寮忓彧鏈夋渶澶栧眰浼氬洖浼犱繚瀛橈紝
+// 鐢ㄥ畠鍦ㄦ渶澶栧眰鍒ゆ柇璁$畻鐨勪腑闂村�兼槸鍚︿篃闇�瑕佽惤搴撱��
+let hasComputedWrite = false;
/**
* 鐢熸垚妯℃澘缁撴瀯绛惧悕
@@ -68,6 +73,7 @@
self.onmessage = function (event) {
// 淇濆瓨涓荤嚎绋嬩紶杩囨潵鐨勫��
const data = JSON.parse(event.data);
+ currentRevision = data.revision;
// 妯℃澘鍐呭鍙樹簡(涓嶅彧鏄ā鏉縤d鍙樹簡)涔熻鍒锋柊琛ㄦ牸,鍚﹀垯鏀瑰畬妯$増鍚� Worker 浠嶇敤鏃фā鏉胯绠楀苟鎶婃棫鐗堝紡鍥炲啓椤甸潰
const nextTemplateSig = buildTemplateSig(data.tableList);
if (
@@ -138,7 +144,8 @@
comparisonList = JSON.parse(JSON.stringify(data.comparisonList));
currentSample = JSON.parse(JSON.stringify(data.currentSample));
PROJECT = data.PROJECT;
- // 鎵ц璁$畻鏂规硶
+ // 鎵ц璁$畻鏂规硶銆傛瘡娆¤緭鍏ラ噸缃爣璁帮紝鐢辨湰娆¤皟鐢ㄦ爤鐨勬渶澶栧眰鍐冲畾鏄惁鍥炰紶淇濆瓨
+ hasComputedWrite = false;
changeInput("", code);
};
@@ -194,7 +201,7 @@
return !(typeof r === "number" && isNaN(r));
}
-function changeInput(m, code) {
+function changeInput(m, code, isComputed) {
let str = code.split("-");
let r = str[1]; //褰撳墠琛�
let c = str[2]; //褰撳墠鍒�
@@ -448,6 +455,7 @@
a[b].v.v = comResult;
console.log("error---", error);
}
+ hasComputedWrite = true;
break;
}
}
@@ -456,7 +464,9 @@
// 濡傛灉姝よ绠楃粨鏋滄墍灞炲崟鍏冩牸锛屽悓鏃朵篃鏄彟涓�涓猠xcel鍑芥暟鐨勫弬鏁帮紝閭d箞灏遍渶瑕侀�掑綊杩涜璁$畻
// 鍙湁绠楀嚭鏈夋晥缁撴灉鎵嶇户缁悜涓嬫父鍏紡浼犻��,閬垮厤鎶婄┖鍊�/NaN 浼犳煋缁欏叾瀹冨崟鍏冩牸
if (isValidComputedResult(comResult)) {
- changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`); //鏀瑰彉鏈�缁堝��
+ // 鏍囪涓鸿绠楀眰锛氬畠鍙兘鏄笅娓稿叕寮忕殑鍙傛暟(isSave 浼氳缃垚 false)锛屼絾鑷韩涔熸槸缁撴灉锛�
+ // 淇濆瓨浜ょ粰鏈�澶栧眰缁熶竴鍥炰紶锛屼腑闂村�间笉浼氳婕忔帀锛屼篃涓嶄細姣忎竴绾ч兘鍙戜竴娆′繚瀛樿姹�
+ changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`, true); //鏀瑰彉鏈�缁堝��
}
currentInsItemId = item.i;
} catch (error) {
@@ -464,10 +474,14 @@
}
}
});
- if (index === -1 || (inputType === undefined && isSave === "true")) {
+ if (
+ !isComputed &&
+ (hasComputedWrite || index === -1 || (inputType === undefined && isSave === "true"))
+ ) {
// 璧嬪�间紶閫掑埌涓荤嚎绋嬬殑鏁版嵁锛宮ethod锛歴aveInsContext琛ㄧず姝ゆ秷鎭渶瑕佷繚瀛樻暟鎹�
result = {
method: "saveInsContext",
+ revision: currentRevision,
value: {
tableList, // 琛ㄦ牸鏁版嵁
param: getParam(), //浼犵粰鍚庣鐨勫弬鏁�
@@ -483,6 +497,7 @@
// 璧嬪�煎绾跨▼浼犺緭鏁版嵁
result = {
method: "tableList",
+ revision: currentRevision,
value: tableList,
};
// 鍙戦�佷富绾跨▼鏁版嵁
@@ -589,6 +604,13 @@
const resultParam = {};
tableList.forEach((t) => {
resultParam[t.templateId] = {};
+ const cells = (t.arr || []).reduce((all, row) => all.concat(row), []);
+ const resultHeader = cells.find((cell) =>
+ cell.v && String(cell.v.v || "").trim() === "妫�楠岀粨鏋�"
+ );
+ const exportRows = new Set(cells.filter((cell) =>
+ cell.v && cell.v.ps && cell.v.ps.value === "瀵煎嚭鍊�"
+ ).map((cell) => cell.r));
(t.arr || []).forEach((a) => {
a.forEach((b) => {
const isEditable =
@@ -598,10 +620,12 @@
b.v.ps.value === "璁$畻鍊�" ||
b.v.ps.value === "鏈�缁堝��" ||
b.v.ps.value === "璁惧鍚嶇О");
- if (!isEditable) {
+ const isExportResult = resultHeader && exportRows.has(b.r) && b.c === resultHeader.c;
+ if (!isEditable && !isExportResult) {
return;
}
if (
+ isEditable &&
b.v.ps.value.includes("妫�楠屽��") &&
(b.v.v === "" || b.v.v === null || b.v.v === undefined)
) {
--
Gitblit v1.9.3