取消报名

dev_202207
yujialong 3 years ago
parent 134ed3f04f
commit 92abe14796
  1. 1
      src/api/index.js
  2. BIN
      src/assets/img/index/customer.png
  3. 0
      src/assets/img/index/customer1.jpg
  4. 10
      src/layouts/navbar/index.vue
  5. 4
      src/pages/index/list/index.vue
  6. 18
      src/pages/match/details/index.vue
  7. 28
      src/pages/match/list/index.vue
  8. 907
      src/pages/preview/list/index.vue
  9. 26
      src/pages/touristMatch/list/index.vue
  10. 23
      src/router/modules/preview.js
  11. 35
      src/router/routes.js

@ -84,6 +84,7 @@ export default {
queryAnnouncementByContestId: `occupationlab/occupationlab/contest/announcement/queryAnnouncementByContestId`,
queryAnnouncementDetails: `occupationlab/occupationlab/contest/announcement/queryAnnouncementDetails`,
contestAfterLogin: `occupationlab/occupationlab/enterprise/match/contest/contestAfterLogin`,
cancelRegistration: `occupationlab/occupationlab/enterprise/match/applicant/cancelRegistration`,
// 阿里云文件/视频管理
fileDeletion: `${uploadURL}oss/manage/fileDeletion`, // 删除OSS文件

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

@ -63,15 +63,7 @@ export default {
{
index: 'data',
title: "数据科研"
},
{
index: "/cityPartner/list",
title: "城市合伙人"
},
{
index: "/devPlatform/list",
title: "开发者平台"
},
},
{
index: "/log/list",
title: "更新日志"

@ -190,7 +190,7 @@
<div class="popup wechat-popup">
<p class="tips">微信扫码添加职站售前咨询</p>
<p class="des">提供付费咨询及解决方案</p>
<img width="150" src="@/assets/img/index/customer.jpg" alt="">
<img width="150" src="@/assets/img/index/customer.png" alt="">
</div>
<div class="item tel"></div>
<div class="popup tel-popup">
@ -201,7 +201,7 @@
</div>
<div class="text">
<p class="title">售前咨询</p>
<p class="tel-num" style="margin-bottom: 5px"></p>
<p class="tel-num" style="margin-bottom: 5px">老师</p>
<p class="tel-num">18019930142</p>
</div>
</div>

@ -77,6 +77,7 @@
</template>
<script>
import { mapMutations } from "vuex";
import breadcrumb from '@/components/breadcrumb'
import util from '@/libs/util'
import Setting from "@/setting"
@ -198,6 +199,9 @@ export default {
this.getNotice()
},
methods: {
...mapMutations('match', [
'SET_SOURCE'
]),
getData() { //
this.$post(`${this.api.getContest}?contestId=${this.id}`).then(({ contest }) => {
const list = contest.contestAnnexList
@ -248,6 +252,8 @@ export default {
},
//
signup(){
const { status } = this
//
if (util.local.get(Setting.tokenKey)) {
if (this.status == 2) {
let data = {
@ -257,15 +263,25 @@ export default {
this.$message.success('报名成功')
this.status = 1;
}).catch(res => {})
} else if (status === 1) {
//
this.$confirm('是否要取消报名?', '提示', {
type: 'success'
}).then(() => {
this.$post(`${this.api.cancelRegistration}?contestId=${this.id}`).then(res => {
this.$message.success('取消报名成功')
this.status = 2
}).catch(res => {})
}).catch(() => {})
}
} else {
this.$confirm('请先登录,是否直接前往登录?', "提示", {
type: 'success'
}).then(() => {
this.SET_SOURCE(this.id)
this.$router.push('/login')
}).catch(() => {})
}
}
}
};

@ -369,14 +369,26 @@ export default {
this.getData();
},
signup(item) {
if (item.status == 2) {
this.$post(this.api.addApplicant, {
contestId: item.id
}).then(res => {
this.$message.success("报名成功");
this.getData();
}).catch(res => {})
}
const { status } = item
//
if (status == 2) {
this.$post(this.api.addApplicant, {
contestId: item.id
}).then(res => {
this.$message.success("报名成功");
this.getData();
}).catch(res => {})
} else if (status === 1) {
//
this.$confirm('是否要取消报名?', '提示', {
type: 'success'
}).then(() => {
this.$post(`${this.api.cancelRegistration}?contestId=${item.id}`).then(res => {
this.$message.success('取消报名成功')
this.getData()
}).catch(res => {})
}).catch(() => {})
}
}
}
};

@ -1,907 +0,0 @@
<template>
<div class="box" style="overflow-x: hidden">
<el-row :gutter="20" style="padding-top: 20px;">
<el-col :span="24">
<el-col :span="18">
<div class="cover">
<img v-if="coverUrl" :src="coverUrl" alt="" width="100%" height="100%">
<template v-else-if="iframeSrc">
<iframe class="inner fileIframe" id="fileIframe" :src="iframeSrc" frameborder="0"></iframe>
<template v-if="showMask">
<div class="mask" style="width: 500px;height: 30px;top: 53px;right: 320px"></div>
<div class="mask" style="width: 175px;height: 30px;top: 53px;right: 5px"></div>
</template>
<template v-if="showMask1">
<div class="word-mask" style="height: 40px;"></div>
<div class="word-mask2"
style="top: 55px;left: 28%;width: 44%;height: calc(100% - 80px);"></div>
</template>
<template v-if="showMask2">
<div class="excel-mask1" style="height: 48px;"></div>
</template>
</template>
<div class="pdf inner" v-else-if="pdfSrc">
<pdf :visible.sync="pdfVisible" :src.sync="pdfSrc"></pdf>
</div>
<div v-else>
<video ref="video" controls class="video_wid" :src="videoSrc"
controlsList="nodownload"></video>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="catalog">
<div class="btns">
<!-- <el-button type="primary" @click="toEvaluation(1,2)">虚拟仿真实验</el-button>
<el-button type="primary" @click="toEvaluation(1,3)">教学实验</el-button> -->
<el-button type="primary" @click="toEvaluation(0,2)">能力测评</el-button>
</div>
<ul class="filter" style="margin: 10px 0">
<li>
<label>系统</label>
<el-select v-model="systemId" placeholder="请选择" @change="systemChange">
<el-option
v-for="item in systemList"
:key="item.value"
:label="item.label"
:value="item.id"
></el-option>
</el-select>
</li>
</ul>
<div class="list_he">
<h4 class="list_title">学习资源</h4>
<template v-if="systemId == 1">
<div v-for="(item,index) in videoList1" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 4">
<div v-for="(item,index) in videoList4" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 5">
<div v-for="(item,index) in videoList5" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 6">
<div v-for="(item,index) in videoList6" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 7">
<div v-for="(item,index) in videoList7" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 8">
<div v-for="(item,index) in videoList8" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 9">
<div v-for="(item,index) in videoList9" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else-if="systemId == 10">
<div v-for="(item,index) in videoList10" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
<template v-else>
<div v-for="(item,index) in videoList1" :key="index">
<div class="flex-between list_catalog">
<p class="experimental_title" :class="{active: curLink == item.title}"
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p>
</div>
</div>
</template>
</div>
</div>
</el-col>
</el-col>
</el-row>
<!-- 答题弹框 -->
<el-dialog :visible.sync="evaluationVisible" width="30%" custom-class="evaluation_dialog" center
:close-on-click-modal="false">
<div class="title">能力测评</div>
<div class="ques-wrap">
<p class="serial">{{ question.currentQuestionSortNo }}/{{ question.totalQuestionNum }}</p>
<p class="type">({{ question.questionTypeName }})</p>
<div class="ques">{{ question.questionStem }}</div>
<div class="countdown flex-center">
<img src="@/assets/img/hourglass.png" alt="">
<span>倒计时{{ countdown }}</span>
</div>
<ul class="options" :class="{isDone}">
<li v-for="(item,key) in question.options" :key="key" :class="{active: selected.includes(key)}"
@click="selectOption(key)"><em>{{ key }}.</em><span>{{ item }}</span></li>
</ul>
</div>
<div slot="footer" class="dialog-footer" v-if="!isDone">
<template v-if="lastOne">
<el-button @click="prevQues">上一题</el-button>
<el-button type="primary" @click="submitQues">提交</el-button>
</template>
<template v-else>
<el-button class="first" @click="prevQues">上一题</el-button>
<el-button class="second" type="primary" @click="nextQues">下一题</el-button>
</template>
</div>
</el-dialog>
<!-- 提交成绩弹框 -->
<el-dialog :visible.sync="resultVisible" width="30%" custom-class="result_dialog" center
:close-on-click-modal="false">
<div class="result"><span>{{ result.isPassed }}</span></div>
<div class="ques-wrap">
<div class="point">
<span>{{ result.totalScore }}</span>
</div>
<p class="tips">
{{ result.isPassed == "通过" ? "恭喜" : "" }}你答对{{ result.correctQuestionNum
}}正确率{{ result.correctRate }}</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="first" @click="toEvaluation(0)">再试一次</el-button>
<el-button class="second" type="primary" @click="getDetail">成绩详情</el-button>
<el-button v-if="result.isPassed == '通过'" class="third" type="primary" @click="goSubSystem">进入实训
</el-button>
</div>
</el-dialog>
<!-- 成绩详情弹框 -->
<el-dialog :visible.sync="detailVisible" width="30%" custom-class="detail_dialog" center
:close-on-click-modal="false">
<div class="title">成绩详情</div>
<div style="min-height: 370px">
<el-table :data="detailData" height="340" border style="width: 100%">
<el-table-column type="index" label="序号" width="60" align="center"></el-table-column>
<el-table-column prop="date" label="正误" min-width="45" align="center">
<template slot-scope="scope">
<img v-if="scope.row.questionScore" width="15" src="@/assets/img/true.png" alt="">
<img v-else width="15" src="@/assets/img/false.png" alt="">
</template>
</el-table-column>
<el-table-column prop="questionScore" label="得分" min-width="45" align="center"></el-table-column>
<el-table-column prop="answer" label="正确答案" min-width="70" align="center"></el-table-column>
<el-table-column prop="userAnswer" label="你的答案" min-width="70" align="center"></el-table-column>
<el-table-column prop="answerAnalysis" label="解析" min-width="80"></el-table-column>
</el-table>
</div>
<p class="total">得分{{ totalScore }}</p>
</el-dialog>
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import util from "@/libs/util";
import Setting from "@/setting";
import pdf from "@/components/pdf";
import { videoList1, videoList4, videoList5, videoList6, videoList7, videoList8 } from "@/libs/videoList";
export default {
components: { pdf },
data() {
return {
systemId: Setting.systemId,
systemList: Setting.systemList,
video: "http://liuwanr.oss-cn-shenzhen.aliyuncs.com/mp4/20200519/1589871025648.mp4",
videoSrc: "",
curLink: "",
videoList1,
videoList4,
videoList5,
videoList6,
videoList7,
videoList8,
evaluationVisible: false,
resultVisible: false,
detailVisible: false,
lastOne: false,
question: {
options: {}
},
countdown: "",
selected: "",
result: {},
detail: {},
timer: null,
totalScore: 0,
detailData: [],
isDone: false,
history: [],
btnType: 1,
coverUrl: "",
playAuth: "",
player: null,
previewImg: "",
iframeSrc: "",
isWord: false,
isPPT: false,
isExcel: false,
showMask: false,
showMask1: false,
showMask2: false,
closePosi: {
top: "80px"
},
pdfVisible: false,
pdfSrc: ""
};
},
computed: {
...mapState("user", [
"studentId", "userId"
])
},
watch: {
question: {
handler(newVal, oldVal) {
for (let n in newVal.options) {
if (newVal.options[n] == "") delete (newVal.options[n]);
}
},
deep: true
}
},
mounted() {
this.insertScript();
// this.getData()
this.preview(this.videoList1[0]);
this.$once("hook:beforeDestroy", function() {
clearInterval(this.timer);
this.timer = null;
});
},
methods: {
// async getData(){
// let res = await this.$get(this.api.getCoursevideo, {
// page: 1,
// size: 10
// })
// this.videoList = res.data.list
// },
async toEvaluation(type, btn) {
clearInterval(this.timer);
this.lastOne = false;
this.selected = "";
this.resultVisible = false;
this.history = [];
if (btn) this.btnType = btn;
if (type) {
let res = null;
if (btn == 2) {
res = await this.$get(this.api.openExercise, { userId: this.userId });
} else {
res = await this.$get(this.api.openTeaching, { userId: this.userId });
}
if (res.errmessage == "true") {
if (btn == 2) {
this.goSubSystem();
}
if (btn == 3) {
this.$router.push("/project");
}
} else {
this.$alert("请先完成能力测评并达到60分以上才可以进行实验", "提示", {
confirmButtonText: "进入测评",
callback: action => {
action == "confirm" && this.toEvaluation(0);
}
});
}
} else {
this.start();
this.getCountdown();
}
},
handleQues() {
this.question.options = {};
for (let n in this.question) {
if (n.includes("option") && n != "options") {
this.question.options[n.replace("option", "")] = this.question[n];
}
}
if (this.question.currentQuestionSortNo == this.question.totalQuestionNum) {
this.lastOne = true;
} else {
this.lastOne = false;
}
},
async start() {
let res = await this.$get(this.api.experimentStart, { userId: this.userId, types: this.btnType });
if (res.data) {
this.question = res.data;
this.isDone = false;
this.question.currentQuestionSortNo == 1 && this.$store.commit("answerHistoryData", { answerHistory: [] });
this.handleQues();
this.evaluationVisible = true;
} else {
util.warningMsg(res.message);
}
},
async getCountdown() {
let res = await this.$get(this.api.experimentRemaining, { userId: this.userId });
res.data && this.countDown(res.data);
// this.countDown('00:00:05')
},
countDown(time) {
this.countdown = time;
this.timer = setInterval(() => {
let timeList = this.countdown.split(":");
let total = Number.parseInt(timeList[1] * 60) + Number.parseInt(timeList[2]);
if (total > 0) {
--total;
let minutes = Math.floor(total / 60);
let seconds = Math.floor(total % 60);
this.countdown = `00:${util.formateTime(minutes)}:${util.formateTime(seconds)}`;
} else {
this.isDone = true;
util.warningMsg("测评时间结束");
clearInterval(this.timer);
this.prevQues();
}
}, 1000);
},
selectOption(option) {
if (!this.isDone) {
if (this.selected.includes(option)) {
this.selected = this.selected.replace(option, "");
} else {
if (this.question.questionType == 2) {
this.selected += option;
} else {
this.selected = option;
}
}
}
},
getHistory() {
this.history = this.$store.state.answerHistory;
},
async nextQues() {
if (!this.selected) return util.warningMsg("请选择答案");
this.getHistory();
if (this.history.length > this.question.currentQuestionSortNo) {
this.history[this.question.currentQuestionSortNo - 1] = this.selected;
} else if (this.history.length < this.question.currentQuestionSortNo) {
this.history.push(this.selected);
}
this.$store.commit("answerHistoryData", { answerHistory: this.history });
let res = await this.$post(this.api.experimentNext, {
id: this.question.id,
currentQuestionSortNo: this.question.currentQuestionSortNo,
// userAnswer: this.selected.split('').sort().join(',')
userAnswer: this.selected
});
if (res.data) {
this.question = res.data;
this.selected = "";
if (this.history.length >= this.question.currentQuestionSortNo) {
this.selected = this.history[this.question.currentQuestionSortNo - 1];
} else {
this.selected = "";
}
this.handleQues();
}
},
async prevQues() {
if (this.question.currentQuestionSortNo > 1) {
this.getHistory();
let res = await this.$post(this.api.experimentPrevious, {
id: this.question.id,
currentQuestionSortNo: this.question.currentQuestionSortNo,
// userAnswer: this.selected.split('').sort().join(',')
userAnswer: this.selected
});
if (res.data) {
this.question = res.data;
this.selected = this.history[this.question.currentQuestionSortNo - 1];
this.isDone ? this.submitQues() : this.handleQues();
}
} else if (this.isDone) {
if (!this.selected) this.selected = "A";
this.submitQues();
}
},
async submitQues() {
if (!this.selected) return util.warningMsg("请选择答案");
let res = await this.$post(this.api.experimentSubmit, {
id: this.question.id,
currentQuestionSortNo: this.question.currentQuestionSortNo,
// userAnswer: this.selected.split('').sort().join(','),
userAnswer: this.selected,
userId: this.userId,
types: this.btnType
});
if (res.data) {
this.result = res.data;
this.evaluationVisible = false;
this.resultVisible = true;
}
},
async getDetail() {
let res = await this.$get(this.api.experimentDetail, {
evaluationRecordId: this.question.id
});
if (res.data) {
this.totalScore = res.data.totalScore;
this.detailData = res.data.evaluationDetailVOS;
this.resultVisible = false;
this.detailVisible = true;
}
},
systemChange() {
this.videoSrc = "";
this.preview(this[`videoList${this.systemId}`][0]);
},
preview(row) {
let url = row.links;
this.videoSrc = "";
this.coverUrl = "";
this.pdfSrc = "";
this.iframeSrc = "";
this.curLink = row.title;
let ext = util.getFileExt(url);
if (util.isVideo(ext)) {
this.videoSrc = url;
} else if (ext == "pdf") {
this.pdfSrc = url;
this.pdfVisible = true;
} else if (util.isImg(ext)) {
window.open(url);
} else if (util.isDoc(ext)) {
if (ext == "pptx") {
this.isPPT = true;
this.isWord = false;
this.isExcel = false;
} else if (ext == "doc" || ext == "docx") {
this.isPPT = false;
this.isWord = true;
this.isExcel = false;
} else if (ext == "xls" || ext == "xlsx") {
this.isExcel = true;
this.isPPT = false;
this.isWord = false;
} else {
this.isPPT = false;
this.isWord = false;
this.isExcel = false;
}
if (this.isPPT) {
this.showMask = true;
} else {
this.showMask = false;
}
if (this.isWord) {
this.showMask1 = true;
} else {
this.showMask1 = false;
}
if (this.isExcel) {
this.showMask2 = true;
} else {
this.showMask2 = false;
}
this.iframeSrc = `https://view.officeapps.live.com/op/view.aspx?src=${url}`;
}
},
closeIframe() {
this.iframeSrc = "";
this.showMask = false;
this.showMask1 = false;
this.showMask2 = false;
this.curLink = "";
},
//
insertScript() {
const linkTag = document.createElement("link");
linkTag.id = "aliplayerLink";
linkTag.rel = "stylesheet";
linkTag.href = "https://g.alicdn.com/de/prismplayer/2.8.2/skins/default/aliplayer-min.css";
document.body.appendChild(linkTag);
const scriptTag = document.createElement("script");
scriptTag.id = "aliplayerScript";
scriptTag.type = "text/javascript";
scriptTag.src = "https://g.alicdn.com/de/prismplayer/2.8.2/aliplayer-min.js";
document.body.appendChild(scriptTag);
this.$once("hook:beforeDestroy", function() {
document.body.removeChild(document.querySelector("#aliplayerLink"));
document.body.removeChild(document.querySelector("#aliplayerScript"));
});
},
goSubSystem() { //
util.cookies.set("assessmentId", "", -1);
util.cookies.set("studentId", this.studentId);
util.cookies.set("projectId", "", -1);
util.cookies.set("startTime", "", -1);
util.cookies.set("stopTime", "", -1);
location.href = Setting.defaultSubSystem;
}
}
};
</script>
<style lang="scss" scoped>
.video_wid {
width: 100%;
height: 650px;
border: 0;
}
.video_wid:focus {
outline: none;
}
.title_view {
background-color: #2F3236;
padding: 12px 10px;
}
h3 {
color: #9076FF;
margin-bottom: 10px;
}
.catalog .title_view .el-button {
padding: 8px 20px;
}
.btns {
display: flex;
justify-content: space-between;
}
.btns .el-button {
flex: 1;
height: 90px;
font-size: 30px;
background: transparent url(../../../assets/img/ques1.png) 0 0/100% 100% no-repeat;
border: 0;
}
.list_he {
height: 500px;
overflow-y: auto;
padding: 20px 12px;
background: #3f4449;
}
.list_he ul {
padding: 20px 0;
}
.list_he ul li:first-child {
margin-top: 0;
}
.list_he ul li {
margin-top: 10px;
font-size: 14px;
}
.list_title {
color: #9278FF;
font-size: 20px;
margin-left: 12px;
}
.list_catalog {
padding: 0 8px;
font-size: 14px;
margin-top: 15px;
cursor: pointer;
}
.mar0 {
margin-top: 0;
}
.list_catalog .catalog_button .el-button {
background-color: #2F3236;
border: 1px solid rgba(144, 118, 255, 1);
color: #9278FF;
padding: 6px 8px;
}
.experimental_title {
color: #fff;
word-wrap: break-word;
&.active {
color: #9278FF;
}
}
.experimental_status {
margin-right: 10px;
color: #7A7A7A;
}
.curriculum_name {
color: #fff;
}
.curriculum_name i {
margin-left: 5px;
margin-right: 5px;
}
.curriculum_status {
color: #7A7A7A;
}
/deep/ .evaluation_dialog {
min-height: 700px;
background: url(../../../assets/img/evaluation_bg1.png) 0 0/100% 100% no-repeat;
}
/deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .detail_dialog .el-dialog__headerbtn {
font-size: 28px;
}
/deep/ .evaluation_dialog .title, /deep/ .detail_dialog .title {
margin-bottom: 45px;
text-align: center;
font-size: 24px
}
/deep/ .evaluation_dialog .title {
margin-bottom: 55px;
}
/deep/ .evaluation_dialog .serial {
font-size: 12px;
text-align: center;
}
/deep/ .evaluation_dialog .ques-wrap {
width: 80%;
margin: 0 auto;
}
/deep/ .evaluation_dialog .type {
color: #666;
}
/deep/ .evaluation_dialog .ques {
margin: 20px 0;
min-height: 145px;
color: #666;
font-size: 16px;
}
/deep/ .evaluation_dialog .countdown {
margin-bottom: 20px;
justify-content: center;
text-align: center;
color: #DC3434;
font-size: 14px;
}
/deep/ .evaluation_dialog .countdown img {
width: 15px !important;
margin-right: 10px;
}
/deep/ .evaluation_dialog .options {
display: flex;
flex-direction: column;
min-height: 340px;
}
/deep/ .evaluation_dialog .options.isDone {
min-height: 395px;
}
/deep/ .evaluation_dialog .options li {
padding: 0 15px;
margin-bottom: 15px;
line-height: 40px;
border: 1px solid #9070FF;
border-radius: 20px;
color: #666;
cursor: pointer;
}
/deep/ .evaluation_dialog .options li:hover {
color: #fff;
background-color: #b038bb;
border-color: #b038bb;
}
/deep/ .evaluation_dialog .options li.active {
color: #fff;
background-color: #916CFF;
border-color: #916CFF;
}
/deep/ .evaluation_dialog .options em {
margin-right: 10px;
font-weight: bold;
font-style: normal;
font-size: 16px;
}
/deep/ .evaluation_dialog .options span {
font-size: 16px;
}
/deep/ .evaluation_dialog .el-dialog__footer {
text-align: center;
}
/deep/ .evaluation_dialog .first, /deep/ .result_dialog .first {
color: #fff;
background-color: #9268FF;
border-color: #9268FF;
}
/deep/ .evaluation_dialog .second, /deep/ .result_dialog .second {
color: #fff;
background-color: #E371DA;
border-color: #E371DA;
}
/deep/ .result_dialog {
min-height: 500px;
background: url(../../../assets/img/evaluation_bg2.png) 0 0/100% 100% no-repeat;
}
/deep/ .result_dialog .el-dialog__headerbtn .el-dialog__close {
color: #5a5a5a;
font-size: 28px;
}
/deep/ .result_dialog .result {
margin-top: 60px;
text-align: center;
color: #fff;
font-size: 24px;
}
/deep/ .result_dialog .point {
margin: 30px 0 20px;
text-align: center;
font-size: 30px;
color: #666;
}
/deep/ .result_dialog .point span {
font-size: 120px;
font-weight: bold;
}
/deep/ .result_dialog .tips {
color: #666;
text-align: center;
font-size: 14px;
}
/deep/ .result_dialog .third {
color: #fff;
background-color: #418cf5;
border-color: #418cf5;
}
/deep/ .detail_dialog {
background: url(../../../assets/img/evaluation_bg3.png) 0 0/100% 100% no-repeat;
}
/deep/ .detail_dialog .title {
margin-top: -20px;
}
/deep/ .detail_dialog .el-table__header th:nth-last-child(2) {
text-align: center;
}
/deep/ .detail_dialog .total {
margin-top: 20px;
text-align: center;
font-size: 30px;
color: #DC3434;
}
/deep/ .evaluation_dialog {
margin: 0 !important;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-height: calc(100% - 30px);
max-width: calc(100% - 30px);
}
/deep/ .evaluation_dialog .el-dialog__body {
flex: 1;
overflow: auto;
}
.mask {
z-index: 9;
position: absolute;
background-color: rgb(57, 58, 61);
}
.word-mask {
z-index: 9;
position: absolute;
top: 0;
right: 0;
width: 100%;
background-color: rgb(243, 242, 241);
}
.word-mask1 {
z-index: 9;
position: absolute;
top: 0;
right: 0;
width: 100%;
background-color: #185abd;
}
.word-mask2 {
z-index: 9;
position: absolute;
background-color: transparent;
}
.excel-mask1 {
z-index: 9;
position: absolute;
top: 0;
left: 20%;
width: 60%;
background-color: #107c41;
}
$height: 650px;
.cover {
position: relative;
height: $height;
border: 0;
.fileIframe {
width: 100%;
height: $height !important;
}
}
</style>

@ -349,23 +349,35 @@ export default {
this.getData();
},
signup(item) {
// status=2
if (item.status == 2) {
if (util.local.get(Setting.tokenKey)) {
const { status } = item
//
if (util.local.get(Setting.tokenKey)) {
//
if (status == 2) {
this.$post(this.api.addApplicant, {
contestId: item.id
}).then(res => {
this.$message.success("报名成功");
this.getData();
}).catch(res => {})
} else {
this.$confirm('请先登录,是否直接前往登录?', "提示", {
} else if (status === 1) {
//
this.$confirm('是否要取消报名?', '提示', {
type: 'success'
}).then(() => {
this.SET_SOURCE(item.id)
this.$router.push('/login')
this.$post(`${this.api.cancelRegistration}?contestId=${item.id}`).then(res => {
this.$message.success('取消报名成功')
this.getData()
}).catch(res => {})
}).catch(() => {})
}
} else {
this.$confirm('请先登录,是否直接前往登录?', "提示", {
type: 'success'
}).then(() => {
this.SET_SOURCE(item.id)
this.$router.push('/login')
}).catch(() => {})
}
}
}

@ -1,23 +0,0 @@
import BasicLayout from "@/layouts/home";
const meta = {};
const pre = "preview-";
export default {
path: "/preview",
name: "preview",
redirect: {
name: `${pre}list`
},
meta,
component: BasicLayout,
children: [
{
name: `${pre}list`,
path: `list`,
component: () => import("@/pages/preview/list"),
meta: { title: "课前预习" }
}
]
};

@ -1,35 +1,18 @@
import index from "./modules/index";
import cityPartner from "./modules/cityPartner";
import devPlatform from "./modules/devPlatform";
import appraisal from "./modules/appraisal";
import station from "./modules/station";
import ass from "./modules/ass";
import record from "./modules/record";
import setting from "./modules/setting";
import course from "./modules/course";
import info from "./modules/info";
import match from "./modules/match";
import touristMatch from "./modules/touristMatch";
import log from "./modules/log";
/**
* 读取./modules下的所有js文件并注册模块
*/
const requireModule = require.context('./modules', false, /\.js$/)
const modules = []
requireModule.keys().forEach(fileName => {
modules.push(requireModule(fileName).default)
})
const frameIn = [
{
path: "/",
redirect: "/index"
},
index,
cityPartner,
devPlatform,
appraisal,
station,
ass,
record,
setting,
course,
info,
match,
touristMatch,
log
...modules
];
/**

Loading…
Cancel
Save