From 396867766893a5213001bd44f9ff2eafe179afcc Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期六, 14 三月 2026 15:31:55 +0800
Subject: [PATCH] 原料检测
---
src/views/qualityManagement/rawMaterial/components/formDia.vue | 97 ++++++++++++++++++++++++++++--------------------
1 files changed, 57 insertions(+), 40 deletions(-)
diff --git a/src/views/qualityManagement/rawMaterial/components/formDia.vue b/src/views/qualityManagement/rawMaterial/components/formDia.vue
index 868ef66..c8ed6c6 100644
--- a/src/views/qualityManagement/rawMaterial/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterial/components/formDia.vue
@@ -27,9 +27,10 @@
<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'"
+ <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-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id"/>
</el-select>
</el-form-item>
</el-col>
@@ -59,16 +60,16 @@
<el-col :span="12">
<el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
<el-select v-model="form.checkResult">
- <el-option label="鍚堟牸" :value="1"/>
- <el-option label="涓嶅悎鏍�" :value="0"/>
+ <el-option label="鍚堟牸" :value="0"/>
+ <el-option label="涓嶅悎鏍�" :value="1"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="妫�楠屽憳锛�" prop="checkName">
- <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable filterable style="width: 100%">
+ <el-form-item label="妫�楠屽憳锛�" prop="checkUserName">
+ <el-select v-model="form.checkUserName" placeholder="璇烽�夋嫨" clearable filterable style="width: 100%">
<el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
:value="item.nickName"/>
</el-select>
@@ -98,6 +99,7 @@
:column="tableColumn"
:tableData="tableData"
:tableLoading="tableLoading"
+ :is-show-pagination="false"
height="400"
>
<template #slot="{ row }">
@@ -112,7 +114,7 @@
</template>
</el-dialog>
- <item-select v-model="isShowItems" @confirm="handleItemSelect" />
+ <item-select v-model="isShowItems" @confirm="handleItemSelect"/>
</div>
</template>
@@ -122,7 +124,7 @@
import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
import {userListNoPage} from "@/api/system/user.js";
-import {createRawMaterial, updateRawMaterial} from "@/api/qualityManagement/rawMaterial.js";
+import {createRawMaterial, findRawMaterialDetail, updateRawMaterial} from "@/api/qualityManagement/rawMaterial.js";
import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
const {proxy} = getCurrentInstance()
@@ -136,34 +138,30 @@
form: {
checkTime: "",
supplier: "",
- checkName: "",
productName: "",
productId: "",
productModelId: "",
model: "",
batchNo: "",
- unit: "",
- quantity: "",
- checkCompany: "",
+ checkType: "",
checkResult: "",
+ unit: "",
+ checkUserName: "",
},
rules: {
checkTime: [{required: true, message: "璇疯緭鍏�", trigger: "blur"},],
- supplier: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
- checkName: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
+ checkUserName: [{required: false, message: "璇烽�夋嫨妫�楠屽憳", trigger: "blur"}],
productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
productModelId: [{required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change"}],
batchNo: [{required: false, message: "璇疯緭鍏ユ壒娆�", trigger: "blur"}],
- unit: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
- quantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
- checkCompany: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
+ checkType: [{required: false, message: "璇烽�夋嫨妫�楠岀被鍨�", trigger: "blur"}],
checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
},
});
const tableColumn = ref([
{
- label: "鎸囨爣",
- prop: "parameterItem",
+ label: "妫�娴嬮」鐩�",
+ prop: "name",
},
{
label: "鍗曚綅",
@@ -175,7 +173,7 @@
},
{
label: "鍐呮帶鍊�",
- prop: "controlValue",
+ prop: "internalControl",
},
{
label: "鍖栭獙鍊�",
@@ -183,6 +181,20 @@
dataType: 'slot',
slot: 'slot',
},
+ {
+ dataType: 'action',
+ label: '鎿嶄綔',
+ align: 'center',
+ fixed: 'right',
+ width: 140,
+ operation: [
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ clickFun: (row) => handleDelete(row.id),
+ }
+ ]
+ }
]);
const tableData = ref([]);
const tableLoading = ref(false);
@@ -191,7 +203,6 @@
const userList = ref([]);
const productOptions = ref([]);
const currentProductId = ref(0);
-const testStandardOptions = ref([]); // 鎸囨爣閫夋嫨涓嬫媺妗嗘暟鎹�
const modelOptions = ref([]);
// 鎵撳紑寮规
@@ -201,31 +212,29 @@
userList.value = res.data || [];
})
// 鍏堥噸缃〃鍗曟暟鎹紙淇濇寔瀛楁瀹屾暣锛岄伩鍏嶅脊绐楅娆℃覆鏌撴椂瑙﹀彂蹇呭~绾㈡鈥滈棯涓�涓嬧�濓級
- form.value = {
+ form.value = {
checkTime: "",
supplier: "",
- checkName: "",
productName: "",
productId: "",
productModelId: "",
model: "",
batchNo: "",
- unit: "",
- quantity: "",
- checkCompany: "",
+ checkType: "",
checkResult: "",
+ unit: "",
+ checkUserName: "",
}
- testStandardOptions.value = [];
tableData.value = [];
// 鍏堢‘淇濅骇鍝佹爲宸插姞杞斤紝鍚﹀垯缂栬緫鏃朵骇鍝�/瑙勬牸鍨嬪彿鏃犳硶鍙嶆樉
await getProductOptions();
if (operationType.value === 'edit') {
- form.value = {...row}
+ await fetchData(row.id);
currentProductId.value = row.productId || 0
// 鍏抽敭锛氱紪杈戞椂鍔犺浇瑙勬牸鍨嬪彿涓嬫媺閫夐」锛屾墠鑳藉弽鏄� productModelId
if (currentProductId.value) {
try {
- const res = await modelList({ id: currentProductId.value });
+ const res = await modelList({id: currentProductId.value});
modelOptions.value = res || [];
// 鍚屾鍥炲~ model / unit锛堟湁浜涙帴鍙h繑鍥炵殑 row 閲屽彲鑳芥病甯﹀叏锛�
if (form.value.productModelId) {
@@ -261,7 +270,7 @@
modelOptions.value = [];
currentProductId.value = value
form.value.productName = findNodeById(productOptions.value, value);
- modelList({ id: value }).then((res) => {
+ modelList({id: value}).then((res) => {
modelOptions.value = res;
})
if (currentProductId.value) {
@@ -270,6 +279,8 @@
};
const handleItemSelect = (value) => {
+ // 杩囨护宸插瓨鍦ㄧ殑鎸囨爣
+ value = value.filter(item => !tableData.value.some(existingItem => existingItem.id === item.id));
tableData.value.push(...value)
}
@@ -312,13 +323,7 @@
const submitForm = () => {
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}
+ const data = {...form.value, qualityInspectItem: tableData.value}
if (operationType.value === "add") {
createRawMaterial(data).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
@@ -336,7 +341,6 @@
const getList = () => {
if (!currentProductId.value) {
- testStandardOptions.value = [];
tableData.value = [];
return;
}
@@ -358,10 +362,23 @@
const closeDia = () => {
proxy.resetForm("formRef");
tableData.value = [];
- testStandardOptions.value = [];
dialogFormVisible.value = false;
emit('close')
};
+
+const handleDelete = (id) => {
+ tableData.value = tableData.value.filter(item => item.id !== id);
+}
+
+const fetchData = (id) => {
+ tableLoading.value = true;
+ findRawMaterialDetail(id).then(res => {
+ form.value = res.data;
+ tableData.value = res.data.qualityInspectItem;
+ }).finally(() => {
+ tableLoading.value = false;
+ })
+}
defineExpose({
openDialog,
});
@@ -369,4 +386,4 @@
<style scoped>
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3