From d2355d2bc6277368f5eacf6239b036e673b22ada Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 03 七月 2025 13:30:19 +0800
Subject: [PATCH] 指标维护页面开发联调

---
 src/views/qualityManagement/metricMaintenance/index.vue |  168 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 138 insertions(+), 30 deletions(-)

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