From feaeb3e3ac6d9e7606fce5e3ae80de3cca9c846f Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 20 五月 2026 09:30:54 +0800
Subject: [PATCH] feat:1.库存成品展示电压,工序类别 2.销售页面调整

---
 src/views/inventoryManagement/stockManagement/New.vue                      |   50 ++++++++++++++++
 src/views/procurementManagement/procurementLedger/index.vue                |    9 ++-
 src/views/collaborativeApproval/purchaseApproval/index.vue                 |    8 ++
 src/views/productionManagement/workOrder/index.vue                         |   12 ++++
 src/views/inventoryManagement/stockManagement/index.vue                    |    8 ++
 src/views/productionManagement/workOrder/components/CopperPrintingForm.vue |    4 
 src/views/salesManagement/salesLedger/index.vue                            |   23 +++++--
 src/views/inventoryManagement/stockManagement/Record.vue                   |   11 +++
 8 files changed, 106 insertions(+), 19 deletions(-)

diff --git a/src/views/collaborativeApproval/purchaseApproval/index.vue b/src/views/collaborativeApproval/purchaseApproval/index.vue
index af17bbe..6620bc2 100644
--- a/src/views/collaborativeApproval/purchaseApproval/index.vue
+++ b/src/views/collaborativeApproval/purchaseApproval/index.vue
@@ -571,8 +571,12 @@
   getProductOptions();
 };
 const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
+  productTreeList({ productName: "鎴愬搧" }).then((res) => {
+    const tree = convertIdToValue(res);
+    const finishedNode = tree.find(
+      (item) => item?.label === "鎴愬搧" || item?.productName === "鎴愬搧"
+    );
+    productOptions.value = finishedNode?.children || tree;
   });
 };
 const getModels = (value) => {
diff --git a/src/views/inventoryManagement/stockManagement/New.vue b/src/views/inventoryManagement/stockManagement/New.vue
index fd3226b..940b734 100644
--- a/src/views/inventoryManagement/stockManagement/New.vue
+++ b/src/views/inventoryManagement/stockManagement/New.vue
@@ -45,6 +45,39 @@
         </el-form-item>
 
         <el-form-item
+            v-if="props.isFinishedProduct"
+            label="宸ュ簭绫诲埆"
+            prop="processCategory"
+            :rules="[
+                {
+                required: true,
+                message: '璇烽�夋嫨宸ュ簭绫诲埆',
+                trigger: 'change',
+              }
+            ]"
+        >
+          <el-select v-model="formState.processCategory" placeholder="璇烽�夋嫨宸ュ簭绫诲埆" clearable>
+            <el-option label="閾滄瀬" value="閾滄瀬" />
+            <el-option label="閾舵瀬" value="閾舵瀬" />
+          </el-select>
+        </el-form-item>
+
+        <el-form-item
+            v-if="props.isFinishedProduct"
+            label="鐢靛帇"
+            prop="voltage"
+            :rules="[
+                {
+                required: true,
+                message: '璇疯緭鍏ョ數鍘�',
+                trigger: 'blur',
+              }
+            ]"
+        >
+          <el-input v-model="formState.voltage" clearable placeholder="璇疯緭鍏ョ數鍘�" />
+        </el-form-item>
+
+        <el-form-item
             label="搴撳瓨绫诲瀷"
             prop="type"
             :rules="[
@@ -115,6 +148,14 @@
   visible: {
     type: Boolean,
     required: true,
+  },
+  topProductParentId: {
+    type: Number,
+    default: 0,
+  },
+  isFinishedProduct: {
+    type: Boolean,
+    default: false,
   }
 });
 
@@ -128,6 +169,8 @@
   productModelName: "",
   materialCode: "",
   unit: "",
+  processCategory: "",
+  voltage: "",
   batchNo: "",
   type: undefined,
   qualitity: 0,
@@ -157,6 +200,8 @@
     productModelName: "",
     materialCode: "",
     unit: "",
+    processCategory: "",
+    voltage: "",
     batchNo: "",
     type: undefined,
     qualitity: 0,
@@ -197,6 +242,11 @@
       const payload = { ...formState.value };
       const bn = (payload.batchNo || "").trim();
       payload.batchNo = bn;
