实训成绩调整

This commit is contained in:
fan 2023-02-08 13:12:47 +08:00
parent 96eb526713
commit 70277b3f24
6 changed files with 40 additions and 51 deletions

View File

@ -101,21 +101,9 @@ class Handler {
isLastVoiceStep() {
return store.state.trainingNew.voiceStepList.length <= store.state.trainingNew.voiceStepIndex + 1;
}
// 计算当前步骤得分
computedScoring() {
const stepInfo = store.state.trainingNew.stepInfo;
const MyMemberId = store.state.training.myMemberId;
const scoringRules = store.state.trainingNew.scoringRules;
const scoringRule = scoringRules.find(rule => rule.memberId == MyMemberId);
if (scoringRule) {
const scoring = scoringRule.details.find(item => item.elementId == stepInfo.id);
store.dispatch('trainingNew/pushScoreList', scoring);
}
}
nextStep() {
const group = router.currentRoute.query.group;
const stepInfo = store.state.trainingNew.stepInfo;
this.computedScoring();
endTrainingStep(group, stepInfo.id).then(resp => {
store.dispatch('trainingNew/clearOperateOrder');
}).catch(e => {

View File

@ -60,12 +60,17 @@ class ValidateHandler {
if (valid && store.state.trainingNew.voiceStepIndex > -1) {
!Handler.isLastVoiceStep() && store.dispatch('trainingNew/voiceStepIndexIncrease');
} else if (valid && Handler.isLastOperation()) {
store.dispatch('trainingNew/handleStepRecord', { type:'OVER', stepOperation, operate });
Handler.nextStep();
} else if (valid) {
store.dispatch('trainingNew/operateOrderIncrease');
store.dispatch('trainingNew/handleStepRecord', { type:'CONTINUE', stepOperation, operate });
Handler.judgeIsTextSendOperation();
} else {
console.log(operate, stepOperation, '----------');
if (store.state.trainingNew.voiceStepIndex < 0) {
store.dispatch('trainingNew/handleStepRecord', { type:'OVER', stepOperation, operate });
}
console.error('校验失败;');
}
return valid;

View File

@ -16,11 +16,11 @@ const training = {
scoringRules: [], // 当前实训评分规则
operateOrder: 0, // 操作order
operateErrMsg: '',
scoreList: [], // 实训得分
draftStepList: null, // 显示的步骤列表
voiceStepList: [], // 实训特殊语音步骤列表
voiceStepIndex: -1,
examSwitch: false // 考试开始结束标注
examSwitch: false, // 考试开始结束标注
stepRecord: [] // 操作记录
},
getters: {
teachMode: (state) => {
@ -51,7 +51,7 @@ const training = {
state.trainingSwitch = flag;
state.stepInfo = {};
state.operateOrder = 0;
state.scoreList = [];
state.stepRecord = [];
},
setTrainingOperate: (state, trainingOperate) => {
state.trainingOperate = trainingOperate;
@ -76,6 +76,7 @@ const training = {
},
setStepInfo: (state, stepInfo) => {
state.stepInfo = state.stepList.find(step => step.id === stepInfo.stepId);
state.stepRecord.push({ stepId: state.stepInfo.id, success: false, clientOperations: [] });
Handler.judgeIsTextSendOperation();
},
clearStepInfo: (state, stepInfo) => {
@ -92,10 +93,7 @@ const training = {
state.operateOrder = 0;
state.operateErrMsg = '';
state.scoringRules = [];
state.scoreList = [];
},
pushScoreList: (state, scoring) => {
state.scoreList.push(scoring);
state.stepRecord = [];
},
editDraftStepList: (state, draftStepList) => {
state.draftStepList = draftStepList;
@ -114,6 +112,15 @@ const training = {
},
setExamSwitch: (state, flag) => {
state.examSwitch = flag;
},
handleStepRecord: (state, { type, stepOperation, operate }) => {
const step = state.stepRecord[state.stepRecord.length - 1];
if (!step.clientOperations.length || step.clientOperations[step.clientOperations.length - 1].id !== stepOperation.id) {
step.clientOperations.push({ id: stepOperation.id });
}
if (type === 'OVER') {
step.success = true;
}
}
},
actions: {
@ -176,9 +183,6 @@ const training = {
clearTrainingData: ({ commit }) => {
commit('clearTrainingData');
},
pushScoreList: ({ commit }, scoring) => {
commit('pushScoreList', scoring);
},
editDraftStepList: ({ commit }, draftStepList) => {
commit('editDraftStepList', draftStepList);
},
@ -211,6 +215,9 @@ const training = {
},
setExamSwitch: ({ commit }, flag) => {
commit('setExamSwitch', flag);
},
handleStepRecord: ({ commit }, { type, stepOperation, operate }) => {
commit('handleStepRecord', { type, stepOperation, operate });
}
}
};

View File

@ -23,7 +23,7 @@ export function handlerUrl() {
let OSS_URL;
if (process.env.NODE_ENV === 'development') {
// 开发分支
BASE_API = 'http://192.168.3.233/rtss-server';
// BASE_API = 'http://192.168.3.233/rtss-server';
// BASE_API = 'https://joylink.club/jlcloud';
// BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://114.116.51.125/jlcloud';
@ -31,7 +31,7 @@ export function handlerUrl() {
// BASE_API = 'http://192.168.3.94:9000'; // 旭强
// BASE_API = 'http://192.168.3.15:9000'; // 张赛
// BASE_API = 'http://192.168.3.5:9000'; // 夏增彬
// BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
// BASE_API = 'http://b29z135112.zicp.vip';
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛

View File

@ -33,12 +33,13 @@ export default {
handleClose() {
this.dialogVisible = false;
},
doShow(scoreList, stepList, scoringRuleList) {
this.scoreList = scoreList;
this.stepList = stepList;
this.scoringRuleList = scoringRuleList;
doShow(score) {
this.tableData = [];
this.scoringRuleList.forEach(item => {
const MyMemberId = this.$store.state.training.myMemberId;
this.scoringRuleList = this.$store.state.trainingNew.scoringRules.find(rule => rule.memberId == MyMemberId );
console.log(this.scoringRuleList, this.$store.state.trainingNew.scoringRules);
this.stepList = this.$store.state.trainingNew.stepList;
this.scoringRuleList.details.forEach(item => {
const desc = this.handleStepInfo(item.elementId);
const score = this.handleScore(item.elementId);
this.tableData.push({ desc: desc, score: score, totalScore: item.score });
@ -50,8 +51,9 @@ export default {
return stepInfo ? stepInfo.description : '';
},
handleScore(stepId) {
const rule = this.scoreList.find(item => stepId == item.elementId);
return rule ? rule.score : 0;
const rule = this.scoringRuleList.details.find(item => stepId == item.elementId);
const record = this.$store.state.trainingNew.stepRecord.find(item => stepId == item.stepId);
return record && record.success ? rule.score : 0;
}
}
};

View File

@ -171,33 +171,20 @@ export default {
});
},
handlerEnd() {
const scoreList = this.$store.state.trainingNew.scoreList;
if (this.demoMode === ScriptMode.TEST && !this.examSwitch) {
const scoringRules = this.$store.state.trainingNew.scoringRules;
const scoringRule = scoringRules.find(rule => rule.memberId == this.$store.state.training.myMemberId);
this.$refs.testResult.doShow(scoreList, this.$store.state.trainingNew.stepList, scoringRule ? scoringRule.details : []);
}
endTraining(this.group, scoreList).then((resp) => {
endTraining(this.group, this.$store.state.trainingNew.stepRecord).then((resp) => {
if (this.examSwitch) {
const scoringRules = this.$store.state.trainingNew.scoringRules;
const scoringRule = scoringRules.find(rule => rule.memberId == this.$store.state.training.myMemberId);
const trainAnswer = {};
scoreList.forEach(item => {
trainAnswer[item.elementId] = item.score;
});
scoringRule.forEach(rule => {
if (!trainAnswer[rule.elementId]) {
trainAnswer[rule.elementId] = 0;
}
});
const data = {
subType: this.trainingDetail.type === 'SCENE' ? 5 : 4,
trainAnswer: trainAnswer
cosplayMemberId: this.$store.state.training.myMemberId,
trainDetail: this.$store.state.trainingNew.stepRecord
};
EventBus.$emit('trainExamSubmit', data);
} else if (this.demoMode === ScriptMode.TEST) {
this.$refs.testResult.doShow(resp.data);
}
this.$store.dispatch('trainingNew/trainingEnd');
}).catch(() => {
}).catch((e) => {
console.log(e, '****');
this.$message.error('结束实训失败!');
});
},