huminmin
2026-03-19 bade5c02f1945d6fdc8bcddc27b11d25875aa968
导入产品型号表单,可以下载模板
已修改2个文件
36 ■■■■■ 文件已修改
src/api/basicData/product.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/product/ImportExcel/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/basicData/product.js
@@ -56,3 +56,12 @@
        params: query
    })
}
//  下载产品导入模板
export function downloadProductModelImportTemplate() {
    return request({
        url: '/basic/product/export',
        method: 'get',
        responseType: 'blob'
    })
}
src/views/basicData/product/ImportExcel/index.vue
@@ -9,8 +9,9 @@
      :headers="upload.headers"
      :action="upload.url + '?updateSupport=' + upload.updateSupport"
      :disabled="upload.isUploading"
      :showTip="false"
      :showTip="true"
      @success="handleFileSuccess"
      :downloadTemplate="handleDownloadTemplate"
    />
    <template #footer>
      <div class="dialog-footer">
@@ -26,6 +27,7 @@
import { getToken } from "@/utils/auth.js";
import { FileUpload } from "@/components/Upload";
import { ElMessage } from "element-plus";
import { downloadProductModelImportTemplate } from "@/api/basicData/product.js";
defineOptions({
  name: "产品维护导入",
@@ -65,4 +67,27 @@
    ElMessage({ message: msg, type: "error" });
  }
};
// 下载 Excel 导入模板
const handleDownloadTemplate = () => {
  downloadProductModelImportTemplate()
      .then((blobData) => {
        const blob =
            blobData instanceof Blob
                ? blobData
                : new Blob([blobData], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
        const url = window.URL.createObjectURL(blob);
        const link = document.createElement("a");
        link.href = url;
        link.download = "产品导入模板.xlsx";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        window.URL.revokeObjectURL(url);
        ElMessage({ message: "模板下载成功", type: "success" });
      })
      .catch(() => {
        ElMessage({ message: "模板下载失败", type: "error" });
      });
};
</script>