+      payload.voltage = (payload.voltage || "").trim();
+      if (!props.isFinishedProduct) {
+        delete payload.processCategory;
+        delete payload.voltage;
+      }
       if (payload.type === 'qualified') {
         createStockInventory(payload).then(res => {
           // 鍏抽棴妯℃�佹
diff --git a/src/views/inventoryManagement/stockManagement/Record.vue b/src/views/inventoryManagement/stockManagement/Record.vue
index 5b0a5f1..2168107 100644
--- a/src/views/inventoryManagement/stockManagement/Record.vue
+++ b/src/views/inventoryManagement/stockManagement/Record.vue
@@ -27,8 +27,10 @@
         <el-table-column label="瑙勬牸鍨嬪彿" prop="model" show-overflow-tooltip />
         <el-table-column label="鍗曚綅" prop="unit" show-overflow-tooltip />
         <el-table-column label="鏂欏彿" prop="materialCode" show-overflow-tooltip />
-        <el-table-column label="鍚堟牸鎵瑰彿" prop="qualifiedBatchNo" show-overflow-tooltip />
-        <el-table-column label="涓嶅悎鏍兼壒鍙�" prop="unQualifiedBatchNo" show-overflow-tooltip />
+<!--        <el-table-column label="鍚堟牸鎵瑰彿" prop="qualifiedBatchNo" show-overflow-tooltip />-->
+<!--        <el-table-column label="涓嶅悎鏍兼壒鍙�" prop="unQualifiedBatchNo" show-overflow-tooltip />-->
+        <el-table-column v-if="props.isFinishedProduct" label="宸ュ簭绫诲埆" prop="processCategory" show-overflow-tooltip />
+        <el-table-column v-if="props.isFinishedProduct" label="鐢靛帇" prop="voltage" show-overflow-tooltip />
         <el-table-column label="鍚堟牸搴撳瓨鏁伴噺" prop="qualifiedQuantity" show-overflow-tooltip />
         <el-table-column label="涓嶅悎鏍煎簱瀛樻暟閲�" prop="unQualifiedQuantity" show-overflow-tooltip />
         <el-table-column label="鍚堟牸鍐荤粨鏁伴噺" prop="qualifiedLockedQuantity" show-overflow-tooltip />
@@ -50,6 +52,7 @@
     <new-stock-inventory v-if="isShowNewModal"
                  v-model:visible="isShowNewModal"
                  :top-product-parent-id="props.productId"
+                 :is-finished-product="props.isFinishedProduct"
                  @completed="handleQuery" />
 
     <subtract-stock-inventory v-if="isShowSubtractModal"
@@ -83,6 +86,10 @@
     type: Number,
     required: true,
     default: 0
+  },
+  isFinishedProduct: {
+    type: Boolean,
+    default: false
   }
 });
 
diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue
index b3aa7ee..fb2a29b 100644
--- a/src/views/inventoryManagement/stockManagement/index.vue
+++ b/src/views/inventoryManagement/stockManagement/index.vue
@@ -6,7 +6,11 @@
                      :label="tab.productName"
                      :name="tab.id"
                      :key="tab.id">
-          <Record :product-id="tab.id" v-if="tab.id === activeTab" />
+          <Record
+            :product-id="tab.id"
+            :is-finished-product="tab.productName?.includes('鎴愬搧')"
+            v-if="tab.id === activeTab"
+          />
         </el-tab-pane>
       </el-tabs>
     </div>
@@ -41,4 +45,4 @@
 onMounted(() => {
   fetchProducts();
 })
