From 5b45cbaaafbc45023d7916d9e700d3c59cc33c03 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 02 六月 2026 10:52:09 +0800
Subject: [PATCH] 新疆马铃薯 1.过程检验下载添加3个模版

---
 src/views/qualityManagement/processInspection/index.vue |  146 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 136 insertions(+), 10 deletions(-)

diff --git a/src/views/qualityManagement/processInspection/index.vue b/src/views/qualityManagement/processInspection/index.vue
index 9fe630a..47279a8 100644
--- a/src/views/qualityManagement/processInspection/index.vue
+++ b/src/views/qualityManagement/processInspection/index.vue
@@ -72,6 +72,35 @@
       </template>
     </el-dialog>
 
+    <el-dialog v-model="templateDialogVisible"
+               title="閫夋嫨瀵煎嚭妯℃澘"
+               width="450px"
+               @close="closeTemplateDialog">
+      <div class="template-grid">
+        <div class="template-item" @click="handleTemplateExport('weilong')">
+          <div class="template-icon weilong-icon">浼�</div>
+          <div class="template-name">浼熼緳妯℃澘</div>
+        </div>
+        <div class="template-item" @click="handleTemplateExport('baishi')">
+          <div class="template-icon baishi-icon">鐧�</div>
+          <div class="template-name">鐧句簨妯℃澘</div>
+        </div>
+        <div class="template-item" @click="handleTemplateExport('dali')">
+          <div class="template-icon dali-icon">杈�</div>
+          <div class="template-name">杈惧埄妯℃澘</div>
+        </div>
+        <div class="template-item" @click="handleTemplateExport('common')">
+          <div class="template-icon common-icon">閫�</div>
+          <div class="template-name">閫氱敤妯℃澘</div>
+        </div>
+      </div>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="closeTemplateDialog">鍙栨秷</el-button>
+        </div>
+      </template>
+    </el-dialog>
+
 
   </div>
 </template>
@@ -96,6 +125,10 @@
     qualityInspectListPage,
     qualityInspectUpdate,
     submitQualityInspect,
+    exportWeilongTemplate,
+    exportBaishiTemplate,
+    exportDaliTemplate,
+    exportCommonTemplate,
   } from "@/api/qualityManagement/rawMaterialInspection.js";
   import FilesDia from "@/views/qualityManagement/processInspection/components/filesDia.vue";
   import dayjs from "dayjs";
@@ -301,6 +334,9 @@
   const quickCheckDia = ref();
   const { proxy } = getCurrentInstance();
   const userStore = useUserStore();
+
+  const templateDialogVisible = ref(false);
+  const currentExportRow = ref(null);
   const changeDaterange = value => {
     searchForm.value.entryDateStart = undefined;
     searchForm.value.entryDateEnd = undefined;
@@ -447,21 +483,51 @@
       });
   };
   const downLoadFile = row => {
-    downloadQualityInspect({ id: row.id }).then(blobData => {
-      const blob = new Blob([blobData], {
+    currentExportRow.value = row;
+    templateDialogVisible.value = true;
+  };
+
+  const closeTemplateDialog = () => {
+    templateDialogVisible.value = false;
+    currentExportRow.value = null;
+  };
+
+  const handleTemplateExport = async (templateType) => {
+    if (!currentExportRow.value) {
+      proxy.$modal.msgError("璇烽�夋嫨瑕佸鍑虹殑鏁版嵁");
+      return;
+    }
+    const id = currentExportRow.value.id;
+    const fileNameMap = {
+      weilong: "浼熼緳妯$増妫�楠岀粨鏋�.doc",
+      baishi: "鐧句簨妯$増妫�楠岀粨鏋�.doc",
+      dali: "杈惧埄妯$増妫�楠岀粨鏋�.doc",
+      common: "閫氱敤妯$増妫�楠岀粨鏋�.doc",
+    };
+    const exportFuncMap = {
+      weilong: exportWeilongTemplate,
+      baishi: exportBaishiTemplate,
+      dali: exportDaliTemplate,
+      common: exportCommonTemplate,
+    };
+    try {
+      const response = await exportFuncMap[templateType](id);
+      const blob = new Blob([response], {
         type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
       });
-      const downloadUrl = window.URL.createObjectURL(blob);
-
       const link = document.createElement("a");
-      link.href = downloadUrl;
-      link.download = "杩囩▼妫�楠屾姤鍛�.docx";
+      link.href = URL.createObjectURL(blob);
+      link.download = fileNameMap[templateType];
       document.body.appendChild(link);
       link.click();
-
       document.body.removeChild(link);
-      window.URL.revokeObjectURL(downloadUrl);
-    });
+      URL.revokeObjectURL(link.href);
+      proxy.$modal.msgSuccess("瀵煎嚭鎴愬姛");
+      closeTemplateDialog();
+    } catch (error) {
+      console.error("瀵煎嚭澶辫触", error);
+      proxy.$modal.msgError("瀵煎嚭澶辫触");
+    }
   };
   // 瀵煎嚭
   const handleOut = () => {
@@ -486,4 +552,64 @@
   });
 </script>
 
-<style scoped></style>
+<style scoped>
+.template-grid {
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);
+  gap: 20px;
+  padding: 20px 10px;
+}
+
+.template-item {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 24px 16px;
+  border: 1px solid #e4e7ed;
+  border-radius: 8px;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.template-item:hover {
+  border-color: #409eff;
+  box-shadow: 0 2px 12px rgba(64, 158, 255, 0.2);
+  transform: translateY(-2px);
+}
+
+.template-icon {
+  width: 56px;
+  height: 56px;
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 24px;
+  font-weight: bold;
+  color: #fff;
+  margin-bottom: 12px;
+}
+
+.weilong-icon {
+  background: linear-gradient(135deg, #409eff, #1677ff);
+}
+
+.baishi-icon {
+  background: linear-gradient(135deg, #67c23a, #529b2e);
+}
+
+.dali-icon {
+  background: linear-gradient(135deg, #e6a23c, #c4860c);
+}
+
+.common-icon {
+  background: linear-gradient(135deg, #909399, #6d6d6d);
+}
+
+.template-name {
+  font-size: 15px;
+  color: #303133;
+  font-weight: 500;
+}
+</style>

--
Gitblit v1.9.3