|
@@ -1246,7 +1246,10 @@
|
|
|
<div class="lecture-notes">
|
|
<div class="lecture-notes">
|
|
|
<div class="lecture-notes__content clearfix">
|
|
<div class="lecture-notes__content clearfix">
|
|
|
<div class="left-box">
|
|
<div class="left-box">
|
|
|
- <div class="textarea clearfix">
|
|
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="textarea clearfix"
|
|
|
|
|
+ v-if="isPlayRebuild > 0"
|
|
|
|
|
+ >
|
|
|
<el-input
|
|
<el-input
|
|
|
resize="none"
|
|
resize="none"
|
|
|
rows="3"
|
|
rows="3"
|
|
@@ -1344,7 +1347,6 @@
|
|
|
>
|
|
>
|
|
|
预览
|
|
预览
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- <div class="btn">打印</div> -->
|
|
|
|
|
<div
|
|
<div
|
|
|
class="btn"
|
|
class="btn"
|
|
|
@click="
|
|
@click="
|
|
@@ -1363,22 +1365,34 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="lecture-list__footer">
|
|
|
|
|
|
|
+ <div class="lecture-list__footer" v-if="showPdf">
|
|
|
<div class="lecture-scan">
|
|
<div class="lecture-scan">
|
|
|
<div class="lecture-scan__header">
|
|
<div class="lecture-scan__header">
|
|
|
{{ courseHandoutsData.urlName }}
|
|
{{ courseHandoutsData.urlName }}
|
|
|
</div>
|
|
</div>
|
|
|
<div class="lecture-scan__body">
|
|
<div class="lecture-scan__body">
|
|
|
- <iframe
|
|
|
|
|
|
|
+ <pdf
|
|
|
class="iframe"
|
|
class="iframe"
|
|
|
:src="
|
|
:src="
|
|
|
$tools.splitImgHost(
|
|
$tools.splitImgHost(
|
|
|
courseHandoutsData.handoutsUrl
|
|
courseHandoutsData.handoutsUrl
|
|
|
)
|
|
)
|
|
|
"
|
|
"
|
|
|
|
|
+ v-for="i in numPages"
|
|
|
|
|
+ :key="i"
|
|
|
|
|
+ :page="i"
|
|
|
|
|
+ ref="pdf"
|
|
|
|
|
+ ></pdf>
|
|
|
|
|
+ <iframe
|
|
|
|
|
+ id="printIframe"
|
|
|
|
|
+ :src="
|
|
|
|
|
+ $tools.splitImgHost(
|
|
|
|
|
+ courseHandoutsData.handoutsUrl
|
|
|
|
|
+ )
|
|
|
|
|
+ "
|
|
|
frameborder="0"
|
|
frameborder="0"
|
|
|
|
|
+ style="display: none"
|
|
|
></iframe>
|
|
></iframe>
|
|
|
- <!-- <img src="@/assets/banner.png" alt="" /> -->
|
|
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -1439,12 +1453,14 @@
|
|
|
type="primary"
|
|
type="primary"
|
|
|
v-if="!isTaking"
|
|
v-if="!isTaking"
|
|
|
class="take"
|
|
class="take"
|
|
|
|
|
+ :loading="loading"
|
|
|
@click="reTake"
|
|
@click="reTake"
|
|
|
>重拍</el-button
|
|
>重拍</el-button
|
|
|
>
|
|
>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
v-if="!isTaking"
|
|
v-if="!isTaking"
|
|
|
|
|
+ :loading="loading"
|
|
|
class="take"
|
|
class="take"
|
|
|
@click="takeOk"
|
|
@click="takeOk"
|
|
|
>确认</el-button
|
|
>确认</el-button
|
|
@@ -1668,24 +1684,37 @@
|
|
|
: ''
|
|
: ''
|
|
|
"
|
|
"
|
|
|
>
|
|
>
|
|
|
- <div style="display: inline-block; vertical-align: top">
|
|
|
|
|
|
|
+ <div class="upload-box">
|
|
|
<div
|
|
<div
|
|
|
:style="
|
|
:style="
|
|
|
item.fieldKey === 'recent_photos'
|
|
item.fieldKey === 'recent_photos'
|
|
|
? 'width: 120px; height: 169px;background:url(' +
|
|
? 'width: 120px; height: 169px;background:url(' +
|
|
|
require('@/assets/info_1.png') +
|
|
require('@/assets/info_1.png') +
|
|
|
- ') no-repeat center;background-size:cover;'
|
|
|
|
|
|
|
+ ') no-repeat center;background-size:cover;position:relative;'
|
|
|
: item.fieldKey === 'idcard_face_photo'
|
|
: item.fieldKey === 'idcard_face_photo'
|
|
|
? 'width: 120px; height: 82px;background:url(' +
|
|
? 'width: 120px; height: 82px;background:url(' +
|
|
|
require('@/assets/info_2.png') +
|
|
require('@/assets/info_2.png') +
|
|
|
- ') no-repeat center;background-size:cover;'
|
|
|
|
|
|
|
+ ') no-repeat center;background-size:cover;position:relative;'
|
|
|
: item.fieldKey === 'idcard_national_photo'
|
|
: item.fieldKey === 'idcard_national_photo'
|
|
|
? 'width: 120px; height: 82px;background:url(' +
|
|
? 'width: 120px; height: 82px;background:url(' +
|
|
|
require('@/assets/info_3.png') +
|
|
require('@/assets/info_3.png') +
|
|
|
- ') no-repeat center;background-size:cover;'
|
|
|
|
|
|
|
+ ') no-repeat center;background-size:cover;position:relative;'
|
|
|
: ''
|
|
: ''
|
|
|
"
|
|
"
|
|
|
>
|
|
>
|
|
|
|
|
+ <i
|
|
|
|
|
+ @click="deleteImg(item)"
|
|
|
|
|
+ class="el-icon-error"
|
|
|
|
|
+ v-if="
|
|
|
|
|
+ item.fieldKey === 'recent_photos'
|
|
|
|
|
+ ? fileList1[0]
|
|
|
|
|
+ : item.fieldKey === 'idcard_face_photo'
|
|
|
|
|
+ ? fileList2[0]
|
|
|
|
|
+ : item.fieldKey === 'idcard_national_photo'
|
|
|
|
|
+ ? fileList3[0]
|
|
|
|
|
+ : ''
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
<el-image
|
|
<el-image
|
|
|
style="width: 100%; height: 100%"
|
|
style="width: 100%; height: 100%"
|
|
|
:src="
|
|
:src="
|
|
@@ -1883,7 +1912,7 @@
|
|
|
:style="
|
|
:style="
|
|
|
'width: 120px; height: 120px;background:url(' +
|
|
'width: 120px; height: 120px;background:url(' +
|
|
|
require('@/assets/info_4.png') +
|
|
require('@/assets/info_4.png') +
|
|
|
- ') no-repeat center;background-size:cover;'
|
|
|
|
|
|
|
+ ') no-repeat center;background-size:cover;position:relative;'
|
|
|
"
|
|
"
|
|
|
>
|
|
>
|
|
|
<el-image
|
|
<el-image
|
|
@@ -1938,15 +1967,33 @@ import Header from "@/components/header/index";
|
|
|
import ToolBar from "@/components/toolbar/index";
|
|
import ToolBar from "@/components/toolbar/index";
|
|
|
import { mapGetters } from "vuex";
|
|
import { mapGetters } from "vuex";
|
|
|
import * as baseUrls from "@/axios.js";
|
|
import * as baseUrls from "@/axios.js";
|
|
|
|
|
+import pdf from "vue-pdf";
|
|
|
export default {
|
|
export default {
|
|
|
name: "CourseDetail",
|
|
name: "CourseDetail",
|
|
|
components: {
|
|
components: {
|
|
|
Footer,
|
|
Footer,
|
|
|
Header,
|
|
Header,
|
|
|
ToolBar,
|
|
ToolBar,
|
|
|
|
|
+ pdf,
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ numPages: 0,
|
|
|
|
|
+ showPdf: false,
|
|
|
|
|
+ // 总页数
|
|
|
|
|
+ pdfPages: 10,
|
|
|
|
|
+ // 当前页数
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ // 加载进度
|
|
|
|
|
+ loadedRatio: 10,
|
|
|
|
|
+ // 页面加载完成
|
|
|
|
|
+ curPageNum: 0,
|
|
|
|
|
+ // 放大系数 默认百分百
|
|
|
|
|
+ scale: 100,
|
|
|
|
|
+ // 旋转角度 ‘90’的倍数才有效
|
|
|
|
|
+ pageRotate: 0,
|
|
|
|
|
+ // 单击内部链接时触发 (目前我没有遇到使用场景)
|
|
|
|
|
+ page: 0,
|
|
|
bgColor: "#ccc",
|
|
bgColor: "#ccc",
|
|
|
recordObj: {},
|
|
recordObj: {},
|
|
|
showInfoDetailModal: false,
|
|
showInfoDetailModal: false,
|
|
@@ -2003,7 +2050,7 @@ export default {
|
|
|
duration: 0,
|
|
duration: 0,
|
|
|
noteParams: {
|
|
noteParams: {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
- pageSize: 4,
|
|
|
|
|
|
|
+ // pageSize: 4,
|
|
|
},
|
|
},
|
|
|
ossAvatarUrl: "", //照片地址
|
|
ossAvatarUrl: "", //照片地址
|
|
|
nowTime: 0,
|
|
nowTime: 0,
|
|
@@ -2225,6 +2272,7 @@ export default {
|
|
|
uploading: false,
|
|
uploading: false,
|
|
|
veryIdCard: "",
|
|
veryIdCard: "",
|
|
|
veryIdName: "",
|
|
veryIdName: "",
|
|
|
|
|
+ isPlayRebuild: false,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -2237,6 +2285,10 @@ export default {
|
|
|
this.orderGoodsId = this.$route.query.orderGoodsId;
|
|
this.orderGoodsId = this.$route.query.orderGoodsId;
|
|
|
this.gradeId = this.$route.query.gradeId;
|
|
this.gradeId = this.$route.query.gradeId;
|
|
|
|
|
|
|
|
|
|
+ if (this.$route.query.rebuild) {
|
|
|
|
|
+ this.courseTabIndex = "2";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
this.courseCourseList();
|
|
this.courseCourseList();
|
|
|
this.getbaseprofiletplists();
|
|
this.getbaseprofiletplists();
|
|
|
this.dictList();
|
|
this.dictList();
|
|
@@ -2248,13 +2300,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
async takeOk() {
|
|
async takeOk() {
|
|
|
- this.loading = this.$loading({
|
|
|
|
|
- lock: true,
|
|
|
|
|
- text: "上传中",
|
|
|
|
|
- spinner: "el-icon-loading",
|
|
|
|
|
- background: "rgba(0, 0, 0, 0.1)",
|
|
|
|
|
- target: document.querySelector(".section__body"),
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ this.loading = true;
|
|
|
let compareFaceData = await this.faceRecognition();
|
|
let compareFaceData = await this.faceRecognition();
|
|
|
|
|
|
|
|
if (compareFaceData >= 80) {
|
|
if (compareFaceData >= 80) {
|
|
@@ -2278,7 +2324,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
|
- this.loading.close();
|
|
|
|
|
|
|
+ this.loading = false;
|
|
|
console.log(err, "err");
|
|
console.log(err, "err");
|
|
|
this.$message({
|
|
this.$message({
|
|
|
type: "warning",
|
|
type: "warning",
|
|
@@ -2293,7 +2339,7 @@ export default {
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
- this.loading.close();
|
|
|
|
|
|
|
+ this.loading = false;
|
|
|
this.reTake();
|
|
this.reTake();
|
|
|
}, 2000);
|
|
}, 2000);
|
|
|
return;
|
|
return;
|
|
@@ -2336,6 +2382,12 @@ export default {
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
+ // 页面加载成功 当前页数
|
|
|
|
|
+ pageLoaded(e) {
|
|
|
|
|
+ this.$emit("current", e);
|
|
|
|
|
+ this.curPageNum = e;
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
changePhotoListHeader1(params, fileList) {
|
|
changePhotoListHeader1(params, fileList) {
|
|
|
console.log(params);
|
|
console.log(params);
|
|
|
const file = params.raw;
|
|
const file = params.raw;
|
|
@@ -2686,7 +2738,8 @@ export default {
|
|
|
let base = await this.$tools.imageToBase64(
|
|
let base = await this.$tools.imageToBase64(
|
|
|
this.$tools.splitImgHost(this.infoForm.idcard_face_photo)
|
|
this.$tools.splitImgHost(this.infoForm.idcard_face_photo)
|
|
|
);
|
|
);
|
|
|
-
|
|
|
|
|
|
|
+ console.log(base);
|
|
|
|
|
+ console.log(this.$tools.splitImgHost(this.infoForm.idcard_face_photo));
|
|
|
let resData = await this.$request.faceCertificationIDCardOCR({
|
|
let resData = await this.$request.faceCertificationIDCardOCR({
|
|
|
cardSide: 1, //1人像 2 国徽
|
|
cardSide: 1, //1人像 2 国徽
|
|
|
cardImageBase64: base,
|
|
cardImageBase64: base,
|
|
@@ -2715,13 +2768,13 @@ export default {
|
|
|
this.$tools.splitImgHost(this.infoForm.recent_photos)
|
|
this.$tools.splitImgHost(this.infoForm.recent_photos)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
- let data = {
|
|
|
|
|
|
|
+ let newData = {
|
|
|
idNum: this.veryIdCard,
|
|
idNum: this.veryIdCard,
|
|
|
idName: this.veryIdName,
|
|
idName: this.veryIdName,
|
|
|
oneInchPhotos: base64,
|
|
oneInchPhotos: base64,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- this.$request.facCertificationImageRecognition(data).then((res1) => {
|
|
|
|
|
|
|
+ this.$request.facCertificationImageRecognition(newData).then((res1) => {
|
|
|
if (res1.data.sim >= 70) {
|
|
if (res1.data.sim >= 70) {
|
|
|
var self = this;
|
|
var self = this;
|
|
|
if (self.remarkStatus) {
|
|
if (self.remarkStatus) {
|
|
@@ -2798,7 +2851,7 @@ export default {
|
|
|
orderGoodsId: this.orderGoodsId,
|
|
orderGoodsId: this.orderGoodsId,
|
|
|
keyValue: JSON.stringify(objs),
|
|
keyValue: JSON.stringify(objs),
|
|
|
};
|
|
};
|
|
|
- this.$api
|
|
|
|
|
|
|
+ this.$request
|
|
|
.addbaseprofiletp(datas)
|
|
.addbaseprofiletp(datas)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
this.uploading = false;
|
|
this.uploading = false;
|
|
@@ -2894,7 +2947,7 @@ export default {
|
|
|
orderGoodsId: this.orderGoodsId,
|
|
orderGoodsId: this.orderGoodsId,
|
|
|
keyValue: JSON.stringify(objs),
|
|
keyValue: JSON.stringify(objs),
|
|
|
};
|
|
};
|
|
|
- this.$api
|
|
|
|
|
|
|
+ this.$request
|
|
|
.addbaseprofiletp(datas)
|
|
.addbaseprofiletp(datas)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
this.uploading = false;
|
|
this.uploading = false;
|
|
@@ -3197,6 +3250,19 @@ export default {
|
|
|
this.$store.state.allowLoading = true;
|
|
this.$store.state.allowLoading = true;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
+ deleteImg(item) {
|
|
|
|
|
+ if (item.fieldKey == "recent_photos") {
|
|
|
|
|
+ this.fileList1 = [];
|
|
|
|
|
+ this.infoForm["recent_photos"] = "";
|
|
|
|
|
+ } else if (item.fieldKey == "idcard_face_photo") {
|
|
|
|
|
+ this.fileList2 = [];
|
|
|
|
|
+ this.infoForm["idcard_face_photo"] = "";
|
|
|
|
|
+ } else if (item.fieldKey == "idcard_national_photo") {
|
|
|
|
|
+ this.fileList3 = [];
|
|
|
|
|
+ this.infoForm["idcard_national_photo"] = "";
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* getbaseprofiletpgetInfo接口返回值result.data.data不存在的话说明是第一次填写资料
|
|
* getbaseprofiletpgetInfo接口返回值result.data.data不存在的话说明是第一次填写资料
|
|
|
*/
|
|
*/
|
|
@@ -3422,6 +3488,7 @@ export default {
|
|
|
var data = {
|
|
var data = {
|
|
|
imageStatus: int,
|
|
imageStatus: int,
|
|
|
gradeId: this.gradeId,
|
|
gradeId: this.gradeId,
|
|
|
|
|
+ orderGoodsId: this.orderGoodsId,
|
|
|
};
|
|
};
|
|
|
self.$request
|
|
self.$request
|
|
|
.getPolicy(data)
|
|
.getPolicy(data)
|
|
@@ -3454,7 +3521,7 @@ export default {
|
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
|
this.$message({
|
|
this.$message({
|
|
|
type: "warning",
|
|
type: "warning",
|
|
|
- message: "签名错误" + JSON.stringify(err.data),
|
|
|
|
|
|
|
+ message: "签名错误" + JSON.stringify(err),
|
|
|
});
|
|
});
|
|
|
return;
|
|
return;
|
|
|
});
|
|
});
|
|
@@ -3470,11 +3537,10 @@ export default {
|
|
|
gradeId: this.gradeId,
|
|
gradeId: this.gradeId,
|
|
|
})
|
|
})
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
- console.log(res, "res");
|
|
|
|
|
resolve(res.data);
|
|
resolve(res.data);
|
|
|
})
|
|
})
|
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
|
- this.loading.close();
|
|
|
|
|
|
|
+ this.loading = false;
|
|
|
this.$message({
|
|
this.$message({
|
|
|
type: "warning",
|
|
type: "warning",
|
|
|
message: err.msg,
|
|
message: err.msg,
|
|
@@ -3565,11 +3631,15 @@ export default {
|
|
|
courseChange() {
|
|
courseChange() {
|
|
|
this.noteParams = {
|
|
this.noteParams = {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
- pageSize: 4,
|
|
|
|
|
|
|
+ // pageSize: 4,
|
|
|
};
|
|
};
|
|
|
this.duration = 0;
|
|
this.duration = 0;
|
|
|
this.playSectionId = 0;
|
|
this.playSectionId = 0;
|
|
|
this.vid = "";
|
|
this.vid = "";
|
|
|
|
|
+ if (this.player) {
|
|
|
|
|
+ this.player.destroy();
|
|
|
|
|
+ }
|
|
|
|
|
+ this.player = "";
|
|
|
this.vidzb = "";
|
|
this.vidzb = "";
|
|
|
this.nowTime = Number(new Date().getTime() / 1000).toFixed(0);
|
|
this.nowTime = Number(new Date().getTime() / 1000).toFixed(0);
|
|
|
this.courseDetail(); //课程详情
|
|
this.courseDetail(); //课程详情
|
|
@@ -3981,10 +4051,12 @@ export default {
|
|
|
);
|
|
);
|
|
|
//播放视频
|
|
//播放视频
|
|
|
this.sectionItem = section;
|
|
this.sectionItem = section;
|
|
|
|
|
+ console.log(section, "section");
|
|
|
|
|
+ this.isPlayRebuild = section.rebuild;
|
|
|
this.moduleId = section.moduleId || 0;
|
|
this.moduleId = section.moduleId || 0;
|
|
|
this.chapterId = section.chapterId || 0;
|
|
this.chapterId = section.chapterId || 0;
|
|
|
this.playSectionId = section.sectionId || section.menuId;
|
|
this.playSectionId = section.sectionId || section.menuId;
|
|
|
- console.log(this.moduleId, this.chapterId, this.playSectionId);
|
|
|
|
|
|
|
+ // console.log(this.moduleId, this.chapterId, this.playSectionId);
|
|
|
await this.getPhotoLastRecord();
|
|
await this.getPhotoLastRecord();
|
|
|
this.recordObj = await this.getRecordLast();
|
|
this.recordObj = await this.getRecordLast();
|
|
|
this.getNoteList();
|
|
this.getNoteList();
|
|
@@ -4088,7 +4160,6 @@ export default {
|
|
|
let moduleId = section.moduleId || 0;
|
|
let moduleId = section.moduleId || 0;
|
|
|
let chapterId = section.chapterId || 0;
|
|
let chapterId = section.chapterId || 0;
|
|
|
let sectionId = section.sectionId || section.menuId;
|
|
let sectionId = section.sectionId || section.menuId;
|
|
|
-
|
|
|
|
|
if (
|
|
if (
|
|
|
moduleId == this.moduleId &&
|
|
moduleId == this.moduleId &&
|
|
|
chapterId == this.chapterId &&
|
|
chapterId == this.chapterId &&
|
|
@@ -4909,12 +4980,30 @@ export default {
|
|
|
noteClick(note) {
|
|
noteClick(note) {
|
|
|
if (this.vid) {
|
|
if (this.vid) {
|
|
|
//切换视频
|
|
//切换视频
|
|
|
- var polyvPlayerContext = this.player;
|
|
|
|
|
- polyvPlayerContext.changeVid(note.recordingUrl);
|
|
|
|
|
|
|
+ if (this.vid == note.recordingUrl) {
|
|
|
|
|
+ var polyvPlayerContext = this.player;
|
|
|
|
|
+ if (polyvPlayerContext) {
|
|
|
|
|
+ polyvPlayerContext.j2s_seekVideo(note.noteSecond);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var polyvPlayerContext = this.player;
|
|
|
|
|
+ if (polyvPlayerContext) {
|
|
|
|
|
+ polyvPlayerContext.changeVid(note.recordingUrl);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- this.vid = note.recordingUrl;
|
|
|
|
|
- note.sectionType = 3;
|
|
|
|
|
- this.initVideo(note);
|
|
|
|
|
|
|
+ var polyvPlayerContext = this.player;
|
|
|
|
|
+ console.log(polyvPlayerContext);
|
|
|
|
|
+ if (polyvPlayerContext) {
|
|
|
|
|
+ polyvPlayerContext.changeVid(note.recordingUrl);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.vid = note.recordingUrl;
|
|
|
|
|
+ this.moduleId = note.moduleId;
|
|
|
|
|
+ this.chapterId = note.chapterId;
|
|
|
|
|
+ this.playSectionId = note.sectionId;
|
|
|
|
|
+ note.sectionType = 3;
|
|
|
|
|
+ this.loadPlayerScript(this.loadPlayer);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
this.recordObj = { videoCurrentTime: note.noteSecond };
|
|
this.recordObj = { videoCurrentTime: note.noteSecond };
|
|
|
},
|
|
},
|
|
@@ -4968,6 +5057,10 @@ export default {
|
|
|
label: "重修目录",
|
|
label: "重修目录",
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
|
|
+
|
|
|
|
|
+ if (courseTabIndex == "2") {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
this.courseTabIndex = "1";
|
|
this.courseTabIndex = "1";
|
|
|
} else {
|
|
} else {
|
|
|
this.menuTab = [
|
|
this.menuTab = [
|
|
@@ -4989,6 +5082,14 @@ export default {
|
|
|
.courseHandouts(this.goodsData.handoutsId)
|
|
.courseHandouts(this.goodsData.handoutsId)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
this.courseHandoutsData = res.data;
|
|
this.courseHandoutsData = res.data;
|
|
|
|
|
+ const loadingTask = pdf.createLoadingTask(
|
|
|
|
|
+ this.$tools.splitImgHost(this.courseHandoutsData.handoutsUrl)
|
|
|
|
|
+ );
|
|
|
|
|
+ loadingTask.promise
|
|
|
|
|
+ .then((pdf) => {
|
|
|
|
|
+ this.numPages = pdf.numPages;
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {});
|
|
|
})
|
|
})
|
|
|
.catch((err) => {});
|
|
.catch((err) => {});
|
|
|
},
|
|
},
|
|
@@ -5023,15 +5124,46 @@ export default {
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
download(url, fileName) {
|
|
download(url, fileName) {
|
|
|
- var a = document.createElement("a");
|
|
|
|
|
- var event = new MouseEvent("click");
|
|
|
|
|
- a.download = fileName;
|
|
|
|
|
- a.href = url;
|
|
|
|
|
- a.dispatchEvent(event);
|
|
|
|
|
|
|
+ let xhr = new XMLHttpRequest();
|
|
|
|
|
+ xhr.open("get", url, true);
|
|
|
|
|
+ xhr.setRequestHeader("Content-Type", `application/pdf`);
|
|
|
|
|
+ xhr.responseType = "blob";
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ xhr.onload = function () {
|
|
|
|
|
+ if (this.status == 200) {
|
|
|
|
|
+ //接受二进制文件流
|
|
|
|
|
+ var blob = this.response;
|
|
|
|
|
+ that.downloadExportFile(blob, fileName);
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ xhr.send();
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ downloadExportFile(blob, tagFileName) {
|
|
|
|
|
+ let downloadElement = document.createElement("a");
|
|
|
|
|
+ let href = "";
|
|
|
|
|
+ if (typeof blob == "string") {
|
|
|
|
|
+ downloadElement.target = "_blank";
|
|
|
|
|
+ } else {
|
|
|
|
|
+ href = window.URL.createObjectURL(blob); //创建下载的链接
|
|
|
|
|
+ }
|
|
|
|
|
+ downloadElement.href = href;
|
|
|
|
|
+ downloadElement.download = tagFileName;
|
|
|
|
|
+ //下载后文件名
|
|
|
|
|
+ document.body.appendChild(downloadElement);
|
|
|
|
|
+ downloadElement.click(); //点击下载
|
|
|
|
|
+ document.body.removeChild(downloadElement); //下载完成移除元素
|
|
|
|
|
+ if (typeof blob != "string") {
|
|
|
|
|
+ window.URL.revokeObjectURL(href); //释放掉blob对象
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ print() {
|
|
|
|
|
+ document.getElementById("printIframe").contentWindow.print();
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
previvew(url) {
|
|
previvew(url) {
|
|
|
- window.open(url, "_blank");
|
|
|
|
|
|
|
+ this.showPdf = true;
|
|
|
},
|
|
},
|
|
|
noteSubmit() {
|
|
noteSubmit() {
|
|
|
let self = this;
|
|
let self = this;
|
|
@@ -5081,6 +5213,8 @@ export default {
|
|
|
noteText: this.textareaNote,
|
|
noteText: this.textareaNote,
|
|
|
noteDate: noteDate,
|
|
noteDate: noteDate,
|
|
|
noteSecond: noteSecond,
|
|
noteSecond: noteSecond,
|
|
|
|
|
+ moduleId: this.moduleId,
|
|
|
|
|
+ chapterId: this.chapterId,
|
|
|
};
|
|
};
|
|
|
this.$request.postNote(data).then((res) => {
|
|
this.$request.postNote(data).then((res) => {
|
|
|
this.$message({
|
|
this.$message({
|
|
@@ -5282,7 +5416,7 @@ export default {
|
|
|
|
|
|
|
|
.live-btn {
|
|
.live-btn {
|
|
|
margin-left: 20px;
|
|
margin-left: 20px;
|
|
|
- width: 32px;
|
|
|
|
|
|
|
+ width: 60px;
|
|
|
height: 20px;
|
|
height: 20px;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
background: #eeeeee;
|
|
background: #eeeeee;
|
|
@@ -5880,10 +6014,11 @@ export default {
|
|
|
|
|
|
|
|
&__body {
|
|
&__body {
|
|
|
height: 800px;
|
|
height: 800px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ overflow-y: scroll;
|
|
|
|
|
|
|
|
.iframe {
|
|
.iframe {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
- height: 100%;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -5995,6 +6130,21 @@ export default {
|
|
|
height: 300px;
|
|
height: 300px;
|
|
|
background: #ccc;
|
|
background: #ccc;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ .upload-box {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ vertical-align: top;
|
|
|
|
|
+
|
|
|
|
|
+ .el-icon-error {
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ z-index: 99;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 100%;
|
|
|
|
|
+ bottom: 100%;
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ color: red;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|