From 53499f59c890387d8077ff3a9e81ee18e389e0e8 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 15 四月 2026 15:16:35 +0800
Subject: [PATCH] fix:生产-质量-库存(合格,不合格批号,供应商)
---
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue | 497 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 296 insertions(+), 201 deletions(-)
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index 7ac310a..12f5d71 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -1,26 +1,32 @@
<template>
<div>
<el-dialog
- v-model="dialogFormVisible"
- :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
- width="70%"
- @close="closeDia"
+ v-model="dialogFormVisible"
+ :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
+ width="70%"
+ @close="closeDia"
>
- <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+ <el-form
+ :model="form"
+ label-width="140px"
+ label-position="top"
+ :rules="rules"
+ ref="formRef"
+ >
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="渚涘簲鍟嗭細" prop="supplier">
<el-select
- v-model="form.supplier"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="supplierQuantityDisabled"
+ v-model="form.supplier"
+ placeholder="璇烽�夋嫨"
+ clearable
+ :disabled="supplierQuantityDisabled"
>
<el-option
- v-for="item in supplierList"
- :key="item.id"
- :label="item.supplierName"
- :value="item.supplierName"
+ v-for="item in supplierList"
+ :key="item.id"
+ :label="item.supplierName"
+ :value="item.supplierName"
/>
</el-select>
</el-form-item>
@@ -28,15 +34,15 @@
<el-col :span="12">
<el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
<el-tree-select
- v-model="form.productId"
- placeholder="璇烽�夋嫨"
- clearable
- check-strictly
- @change="getModels"
- :data="productOptions"
- :render-after-expand="false"
- :disabled="operationType === 'edit'"
- style="width: 100%"
+ v-model="form.productId"
+ placeholder="璇烽�夋嫨"
+ clearable
+ check-strictly
+ @change="getModels"
+ :data="productOptions"
+ :render-after-expand="false"
+ :disabled="operationType === 'edit'"
+ style="width: 100%"
/>
</el-form-item>
</el-col>
@@ -44,9 +50,21 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
- <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'edit'"
- filterable readonly @change="handleChangeModel">
- <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
+ <el-select
+ v-model="form.productModelId"
+ placeholder="璇烽�夋嫨"
+ clearable
+ :disabled="operationType === 'edit'"
+ filterable
+ readonly
+ @change="handleChangeModel"
+ >
+ <el-option
+ v-for="item in modelOptions"
+ :key="item.id"
+ :label="item.model"
+ :value="item.id"
+ />
</el-select>
</el-form-item>
</el-col>
@@ -72,34 +90,49 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍗曚綅锛�" prop="unit">
- <el-input v-model="form.unit" disabled/>
+ <el-input v-model="form.unit" disabled />
</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" :disabled="supplierQuantityDisabled"/>
+ <el-input-number
+ :step="0.01"
+ :min="0"
+ style="width: 100%"
+ v-model="form.quantity"
+ placeholder="璇疯緭鍏�"
+ clearable
+ :precision="2"
+ :disabled="supplierQuantityDisabled"
+ />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="妫�鍝佹暟閲忥細" prop="inspectedQuantity">
- <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.inspectedQuantity" placeholder="璇疯緭鍏ワ紝涓嶅ぇ浜庢�绘暟閲�"
- clearable :precision="2" :disabled="supplierQuantityDisabled"/>
+ <el-input-number
+ :step="0.01"
+ :min="0"
+ style="width: 100%"
+ v-model="form.inspectedQuantity"
+ placeholder="璇疯緭鍏ワ紝涓嶅ぇ浜庢�绘暟閲�"
+ clearable
+ :precision="2"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鐢熶骇鏃ユ湡锛�" prop="productionDate">
<el-date-picker
- v-model="form.productionDate"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- clearable
- style="width: 100%"
- @change="calculateValidityDate"
+ v-model="form.productionDate"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD"
+ clearable
+ style="width: 100%"
+ @change="calculateValidityDate"
/>
</el-form-item>
</el-col>
@@ -118,7 +151,7 @@
</el-col> -->
<el-col :span="12">
<el-form-item label="UID鐮侊細" prop="uidNo">
- <el-input v-model="form.uidNo" disabled/>
+ <el-input v-model="form.uidNo" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -135,76 +168,93 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
- <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
+ <el-input
+ v-model="form.checkCompany"
+ placeholder="璇疯緭鍏�"
+ clearable
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
<el-select v-model="form.checkResult">
- <el-option label="鍚堟牸" value="鍚堟牸"/>
- <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"/>
+ <el-option label="鍚堟牸" value="鍚堟牸" />
+ <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="妫�楠屽憳锛�" prop="checkName">
- <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
- <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+ <el-select
+ v-model="form.checkName"
+ placeholder="璇烽�夋嫨"
+ clearable
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in userList"
+ :key="item.nickName"
+ :label="item.nickName"
+ :value="item.nickName"
+ />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
<el-date-picker
- v-model="form.checkTime"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- clearable
- style="width: 100%"
+ v-model="form.checkTime"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD"
+ clearable
+ style="width: 100%"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
-<!-- <div style="margin-bottom: 10px;text-align: right">-->
-<!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
-<!-- </div>-->
+ <!-- <div style="margin-bottom: 10px;text-align: right">-->
+ <!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
+ <!-- </div>-->
<PIMTable
- rowKey="id"
- :column="tableColumn"
- :tableData="tableData"
- :tableLoading="tableLoading"
- height="400"
+ rowKey="id"
+ :column="tableColumn"
+ :tableData="tableData"
+ :tableLoading="tableLoading"
+ height="400"
>
<template #instrument="{ row }">
<el-select
- v-model="row.instrument"
- placeholder="璇烽�夋嫨鎴栬緭鍏�"
- filterable
- allow-create
- default-first-option
- clearable
- style="width: 100%"
- @change="handleInstrumentChange(row)"
+ v-model="row.instrument"
+ placeholder="璇烽�夋嫨鎴栬緭鍏�"
+ filterable
+ allow-create
+ default-first-option
+ clearable
+ style="width: 100%"
+ @change="handleInstrumentChange(row)"
>
<el-option label="鐩祴" value="鐩祴" />
<el-option
- v-for="item in deviceList"
- :key="item.id"
- :label="item.deviceName + (item.deviceModel ? ' / ' + item.deviceModel : '')"
- :value="item.deviceName"
+ v-for="item in deviceList"
+ :key="item.id"
+ :label="
+ item.deviceName +
+ (item.deviceModel ? ' / ' + item.deviceModel : '')
+ "
+ :value="item.deviceName"
/>
</el-select>
</template>
<template #deviceStatus="{ row }">
<el-select
- v-model="row.deviceStatus"
- placeholder="璇烽�夋嫨"
- default-first-option
- clearable
- style="width: 100%"
+ v-model="row.deviceStatus"
+ placeholder="璇烽�夋嫨"
+ default-first-option
+ clearable
+ style="width: 100%"
>
<el-option label="姝e父" value="姝e父" />
<el-option label="鍋滄満" value="鍋滄満" />
@@ -217,7 +267,13 @@
<el-input v-model="row.result" placeholder="璇疯緭鍏�" clearable />
</template>
<template #resultJudgment="{ row }">
- <el-select v-model="row.resultJudgment" placeholder="璇烽�夋嫨" clearable style="width: 100%" @change="changeResult">
+ <el-select
+ v-model="row.resultJudgment"
+ placeholder="璇烽�夋嫨"
+ clearable
+ style="width: 100%"
+ @change="changeResult"
+ >
<el-option label="鍚堟牸" value="鍚堟牸" />
<el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
<el-option label="/" value="/" />
@@ -235,24 +291,40 @@
</template>
<script setup>
-import {ref, reactive, toRefs, computed, getCurrentInstance, nextTick} from "vue";
-import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
-import {modelList, productTreeList} from "@/api/basicData/product.js";
-import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
-import {qualityInspectParamDel, qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
-import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
-import {deviceList as qualityInspectParamDeviceList} from "@/api/energyManagement/index.js";
-import {userListNoPage} from "@/api/system/user.js";
+import {
+ ref,
+ reactive,
+ toRefs,
+ computed,
+ getCurrentInstance,
+ nextTick,
+} from "vue";
+import { getOptions } from "@/api/procurementManagement/procurementLedger.js";
+import { modelList, productTreeList } from "@/api/basicData/product.js";
+import {
+ qualityInspectAdd,
+ qualityInspectUpdate,
+} from "@/api/qualityManagement/rawMaterialInspection.js";
+import {
+ qualityInspectParamDel,
+ qualityInspectParamInfo,
+} from "@/api/qualityManagement/qualityInspectParam.js";
+import {
+ qualityInspectDetailByProductId,
+ getQualityTestStandardParamByTestStandardId,
+} from "@/api/qualityManagement/metricMaintenance.js";
+import { deviceList as qualityInspectParamDeviceList } from "@/api/energyManagement/index.js";
+import { userListNoPage } from "@/api/system/user.js";
-const {proxy} = getCurrentInstance()
-const emit = defineEmits(['close'])
+const { proxy } = getCurrentInstance();
+const emit = defineEmits(["close"]);
const dialogFormVisible = ref(false);
-const operationType = ref('')
+const operationType = ref("");
const validateBatchNo = (rule, value, callback) => {
- if (value === undefined || value === null || String(value).trim() === '') {
- callback(new Error('璇疯緭鍏ユ壒鍙�'));
+ if (value === undefined || value === null || String(value).trim() === "") {
+ callback(new Error("璇疯緭鍏ユ壒鍙�"));
return;
}
callback();
@@ -280,19 +352,23 @@
checkResult: "",
},
rules: {
- checkTime: [{required: true, message: "璇疯緭鍏�", trigger: "blur"},],
- supplier: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
- checkName: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
- productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
- productModelId: [{required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change"}],
- testStandardId: [{required: false, message: "璇烽�夋嫨鎸囨爣", trigger: "change"}],
- unit: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
- quantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
+ checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ supplier: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+ productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ productModelId: [
+ { required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change" },
+ ],
+ testStandardId: [
+ { required: false, message: "璇烽�夋嫨鎸囨爣", trigger: "change" },
+ ],
+ unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+ quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
inspectedQuantity: [
- {required: true, message: "璇疯緭鍏ユ鍝佹暟閲�", trigger: "blur"},
+ { required: true, message: "璇疯緭鍏ユ鍝佹暟閲�", trigger: "blur" },
{
validator: (rule, value, callback) => {
- if (value !== '' && value !== null && value !== undefined) {
+ if (value !== "" && value !== null && value !== undefined) {
const qty = Number(form.value.quantity);
const inspectedQty = Number(value);
if (!isNaN(qty) && !isNaN(inspectedQty) && inspectedQty > qty) {
@@ -304,63 +380,65 @@
callback();
}
},
- trigger: "blur"
- }
+ trigger: "blur",
+ },
],
- checkCompany: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
+ checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
batchNo: [{ required: true, validator: validateBatchNo, trigger: "blur" }],
- checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
+ checkResult: [
+ { required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change" },
+ ],
},
});
const tableColumn = ref([
{
label: "妫�娴嬮」鐩�",
prop: "parameterItem",
- width: 150
+ width: 150,
},
{
label: "鏍囧噯瑕佹眰",
prop: "standardValue",
- width: 180
+ width: 180,
},
{
label: "鍗曚綅",
prop: "unit",
- width: 70
+ width: 70,
},
{
label: "妫�娴嬪櫒鍏�",
prop: "instrument",
- dataType: 'slot',
- slot: 'instrument',
- width: 220
+ dataType: "slot",
+ slot: "instrument",
+ width: 220,
},
{
label: "璁惧鐘舵��",
prop: "deviceStatus",
- dataType: 'slot',
- slot: 'deviceStatus',
- width: 120
+ dataType: "slot",
+ slot: "deviceStatus",
+ width: 120,
},
{
label: "妫�娴嬬粨鏋�",
prop: "result",
- dataType: 'slot',
- slot: 'result',
- width: 150
+ dataType: "slot",
+ slot: "result",
+ width: 150,
},
{
label: "缁撴灉鍒ゆ柇",
prop: "resultJudgment",
- dataType: 'slot',
- slot: 'resultJudgment',
- width: 120
+ dataType: "slot",
+ slot: "resultJudgment",
+ width: 120,
},
]);
const tableData = ref([]);
const tableLoading = ref(false);
-const {form, rules} = toRefs(data);
+const { form, rules } = toRefs(data);
const supplierList = ref([]);
const productOptions = ref([]);
const currentProductId = ref(0);
@@ -393,7 +471,7 @@
// 鍔犺浇璁惧鍙拌处鍒楄〃
loadDeviceList();
// 鍏堥噸缃〃鍗曟暟鎹紙淇濇寔瀛楁瀹屾暣锛岄伩鍏嶅脊绐楅娆℃覆鏌撴椂瑙﹀彂蹇呭~绾㈡鈥滈棯涓�涓嬧�濓級
- form.value = {
+ form.value = {
checkTime: "",
supplier: "",
checkName: "",
@@ -412,16 +490,16 @@
validityDate: "",
checkCompany: "",
checkResult: "",
- }
+ };
testStandardOptions.value = [];
tableData.value = [];
// 鍏堢‘淇濅骇鍝佹爲宸插姞杞斤紝鍚﹀垯缂栬緫鏃朵骇鍝�/瑙勬牸鍨嬪彿鏃犳硶鍙嶆樉
await getProductOptions();
- if (operationType.value === 'edit') {
+ if (operationType.value === "edit") {
// 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
const savedTestStandardId = row.testStandardId;
- form.value = {...row}
- currentProductId.value = row.productId || 0
+ form.value = { ...row };
+ currentProductId.value = row.productId || 0;
// 鍏抽敭锛氱紪杈戞椂鍔犺浇瑙勬牸鍨嬪彿涓嬫媺閫夐」锛屾墠鑳藉弽鏄� productModelId
if (currentProductId.value) {
try {
@@ -441,9 +519,9 @@
// 鍏堝姞杞芥寚鏍囬�夐」
let params = {
productId: currentProductId.value,
- inspectType: 0
- }
- qualityInspectDetailByProductId(params).then(res => {
+ inspectType: 0,
+ };
+ qualityInspectDetailByProductId(params).then((res) => {
testStandardOptions.value = res.data || [];
// 浣跨敤 nextTick 鍜� setTimeout 纭繚閫夐」宸茬粡娓叉煋鍒� DOM
nextTick(() => {
@@ -451,8 +529,10 @@
// 濡傛灉缂栬緫鏁版嵁涓湁 testStandardId锛屽垯璁剧疆骞跺姞杞藉搴旂殑鍙傛暟
if (savedTestStandardId) {
// 纭繚绫诲瀷鍖归厤锛坕tem.id 鍙兘鏄暟瀛楁垨瀛楃涓诧級
- const matchedOption = testStandardOptions.value.find(item =>
- item.id == savedTestStandardId || String(item.id) === String(savedTestStandardId)
+ const matchedOption = testStandardOptions.value.find(
+ (item) =>
+ item.id == savedTestStandardId ||
+ String(item.id) === String(savedTestStandardId)
);
if (matchedOption) {
// 纭繚浣跨敤鍖归厤椤圭殑 id锛堜繚鎸佺被鍨嬩竴鑷达級
@@ -461,7 +541,12 @@
getQualityInspectParamList(row.id);
} else {
// 濡傛灉鎵句笉鍒板尮閰嶉」锛屽皾璇曠洿鎺ヤ娇鐢ㄥ師鍊�
- console.warn('鏈壘鍒板尮閰嶇殑鎸囨爣閫夐」锛宼estStandardId:', savedTestStandardId, '鍙敤閫夐」:', testStandardOptions.value);
+ console.warn(
+ "鏈壘鍒板尮閰嶇殑鎸囨爣閫夐」锛宼estStandardId:",
+ savedTestStandardId,
+ "鍙敤閫夐」:",
+ testStandardOptions.value
+ );
form.value.testStandardId = savedTestStandardId;
getQualityInspectParamList(row.id);
}
@@ -481,7 +566,7 @@
nextTick(() => {
proxy.$refs?.formRef?.clearValidate?.();
});
-}
+};
const getProductOptions = () => {
return productTreeList().then((res) => {
productOptions.value = convertIdToValue(res);
@@ -494,25 +579,28 @@
form.value.uidNo = undefined;
form.value.batchNo = "";
modelOptions.value = [];
- currentProductId.value = value
+ currentProductId.value = value;
form.value.productName = findNodeById(productOptions.value, value);
modelList({ id: value }).then((res) => {
modelOptions.value = res;
- })
+ });
if (currentProductId.value) {
getList();
}
};
const handleChangeModel = (value) => {
- form.value.model = modelOptions.value.find(item => item.id == value)?.model || '';
- form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || '';
- form.value.uidNo = modelOptions.value.find(item => item.id == value)?.uidNo || '';
+ form.value.model =
+ modelOptions.value.find((item) => item.id == value)?.model || "";
+ form.value.unit =
+ modelOptions.value.find((item) => item.id == value)?.unit || "";
+ form.value.uidNo =
+ modelOptions.value.find((item) => item.id == value)?.uidNo || "";
// 閫夋嫨瑙勬牸鍨嬪彿鍚庯紝濡傛灉宸叉湁鐢熶骇鏃ユ湡鍒欓噸鏂拌绠楁湁鏁堟湡
if (form.value.productionDate) {
calculateValidityDate();
}
-}
+};
const findNodeById = (nodes, productId) => {
for (let i = 0; i < nodes.length; i++) {
@@ -531,7 +619,7 @@
function convertIdToValue(data) {
return data.map((item) => {
- const {id, children, ...rest} = item;
+ const { id, children, ...rest } = item;
const newItem = {
...rest,
value: id, // 灏� id 鏀逛负 value
@@ -546,29 +634,29 @@
// 鎻愪氦浜у搧琛ㄥ崟
const submitForm = () => {
- proxy.$refs.formRef.validate(valid => {
+ proxy.$refs.formRef.validate((valid) => {
if (valid) {
- form.value.inspectType = 0
- if (operationType.value === "add") {
- tableData.value.forEach((item) => {
- delete item.id
- })
- }
- const data = {...form.value, qualityInspectParams: tableData.value}
+ form.value.inspectType = 0;
if (operationType.value === "add") {
- qualityInspectAdd(data).then(res => {
+ tableData.value.forEach((item) => {
+ delete item.id;
+ });
+ }
+ const data = { ...form.value, qualityInspectParams: tableData.value };
+ if (operationType.value === "add") {
+ qualityInspectAdd(data).then((res) => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
- })
+ });
} else {
- qualityInspectUpdate(data).then(res => {
+ qualityInspectUpdate(data).then((res) => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
- })
+ });
}
}
- })
-}
+ });
+};
const getList = () => {
if (!currentProductId.value) {
@@ -578,17 +666,17 @@
}
let params = {
productId: currentProductId.value,
- inspectType: 0
- }
- qualityInspectDetailByProductId(params).then(res => {
+ inspectType: 0,
+ };
+ qualityInspectDetailByProductId(params).then((res) => {
// 淇濆瓨涓嬫媺妗嗛�夐」鏁版嵁
testStandardOptions.value = res.data || [];
// 娓呯┖琛ㄦ牸鏁版嵁锛岀瓑寰呯敤鎴烽�夋嫨鎸囨爣
tableData.value = [];
// 娓呯┖鎸囨爣閫夋嫨
- form.value.testStandardId = '';
- })
-}
+ form.value.testStandardId = "";
+ });
+};
// 鎸囨爣閫夋嫨鍙樺寲澶勭悊
const handleTestStandardChange = (testStandardId) => {
@@ -597,25 +685,28 @@
return;
}
tableLoading.value = true;
- getQualityTestStandardParamByTestStandardId(testStandardId).then(res => {
- tableData.value = res.data || [];
- }).catch(error => {
- console.error('鑾峰彇鏍囧噯鍙傛暟澶辫触:', error);
- tableData.value = [];
- }).finally(() => {
- tableLoading.value = false;
- })
-}
+ getQualityTestStandardParamByTestStandardId(testStandardId)
+ .then((res) => {
+ tableData.value = res.data || [];
+ })
+ .catch((error) => {
+ console.error("鑾峰彇鏍囧噯鍙傛暟澶辫触:", error);
+ tableData.value = [];
+ })
+ .finally(() => {
+ tableLoading.value = false;
+ });
+};
const getQualityInspectParamList = (id) => {
- qualityInspectParamInfo(id).then(res => {
- tableData.value = (res.data || []).map(item => ({...item}));
- })
-}
+ qualityInspectParamInfo(id).then((res) => {
+ tableData.value = (res.data || []).map((item) => ({ ...item }));
+ });
+};
// 鑾峰彇璁惧鍙拌处鍒楄〃
const loadDeviceList = () => {
- qualityInspectParamDeviceList().then(res => {
+ qualityInspectParamDeviceList().then((res) => {
deviceList.value = res.data || [];
});
};
@@ -623,49 +714,55 @@
// 璁惧鐘舵�侀鑹叉槧灏�
const getDeviceStatusType = (status) => {
const map = {
- '姝e父': 'success',
- '杩愯': 'primary',
- '鍋滄満': 'warning',
- '缁翠慨': 'danger'
+ 姝e父: "success",
+ 杩愯: "primary",
+ 鍋滄満: "warning",
+ 缁翠慨: "danger",
};
- return map[status] || 'info';
+ return map[status] || "info";
};
// 妫�娴嬪櫒鍏峰彉鍖栨椂锛岃嚜鍔ㄥ~鍏呰澶囩姸鎬�
const handleInstrumentChange = (row) => {
- if (row.instrument === '鐩祴') {
+ if (row.instrument === "鐩祴") {
row.deviceId = null;
- row.deviceName = '鐩祴';
- row.deviceStatus = '';
+ row.deviceName = "鐩祴";
+ row.deviceStatus = "";
return;
}
- const device = deviceList.value.find(d => d.deviceName === row.instrument);
+ const device = deviceList.value.find((d) => d.deviceName === row.instrument);
if (device) {
row.deviceId = device.id;
row.deviceName = device.deviceName;
- row.deviceStatus = device.status || '';
+ row.deviceStatus = device.status || "";
} else {
row.deviceId = null;
- row.deviceName = row.instrument || '';
- row.deviceStatus = '';
+ row.deviceName = row.instrument || "";
+ row.deviceStatus = "";
}
};
// 璁$畻鏈夋晥鏈燂紙鐢熶骇鏃ユ湡 + 瑙勬牸鍨嬪彿涓殑鏈夋晥鏈燂級
const calculateValidityDate = async () => {
if (!form.value.productionDate) {
- form.value.validityDate = '';
+ form.value.validityDate = "";
return;
}
// 鑾峰彇瑙勬牸鍨嬪彿鐨勬湁鏁堟湡
- const selectedModel = modelOptions.value.find(item => item.id == form.value.productModelId);
+ const selectedModel = modelOptions.value.find(
+ (item) => item.id == form.value.productModelId
+ );
if (selectedModel && selectedModel.validityPeriod) {
const productionDate = new Date(form.value.productionDate);
const validityPeriod = parseFloat(selectedModel.validityPeriod);
const validityDate = new Date(productionDate);
- validityDate.setFullYear(validityDate.getFullYear() + Math.floor(validityPeriod));
- validityDate.setMonth(validityDate.getMonth() + Math.round((validityPeriod % 1) * 12));
- form.value.validityDate = validityDate.toISOString().split('T')[0];
+ validityDate.setFullYear(
+ validityDate.getFullYear() + Math.floor(validityPeriod)
+ );
+ validityDate.setMonth(
+ validityDate.getMonth() + Math.round((validityPeriod % 1) * 12)
+ );
+ form.value.validityDate = validityDate.toISOString().split("T")[0];
}
};
@@ -674,28 +771,26 @@
proxy.resetForm("formRef");
tableData.value = [];
testStandardOptions.value = [];
- form.value.testStandardId = '';
+ form.value.testStandardId = "";
dialogFormVisible.value = false;
- emit('close')
+ emit("close");
};
// 淇敼妫�娴嬬粨鏋�
const changeResult = () => {
- let result = '鍚堟牸'
- tableData.value.forEach(item => {
- if (item.resultJudgment !== '/') {
- if (item.resultJudgment === '涓嶅悎鏍�') {
- result = '涓嶅悎鏍�'
+ let result = "鍚堟牸";
+ tableData.value.forEach((item) => {
+ if (item.resultJudgment !== "/") {
+ if (item.resultJudgment === "涓嶅悎鏍�") {
+ result = "涓嶅悎鏍�";
}
}
});
- form.value.checkResult = result
+ form.value.checkResult = result;
};
defineExpose({
openDialog,
});
</script>
-<style scoped>
-
-</style>
\ No newline at end of file
+<style scoped></style>
--
Gitblit v1.9.3