From d8fead89b61acd2b1462559c2fa634b05f73c5d1 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期一, 09 六月 2025 09:16:04 +0800
Subject: [PATCH] 提交修改新增加工 增加煤质方案和煤质字段模块

---
 src/views/basicInformation/index.vue |  155 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 94 insertions(+), 61 deletions(-)

diff --git a/src/views/basicInformation/index.vue b/src/views/basicInformation/index.vue
index ff27c0e..336ae2c 100644
--- a/src/views/basicInformation/index.vue
+++ b/src/views/basicInformation/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div>    <el-form :inline="true" :model="queryParams" class="search-form" >
+  <div> <el-form :inline="true" :model="queryParams" class="search-form">
       <el-form-item label="鎼滅储" v-if="tabName === 'supplier' || tabName === 'customer'">
         <el-input v-model="queryParams.searchAll" placeholder="渚涘簲鍟�/璇嗗埆鐮�/璇︾粏鍦板潃" clearable />
       </el-form-item>
@@ -16,7 +16,7 @@
       <el-tabs v-model="activeTab" class="info-tabs" @tab-click="handleTabClick">
         <el-tab-pane v-for="tab in tabs" :key="tab.name" :label="tab.label" :name="tab.name" />
       </el-tabs>
-  
+
       <!-- 鎿嶄綔鎸夐挳鍖� -->
       <el-row :gutter="24" class="table-toolbar">
         <el-button type="primary" :icon="Plus" @click="handleAdd">鏂板缓</el-button>
@@ -28,17 +28,21 @@
         <data-table :loading="loading" :table-data="tableData" :columns="columns"
           @selection-change="handleSelectionChange" @edit="handleEdit" :show-selection="true" :border="true" />
       </div>
-      <pagination v-if="total>0" :page="pageNum" :limit="pageSizes" :total="total" @pagination="handPagination"
+      <pagination v-if="total > 0" :page="pageNum" :limit="pageSizes" :total="total" @pagination="handPagination"
         :layout="'total, prev, pager, next, jumper'" />
-      <Supplier v-if="tabName === 'supplier'" v-model:copyForm="copyForm" v-model:supplierDialogFormVisible="dialogFormVisible" :form="form"
-        :title="title" @submit="handleSubmit" @beforeClose="handleBeforeClose"
-        @update:dialogFormVisible="handleDialogFormVisible" :addOrEdit="addOrEdit" />
-      <Customer v-if="tabName === 'customer'" v-model:copyForm="copyForm" v-model:customerDialogFormVisible="dialogFormVisible" :form="form"
-        :title="title" @submit="handleSubmit" :addOrEdit="addOrEdit" @beforeClose="handleBeforeClose" />
-      <Coal v-if="tabName === 'coal'" v-model:copyForm="copyForm" v-model:coalDialogFormVisible="dialogFormVisible" :form="form" :title="title"
-        :addOrEdit="addOrEdit" @submit="handleSubmit" />
+      <Supplier v-if="tabName === 'supplier'" v-model:copyForm="copyForm"
+        v-model:supplierDialogFormVisible="dialogFormVisible" :form="form" :title="title" @submit="handleSubmit"
+        @beforeClose="handleBeforeClose" @update:dialogFormVisible="handleDialogFormVisible" :addOrEdit="addOrEdit" />
+      <Customer v-if="tabName === 'customer'" v-model:copyForm="copyForm"
+        v-model:customerDialogFormVisible="dialogFormVisible" :form="form" :title="title" @submit="handleSubmit"
+        :addOrEdit="addOrEdit" @beforeClose="handleBeforeClose" />
+      <Coal v-if="tabName === 'coal'" v-model:copyForm="copyForm" v-model:coalDialogFormVisible="dialogFormVisible"
+        :form="form" :title="title" :addOrEdit="addOrEdit" @submit="handleSubmit" />
       <coalQualityMaintenance v-if="tabName === 'coalQualityMaintenance'"
         v-model:coalQualityMaintenanceDialogFormVisible="dialogFormVisible" :form="form" :title="title"
