From 2fc20934018994b7a8abe5199d717a29283cbb8e Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 16 三月 2026 16:44:24 +0800
Subject: [PATCH] 协同审批:增加原料管理页面

---
 src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue |   52 ++++++++++++++++++++++++++
 src/views/qualityManagement/rawMaterial/components/formDia.vue             |   12 +-----
 src/views/collaborativeApproval/approvalProcess/index.vue                  |    6 ++
 src/views/qualityManagement/rawMaterial/index.vue                          |    4 --
 4 files changed, 59 insertions(+), 15 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
index 20a4ee6..cb0b2a5 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -168,6 +168,43 @@
         </el-skeleton>
       </div>
 
+      <div v-if="isRawMaterialApproval" style="margin: 10px 0 18px;">
+        <el-divider content-position="left">鍘熸枡璇︽儏</el-divider>
+        <el-skeleton :loading="rawMaterialLoading" animated>
+          <template #template>
+            <el-skeleton-item variant="h3" style="width: 30%" />
+            <el-skeleton-item variant="text" style="width: 100%" />
+            <el-skeleton-item variant="text" style="width: 100%" />
+          </template>
+          <template #default>
+            <el-empty v-if="!currentRawMaterial" description="鏈煡璇㈠埌瀵瑰簲鍘熸枡璇︽儏" />
+            <template v-else>
+              <el-descriptions :column="2" border>
+                <el-descriptions-item label="浜у搧鍚嶇О">{{ currentRawMaterial.productName }}</el-descriptions-item>
+                <el-descriptions-item label="瑙勬牸">{{ currentRawMaterial.model }}</el-descriptions-item>
+                <el-descriptions-item label="鍗曚綅">{{ currentRawMaterial.unit }}</el-descriptions-item>
+                <el-descriptions-item label="鎵瑰彿">{{ currentRawMaterial.batchNo }}</el-descriptions-item>
+                <el-descriptions-item label="妫�楠岀被鍨�">{{ currentRawMaterial.checkTypeText }}</el-descriptions-item>
+                <el-descriptions-item label="妫�娴嬬粨鏋�">{{ currentRawMaterial.checkResultText }}</el-descriptions-item>
+                <el-descriptions-item label="妫�楠屽憳">{{ currentRawMaterial.checkUserName }}</el-descriptions-item>
+                <el-descriptions-item label="妫�娴嬫棩鏈�">{{ currentRawMaterial.checkTime }}</el-descriptions-item>
+              </el-descriptions>
+
+              <div style="margin-top: 20px;">
+                <h4>妫�娴嬮」鐩槑缁�</h4>
+                <el-table :data="currentRawMaterial.qualityInspectItem || []" border style="width: 100%">
+                  <el-table-column prop="name" label="妫�娴嬮」鐩�" />
+                  <el-table-column prop="unit" label="鍗曚綅" />
+                  <el-table-column prop="standardValue" label="鏍囧噯鍊�" />
+                  <el-table-column prop="internalControl" label="鍐呮帶鍊�" />
+                  <el-table-column prop="testValue" label="鍖栭獙鍊�" />
+                </el-table>
+              </div>
+            </template>
+          </template>
+        </el-skeleton>
+      </div>
+
       <el-form :model="{ activities }" ref="formRef" label-position="top">
         <el-steps :active="getActiveStep()" finish-status="success" process-status="process" align-center direction="vertical">
           <el-step
@@ -232,6 +269,7 @@
 import { WarningFilled, Edit, Check, MoreFilled } from '@element-plus/icons-vue'
 import { getQuotationList } from "@/api/salesManagement/salesQuotation.js";
 import { getPurchaseByCode } from "@/api/procurementManagement/procurementLedger.js";
+import {findRawMaterialDetail} from "@/api/qualityManagement/rawMaterial.js";
 const emit = defineEmits(['close'])
 const { proxy } = getCurrentInstance()
 
@@ -252,9 +290,12 @@
 const quotationLoading = ref(false)
 const currentQuotation = ref({})
 const purchaseLoading = ref(false)
+const rawMaterialLoading = ref(false)
 const currentPurchase = ref({})
+const currentRawMaterial = ref({})
 const isQuotationApproval = computed(() => Number(props.approveType) === 6)
 const isPurchaseApproval = computed(() => Number(props.approveType) === 5)
