From 0a63968750d1d82b9feee19adb9d8c597c895f32 Mon Sep 17 00:00:00 2001 From: "jialong.yu" Date: Tue, 21 Dec 2021 15:11:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E6=9F=A5=E8=AF=A2=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=8F=8A=E8=87=AA=E5=8A=A8=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{utils => api}/http.js | 0 src/{utils/api.js => api/index.js} | 2 + src/assets/img/新建文件夹/left.png | Bin 5166 -> 0 bytes src/assets/img/新建文件夹/right.png | Bin 5152 -> 0 bytes src/assets/img/新建文件夹/yes.png | Bin 1554 -> 0 bytes src/components/TestPanel.vue | 168 +++++++++++++++-------- src/config/index.js | 4 +- src/main.js | 4 +- src/views/Home.vue | 15 +- 9 files changed, 115 insertions(+), 78 deletions(-) rename src/{utils => api}/http.js (100%) rename src/{utils/api.js => api/index.js} (75%) delete mode 100644 src/assets/img/新建文件夹/left.png delete mode 100644 src/assets/img/新建文件夹/right.png delete mode 100644 src/assets/img/新建文件夹/yes.png diff --git a/src/utils/http.js b/src/api/http.js similarity index 100% rename from src/utils/http.js rename to src/api/http.js diff --git a/src/utils/api.js b/src/api/index.js similarity index 75% rename from src/utils/api.js rename to src/api/index.js index 389acf0..40f2bec 100644 --- a/src/utils/api.js +++ b/src/api/index.js @@ -6,4 +6,6 @@ export default { queryTestProject: 'occupationlab/projectManage/getProjectBySystemId', saveCache: 'python/python/saveCache', getLastCache: 'python/python/getLastCache', + getDetailById: 'occupationlab/assessment/getDetailById', + pageStuAssessment: 'occupationlab/assessment/pageStuAssessment' } \ No newline at end of file diff --git a/src/assets/img/新建文件夹/left.png b/src/assets/img/新建文件夹/left.png deleted file mode 100644 index 65cc5ce4e6038aafb15d7b4e1bb34f01011c3052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5166 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 GU;iKO{=!E9 diff --git a/src/assets/img/新建文件夹/right.png b/src/assets/img/新建文件夹/right.png deleted file mode 100644 index 548a0571fbe1bbaf72cf096202bf7b1a07b728c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5152 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 diff --git a/src/assets/img/新建文件夹/yes.png b/src/assets/img/新建文件夹/yes.png deleted file mode 100644 index 5211ef137dd8f15cebc9add0c4bd1b243182a903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1554 zcmV+t2JQKYP)cQX&E^q6mmmx@`(bFI?I^W4oH^f| znIqgJL;T{QJIJDIaDr7S21Y6j5$Fr#1GfVI0QCwL0>2@Y8I@h+_1q&P%de*EM_NQw zF-@hR`;D>ym;-e4;7~2F*$Qj3#)Y?wU_D^qiHI}%k*>j~1bGc*xEI4ob%dj8b$Otn z>JynplN(&uM08)DDOT(%XZyG@83O=zIj$7dr(HZw3K;q;gFHQBpFxH(Arp1B9W5NYG7gJz4B~f zO`s^es6!%+C86mCw)%O*O82QyFc)e*LoaOc?0qXmwJHna)N1? zAJ$?RX4od^HW4&}J@zQnI-!^L_|?>hN5wLL1R_oQLeGitQQ9UF00eXAR>*5k1oZsZ z=<#QLF`=+9t0)}xH%`P!0BuR=7{Xv*ti(XFLzq!JA>bsyz?GBOBlm&5lD-+`xG4$` zbrQ`uk;eU@8AhYA;p>osxyXPOEtrkf*dtS*>4GnItmv%l@l{*nL?ZhN*C9IJ7xZ{= zZzB}>h*q^is3A6CQ=gG0L*iPF8$wzF8!}<5rL)}^v^dScQ9te z_w7T~m7t9^Af}a!fW3rPu7dhs+_({w-54d(R1z!|WULzmGxh|SyaW|nHUk3rm|>gU zK*eSC{5RfT{u23p0eYc>`09Y7=M|BmpAyY#TMb*5 z#@4czut$pF%3oeqq}Fqc$l#BW+aB_dNJAO6d{#6=_Ar`b#LKBA16LxwpY)B0R;oy8o0L+&$YZ{zta1OYe`{?aa(pj1iBNw+PWBe z=3TU+)t$wKE=rvVgnN3vk4VplkwI$`SEPJ4L~1dkeoDP|p;xhor$%p%9><12QFwl< z8)9&#QAxeT(PaSA|1B^%&55IJL{Be;E2ohjGr&2~0^K{mcbxkQt#)!&Z^K%BAbVof zmdxMTz4@1#RqwOjH_EaLTQST47f9 z`0x)g#pJc${e>T*(azM3Ih56b3E>3)l2_xK+ibf*6Z7;Nf|mSj>T@QyZO66WA30Dk z*hb9m8?HYR&}lNZ`gq$p?YLuA+V>u7BTmKp|J$*OF}^8!h;cGELsvIW#yJ4;F0DkO zovco~!9JV|in7Kulb!Rbb20m>YNuBpyoD>Q6C&D2Kr~m)}07*qoM6N<$ Ef}0uqy8r+H diff --git a/src/components/TestPanel.vue b/src/components/TestPanel.vue index 4503f5a..3b235c8 100644 --- a/src/components/TestPanel.vue +++ b/src/components/TestPanel.vue @@ -44,7 +44,7 @@ v-show="projectPermissions == 0" @click="reload" >重新开始 - 提交 + 提交 @@ -170,13 +170,14 @@ export default { curReq: [], // 当前实验要求 taskList: [], // 实验任务列表 pannelTab: 'first', // 面板信息切换值 - isSelected: false // 是否选择过项目的标识,选择了会置为true + isSelected: false, // 是否选择过项目的标识,选择了会置为true + statusTimer: null // 查询考核状态定时器 }; }, mounted() { this.projectPermissions = this.projectId ? 1 : 0 // 考核/练习 if(this.projectId){ // 考核(考核才会从外面带进来projectId,练习是默认显示第一个项目) - this.getList() + this.getAssList() }else{ // 练习 // 获取项目列表 this.getList().then(() => { @@ -246,6 +247,36 @@ export default { }) }) }, + // 获取考核列表来查询该考核是否已经考过 + getAssList(){ + this.$post(`${this.api.pageStuAssessment}`, { + pageNum: 1, + pageSize: 10000 + }).then(res => { + const list = res.list + const assessmentId = this.assessmentId + let done = false + list.map(e => { + // 匹配到该考核,并且已经提交过(有reportId则说明有实验记录) + if (e.assessmentId == assessmentId && e.reportId) { + done = true + this.isSubmit = true + newmain.$emit('isSubmit', this.isSubmit) + this.$message.error('你已经提交过该考核!') + setTimeout(_ => { + history.back() // 直接返回上一页面 + }, 1500) + } + }) + if (!done) { + this.getList() + // 查询考核状态定时器 + this.statusTimer = setInterval(_ => { + this.getStatus() + }, 1000) + } + }).catch(res => {}) + }, // 获取上次缓存记录 getCache(pId, jId) { const projectId = pId || this.projectId @@ -287,6 +318,19 @@ export default { } }).catch(res => {}) }, + // 定时查询考核状态(只有考核才需要定时查,查到考核如果结束后,直接提交考核) + getStatus() { + this.$get(this.api.getDetailById, { + id: this.assessmentId + }).then(res => { + const done = res.data ? res.data.status === 2 : false // 状态(0、待开始 1、进行中 2、已结束) + // 如果考核已结束,则清除查询考核状态的定时器,并且自动提交 + if (done) { + clearInterval(this.statusTimer) + this.submit() + } + }).catch(res => {}) + }, // 项目选择回调 selectProject(){ this.isSelected = true @@ -307,6 +351,7 @@ export default { this.isSubmit = false newmain.$emit('isSubmit', this.isSubmit) const points = this.points + // code和codeId,还有运行结果全部清空 points.map(e => { e.code = '' e.codeId = '' @@ -316,71 +361,76 @@ export default { this.$emit('recoveryCode') this.startCount() }, - // 提交 - submit() { + // 提交询问 + confirmSubmit() { const pointList = this.$parent.workbench - if(!pointList.find(e => e.codeId)) return this.$message.error('请先完成实验') + // if(!pointList.find(e => e.codeId)) return this.$message.error('请先完成实验') this.$confirm("此操作将视为结束考试, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", center: true }).then(() => { - const date = new Date() - const entryTime = this.entryTime - const timeSum = Math.ceil((date.getTime() - entryTime.getTime()) / 60000) // 计算实验用时(分钟),向上取整 - const submitTime = util.formatDate('yyyy-MM-dd hh:mm:ss', date) - const projectId = this.projectId - const projectName = this.projectList.find(e => e.projectId == projectId).projectName // 获取项目名称 - this.reloadCount() - // 判分点参数 - const attributesReqList = [] - pointList.map(e => { - attributesReqList.push({ - codeId: e.codeId, - bcId: e.judgmentId, - isSubmit: e.codeId ? 1 : 0, - answer: e.answer - }) - }) - const data = { - classId: this.classId ? this.classId : '', - className: this.className ? this.className : '', - curriculumId: this.courseId, - startTime: this.projectPermissions ? this.startTime : util.formatDate('yyyy-MM-dd hh:mm:ss', entryTime), // 开始时间(考核:直接从职站取考核的开始时间;练习:取页面进入的时间) - endTime: this.projectPermissions ? this.endTime : submitTime, // 结束时间(考核:直接从职站取考核的结束时间;练习:取提交时间) - submitTime, // 提交时间,即当前时间(这3个时间都是传完整的日期时间格式) - timeSum, - projectId, - projectName, - assessmentId: this.assessmentId ? this.assessmentId : '', - totalScore: 100, // 判分点总分固定为100 - systemId: 1, - purpose: this.experimentTarget, // 实验目的 - attributesReqList - } - this.$post(this.api.submit, data).then(res => { - localStorage.removeItem('codeCache') - this.isSubmit = true - newmain.$emit('isSubmit', this.isSubmit) - let list = res.retInfo - let taskList = this.taskList - var score = 0 - taskList.map(e => { - let item = list.find(n => n.judgmentPointsId === e.judgmentId) - if (item) { - e.score = item.score - e.finishedResult = item.finishedResult - } else { - e.score = 0 - } - score += e.score - }) - this.grade = util.handleZero(score) - }) - .catch(err => {}) + this.submit() }).catch(() => {}) }, + // 提交 + submit() { + const pointList = this.$parent.workbench + const date = new Date() + const entryTime = this.entryTime + const timeSum = Math.ceil((date.getTime() - entryTime.getTime()) / 60000) // 计算实验用时(分钟),向上取整 + const submitTime = util.formatDate('yyyy-MM-dd hh:mm:ss', date) + const projectId = this.projectId + const projectName = this.projectList.find(e => e.projectId == projectId).projectName // 获取项目名称 + this.reloadCount() + // 判分点参数 + const attributesReqList = [] + pointList.map(e => { + attributesReqList.push({ + codeId: e.codeId, + bcId: e.judgmentId, + isSubmit: e.codeId ? 1 : 0, + answer: e.answer + }) + }) + const data = { + classId: this.classId ? this.classId : '', + className: this.className ? this.className : '', + curriculumId: this.courseId, + startTime: this.projectPermissions ? this.startTime : util.formatDate('yyyy-MM-dd hh:mm:ss', entryTime), // 开始时间(考核:直接从职站取考核的开始时间;练习:取页面进入的时间) + endTime: this.projectPermissions ? this.endTime : submitTime, // 结束时间(考核:直接从职站取考核的结束时间;练习:取提交时间) + submitTime, // 提交时间,即当前时间(这3个时间都是传完整的日期时间格式) + timeSum, + projectId, + projectName, + assessmentId: this.assessmentId ? this.assessmentId : '', + totalScore: 100, // 判分点总分固定为100 + systemId: 1, + purpose: this.experimentTarget, // 实验目的 + attributesReqList + } + this.$post(this.api.submit, data).then(res => { + localStorage.removeItem('codeCache') + this.isSubmit = true + newmain.$emit('isSubmit', this.isSubmit) + let list = res.retInfo + let taskList = this.taskList + var score = 0 + // 给判分列表添加分数和运行结果 + taskList.map(e => { + let item = list.find(n => n.judgmentPointsId === e.judgmentId) + if (item) { + e.score = item.score + e.finishedResult = item.finishedResult // 1:正确,2:错误 + } else { + e.score = 0 + } + score += e.score // 计算总分 + }) + this.grade = util.handleZero(score) // 前置加0 + }).catch(err => {}) + }, // 实验面板显示隐藏 togglePannel() { this.pannelVisible = !this.pannelVisible diff --git a/src/config/index.js b/src/config/index.js index 75e589d..fdfc3c9 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -7,11 +7,9 @@ if(isHh) { host = "http://10.196.131.73/"; } else if(isBeta) { host = "http://39.108.250.202:9000/"; - // host = "http://192.168.31.151:9000/"; + host = "http://192.168.31.151:9000/"; } else if(isPro) { host = "http://www.occupationlab.com/"; -} else { - console.log("其它"); } export default { diff --git a/src/main.js b/src/main.js index 0a36d96..d795c18 100644 --- a/src/main.js +++ b/src/main.js @@ -4,13 +4,13 @@ import router from "./router"; import store from "./store"; import ElementUI from 'element-ui' import './assets/element-variables.scss' -import api from './utils/api'; +import api from './api'; import { post, get, del, put -} from './utils/http'; +} from './api/http'; import VueCodeMirror from "vue-codemirror"; import "codemirror/lib/codemirror.css"; import vuescroll from "vuescroll"; //引入vuescroll diff --git a/src/views/Home.vue b/src/views/Home.vue index 9e81df9..6c85d85 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -120,20 +120,7 @@ export default { }, // 退出实验 back() { - if(this.projectPermissions){ - // 返回到考核列表 - if (this.$config.isBeta) { // 判断是否是职站测试服 - location.href = `http://120.78.198.231/#/ass/list` - } - location.href = `${this.$config.host}#/dashboard#2` - }else{ - // 返回到实验台 - if (this.$config.isBeta) { - location.href = `http://120.78.198.231/#/station/list` - } - // location.href = `${this.$config.host}#/dashboard#1` - } - this.$refs.mainindex.getClearTime(); + history.back() }, // 赋值项目id、权限、项目列表 getQueryIndex(projectId, workbench) {