+        :addOrEdit="addOrEdit" @submit="handleSubmit" />
+      <coalMeiZhiZiDuanWeiHu v-if="tabName === 'coalMeiZhiZiDuanWeiHu'"
+        v-model:coalMaintenanceFieldDialogVisible="dialogFormVisible" :form="form" :title="title"
         :addOrEdit="addOrEdit" @submit="handleSubmit" />
     </el-card>
   </div>
@@ -54,6 +58,7 @@
 import Customer from "./mould/customer.vue";
 import Coal from "./mould/coal.vue";
 import coalQualityMaintenance from "./mould/coalQualityMaintenance.vue";
+import coalMeiZhiZiDuanWeiHu from "./mould/coalMeiZhiZiDuanWeiHu.vue";
 const { proxy } = getCurrentInstance()
 import { getSupply, addOrEditSupply, delSupply } from "@/api/basicInformation/supplier.js";
 import { getCoalInfo, delCoalInfo } from "@/api/basicInformation/coal.js";
@@ -63,6 +68,7 @@
 import { getCustomerList, delCustomer } from "@/api/basicInformation/customer.js";
 
 // 寮圭獥
+const coalMaintenanceFieldDialogVisible = ref(false);
 const coalQualityMaintenanceDialogFormVisible = ref(false);
 const customerDialogFormVisible = ref(false);
 const coalDialogFormVisible = ref(false);
@@ -120,19 +126,16 @@
 // 鍦板潃鏍煎紡鍖栧嚱鏁�
 const formatAddressArray = (addressIds) => {
   // 濡傛灉鍦板潃鏄犲皠琛ㄨ繕娌℃湁鍑嗗濂斤紝鏄剧ず --
-  if (!addressMap.value || Object.keys(addressMap.value).length === 0||!addressIds || !Array.isArray(addressIds) || addressIds.length === 0 || addressIds.every(id => !id)) {
+  if (!addressMap.value || Object.keys(addressMap.value).length === 0 || !addressIds || !Array.isArray(addressIds) || addressIds.length === 0 || addressIds.every(id => !id)) {
     return '--';
   }
-  
   const addressNames = addressIds.map(id => {
     return addressMap.value[id]?.name || '--';
   });
-  
   // 濡傛灉鎵�鏈夊湴鍧�鍚嶇О閮芥槸 '--'锛屽垯杩斿洖 '--'
   if (addressNames.every(name => name === '--')) {
     return '--';
   }
-  
   return addressNames.filter(name => name !== '--').join(' / ');
 };
 // 鑾峰彇鐢ㄦ埛鍒楄〃鏁版嵁
@@ -149,7 +152,6 @@
     console.error('鑾峰彇鐢ㄦ埛鍒楄〃澶辫触:', error);
   }
 };
-
 onMounted(async () => {
   await handleTabClick({ props: { name: "supplier" } });
   await fetchAreaOptions(); // 鍏堣幏鍙栧湴鍧�閫夋嫨鏁版嵁骞舵瀯寤烘槧灏勮〃
@@ -161,7 +163,8 @@
   { name: "supplier", label: "渚涘簲鍟嗕俊鎭�" },
   { name: "customer", label: "瀹㈡埛淇℃伅" },
   { name: "coal", label: "鐓ょ淇℃伅" },
-  { name: "coalQualityMaintenance", label: "鐓よ川缁存姢" },
+  { name: "coalQualityMaintenance", label: "鐓よ川鏂规" },
+  { name: "coalMeiZhiZiDuanWeiHu", label: "鐓よ川瀛楁" }
 ]);
 // 鏄惁缂栬緫
 const addOrEdit = ref("add");
