From 3bd642ad4d805032ae43e1fd23e0c4e6b7dfa9f2 Mon Sep 17 00:00:00 2001
From: zhang_12370 <z2864490065@outlook.com>
Date: 星期六, 12 七月 2025 11:58:41 +0800
Subject: [PATCH] 1、修改采购管理的匹配逻辑 2、修改生产加工新增生产明细的总数居匹配问题 3、修改配煤计算器 4、修改设备管理领用记录的提交问题

---
 src/views/calculator/index.vue |   84 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 69 insertions(+), 15 deletions(-)

diff --git a/src/views/calculator/index.vue b/src/views/calculator/index.vue
index af09bb5..c20d714 100644
--- a/src/views/calculator/index.vue
+++ b/src/views/calculator/index.vue
@@ -289,7 +289,11 @@
                 class="result-table"
                 style="width: 100%"
               >
-                <el-table-column prop="name" label="鐓ょ" min-width="80" />
+                <el-table-column prop="name" label="鐓ょ" min-width="80">
+                  <template #default="scope">
+                    {{ matchCoalName(scope.row.name) }}
+                  </template>
+                </el-table-column>
                 <el-table-column prop="ratio" label="閰嶆瘮" min-width="80">
                   <template #default="scope"> {{ scope.row.ratio }}% </template>
                 </el-table-column>
@@ -471,6 +475,7 @@
     optimal: null,
     alternatives: [],
     error: null,
+    createCoal: null,
   },
 });
 const coalInfoList = ref([]);
@@ -489,25 +494,39 @@
     ElMessage.error("鑾峰彇鐓ょ淇℃伅澶辫触锛岃绋嶅悗閲嶈瘯");
   }
 };
-// 鏍规嵁 key 杩斿洖涓枃鍚嶏紝鍚﹀垯鍘熸牱杩斿洖
-const matchCoal = value => {
-  if (!value) return "";
-  const found = coalInfoList.value.find(c => c.key === value);
-  return found ? found.value : value;
+// 琛ㄦ牸灞曠ず鐢細浼樺厛鐢� key 鍖归厤涓枃鍚嶏紝鍐嶇敤 value 鍖归厤锛屾渶鍚庡師鏍疯繑鍥�
+const matchCoalName = (name) => {
+  if (!name || !Array.isArray(coalInfoList.value) || coalInfoList.value.length === 0) return name;
+  // key 鍖归厤
+  const byKey = coalInfoList.value.find(item => String(item.key) === String(name));
+  if (byKey) return byKey.value;
+  // value 鍖归厤
+  const byValue = coalInfoList.value.find(item => item.value === name);
+  if (byValue) return byValue.value;
+  // 鍘熸牱杩斿洖
+  return name;
 };
 // 鑷姩琛ュ叏鎼滅储
 const querySearch = (q, cb) => {
   const res = q
-    ? coalInfoList.value.filter(c => c.value.includes(q))
+    ? coalInfoList.value.filter((c) => c.value.includes(q))
     : coalInfoList.value;
   cb(res);
 };
 // 閫夋嫨/澶辩劍鏃讹紝浼樺厛瀛� key锛屾壘涓嶅埌鍒欏瓨鍘熷��
-const handleSelect = item => {
+const handleSelect = (item) => {
   const val = item.value || (item.target && item.target.value) || "";
-  const found = coalInfoList.value.find(c => c.value === val || c.key === val);
+  const found = coalInfoList.value.find(
+    (c) => c.value === val || c.key === val
+  );
   result.value.optimal.props.createCoal = found ? found.key : val;
-  let match = matchCoal(result.value.optimal.props.createCoal);
+  // 鏂板锛氬鏋滃尮閰嶆垚鍔燂紝鐣欎竴涓猧d瀛楁
+  if (found) {
+    result.value.optimal.props.createCoalId = found.key;
+  } else {
+    result.value.optimal.props.createCoalId = null;
+  }
+  let match = matchCoalName(result.value.optimal.props.createCoal);
   if (match && match !== result.value.optimal.props.createCoal) {
     result.value.optimal.props.createCoal = match;
   }
@@ -657,15 +676,50 @@
   ElMessage.success("琛ㄥ崟宸查噸缃�");
 };
 const addWarehoused = () => {
-  if(!result.value){
-    ElMessage.warning("璇峰厛璁$畻鏈�浼橀厤姣斿悗鍐嶆坊鍔犺嚦寰呭叆搴�");
+  console.log(coalInfoList.value);
+  if (!result.value) {
+    ElMessage.error("璇峰厛璁$畻鏈�浼橀厤姣斿悗鍐嶆坊鍔犺嚦寰呭叆搴�");
     return;
   }
-  if(result.value.optimal.props.createCoal === "") {
-    ElMessage.warning("璇峰厛閫夋嫨鐢熸垚鐓ょ");
+  if (result.value.optimal === null) {
+    ElMessage.error("璇峰厛璁$畻鏈�浼橀厤姣�");
     return;
   }
-  console.log(result.value)
+  if (!result.value.optimal.props.createCoal) {
+    ElMessage.error("璇峰厛閫夋嫨鐢熸垚鐓ょ");
+    return;
+  }
+  const coals = result.value.optimal.instructions.map((item) => item.name);
+  let allFound = true;
+  for (const element of coals) {
+    let found = false;
+    for (const item of coalInfoList.value) {
+      if (item.key === element) {
+        found = true;
+        break;
+      }
+    }
+    if (!found) {
+      allFound = false;
+      break;
+    }
+  }
+  if (!allFound) {
+    ElMessage.error("閰嶆瘮涓寘鍚湭鐭ョ叅绉嶏紝璇峰厛娣诲姞鑷崇叅绉嶅垪琛�");
+    return;
+  }
+  let createCoalFound = false;
+  for (const item of coalInfoList.value) {
+    if (item.key === result.value.optimal.props.createCoalId) {
+      console.log("鐢熸垚鐓ょ宸插瓨鍦�");
+      createCoalFound = true;
+      break;
+    }
+  }
+  if (!createCoalFound) {
+    ElMessage.warning("鐢熸垚鐓ょ鏄湭鐭ョ叅绉嶏紝鏃犳硶娣诲姞鑷冲緟鍏ュ簱");
+    return;
+  }
 };
 const submitForm = () => {
   // 鏁版嵁楠岃瘉

--
Gitblit v1.9.3