dev_202412
yujialong 7 months ago
parent 376395256d
commit a8d8e144c8
  1. 8
      public/index.html
  2. 5
      src/components/ueditorPlus/index.vue
  3. 28
      src/components/upload/config.js
  4. 253
      src/layouts/footer/index.vue
  5. 20
      src/pages/account/login/index.vue
  6. 125
      src/pages/match/details/index.vue
  7. 16
      src/pages/match/theoryExam/index.vue
  8. 22
      src/pages/record/theoryReport/index.vue

@ -3,21 +3,21 @@
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="keywords" content="职站,教学,教育,在线编程" />
<meta name="keywords" content="智信云,教学,教育,在线编程" />
<meta
name="description"
content="职站是一款辅助院校教师开展虚拟仿真实验教学的智能云实践平台。平台采用了大数据,云计算等技术,为学校搭建信息化平台提供了基础,可助力院校实现教学智能化升级。职站平台设计遵循着极简、高效的理念,可帮助老师轻松开展实验教学,并支持自定义发布考核和练习,智能统计和检验学生的日常实训练习效果;老师还可以通过可视化图表报告直观查看学生实训成绩,评估教学成果。"
content="智信云是一家为高等院校提供实验课程数字化服务的国家级高新技术企业。以区块链、大数据、人工智能等前沿技术在行业领域的运用为支撑,将新技术与经济与管理人才培养深度融合,面向全国高等院校的经济、金融、大数据应用等相关专业提供科研创新、金课建设、实验实训教学软件、实践教学以及学生就业培训为一体的专业建设咨询与技术支持服务。"
/>
<meta name="baidu-site-verification" content="code-TRfXe8xIkJ" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<!-- <meta name="viewport" content="width=device-width, user-scalable=yes, shrink-to-fit=no" /> -->
<link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css" />
<title>职站——为院校打造一站式虚拟仿真实训教学数智云平台</title>
<title></title>
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?72fbad6ebf1d6c705117fe8fe0686a0e';
hm.src = 'https://hm.baidu.com/hm.js?e4d7deeca2d6ea71d2bd5fa2365bc654';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();

