|
|
@@ -310,6 +310,7 @@
|
|
|
:on-progress="handleFileUploadProgress"
|
|
|
:on-success="handleFileSuccess"
|
|
|
:auto-upload="false"
|
|
|
+ :before-upload="beforeUpload"
|
|
|
drag
|
|
|
>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
@@ -339,6 +340,7 @@ import {
|
|
|
listDevice,
|
|
|
updateDevice,
|
|
|
} from "@/api/system/device";
|
|
|
+import request from "@/utils/request";
|
|
|
|
|
|
export default {
|
|
|
/** 引入基础minxins*/
|
|
|
@@ -503,6 +505,55 @@ export default {
|
|
|
);
|
|
|
this.getList();
|
|
|
},
|
|
|
+ beforeUpload(file) {
|
|
|
+ // 返回 false 可以阻止文件上传
|
|
|
+ // 创建 FormData 对象
|
|
|
+
|
|
|
+ let config = {
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
+ },
|
|
|
+ responseType: 'blob'
|
|
|
+ }
|
|
|
+ const formData = new FormData();
|
|
|
+ // 添加文件到 FormData
|
|
|
+ formData.append("file", file);
|
|
|
+ request.post(this.upload.url, formData, config)
|
|
|
+ .then((response) => {
|
|
|
+ // 在接收到后端响应时执行的逻辑
|
|
|
+ // console.log(response,"response");
|
|
|
+ this.upload.open = false;
|
|
|
+ this.upload.isUploading = false;
|
|
|
+ this.$refs.upload.clearFiles();
|
|
|
+ if (response&&response.size >0) {
|
|
|
+ this.$alert(
|
|
|
+ "导入失败,请根据返回的Excel检查文件内容"
|
|
|
+ );
|
|
|
+ const blob = new Blob([response],
|
|
|
+ {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}) //你需要的类型 转化为blob对象
|
|
|
+ const url = window.URL.createObjectURL(blob) //将对象转化为链接
|
|
|
+ let a = document.createElement('a')
|
|
|
+ // 下载链接
|
|
|
+ a.href = url
|
|
|
+ a.download = '设备导入结果.xlsx'
|
|
|
+ document.body.appendChild(a)
|
|
|
+ // 点击a标签,进行下载
|
|
|
+ a.click()
|
|
|
+ // 移除元素
|
|
|
+ document.body.removeChild(a)
|
|
|
+ } else {
|
|
|
+ this.$alert(
|
|
|
+ "导入成功!"
|
|
|
+ );
|
|
|
+ }
|
|
|
+ this.getList();
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ // 在请求失败时执行的逻辑
|
|
|
+ // console.log(error,"error");
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ },
|
|
|
getDefaultOrg(org) {
|
|
|
this.orgName = org.name;
|
|
|
},
|