|
@@ -178,9 +178,7 @@
|
|
|
"
|
|
|
>
|
|
|
<div
|
|
|
- style="
|
|
|
- padding: 20px;
|
|
|
- "
|
|
|
+ style="padding: 20px"
|
|
|
v-if="rw.taskDetail != ''"
|
|
|
v-html="rw.taskDetail ? rw.taskDetail : '暂无描述'"
|
|
|
></div>
|
|
@@ -905,6 +903,14 @@
|
|
|
/>
|
|
|
<div style="margin: 5px 0">学生评价</div>
|
|
|
</div>
|
|
|
+ <div v-if="tooC == 41">
|
|
|
+ <img
|
|
|
+ @click="addTools(tooC, toolIndex, taskCount)"
|
|
|
+ src="../assets/icon/thirdToolList/select.png"
|
|
|
+ alt
|
|
|
+ />
|
|
|
+ <div style="margin: 5px 0">选择填空</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -1765,6 +1771,69 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div
|
|
|
+ v-if="
|
|
|
+ worksStudent[jdIndex] &&
|
|
|
+ worksStudent[jdIndex][rwIndex] &&
|
|
|
+ tType &&
|
|
|
+ tType == 3 &&
|
|
|
+ tool.tool.indexOf(41) != -1
|
|
|
+ "
|
|
|
+ class="worksBox"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ style="padding-top: 15px; font-size: 18px"
|
|
|
+ v-if="
|
|
|
+ worksStudent[jdIndex][rwIndex][toolIndex].length > 0
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 作业预览
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="worksDetailBox"
|
|
|
+ v-if="
|
|
|
+ worksStudent[jdIndex][rwIndex][toolIndex].length > 0
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="works"
|
|
|
+ style="
|
|
|
+ width: 200px;
|
|
|
+ height: 140px;
|
|
|
+ margin: 10px 10px 10px 0;
|
|
|
+ border-radius: 15px;
|
|
|
+ box-shadow: 0 0 6px 1px #dfdada;
|
|
|
+ "
|
|
|
+ v-for="(w, wIndex) in worksStudent[jdIndex][rwIndex][
|
|
|
+ toolIndex
|
|
|
+ ]"
|
|
|
+ :key="wIndex"
|
|
|
+ >
|
|
|
+ <div class="workImg">
|
|
|
+ <img
|
|
|
+ src="../assets/icon/works/noImg.png"
|
|
|
+ @click="openXz(w, jdIndex, rwIndex, toolIndex)"
|
|
|
+ alt
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="worksName">
|
|
|
+ <div>{{ w.sName }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="padding-top: 15px; font-size: 18px">
|
|
|
+ 未提交
|
|
|
+ </div>
|
|
|
+ <div class="noWorksS">
|
|
|
+ <div
|
|
|
+ v-for="(s, sIndex) in noWorksS[toolIndex]"
|
|
|
+ :key="sIndex"
|
|
|
+ class="noWorksName"
|
|
|
+ >
|
|
|
+ {{ s.student }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- <div class="upload_toolBtn" @click="addImg($event)">
|
|
|
上传文件
|
|
@@ -2524,7 +2593,7 @@
|
|
|
<div class="commentList">
|
|
|
<div class="commentImg">
|
|
|
<img
|
|
|
- @click="
|
|
|
+ @click="
|
|
|
isLikes(
|
|
|
commentDetail.wid,
|
|
|
commentDetail.userid,
|
|
@@ -2701,6 +2770,93 @@
|
|
|
<el-button type="primary" @click="addBzWorks">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="选择填空"
|
|
|
+ :visible.sync="dialogVisibleSelect"
|
|
|
+ :append-to-body="true"
|
|
|
+ :width="isSelect ? '1000px' : '800px'"
|
|
|
+ :before-close="handleClose"
|
|
|
+ class="dialog_diy dialog_diy3"
|
|
|
+ >
|
|
|
+ <div v-if="selectJson">
|
|
|
+ <div class="select_box2">
|
|
|
+ <div class="select_box2_title">
|
|
|
+ <div>选择填空</div>
|
|
|
+ <div>请选择对应的答案进行答题!</div>
|
|
|
+ </div>
|
|
|
+ <div class="select_box2_box">
|
|
|
+ <div class="select_box2_img">
|
|
|
+ <img :src="selectJson.url" alt="" />
|
|
|
+ </div>
|
|
|
+ <div :class="isSelect ? 'rightWidthCss' : 'select_box2_answer'">
|
|
|
+ <div style="padding-top: 15px">
|
|
|
+ <div class="select_answer_title" v-if="isSelect">
|
|
|
+ {{ selectAnswer.stu }}
|
|
|
+ </div>
|
|
|
+ <div class="select_answer_title" v-else>
|
|
|
+ 根据题目选择对应答案
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="select_box2_answer_box"
|
|
|
+ v-for="(item2, checkIndex) in selectJson.select"
|
|
|
+ :key="checkIndex"
|
|
|
+ >
|
|
|
+ <span>{{ checkIndex + 1 }}、</span>
|
|
|
+ <el-select
|
|
|
+ :disabled="isSelect"
|
|
|
+ v-model="selectAnswer.answer[checkIndex]"
|
|
|
+ placeholder="请选择正确答案"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(e, eIndex) in selectJson.select"
|
|
|
+ :key="eIndex"
|
|
|
+ :label="e"
|
|
|
+ :value="eIndex"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="rightAnswerCss" v-if="isSelect && tType == 3">
|
|
|
+ <div
|
|
|
+ v-for="(a, aIndex) in selectJson.answer"
|
|
|
+ :key="aIndex"
|
|
|
+ class="rightAnswer"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-if="selectAnswer.answer[aIndex] == selectJson.answer[a]"
|
|
|
+ style="color: #767de1"
|
|
|
+ >
|
|
|
+ 回答正确
|
|
|
+ </div>
|
|
|
+ <div v-else>回答错误</div>
|
|
|
+ <div
|
|
|
+ style="margin-left: 10px"
|
|
|
+ v-if="selectAnswer.answer[aIndex] != selectJson.answer[a]"
|
|
|
+ >
|
|
|
+ 正确答案:
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ :class="
|
|
|
+ selectAnswer.answer[aIndex] == selectJson.answer[a]
|
|
|
+ ? 'blueCss'
|
|
|
+ : 'redCss'
|
|
|
+ "
|
|
|
+ >
|
|
|
+ {{ selectJson.select[a] }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="upAnswerCss">
|
|
|
+ <el-button type="primary" @click="addSelectAnswer"
|
|
|
+ >提交答案</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -2755,6 +2911,9 @@ export default {
|
|
|
ca: 0,
|
|
|
},
|
|
|
rateParams: [],
|
|
|
+ selectAnswer: [],
|
|
|
+ isSelect: false,
|
|
|
+ dialogVisibleSelect: false,
|
|
|
colors: ["#DFDFDF", "#DFDFDF", "#DFDFDF"],
|
|
|
studyJuri: [
|
|
|
{
|
|
@@ -3337,7 +3496,7 @@ export default {
|
|
|
|
|
|
if (b[j].stage == q && b[j].task == w) {
|
|
|
// 1、电子白板,3、思维导图,6协同文档,7思维网格 16、作业提交
|
|
|
- let _toolsAarry1 = [1, 3, 6, 7, 16, 40];
|
|
|
+ let _toolsAarry1 = [1, 3, 6, 7, 16, 40, 41];
|
|
|
let _toolsAarry2 = [4];
|
|
|
let _toolsAarry3 = [15];
|
|
|
for (var k = 0; k < p.length; k++) {
|
|
@@ -3367,7 +3526,8 @@ export default {
|
|
|
(b[j].type == 1 ||
|
|
|
b[j].type == 4 ||
|
|
|
b[j].type == 5 ||
|
|
|
- b[j].type == 6) &&
|
|
|
+ b[j].type == 6 ||
|
|
|
+ b[j].type == 7) &&
|
|
|
_toolsAarry1.indexOf(e[i].tool[0]) != -1
|
|
|
) {
|
|
|
if (
|
|
@@ -3425,6 +3585,19 @@ export default {
|
|
|
isLikes: isLikes,
|
|
|
commentJson: commentJson,
|
|
|
});
|
|
|
+ } else if (b[j].type == 7) {
|
|
|
+ this.worksStudent[q][w][i].push({
|
|
|
+ userid: b[j].userid,
|
|
|
+ wid: b[j].id,
|
|
|
+ works: b[j].content,
|
|
|
+ sName: b[j].name,
|
|
|
+ type: 5,
|
|
|
+ time: b[j].time,
|
|
|
+ likesCount: likesCount,
|
|
|
+ commentCount: commentCount,
|
|
|
+ isLikes: isLikes,
|
|
|
+ commentJson: commentJson,
|
|
|
+ });
|
|
|
} else {
|
|
|
this.worksStudent[q][w][i].push({
|
|
|
userid: b[j].userid,
|
|
@@ -4781,7 +4954,66 @@ export default {
|
|
|
|
|
|
this.isStar = false;
|
|
|
this.studentEvalDialogVisible = true;
|
|
|
+ } else if (t == 41) {
|
|
|
+ this.selectJson = this.chapInfoList[this.courseType].chapterInfo[0]
|
|
|
+ .taskJson[index].toolChoose[i].selectJson
|
|
|
+ ? JSON.parse(
|
|
|
+ JSON.stringify(
|
|
|
+ this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
|
|
|
+ index
|
|
|
+ ].toolChoose[i].selectJson
|
|
|
+ )
|
|
|
+ )
|
|
|
+ : { url: "", select: [], answer: [] };
|
|
|
+ this.isSelect = false;
|
|
|
+ this.dialogVisibleSelect = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ addSelectAnswer() {
|
|
|
+ let params = [
|
|
|
+ {
|
|
|
+ uid: this.userid,
|
|
|
+ cid: this.id,
|
|
|
+ stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
+ tool: this.toolindex,
|
|
|
+ content: this.selectAnswer,
|
|
|
+ type: 7,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ this.ajax
|
|
|
+ .post(this.$store.state.api + "addCourseWorks", params)
|
|
|
+ .then((res) => {
|
|
|
+ this.$message({
|
|
|
+ message: "提交成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.selectAnswer = [];
|
|
|
+ this.dialogVisibleSelect = false;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.$message.error("提交失败");
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ openXz(w, jd, rw, toolindex) {
|
|
|
+ this.selectJson = this.chapInfoList[jd].chapterInfo[0].taskJson[rw]
|
|
|
+ .toolChoose[toolindex].selectJson
|
|
|
+ ? JSON.parse(
|
|
|
+ JSON.stringify(
|
|
|
+ this.chapInfoList[jd].chapterInfo[0].taskJson[rw].toolChoose[
|
|
|
+ toolindex
|
|
|
+ ].selectJson
|
|
|
+ )
|
|
|
+ )
|
|
|
+ : { url: "", select: [], answer: [] };
|
|
|
+ var a = w.works.split(",");
|
|
|
+ for (var k = 0; k < a.length; k++) {
|
|
|
+ a[k] = parseInt(a[k]);
|
|
|
}
|
|
|
+ this.selectAnswer = { answer: a, stu: w.sName };
|
|
|
+ this.isSelect = true;
|
|
|
+ this.dialogVisibleSelect = true;
|
|
|
},
|
|
|
openPj(w, jd, rw, toolindex) {
|
|
|
this.isStar = true;
|
|
@@ -4988,7 +5220,7 @@ export default {
|
|
|
flex-direction: column !important;
|
|
|
align-items: center !important;
|
|
|
}
|
|
|
- .dialog_diy1 >>> .el-dialog{
|
|
|
+ .dialog_diy1 >>> .el-dialog {
|
|
|
width: 100% !important;
|
|
|
}
|
|
|
/* .courseIndex {
|
|
@@ -6661,4 +6893,97 @@ export default {
|
|
|
.bz > div {
|
|
|
padding: 0 10px;
|
|
|
}
|
|
|
+.select_box2_title {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 5px;
|
|
|
+ padding: 15px 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.select_box2_title > div:nth-child(2) {
|
|
|
+ margin-left: 10px;
|
|
|
+ color: #c4c4c4;
|
|
|
+}
|
|
|
+.select_box2_box {
|
|
|
+ display: flex;
|
|
|
+ height: 500px;
|
|
|
+}
|
|
|
+.select_box2_img {
|
|
|
+ width: calc(100% - 310px);
|
|
|
+ height: 100%;
|
|
|
+ overflow: auto;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 5px;
|
|
|
+}
|
|
|
+.select_box2_img img {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+.select_box2_answer {
|
|
|
+ background: #fff;
|
|
|
+ margin-left: 10px;
|
|
|
+ border-radius: 5px;
|
|
|
+ width: 300px;
|
|
|
+ overflow: auto;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ padding-top: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.select_answer_title {
|
|
|
+ padding: 0 0 15px 20px;
|
|
|
+ color: #c4c4c4;
|
|
|
+}
|
|
|
+.select_box2_answer_box {
|
|
|
+ margin: 0 0 10px 20px;
|
|
|
+ width: 85%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.upAnswerCss {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 15px;
|
|
|
+ right: 15px;
|
|
|
+}
|
|
|
+.upAnswerCss >>> .el-button {
|
|
|
+ width: 95px;
|
|
|
+ height: 35px;
|
|
|
+ line-height: 35px;
|
|
|
+ padding: 0;
|
|
|
+}
|
|
|
+.rightWidthCss {
|
|
|
+ width: 60%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: flex-start;
|
|
|
+}
|
|
|
+.rightAnswer {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ align-items: center;
|
|
|
+ color: red;
|
|
|
+ margin-bottom: 31px;
|
|
|
+}
|
|
|
+.rightAnswerCss {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ padding-top: 60px;
|
|
|
+}
|
|
|
+.blueCss{
|
|
|
+ color: #767DE1;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+.redCss{
|
|
|
+ color:red;
|
|
|
+}
|
|
|
</style>
|