@ -44,10 +44,11 @@ export default {
methods: {
initEditor () {
this.$nextTick(() => {
const host = Setting.isPro || Setting.isZxy ? location.origin : `http://121.37.12.51`
// eslint-disable-next-line no-undef
this.instance = UE.getEditor(this.randomId, {
UEDITOR_HOME_URL: Setting.isDev ? '/static/ueditorPlus/' : '/examination/static/ueditorPlus/',
serverUrl: "http://121.37.12.51/exam/exam/upload/configAndUpload",
UEDITOR_HOME_URL: Setting.isTest ? '/examination/static/ueditorPlus/' : '/static/ueditorPlus/',
serverUrl: host + `/exam/exam/upload/configAndUpload`,
plugins: 'gapfilling'
})

@ -5,6 +5,8 @@ import { get } from '@/plugins/requests/index.js'
import api from '@/api'
import CryptoJS from 'crypto-js'
import JSEncrypt from 'jsencrypt'
import Util from '@/libs/util'
import Setting from '@/setting'
const A = (key, encryptedData) => {
const keyHex = CryptoJS.enc.Base64.parse(key)
@ -24,18 +26,20 @@ const R = (encryptedKey, privateKey) => {
export default async function () {
try {
const res = await get(api.encrypt)
const RE = A(R(res.encryptedKey, res.privateKey), res.encryptedData).split('/')
return {
// oss账号信息
config: {
region: 'oss-cn-shenzhen',
accessKeyId: RE[0],
accessKeySecret: RE[1],
bucket: 'huoran'
},
// 上传成功url前置部分(成功回调没有返回url)
preUrl: 'https://huoran.oss-cn-shenzhen.aliyuncs.com/'
if (Util.local.get(Setting.tokenKey)) {
const res = await get(api.encrypt)
const RE = A(R(res.encryptedKey, res.privateKey), res.encryptedData).split('/')
return {
// oss账号信息
config: {
region: 'oss-cn-shenzhen',
accessKeyId: RE[0],
accessKeySecret: RE[1],
bucket: 'huoran'
},
// 上传成功url前置部分(成功回调没有返回url)
preUrl: 'https://huoran.oss-cn-shenzhen.aliyuncs.com/'
}
}
} catch (e) { }
}

@ -1,56 +1,45 @@
<template>
<div>
<div v-if="isZxy"
style="min-width: 1280px">
<div v-if="isZxy" style="min-width: 1280px">
<template v-if="isIndex">
<div class="use">
<h6>现在就使用智信云平台开始实践教学</h6>
<div class="btns">
<span class="btn1"
@click="toTrial">预约演示</span>
<span class="btn2"
@click="toTrial">免费试用</span>
<span class="btn1" @click="toTrial">预约演示</span>
<span class="btn2" @click="toTrial">免费试用</span>
</div>
</div>
<div class="company">
<div class="left">
<div class="logo">
<img src="@/assets/img/zxy/logo-gray.png"
alt="">
<img src="@/assets/img/zxy/logo-gray.png" alt="">
<span>联系我们为您提供最新产品咨询与客服答疑</span>
</div>
<div class="texts">
<p class="line"
style="margin-bottom: 10px">
<p class="line" style="margin-bottom: 10px">
<span class="label">联系我们</span>
<span class="val">客服电话0551-68112926&emsp;&emsp;合作咨询18019930142 刘经理</span>
</p>
<p class="line"
style="margin: 0 0 20px 72px;">
<p class="line" style="margin: 0 0 20px 72px;">
<span class="val">客服邮箱ahzxy@zhixinyunedu.com</span>
</p>
<p class="line">
<span class="label">友情链接</span>
<span class="val">
<a href="http://www.zxyicloud.com/#/ChuanDa/66/leftmenu/0"
target="_blank">智信云官网</a>
<a href="http://www.zxyicloud.com/#/ChuanDa/66/leftmenu/0" target="_blank">智信云官网</a>
&emsp;<em style="font-style: normal;color: #636F7C;">|</em>&emsp;
<a href="http://cxhz.hep.com.cn/"
target="_blank">协同育人</a>
<a href="http://cxhz.hep.com.cn/" target="_blank">协同育人</a>
</span>
</p>
</div>
</div>
<div class="qrcodes">
<div class="qrcode"
style="margin-right: 16px">
<img src="@/assets/img/zxy/qrcode1.png"
alt="">
<div class="qrcode" style="margin-right: 16px">
<img src="@/assets/img/zxy/qrcode1.png" alt="">
<p class="text">高校交流群</p>
</div>
<div class="qrcode">
<img src="@/assets/img/zxy/qrcode2.png"
alt="">
<img src="@/assets/img/zxy/qrcode2.png" alt="">
<p class="text">扫一扫 关注我们</p>
</div>
</div>
@ -60,16 +49,13 @@
© Copyright 2022 智信云&emsp;皖ICP备2021016749号
</div>
</div>
<div v-else
class="footer">
<div class="info"
v-if="isIndex">
<div v-else class="footer">
<div class="info" v-if="isIndex">
<span class="m-r-20">客服邮箱service@huorantech.cn</span>
</div>
<div class="copyright">
<span v-if="isIndex">© Copyright 2021 Occupation Lab 职站</span>
<a href="https://beian.miit.gov.cn/#/Integrated/index"
target="_blank">粤ICP备20072679号</a>
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">粤ICP备20072679号</a>
</div>
</div>
</div>
@ -96,120 +82,141 @@ export default {
</script>
<style lang="scss" scoped>
.footer {
padding: 17px 0 9px;
padding: 17px 0 9px;
text-align: center;
background-color: #0f1d2e;
.info {
margin-bottom: 7px;
font-size: 14px;
line-height: 20px;
color: #d7dfe7;
}
.copyright {
font-size: 12px;
text-align: center;
background-color: #0f1d2e;
.info {
margin-bottom: 7px;
font-size: 14px;
line-height: 20px;
color: #d7dfe7;
line-height: 17px;
span {
margin-right: 20px;
color: #757f8a;
}
.copyright {
font-size: 12px;
text-align: center;
line-height: 17px;
span {
margin-right: 20px;
color: #757f8a;
}
a {
color: #757f8a;
font-size: 12px;
&:hover {
color: #c7c7c7;
}
}
a {
color: #757f8a;
font-size: 12px;
&:hover {
color: #c7c7c7;
}
}
}
}
.use {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 242px;
background: url(../../assets/img/zxy/begin-bg.png) 0 0/100% 100% no-repeat;
h6 {
margin-bottom: 25px;
font-size: 40px;
color: #fff;
}
.btns {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 242px;
background: url(../../assets/img/zxy/begin-bg.png) 0 0/100% 100% no-repeat;
h6 {
margin-bottom: 25px;
font-size: 40px;
color: #fff;
span {
width: 96px;
font-size: 14px;
line-height: 36px;
text-align: center;
border-radius: 6px;
cursor: pointer;
}
.btns {
display: flex;
span {
width: 96px;
font-size: 14px;
line-height: 36px;
text-align: center;
border-radius: 6px;
cursor: pointer;
}
.btn1 {
margin-right: 16px;
color: #fff;
background: rgba(255, 255, 255, 0.14);
border: 1px solid #fff;
}
.btn2 {
color: #007eff;
background-color: #fff;
}
.btn1 {
margin-right: 16px;
color: #fff;
background: rgba(255, 255, 255, 0.14);
border: 1px solid #fff;
}
.btn2 {
color: #007eff;
background-color: #fff;
}
}
}
.company {
display: flex;
justify-content: center;
align-items: center;
padding: 36px 0 14px;
background-color: #0f1d2e;
.logo {
display: flex;
justify-content: center;
align-items: center;
padding: 36px 0 14px;
background-color: #0f1d2e;
.logo {
display: flex;
align-items: center;
margin-bottom: 18px;
span {
padding-left: 14px;
margin-left: 18px;
font-size: 16px;
color: #9aacbe;
border-left: 1px solid #283545;
}
margin-bottom: 18px;
span {
padding-left: 14px;
margin-left: 18px;
font-size: 16px;
color: #9aacbe;
border-left: 1px solid #283545;
}
.left {
margin-right: 160px;
}
.left {
margin-right: 160px;
}
.texts {
.line {
display: flex;
font-size: 13px;
}
.texts {
.line {
display: flex;
font-size: 13px;
}
.label {
margin-right: 20px;
color: #636f7c;
}
.val {
color: #d6dee8;
}
.label {
margin-right: 20px;
color: #636f7c;
}
.qrcodes {
display: inline-flex;
margin-top: 20px;
.val {
color: #d6dee8;
}
.qrcode {
text-align: center;
.text {
margin-top: 10px;
font-size: 12px;
color: #757f8a;
}
}
.qrcodes {
display: inline-flex;
margin-top: 20px;
}
.qrcode {
text-align: center;
.text {
margin-top: 10px;
font-size: 12px;
color: #757f8a;
}
}
}
.zxy-footer {
line-height: 34px;
text-align: center;
font-size: 12px;
color: #757f8a;
border-top: 1px solid rgba(255, 255, 255, 0.05);
background-color: #0f1d2e;
line-height: 42px;
text-align: center;
font-size: 12px;
color: #757f8a;
border-top: 1px solid rgba(255, 255, 255, 0.05);
background-color: #0f1d2e;
}
</style>

@ -1,6 +1,12 @@
<template>
<div class="wrap">
<div class="login">
<div class="notice-alert">
<el-alert
title="平台维护通知:我们计划于2024年9月6日(星期五)20:00至2024年9月7日(星期六)12:00进行系统维护升级工作。维护期间,平台将暂时关闭,所有用户将无法登录平台,全部服务将暂停使用。"
type="warning" :closable="false">
</el-alert>
</div>
<div class="form">
<h6 class="title">欢迎使用请登录</h6>
@ -718,6 +724,11 @@ export default {
.wrap {
min-height: 100%;
background-color: #f3f6fa;
.notice-alert {
max-width: 436px;
margin: 0 auto 20px;
}
}
.ver-code {
@ -732,7 +743,7 @@ export default {
.login {
min-height: calc(100vh - 43px);
padding-top: calc((100vh - 584px) / 2);
padding-top: calc((100vh - 750px) / 2);
background: url(../../../assets/img/shapes/shape1.png) (0 123px) / auto no-repeat,
url(../../../assets/img/shapes/shape2.png) (35px 238px) / auto no-repeat,
url(../../../assets/img/shapes/shape3.png) (0 485px) / auto no-repeat,
@ -869,6 +880,13 @@ export default {
border-radius: 4px;
border: 0;
}
.notice {
width: 400px;
// padding: 10px 20px;
margin-left: 20px;
// box-shadow: 0 0 7px rgba(235, 235, 235, .8);
}
}
.copyright {

@ -374,59 +374,24 @@
<el-button size="small" @click="peopleSignupVisible = false">取消</el-button>
</span>
</el-dialog>
<el-dialog title="报名" :visible.sync="enterVisible" :close-on-click-modal="false" width="850px"
custom-class="enter-dia" @close="enterClose">
<div class="flex">
<el-form class="dia-form" label-width="90px">
<el-form-item label="姓名">
<el-input disabled v-model="userName"></el-input>
</el-form-item>
<el-form-item label="来自学校">
<el-select v-model="enterForm.studentAffiliatedInstitutionId" filterable style="width: 100%">
<el-option v-for="(item, i) in schools" :key="i" :label="item.schoolName"
:value="item.schoolId"></el-option>
</el-select>
</el-form-item>
<p class="m-t-20 m-b-5">请选择要加入的团队</p>
<el-form-item label="团队">
<el-select class="w-100" v-model="enterForm.teamId" filterable>
<el-option v-for="(item, i) in teams" :key="i" :label="item.teamName" :value="item.teamId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="团队邀请码">
<el-input placeholder="请输入团队邀请码" maxlength="6" v-model="enterForm.invitationCode"></el-input>
</el-form-item>
<el-form-item label="大赛邀请码" v-if="form.completeCompetitionSetup.isNeedCode">
<el-input placeholder="请输入大赛邀请码" maxlength="6" v-model="enterForm.registrationInvitationCode"></el-input>
</el-form-item>
<p class="tips">
查找不到团队点击 <el-link :underline="false" type="primary" @click="toTeam">创建团队</el-link>
</p>
</el-form>
<div class="agree">
<div class="agreement">
<h6>参赛选手承诺书</h6>
<div class="text">
<p class="line">本人自愿参加2024年安徽省大学生金融投资创新大赛为进一步提高廉洁自律意识客观公正的履行职责我以大赛参赛学生的身份和荣誉郑重作出如下承诺</p>
<p class="line">1尊重大赛组委会及秘书处尊重专家和仲裁尊重参赛单位和其他选手客观公正地参加比赛</p>
<p class="line">
2遵守道德遵守大赛纪律不私下接触其他参赛单位和团队成员专家裁判员仲裁员
</p>
<p class="line">
3保证提交的所有信息数据和材料均真实准确合法及有效不侵犯任何第三方的知识产权和其他权益参赛选手均无条件配合大赛组委会对参赛选手提供的数据信息材料及有关情况等进行核实
</p>
<p class="line">4遵守公正公平原则不干扰裁判员仲裁员等工作及其他参赛单位和团队成员等比赛影响比赛成绩认可大赛组委会提供的基础数据</p>
<p class="line">5不发表不传播没有根据并对大赛产生不利影响的言论</p>
<p class="line">6不隐瞒按规定应该回避的事项</p>
<p class="line">7对于涉嫌泄密事宜愿接受协助配合相关部门的监督检查并履行举证义务</p>
<p class="line">8如若发生上述问题自愿承担相关责任</p>
<p class="line">特此承诺</p>
<p class="line">勾选后才可登录和注册</p>
</div>
</div>
<el-checkbox class="m-t-15 m-l-20" v-model="agreeCheck">同意我已阅读</el-checkbox>
</div>
</div>
<el-dialog title="报名" :visible.sync="enterVisible" :close-on-click-modal="false" width="300px" @close="enterClose">
<el-form class="dia-form">
<p style="margin-bottom: 5px">请选择要加入的团队</p>
<el-form-item>
<el-select class="w-100" v-model="enterForm.teamId" filterable>
<el-option v-for="(item, i) in teams" :key="i" :label="item.teamName" :value="item.teamId"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入团队邀请码" maxlength="6" v-model="enterForm.invitationCode"></el-input>
</el-form-item>
<el-form-item v-if="form.completeCompetitionSetup.isNeedCode">
<el-input placeholder="请输入大赛邀请码" maxlength="6" v-model="enterForm.registrationInvitationCode"></el-input>
</el-form-item>
<p class="tips">
查找不到团队点击 <el-link :underline="false" type="primary" @click="toTeam">创建团队</el-link>
</p>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="enterSubmit">报名</el-button>
<el-button size="small" @click="enterVisible = false">取消</el-button>
@ -560,6 +525,7 @@ import Const from '@/const/match'
import OSS from 'ali-oss'
import OssConfig from '@/components/upload/config.js'
import Oss from '@/components/upload/upload.js'
import _ from 'lodash'
export default {
name: 'matchdetail',
data () {
@ -625,8 +591,6 @@ export default {
registrationInvitationCode: '',
whetherSignUp: 1
},
schools: [],
agreeCheck: false,
teamVisible: false,
teams: [],
@ -698,7 +662,7 @@ export default {
},
computed: {
...mapState("user", [
"userId", 'account', 'logView', 'userName'
"userId", 'account', 'logView'
]),
},
components: {
@ -716,9 +680,6 @@ export default {
this.getProgress()
this.getNotice()
this.getTeam()
this.getAutomaticAllocation()
this.initOss()
},
methods: {
...mapMutations('match', [
@ -759,6 +720,8 @@ export default {
name: '参赛信息'
})
this.getInfo()
this.getAutomaticAllocation()
this.initOss()
}
this.token && this.intervalRank()
} else {
@ -894,7 +857,7 @@ export default {
this.$post(`${this.api.entryInformation}?competitionId=${this.id}`).then(async res => {
const info = res.entryInformation
//
if (info.team && !info.team.captain && !info.teamInstructors.length) info.teamInstructors.push(JSON.parse(JSON.stringify(this.originIns)))
if (info.team && !info.team.captain && !info.teamInstructors.length) info.teamInstructors.push(_.cloneDeep(this.originIns))
if (info.personalDetail) {
info.team = {}
info.teamDetail = []
@ -904,7 +867,7 @@ export default {
const caption = info.teamDetail.find(e => !e.caption)
info.caption = caption ? caption : {}
info.person = info.personalDetail || info.teamDetail.find(e => e.accountId == info.team.accountId)
this.originInfo = JSON.parse(JSON.stringify(info))
this.originInfo = _.cloneDeep(info)
// accountId
info.stages && info.stages.map(e => {
if (e.participantAccountIds && e.teamParticipantIds) {
@ -1013,6 +976,7 @@ export default {
} else if (JSON.stringify(teamInstructors) !== JSON.stringify(originInfo.teamInstructors)) {
notSave = 2
}
// debugger
if (notSave) {
this.$confirm('所填写内容暂未保存,是否保存?', "提示", {
type: "warning",
@ -1076,16 +1040,18 @@ export default {
this.$post(`${this.api.deleteAnAdvisor}?id=${row.id}`).then(res => {
Util.successMsg('删除成功')
this.info.teamInstructors.splice(i, 1)
this.originInfo.teamInstructors = _.cloneDeep(this.info.teamInstructors)
}).catch(res => { })
}).catch(() => { })
} else {
this.info.teamInstructors.splice(i, 1)
this.originInfo.teamInstructors = _.cloneDeep(this.info.teamInstructors)
}
},
//
addAdvisor () {
if (this.info.teamInstructors.length > 4) return Util.errorMsg('指导老师仅限添加5个!')
const line = JSON.parse(JSON.stringify(this.originIns))
const line = _.cloneDeep(this.originIns)
line.edit = 1
this.info.teamInstructors.push(line)
},
@ -1111,6 +1077,7 @@ export default {
this.info.teamInstructors[i].id = id
}
this.info.teamInstructors[i].edit = 0
this.originInfo.teamInstructors = _.cloneDeep(this.info.teamInstructors)
}).catch(res => { })
},
//
@ -1311,7 +1278,6 @@ export default {
},
//
enterSubmit () {
if (!this.agreeCheck) return Util.errorMsg('请勾选同意,才可继续报名!')
const form = this.enterForm
if (!form.teamId) return Util.errorMsg('请选择团队')
if (!form.invitationCode) return Util.errorMsg('请输入团队邀请码')
@ -1433,8 +1399,9 @@ export default {
}
},
initOss () {
this.client = new OSS(OssConfig.config)
async initOss () {
const o = await OssConfig()
this.client = new OSS(o.config)
},
//
beforeUpload (file) {
@ -2204,32 +2171,4 @@ export default {
}
}
}
/deep/.enter-dia {
.agree {
width: 500px;
margin-left: 20px;
}
.agreement {
max-height: 300px;
padding: 10px 20px;
box-shadow: 0 0 7px rgba(235, 235, 235, .8);
overflow: auto;
h6 {
font-size: 20px;
font-weight: 600;
text-align: center;
}
.text {
line-height: 1.6;
}
.line {
margin-top: 7px;
}
}
}
</style>

@ -47,7 +47,7 @@
<li
v-if="!sheetStatus || (sheetStatus === 1 && !ques.answered) || (sheetStatus === 2 && ques.answered) || (sheetStatus === 3 && ques.partAnswer) || (sheetStatus === 4 && ques.sign)"
:key="j" :class="{ answered: ques.answered, partAnswer: ques.partAnswer }"
@click="scrollToQues(ques)">
@click="scrollToQues(ques, item)">
<img v-if="ques.sign" class="tag" src="@/assets/img/tag-active.svg" alt="">
{{ j + 1 }}
</li>
@ -92,7 +92,7 @@
<div v-for="(opt, j) in ques.questionAnswerVersionsList" :key="j" class="opt">
<el-checkbox v-if="item.questionType === 'multiple_choice'" v-model="opt.answer" :true-label="1"
@change="mulChange(ques)"></el-checkbox>
<el-radio v-else v-model="opt.answer" :true-label="1" :label="1"
<el-radio v-else v-model="opt.answer" tabindex="-1" :true-label="1" :label="1"
@change="singleChange(ques, j)"></el-radio>
<span>{{ numToLetter(j) }}.&nbsp;</span>
@ -454,9 +454,12 @@ export default {
window.requestAnimationFrame(scroll)
},
//
scrollToQues (e) {
scrollToQues (e, item) {
item.shrink = false
const el = document.querySelector('#ques' + e.id)
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#quesWrap').offsetTop, 200)
this.$nextTick(() => {
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#quesWrap').offsetTop, 200)
})
},
//
filterStatus (e) {
@ -483,6 +486,10 @@ export default {
return stem
}
},
preventAllKeyPress (event) {
//
event.preventDefault();
},
//
singleChange (ques, j) {
ques.questionAnswerVersionsList.map(e => {
@ -623,6 +630,7 @@ export default {
//
await this.$post(this.api[isSubmit ? 'submitTheExamPaper' : 'examPaperRecordCache'], data)
window.opener && window.opener.location.reload()
if (isSubmit) {
clearInterval(this.counterTimer)
this.submiting = false

@ -17,7 +17,7 @@
<ul class="serials">
<template v-for="(ques, j) in item.userAnswerList">
<li v-if="!sheetStatus || sheetStatus === ques.isCorrect" :key="j" :class="'status' + ques.isCorrect"
@click="scrollToQues(ques)">
@click="scrollToQues(ques, item)">
<p :class="['serial', { answered: ques.answered, partAnswer: ques.partAnswer }]">{{ j + 1 }}</p>
<p class="score">{{ ques.userScore }}</p>
</li>
@ -203,7 +203,7 @@
<div class="line">题目分值{{ ques.questionScore }}</div>
<div class="line">考生得分<el-input class="score-input" size="small" :value="ques.userScore"
readonly />
disabled />
</div>
</div>
</div>
@ -446,9 +446,12 @@ export default {
window.requestAnimationFrame(scroll)
},
//
scrollToQues (e) {
scrollToQues (e, item) {
item.shrink = false
const el = document.querySelector('#ques' + e.id)
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#right').offsetTop, 200)
this.$nextTick(() => {
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#right').offsetTop, 200)
})
},
//
filterStatus (e) {
@ -974,6 +977,11 @@ samp {
.score-input {
width: 100px;
margin-right: 5px;
.el-input__inner {
color: #333;
background-color: #fff;
}
}
.fill-input {
@ -1018,6 +1026,12 @@ samp {
}
}
}
.ques-wrap {
&>li {
margin-bottom: 15px;
}
}
}
.result-pic {

Loading…
Cancel
Save