From 06e19b3a8b87c7fe75fbd3bfb02d1215f4152965 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期四, 03 七月 2025 13:35:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/qualityManagement/metricMaintenance/index.vue | 168 ++++++++++++++++++++++++++++++++++------- src/api/qualityManagement/metricMaintenance.js | 34 ++++++++ 2 files changed, 172 insertions(+), 30 deletions(-) diff --git a/src/api/qualityManagement/metricMaintenance.js b/src/api/qualityManagement/metricMaintenance.js new file mode 100644 index 0000000..8857387 --- /dev/null +++ b/src/api/qualityManagement/metricMaintenance.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +// 鏌ヨ鎸囨爣鍒楄〃 +export function qualityTestStandardListPage(query) { + return request({ + url: '/quality/qualityTestStandard/listPage', + method: 'get', + params: query, + }) +} +// 鏂板鎸囨爣鍒楄〃 +export function qualityTestStandardAdd(query) { + return request({ + url: '/quality/qualityTestStandard/add', + method: 'post', + data: query, + }) +} +// 淇敼鎸囨爣鍒楄〃 +export function qualityTestStandardUpdate(query) { + return request({ + url: '/quality/qualityTestStandard/update', + method: 'post', + data: query, + }) +} +// 鍒犻櫎鎸囨爣鍒楄〃 +export function qualityTestStandardDel(query) { + return request({ + url: '/quality/qualityTestStandard/del', + method: 'delete', + data: query, + }) +} \ No newline at end of file diff --git a/src/views/qualityManagement/metricMaintenance/index.vue b/src/views/qualityManagement/metricMaintenance/index.vue index 908c37e..bdc672d 100644 --- a/src/views/qualityManagement/metricMaintenance/index.vue +++ b/src/views/qualityManagement/metricMaintenance/index.vue @@ -51,7 +51,7 @@ <el-button type="primary" @click="openModelDia('add')"> 鏂板妫�娴嬫寚鏍� </el-button> - <ImportExcel @uploadSuccess="getModelList" /> + <el-button @click="handleOut">瀵煎嚭</el-button> <el-button type="danger" @click="handleDelete" @@ -73,15 +73,85 @@ :total="page.total" ></PIMTable> </div> + <el-dialog + v-model="modelDia" + title="妫�娴嬫寚鏍�" + width="400px" + @close="closeModelDia" + > + <el-form + :model="modelForm" + label-width="140px" + label-position="top" + :rules="modelRules" + ref="modelFormRef" + > + <el-row> + <el-col :span="24"> + <el-form-item label="鎸囨爣锛�" prop="parameterItem"> + <el-input + v-model="modelForm.parameterItem" + placeholder="璇疯緭鍏ユ寚鏍�" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鍗曚綅锛�" prop="unit"> + <el-input + v-model="modelForm.unit" + placeholder="璇疯緭鍏ュ崟浣�" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鏍囧噯鍊硷細" prop="standardValue"> + <el-input + v-model="modelForm.standardValue" + placeholder="璇疯緭鍏ユ爣鍑嗗��" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鍐呮帶鍊硷細" prop="controlValue"> + <el-input + v-model="modelForm.controlValue" + placeholder="璇疯緭鍏ュ唴鎺у��" + clearable + /> + </el-form-item> + </el-col> + </el-row> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="submitModelForm">纭</el-button> + <el-button @click="closeModelDia">鍙栨秷</el-button> + </div> + </template> + </el-dialog> </div> </template> <script setup> import {ref} from "vue"; -import {delProductModel, modelListPage, productTreeList} from "@/api/basicData/product.js"; +import {addOrEditProductModel, delProductModel, modelListPage, productTreeList} from "@/api/basicData/product.js"; import ImportExcel from "@/views/basicData/product/ImportExcel/index.vue"; import {ElMessageBox} from "element-plus"; - +import { + qualityTestStandardAdd, qualityTestStandardDel, + qualityTestStandardListPage, + qualityTestStandardUpdate +} from "@/api/qualityManagement/metricMaintenance.js"; +const { proxy } = getCurrentInstance(); // 鏍� const search = ref(""); const treeLoad = ref(false); @@ -107,11 +177,11 @@ }, { label: "鏍囧噯鍊�", - prop: "unit", + prop: "standardValue", }, { label: "鍐呮帶鍊�", - prop: "unit", + prop: "controlValue", }, { dataType: "action", @@ -128,41 +198,38 @@ ], }, ]); +const selectedRows = ref([]); // 鎸囨爣寮规 const modelDia = ref(false); const modelOperationType = ref(""); const data = reactive({ - form: { - productName: "", - }, - rules: { - productName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - }, modelForm: { - model: "", + parameterItem: "", unit: "", + standardValue: "", + controlValue: "", }, modelRules: { - model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + parameterItem: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + standardValue: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + controlValue: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], }, }); -const { form, rules, modelForm, modelRules } = toRefs(data); +const { modelForm, modelRules } = toRefs(data); // 鏌ヨ浜у搧鏍� const getProductTreeList = () => { treeLoad.value = true; - productTreeList() - .then((res) => { - list.value = res; - list.value.forEach((a) => { - expandedKeys.value.push(a.label); - }); - treeLoad.value = false; - }) - .catch((err) => { - treeLoad.value = false; - }); + productTreeList().then((res) => { + list.value = res; + list.value.forEach((a) => { + expandedKeys.value.push(a.label); + }); + treeLoad.value = false; + }).catch((err) => { + treeLoad.value = false; + }); }; // 杩囨护浜у搧鏍� const searchFilter = () => { @@ -187,13 +254,13 @@ }; const getModelList = () => { tableLoading.value = true; - modelListPage({ - id: currentId.value, + qualityTestStandardListPage({ + productId: currentId.value, current: page.current, size: page.size, }).then((res) => { - tableData.value = res.records; - page.total = res.total; + tableData.value = res.data.records; + page.total = res.data.total; tableLoading.value = false; }); }; @@ -244,6 +311,20 @@ modelForm.value = { ...data }; } }; +// 瀵煎嚭 +const handleOut = () => { + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + proxy.download("/quality/qualityTestStandard/export", {}, "妫�娴嬫寚鏍�.xlsx"); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); +}; // 鍒犻櫎鎸囨爣 const handleDelete = () => { let ids = []; @@ -259,7 +340,7 @@ type: "warning", }).then(() => { tableLoading.value = true; - delProductModel(ids).then((res) => { + qualityTestStandardDel(ids).then((res) => { proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); getModelList(); }).finally(() => { @@ -269,6 +350,33 @@ proxy.$modal.msg("宸插彇娑�"); }); }; + +// 鎻愪氦瑙勬牸鍨嬪彿淇敼 +const submitModelForm = () => { + proxy.$refs.modelFormRef.validate((valid) => { + if (valid) { + modelForm.value.productId = Number(currentId.value); + if(modelOperationType.value === 'add') { + qualityTestStandardAdd(modelForm.value).then((res) => { + proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); + closeModelDia(); + getModelList(); + }); + } else { + qualityTestStandardUpdate(modelForm.value).then((res) => { + proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); + closeModelDia(); + getModelList(); + }); + } + } + }); +}; +// 鍏抽棴鍨嬪彿寮规 +const closeModelDia = () => { + proxy.$refs.modelFormRef.resetFields(); + modelDia.value = false; +}; getProductTreeList(); </script> -- Gitblit v1.9.3