|
@@ -23,7 +23,7 @@
|
|
<div class="title-board"><span class="title-font">评分</span></div>
|
|
<div class="title-board"><span class="title-font">评分</span></div>
|
|
<div class="itemScroll">
|
|
<div class="itemScroll">
|
|
<div
|
|
<div
|
|
- v-for="(resultItemInner, index) in resultItems"
|
|
|
|
|
|
+ v-for="(resultItemInner, index) in resultItemsData"
|
|
:id="resultItemInner.markItem.id"
|
|
:id="resultItemInner.markItem.id"
|
|
:key="resultItemInner.markItem.id"
|
|
:key="resultItemInner.markItem.id"
|
|
class="pull-left scoretitle titlebutton"
|
|
class="pull-left scoretitle titlebutton"
|
|
@@ -80,7 +80,7 @@
|
|
<div>
|
|
<div>
|
|
<div class="itemScroll">
|
|
<div class="itemScroll">
|
|
<div
|
|
<div
|
|
- v-for="(resultItemInner, index) in resultItems"
|
|
|
|
|
|
+ v-for="(resultItemInner, index) in resultItemsData"
|
|
:key="resultItemInner.markItem.id"
|
|
:key="resultItemInner.markItem.id"
|
|
class="scoretitle"
|
|
class="scoretitle"
|
|
>
|
|
>
|
|
@@ -137,7 +137,7 @@
|
|
<div v-if="textareaflag" class="remark-step">
|
|
<div v-if="textareaflag" class="remark-step">
|
|
<textarea
|
|
<textarea
|
|
id="remark"
|
|
id="remark"
|
|
- v-model="markedResult.markRemark"
|
|
|
|
|
|
+ v-model="markedResultData.markRemark"
|
|
type="text"
|
|
type="text"
|
|
rows="3"
|
|
rows="3"
|
|
cols="35"
|
|
cols="35"
|
|
@@ -151,7 +151,7 @@
|
|
<div class="problem-button"></div>
|
|
<div class="problem-button"></div>
|
|
<span v-if="tagFlag">
|
|
<span v-if="tagFlag">
|
|
<el-radio-group
|
|
<el-radio-group
|
|
- v-model="markedResult.tag"
|
|
|
|
|
|
+ v-model="markedResultData.tag"
|
|
@change="processTagPaper"
|
|
@change="processTagPaper"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
@@ -220,22 +220,54 @@ import { mapState } from "vuex";
|
|
import { CORE_API, MARKING_API } from "@/constants/constants";
|
|
import { CORE_API, MARKING_API } from "@/constants/constants";
|
|
import { EVENTHUB } from "../constants/constants";
|
|
import { EVENTHUB } from "../constants/constants";
|
|
export default {
|
|
export default {
|
|
- props: [
|
|
|
|
- "paperMarkSign",
|
|
|
|
- "signScores",
|
|
|
|
- "signChange",
|
|
|
|
- "signOption",
|
|
|
|
- "markSign",
|
|
|
|
- "markRange",
|
|
|
|
- "studentPaperId",
|
|
|
|
- "markTaskId",
|
|
|
|
- "resultItems",
|
|
|
|
- "markedResult",
|
|
|
|
- "paperMark",
|
|
|
|
- "scoreStep",
|
|
|
|
- ],
|
|
|
|
|
|
+ props: {
|
|
|
|
+ paperMarkSign: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => [],
|
|
|
|
+ },
|
|
|
|
+ signScores: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => [],
|
|
|
|
+ },
|
|
|
|
+ signOption: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default: () => {},
|
|
|
|
+ },
|
|
|
|
+ markSign: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: false,
|
|
|
|
+ },
|
|
|
|
+ studentPaperId: {
|
|
|
|
+ type: Number,
|
|
|
|
+ default: 0,
|
|
|
|
+ },
|
|
|
|
+ markTaskId: {
|
|
|
|
+ type: Number,
|
|
|
|
+ default: 0,
|
|
|
|
+ },
|
|
|
|
+ resultItems: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => [],
|
|
|
|
+ },
|
|
|
|
+ markedResult: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default: () => {},
|
|
|
|
+ },
|
|
|
|
+ paperMark: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: true,
|
|
|
|
+ },
|
|
|
|
+ scoreStep: {
|
|
|
|
+ type: Number,
|
|
|
|
+ default: 0.5,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ resultItemsData: JSON.parse(JSON.stringify(this.resultItems)),
|
|
|
|
+ signOptionData: JSON.parse(JSON.stringify(this.signOption)),
|
|
|
|
+ signScoresData: JSON.parse(JSON.stringify(this.signScores)),
|
|
|
|
+ markedResultData: JSON.parse(JSON.stringify(this.markedResult)),
|
|
activeName: "first",
|
|
activeName: "first",
|
|
markType: "mouse",
|
|
markType: "mouse",
|
|
isMouseMode: true,
|
|
isMouseMode: true,
|
|
@@ -266,7 +298,7 @@ export default {
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
tagFlag() {
|
|
tagFlag() {
|
|
- if (this.markedResult.id) {
|
|
|
|
|
|
+ if (this.markedResultData.id) {
|
|
return true;
|
|
return true;
|
|
} else {
|
|
} else {
|
|
return false;
|
|
return false;
|
|
@@ -278,7 +310,7 @@ export default {
|
|
},
|
|
},
|
|
signScoreSum() {
|
|
signScoreSum() {
|
|
var sum = 0;
|
|
var sum = 0;
|
|
- for (let signScore of this.signScores) {
|
|
|
|
|
|
+ for (let signScore of this.signScoresData) {
|
|
sum += signScore;
|
|
sum += signScore;
|
|
}
|
|
}
|
|
return sum;
|
|
return sum;
|
|
@@ -363,8 +395,8 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
...mapActions([USER_SIGNOUT]),
|
|
...mapActions([USER_SIGNOUT]),
|
|
resetProblem() {
|
|
resetProblem() {
|
|
- if (this.markedResult.tag) {
|
|
|
|
- this.markedResult.tag = "";
|
|
|
|
|
|
+ if (this.markedResultData.tag) {
|
|
|
|
+ this.markedResultData.tag = "";
|
|
}
|
|
}
|
|
if (this.unusualType) {
|
|
if (this.unusualType) {
|
|
this.unusualType = "";
|
|
this.unusualType = "";
|
|
@@ -372,14 +404,14 @@ export default {
|
|
},
|
|
},
|
|
//处理问题卷
|
|
//处理问题卷
|
|
processTagPaper() {
|
|
processTagPaper() {
|
|
- if (!this.markedResult.id) {
|
|
|
|
|
|
+ if (!this.markedResultData.id) {
|
|
if (this.unusualType) {
|
|
if (this.unusualType) {
|
|
for (let resultItem of this.resultItems) {
|
|
for (let resultItem of this.resultItems) {
|
|
resultItem.score = 0;
|
|
resultItem.score = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- if (this.markedResult.tag) {
|
|
|
|
|
|
+ if (this.markedResultData.tag) {
|
|
for (let resultItem of this.resultItems) {
|
|
for (let resultItem of this.resultItems) {
|
|
resultItem.score = 0;
|
|
resultItem.score = 0;
|
|
}
|
|
}
|
|
@@ -429,7 +461,7 @@ export default {
|
|
this.showItemTitle();
|
|
this.showItemTitle();
|
|
if (this.markSign) {
|
|
if (this.markSign) {
|
|
this.tmpSignItem = this.resultItem.markItem;
|
|
this.tmpSignItem = this.resultItem.markItem;
|
|
- this.signScores.splice(0, this.signScores.length);
|
|
|
|
|
|
+ this.signScoresData.splice(0, this.signScoresData.length);
|
|
}
|
|
}
|
|
this.positionDiv(order);
|
|
this.positionDiv(order);
|
|
//重置打分板样式
|
|
//重置打分板样式
|
|
@@ -452,7 +484,7 @@ export default {
|
|
},
|
|
},
|
|
checkSignScore(score) {
|
|
checkSignScore(score) {
|
|
var sum = 0;
|
|
var sum = 0;
|
|
- for (let signScore of this.signScores) {
|
|
|
|
|
|
+ for (let signScore of this.signScoresData) {
|
|
sum += signScore;
|
|
sum += signScore;
|
|
}
|
|
}
|
|
if (sum + score > this.maxScore) {
|
|
if (sum + score > this.maxScore) {
|
|
@@ -515,10 +547,10 @@ export default {
|
|
//轨迹模式处理分值问题
|
|
//轨迹模式处理分值问题
|
|
if (this.markSign) {
|
|
if (this.markSign) {
|
|
if (this.checkSignScore(score)) {
|
|
if (this.checkSignScore(score)) {
|
|
- this.signScores.push(score);
|
|
|
|
- this.signOption.score = score;
|
|
|
|
|
|
+ this.signScoresData.push(score);
|
|
|
|
+ this.signOptionData.score = score;
|
|
this.resultItem.score = this.signScoreSum;
|
|
this.resultItem.score = this.signScoreSum;
|
|
- this.resultItems[this.curIndex].score = this.signScoreSum;
|
|
|
|
|
|
+ this.resultItemsData[this.curIndex].score = this.signScoreSum;
|
|
} else {
|
|
} else {
|
|
this.$notify({
|
|
this.$notify({
|
|
message: "轨迹总分不能超过满分",
|
|
message: "轨迹总分不能超过满分",
|
|
@@ -528,7 +560,7 @@ export default {
|
|
} else {
|
|
} else {
|
|
//正常模式
|
|
//正常模式
|
|
this.resultItem.score = score;
|
|
this.resultItem.score = score;
|
|
- this.resultItems[this.curIndex].score = score;
|
|
|
|
|
|
+ this.resultItemsData[this.curIndex].score = score;
|
|
//设置动态样式(打分板)
|
|
//设置动态样式(打分板)
|
|
this.itemScoreBtn = [];
|
|
this.itemScoreBtn = [];
|
|
for (let i = 0; i < this.itemScores.length; i++) {
|
|
for (let i = 0; i < this.itemScores.length; i++) {
|
|
@@ -543,7 +575,7 @@ export default {
|
|
//键盘打分板change事件
|
|
//键盘打分板change事件
|
|
scoreChange(index, score) {
|
|
scoreChange(index, score) {
|
|
this.resultItem.score = score;
|
|
this.resultItem.score = score;
|
|
- this.resultItems[index].score = score;
|
|
|
|
|
|
+ this.resultItemsData[index].score = score;
|
|
},
|
|
},
|
|
//键盘打分板聚焦后试卷跳转对应试题
|
|
//键盘打分板聚焦后试卷跳转对应试题
|
|
scoreFocus(resultItem) {
|
|
scoreFocus(resultItem) {
|
|
@@ -552,16 +584,16 @@ export default {
|
|
},
|
|
},
|
|
//键盘打分板下键跳转下一题
|
|
//键盘打分板下键跳转下一题
|
|
scoreDown(index, resultItem) {
|
|
scoreDown(index, resultItem) {
|
|
- var curItemId = this.resultItems[index].markItem.id;
|
|
|
|
|
|
+ var curItemId = this.resultItemsData[index].markItem.id;
|
|
var curItemInput = "item" + curItemId;
|
|
var curItemInput = "item" + curItemId;
|
|
if (!this.checkScore(resultItem)) {
|
|
if (!this.checkScore(resultItem)) {
|
|
document.getElementById(curItemInput).focus();
|
|
document.getElementById(curItemInput).focus();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- if (index === this.resultItems.length - 1) {
|
|
|
|
|
|
+ if (index === this.resultItemsData.length - 1) {
|
|
return;
|
|
return;
|
|
} else {
|
|
} else {
|
|
- var nextResultItem = this.resultItems[index + 1];
|
|
|
|
|
|
+ var nextResultItem = this.resultItemsData[index + 1];
|
|
var nextItemId = nextResultItem.markItem.id;
|
|
var nextItemId = nextResultItem.markItem.id;
|
|
var nextItemInput = "item" + nextItemId;
|
|
var nextItemInput = "item" + nextItemId;
|
|
var order = nextResultItem.markItem.orders;
|
|
var order = nextResultItem.markItem.orders;
|
|
@@ -571,21 +603,21 @@ export default {
|
|
},
|
|
},
|
|
//键盘打分板上键跳转上一题
|
|
//键盘打分板上键跳转上一题
|
|
scoreUp(index, resultItem) {
|
|
scoreUp(index, resultItem) {
|
|
- var curItemId = this.resultItems[index].markItem.id;
|
|
|
|
|
|
+ var curItemId = this.resultItemsData[index].markItem.id;
|
|
var curItemInput = "item" + curItemId;
|
|
var curItemInput = "item" + curItemId;
|
|
if (!this.checkScore(resultItem)) {
|
|
if (!this.checkScore(resultItem)) {
|
|
document.getElementById(curItemInput).focus();
|
|
document.getElementById(curItemInput).focus();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
if (index === 0) {
|
|
if (index === 0) {
|
|
- let preResultItem = this.resultItems[0];
|
|
|
|
|
|
+ let preResultItem = this.resultItemsData[0];
|
|
let preItemId = preResultItem.markItem.id;
|
|
let preItemId = preResultItem.markItem.id;
|
|
let preItemInput = "item" + preItemId;
|
|
let preItemInput = "item" + preItemId;
|
|
let order = preResultItem.markItem.orders;
|
|
let order = preResultItem.markItem.orders;
|
|
document.getElementById(preItemInput).focus();
|
|
document.getElementById(preItemInput).focus();
|
|
this.positionDiv(order);
|
|
this.positionDiv(order);
|
|
} else {
|
|
} else {
|
|
- let preResultItem = this.resultItems[index - 1];
|
|
|
|
|
|
+ let preResultItem = this.resultItemsData[index - 1];
|
|
let preItemId = preResultItem.markItem.id;
|
|
let preItemId = preResultItem.markItem.id;
|
|
let preItemInput = "item" + preItemId;
|
|
let preItemInput = "item" + preItemId;
|
|
let order = preResultItem.markItem.orders;
|
|
let order = preResultItem.markItem.orders;
|
|
@@ -596,15 +628,15 @@ export default {
|
|
//键盘打分板回车后跳转下一题
|
|
//键盘打分板回车后跳转下一题
|
|
scoreEnter(index, resultItem) {
|
|
scoreEnter(index, resultItem) {
|
|
if (!this.checkScore(resultItem)) {
|
|
if (!this.checkScore(resultItem)) {
|
|
- var curItemId = this.resultItems[index].markItem.id;
|
|
|
|
|
|
+ var curItemId = this.resultItemsData[index].markItem.id;
|
|
var curItemInput = "item" + curItemId;
|
|
var curItemInput = "item" + curItemId;
|
|
document.getElementById(curItemInput).focus();
|
|
document.getElementById(curItemInput).focus();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- if (index === this.resultItems.length - 1) {
|
|
|
|
|
|
+ if (index === this.resultItemsData.length - 1) {
|
|
document.getElementById("subMarkBtn").focus();
|
|
document.getElementById("subMarkBtn").focus();
|
|
} else {
|
|
} else {
|
|
- var nextResultItem = this.resultItems[index + 1];
|
|
|
|
|
|
+ var nextResultItem = this.resultItemsData[index + 1];
|
|
var nextItemId = nextResultItem.markItem.id;
|
|
var nextItemId = nextResultItem.markItem.id;
|
|
var nextItemInput = "item" + nextItemId;
|
|
var nextItemInput = "item" + nextItemId;
|
|
var order = nextResultItem.markItem.orders;
|
|
var order = nextResultItem.markItem.orders;
|
|
@@ -621,7 +653,7 @@ export default {
|
|
//检查评分项
|
|
//检查评分项
|
|
checkItems() {
|
|
checkItems() {
|
|
var itemName = "";
|
|
var itemName = "";
|
|
- for (var resultItem of this.resultItems) {
|
|
|
|
|
|
+ for (var resultItem of this.resultItemsData) {
|
|
if (resultItem.score.length == 0) {
|
|
if (resultItem.score.length == 0) {
|
|
itemName =
|
|
itemName =
|
|
Number.parseInt(resultItem.markItem.mainNumber) +
|
|
Number.parseInt(resultItem.markItem.mainNumber) +
|
|
@@ -661,7 +693,7 @@ export default {
|
|
if (document.getElementById("remark")) {
|
|
if (document.getElementById("remark")) {
|
|
remarkValue = document.getElementById("remark").value;
|
|
remarkValue = document.getElementById("remark").value;
|
|
}
|
|
}
|
|
- if (!this.markedResult.id) {
|
|
|
|
|
|
+ if (!this.markedResultData.id) {
|
|
//正常提交情况
|
|
//正常提交情况
|
|
this.$httpWithMsg
|
|
this.$httpWithMsg
|
|
.post(
|
|
.post(
|
|
@@ -674,7 +706,7 @@ export default {
|
|
this.unusualType +
|
|
this.unusualType +
|
|
"&remark=" +
|
|
"&remark=" +
|
|
remarkValue,
|
|
remarkValue,
|
|
- this.resultItems
|
|
|
|
|
|
+ this.resultItemsData
|
|
)
|
|
)
|
|
.then(
|
|
.then(
|
|
(response) => {
|
|
(response) => {
|
|
@@ -764,10 +796,10 @@ export default {
|
|
}
|
|
}
|
|
);
|
|
);
|
|
} else {
|
|
} else {
|
|
- this.markedResult.resultItems = this.resultItems;
|
|
|
|
- this.markedResult.remark = remarkValue;
|
|
|
|
|
|
+ this.markedResultData.resultItems = this.resultItemsData;
|
|
|
|
+ this.markedResultData.remark = remarkValue;
|
|
this.$httpWithMsg
|
|
this.$httpWithMsg
|
|
- .put(MARKING_API + "/markResults", this.markedResult)
|
|
|
|
|
|
+ .put(MARKING_API + "/markResults", this.markedResultData)
|
|
.then(
|
|
.then(
|
|
() => {
|
|
() => {
|
|
this.saveMarkSign();
|
|
this.saveMarkSign();
|
|
@@ -797,9 +829,9 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
initKeyBoardMode() {
|
|
initKeyBoardMode() {
|
|
- if (this.resultItems[0]) {
|
|
|
|
- var itemId = this.resultItems[0].markItem.id;
|
|
|
|
- var order = this.resultItems[0].markItem.orders;
|
|
|
|
|
|
+ if (this.resultItemsData[0]) {
|
|
|
|
+ var itemId = this.resultItemsData[0].markItem.id;
|
|
|
|
+ var order = this.resultItemsData[0].markItem.orders;
|
|
var itemInput = "item" + itemId;
|
|
var itemInput = "item" + itemId;
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
var firstInput = document.getElementById(itemInput);
|
|
var firstInput = document.getElementById(itemInput);
|