-</script>
\ No newline at end of file
+</script>
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 99a1790..d1a0097 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -1716,9 +1716,12 @@
   }
 };
 const getProductOptions = () => {
-  return productTreeList().then((res) => {
-    const tree = convertIdToValue(res);
-    productOptions.value = filterOutSemiFinished(tree);
+  return productTreeList({ productName: "鎴愬搧" }).then((res) => {
+    const tree = filterOutSemiFinished(convertIdToValue(res));
+    const finishedNode = tree.find(
+      (item) => item?.label === "鎴愬搧" || item?.productName === "鎴愬搧"
+    );
+    productOptions.value = finishedNode?.children || tree;
     return res;
   });
 };
diff --git a/src/views/productionManagement/workOrder/components/CopperPrintingForm.vue b/src/views/productionManagement/workOrder/components/CopperPrintingForm.vue
index 6539b4d..0a27bd0 100644
--- a/src/views/productionManagement/workOrder/components/CopperPrintingForm.vue
+++ b/src/views/productionManagement/workOrder/components/CopperPrintingForm.vue
@@ -409,7 +409,7 @@
           <td colspan="14"></td>
         </tr>
         <tr class="report-row report-row--triple">
-          <td class="label" colspan="2">鐑ч挗鏃ユ湡</td>
+          <td class="label" colspan="2">鐑ч摐鏃ユ湡</td>
           <td colspan="5" class="cell-field">
             <el-date-picker
                 v-if="props.isEdit"
@@ -433,7 +433,7 @@
             />
             <span v-else class="view-value">{{ displayValue(formData.otherData.copperFiringTime) }}</span>
           </td>
-          <td class="label label--compact" colspan="2">鐑ч挗鍑虹倝鏃堕棿</td>
+          <td class="label label--compact" colspan="2">鐑ч摐鍑虹倝鏃堕棿</td>
           <td colspan="5" class="cell-field">
             <el-date-picker
                 v-if="props.isEdit"
diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 895bffa..1592ffd 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -28,6 +28,18 @@
         </div>
 
         <div class="search-item">
+          <span class="search_title">宸ュ簭锛�</span>
+          <el-input
+            v-model="searchForm.processName"
+            style="width: 240px"
+            placeholder="璇疯緭鍏�"
+            @change="handleQuery"
+            clearable
+            prefix-icon="Search"
+          />
+        </div>
+
+        <div class="search-item">
           <el-button type="primary" @click="handleQuery">鎼滅储 </el-button>
         </div>
       </div>
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 9c99662..c2be59c 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -104,18 +104,21 @@
 					</template>
 				</el-table-column>
 				<el-table-column align="center" label="搴忓彿" type="index" width="60" />
-				<el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip />
 				<el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip />
-				<el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip />
+				<el-table-column label="鍨嬪彿" prop="model" width="100" show-overflow-tooltip />
+				<el-table-column label="鐢靛帇" prop="voltage" width="100" show-overflow-tooltip />
+				<el-table-column label="qty" prop="qty" width="100" show-overflow-tooltip />
 				<el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip />
-				<el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip />
-				<el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="220" show-overflow-tooltip
-					:formatter="formattedNumber" />
+        <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="220" show-overflow-tooltip
+                         :formatter="formattedNumber" />
+        <el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip />
 				<el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip />
 				<el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip />
 				<el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip />
 				<el-table-column label="浜や粯鏃ユ湡" prop="deliveryDate" width="120" show-overflow-tooltip />
-				<el-table-column label="澶囨敞" prop="remarks" width="200" show-overflow-tooltip />
+        <el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip />
+        <el-table-column label="澶囨敞" prop="remarks" width="200" show-overflow-tooltip />
+        <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip />
 				<el-table-column fixed="right" label="鎿嶄綔" min-width="100" align="center">
 					<template #default="scope">
 						<el-button link type="primary" size="small" @click="openForm('edit', scope.row)"
@@ -918,7 +921,11 @@
 const getProductOptions = () => {
 	// 杩斿洖 Promise锛屼究浜庡湪缂栬緫浜у搧鏃剁瓑寰呭姞杞藉畬鎴�
 	return productTreeList({productName: '鎴愬搧'}).then((res) => {
-		productOptions.value = convertIdToValue(res);
+		const tree = convertIdToValue(res);
+		const finishedNode = tree.find(
+			(item) => item?.label === '鎴愬搧' || item?.productName === '鎴愬搧'
+		);
+		productOptions.value = finishedNode?.children || tree;
 		return productOptions.value;
 	});
 };
@@ -2345,4 +2352,4 @@
 		page-break-after: avoid;
 	}
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3