|
@@ -557,6 +557,21 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
+ /* 弹窗下载文件操作 */
|
|
|
+ doDownloadByUrl(url,fileName) {
|
|
|
+ const downloadRes = async () => {
|
|
|
+ let response = await fetch(url); // 内容转变成blob地址
|
|
|
+ let blob = await response.blob(); // 创建隐藏的可下载链接
|
|
|
+ let objectUrl = window.URL.createObjectURL(blob);
|
|
|
+ let a = document.createElement('a');
|
|
|
+ a.href = objectUrl;
|
|
|
+ a.download = fileName;
|
|
|
+ a.click()
|
|
|
+ a.remove();
|
|
|
+ }
|
|
|
+ downloadRes();
|
|
|
+ },
|
|
|
+
|
|
|
/* 获取视频第一帧 */
|
|
|
getVideoBase64(url) {
|
|
|
return new Promise(function(resolve, reject) {
|
|
@@ -588,42 +603,42 @@ export default {
|
|
|
});
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
/* 获取视频文件的持续时长 */
|
|
|
- getVideoDuration(file,url) {
|
|
|
- return new Promise((resolve,reject) => {
|
|
|
+ getVideoDuration(file, url) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
var vid = document.createElement('video');
|
|
|
var fileURL = url || URL.createObjectURL(file);
|
|
|
vid.src = fileURL;
|
|
|
vid.addEventListener('loadedmetadata', function() {
|
|
|
- resolve(vid.duration);
|
|
|
+ resolve(vid.duration);
|
|
|
});
|
|
|
vid.remove()
|
|
|
})
|
|
|
},
|
|
|
|
|
|
/* 将文件MD5 Uint8Array格式转换成字符串 */
|
|
|
- convertFileMD5ToString(fileData){
|
|
|
+ convertFileMD5ToString(fileData) {
|
|
|
var dataString = "";
|
|
|
for (var i = 0; i < fileData.length; i++) {
|
|
|
- dataString += fileData[i].toString(16);
|
|
|
+ dataString += fileData[i].toString(16);
|
|
|
}
|
|
|
return dataString
|
|
|
},
|
|
|
/* 将二进制流字符串转换成Uint8Array */
|
|
|
- stringToUint8Array(str){
|
|
|
- var arr = [];
|
|
|
- for (var i = 0, j = str.length; i < j; ++i) {
|
|
|
- arr.push(str.charCodeAt(i));
|
|
|
- }
|
|
|
-
|
|
|
- var tmpUint8Array = new Uint8Array(arr);
|
|
|
- return tmpUint8Array
|
|
|
- },
|
|
|
+ stringToUint8Array(str) {
|
|
|
+ var arr = [];
|
|
|
+ for (var i = 0, j = str.length; i < j; ++i) {
|
|
|
+ arr.push(str.charCodeAt(i));
|
|
|
+ }
|
|
|
+
|
|
|
+ var tmpUint8Array = new Uint8Array(arr);
|
|
|
+ return tmpUint8Array
|
|
|
+ },
|
|
|
/* 获取文件的MD5 */
|
|
|
- getFileMD5(file){
|
|
|
- return new Promise((r,j) => {
|
|
|
- const CHUNK_SIZE = 4194304; // 大文件获取数前4M大小
|
|
|
+ getFileMD5(file) {
|
|
|
+ return new Promise((r, j) => {
|
|
|
+ const CHUNK_SIZE = 4194304; // 大文件获取数前4M大小
|
|
|
const fileReader = new FileReader();
|
|
|
const chunkFile = file.slice(0, CHUNK_SIZE);
|
|
|
fileReader.readAsBinaryString(chunkFile);
|
|
@@ -636,9 +651,9 @@ export default {
|
|
|
};
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
/* 获取时间差异 */
|
|
|
- getDateDiff(dateTimeStamp){
|
|
|
+ getDateDiff(dateTimeStamp) {
|
|
|
var result = ''
|
|
|
var minute = 1000 * 60;
|
|
|
var hour = minute * 60;
|
|
@@ -647,28 +662,26 @@ export default {
|
|
|
var month = day * 30;
|
|
|
var now = new Date().getTime();
|
|
|
var diffValue = now - dateTimeStamp;
|
|
|
- if(diffValue < 0){return;}
|
|
|
- var monthC =diffValue/month;
|
|
|
- var weekC =diffValue/(7*day);
|
|
|
- var dayC =diffValue/day;
|
|
|
- var hourC =diffValue/hour;
|
|
|
- var minC =diffValue/minute;
|
|
|
- if(monthC>=1){
|
|
|
- result="" + parseInt(monthC) + "月前";
|
|
|
- }
|
|
|
- else if(weekC>=1){
|
|
|
- result="" + parseInt(weekC) + "周前";
|
|
|
- }
|
|
|
- else if(dayC>=1){
|
|
|
- result=""+ parseInt(dayC) +"天前";
|
|
|
+ if (diffValue < 0) {
|
|
|
+ return;
|
|
|
}
|
|
|
- else if(hourC>=1){
|
|
|
- result=""+ parseInt(hourC) +"小时前";
|
|
|
- }
|
|
|
- else if(minC>=1){
|
|
|
- result=""+ parseInt(minC) +"分钟前";
|
|
|
- }else
|
|
|
- result="刚刚";
|
|
|
+ var monthC = diffValue / month;
|
|
|
+ var weekC = diffValue / (7 * day);
|
|
|
+ var dayC = diffValue / day;
|
|
|
+ var hourC = diffValue / hour;
|
|
|
+ var minC = diffValue / minute;
|
|
|
+ if (monthC >= 1) {
|
|
|
+ result = "" + parseInt(monthC) + "月前";
|
|
|
+ } else if (weekC >= 1) {
|
|
|
+ result = "" + parseInt(weekC) + "周前";
|
|
|
+ } else if (dayC >= 1) {
|
|
|
+ result = "" + parseInt(dayC) + "天前";
|
|
|
+ } else if (hourC >= 1) {
|
|
|
+ result = "" + parseInt(hourC) + "小时前";
|
|
|
+ } else if (minC >= 1) {
|
|
|
+ result = "" + parseInt(minC) + "分钟前";
|
|
|
+ } else
|
|
|
+ result = "刚刚";
|
|
|
return result;
|
|
|
},
|
|
|
|
|
@@ -710,7 +723,8 @@ export default {
|
|
|
let blobFile = await containerClient.upload(file, 'item/' + id)
|
|
|
// 获取blob链接以及视频封面截图
|
|
|
const fileSas = await this.getFileSas(blobFile.url)
|
|
|
- const fileBlobUrl = fileSas.url
|
|
|
+ // const fileBlobUrl = encodeURI(blobFile.url) + '?' + fileSas.sas
|
|
|
+ const fileBlobUrl = encodeURI(blobFile.url) + '?' + fileSas.sas
|
|
|
// const posterBase64 = await this.getVideoBase64(fileBlobUrl)
|
|
|
editor.selection.getSelectionStartElem().elems[0].innerHTML += '<span><span> </span><video src=' +
|
|
|
fileBlobUrl +
|
|
@@ -718,7 +732,7 @@ export default {
|
|
|
editor.change.emit()
|
|
|
vm.$EventBus.$emit('noSave', {
|
|
|
path: blobFile.blob,
|
|
|
- size: blobFile.size,
|
|
|
+ size: blobFile.size,
|
|
|
scope: scope
|
|
|
})
|
|
|
vm.$Spin.hide();
|