Commit 97e91406 authored by wangjiancheng's avatar wangjiancheng

feat:添加导出后自动导入

parent af871147
......@@ -42,3 +42,26 @@ export function getAllUnit(data) {
method: 'get'
})
}
/** 下载二进制流文件
* @param binFile 二进制文件流
* @param fileName 文件名,例如:测试文本.txt
* @param blobType Blob 对象的 type 属性给出文件的 MIME 类型,默认:'application/octet-stream'(用于通用二进制数据)
*/
export function downloadBinaryFile(binFile, fileName, blobType = 'application/octet-stream')
{
// 处理二进制数据并创建 Blob 对象
const blobObj = new Blob([binFile], {type: blobType})
// 创建一个链接并设置下载属性
const downloadLink = document.createElement('a')
let url = window.URL || window.webkitURL || window.moxURL // 兼容不同浏览器的 URL 对象
url = url.createObjectURL(blobObj)
downloadLink.href = url
downloadLink.download = fileName // 设置下载的文件名
// 将链接添加到 DOM 中,模拟点击
document.body.appendChild(downloadLink)
downloadLink.click()
// 移除创建的链接和释放 URL 对象
document.body.removeChild(downloadLink)
window.URL.revokeObjectURL(url)
}
......@@ -451,7 +451,8 @@
<!-- 上传文件对话框 -->
<el-dialog v-model="openUpload" title="上传文件" width="600px">
<el-form ref="baseInternationalRef" :model="form" label-width="auto" :rules="rules" label-position="top" label-suffix=":">
<el-form ref="baseInternationalRef" :model="form" label-width="auto" :rules="rules" label-position="top"
label-suffix=":">
<el-form-item label="关键零部件清单文件" prop="file">
<el-upload
ref="upload"
......@@ -560,10 +561,10 @@ import {
addBaseInternational,
updateBaseInternational,
getBaseInternationalNo,
getBaseInternationalDepartment, upgradeBaseInternational,getBrandName
getBaseInternationalDepartment, upgradeBaseInternational, getBrandName
} from "@/api/BaseInternationalKeyComponents/BaseInternationalKeyComponents.js";
import {getMarket} from "@/api/BaseIntlPartTemplate/BaseIntlPartTemplateDetail.js";
import {getAllUnit} from "@/api/BaseIntlPartTemplate/BaseIntlPartTemplate.js";
import {downloadBinaryFile, getAllUnit} from "@/api/BaseIntlPartTemplate/BaseIntlPartTemplate.js";
import {WarningFilled} from "@element-plus/icons-vue";
import request from '@/utils/request'
......@@ -622,7 +623,7 @@ const data = reactive({
powerType: [{required: true, message: "动力类型不能为空", trigger: "blur"}],
listVersion: [{required: true, message: "清单版本号不能为空", trigger: "blur"}],
listCode: [{required: true, message: "清单编号不能为空", trigger: "blur"}],
file: [{ required: true, message: "关键零部件清单文件不能为空", trigger: "blur" }]
file: [{required: true, message: "关键零部件清单文件不能为空", trigger: "blur"}]
}
});
......@@ -769,6 +770,7 @@ function getApplicableMarket() {
}
]
}
// 根据品牌id获取品牌名称
const getBrandLabelsByIds = (brandIds) => {
if (!Array.isArray(brandIds)) return '--';
......@@ -845,6 +847,7 @@ const handleFileChange = (file) => {
}
const uploadId = ref(null)
// 上传文件
function handleUpload(row) {
openUpload.value = true;
......@@ -957,7 +960,7 @@ function submitForm() {
});
} else {
form.value.model = addForm.value.model;
if (!fileNew.value){
if (!fileNew.value) {
proxy.$modal.msgError("请上传文件");
return;
}
......@@ -966,6 +969,8 @@ function submitForm() {
formData.append('baseInternationalKeyComponentsList', JSON.stringify(form.value));
formData.append('file', fileNew.value);
addBaseInternational(formData).then(response => {
proxy.$modal.msgSuccess("新增成功");
downloadBinaryFile(response, '错误信息.xlsx')
proxy.$refs.upload.clearFiles()
openAdd.value = false;
fileNew.value = null;
......@@ -982,12 +987,13 @@ function submitUpgradeForm(id) {
const formData = new FormData();
if (fileNew.value) {
formData.append('file', fileNew.value);
}else {
} else {
proxy.$modal.msgError("请上传文件");
return;
}
upgradeBaseInternational(formData, id).then(response => {
//proxy.$modal.msgSuccess("升版成功");
proxy.$modal.msgSuccess("升版成功");
downloadBinaryFile(response, '错误信息.xlsx')
proxy.$refs.upload.clearFiles()
openUpgrade.value = false;
fileNew.value = null
......@@ -1000,7 +1006,7 @@ function submitUploadForm() {
const formData = new FormData();
if (fileNew.value) {
formData.append('file', fileNew.value);
}else {
} else {
proxy.$modal.msgError("请上传文件");
return;
}
......@@ -1011,6 +1017,8 @@ function submitUploadForm() {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
proxy.$modal.msgSuccess("上传成功");
downloadBinaryFile(response, '错误信息.xlsx')
proxy.$refs.upload.clearFiles()
openUpload.value = false;
uploadId.value = null;
......@@ -1020,6 +1028,7 @@ function submitUploadForm() {
}
const delId = ref(null)
// 打开删除对话框
function handleUndo(row) {
undoDialogVisible.value = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment