gongchunyi
2 天以前 f281afc3ae596f649340bfc592b746917e28d701
src/views/basicData/product/ImportExcel/index.vue
@@ -1,14 +1,25 @@
<template>
  <el-button type="info" plain icon="Upload" @click="handleImport">
  <el-button type="info"
             plain
             icon="Upload"
             @click="handleImport">
    导入
  </el-button>
  <el-dialog v-model="upload.open" :title="upload.title" @close="handleDialogClose">
    <FileUpload ref="fileUploadRef" accept=".xlsx, .xls" :headers="upload.headers" :action="uploadUrl"
      :disabled="upload.isUploading" :showTip="true" @success="handleFileSuccess"
  <el-dialog v-model="upload.open"
             :title="upload.title"
             @close="handleDialogClose">
    <FileUpload ref="fileUploadRef"
                accept=".xlsx, .xls"
                :headers="upload.headers"
                :action="uploadUrl"
                :disabled="upload.isUploading"
                :showTip="true"
                @success="handleFileSuccess"
      :downloadTemplate="handleDownloadTemplate" />
    <template #footer>
      <div class="dialog-footer">
        <el-button type="primary" @click="submitFileForm">确 定</el-button>
        <el-button type="primary"
                   @click="submitFileForm">确 定</el-button>
        <el-button @click="upload.open = false">取 消</el-button>
      </div>
    </template>
@@ -20,7 +31,7 @@
import { getToken } from "@/utils/auth.js";
import { FileUpload } from "@/components/Upload";
import { ElMessage } from "element-plus";
import { downloadProductModelImportTemplate } from "@/api/basicData/product.js";
  import { downloadProductModelImportTemplate } from "@/api/basicData/newProduct.js";
defineOptions({
  name: "产品维护导入",
@@ -45,8 +56,8 @@
const uploadUrl = computed(
  () =>
    import.meta.env.VITE_APP_BASE_API +
    "/basic/product/import" +
    (props.productId ? `?productId=${props.productId}` : "")
      "/productMaterialSku/import" +
      (props.productId ? `?materialId=${props.productId}` : "")
);
// 点击导入
const handleImport = () => {
@@ -55,7 +66,7 @@
    return;
  }
  upload.open = true;
  upload.title = "产品导入";
    upload.title = "产品规格导入";
};
const submitFileForm = () => {
@@ -67,7 +78,7 @@
  fileUploadRef.value?.clearFiles?.();
};
const handleFileSuccess = (response) => {
  const handleFileSuccess = response => {
  const { code, msg } = response;
  if (code == 200) {
    ElMessage({ message: msg || "导入成功", type: "success" });
@@ -81,15 +92,17 @@
// 下载 Excel 导入模板
const handleDownloadTemplate = () => {
  downloadProductModelImportTemplate()
    .then((blobData) => {
      .then(blobData => {
      const blob =
        blobData instanceof Blob
          ? blobData
          : new Blob([blobData], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
            : 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";
        link.download = "产品规格导入模板.xlsx";
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);