瀏覽代碼

报告模版 保存和编辑。

jiaxiaoqiang 3 月之前
父節點
當前提交
8ae6611414

+ 17 - 0
src/api/project/template.ts

@@ -48,3 +48,20 @@ export function getTestingDataByCode(
     },
   });
 }
+
+// 新增excel表单  保存模版
+export function saveExcelTemplate(data: any = {}): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/test/excelForm/add",
+    method: "post",
+    data: data,
+  });
+}
+
+export function updateExcelTemplate(data: any = {}): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/test/excelForm/update",
+    method: "post",
+    data: data,
+  });
+}

+ 1 - 0
src/views/modules/report-template/com/templateList.vue

@@ -7,6 +7,7 @@ const dataList = ref<any[]>([]);
 
 const openDrawer = async () => {
   let res = await getExcelList();
+  dataList.value = res.data;
 };
 
 defineExpose({

+ 39 - 4
src/views/modules/report-template/report-template.vue

@@ -5,6 +5,8 @@ import {
   getProductCodeListById,
   getTestedProductList,
   getTestingDataByCode,
+  saveExcelTemplate,
+  updateExcelTemplate,
 } from "@/api/project/template";
 
 const excelRef = ref(null);
@@ -16,6 +18,13 @@ const currentTemplate = ref(null);
 const onSelectTemplate = (tem) => {
   currentTemplate.value = tem;
   temsDrawerVisible.value = false;
+  formData.engineeringId = tem.engineeringId;
+  formData.formName = tem.formName;
+  formData.productCode = tem.productCode;
+  getProductCodeListById(formData.engineeringId).then((res) => {
+    codeAllList.value = res.data;
+    codeList.value = codeAllList.value;
+  });
 };
 const onOpenTemplate = () => {
   temsDrawerVisible.value = true;
@@ -44,6 +53,11 @@ const formData = reactive({
   formName: "",
   productCode: "",
 });
+const rules = reactive({
+  engineeringId: { required: true, message: "请选择产品", trigger: "blur" },
+  productCode: { required: true, message: "请选择编号", trigger: "blur" },
+  formName: { required: true, message: "请输入模版名称", trigger: "blur" },
+});
 
 // 产品选择器
 const productAllList = ref<any[]>([]); // 产品列表
@@ -92,11 +106,27 @@ const codeRemoteMethod = (query: string) => {
   });
 };
 
-const onSaveTemplate = () => {
+const onSaveTemplate = async () => {
+  await formRef.value?.validate();
+
   const res = excelRef.value.getExcelData();
-  // console.log("onSaveTemplate", res, "传给后端要转json");
-  console.log("onSaveTemplate", formRef.value);
+
+  let p = {
+    excelData: JSON.stringify(res),
+    ...formData,
+    id: currentTemplate.value?.id || null,
+  };
+
+  if (p.id) {
+    await updateExcelTemplate(p);
+  } else {
+    let result = await saveExcelTemplate(p);
+  }
+
   formRef.value && formRef.value.resetFields();
+  currentTemplate.value = null;
+
+  ElMessage.success("保存成功");
 };
 
 // 点击搜索按钮查询 产品编码下的测试数据
@@ -161,7 +191,12 @@ onMounted(() => {
     </div>
     <div class="right">
       <div class="title-header">测试项查询</div>
-      <el-form ref="formRef" v-model:model="formData" label-position="top">
+      <el-form
+        ref="formRef"
+        v-model:model="formData"
+        :rules="rules"
+        label-position="top"
+      >
         <el-form-item label="模版名称" prop="formName">
           <el-input v-model="formData.formName" placeholder="请输入模版名称" />
         </el-form-item>