Commit 088256df authored by 以墨为白's avatar 以墨为白 🎧

小文件上传加进度条

parent dd6d3359
...@@ -140,6 +140,34 @@ let fileUpload = (url, formData, headers = {}) => { ...@@ -140,6 +140,34 @@ let fileUpload = (url, formData, headers = {}) => {
}) })
}; };
let fileUploadProgress = (url, formData, progressFunction, uploadComplete, uploadFailed) => {
let token = sessionStorage.getItem("token");
let xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("PUT", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
xhr.onload = (e) => {
var info = xhr.responseText;
let result = JSON.parse(info);
if (result.code == 9000) {
uploadComplete(result.data);
} else {
uploadFailed(result);
}
}; //请求完成
xhr.onerror = (evt) => {
uploadFailed({ message: "错误" });
} //请求失败
xhr.upload.onprogress = (evt) => {
if (evt.lengthComputable) {//
progressFunction(Math.round(evt.loaded / evt.total * 100) + "%");
}
}//【上传进度调用方法实现】
xhr.upload.onloadstart = function () {//上传开始执行方法
console.log("started");
};
xhr.setRequestHeader(ACCESS_TOKEN, token);
xhr.send(formData); //开始上传,发送form数据
};
//下载文件 type传文件类型 例如:doc,xls... //下载文件 type传文件类型 例如:doc,xls...
let fileDownload = (url, filename, type, headers = {}) => { let fileDownload = (url, filename, type, headers = {}) => {
fetch(url, { fetch(url, {
...@@ -239,6 +267,19 @@ const startLoading = () => { ...@@ -239,6 +267,19 @@ const startLoading = () => {
document.querySelector('.el-loading-spinner').appendChild(delBtn); document.querySelector('.el-loading-spinner').appendChild(delBtn);
delBtn.onclick = endLoading; delBtn.onclick = endLoading;
} }
const startLoadingProgress = (text) => {
loading = Loading.service({
lock: true,
text: text,
background: 'rgba(0, 0, 0, 0.7)'
});
//增加关闭按钮
const delBtn = document.createElement("button");
delBtn.innerHTML = "关闭";
document.querySelector('.el-loading-spinner').appendChild(delBtn);
delBtn.onclick = endLoading;
return loading;
}
const endLoading = () => { const endLoading = () => {
loading.close(); loading.close();
} }
...@@ -365,8 +406,8 @@ let arr_sound_format = () => { ...@@ -365,8 +406,8 @@ let arr_sound_format = () => {
return ["WMA", "MP3"] return ["WMA", "MP3"]
} }
//图片 //图片
let arr_img_format = () =>{ let arr_img_format = () => {
return ["JPG", "PNG","JPEG"] return ["JPG", "PNG", "JPEG"]
} }
//人物机构字段确认状态后缀名 //人物机构字段确认状态后缀名
let rw_jg_IsConfirm = () => { let rw_jg_IsConfirm = () => {
...@@ -667,7 +708,9 @@ export { ...@@ -667,7 +708,9 @@ export {
getTreeData, getTreeData,
lastIndexOf, lastIndexOf,
startLoading, startLoading,
startLoadingProgress,
endLoading, endLoading,
getTime_extent, getTime_extent,
download, download,
format_file, format_file,
...@@ -690,5 +733,6 @@ export { ...@@ -690,5 +733,6 @@ export {
post_technique, post_technique,
post_technique_entity, post_technique_entity,
addParamNew, addParamNew,
arr_img_format arr_img_format,
fileUploadProgress
} }
\ No newline at end of file
...@@ -287,8 +287,10 @@ import { ...@@ -287,8 +287,10 @@ import {
get, get,
post, post,
fileUpload_PUT, fileUpload_PUT,
fileUploadProgress,
delete_util, delete_util,
startLoading, startLoading,
startLoadingProgress,
endLoading, endLoading,
download, download,
format_file, //上传的文件格式 format_file, //上传的文件格式
...@@ -296,7 +298,7 @@ import { ...@@ -296,7 +298,7 @@ import {
arr_sound_format, //音频的文件格式 arr_sound_format, //音频的文件格式
} from "../../util/http_util"; } from "../../util/http_util";
import { uuid } from "../../util/data_util"; import { uuid } from "../../util/data_util";
import BigfileUpload from "../../components/common/bigfileUpload.vue"; import BigfileUpload from "../../components/common/bigfile_upload.vue";
export default { export default {
data() { data() {
return { return {
...@@ -754,17 +756,24 @@ export default { ...@@ -754,17 +756,24 @@ export default {
fd.append("info", JSON.stringify(fileInfo)); fd.append("info", JSON.stringify(fileInfo));
fd.append("folder", this.type_folder); fd.append("folder", this.type_folder);
fd.append("file", this.form_add.fileList[0].raw); fd.append("file", this.form_add.fileList[0].raw);
fileUpload_PUT("api/rest/3z/document/upload", fd).then((data) => {
this.$message({ let load = startLoadingProgress("0%");
type: "success", let self = this;
message: "文件上传成功!", this.centerDialogVisible_add = false;
this.loadingText = "0%";
fileUploadProgress("api/rest/3z/document/upload", fd, res => {
load.text = res;
},
res => {
endLoading();
console.log("loaded");
self.handleCurrentChange_lb(1);
},
err => {
endLoading();
console.log("error");
this.$message.warning(err.message);
}); });
this.centerDialogVisible_add = false;
this.handleCurrentChange_lb(1);
})
.catch((err) => {
this.$message.warning(err.message);
})
} }
} }
} }
......
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