|
|
|
@ -1,51 +1,50 @@
|
|
|
|
|
<template> |
|
|
|
|
<basic-container> |
|
|
|
|
<avue-crud |
|
|
|
|
:option="option" |
|
|
|
|
:table-loading="loading" |
|
|
|
|
:data="data" |
|
|
|
|
:page.sync="page" |
|
|
|
|
:permission="permissionList" |
|
|
|
|
:before-open="beforeOpen" |
|
|
|
|
v-model="form" |
|
|
|
|
ref="crud" |
|
|
|
|
@row-update="rowUpdate" |
|
|
|
|
@row-save="rowSave" |
|
|
|
|
@row-del="rowDel" |
|
|
|
|
@search-change="searchChange" |
|
|
|
|
@search-reset="searchReset" |
|
|
|
|
@selection-change="selectionChange" |
|
|
|
|
@current-change="currentChange" |
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
@refresh-change="refreshChange" |
|
|
|
|
@on-load="onLoad" |
|
|
|
|
:upload-before="uploadBefore" |
|
|
|
|
:upload-after="uploadAfter" |
|
|
|
|
> |
|
|
|
|
<template slot="menuLeft"> |
|
|
|
|
<el-button |
|
|
|
|
type="danger" |
|
|
|
|
size="small" |
|
|
|
|
icon="el-icon-delete" |
|
|
|
|
plain |
|
|
|
|
v-if="permission.courseinfo_delete" |
|
|
|
|
@click="handleDelete" |
|
|
|
|
>删 除 |
|
|
|
|
</el-button> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<basic-container> |
|
|
|
|
<avue-crud |
|
|
|
|
:option="option" |
|
|
|
|
:table-loading="loading" |
|
|
|
|
:data="data" |
|
|
|
|
:page.sync="page" |
|
|
|
|
:permission="permissionList" |
|
|
|
|
:before-open="beforeOpen" |
|
|
|
|
v-model="form" |
|
|
|
|
ref="crud" |
|
|
|
|
@row-update="rowUpdate" |
|
|
|
|
@row-save="rowSave" |
|
|
|
|
@row-del="rowDel" |
|
|
|
|
@search-change="searchChange" |
|
|
|
|
@search-reset="searchReset" |
|
|
|
|
@selection-change="selectionChange" |
|
|
|
|
@current-change="currentChange" |
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
@refresh-change="refreshChange" |
|
|
|
|
@on-load="onLoad" |
|
|
|
|
:upload-before="uploadBefore" |
|
|
|
|
:upload-after="uploadAfter" |
|
|
|
|
> |
|
|
|
|
<template slot="menuLeft"> |
|
|
|
|
<el-button |
|
|
|
|
type="danger" |
|
|
|
|
size="small" |
|
|
|
|
icon="el-icon-delete" |
|
|
|
|
plain |
|
|
|
|
v-if="permission.courseinfo_delete" |
|
|
|
|
@click="handleDelete" |
|
|
|
|
>删 除 |
|
|
|
|
</el-button> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<template slot-scope="scope" slot="menu"> |
|
|
|
|
<el-button |
|
|
|
|
type="text" |
|
|
|
|
icon="el-icon-video-play" |
|
|
|
|
size="small" |
|
|
|
|
@click="toCourseAwer(scope.row)" |
|
|
|
|
>管理课件 |
|
|
|
|
</el-button> |
|
|
|
|
</template> |
|
|
|
|
</avue-crud> |
|
|
|
|
</basic-container> |
|
|
|
|
<template slot-scope="scope" slot="menu"> |
|
|
|
|
<el-button |
|
|
|
|
type="text" |
|
|
|
|
icon="el-icon-video-play" |
|
|
|
|
size="small" |
|
|
|
|
@click="toCourseAwer(scope.row)" |
|
|
|
|
>管理课件 |
|
|
|
|
</el-button> |
|
|
|
|
</template> |
|
|
|
|
</avue-crud> |
|
|
|
|
</basic-container> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
@ -252,12 +251,11 @@ export default {
|
|
|
|
|
console.log(_this, "SS组件"); |
|
|
|
|
console.log(file, column); |
|
|
|
|
console.log("上传前的方法"); |
|
|
|
|
const CHUNK_SIZE = 1 * 1024 * 1024; // 定义分片的大小,例如1MB |
|
|
|
|
// const CHUNK_SIZE = 512 * 1024; // 定义分片的大小,例如1MB |
|
|
|
|
const CHUNK_SIZE = 1 * 1024 * 1024; // 定义分片的大小,例如1MB |
|
|
|
|
// const CHUNK_SIZE = 512 * 1024; // 定义分片的大小,例如1MB |
|
|
|
|
const totalChunks = Math.ceil(file.size / CHUNK_SIZE); // 计算总分片数 |
|
|
|
|
let uploadedChunks = 0; // 已上传的分片数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const overallStartTime = performance.now(); // 函数开始执行时的时间 |
|
|
|
|
for (let index = 0; index < totalChunks; index++) { |
|
|
|
|
const start = index * CHUNK_SIZE; |
|
|
|
@ -296,11 +294,10 @@ export default {
|
|
|
|
|
title: "进度", |
|
|
|
|
message: `当前上传进度: ${progressPercentage}%`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 这里可以根据需要更新进度条或进度文本 |
|
|
|
|
|
|
|
|
|
if (index === totalChunks - 1) { |
|
|
|
|
|
|
|
|
|
const fileData = { |
|
|
|
|
fileName: file.name, |
|
|
|
|
totalChunks: totalChunks, |
|
|
|
@ -316,18 +313,25 @@ export default {
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if (Stresponse.data.code === 200) { |
|
|
|
|
const overallEndTime = performance.now(); // 函数结束时的时间 |
|
|
|
|
const totalFunctionTime = (overallEndTime - overallStartTime) / 1000; // 总执行时间,转换为秒 |
|
|
|
|
column.tip = ``; |
|
|
|
|
const overallEndTime = performance.now(); // 函数结束时的时间 |
|
|
|
|
const totalFunctionTime = |
|
|
|
|
(overallEndTime - overallStartTime) / 1000; // 总执行时间,转换为秒 |
|
|
|
|
column.tip = ``; |
|
|
|
|
console.log(Stresponse.data, "合并请求成功"); |
|
|
|
|
_this.form.videoUrl = |
|
|
|
|
Stresponse.data.data.domain + Stresponse.data.data.path; // 确保根据实际响应更新属性名 |
|
|
|
|
let url=(Stresponse.data.data.domain + '/'+ Stresponse.data.data.name) |
|
|
|
|
console.log(url,'地址'); |
|
|
|
|
_this.form.videoUrl = url; // 确保根据实际响应更新属性名 |
|
|
|
|
console.log(_this.form.videoUrl, "参数"); |
|
|
|
|
loading(); |
|
|
|
|
this.$message.success( |
|
|
|
|
`上传成功:文件名:${file.name},文件大小${( |
|
|
|
|
file.size / |
|
|
|
|
(1024 * 1024) |
|
|
|
|
).toFixed(2)} MB, 上传进度: ${progressPercentage}%,总耗时:${totalFunctionTime.toFixed(2)}秒` |
|
|
|
|
).toFixed( |
|
|
|
|
2 |
|
|
|
|
)} MB, 上传进度: ${progressPercentage}%,总耗时:${totalFunctionTime.toFixed( |
|
|
|
|
2 |
|
|
|
|
)}秒` |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
loading(); |
|
|
|
@ -473,5 +477,4 @@ export default {
|
|
|
|
|
}; |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style> |
|
|
|
|
</style> |
|
|
|
|
<style></style> |
|
|
|
|