| | |
| | | <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> |
| | |
| | | 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: "产品维护导入", |
| | |
| | | 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 = () => { |
| | |
| | | return; |
| | | } |
| | | upload.open = true; |
| | | upload.title = "产品导入"; |
| | | upload.title = "产品规格导入"; |
| | | }; |
| | | |
| | | const submitFileForm = () => { |
| | |
| | | fileUploadRef.value?.clearFiles?.(); |
| | | }; |
| | | |
| | | const handleFileSuccess = (response) => { |
| | | const handleFileSuccess = response => { |
| | | const { code, msg } = response; |
| | | if (code == 200) { |
| | | ElMessage({ message: msg || "导入成功", type: "success" }); |
| | |
| | | // 下载 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); |