From f300d2d0d34ec8e6725fb2410ca5465546171a25 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 28 五月 2026 16:59:03 +0800
Subject: [PATCH] 新增库存增加厂家下拉框,并且在其他位置回显

---
 src/views/inventoryManagement/stockManagement/New.vue              |   33 +-
 src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue |  380 +++++++++++++++++----------------
 src/views/inventoryManagement/receiptManagement/Record.vue         |  234 ++++++++++++++++++--
 3 files changed, 420 insertions(+), 227 deletions(-)

diff --git a/src/views/inventoryManagement/receiptManagement/Record.vue b/src/views/inventoryManagement/receiptManagement/Record.vue
index 0a01def..1c899f0 100644
--- a/src/views/inventoryManagement/receiptManagement/Record.vue
+++ b/src/views/inventoryManagement/receiptManagement/Record.vue
@@ -110,6 +110,13 @@
         <el-table-column label="鍏ュ簱鏃堕棿"
                          prop="createTime"
                          show-overflow-tooltip />
+        <el-table-column label="鍘傚"
+                         prop="manufacturerId"
+                         show-overflow-tooltip>
+          <template #default="scope">
+            {{ getManufacturerName(scope.row.manufacturerId) }}
+          </template>
+        </el-table-column>
         <el-table-column label="浜у搧澶х被"
                          prop="productName"
                          show-overflow-tooltip />
@@ -129,10 +136,9 @@
                          prop="createBy"
                          show-overflow-tooltip />
         <el-table-column label="鏉ユ簮"
-                         prop="recordType"
                          show-overflow-tooltip>
           <template #default="scope">
-            {{ getRecordType(scope.row.recordType) }}
+            {{ scope.row.qualifiedSourceText || scope.row.unQualifiedSourceText || getRecordType(scope.row.recordType) || "--" }}
           </template>
         </el-table-column>
         <el-table-column v-if="showSourceOrderNoColumn"
@@ -162,6 +168,60 @@
                   :limit="page.size"
                   @pagination="pageProductChange" />
     </div>
+    <!-- 瀹℃壒寮圭獥 -->
+    <el-dialog v-model="approveDialogVisible"
+               title="瀹℃壒"
+               width="800px"
+               append-to-body>
+      <el-form :model="approveForm"
+               label-width="80px">
+        <el-form-item label="瀹℃壒缁撴灉">
+          <el-radio-group v-model="approveForm.approvalStatus">
+            <el-radio :label="1">閫氳繃</el-radio>
+            <el-radio :label="2">椹冲洖</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="鏄庣粏纭"
+                      v-if="approveForm.approvalStatus === 1">
+          <div class="approve-items-list">
+            <div class="list-header">
+              <span class="header-product">浜у搧淇℃伅</span>
+              <span class="header-num">鍏ュ簱鏁伴噺</span>
+            </div>
+            <div v-for="item in approveForm.items"
+                 :key="item.id"
+                 class="approve-item">
+              <div class="item-info">
+                <div class="product-name"
+                     :title="item.productName">{{ item.productName }}</div>
+                <div class="product-info-sub">
+                  <span class="product-model"
+                        :title="item.model">{{ item.model }}</span>
+                  <span class="product-batch"
+                        v-if="item.batchNo"
+                        :title="'鎵瑰彿: ' + item.batchNo"> | 鎵瑰彿: {{ item.batchNo }}</span>
+                </div>
+              </div>
+              <div class="item-input">
+                <el-input-number v-model="item.stockInNum"
+                                 :min="0"
+                                 :precision="2"
+                                 controls-position="right"
+                                 style="width: 130px" />
+              </div>
+            </div>
+          </div>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="approveDialogVisible = false">鍙栨秷</el-button>
+          <el-button type="primary"
+                     @click="submitApprove"
+                     :loading="approveLoading">纭畾</el-button>
+        </span>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
@@ -186,6 +246,7 @@
     findAllQualifiedStockInRecordTypeOptions,
     // findAllUnQualifiedStockInRecordTypeOptions,
   } from "@/api/basicData/enum.js";
+  import { getManufacturerOptions } from "@/api/inspectionManagement/manufacturerManageFile.js";
 
   const { proxy } = getCurrentInstance();
 
