|
@@ -762,30 +762,40 @@
|
|
|
>
|
|
|
作业预览
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="worksDetailBox"
|
|
|
- v-if="worksStudent[toolIndex].length > 0"
|
|
|
- >
|
|
|
+ <div>
|
|
|
<div
|
|
|
- class="works"
|
|
|
- style="width: 200px; height: 140px"
|
|
|
- v-for="(w, wIndex) in worksStudent[toolIndex]"
|
|
|
- :key="wIndex"
|
|
|
+ class="worksDetailBox"
|
|
|
+ style="width: calc(100% - 30%)"
|
|
|
+ v-if="worksStudent[toolIndex].length > 0"
|
|
|
>
|
|
|
- <!-- @click="previewImg(w.works)" -->
|
|
|
- <div class="workImg">
|
|
|
- <img
|
|
|
- src="../assets/icon/works/noImg.png"
|
|
|
- @click="openTools(4, toolIndex, taskCount, w.works)"
|
|
|
- alt
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="worksName">
|
|
|
- 姓名:
|
|
|
- <span>{{ w.sName }}</span>
|
|
|
+ <div
|
|
|
+ class="works"
|
|
|
+ style="width: 200px; height: 140px"
|
|
|
+ v-for="(w, wIndex) in worksStudent[toolIndex]"
|
|
|
+ :key="wIndex"
|
|
|
+ >
|
|
|
+ <!-- @click="previewImg(w.works)" -->
|
|
|
+ <div class="workImg">
|
|
|
+ <img
|
|
|
+ src="../assets/icon/works/noImg.png"
|
|
|
+ @click="
|
|
|
+ openTools(4, toolIndex, taskCount, w.works)
|
|
|
+ "
|
|
|
+ alt
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="worksName">
|
|
|
+ 姓名:
|
|
|
+ <span>{{ w.sName }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <AskStatic
|
|
|
+ :askJSON="worksStudent[toolIndex][0].works"
|
|
|
+ :checkJson="checkJson[toolIndex]"
|
|
|
+ ></AskStatic>
|
|
|
</div>
|
|
|
+
|
|
|
<div
|
|
|
style="
|
|
|
padding-top: 15px;
|
|
@@ -1384,6 +1394,76 @@
|
|
|
</div>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div
|
|
|
+ class="vedioBox"
|
|
|
+ v-if="
|
|
|
+ chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
|
|
|
+ .eList &&
|
|
|
+ chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
|
|
|
+ .eList.length &&
|
|
|
+ chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
|
|
|
+ .eList.length > 0
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="queTop"
|
|
|
+ style="
|
|
|
+ font-size: 25px;
|
|
|
+ padding: 20px 0 20px 30px;
|
|
|
+ font-weight: bold;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <!-- <div class="question" style="width: 30px">
|
|
|
+ <img src="../assets/icon/toolIcon.png" alt />
|
|
|
+ </div>
|
|
|
+ <div class="queTitle">
|
|
|
+ <div>工具</div>
|
|
|
+ </div>-->
|
|
|
+ 评一评
|
|
|
+ </div>
|
|
|
+ <div class="elist_input">
|
|
|
+ <div
|
|
|
+ v-for="(eItem, eIndex) in chapInfoList[courseType]
|
|
|
+ .chapterInfo[0].taskJson[taskCount].eList"
|
|
|
+ :key="eIndex"
|
|
|
+ class="elist_input_box"
|
|
|
+ >
|
|
|
+ <div style="font-size: 20px; padding-bottom: 15px">
|
|
|
+ 评价{{ eIndex + 1 }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ align-items: center;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <span>评价名称:</span>
|
|
|
+ <span>{{ eItem.value }} </span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ padding-left: 25px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span>评星等级:</span>
|
|
|
+ <el-rate v-model="eItem.score" disabled></el-rate>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="elist_inptu_text">
|
|
|
+ <span>评价描述:</span>
|
|
|
+ <span>{{ eItem.detail }} </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<!-- <div
|
|
|
class="project_box"
|
|
|
style="margin-top: 15px; padding-bottom: 30px"
|
|
@@ -1806,10 +1886,11 @@
|
|
|
<script>
|
|
|
import "../common/aws-sdk-2.235.1.min.js";
|
|
|
import pdf from "./components/pdf2";
|
|
|
+import AskStatic from "./components/askStatic";
|
|
|
import EditorBar from "../components/tools/wangEnduit.vue";
|
|
|
import Time from "../components/tools/time.vue";
|
|
|
export default {
|
|
|
- components: { EditorBar, Time, pdf },
|
|
|
+ components: { EditorBar, Time, pdf, AskStatic },
|
|
|
data() {
|
|
|
return {
|
|
|
dialogVisible: false,
|
|
@@ -1916,6 +1997,7 @@ export default {
|
|
|
askTitle: "",
|
|
|
askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
},
|
|
|
+ checkJson: [],
|
|
|
askList: [],
|
|
|
answerList: [],
|
|
|
navList: [],
|
|
@@ -2067,7 +2149,6 @@ export default {
|
|
|
for (var z = 0; z < this.isWorksS[i].length; z++) {
|
|
|
studentK.push(this.isWorksS[i][z].uid);
|
|
|
}
|
|
|
- console.log(studentK);
|
|
|
studentK = studentK.join(",");
|
|
|
for (var j = 0; j < a.length; j++) {
|
|
|
if (studentK.indexOf(a[j].userid) == -1) {
|
|
@@ -2137,6 +2218,23 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // for (var k = 0; k < b.length; k++) {
|
|
|
+ // var data = b[k];
|
|
|
+ // if (data.tool == 4) {
|
|
|
+ // var checkL = JSON.parse(data.content)[0].anwer.split(",");
|
|
|
+ // for (var z = 0; z < checkL.length; z++) {
|
|
|
+ // this.checkJson.push({ checkCount: [], checkPerent: [] });
|
|
|
+ // if (!this.checkJson[z].checkCount) {
|
|
|
+ // this.checkJson[z].checkCount = [];
|
|
|
+ // this.checkJson[z].checkCount.length = this.askJson.askJson[z].askItem;
|
|
|
+ // }
|
|
|
+ // this.checkJson[z].checkCount[parseInt(checkL[z])]
|
|
|
+ // ? this.checkJson[z].checkCount[parseInt(checkL[z])]++
|
|
|
+ // : (this.checkJson[z].checkCount[parseInt(checkL[z])] = 1);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
console.error(err);
|
|
@@ -2161,8 +2259,31 @@ export default {
|
|
|
for (var i = 0; i < a.length; i++) {
|
|
|
this.worksStudent[i] = [];
|
|
|
this.isWorksS[i] = [];
|
|
|
+ this.checkJson[i] = [];
|
|
|
for (var j = 0; j < b.length; j++) {
|
|
|
+ var data = b[j];
|
|
|
if (i == b[j].tool) {
|
|
|
+ if (data.tool == 4) {
|
|
|
+ var checkL = JSON.parse(data.content)[0].anwer.split(",");
|
|
|
+ for (var z = 0; z < checkL.length; z++) {
|
|
|
+ if (!this.checkJson[i][z]) {
|
|
|
+ this.checkJson[i].push({ checkCount: [] });
|
|
|
+ }
|
|
|
+ if (!this.checkJson[i][z].checkCount.length) {
|
|
|
+ this.checkJson[i][z].checkCount = [];
|
|
|
+ let _askItemCount = JSON.parse(data.content)[0].askJson
|
|
|
+ .askJson[z].askItem;
|
|
|
+ for (var aic = 0; aic < _askItemCount; aic++) {
|
|
|
+ this.checkJson[i][z].checkCount.push(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.checkJson[i][z].checkCount[parseInt(checkL[z])]
|
|
|
+ ? this.checkJson[i][z].checkCount[parseInt(checkL[z])]++
|
|
|
+ : (this.checkJson[i][z].checkCount[
|
|
|
+ parseInt(checkL[z])
|
|
|
+ ] = 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (b[j].type == 1 || b[j].type == 4) {
|
|
|
if (
|
|
|
c.indexOf(
|
|
@@ -2195,7 +2316,31 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ for (var i = 0; i < a.length; i++) {
|
|
|
+ for (var j = 0; j < b.length; j++) {
|
|
|
+ var data = b[j];
|
|
|
+ if (i == b[j].tool) {
|
|
|
+ if (data.tool == 4) {
|
|
|
+ for (var z = 0; z < this.checkJson[i].length; z++) {
|
|
|
+ this.checkJson[i][z].checkPerent = [];
|
|
|
+ for (
|
|
|
+ var k = 0;
|
|
|
+ k < this.checkJson[i][z].checkCount.length;
|
|
|
+ k++
|
|
|
+ ) {
|
|
|
+ this.checkJson[i][z].checkPerent.push(
|
|
|
+ Math.round(
|
|
|
+ (this.checkJson[i][z].checkCount[k] /
|
|
|
+ parseInt(this.worksStudent[i].length)) *
|
|
|
+ 100
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
this.selectWorksStudent();
|
|
|
})
|
|
|
.catch((err) => {
|
|
@@ -2513,7 +2658,6 @@ export default {
|
|
|
background: "rgba(255, 255, 255, 0.7)",
|
|
|
target: document.querySelector(".student_table"),
|
|
|
});
|
|
|
- console.log(this.navList);
|
|
|
// this.navList[0].isOpen = false;
|
|
|
// this.navList[this.courseType].isOpen = true;
|
|
|
// this.courseType = this.courseTypeLine;
|
|
@@ -2768,8 +2912,7 @@ export default {
|
|
|
this.showPDF = false;
|
|
|
this.dialogVisible3 = true;
|
|
|
} else if (
|
|
|
- f.split(".")[f.split(".").length - 1].toLocaleUpperCase() ==
|
|
|
- "PDF"
|
|
|
+ f.split(".")[f.split(".").length - 1].toLocaleUpperCase() == "PDF"
|
|
|
) {
|
|
|
this.pptImgUrl = f;
|
|
|
this.showPDF = true;
|
|
@@ -2779,11 +2922,6 @@ export default {
|
|
|
downFile(f, i) {
|
|
|
this.pptImgUrl1 = "";
|
|
|
var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
|
|
|
- console.log(
|
|
|
- a.indexOf(
|
|
|
- f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
|
|
|
- )
|
|
|
- );
|
|
|
if (
|
|
|
a.indexOf(
|
|
|
f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
|
|
@@ -3420,6 +3558,7 @@ export default {
|
|
|
max-height: 105px;
|
|
|
overflow: auto;
|
|
|
height: 70px;
|
|
|
+ word-break: break-word;
|
|
|
}
|
|
|
|
|
|
.file {
|
|
@@ -4358,4 +4497,60 @@ export default {
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
}
|
|
|
+.elist_input_box {
|
|
|
+ display: flex;
|
|
|
+ align-items: flex-start;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ padding: 10px 0 15px 30px;
|
|
|
+ flex-direction: column;
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input .elist_input_box input {
|
|
|
+ font: inherit;
|
|
|
+ color: currentColor;
|
|
|
+ width: 200px;
|
|
|
+ padding: 8px 14px;
|
|
|
+ display: block;
|
|
|
+ min-width: 0;
|
|
|
+ outline: none;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.23);
|
|
|
+ border-radius: 4px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ background: #fff;
|
|
|
+ margin: 0 20px 0 0;
|
|
|
+}
|
|
|
+.elist_input .elist_input_box span {
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ color: rgb(82, 82, 82);
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input .elist_input_box .remove {
|
|
|
+ height: 20px;
|
|
|
+ width: 20px;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ background-position: unset;
|
|
|
+ margin-left: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input_box >>> .el-rate {
|
|
|
+ display: flex;
|
|
|
+ height: 36px;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input_box .elist_inptu_text {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input_box .elist_inptu_text input {
|
|
|
+ width: 500px;
|
|
|
+}
|
|
|
+
|
|
|
+.elist_input_box >>> .el-rate__icon {
|
|
|
+ font-size: 24px;
|
|
|
+}
|
|
|
</style>
|