+const isRawMaterialApproval = computed(() => Number(props.approveType) === 9)
 
 const data = reactive({
 	form: {
@@ -291,10 +332,12 @@
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
+  console.log(type, row);
   operationType.value = type;
   dialogFormVisible.value = true;
   currentQuotation.value = {}
   currentPurchase.value = {}
+  currentRawMaterial.value = {}
 	userListNoPageByTenantId().then((res) => {
 		userList.value = res.data;
 	});
@@ -355,6 +398,15 @@
     }
   }
 
+  if (isRawMaterialApproval.value) {
+    rawMaterialLoading.value = true
+    findRawMaterialDetail(row.approveRecordId).then(res => {
+      currentRawMaterial.value = res.data;
+    }).finally(() => {
+      rawMaterialLoading.value = false
+    })
+  }
+
   approveProcessDetails(row.approveId).then((res) => {
     activities.value = res.data
     // 澧炲姞isApproval瀛楁
diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index 522000f..2d6c37d 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -6,6 +6,7 @@
       <el-tab-pane label="璇峰亣绠$悊" name="2"></el-tab-pane>
       <el-tab-pane label="鍑哄樊绠$悊" name="3"></el-tab-pane>
       <el-tab-pane label="鎶ラ攢绠$悊" name="4"></el-tab-pane>
+      <el-tab-pane label="鍘熸枡绠$悊" name="9"></el-tab-pane>
     </el-tabs>
     
     <div class="search_form">
@@ -35,7 +36,7 @@
         <el-button
           type="primary"
           @click="openForm('add')"
-          v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
+          v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
         >鏂板</el-button>
         <el-button @click="handleOut">瀵煎嚭</el-button>
         <el-button
@@ -216,6 +217,7 @@
           currentApproveType.value === 5 ||
           currentApproveType.value === 6 ||
           currentApproveType.value === 7 ||
+          currentApproveType.value === 9 ||
           row.approveStatus == 2 ||
           row.approveStatus == 1 ||
           row.approveStatus == 4
@@ -297,6 +299,7 @@
     5: "/approveProcess/exportFive",
     6: "/approveProcess/exportSix",
     7: "/approveProcess/exportSeven",
+    9: "/approveProcess/exportNine",
   }
   const url = urlMap[type] || urlMap[0]
   const nameMap = {
@@ -308,6 +311,7 @@
     5: "閲囪喘鐢宠瀹℃壒琛�",
     6: "鎶ヤ环瀹℃壒琛�",
     7: "鍙戣揣瀹℃壒琛�",
+    9: "鍘熸枡瀹℃壒琛�",
   }
   const fileName = nameMap[type] || nameMap[0]
   proxy.download(url, {}, `${fileName}.xlsx`)
diff --git a/src/views/qualityManagement/rawMaterial/components/formDia.vue b/src/views/qualityManagement/rawMaterial/components/formDia.vue
index 9e47f37..b4febd8 100644
--- a/src/views/qualityManagement/rawMaterial/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterial/components/formDia.vue
@@ -34,11 +34,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎵瑰彿锛�" prop="batchNo">
-              <el-input style="width: 100%" v-model="form.batchNo" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
@@ -47,9 +42,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鏁伴噺(鍚�)锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�"
-                               clearable :precision="2" controls-position="right"/>
+            <el-form-item label="鎵瑰彿锛�" prop="batchNo">
+              <el-input style="width: 100%" v-model="form.batchNo" placeholder="璇疯緭鍏�" clearable/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -147,7 +141,6 @@
     productName: "",
     productId: "",
     productModelId: "",
-    quantity: undefined,
     model: "",
     batchNo: "",
     checkType: undefined,
@@ -160,7 +153,6 @@
     checkUserName: [{required: false, message: "璇烽�夋嫨妫�楠屽憳", trigger: "blur"}],
     productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
     productModelId: [{required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change"}],
-    quantity: [{required: true, message: "璇疯緭鍏ユ暟閲�", trigger: "blur"}],
     batchNo: [{required: true, message: "璇疯緭鍏ユ壒娆�", trigger: "blur"}],
     checkType: [{required: true, message: "璇烽�夋嫨妫�楠岀被鍨�", trigger: "change"}],
     checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
diff --git a/src/views/qualityManagement/rawMaterial/index.vue b/src/views/qualityManagement/rawMaterial/index.vue
index 279c80a..1fd7624 100644
--- a/src/views/qualityManagement/rawMaterial/index.vue
+++ b/src/views/qualityManagement/rawMaterial/index.vue
@@ -108,10 +108,6 @@
     prop: "model",
   },
   {
-    label: "鏁伴噺(鍚�)",
-    prop: "quantity",
-  },
-  {
     label: "鎵规鍙�",
     prop: "batchNo",
     width: 120

--
Gitblit v1.9.3