From fe916adfc82883aa44cbf6572763cf6b459c9b5e Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 18 七月 2026 11:43:00 +0800
Subject: [PATCH] feat: 添加抽检功能,支持选择是否抽检及输入抽检数量
---
src/views/qualityManagement/processInspection/components/formDia.vue | 46 +++++++++++++++
src/views/qualityManagement/finalInspection/components/formDia.vue | 47 +++++++++++++++
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue | 37 ++++++++++++
3 files changed, 127 insertions(+), 3 deletions(-)
diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 31ba755..e5cd36e 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -97,6 +97,34 @@
</el-row>
<el-row :gutter="30">
<el-col :span="12">
+ <el-form-item label="鏄惁鎶芥锛�"
+ prop="isSampling">
+ <el-radio-group v-model="form.isSampling"
+ class="sampling-radio-group"
+ :disabled="isViewMode"
+ @change="handleSamplingChange">
+ <el-radio-button :label="1">鏄�</el-radio-button>
+ <el-radio-button :label="0">鍚�</el-radio-button>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12"
+ v-if="form.isSampling === 1">
+ <el-form-item label="鎶芥鏁伴噺锛�"
+ prop="samplingQuantity">
+ <el-input-number :step="0.01"
+ :min="0"
+ style="width: 100%"
+ v-model="form.samplingQuantity"
+ placeholder="璇疯緭鍏�"
+ clearable
+ :precision="2"
+ :disabled="isViewMode" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
<el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
<el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable :disabled="isViewMode"/>
</el-form-item>
@@ -184,6 +212,8 @@
qualifiedQuantity: "",
unqualifiedQuantity: "",
checkCompany: "",
+ isSampling: 0,
+ samplingQuantity: "",
},
rules: {
checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -197,6 +227,8 @@
qualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
unqualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+ isSampling: [{ required: true, message: "璇烽�夋嫨鏄惁鎶芥", trigger: "change" }],
+ samplingQuantity: [{ required: true, message: "璇疯緭鍏ユ娊妫�鏁伴噺", trigger: "blur" }],
},
});
const { form, rules } = toRefs(data);
@@ -289,7 +321,7 @@
]);
userList.value = userListsRes.data;
- form.value = {}
+ form.value = { isSampling: 0, samplingQuantity: "" }
testStandardOptions.value = [];
tableData.value = [];
@@ -502,6 +534,15 @@
tableData.value = res.data;
});
}
+// 鏄惁鎶芥鍒囨崲
+const handleSamplingChange = (value) => {
+ if (value !== 1) {
+ form.value.samplingQuantity = "";
+ nextTick(() => {
+ proxy.$refs?.formRef?.clearValidate?.("samplingQuantity");
+ });
+ }
+}
// 鍏抽棴寮规
const closeDia = () => {
proxy.resetForm("formRef");
@@ -517,5 +558,7 @@
</script>
<style scoped>
-
+.sampling-radio-group {
+ height: 32px;
+}
</style>
diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index f28cec2..a02976e 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -130,6 +130,34 @@
</el-row>
<el-row :gutter="30">
<el-col :span="12">
+ <el-form-item label="鏄惁鎶芥锛�"
+ prop="isSampling">
+ <el-radio-group v-model="form.isSampling"
+ class="sampling-radio-group"
+ :disabled="isViewMode"
+ @change="handleSamplingChange">
+ <el-radio-button :label="1">鏄�</el-radio-button>
+ <el-radio-button :label="0">鍚�</el-radio-button>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12"
+ v-if="form.isSampling === 1">
+ <el-form-item label="鎶芥鏁伴噺锛�"
+ prop="samplingQuantity">
+ <el-input-number :step="0.01"
+ :min="0"
+ style="width: 100%"
+ v-model="form.samplingQuantity"
+ placeholder="璇疯緭鍏�"
+ clearable
+ :precision="2"
+ :disabled="isViewMode" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
<el-form-item label="妫�娴嬪崟浣嶏細"
prop="checkCompany">
<el-input v-model="form.checkCompany"
@@ -242,6 +270,8 @@
qualifiedQuantity: "",
unqualifiedQuantity: "",
checkCompany: "",
+ isSampling: 0,
+ samplingQuantity: "",
},
rules: {
checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -255,6 +285,8 @@
qualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
unqualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+ isSampling: [{ required: true, message: "璇烽�夋嫨鏄惁鎶芥", trigger: "change" }],
+ samplingQuantity: [{ required: true, message: "璇疯緭鍏ユ娊妫�鏁伴噺", trigger: "blur" }],
},
});
const userList = ref([]);
@@ -359,6 +391,8 @@
unit: "",
quantity: "",
checkCompany: "",
+ isSampling: 0,
+ samplingQuantity: "",
};
testStandardOptions.value = [];
tableData.value = [];
@@ -607,6 +641,15 @@
tableData.value = res.data;
});
};
+ // 鏄惁鎶芥鍒囨崲
+ const handleSamplingChange = (value) => {
+ if (value !== 1) {
+ form.value.samplingQuantity = "";
+ nextTick(() => {
+ proxy.$refs?.formRef?.clearValidate?.("samplingQuantity");
+ });
+ }
+ };
// 鍏抽棴寮规
const closeDia = () => {
proxy.resetForm("formRef");
@@ -622,4 +665,7 @@
</script>
<style scoped>
+.sampling-radio-group {
+ height: 32px;
+}
</style>
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index b745e9d..9772e17 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -102,6 +102,23 @@
<el-row :gutter="30">
<el-col :span="12">
+ <el-form-item label="鏄惁鎶芥锛�" prop="isSampling">
+ <el-radio-group v-model="form.isSampling" class="sampling-radio-group" :disabled="isViewMode" @change="handleSamplingChange">
+ <el-radio-button :label="1">鏄�</el-radio-button>
+ <el-radio-button :label="0">鍚�</el-radio-button>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12" v-if="form.isSampling === 1">
+ <el-form-item label="鎶芥鏁伴噺锛�" prop="samplingQuantity">
+ <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.samplingQuantity"
+ placeholder="璇疯緭鍏�" clearable :precision="2" :disabled="isViewMode"/>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="30">
+ <el-col :span="12">
<el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
<el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable :disabled="isViewMode"/>
</el-form-item>
@@ -190,6 +207,8 @@
unit: "",
quantity: "",
checkCompany: "",
+ isSampling: 0,
+ samplingQuantity: "",
},
rules: {
checkTime: [{required: true, message: "璇疯緭鍏�", trigger: "blur"},],
@@ -203,6 +222,8 @@
qualifiedQuantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
unqualifiedQuantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
checkCompany: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
+ isSampling: [{required: true, message: "璇烽�夋嫨鏄惁鎶芥", trigger: "change"}],
+ samplingQuantity: [{required: true, message: "璇疯緭鍏ユ娊妫�鏁伴噺", trigger: "blur"}],
},
});
const tableColumn = ref([
@@ -307,6 +328,8 @@
unit: "",
quantity: "",
checkCompany: "",
+ isSampling: 0,
+ samplingQuantity: "",
}
testStandardOptions.value = [];
tableData.value = [];
@@ -531,6 +554,16 @@
}
};
+// 鏄惁鎶芥鍒囨崲
+const handleSamplingChange = (value) => {
+ if (value !== 1) {
+ form.value.samplingQuantity = "";
+ nextTick(() => {
+ proxy.$refs?.formRef?.clearValidate?.("samplingQuantity");
+ });
+ }
+};
+
// 鍏抽棴寮规
const closeDia = () => {
proxy.resetForm("formRef");
@@ -546,5 +579,7 @@
</script>
<style scoped>
-
+.sampling-radio-group {
+ height: 32px;
+}
</style>
--
Gitblit v1.9.3