|
@@ -67,14 +67,14 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="workCon">
|
|
|
- <div>
|
|
|
+ <div style="width: 100%;">
|
|
|
<div
|
|
|
v-for="i in workList"
|
|
|
:key="i.id"
|
|
|
v-if="isStage(i.taskList)"
|
|
|
class="stageCon"
|
|
|
>
|
|
|
- <div class="stageTit">阶段{{ i.id + 1 }}</div>
|
|
|
+ <div v-if="CState != 5" class="stageTit">阶段{{ i.id + 1 }}</div>
|
|
|
|
|
|
<div
|
|
|
v-for="(k, kIndex) in i.taskList"
|
|
@@ -98,14 +98,21 @@
|
|
|
<div></div>
|
|
|
</div>
|
|
|
<div v-if="k.taskDetail" class="taskBri">
|
|
|
- {{ k.taskDetail }}
|
|
|
+ <div v-html="k.taskDetail"></div>
|
|
|
</div>
|
|
|
<div
|
|
|
v-for="(l, lind) in k.toolEList"
|
|
|
:key="lind + 'l'"
|
|
|
class="toolEListCon"
|
|
|
>
|
|
|
- <div v-if="l.content && l.content.length">
|
|
|
+ <div
|
|
|
+ style="position: relative;"
|
|
|
+ v-if="l.content && l.content.length"
|
|
|
+ >
|
|
|
+ <div class="JSCo" v-if="l.score">
|
|
|
+ <div>评分:{{ JSON.parse(l.score).wScore }}</div>
|
|
|
+ <div>评语:{{ JSON.parse(l.score).detail }}</div>
|
|
|
+ </div>
|
|
|
<div v-if="l.tool[0] == 15">
|
|
|
<div class="toolBlk">
|
|
|
<img
|
|
@@ -481,8 +488,11 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 作业得分 -->
|
|
|
- <div class="taskSco" v-if="l.content && l.content.length && TeaStuInt.includes(l.tool[0])">
|
|
|
+ <!-- ai作业得分 -->
|
|
|
+ <div
|
|
|
+ class="taskSco"
|
|
|
+ v-if="l.content && l.content.length && l.eList && CState == 5"
|
|
|
+ >
|
|
|
<div class="taskScoTit">
|
|
|
<div>
|
|
|
作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
|
|
@@ -498,30 +508,20 @@
|
|
|
<!-- 分数详情与素养 -->
|
|
|
<div
|
|
|
v-if="l.eList"
|
|
|
- style="
|
|
|
- justify-content: space-between;
|
|
|
- display: flex;
|
|
|
- width: 49%;
|
|
|
- "
|
|
|
+ class="taskScoConEList"
|
|
|
+ style="width:49%"
|
|
|
>
|
|
|
- <div style="width: 49; margin: 0 20px 10px 0">
|
|
|
+ <div style="width: 49%; margin: 0 20px 10px 0">
|
|
|
<div class="taskScoConTit">分数详情</div>
|
|
|
- <div>
|
|
|
+ <div style="display: flex;flex-wrap: wrap;">
|
|
|
<div
|
|
|
v-for="(wItem, ind) in l.eList"
|
|
|
:key="ind + 's'"
|
|
|
class="score_box"
|
|
|
>
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- :content="wItem.detail"
|
|
|
- placement="top-start"
|
|
|
- >
|
|
|
- <div class="RootImgBlock">
|
|
|
- {{ wItem.detail }}
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div class="RootImgBlock">
|
|
|
+ <div>{{ wItem.detail }}</div>
|
|
|
+ </div>
|
|
|
|
|
|
<el-rate
|
|
|
class="rate_size"
|
|
@@ -533,20 +533,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div v-if="l.eList" style="width: 49%;">
|
|
|
+ <div
|
|
|
+ v-if="l.eList"
|
|
|
+ style="width: 49%;display: flex;flex-direction: column;"
|
|
|
+ >
|
|
|
<div class="taskScoConTit">素养</div>
|
|
|
<div class="WorkConSY">
|
|
|
<div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- :content="wItem.detail"
|
|
|
- placement="top-start"
|
|
|
- >
|
|
|
- <div class="RootImgBlockSy">
|
|
|
- {{ wItem.target }}
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div class="RootImgBlockSy">
|
|
|
+ <span> {{ wItem.target }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -570,6 +566,95 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- 阶段作业得分 -->
|
|
|
+ <div
|
|
|
+ class="taskSco"
|
|
|
+ v-if="
|
|
|
+ k.toolEList[0].content &&
|
|
|
+ k.toolEList[0].content.length &&
|
|
|
+ k.toolEList[0].eList &&
|
|
|
+ CState != 5
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div class="taskScoTit">
|
|
|
+ <div>
|
|
|
+ 任务得分:<span style="color: rgba(242, 161, 75, 1)">{{
|
|
|
+ totalScore(k.toolEList[0].rate)
|
|
|
+ }}</span>
|
|
|
+ 分
|
|
|
+ </div>
|
|
|
+ <div>提交时间:{{ k.toolEList[0].time }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 作业评分 -->
|
|
|
+ <div class="taskScoCon">
|
|
|
+ <!-- 分数详情与素养 -->
|
|
|
+ <div
|
|
|
+ v-if="k.toolEList[0].eList"
|
|
|
+ class="taskScoConEList"
|
|
|
+ style="width:100%"
|
|
|
+ >
|
|
|
+ <div style="width: 49%; margin: 0 20px 10px 0">
|
|
|
+ <div class="taskScoConTit">分数详情</div>
|
|
|
+ <div style="display: flex;flex-wrap: wrap;">
|
|
|
+ <div
|
|
|
+ v-for="(wItem, ind) in k.toolEList[0].eList"
|
|
|
+ :key="ind + 's'"
|
|
|
+ class="score_box"
|
|
|
+ >
|
|
|
+ <div class="RootImgBlock">
|
|
|
+ <div>{{ wItem.value }}</div>
|
|
|
+ </div>
|
|
|
+ <el-rate
|
|
|
+ class="rate_size"
|
|
|
+ style="width: 120px;display: flex;flex-shrink: 0;"
|
|
|
+ v-model="k.toolEList[0].rate[wItem.value]"
|
|
|
+ @change="updateRate(i.id, k.task, 0)"
|
|
|
+ ></el-rate>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div
|
|
|
+ v-if="k.toolEList[0].eList"
|
|
|
+ style="width: 49%;display: flex;flex-direction: column;"
|
|
|
+ >
|
|
|
+ <div class="taskScoConTit">素养</div>
|
|
|
+ <div class="WorkConSY">
|
|
|
+ <div
|
|
|
+ v-for="(wItem, ind) in k.toolEList[0].eList"
|
|
|
+ :key="ind + 's'"
|
|
|
+ >
|
|
|
+ <div class="RootImgBlockSy">
|
|
|
+ {{ wItem.target[wItem.target.length - 1] }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 评语 -->
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ width: 48%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ margin-left: 10px;
|
|
|
+ "
|
|
|
+ v-if="
|
|
|
+ k.toolEList[0].rate.content || k.toolEList[0].rate.comment
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div class="taskScoConTit">评语</div>
|
|
|
+ <div class="WorkCon">
|
|
|
+ {{
|
|
|
+ k.toolEList[0].rate.content ||
|
|
|
+ k.toolEList[0].rate.comment
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -610,11 +695,9 @@ export default {
|
|
|
dyList: [],
|
|
|
courseName: "",
|
|
|
workList: [],
|
|
|
- state: 0,
|
|
|
+ CState: 0,
|
|
|
tableData: [],
|
|
|
- loading: false,
|
|
|
- // 师生互动工具list
|
|
|
- TeaStuInt: [7, 1, 52, 3, 48, 16, 50, 57]
|
|
|
+ loading: false
|
|
|
};
|
|
|
},
|
|
|
|
|
@@ -708,6 +791,7 @@ export default {
|
|
|
updateRate(stage, task, tool) {
|
|
|
let processedData = this.workList[stage].taskList[task].toolEList[tool]
|
|
|
.rate;
|
|
|
+ console.log("processedData", processedData);
|
|
|
|
|
|
console.log(stage, task, tool);
|
|
|
let params = {
|
|
@@ -784,7 +868,7 @@ export default {
|
|
|
this.workEvaList = res.data[13];
|
|
|
|
|
|
this.courseName = res.data[0][0].course;
|
|
|
- this.state = res.data[0][0].state;
|
|
|
+ this.CState = res.data[0][0].state;
|
|
|
|
|
|
var dyJSON = JSON.parse(res.data[0][0].chapters);
|
|
|
|
|
@@ -808,7 +892,7 @@ export default {
|
|
|
let framework = [];
|
|
|
if (res.data[0].length) {
|
|
|
let elistData = JSON.parse(res.data[0][0].chapters);
|
|
|
- // console.log("elistData", JSON.parse(JSON.stringify(elistData)));
|
|
|
+ console.log("elistData", JSON.parse(JSON.stringify(elistData)));
|
|
|
|
|
|
elistData.forEach((e, i) => {
|
|
|
framework[i] = {
|
|
@@ -901,6 +985,7 @@ export default {
|
|
|
l.content = [];
|
|
|
l.rate = "";
|
|
|
l.time = "";
|
|
|
+ l.score = "";
|
|
|
// 将作业答案添加进数组里
|
|
|
AreaAllWork.forEach((i, index) => {
|
|
|
i.tool = i.tool ? i.tool : 0;
|
|
@@ -911,6 +996,7 @@ export default {
|
|
|
) {
|
|
|
l.content.push(i.content);
|
|
|
l.time = i.tTime;
|
|
|
+ l.score = i.score;
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -943,7 +1029,7 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- // console.log("framework", JSON.parse(JSON.stringify(framework)));
|
|
|
+ console.log("framework", JSON.parse(JSON.stringify(framework)));
|
|
|
|
|
|
this.workList = framework;
|
|
|
this.loading = false;
|
|
@@ -1013,6 +1099,20 @@ export default {
|
|
|
/* justify-content: space-between; */
|
|
|
/* flex-shrink: 1; */
|
|
|
}
|
|
|
+.JSCo {
|
|
|
+ position: absolute;
|
|
|
+ top: 10px;
|
|
|
+ right: 10px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+}
|
|
|
+.JSCoTxt{
|
|
|
+ width: 300px;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+}
|
|
|
.pageCon {
|
|
|
display: flex;
|
|
|
height: calc(100% - 60px);
|
|
@@ -1215,6 +1315,7 @@ export default {
|
|
|
font-size: 14px !important;
|
|
|
margin-bottom: 15px;
|
|
|
margin: 5px 0;
|
|
|
+ width: 100%;
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
@@ -1351,7 +1452,10 @@ export default {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
-
|
|
|
+.taskScoConEList {
|
|
|
+ justify-content: space-between;
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
.taskScoConTit {
|
|
|
text-align: left;
|
|
|
font-weight: 600;
|
|
@@ -1381,7 +1485,7 @@ export default {
|
|
|
font-size: 12px;
|
|
|
font-weight: 400;
|
|
|
width: 100%;
|
|
|
- /* flex: 1; */
|
|
|
+ flex: 1;
|
|
|
}
|
|
|
.WorkConSY div {
|
|
|
margin-bottom: 8px;
|