From 4dee4cb5b31a7f1dcd2c7b3d72f74b78d2fe3f29 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 18 九月 2026 15:56:41 +0800
Subject: [PATCH] fix: 质检是否入库
---
src/views/procurementManagement/procurementLedger/index.vue | 70 ++++++++++++++++++++++++++--------
1 files changed, 53 insertions(+), 17 deletions(-)
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 685a8aa..3eb5f03 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -58,6 +58,7 @@
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" />
+ <el-table-column label="浠舵暟" prop="packagingSpec" />
<el-table-column label="鍏ュ簱瀹℃牳鐘舵��" prop="stockInApprovalStatus" width="120">
<template #default="scope">
<el-tag :type="getStockInApprovalStatusType(scope.row.stockInApprovalStatus)" size="small">
@@ -90,7 +91,7 @@
<el-table-column label="鍏ュ簱鐘舵��" prop="stockInStatus" width="100" show-overflow-tooltip>
<template #default="scope">
<el-tag :type="getStockInStatusType(scope.row.stockInStatus)" size="small">
- {{ scope.row.stockInStatus || '--' }}
+ {{ formatStockInStatus(scope.row.stockInStatus) || '--' }}
</el-tag>
</template>
</el-table-column>
@@ -108,7 +109,7 @@
<el-button link type="primary" @click="openForm('edit', scope.row)"
:disabled="scope.row.stockInStatus === '瀹屽叏鍏ュ簱'">缂栬緫
</el-button>
- <el-button link type="primary" @click="downloadOrder(scope.row.id)">涓嬭浇</el-button>
+ <el-button link type="primary" @click="openFileDialog(scope.row)">闄勪欢</el-button> <!--downloadOrder(scope.row.id) 涓嬭浇-->
</template>
</el-table-column>
</el-table>
@@ -137,7 +138,7 @@
<el-col :span="12">
<el-form-item label="渚涘簲鍟嗗悕绉帮細" prop="supplierId">
<el-select v-model="form.supplierId" placeholder="璇烽�夋嫨" filterable clearable>
- <el-option v-for="item in supplierList" :key="item.id" :label="item.supplierName" :value="item.id">{{ item.supplierName + '---' + item.supplierType }}</el-option>
+<el-option v-for="item in supplierList" :key="item.id" :label="item.supplierName" :value="item.id">{{ item.supplierName }}</el-option>
</el-select>
</el-form-item>
</el-col>
@@ -208,6 +209,7 @@
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" width="70" />
+ <el-table-column label="浠舵暟" prop="packagingSpec" width="120" show-overflow-tooltip />
<el-table-column label="鏁伴噺" prop="quantity" width="70" />
<!-- <el-table-column label="搴撳瓨棰勮鏁伴噺" prop="warnNum" width="120" show-overflow-tooltip />-->
<el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
@@ -277,20 +279,22 @@
@cancel="closeProductDia">
<el-form :model="productForm" label-width="140px" label-position="top" :rules="productRules" ref="productFormRef">
<el-row :gutter="30">
- <el-col :span="24">
- <el-form-item label="浜у搧澶х被锛�" prop="productId">
- <el-tree-select v-model="productForm.productId" placeholder="璇烽�夋嫨" clearable filterable check-strictly
- @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />
+ <el-col :span="12">
+ <el-form-item label="浜у搧澶х被锛�" prop="productCategory">
+ <el-input v-model="productForm.productCategory"
+ placeholder="鐐瑰嚮閫夋嫨"
+ readonly
+ @click="showProductSelectDialog = true"
+ style="cursor:pointer" />
</el-form-item>
</el-col>
- </el-row>
- <el-row :gutter="30">
- <el-col :span="24">
+ <el-col :span="12">
<el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
- <el-select v-model="productForm.productModelId" placeholder="璇烽�夋嫨" filterable clearable
- @change="getProductModel">
- <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
- </el-select>
+ <el-input v-model="productForm.specificationModel"
+ placeholder="鐐瑰嚮閫夋嫨"
+ readonly
+ @click="showProductSelectDialog = true"
+ style="cursor:pointer" />
</el-form-item>
</el-col>
</el-row>
@@ -305,6 +309,13 @@
<el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="mathNum">
<el-option v-for="dict in tax_rate" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="浠舵暟锛�" prop="packagingSpec">
+ <el-input v-model="productForm.packagingSpec" clearable />
</el-form-item>
</el-col>
</el-row>
@@ -372,6 +383,9 @@
</el-row>-->
</el-form>
</FormDialog>
+ <ProductSelectDialog v-model="showProductSelectDialog"
+ @confirm="handleProductSelect"
+ single />
<FileList v-if="fileListDialogVisible" v-model:visible="fileListDialogVisible" record-type="purchase_ledger"
:record-id="recordId" />
<Detail ref="detailRef" />
@@ -445,6 +459,7 @@
const fileList = ref([]);
import useUserStore from "@/store/modules/user";
import { modelList, productTreeList } from "@/api/basicData/product.js";
+import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
import dayjs from "dayjs";
import FileUpload from "@/components/AttachmentUpload/file/index.vue";
import { tableAmountFormatter, formatDecimal, buildAmountSummaryFormat } from '@/utils/numberFormat';
@@ -474,11 +489,17 @@
return typeMap[status] || "";
};
+// 鍏ュ簱鐘舵�佹樉绀猴細鍏ュ簱涓篃灞曠ず涓哄畬鍏ㄥ叆搴�
+const formatStockInStatus = status => {
+ if (status === "鍏ュ簱涓�") return "瀹屽叏鍏ュ簱";
+ return status;
+};
+
// 鑾峰彇鍏ュ簱鐘舵�佹爣绛剧被鍨�
const getStockInStatusType = status => {
const typeMap = {
"寰呭叆搴�": "info", // 寰呭叆搴� - 鐏拌壊
- "鍏ュ簱涓�": "warning", // 鍏ュ簱涓� - 姗欒壊
+ "鍏ュ簱涓�": "success", // 鍏ュ簱涓� - 缁胯壊
"瀹屽叏鍏ュ簱": "success", // 瀹屽叏鍏ュ簱 - 缁胯壊
};
return typeMap[status] || "";
@@ -648,6 +669,7 @@
// 浜у搧琛ㄥ崟寮规鏁版嵁
const productFormVisible = ref(false);
+const showProductSelectDialog = ref(false);
const productOperationType = ref("");
const productOperationIndex = ref("");
const currentId = ref("");
@@ -658,6 +680,7 @@
productModelId: "",
specificationModel: "",
unit: "",
+ packagingSpec: "",
quantity: "",
taxInclusiveUnitPrice: "",
taxRate: "",
@@ -668,8 +691,8 @@
isChecked: false,
},
productRules: {
- productId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- productModelId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ productCategory: [{ required: true, message: "璇烽�夋嫨浜у搧澶х被", trigger: "change" }],
+ productModelId: [{ required: true, message: "璇烽�夋嫨瑙勬牸鍨嬪彿", trigger: "change" }],
unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
taxInclusiveUnitPrice: [
@@ -1257,6 +1280,19 @@
await nextTick();
}
};
+
+// ProductSelectDialog 閫変腑鍥炶皟
+const handleProductSelect = (products) => {
+ if (!products || !products.length) return;
+ const p = products[0];
+ productForm.value.productId = p.productId;
+ productForm.value.productCategory = p.productName || '';
+ productForm.value.productModelId = p.id;
+ productForm.value.specificationModel = p.model || '';
+ productForm.value.unit = p.unit || '';
+ showProductSelectDialog.value = false;
+};
+
const getProductOptions = () => {
return productTreeList().then(res => {
productOptions.value = convertIdToValue(res);
--
Gitblit v1.9.3