mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-10 03:16:42 +08:00
Compare commits
13 Commits
202599-da
...
20251104-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
782bcc31e5 | ||
|
|
1a95852912 | ||
|
|
f5d865ccc3 | ||
|
|
65673561d8 | ||
|
|
2cbb379fa6 | ||
|
|
6d4af3aa2d | ||
|
|
5ebee96ce4 | ||
|
|
c3f53515b9 | ||
|
|
1772c972b9 | ||
| 0b0789feda | |||
| 70bb87a17a | |||
| 4e60811542 | |||
|
|
075fdb1913 |
@@ -22,7 +22,7 @@ const pageList = function(data) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 选择课件的查询,这里也是分页查询,只是返回的内容,字段会很少,用于课件制作那选择已有课件内容。
|
* 选择课件的查询,这里也是分页查询,只是返回的内容,字段会很少,用于课件制作那选择已有课件内容。
|
||||||
*
|
*
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* 查询参数如上面pageList方法
|
* 查询参数如上面pageList方法
|
||||||
*/
|
*/
|
||||||
@@ -47,7 +47,9 @@ const findList = function(data) {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const saveUpload = function(data) {
|
const saveUpload = function(data) {
|
||||||
return ajax.post('/xboe/m/course/file/upload/save', data);
|
return ajax.post('/xboe/m/course/file/upload/save', data, {
|
||||||
|
timeout: 60000
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,4 +90,4 @@ export default {
|
|||||||
batchUpdate,
|
batchUpdate,
|
||||||
detail,
|
detail,
|
||||||
delFile
|
delFile
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<el-input-number v-model="duration" size="mini" :min="1" :max="100"></el-input-number>
|
<el-input-number v-model="duration" size="mini" :min="1" :max="100"></el-input-number>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<el-upload class="upload-demo" :headers="headers" :data="data" drag :action="uploadFileUrl" :on-success="handleUploadSuccess" :before-upload="handleBeforeUpload">
|
<el-upload ref="uploadRef" class="upload-demo" :headers="headers" :data="data" drag :action="uploadFileUrl" :on-success="handleUploadSuccess" :before-upload="handleBeforeUpload">
|
||||||
<i class="el-icon-upload"></i>
|
<i class="el-icon-upload"></i>
|
||||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
<div class="el-upload__tip" slot="tip">文件大小限制:{{curComType.maxSizeName}},支持的文件类型:{{curComType.fileTypes.join(',')}}</div>
|
<div class="el-upload__tip" slot="tip">文件大小限制:{{curComType.maxSizeName}},支持的文件类型:{{curComType.fileTypes.join(',')}}</div>
|
||||||
@@ -195,6 +195,7 @@
|
|||||||
// this.cware.content.content=result.filePath;
|
// this.cware.content.content=result.filePath;
|
||||||
}else{
|
}else{
|
||||||
this.$message.error(rs.message);
|
this.$message.error(rs.message);
|
||||||
|
this.$refs.uploadRef.clearFiles();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -483,8 +483,11 @@ export default {
|
|||||||
} else if (this.form.device2 === true) {
|
} else if (this.form.device2 === true) {
|
||||||
this.form.device = 2;
|
this.form.device = 2;
|
||||||
}
|
}
|
||||||
//时长,秒与分钟的转化
|
// 时长,秒与分钟的转化
|
||||||
//if(this.form.)
|
if (this.form.minute) {
|
||||||
|
this.form.duration = this.form.minute * 60;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { status,message} = await coueseFile.batchUpdate([this.form]);
|
const { status,message} = await coueseFile.batchUpdate([this.form]);
|
||||||
if (status === 200) {
|
if (status === 200) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<div class="navTop">
|
<div class="navTop">
|
||||||
<div>
|
<div>
|
||||||
<router-link to="/grateful" class="nav">首页</router-link> >
|
<router-link to="/grateful" class="nav">首页</router-link> >
|
||||||
<span style="cursor: pointer;" class="nav">认证讲师库(2023)</span>
|
<span style="cursor: pointer;" class="nav">认证讲师库</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="position: relative;">
|
<div style="position: relative;">
|
||||||
<el-input class="portal-input" placeholder="请输入课程名称" style="border-radius: 20px !important; "
|
<el-input class="portal-input" placeholder="请输入课程名称" style="border-radius: 20px !important; "
|
||||||
|
|||||||
@@ -177,7 +177,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 课程单元 -->
|
<!-- 课程单元 -->
|
||||||
<div class="course-units" v-if="tab == 1">
|
<div class="course-units" v-if="tab == 1">
|
||||||
<div :style="`height: ${controlHeight}px;overflow-y: auto;`">
|
<div style="min-height: 350px;max-height: 650px ;overflow-y: auto;">
|
||||||
<div class="catalog" v-if="courseInfo.type == 20">
|
<div class="catalog" v-if="courseInfo.type == 20">
|
||||||
<div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
<div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
||||||
<el-menu
|
<el-menu
|
||||||
@@ -480,6 +480,7 @@
|
|||||||
defaultMaxTime:1800, //非音频默认最大时间
|
defaultMaxTime:1800, //非音频默认最大时间
|
||||||
warn:"测试内容",
|
warn:"测试内容",
|
||||||
warnTitle:"测试标题",
|
warnTitle:"测试标题",
|
||||||
|
isFinishingStudyItem: false, // 防止重复调用完成状态更新接口
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -816,7 +817,8 @@
|
|||||||
}else if(h>500){
|
}else if(h>500){
|
||||||
h=h+60;
|
h=h+60;
|
||||||
}
|
}
|
||||||
$this.controlHeight=h-95;
|
// 移除高度控制 防止内容塌陷
|
||||||
|
// $this.controlHeight=h-95;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@@ -1683,19 +1685,28 @@
|
|||||||
//这种可能没有,不过这里也是为了万中那个1
|
//这种可能没有,不过这里也是为了万中那个1
|
||||||
!this.tentative && this.saveStudyInfo();
|
!this.tentative && this.saveStudyInfo();
|
||||||
} else {
|
} else {
|
||||||
|
// 如果正在处理完成请求,则直接返回,避免重复调用
|
||||||
|
if (this.isFinishingStudyItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
let params = {
|
let params = {
|
||||||
itemId: this.contentData.studyItemId,
|
itemId: this.contentData.studyItemId,
|
||||||
studyId: this.studyId,
|
studyId: this.studyId,
|
||||||
courseId: this.courseId,
|
courseId: this.courseId,
|
||||||
cnum: this.totalContent
|
cnum: this.totalContent
|
||||||
}
|
}
|
||||||
this.contentData.status = 9;
|
this.isFinishingStudyItem = true; // 设置标志位
|
||||||
apiVideoStudy.finishStudyItem(params).then(res => {
|
apiVideoStudy.finishStudyItem(params).then(res => {
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
|
this.contentData.status = 9;
|
||||||
this.contentData.progress = 100;
|
this.contentData.progress = 100;
|
||||||
} else {
|
} else {
|
||||||
console.log("记录完成学习失败:" + res.message + "," + res.error);
|
console.log("记录完成学习失败:" + res.message + "," + res.error);
|
||||||
}
|
}
|
||||||
|
this.isFinishingStudyItem = false; // 重置标志位
|
||||||
|
}).catch(error => {
|
||||||
|
console.error("记录完成学习出错:", error);
|
||||||
|
this.isFinishingStudyItem = false; // 出错时也重置标志位
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1800,7 +1811,7 @@
|
|||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
.course-playbox {
|
.course-playbox {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
min-height: 400px;
|
//min-height: 400px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.course-player-container {
|
.course-player-container {
|
||||||
@@ -1959,16 +1970,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.player-box {
|
.player-box {
|
||||||
position: relative;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
height: 187px;
|
height: 187px;
|
||||||
background: rgba(74, 74, 74, .5);
|
background: rgba(74, 74, 74, .8);
|
||||||
border-radius: 33px;
|
border-radius: 33px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
top: 50%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
|
||||||
.player-praise {
|
.player-praise {
|
||||||
margin-top: 25px;
|
margin-top: 25px;
|
||||||
|
|||||||
Reference in New Issue
Block a user