|
@@ -303,13 +303,14 @@
|
|
class="allBox"
|
|
class="allBox"
|
|
v-for="(sin, sIndex) in sInfo"
|
|
v-for="(sin, sIndex) in sInfo"
|
|
:key="sIndex"
|
|
:key="sIndex"
|
|
|
|
+
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
class="zyBox"
|
|
class="zyBox"
|
|
v-if="sin.course"
|
|
v-if="sin.course"
|
|
:class="{ fullZyBox: full }"
|
|
:class="{ fullZyBox: full }"
|
|
>
|
|
>
|
|
- <div class="top">
|
|
|
|
|
|
+ <div class="top" :id="`${sin.stage}+${sin.task}`">
|
|
<div class="jdName">
|
|
<div class="jdName">
|
|
<div>
|
|
<div>
|
|
{{
|
|
{{
|
|
@@ -1427,14 +1428,16 @@
|
|
</div>
|
|
</div>
|
|
<div
|
|
<div
|
|
class="worksTarget"
|
|
class="worksTarget"
|
|
- v-if="worksDetail[sIndex].eList[0].target"
|
|
|
|
|
|
+ v-if="isShow(worksDetail[sIndex]
|
|
|
|
+ .eList)"
|
|
>
|
|
>
|
|
<span>目标</span>
|
|
<span>目标</span>
|
|
</div>
|
|
</div>
|
|
<!-- {{ worksDetail[sIndex] }} -->
|
|
<!-- {{ worksDetail[sIndex] }} -->
|
|
<div
|
|
<div
|
|
class="worksTargetCon"
|
|
class="worksTargetCon"
|
|
- v-if="worksDetail[sIndex].eList[0].target"
|
|
|
|
|
|
+ v-if="isShow(worksDetail[sIndex]
|
|
|
|
+ .eList)"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
v-for="(item, tarIndex) in worksDetail[sIndex]
|
|
v-for="(item, tarIndex) in worksDetail[sIndex]
|
|
@@ -1856,6 +1859,19 @@ export default {
|
|
}
|
|
}
|
|
return (sco / (num - 1)).toFixed(1);
|
|
return (sco / (num - 1)).toFixed(1);
|
|
};
|
|
};
|
|
|
|
+ },
|
|
|
|
+ isShow(){
|
|
|
|
+ return function (val) {
|
|
|
|
+ let num = 0
|
|
|
|
+
|
|
|
|
+ val.forEach(i => {
|
|
|
|
+ if (i.target) {
|
|
|
|
+ num++
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return num*1
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -3297,12 +3313,15 @@ export default {
|
|
var imgHeight = (592.28 / contentWidth) * contentHeight; // A4总高度
|
|
var imgHeight = (592.28 / contentWidth) * contentHeight; // A4总高度
|
|
var pageData = canvas.toDataURL("image/jpeg", 1.0);
|
|
var pageData = canvas.toDataURL("image/jpeg", 1.0);
|
|
|
|
|
|
- var pdf = new jspdf("", "pt", "a4");
|
|
|
|
|
|
+ // var pdf = new jspdf("", "pt", "a4");
|
|
|
|
+ var pdf = new jspdf('', 'pt', [contentWidth, contentHeight]);
|
|
|
|
+
|
|
|
|
|
|
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
|
|
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
|
|
//当内容未超过pdf一页显示的范围,无需分页
|
|
//当内容未超过pdf一页显示的范围,无需分页
|
|
// if (leftHeight < pageHeight) {
|
|
// if (leftHeight < pageHeight) {
|
|
- pdf.addImage(pageData, "JPEG", 10, 0, imgWidth - 20, imgHeight - 20);
|
|
|
|
|
|
+ // pdf.addImage(pageData, "JPEG", 10, 0, imgWidth - 20, imgHeight - 20);
|
|
|
|
+ pdf.addImage(pageData, 'JPEG', 0, 0, contentWidth, contentHeight );
|
|
|
|
|
|
pdf.save(
|
|
pdf.save(
|
|
this.allWorks.course + "-" + this.allWorks.sName + "学生作业集.pdf"
|
|
this.allWorks.course + "-" + this.allWorks.sName + "学生作业集.pdf"
|
|
@@ -3530,15 +3549,22 @@ export default {
|
|
this.dyList2[s].isOpen = !this.dyList2[s].isOpen;
|
|
this.dyList2[s].isOpen = !this.dyList2[s].isOpen;
|
|
},
|
|
},
|
|
openTask(s, i, dyi, navi) {
|
|
openTask(s, i, dyi, navi) {
|
|
|
|
+ console.log('openTask5',s, i, dyi, navi);
|
|
|
|
|
|
if (!this.dyList2[dyi].taskList[navi].isWork) {
|
|
if (!this.dyList2[dyi].taskList[navi].isWork) {
|
|
this.$message.warning("该任务暂时没提交作业");
|
|
this.$message.warning("该任务暂时没提交作业");
|
|
} else {
|
|
} else {
|
|
|
|
+ const element = document.getElementById(`${s}+${i}`);
|
|
|
|
+ if (element) {
|
|
|
|
+ element.scrollIntoView({
|
|
|
|
+ behavior: 'smooth'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
var a = s + "-" + i;
|
|
var a = s + "-" + i;
|
|
- var b = document.getElementById(a);
|
|
|
|
- var d = b.getAttribute("scrollindex");
|
|
|
|
- var c = document.getElementsByClassName("shuBox")[0];
|
|
|
|
- c.scrollTop = parseInt(d) * 375;
|
|
|
|
|
|
+ // var b = document.getElementById(a);
|
|
|
|
+ // var d = b.getAttribute("scrollindex");
|
|
|
|
+ // var c = document.getElementsByClassName("shuBox")[0];
|
|
|
|
+ // c.scrollTop = parseInt(d) * 375;
|
|
this.stageIndex = s;
|
|
this.stageIndex = s;
|
|
this.taskCount = i;
|
|
this.taskCount = i;
|
|
this.navId = a;
|
|
this.navId = a;
|
|
@@ -4134,10 +4160,16 @@ export default {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
color: #7c7c7c;
|
|
color: #7c7c7c;
|
|
width: 100%;
|
|
width: 100%;
|
|
- margin-bottom: 10px;
|
|
|
|
|
|
+ /* margin-bottom: 10px; */
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
+ padding: 15px 20px 15px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ z-index: 99;
|
|
|
|
+ background-color:#ededed;
|
|
|
|
+ position: sticky;
|
|
|
|
+ top: 0;
|
|
}
|
|
}
|
|
|
|
|
|
.course_t {
|
|
.course_t {
|
|
@@ -4321,7 +4353,8 @@ export default {
|
|
.dialog_diy2 >>> .el-dialog__body,
|
|
.dialog_diy2 >>> .el-dialog__body,
|
|
.dialog_diy2 >>> .el-dialog__footer {
|
|
.dialog_diy2 >>> .el-dialog__footer {
|
|
background: #ededed;
|
|
background: #ededed;
|
|
- padding: 15px 20px;
|
|
|
|
|
|
+ /* padding: 15px 20px; */
|
|
|
|
+ padding: 0;
|
|
}
|
|
}
|
|
|
|
|
|
.a_addBox2 {
|
|
.a_addBox2 {
|
|
@@ -4372,7 +4405,7 @@ export default {
|
|
align-items: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
.a_add_body >>> .el-radio__label{
|
|
.a_add_body >>> .el-radio__label{
|
|
- font-size: 14px !important;
|
|
|
|
|
|
+font-size: 14px !important;
|
|
}
|
|
}
|
|
|
|
|
|
.a_add_input {
|
|
.a_add_input {
|
|
@@ -4898,7 +4931,9 @@ ol {
|
|
align-items: flex-start;
|
|
align-items: flex-start;
|
|
width: 100%;
|
|
width: 100%;
|
|
height: calc(100% - 60px);
|
|
height: calc(100% - 60px);
|
|
- overflow: auto;
|
|
|
|
|
|
+ padding: 0 20px 15px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ /* overflow: auto; */
|
|
}
|
|
}
|
|
|
|
|
|
.right_score {
|
|
.right_score {
|
|
@@ -4911,11 +4946,11 @@ ol {
|
|
width: 20%;
|
|
width: 20%;
|
|
margin-right: 10px;
|
|
margin-right: 10px;
|
|
background: rgb(255, 255, 255);
|
|
background: rgb(255, 255, 255);
|
|
- /* padding-right: 10px; */
|
|
|
|
- /* height: 500px; */
|
|
|
|
- /* height: 100%; */
|
|
|
|
- min-height: 800px;
|
|
|
|
|
|
+ height: calc(100vh - 178px);
|
|
|
|
+ overflow: auto;
|
|
border-radius: 5px;
|
|
border-radius: 5px;
|
|
|
|
+ position: sticky;
|
|
|
|
+ top: 70px;
|
|
}
|
|
}
|
|
|
|
|
|
.cTitle {
|
|
.cTitle {
|
|
@@ -5111,7 +5146,9 @@ ol {
|
|
/* height: 500px; */
|
|
/* height: 500px; */
|
|
height: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+.shuBox > .allBox:last-child {
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+}
|
|
.answerbox {
|
|
.answerbox {
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-direction: row;
|
|
@@ -5166,11 +5203,15 @@ ol {
|
|
flex-direction: row;
|
|
flex-direction: row;
|
|
flex-wrap: nowrap;
|
|
flex-wrap: nowrap;
|
|
justify-content: flex-end;
|
|
justify-content: flex-end;
|
|
- margin: 10px 0;
|
|
|
|
|
|
+ /* margin: 10px 0; */
|
|
|
|
+ margin: 0px 0 20px;
|
|
|
|
+ padding: 0 20px;
|
|
|
|
+ box-sizing: border-box;
|
|
}
|
|
}
|
|
|
|
|
|
.fullStyle >>> .el-dialog__body {
|
|
.fullStyle >>> .el-dialog__body {
|
|
- height: calc(100% - 68px) !important;
|
|
|
|
|
|
+ height: calc(100% - 40px) !important;
|
|
|
|
+ /* height: 100%; */
|
|
overflow: auto;
|
|
overflow: auto;
|
|
}
|
|
}
|
|
|
|
|