前端-导出excel优化封装
parent
5de0213cf5
commit
17559ed11b
|
@ -95,10 +95,54 @@ export function selectDictLabels(datas, value, separator) {
|
||||||
})
|
})
|
||||||
return actions.join('').substring(0, actions.join('').length - 1);
|
return actions.join('').substring(0, actions.join('').length - 1);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
* @param {Blob} blob
|
||||||
|
* @param {String} filename 想要保存的文件名称
|
||||||
|
*/
|
||||||
|
|
||||||
|
function saveAs(blob, filename) {
|
||||||
|
if (window.navigator.msSaveOrOpenBlob) {
|
||||||
|
navigator.msSaveBlob(blob, filename);
|
||||||
|
} else {
|
||||||
|
var link = document.createElement('a');
|
||||||
|
var body = document.querySelector('body');
|
||||||
|
|
||||||
|
link.href = window.URL.createObjectURL(blob);
|
||||||
|
link.download = filename;
|
||||||
|
|
||||||
|
// fix Firefox
|
||||||
|
link.style.display = 'none';
|
||||||
|
body.appendChild(link);
|
||||||
|
|
||||||
|
link.click();
|
||||||
|
body.removeChild(link);
|
||||||
|
|
||||||
|
window.URL.revokeObjectURL(link.href);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 blob
|
||||||
|
* @param {String} url 目标文件地址
|
||||||
|
* @return {cb}
|
||||||
|
*/
|
||||||
|
function getBlob(url, cb) {
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', url, true);
|
||||||
|
xhr.responseType = 'blob';
|
||||||
|
xhr.onload = function () {
|
||||||
|
if (xhr.status === 200) {
|
||||||
|
cb(xhr.response);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send();
|
||||||
|
}
|
||||||
// 通用下载方法
|
// 通用下载方法
|
||||||
export function download(fileName) {
|
export function download(file_url,fileName) {
|
||||||
window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
|
getBlob(process.env.VUE_APP_BASE_API + file_url, function (blob) {
|
||||||
|
saveAs(blob, fileName);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 字符串格式化(%s )
|
// 字符串格式化(%s )
|
||||||
|
|
|
@ -118,53 +118,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {clearSaveFile, listSaveFile} from "@/api/system/savefile";
|
import {clearSaveFile, delSaveFile, listSaveFile} from "@/api/system/savefile";
|
||||||
import {delSaveFile} from "../../../api/system/savefile";
|
import FileUpload from "@/components/FileUpload/index";
|
||||||
import FileUpload from "../../../components/FileUpload/index";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
* @param {Blob} blob
|
|
||||||
* @param {String} filename 想要保存的文件名称
|
|
||||||
*/
|
|
||||||
function saveAs(blob, filename) {
|
|
||||||
if (window.navigator.msSaveOrOpenBlob) {
|
|
||||||
navigator.msSaveBlob(blob, filename);
|
|
||||||
} else {
|
|
||||||
var link = document.createElement('a');
|
|
||||||
var body = document.querySelector('body');
|
|
||||||
|
|
||||||
link.href = window.URL.createObjectURL(blob);
|
|
||||||
link.download = filename;
|
|
||||||
|
|
||||||
// fix Firefox
|
|
||||||
link.style.display = 'none';
|
|
||||||
body.appendChild(link);
|
|
||||||
|
|
||||||
link.click();
|
|
||||||
body.removeChild(link);
|
|
||||||
|
|
||||||
window.URL.revokeObjectURL(link.href);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 blob
|
|
||||||
* @param {String} url 目标文件地址
|
|
||||||
* @return {cb}
|
|
||||||
*/
|
|
||||||
function getBlob(url, cb) {
|
|
||||||
var xhr = new XMLHttpRequest();
|
|
||||||
xhr.open('GET', url, true);
|
|
||||||
xhr.responseType = 'blob';
|
|
||||||
xhr.onload = function () {
|
|
||||||
if (xhr.status === 200) {
|
|
||||||
cb(xhr.response);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
xhr.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Savefile",
|
name: "Savefile",
|
||||||
|
@ -225,9 +180,7 @@
|
||||||
},
|
},
|
||||||
/** 文件下载 **/
|
/** 文件下载 **/
|
||||||
handleDownload(row) {
|
handleDownload(row) {
|
||||||
getBlob(process.env.VUE_APP_BASE_API + row.file_url, function (blob) {
|
this.download(row.file_url, row.name)
|
||||||
saveAs(blob, row.name);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
|
|
Loading…
Reference in New Issue