From c7735db135f9c3c99224d8b5d2157926efde0977 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 09 May 2022 09:56:10 +0800
Subject: [PATCH] 登录用户名提示修改为姓名
---
src/views/exam/startexam.vue | 451 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 377 insertions(+), 74 deletions(-)
diff --git a/src/views/exam/startexam.vue b/src/views/exam/startexam.vue
index 183dde2..3c03e56 100644
--- a/src/views/exam/startexam.vue
+++ b/src/views/exam/startexam.vue
@@ -1,10 +1,5 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-07-31 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 17:09:52
- * menu-name 考试管理
- */
+/* * @Author: Morpheus * @Date: 2021-07-31 16:31:54 * @Last Modified by: liu *
+@Last Modified time: 2021-12-13 14:37:49 * menu-name 考试管理 */
<template>
<!-- <div class="exam">
<button class="logout"
@@ -29,10 +24,32 @@
<span class="s_m_v_title">{{ item.title }}</span>
<span>{{ item.value }}</span>
</div>
- <div>
- <el-button type="primary" round @click="startExam"
- >开始考试</el-button
- >
+ <div class="startButs">
+ <el-button :type="option.data[0].color" round @click="startExam">{{
+ option.data[0].subtext
+ }}</el-button>
+ <div class="time-remain startButsdown">
+ <div class="time-remain_title" v-show="option.data[0].isExam == 3">
+ 剩余时间 :
+ </div>
+
+ <div class="time" v-show="option.data[0].isExam == 3">
+ <count-down
+ v-on:start_callback="countDownS_c(1)"
+ v-on:end_callback="countDownE_c(1)"
+ :current-time="currentTime"
+ :start-time="startTime"
+ :end-time="endTime"
+ :tip-text="'距离考试开始'"
+ :tip-text-end="'距离考试结束'"
+ :end-text="'考试结束'"
+ :hourTxt="':'"
+ :minutesTxt="':'"
+ :secondsTxt="''"
+ >
+ </count-down>
+ </div>
+ </div>
</div>
</div>
<div class="s_m_value" v-else>没有找到相应的考试信息</div>
@@ -40,33 +57,53 @@
</div>
</template>
-
<script>
+import CountDown from "vue2-countdown";
+import { getCurrentTime } from "@/api/exam/examRecord";
import { mapState } from "vuex";
-import { getExamDetail } from "@/api/examapi/examination";
+import {
+ getExamDetail,
+ getNowTime,
+ calculations
+} from "@/api/examapi/examination";
import { updateApplyStatus } from "@/api/examapi/applyexam";
+import moment from "moment";
+import {
+ messageSuccess,
+ messageFail,
+ messageWarn,
+ isNotEmpty
+} from "@/util/util";
export default {
+ components: {
+ CountDown
+ },
data() {
- var a = 1;
return {
+ scoreId: "",
+ //继续考试时间
+ currentTime: 0,
+ startTime: 0,
+ endTime: 0,
+ //继续考试时间
resData: null,
sex: "",
pageDisable: false,
+ isTime: 2,
option: {
span: 8,
data: [
{
- list: [],
- },
- ],
- },
+ list: []
+ }
+ ]
+ }
};
-
},
computed: {
...mapState({
- userInfo: (state) => state.user.userInfo,
- }),
+ userInfo: state => state.user.userInfo
+ })
},
mounted() {
//获取数据
@@ -74,12 +111,24 @@
window.startExam = this.startExam;
},
methods: {
+ //继续考试时间
+ countDownS_c: function() {
+ // console.log(12112);
+ messageSuccess(this, "请继续考试");
+ // this.startTime = this.getCurrentTimes();
+ },
+ countDownE_c: function() {
+ messageWarn(this, "考试结束123");
+ this.overExam();
+ // this.disableSubmit = true;
+ // this.submitExam("over");
+ },
//退出登录
handleLogout() {
this.$confirm("是否退出系统, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
- type: "warning",
+ type: "warning"
}).then(() => {
this.$store.dispatch("LogOut").then(() => {
this.$router.push({ path: "/login" });
@@ -89,84 +138,329 @@
//开始考试跳转
startExam() {
var that = this;
+ if (that.option.data[0].isExam == 3) {
+ that.resData["examScoreId"] = that.scoreId;
+ console.log(that.resData);
+ that.$router.push({
+ path: `/startexam/${that.resData.scoreId}`,
+ query: that.resData
+ });
+ return;
+ }
+ //判断是否到了考试时间
+ if (this.isTime == 3) {
+ this.$message({
+ type: "warning",
+ message: "未到考试时间!"
+ });
+ return;
+ }
+ //已超过考试截止时间
+ if (this.isTime == 1) {
+ this.$message({
+ type: "warning",
+ message: "已过考试时间!"
+ });
+ return;
+ }
+
//去修改考试状态
var data = {
id: that.resData.applyId,
examType: this.resData.examType,
examId: this.resData.id,
userId: this.userInfo.user_id,
+ candidateNo: this.resData.candidateNo
};
- updateApplyStatus(data).then((res) => {
+ // this.$notify({
+ // message:
+ // "考试期间切勿退出登入、关闭浏览器, 否则考试成绩无效, 如有问题及时联系管理人员!",
+ // duration: 6000,
+ // showClose: false,
+ // customClass: "beginS",
+ // // type: "warning",
+ // });
+ // return;
+ updateApplyStatus(data).then(res => {
that.resData["examScoreId"] = res.data.id;
+ this.$store.commit("SetScoreId", res.data.id);
+ // console.log(res.data.id, "ididididiidididididid");
+ window.name = "";
+ this.$notify({
+ message:
+ "考试期间切勿退出登入、关闭浏览器, 否则考试成绩无效, 如有问题及时联系管理人员!",
+ duration: 6000,
+ showClose: false,
+ customClass: "beginS"
+ // type: "warning",
+ });
that.$router.push({
path: `/startexam/${that.resData.id}`,
- query: that.resData,
+ query: that.resData
});
});
},
getUserInfoBYExam() {
var that = this;
- getExamDetail(this.userInfo.user_id).then(
- (res) => {
- that.resData = res.data.data[0];
- var data = res.data.data[0];
- // debugger;
- // console.log(data, 254424);
- if (res.data.data.length > 0) {
- that.pageDisable = true;
- if (data.sex == 1) {
- that.sex = "男";
- }
- if (data.sex == 2) {
- that.sex = "女";
- }
- that.option.data = [
+ let setData = ({ color, subtext, isExam }) => {
+ that.option.data = [
+ {
+ title: that.resData.examName,
+ color: color,
+ isExam: isExam,
+ subtext: subtext,
+ click: function() {
+ window.parent.startExam();
+ },
+ list: [
{
- title: that.resData.examName,
- color: "#ffa820",
- subtext: "开始考试",
- click: function () {
- window.parent.startExam();
- },
- list: [
- {
- title: "姓名: ",
- value: that.resData.realName,
- check: true,
- },
- {
- title: "准考证号: ",
- value: that.resData.candidateNo,
- check: true,
- },
- {
- title: "身份证号: ",
- value: that.resData.idCardNo,
- check: true,
- },
- {
- title: "性别: ",
- value: that.sex,
- check: true,
- },
- ],
+ title: "姓名: ",
+ value: that.resData.realName,
+ check: true
},
- ];
- that.$store.commit("SetexamUserData", that.option.data[0]);
+ {
+ title: "准考证号: ",
+ value: that.resData.candidateNo,
+ check: true
+ },
+ {
+ title: "身份证号: ",
+ value: that.resData.idCardNo,
+ check: true
+ },
+ {
+ title: "性别: ",
+ value: that.sex,
+ check: true
+ }
+ ]
}
+ ];
+ that.$store.commit("SetexamUserData", that.option.data[0]);
+ };
+ var duibiTime = function(newTime, oldTime) {
+ var newYear = newTime.split(" ")[0],
+ newDat = newTime.split(" ")[1],
+ oldYear = oldTime.split(" ")[0],
+ oldDat = oldTime.split(" ")[1];
+ if (newYear !== oldYear) {
+ return false;
+ } else {
+ let newD = {
+ s: +newDat.split(":")[0],
+ f: +newDat.split(":")[1],
+ m: +newDat.split(":")[2]
+ };
+ let oldD = {
+ s: +oldDat.split(":")[0],
+ f: +oldDat.split(":")[1],
+ m: +oldDat.split(":")[2]
+ };
+ if (newD.s - oldD.s > 1) {
+ return false;
+ } else if (newD.s - oldD.s == 1) {
+ if (newD.f < oldD.f) {
+ return oldD.f - newD.f;
+ } else {
+ return false;
+ }
+ } else if (newD.s == oldD.s) {
+ return 60 - (newD.f - oldD.f);
+ }
+ // return [newD, oldD];
+ return false;
+ }
+ // return false;
+ };
+
+ var data = {
+ userId: this.userInfo.user_id
+ };
+ getExamDetail(data).then(
+ res => {
+ that.resData = res.data.data[0];
+
+ var data = res.data.data[0];
+ // console.log(data,333);
+ //当前时间
+ var nowD,
+ startD = new Date(data.startTime),
+ //考试截止时间
+ endD = new Date(data.endTime);
+ getNowTime().then(res => {
+ nowD = new Date(res.data.data);
+ //对比时间
+ //getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
+ if (nowD.getTime() > startD.getTime()) {
+ if (endD.getTime() < nowD.getTime()) {
+ that.isTime = 1;
+ } else {
+ that.isTime = 2;
+ }
+ } else {
+ that.isTime = 3;
+ }
+ if (res.data.data.length > 0) {
+ that.pageDisable = true;
+ if (data.sex == 1) {
+ that.sex = "男";
+ }
+ if (data.sex == 2) {
+ that.sex = "女";
+ }
+ }
+ // console.log(data, 123456);
+ if (data.isExam == 3) {
+ this.scoreId = data.scoreId;
+ setData({ color: "success", subtext: "继续考试", isExam: 3 });
+ const currentTimeSTART = moment(data.examStartTime);
+ const currentSTART = currentTimeSTART.valueOf();
+ getCurrentTime().then(response => {
+ that.currentTime = currentSTART;
+ that.startTime = currentSTART;
+ var listTime = duibiTime(
+ response.data.data,
+ currentTimeSTART._i
+ );
+ // console.log(listTime, 4564444);
+ if (listTime) {
+ that.endTime = currentSTART + listTime * 60 * 1000;
+ } else {
+ that.overExam();
+ }
+ return;
+ });
+
+ // if (FZtime(data.examStartTime) > 60) {
+ // that.overExam();
+ // }
+ // that.endTime =
+ // current + (60 - FZtime(data.examStartTime)) * 60 * 1000;
+ } else {
+ setData({ color: "primary", subtext: "开始考试" });
+ }
+ });
},
- (error) => {
+ error => {
window.console.log(error);
}
);
},
- },
+ overExam() {
+ let that = this;
+ let scoreId = window.localStorage.getItem("scoreId");
+ this.$alert("该考试已结束!", "提示", {
+ confirmButtonText: "确定",
+ callback: () => {
+ calculations(scoreId)
+ .then(response => {
+ messageSuccess(that, "提交成功");
+ if (response) {
+ that.$store.commit("DEL_TAG", that.$store.state.tags.tag);
+ var obj = {
+ userId: that.userInfo.user_id,
+ examId: that.$route.query.id
+ };
+ that.$router.push({
+ path: `/singleperformance/index`,
+ query: obj
+ });
+ }
+ })
+ .catch(() => {
+ that.disableSubmit = false;
+ messageFail(that, "提交题目失败");
+ });
+ }
+ });
+ }
+ }
};
</script>
<style lang="scss">
-//最终
+.startButs {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+}
+.startButsdown {
+ position: relative;
+ top: -25px;
+ left: 45px;
+}
+$fontSize3: 40px;
+$fontSize2: 20px;
+.time-remain_title {
+ font-size: $fontSize2;
+}
+.time-remain .time {
+ display: block;
+ font-size: $fontSize3;
+ line-height: $fontSize3;
+ color: #ff0000;
+ font-weight: 400;
+ position: relative;
+ // top: -20px;
+}
.startexam {
+ //登入页面样式
+ // border: 1px solid red;
+ width: calc(100% - 100px);
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ .startexam_heard {
+ font-size: 34px;
+ color: rgb(240, 114, 29);
+ margin-bottom: 5%;
+ // position: absolute;
+ // top: 10%;
+ }
+ .startexam_main {
+ width: 960px;
+ height: 300px;
+ // border: 1px solid red;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background-color: #fff;
+ box-shadow: 0px 0px 5px 3px rgba($color: #797979, $alpha: 0.2);
+ .s_m_img {
+ width: 50%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ img {
+ width: 90%;
+ height: 90%;
+ }
+ }
+ .s_m_value {
+ width: 50%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ div {
+ width: 90%;
+ height: 15%;
+ font-size: 17px;
+ .s_m_v_title {
+ display: inline-block;
+ width: 100px;
+ }
+ }
+ }
+ }
+}
+//最终
+.startexamOld {
// width: 100%;
// height: 100%;
// border: 1px solid red;
@@ -181,8 +475,8 @@
.startexam_heard {
font-size: 34px;
color: rgb(240, 114, 29);
- position: relative;
- top: -10%;
+ position: absolute;
+ top: 10%;
}
.startexam_main {
width: 960px;
@@ -222,4 +516,13 @@
}
}
}
+
+.beginS {
+ height: 180px;
+ width: 500px;
+}
+.el-notification__content {
+ font-size: 90px !important;
+ line-height: 44px !important;
+}
</style>
--
Gitblit v1.9.3