@@ -170,9 +173,9 @@
 // supplier 渚涘簲鍟嗘暟鎹�
 const supplierColumns = ref([
   { prop: "supplierName", label: "渚涘簲鍟嗗悕绉�", minWidth: 100 },
-  { prop: "taxpayerId", label: "缁熶竴浜鸿瘑鍒彿", minWidth: 170 },  { 
-    prop: "bids", 
-    label: "缁忚惀鍦板潃", 
+  { prop: "taxpayerId", label: "缁熶竴浜鸿瘑鍒彿", minWidth: 170 }, {
+    prop: "bids",
+    label: "缁忚惀鍦板潃",
     minWidth: 150,
     showOverflowTooltip: true,
     formatter: (row, column, cellValue) => {
@@ -187,10 +190,10 @@
   { prop: "businessAddress", label: "缁忚惀璇︾粏鍦板潃", minWidth: 150 },
   { prop: "bankAccount", label: "寮�鎴疯", minWidth: 120 },
   { prop: "bankName", label: "閾惰璐﹀彿", minWidth: 150 },
-  { prop: "contactPerson", label: "鑱旂郴浜�", minWidth: 100 },  
-  { 
-    prop: "cids", 
-    label: "鑱旂郴浜哄湴鍧�", 
+  { prop: "contactPerson", label: "鑱旂郴浜�", minWidth: 100 },
+  {
+    prop: "cids",
+    label: "鑱旂郴浜哄湴鍧�",
     minWidth: 150,
     showOverflowTooltip: true,
     formatter: (row, column, cellValue) => {
@@ -201,7 +204,7 @@
       ]
       return formatAddressArray(arr);
     }
-  },{ prop: "contactAddress", label: "鑱旂郴浜鸿缁嗗湴鍧�", minWidth: 120 },
+  }, { prop: "contactAddress", label: "鑱旂郴浜鸿缁嗗湴鍧�", minWidth: 120 },
   // { 
   //   prop: "maintainerId", 
   //   label: "缁存姢浜�", 
@@ -229,9 +232,9 @@
 const customerColumns = ref([
   { prop: "customerName", label: "瀹㈡埛鍚嶇О", minWidth: 100 },
   { prop: "taxpayerId", label: "缁熶竴浜鸿瘑鍒彿", minWidth: 120 },
-{ 
-    prop: "bids", 
-    label: "缁忚惀鍦板潃", 
+  {
+    prop: "bids",
+    label: "缁忚惀鍦板潃",
     minWidth: 150,
     showOverflowTooltip: true,
     formatter: (row, column, cellValue) => {
@@ -245,12 +248,12 @@
   },
   { prop: "businessAddress", label: "璇︾粏鍦板潃", minWidth: 150 },
   { prop: "bankName", label: "寮�鎴疯", minWidth: 120 },
-  { prop: "bankAccount", label: "閾惰璐﹀彿", minWidth: 150 },  
+  { prop: "bankAccount", label: "閾惰璐﹀彿", minWidth: 150 },
   { prop: "contactPerson", label: "鑱旂郴浜�", minWidth: 100 },
   { prop: "contactPhone", label: "鑱旂郴浜虹數璇�", minWidth: 100 },
-{ 
-    prop: "cids", 
-    label: "鑱旂郴浜哄湴鍧�", 
+  {
+    prop: "cids",
+    label: "鑱旂郴浜哄湴鍧�",
     minWidth: 150,
     showOverflowTooltip: true,
     formatter: (row, column, cellValue) => {
@@ -267,9 +270,9 @@
 ]);
 // coal 鐓ょ鏁版嵁
 const coalColumns = ref([
-  { prop: "coal", label: "鐓ょ鍚嶇О", minWidth: 200 },  { 
-    prop: "maintainerId", 
-    label: "缁存姢浜�", 
+  { prop: "coal", label: "鐓ょ鍚嶇О", minWidth: 200 }, {
+    prop: "maintainerId",
+    label: "缁存姢浜�",
     minWidth: 120,
     formatter: (row, column, cellValue) => {
       // 濡傛灉鐢ㄦ埛鏄犲皠琛ㄨ繕娌℃湁鍑嗗濂斤紝鏄剧ず --
@@ -292,14 +295,18 @@
 ]);
 // coalQualityMaintenance 鐓よ川缁存姢鏁版嵁
 const coalQualityMaintenanceColumns = ref([
-  { prop: "supplierName", label: "鍏ㄦ按(<)", minWidth: 200 },
-  { prop: "identifyNumber", label: "姘村垎鏋�(<)", minWidth: 120 },
-  { prop: "address", label: "鐏板垎", minWidth: 150 },
-  { prop: "bank", label: "鎸ュ彂(>)", minWidth: 100 },
-  { prop: "bankAccount", label: "纭�(<)", minWidth: 100 },
-  { prop: "contacts", label: "鍥哄畾纰�", minWidth: 100 },
+  { prop: "coal", label: "鐓ょ鍚嶇О", minWidth: 200 },
+  { prop: "totalMoisture", label: "鍏ㄦ按鍚噺鐧惧垎姣� (%)", minWidth: 200 },
+  { prop: "analysisMoisture", label: "鍒嗘瀽姘村惈閲忕櫨鍒嗘瘮 (%)", minWidth: 200 },
+  { prop: "volatileMatter", label: "鎸ュ彂鍒嗙櫨鍒嗘瘮 (%)", minWidth: 100 },
+  { prop: "sulfurContent", label: "纭惈閲忕櫨鍒嗘瘮 (%)", minWidth: 100 },
+  { prop: "contacts", label: "鍥哄畾纰崇櫨鍒嗘瘮 (%)", minWidth: 100 },
   { prop: "contactAddress", label: "楂樹綅鍙戠儹閲�", minWidth: 100 },
   { prop: "maintainer", label: "浣庝綅鍙戠儹閲�", minWidth: 100 },
+]);
+const coalMeiZhiZiDuanWeiHuColumns = ref([
+  { prop: "fieldName", label: "瀛楁鍚嶇О", minWidth: 200 },
+  { prop: "fieldDescription", label: "瀛楁鎻忚堪", minWidth: 200 },
 ]);
 // 鏍囩椤电偣鍑�
 const handleTabClick = (tab) => {
@@ -318,7 +325,6 @@
       columns.value = customerColumns.value;
       dialogFormVisible.value = customerDialogFormVisible.value;
       getList("customer");
-
       break;
     case "coal":
       columns.value = coalColumns.value;
@@ -329,6 +335,11 @@
       columns.value = coalQualityMaintenanceColumns.value;
       dialogFormVisible.value = coalQualityMaintenanceDialogFormVisible.value;
       getList("coalQualityMaintenance");
+      break;
+    case "coalMeiZhiZiDuanWeiHu":
+      columns.value = coalMeiZhiZiDuanWeiHuColumns.value;
+      dialogFormVisible.value = coalMaintenanceFieldDialogVisible.value;
+      getList("coalMeiZhiZiDuanWeiHu");
       break;
   }
 };
@@ -363,7 +374,11 @@
     openDialog();
   } else if (tabName === "coalQualityMaintenance") {
     dialogFormVisible.value = true;
-    title.value = title.value + "鐓よ川缁存姢";
+    title.value = title.value + "鐓よ川鏂规缁存姢";
+    openDialog();
+  } else if (tabName === "coalMeiZhiZiDuanWeiHu") {
+    dialogFormVisible.value = true;
+    title.value = title.value + "鐓よ川瀛楁缁存姢";
     openDialog();
   }
 };
@@ -403,28 +418,28 @@
 // 缂栬緫
 const handleEdit = (row) => {
   form.value = JSON.parse(JSON.stringify(row));
-  if(form.value.bprovinceId && form.value.bdistrictId && form.value.bcityId  ){
+  if (form.value.bprovinceId && form.value.bdistrictId && form.value.bcityId) {
     form.value.bids = [
-    row.bprovinceId,
-    row.bcityId,
-    row.bdistrictId,
-  ];
+      row.bprovinceId,
+      row.bcityId,
+      row.bdistrictId,
+    ];
   }
-   if(form.value.cprovinceId && form.value.cdistrictId && form.value.ccityId  ){
+  if (form.value.cprovinceId && form.value.cdistrictId && form.value.ccityId) {
     form.value.cids = [
-    row.cprovinceId,
-    row.ccityId,
-    row.cdistrictId,
-  ];
+      row.cprovinceId,
+      row.ccityId,
+      row.cdistrictId,
+    ];
   }
-  if(form.value.businessCityId && form.value.businessDistrictId && form.value.businessProvinceId) {
+  if (form.value.businessCityId && form.value.businessDistrictId && form.value.businessProvinceId) {
     form.value.bids = [
       row.businessProvinceId,
       row.businessCityId,
       row.businessDistrictId,
     ];
   }
-  if(form.value.cityId && form.value.districtId && form.value.provinceId) {
+  if (form.value.cityId && form.value.districtId && form.value.provinceId) {
     form.value.cids = [
       row.provinceId,
       row.cityId,
@@ -452,21 +467,21 @@
     .then(async () => {
       try {
         let res;
-        if( tabName.value === "supplier" ) {
+        if (tabName.value === "supplier") {
           res = await delSupply(arr);
         } else if (tabName.value === "coal") {
           res = await delCoalInfo(arr);
         } else if (tabName.value === "coalQualityMaintenance") {
           res = await delCoalQuality(arr);
-        } else if( tabName.value === "customer") {
+        } else if (tabName.value === "customer") {
           res = await delCustomer(arr);
         }
-        if(res.code !== 200 && res.meg == "鎿嶄綔鎴愬姛") {
+        if (res.code !== 200 && res.meg == "鎿嶄綔鎴愬姛") {
           ElMessage.error("鍒犻櫎澶辫触锛�" + res.msg);
           return;
         }
         ElMessage.success("鍒犻櫎鎴愬姛");
-        await getList(); 
+        await getList();
       } catch (e) {
         console.error(e);
         ElMessage.error("鍒犻櫎澶辫触锛岃绋嶅悗鍐嶈瘯");
@@ -483,7 +498,7 @@
   form.value = {};
 };
 const handleExport = () => {
-  if(tabName.value === "supplier") {
+  if (tabName.value === "supplier") {
     Export("/supply/export", "渚涘簲鍟嗕俊鎭�");
   } else if (tabName.value === "customer") {
     Export("/customer/export", "瀹㈡埛淇℃伅");
@@ -494,7 +509,7 @@
 
   }
 }
-const Export = (api,name) => {
+const Export = (api, name) => {
   proxy.download(api, {
     ...queryParams.value
   }, `${name}${new Date().getTime()}.xlsx`)
@@ -526,6 +541,23 @@
       pageSize: pageSizes.value,
       searchAll: queryParams.searchAll,
     });
+  } else if (tabName.value === "coalMeiZhiZiDuanWeiHu") {
+    return {
+      code: 200,
+          data: {
+          records: [
+            { fieldName: "瀛楁1", fieldDescription: "鎻忚堪1" },
+            { fieldName: "瀛楁2", fieldDescription: "鎻忚堪2" },
+            { fieldName: "瀛楁3", fieldDescription: "鎻忚堪3" }
+          ],
+            total: 10
+        }
+    };
+    // return getCoalQuality({
+    //   current: pageNum.value,
+    //   pageSize: pageSizes.value,
+    //   searchAll: queryParams.searchAll,
+    // });
   }
 }
 const search = () => {
@@ -539,7 +571,8 @@
     await fetchAreaOptions();
   } */
   let { data, code } = await selectInterface()
-  if(code !== 200) {
+  console.log("鑾峰彇鏁版嵁锛�", code, data);
+  if (code !== 200) {
     ElMessage.error("鑾峰彇鏁版嵁澶辫触锛�" + data.msg);
     loading.value = false;
     return;

--
Gitblit v1.9.3