From c6d13e58d85fbaaceb49d4c24401b50143050173 Mon Sep 17 00:00:00 2001
From: zhang_12370 <z2864490065@outlook.com>
Date: 星期四, 26 六月 2025 18:01:24 +0800
Subject: [PATCH] 调整 基础管理煤种生产人 更改采购数计算逻辑 处理供应商数据回显问题

---
 src/views/production/components/ProductionDialog.vue |   49 +++++++++++++++++++++++++++----------------------
 1 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/src/views/production/components/ProductionDialog.vue b/src/views/production/components/ProductionDialog.vue
index 3b96834..c14ca96 100644
--- a/src/views/production/components/ProductionDialog.vue
+++ b/src/views/production/components/ProductionDialog.vue
@@ -1,12 +1,12 @@
 <template>
   <el-dialog
       v-model="dialogVisible"
-      :title="dialogType === 'add' ? '鏂板鐢熶骇鍔犲伐' : '缂栬緫鐢熶骇鍔犲伐'"
+      :title="dialogType === 'add' ? '鏂板鐢熶骇鍔犲伐' : dialogType === 'viewRow' ? '鏌ョ湅鐢熶骇鍔犲伐' : '缂栬緫鐢熶骇鍔犲伐'"
       width="1200px"
       :close-on-click-modal="false"
       @close="handleClose"
   >
-    <el-row :gutter="10" style="margin-bottom: 10px">
+    <el-row :gutter="10" style="margin-bottom: 10px" v-if="dialogType !== 'viewRow'">
       <el-col :span="3">
         <el-button type="primary" @click="handlData"
         >
@@ -40,20 +40,21 @@
     </el-row>
     <ETableModify
         :columns="columns"
-        :showOperations="false"
+        :showOperations="dialogType !== 'viewRow'"
         height="200"
         @cell-edit="handleCellEdit"
         :tableData="tableData"
         :showOverflowTooltip="false"
         @row-click="handleRowClick"
-        :editableColumns="['usedQuantity']"
+        :editableColumns="dialogType === 'viewRow' ? [] : ['usedQuantity']"
+        :editableCells="dialogType !== 'viewRow'"
         @delete="handleRemoveItem"
     />
     <div class="empty-table">
       <h1>鐢熶骇鏄庣粏</h1>
       <el-row :gutter="10">
         <el-col :span="2">
-          <el-button type="primary" @click="addNewRow">
+          <el-button type="primary" @click="addNewRow" v-if="dialogType !== 'viewRow'">
             <el-icon>
               <Plus/>
             </el-icon>
@@ -72,10 +73,11 @@
       <ProductionDetailsTable
           v-model="detailsTableData"
           :border="false"
-          :show-operations="true"
+          :show-operations="dialogType !== 'viewRow'"
           :auto-calculate="true"
           @input-change="handleDetailsChange"
           @delete-row="handleDeleteRow"
+          :dialogType="dialogType"
       />
     </div>
 
@@ -83,14 +85,17 @@
       <div class="dialog-footer">
         <el-button
             @click="handleClose"
-            v-if="dialogType === 'add' || dialogType === 'edit'"
-        >鍙� 娑�
+        >{{ dialogType === 'viewRow' ? '鍏� 闂�' : '鍙� 娑�' }}
         </el-button
         >
         <!-- <el-button @click="handleReset" v-if="dialogType === 'edit'"
           >閲� 缃�</el-button
         > -->
-        <el-button type="primary" :loading="loading" @click="handleSubmit"
+        <el-button 
+            v-if="dialogType !== 'viewRow'"
+            type="primary" 
+            :loading="loading" 
+            @click="handleSubmit"
         >纭� 瀹�
         </el-button
         >
@@ -160,6 +165,7 @@
   getCoalInfoList,
   deleteProductionInventory,
 } from "@/api/production/index.js";
+import { getSupplyList } from "@/api/procureMent/index.js"
 import {validateFormData, validateNumber, deepClone, createDefaultProductionRow} from "@/utils/production";
 import {useCoalData} from "./useCoalData";
 import useUserStore from "@/store/modules/user";
@@ -213,15 +219,13 @@
 ];
 
 const formalDatabaseColumns = ref([
-  {prop: "supplierName", label: "渚涘簲鍟嗗悕绉�", minwidth: 150
-  // ,formatter: (row) => {
-  //     console.log(row);
-  //     return supplierList.value[row.supplierId] || "--";
-  //   }
+  {prop: "supplierId", label: "渚涘簲鍟嗗悕绉�", minwidth: 150
+  ,formatter: (row) => {
+      return supplierList.value.find(supplier => supplier.id === row.supplierId)?.supplierName || "--";
+    }
   },
   {prop: "coalId", label: "鐓ょ", minwidth: 60,
     formatter: (row) => {
-      // return coalList.value[row.coalId].coal || "--";
       return coalList.value.find(coal => coal.id === row.coalId)?.coal || "--";
     }
   },
@@ -246,12 +250,13 @@
 // 鑾峰彇閰嶇疆鏁版嵁
 const handlData = async () => {
   innerVisible.value = true;
-  let getSupplier = await getOfficialAll();
+  let OfficialAll = await getOfficialAll();
+  let getSupplierList = await getSupplyList();
   let getCoalName = await getCoalInfoList();
   coalList.value = getCoalName.data || [];
-  supplierList.value = getSupplier.data || [];
-  if (getSupplier.code === 200) {
-    formalDatabaseData.value = getSupplier.data;
+  supplierList.value = getSupplierList.data || [];
+  if (OfficialAll.code === 200) {
+    formalDatabaseData.value = OfficialAll.data;
     const existingOfficialIds = tableData.value
         .map((item) => item.officialId)
         .filter((id) => id);
@@ -298,11 +303,11 @@
   dialogType.value = "add";
 };
 
-const editInitialization = (data) => {
+const editInitialization = (type,data) => {
   copyForm.value = deepClone(data);
   tableData.value = data.productionInventoryList || [];
   detailsTableData.value = data.productionList || [];
-  dialogType.value = "edit";
+  dialogType.value = type;
   const existingOfficialIds = tableData.value
       .map((item) => item.officialId)
       .filter((id) => id);
@@ -396,7 +401,7 @@
   for (let i = 0; i < tableData.value.length; i++) {
     const element = tableData.value[i];
     if (element.usedQuantity == 0 || element.usedQuantity === null) {
-      ElMessage.warning(`璇峰~鍐欎娇鐢ㄦ暟閲�: ${element.coal}`);
+      ElMessage.warning(`璇峰~鍐欑敓浜у姞宸ョ叅绉嶇殑浣跨敤鏁伴噺`);
       return;
     }
   }

--
Gitblit v1.9.3