From 9ea5ff67655241271bdf04bb50ca3a8d60c4e22a Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 15:07:02 +0800
Subject: [PATCH] fix: 用河南鹤壁代码覆盖山西长治

---
 src/views/inventoryManagement/receiptManagement/Record.vue |  103 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 89 insertions(+), 14 deletions(-)

diff --git a/src/views/inventoryManagement/receiptManagement/Record.vue b/src/views/inventoryManagement/receiptManagement/Record.vue
index 56e6f74..2fe86a2 100644
--- a/src/views/inventoryManagement/receiptManagement/Record.vue
+++ b/src/views/inventoryManagement/receiptManagement/Record.vue
@@ -71,10 +71,15 @@
       </el-form>
     </div>
     <div class="actions">
-      <el-button type="primary" @click="handleBatchApprove">瀹℃壒</el-button>
+      <!-- <el-button type="primary"
+                 :disabled="!canBatchApprove"
+                 @click="handleBatchApprove">瀹℃壒</el-button>
+      <el-button :disabled="!canReverseApprove"
+                 @click="handleReverseApprove">鍙嶅</el-button> -->
       <el-button @click="handleOut">瀵煎嚭</el-button>
       <el-button type="danger"
                  plain
+                 :disabled="!canDelete"
                  @click="handleDelete">鍒犻櫎
       </el-button>
     </div>
@@ -89,7 +94,7 @@
                 height="calc(100vh - 18.5em)">
         <el-table-column align="center"
                          type="selection"
-                         :selectable="isRowSelectableForApprove"
+                         :selectable="isRowSelectable"
                          width="55"/>
         <el-table-column align="center"
                          label="搴忓彿"
@@ -97,11 +102,16 @@
                          width="60"/>
         <el-table-column label="鍏ュ簱鎵规"
                          prop="inboundBatches"
-                         width="280"
+                         width="150"
                          show-overflow-tooltip/>
         <el-table-column label="鍏ュ簱鏃堕棿"
                          prop="createTime"
-                         show-overflow-tooltip/>
+                         width="120"
+                         show-overflow-tooltip>
+          <template #default="scope">
+            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="浜у搧澶х被"
                          prop="productName"
                          show-overflow-tooltip/>
@@ -110,6 +120,7 @@
                          show-overflow-tooltip/>
         <el-table-column label="鎵瑰彿"
                          prop="batchNo"
+                         width="180"
                          show-overflow-tooltip/>
         <el-table-column label="鍗曚綅"
                          prop="unit"
@@ -127,7 +138,17 @@
             {{ getRecordType(scope.row.recordType) }}
           </template>
         </el-table-column>
-        <el-table-column label="瀹℃壒鐘舵��"
+        <el-table-column
+            v-if="showSourceOrderNoColumn"
+            label="婧愬崟鍙�"
+            width="150"
+            prop="sourceOrderNo"
+            show-overflow-tooltip>
+          <template #default="scope">
+            {{ formatSourceOrderNo(scope.row?.sourceOrderNo) }}
+          </template>
+        </el-table-column>
+        <!-- <el-table-column label="瀹℃壒鐘舵��"
                          prop="approvalStatus"
                          show-overflow-tooltip>
           <template #default="scope">
@@ -135,7 +156,7 @@
               {{ getApprovalStatusLabel(scope.row.approvalStatus) }}
             </el-tag>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
       <pagination v-show="total > 0"
                   :total="total"
@@ -153,6 +174,7 @@
   ref,
   reactive,
   toRefs,
+  computed,
   onMounted,
   getCurrentInstance,
 } from "vue";
@@ -161,11 +183,13 @@
   getStockInRecordListPage,
   batchDeletePendingStockInRecords,
   batchApproveStockInRecords,
+  batchUnapproveStockInRecords,
 } from "@/api/inventoryManagement/stockInRecord.js";
 import {
   findAllQualifiedStockInRecordTypeOptions, 
   // findAllUnQualifiedStockInRecordTypeOptions,
 } from "@/api/basicData/enum.js";
+import { parseTime } from "@/utils/ruoyi";
 
 const {proxy} = getCurrentInstance();
 
@@ -245,8 +269,33 @@
   return status === 0 || status === "0" || status === "pending" || status === "PENDING" || status === null || status === undefined || status === "";
 };
 
-const isRowSelectableForApprove = row => {
-  return isPendingApproval(row?.approvalStatus);
+const isRejectedApproval = status => {
+  return status === 2 || status === "2" || status === "rejected" || status === "REJECTED";
+};
+
+const isRowSelectable = row => {
+  return isPendingApproval(row?.approvalStatus) || isRejectedApproval(row?.approvalStatus);
+};
+
+const canBatchApprove = computed(() => {
+  return selectedRows.value.length > 0
+      && selectedRows.value.every(row => isPendingApproval(row.approvalStatus));
+});
+
+const canReverseApprove = computed(() => {
+  return selectedRows.value.length > 0
+      && selectedRows.value.every(row => isRejectedApproval(row.approvalStatus));
+});
+
+const canDelete = computed(() => canBatchApprove.value);
+const showSourceOrderNoColumn = computed(() => {
+  const topParentProductId = Number(props.topParentProductId);
+  return topParentProductId === 1 || topParentProductId === 3;
+});
+
+const formatSourceOrderNo = (value) => {
+  const text = String(value ?? "").trim();
+  return text || "--";
 };
 
 const pageProductChange = obj => {
@@ -283,14 +332,40 @@
 
 // 琛ㄦ牸閫夋嫨鏁版嵁
 const handleSelectionChange = selection => {
-  selectedRows.value = selection.filter(item => item.id && isPendingApproval(item.approvalStatus));
+  selectedRows.value = selection.filter(item => item.id && isRowSelectable(item));
 };
 
 const expandedRowKeys = ref([]);
 
+const handleReverseApprove = () => {
+  if (!canReverseApprove.value) {
+    proxy.$modal.msgWarning("璇烽�夋嫨宸查┏鍥炵殑鏁版嵁");
+    return;
+  }
+  const ids = selectedRows.value.map(item => item.id);
+  ElMessageBox.confirm("鍙嶅鍚庤褰曞皢鎭㈠涓哄緟瀹℃壒鐘舵�侊紝鏄惁纭鍙嶅锛�", "鍙嶅", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+      .then(() => {
+        batchUnapproveStockInRecords({ids})
+            .then(() => {
+              proxy.$modal.msgSuccess("鍙嶅鎴愬姛");
+              getList();
+            })
+            .catch(() => {
+              proxy.$modal.msgError("鍙嶅澶辫触");
+            });
+      })
+      .catch(() => {
+        proxy.$modal.msg("宸插彇娑�");
+      });
+};
+
 const handleBatchApprove = () => {
-  if (selectedRows.value.length === 0) {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+  if (!canBatchApprove.value) {
+    proxy.$modal.msgWarning("璇烽�夋嫨寰呭鎵圭殑鏁版嵁");
     return;
   }
   const ids = selectedRows.value.map(item => item.id);
@@ -344,8 +419,8 @@
 
 // 鍒犻櫎
 const handleDelete = () => {
-  if (selectedRows.value.length === 0) {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+  if (!canDelete.value) {
+    proxy.$modal.msgWarning("璇烽�夋嫨寰呭鎵圭殑鏁版嵁");
     return;
   }
   const ids = selectedRows.value.map(item => item.id);
@@ -390,4 +465,4 @@
   justify-content: flex-end;
   margin-bottom: 10px;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3