@@ -206,11 +267,20 @@
   const tableLoading = ref(false);
   // 鏉ユ簮绫诲瀷閫夐」
   const stockRecordTypeOptions = ref([]);
+  const manufacturerOptions = ref([]);
   const page = reactive({
     current: 1,
     size: 10,
   });
   const total = ref(0);
+
+  // 瀹℃壒鐩稿叧
+  const approveDialogVisible = ref(false);
+  const approveLoading = ref(false);
+  const approveForm = reactive({
+    approvalStatus: 1,
+    items: [], // 瀛樺偍姣忎釜閫変腑鐨勬潯鐩強鍏跺叆搴撴暟閲�
+  });
 
   const data = reactive({
     searchForm: {
@@ -234,6 +304,13 @@
     return (
       stockRecordTypeOptions.value.find(item => item.value === recordType)
         ?.label || ""
+    );
+  };
+
+  const getManufacturerName = manufacturerId => {
+    return (
+      manufacturerOptions.value.find(item => item.id === manufacturerId)?.name ||
+      "--"
     );
   };
 
@@ -370,6 +447,12 @@
     //     })
   };
 
+  const fetchManufacturerOptions = () => {
+    getManufacturerOptions().then(res => {
+      manufacturerOptions.value = res.data || [];
+    });
+  };
+
   // 琛ㄦ牸閫夋嫨鏁版嵁
   const handleSelectionChange = selection => {
     selectedRows.value = selection.filter(
@@ -410,36 +493,49 @@
       proxy.$modal.msgWarning("璇烽�夋嫨寰呭鎵圭殑鏁版嵁");
       return;
     }
-    const ids = selectedRows.value.map(item => item.id);
-    ElMessageBox.confirm("璇烽�夋嫨瀹℃壒缁撴灉", "瀹℃壒", {
-      confirmButtonText: "閫氳繃",
-      cancelButtonText: "椹冲洖",
-      type: "warning",
-      distinguishCancelAndClose: true,
-    })
+    // 鍒濆鍖栧鎵硅〃鍗�
+    approveForm.approvalStatus = 1;
+    approveForm.items = selectedRows.value.map(row => ({
+      id: row.id,
+      productName: row.productName,
+      model: row.model,
+      batchNo: row.batchNo,
+      stockInNum: row.stockInNum || 0,
+    }));
+    approveDialogVisible.value = true;
+  };
+
+  const submitApprove = () => {
+    const params = {
+      approvalStatus: approveForm.approvalStatus,
+    };
+
+    // 鍙湁鍦ㄩ�氳繃鏃舵墠浼犲寘鍚暟閲忕殑鏄庣粏鍒楄〃锛屽惁鍒欎粎浼� ID 鍒楄〃
+    if (approveForm.approvalStatus === 1) {
+      params.items = approveForm.items.map(item => ({
+        id: item.id,
+        stockInNum: item.stockInNum,
+      }));
+    } else {
+      params.ids = approveForm.items.map(item => item.id);
+    }
+
+    approveLoading.value = true;
+    batchApproveStockInRecords(params)
       .then(() => {
-        batchApproveStockInRecords({ ids, approvalStatus: 1 })
-          .then(() => {
-            proxy.$modal.msgSuccess("瀹℃壒閫氳繃鎴愬姛");
-            getList();
-          })
-          .catch(() => {
-            proxy.$modal.msgError("瀹℃壒閫氳繃澶辫触");
-          });
+        proxy.$modal.msgSuccess(
+          approveForm.approvalStatus === 1 ? "瀹℃壒閫氳繃鎴愬姛" : "瀹℃壒椹冲洖鎴愬姛"
+        );
+        approveDialogVisible.value = false;
+        getList();
       })
-      .catch(action => {
-        if (action === "cancel") {
-          batchApproveStockInRecords({ ids, approvalStatus: 2 })
-            .then(() => {
-              proxy.$modal.msgSuccess("瀹℃壒椹冲洖鎴愬姛");
-              getList();
-            })
-            .catch(() => {
-              proxy.$modal.msgError("瀹℃壒椹冲洖澶辫触");
-            });
-          return;
-        }
-        proxy.$modal.msg("宸插彇娑�");
+      .catch(() => {
+        proxy.$modal.msgError(
+          approveForm.approvalStatus === 1 ? "瀹℃壒閫氳繃澶辫触" : "瀹℃壒椹冲洖澶辫触"
+        );
+      })
+      .finally(() => {
+        approveLoading.value = false;
       });
   };
 
@@ -494,6 +590,7 @@
   onMounted(() => {
     getList();
     fetchStockRecordTypeOptions();
+    fetchManufacturerOptions();
   });
 
   watch(
@@ -511,4 +608,81 @@
     justify-content: flex-end;
     margin-bottom: 10px;
   }
+
+  .approve-items-list {
+    max-height: 400px;
+    overflow-y: auto;
+    width: 100%;
+    border: 1px solid #ebeef5;
+    border-radius: 4px;
+
+    .list-header {
+      display: flex;
+      background-color: #f5f7fa;
+      padding: 8px 12px;
+      font-weight: bold;
+      border-bottom: 1px solid #ebeef5;
+      font-size: 13px;
+
+      .header-product {
+        flex: 1;
+      }
+
+      .header-num {
+        width: 130px;
+        text-align: center;
+      }
+    }
+
+    .approve-item {
+      display: flex;
+      align-items: center;
+      padding: 10px 12px;
+      border-bottom: 1px solid #ebeef5;
+
+      &:last-child {
+        border-bottom: none;
+      }
+
+      .item-info {
+        flex: 1;
+        min-width: 0;
+        margin-right: 15px;
+
+        .product-name {
+          font-weight: bold;
+          font-size: 13px;
+          color: #303133;
+          white-space: nowrap;
+          overflow: hidden;
+          text-overflow: ellipsis;
+        }
+
+        .product-info-sub {
+          display: flex;
+          align-items: center;
+          font-size: 12px;
+          color: #909399;
+          margin-top: 2px;
+          white-space: nowrap;
+          overflow: hidden;
+
+          .product-model,
+          .product-batch {
+            overflow: hidden;
+            text-overflow: ellipsis;
+          }
+
+          .product-batch {
+            margin-left: 4px;
+            color: #409eff;
+          }
+        }
+      }
+
+      .item-input {
+        width: 130px;
+      }
+    }
+  }
 </style>
diff --git a/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue b/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
index a835ef4..707c44d 100644
--- a/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
+++ b/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
@@ -1,227 +1,241 @@
 <template>
-  <el-dialog
-    v-model="isShow"
-    title="搴撳瓨璇︽儏"
-    width="90%"
-    top="3vh"
-    class="batch-no-qty-detail-dialog"
-    @close="closeModal"
-  >
+  <el-dialog v-model="isShow"
+             title="搴撳瓨璇︽儏"
+             width="90%"
+             top="3vh"
+             class="batch-no-qty-detail-dialog"
+             @close="closeModal">
     <div class="detail-content">
       <div class="detail-table-wrapper">
-        <el-table
-          :data="tableData"
-          border
-          v-loading="tableLoading"
-          style="width: 100%"
-          height="100%"
-        >
-          <el-table-column
-            label="浜у搧鍚嶇О"
-            prop="productName"
-            show-overflow-tooltip
-          />
-          <el-table-column label="瑙勬牸鍨嬪彿" prop="model" show-overflow-tooltip />
-          <el-table-column label="鍗曚綅" prop="unit" show-overflow-tooltip />
-          <el-table-column label="鎵瑰彿" prop="batchNo" 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
-          />
-          <el-table-column
-            label="涓嶅悎鏍煎喕缁撴暟閲�"
-            prop="unQualifiedLockedQuantity"
-            show-overflow-tooltip
-          />
-          <el-table-column
-            label="搴撳瓨棰勮鏁伴噺"
-            prop="warnNum"
-            show-overflow-tooltip
-          />
-          <el-table-column label="澶囨敞" prop="remark" show-overflow-tooltip />
-          <el-table-column
-            label="鏈�杩戞洿鏂版椂闂�"
-            prop="updateTime"
-            show-overflow-tooltip
-          />
-          <el-table-column fixed="right" label="鎿嶄綔" min-width="180" align="center">
+        <el-table :data="tableData"
+                  border
+                  v-loading="tableLoading"
+                  style="width: 100%"
+                  height="100%">
+          <el-table-column label="浜у搧鍚嶇О"
+                           prop="productName"
+                           show-overflow-tooltip />
+          <el-table-column label="瑙勬牸鍨嬪彿"
+                           prop="model"
+                           show-overflow-tooltip />
+          <el-table-column label="鍘傚"
+                           prop="manufacturerId"
+                           show-overflow-tooltip>
             <template #default="scope">
-              <el-button
-                link
-                type="primary"
-                @click="handleSubtract(scope.row)"
-                :disabled="
+              {{ getManufacturerName(scope.row.manufacturerId) }}
+            </template>
+          </el-table-column>
+          <el-table-column label="鏉ユ簮"
+                           show-overflow-tooltip>
+            <template #default="scope">
+              {{ scope.row.qualifiedSourceText || scope.row.unQualifiedSourceText || "--" }}
+            </template>
+          </el-table-column>
+          <el-table-column label="鍗曚綅"
+                           prop="unit"
+                           show-overflow-tooltip />
+          <el-table-column label="鎵瑰彿"
+                           prop="batchNo"
+                           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 />
+          <el-table-column label="涓嶅悎鏍煎喕缁撴暟閲�"
+                           prop="unQualifiedLockedQuantity"
+                           show-overflow-tooltip />
+          <el-table-column label="搴撳瓨棰勮鏁伴噺"
+                           prop="warnNum"
+                           show-overflow-tooltip />
+          <el-table-column label="澶囨敞"
+                           prop="remark"
+                           show-overflow-tooltip />
+          <el-table-column label="鏈�杩戞洿鏂版椂闂�"
+                           prop="updateTime"
+                           show-overflow-tooltip />
+          <el-table-column fixed="right"
+                           label="鎿嶄綔"
+                           min-width="180"
+                           align="center">
+            <template #default="scope">
+              <el-button link
+                         type="primary"
+                         @click="handleSubtract(scope.row)"
+                         :disabled="
                   (scope.row.qualifiedUnLockedQuantity || 0) +
                     (scope.row.qualifiedPendingOutQuantity || 0) <=
                     0 &&
                   (scope.row.unQualifiedUnLockedQuantity || 0) +
                     (scope.row.unQualifiedPendingOutQuantity || 0) <=
                     0
-                "
-                >棰嗙敤</el-button
-              >
-              <el-button
-                link
-                type="primary"
-                v-if="
+                ">棰嗙敤</el-button>
+              <el-button link
+                         type="primary"
+                         v-if="
                   scope.row.unQualifiedUnLockedQuantity > 0 ||
                   scope.row.qualifiedUnLockedQuantity > 0
                 "
-                @click="handleFrozen(scope.row)"
-                >鍐荤粨</el-button
-              >
-              <el-button
-                link
-                type="primary"
-                v-if="
+                         @click="handleFrozen(scope.row)">鍐荤粨</el-button>
+              <el-button link
+                         type="primary"
+                         v-if="
                   scope.row.qualifiedLockedQuantity > 0 ||
                   scope.row.unQualifiedLockedQuantity > 0
                 "
-                @click="handleThaw(scope.row)"
-                >瑙e喕</el-button
-              >
+                         @click="handleThaw(scope.row)">瑙e喕</el-button>
             </template>
           </el-table-column>
         </el-table>
       </div>
-      <pagination
-        v-show="total > 0"
-        :total="total"
-        layout="total, sizes, prev, pager, next, jumper"
-        :page="page.current"
-        :limit="page.size"
-        @pagination="paginationChange"
-      />
+      <pagination v-show="total > 0"
+                  :total="total"
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :page="page.current"
+                  :limit="page.size"
+                  @pagination="paginationChange" />
     </div>
   </el-dialog>
 </template>
 
 <script setup>
-import pagination from "@/components/PIMTable/Pagination.vue";
-import { computed, reactive, ref, watch } from "vue";
-import { getStockInventoryBatchNoQty } from "@/api/inventoryManagement/stockInventory.js";
+  import pagination from "@/components/PIMTable/Pagination.vue";
+  import { computed, reactive, ref, watch, onMounted } from "vue";
+  import { getStockInventoryBatchNoQty } from "@/api/inventoryManagement/stockInventory.js";
+  import { getManufacturerOptions } from "@/api/inspectionManagement/manufacturerManageFile.js";
 
-const props = defineProps({
-  visible: {
-    type: Boolean,
-    required: true,
-  },
-  record: {
-    type: Object,
-    default: () => ({}),
-  },
-});
+  const props = defineProps({
+    visible: {
+      type: Boolean,
+      required: true,
+    },
+    record: {
+      type: Object,
+      default: () => ({}),
+    },
+  });
 
-const emit = defineEmits(["update:visible", "subtract", "frozen", "thaw"]);
+  const emit = defineEmits(["update:visible", "subtract", "frozen", "thaw"]);
 
-const isShow = computed({
-  get() {
-    return props.visible;
-  },
-  set(val) {
-    emit("update:visible", val);
-  },
-});
+  const isShow = computed({
+    get() {
+      return props.visible;
+    },
+    set(val) {
+      emit("update:visible", val);
+    },
+  });
 
-const tableData = ref([]);
-const tableLoading = ref(false);
-const total = ref(0);
-const page = reactive({
-  current: 1,
-  size: 20,
-});
+  const tableData = ref([]);
+  const tableLoading = ref(false);
+  const manufacturerOptions = ref([]);
+  const total = ref(0);
+  const page = reactive({
+    current: 1,
+    size: 20,
+  });
 
-const getList = () => {
-  if (!props.record?.productId || !props.record?.productModelId) {
-    tableData.value = [];
-    total.value = 0;
-    return;
-  }
+  const getManufacturerName = manufacturerId => {
+    return (
+      manufacturerOptions.value.find(item => item.id === manufacturerId)?.name ||
+      "--"
+    );
+  };
 
-  tableLoading.value = true;
-  getStockInventoryBatchNoQty({
-    current: page.current,
-    size: page.size,
-    productId: props.record.productId,
-    productModelId: props.record.productModelId,
-  })
-    .then((res) => {
-      tableData.value = res.data?.records || [];
-      total.value = res.data?.total || 0;
-    })
-    .finally(() => {
-      tableLoading.value = false;
+  const fetchManufacturerOptions = () => {
+    getManufacturerOptions().then(res => {
+      manufacturerOptions.value = res.data || [];
     });
-};
+  };
 
-const paginationChange = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
-};
+  onMounted(() => {
+    fetchManufacturerOptions();
+  });
 
-const handleSubtract = (row) => {
-  emit("subtract", row);
-};
-
-const handleFrozen = (row) => {
-  emit("frozen", row);
-};
-
-const handleThaw = (row) => {
-  emit("thaw", row);
-};
-
-const closeModal = () => {
-  isShow.value = false;
-  page.current = 1;
-  page.size = 20;
-  tableData.value = [];
-  total.value = 0;
-};
-
-watch(
-  () => props.visible,
-  (visible) => {
-    if (!visible) {
+  const getList = () => {
+    if (!props.record?.productId || !props.record?.productModelId) {
+      tableData.value = [];
+      total.value = 0;
       return;
     }
-    page.current = 1;
+
+    tableLoading.value = true;
+    getStockInventoryBatchNoQty({
+      current: page.current,
+      size: page.size,
+      productId: props.record.productId,
+      productModelId: props.record.productModelId,
+    })
+      .then(res => {
+        tableData.value = res.data?.records || [];
+        total.value = res.data?.total || 0;
+      })
+      .finally(() => {
+        tableLoading.value = false;
+      });
+  };
+
+  const paginationChange = obj => {
+    page.current = obj.page;
+    page.size = obj.limit;
     getList();
-  },
-  { immediate: true }
-);
+  };
+
+  const handleSubtract = row => {
+    emit("subtract", row);
+  };
+
+  const handleFrozen = row => {
+    emit("frozen", row);
+  };
+
+  const handleThaw = row => {
+    emit("thaw", row);
+  };
+
+  const closeModal = () => {
+    isShow.value = false;
+    page.current = 1;
+    page.size = 20;
+    tableData.value = [];
+    total.value = 0;
+  };
+
+  watch(
+    () => props.visible,
+    visible => {
+      if (!visible) {
+        return;
+      }
+      page.current = 1;
+      getList();
+    },
+    { immediate: true }
+  );
 </script>
 
 <style scoped lang="scss">
-.detail-content {
-  display: flex;
-  flex-direction: column;
-  height: calc(100vh - 170px);
-  min-height: 520px;
-}
+  .detail-content {
+    display: flex;
+    flex-direction: column;
+    height: calc(100vh - 170px);
+    min-height: 520px;
+  }
 
-.detail-table-wrapper {
-  flex: 1;
-  min-height: 0;
-}
+  .detail-table-wrapper {
+    flex: 1;
+    min-height: 0;
+  }
 
-:deep(.batch-no-qty-detail-dialog .el-dialog) {
-  max-width: calc(100vw - 48px);
-}
+  :deep(.batch-no-qty-detail-dialog .el-dialog) {
+    max-width: calc(100vw - 48px);
+  }
 
-:deep(.batch-no-qty-detail-dialog .el-dialog__body) {
-  padding-top: 12px;
-}
+  :deep(.batch-no-qty-detail-dialog .el-dialog__body) {
+    padding-top: 12px;
+  }
 </style>
diff --git a/src/views/inventoryManagement/stockManagement/New.vue b/src/views/inventoryManagement/stockManagement/New.vue
index 065ce39..7ee84ea 100644
--- a/src/views/inventoryManagement/stockManagement/New.vue
+++ b/src/views/inventoryManagement/stockManagement/New.vue
@@ -33,8 +33,8 @@
                     disabled />
         </el-form-item>
         <el-form-item label="鍘傚"
-                      prop="manufacturer">
-          <el-select v-model="formState.manufacturer"
+                      prop="manufacturerId">
+          <el-select v-model="formState.manufacturerId"
                      placeholder="璇烽�夋嫨鍘傚"
                      clearable
                      filterable
@@ -78,9 +78,9 @@
           <el-select v-model="formState.source"
                      placeholder="璇烽�夋嫨鏉ユ簮">
             <el-option v-for="item in sourceOptions"
-                       :key="item"
-                       :label="item"
-                       :value="item" />
+                       :key="item.value"
+                       :label="item.label"
+                       :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="搴撳瓨鏁伴噺"
@@ -155,7 +155,7 @@
     productModelName: "",
     unit: "",
     type: undefined,
-    manufacturer: "",
+    manufacturerId: "",
     source: "",
     qualitity: 0,
     batchNo: null,
@@ -165,19 +165,24 @@
 
   const sourceOptions = computed(() => {
     if (formState.value.type === "qualified") {
-      return ["閲囪喘鍏ュ簱", "鐢熶骇鍏ュ簱", "澶栧崗鍏ュ簱", "淇鍏ュ簱"];
+      return [
+        { value: "purchaseReceipt", label: "閲囪喘鍏ュ簱" },
+        { value: "productionReceipt", label: "鐢熶骇鍏ュ簱" },
+        { value: "outsourcedReceipt", label: "澶栧崗鍏ュ簱" },
+        { value: "repairReceipt", label: "淇鍏ュ簱" },
+      ];
     } else if (formState.value.type === "waste") {
-      return ["鐢熶骇浜х敓", "杩愯緭浜х敓", "瑁佸壀浜х敓"];
+      return [
+        { value: "prodGenerated", label: "鐢熶骇浜х敓" },
+        { value: "transGenerated", label: "杩愯緭浜х敓" },
+        { value: "cuttingGenerated", label: "瑁佸壀浜х敓" },
+      ];
     }
     return [];
   });
 
   const handleTypeChange = val => {
-    if (val === "unqualified") {
-      formState.value.source = "鑷畾涔�";
-    } else {
-      formState.value.source = "";
-    }
+    formState.value.source = "";
   };
 
   const isShow = computed({
@@ -223,7 +228,7 @@
       productModelName: "",
       unit: "",
       type: undefined,
-      manufacturer: "",
+      manufacturerId: "",
       source: "",
       qualitity: 0,
       batchNo: null,

--
Gitblit v1.9.3