实验报告等

openf12
yujialong 1 year ago
parent 981ed55a11
commit f1d56abefe
  1. 31
      src/components/TestPanel.vue
  2. 10
      src/components/codemirror.vue
  3. 806
      src/views/Report.vue

@ -191,12 +191,13 @@ export default {
competitionId: Cookie.get('admin-competitionId'), competitionId: Cookie.get('admin-competitionId'),
stageId: Cookie.get('admin-stageId'), stageId: Cookie.get('admin-stageId'),
teamId: Cookie.get('admin-teamId'), teamId: Cookie.get('admin-teamId'),
mallId: Cookie.get('admin-mallId'),
resultsDetails: Cookie.get('admin-resultsDetails'), resultsDetails: Cookie.get('admin-resultsDetails'),
resultAnnouncementTime: Cookie.get('admin-resultAnnouncementTime'), resultAnnouncementTime: Cookie.get('admin-resultAnnouncementTime'),
curriculumName: Cookie.get('admin-curriculumName') ? unescape(Cookie.get('admin-curriculumName')) : 'python', // curriculumName: Cookie.get('admin-curriculumName') ? unescape(Cookie.get('admin-curriculumName')) : 'python', //
curSystemId: 1, curSystemId: 1,
projectPermissions: 0, // (0 1 2) projectPermissions: 0, // (0 1 2)
isSubmit: false, // isSubmit: Cookie.get('admin-isSubmit') == 'true' ? true : false, //
entryTime: new Date(), entryTime: new Date(),
startTime: Cookie.get('admin-startTime'), startTime: Cookie.get('admin-startTime'),
endTime: Cookie.get('admin-stopTime'), endTime: Cookie.get('admin-stopTime'),
@ -233,6 +234,10 @@ export default {
if (this.assessmentId) { // assessmentIdcompetitionId) if (this.assessmentId) { // assessmentIdcompetitionId)
this.getAssList() this.getAssList()
} else { // } else { //
if (Cookie.get('doneProjectId')) {
this.projectId = +Cookie.get('doneProjectId')
}
Cookie.remove('doneProjectId')
// //
this.getList().then(() => { this.getList().then(() => {
let cache = localStorage.getItem('codeCache') // let cache = localStorage.getItem('codeCache') //
@ -277,7 +282,7 @@ export default {
}, },
// //
getProDetail () { getProDetail () {
const projectId = this.projectId const { projectId } = this
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$get(this.api.getProjectDetail, { this.$get(this.api.getProjectDetail, {
projectId, projectId,
@ -339,6 +344,12 @@ export default {
this.$parent.loadIns.close() this.$parent.loadIns.close()
this.$parent.loaded = true this.$parent.loaded = true
}, },
// isSubmit
setSubmit (status) {
this.isSubmit = status
newmain.$emit('isSubmit', status)
Cookie.set('admin-isSubmit', status)
},
// //
getAssList () { getAssList () {
this.$post(`${this.api.pageStuAssessment}`, { this.$post(`${this.api.pageStuAssessment}`, {
@ -346,14 +357,13 @@ export default {
pageSize: 10000 pageSize: 10000
}).then(res => { }).then(res => {
const list = res.list const list = res.list
const assessmentId = this.assessmentId const { assessmentId } = this
let done = false let done = false
const classId = this.classId const classId = this.classId
// reportIdclassIdclassId // reportIdclassIdclassId
if (list.find(e => e.assessmentId == assessmentId && e.reportId && e.classId == classId)) { if (list.find(e => e.assessmentId == assessmentId && e.reportId && e.classId == classId)) {
done = true done = true
this.isSubmit = true this.setSubmit(true)
newmain.$emit('isSubmit', this.isSubmit)
this.$message.error('你已经提交过该考核!') this.$message.error('你已经提交过该考核!')
setTimeout(_ => { setTimeout(_ => {
history.back() // history.back() //
@ -518,15 +528,15 @@ export default {
this.getProDetail().then(() => { this.getProDetail().then(() => {
this.getCache() this.getCache()
}).catch(res => { }) }).catch(res => { })
this.isSubmit = false this.setSubmit(false)
this.countVal = 0 this.countVal = 0
this.grade = '00' this.grade = '00'
this.pannelTab = 'first' this.pannelTab = 'first'
this.$emit('recoveryCode') // this.$emit('recoveryCode') //
newmain.$emit('isSubmit', this.isSubmit) //
}, },
// //
toReport () { toReport () {
Cookie.set('doneProjectId', this.projectId) // id,id
this.$router.push(`/report?reportId=${this.reportId}`) this.$router.push(`/report?reportId=${this.reportId}`)
}, },
// //
@ -534,8 +544,7 @@ export default {
this.reloadCount() this.reloadCount()
this.grade = '00' this.grade = '00'
localStorage.removeItem('codeCache') localStorage.removeItem('codeCache')
this.isSubmit = false this.setSubmit(false)
newmain.$emit('isSubmit', this.isSubmit)
const points = this.points const points = this.points
// codecodeId, // codecodeId,
points.map(e => { points.map(e => {
@ -616,12 +625,12 @@ export default {
competitionId: this.competitionId, competitionId: this.competitionId,
stageId: this.stageId, stageId: this.stageId,
teamId: this.teamId, teamId: this.teamId,
mallId: this.mallId
} }
this.$post(this.api.submit, data).then(({ retInfo, reportId }) => { this.$post(this.api.submit, data).then(({ retInfo, reportId }) => {
localStorage.removeItem('codeCache') localStorage.removeItem('codeCache')
this.isSubmit = true this.setSubmit(true)
newmain.$emit('isSubmit', this.isSubmit)
clearInterval(this.statusTimer) clearInterval(this.statusTimer)
let list = retInfo let list = retInfo
let taskList = this.taskList let taskList = this.taskList

@ -195,7 +195,7 @@ export default {
runResult: '', // runResult: '', //
isError: false, // isError: false, //
errLine: '', // errLine: '', //
isSubmit: false, // isSubmit: Cookie.get('admin-isSubmit') == 'true' ? true : false, //
runEnable: false, // runEnable: false, //
tipsVisible: false, // tipsVisible: false, //
picSrcList: [], picSrcList: [],
@ -608,6 +608,9 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.code-wrap { .code-wrap {
position: relative; position: relative;
.code-mirror {
line-height: 30px;
}
} }
.left { .left {
position: relative; position: relative;
@ -686,11 +689,6 @@ export default {
opacity: 0.9; opacity: 0.9;
} }
} }
/deep/.CodeMirror-wrap pre.CodeMirror-line,
.CodeMirror-wrap pre.CodeMirror-line-like {
height: 30px;
line-height: 30px;
}
.result-right { .result-right {
background-color: rgba(43, 40, 22, 1); background-color: rgba(43, 40, 22, 1);
} }

@ -1,142 +1,224 @@
<template> <template>
<!-- 实验报告 --> <!-- 实验报告 -->
<div class="wrap"> <div class="wrap">
<breadcrumb data="返回实验/我的数据"></breadcrumb> <breadcrumb data="返回实验/我的数据"></breadcrumb>
<div class="content" :class="{loading}" id="pdfDom"> <div class="content"
<div style="text-align: right" v-if="!loading"> :class="{loading}"
<el-button size="mini" @click="editReport"> id="pdfDom">
{{ editing ? "保存" : "编辑" }} <div style="text-align: right"
</el-button> v-if="!loading">
<el-button type="primary" size="mini" @click="exportPage">导出报告</el-button> <el-button size="mini"
</div> @click="editReport">
<h6 class="r-title">标准实验报告</h6> {{ editing ? "保存" : "编辑" }}
<div class="info"> </el-button>
<h6 class="l-title"> <el-button type="primary"
<img src="@/assets/images/report1.png" alt=""> size="mini"
基本信息 @click="exportPage">导出报告</el-button>
</h6> </div>
<ul :class="['info-list', {edit: editing}]"> <h6 class="r-title">标准实验报告</h6>
<li> <div class="info">
<label>学生姓名</label> <h6 class="l-title">
<el-input v-if="editing" v-model="infoData.userName" disabled></el-input> <img src="@/assets/images/report1.png"
<span v-else>{{ infoData.userName }}</span> alt="">
</li> 基本信息
<li> </h6>
<label>学生学号</label> <ul :class="['info-list', {edit: editing}]">
<el-input v-if="editing" v-model="infoData.workNumber" disabled></el-input> <li>
<span v-else>{{ infoData.workNumber }}</span> <label>学生姓名</label>
</li> <el-input v-if="editing"
<li> v-model="infoData.userName"
<label>实验时间</label> disabled></el-input>
<el-input v-if="editing" v-model="infoData.submitTime" disabled></el-input> <span v-else>{{ infoData.userName }}</span>
<span v-else>{{ infoData.submitTime }}</span> </li>
</li> <li>
<li> <label>学生学号</label>
<label>实验成绩</label> <el-input v-if="editing"
<el-input v-if="editing" v-model="infoData.score" disabled></el-input> v-model="infoData.workNumber"
<div v-else class="score-wrap"> disabled></el-input>
<em>{{ infoData.score }}</em> <span v-else>{{ infoData.workNumber }}</span>
<img src="@/assets/images/point.png" alt=""> </li>
</div> <li>
</li> <label>实验时间</label>
<li> <el-input v-if="editing"
<label>学生班级</label> v-model="infoData.submitTime"
<el-input v-if="editing" v-model="infoData.className"></el-input> disabled></el-input>
<span v-else>{{ infoData.className }}</span> <span v-else>{{ infoData.submitTime }}</span>
</li> </li>
<li> <li>
<label>指导老师</label> <label>实验成绩</label>
<el-input v-if="editing" v-model="infoData.instructor"></el-input> <el-input v-if="editing"
<span v-else>{{ infoData.instructor }}</span> v-model="infoData.score"
</li> disabled></el-input>
<li> <div v-else
<label>实验学时</label> class="score-wrap">
<el-input v-if="editing" v-model="infoData.period"></el-input> <em>{{ infoData.score }}</em>
<span v-else>{{ infoData.period }}</span> <img src="@/assets/images/point.png"
</li> alt="">
</ul> </div>
<div class="m-b-20"> </li>
<h6 class="l-title"> <li>
<img src="@/assets/images/report2.png" alt=""> <label>学生班级</label>
实验项目名称 <el-input v-if="editing"
</h6> v-model="infoData.className"></el-input>
<el-input v-if="editing" v-model="infoData.projectName" type="textarea"></el-input> <span v-else>{{ infoData.className }}</span>
<div v-else class="pre-wrap" v-html="infoData.projectName"></div> </li>
</div> <li>
<div class="m-b-20"> <label>指导老师</label>
<h6 class="l-title"> <el-input v-if="editing"
<img src="@/assets/images/report3.png" alt=""> v-model="infoData.instructor"></el-input>
实验目的 <span v-else>{{ infoData.instructor }}</span>
</h6> </li>
<quill v-if="editing" :border="true" v-model="infoData.purpose" :height="150" /> <li>
<div v-else :class="['pre-wrap', {edit: editing}]" v-html="infoData.purpose"></div> <label>实验学时</label>
</div> <el-input v-if="editing"
<div class="m-b-20"> v-model="infoData.period"></el-input>
<h6 class="l-title"> <span v-else>{{ infoData.period }}</span>
<img src="@/assets/images/report4.png" alt=""> </li>
实验数据 </ul>
</h6> <div class="m-b-20">
<el-table :data="expData" class="table" border stripe header-align="center"> <h6 class="l-title">
<el-table-column type="index" label="序号" align="center" width="60"> <img src="@/assets/images/report2.png"
<template slot-scope="scope"> alt="">
{{ scope.$index + 1 }} 实验项目名称
</template> </h6>
</el-table-column> <el-input v-if="editing"
<el-table-column prop="judgmentName" label="判分点" width="270" align="center"></el-table-column> v-model="infoData.projectName"
<el-table-column v-if='project' prop="judgmentName" label="考核点" align="center" width="150"> type="textarea"></el-input>
<template slot-scope="scope"> <div v-else
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> class="pre-wrap"
<span> v-html="infoData.projectName"></div>
<span>{{index+1}}. </span>{{item.name}} </div>
</span> <div class="m-b-20">
</div> <h6 class="l-title">
</template> <img src="@/assets/images/report3.png"
</el-table-column> alt="">
<el-table-column prop="ruleAnswer" label="参考答案" style='word-wrap: break-word'> 实验目的
<template slot-scope="scope"> </h6>
<div v-if='scope.row.lcRuleRecords'> <quill v-if="editing"
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> :border="true"
<span> v-model="infoData.purpose"
<span>{{index+1}}. </span>{{item.ruleAnswer}} :height="150" />
</span> <div v-else
</div> :class="['pre-wrap', {edit: editing}]"
</div> v-html="infoData.purpose"></div>
<div v-else v-html="scope.row.referenceAnswer"></div> </div>
</template> <div class="m-b-20">
</el-table-column> <h6 class="l-title">
<el-table-column prop="userAnswer" label="学生答案"> <img src="@/assets/images/report4.png"
<template slot-scope="scope"> alt="">
<div v-if='scope.row.lcRuleRecords'> 实验数据
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> </h6>
<span v-if='item.userAnswer'> <el-table :data="expData"
<span>{{index+1}}. </span>{{item.userAnswer}} class="table"
</span> border
<span v-else> stripe
<span>{{index+1}}. </span>未填写 header-align="center">
</span> <el-table-column type="index"
</div> label="序号"
</div> align="center"
<div v-else v-html='scope.row.answer' style='white-space: pre-wrap'></div> width="60">
<template v-if="scope.row.runThePictureList"> <template slot-scope="scope">
<img v-for="(img, i) in scope.row.runThePictureList" :key="i" width="200" class="result-pic" :src="img" alt=""> {{ scope.$index + 1 }}
</template> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="judgmentName"
<el-table-column prop="quesScore" label="分值" width="80" align="center"></el-table-column> label="判分点"
<el-table-column prop="score" label="得分" width="80" align="center"></el-table-column> width="200"
</el-table> align="center"></el-table-column>
</div> <el-table-column v-if='project'
<div class="m-b-20"> prop="judgmentName"
<h6 class="l-title"> label="考核点"
<img src="@/assets/images/report5.png" alt=""> align="center"
实验总结与体会 width="150">
</h6> <template slot-scope="scope">
<quill v-show="editing" :border="true" v-model="infoData.summarize" :height="150" :index="1" /> <div v-for="(item, index) in scope.row.lcRuleRecords"
<div v-show="!editing" class="pre-wrap" v-html="infoData.summarize"></div> :key="index">
</div> <span>
</div> <span>{{index+1}}. </span>{{item.name}}
</span>
</div>
</template>
</el-table-column>
<el-table-column prop="ruleAnswer"
label="参考答案"
style='word-wrap: break-word'>
<template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords"
:key="index">
<span>
<span>{{index+1}}. </span>{{item.ruleAnswer}}
</span>
</div>
</div>
<div v-else
v-html="scope.row.referenceAnswer"></div>
</template>
</el-table-column>
<el-table-column prop="userAnswer"
label="学生答案">
<template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords"
:key="index">
<span v-if='item.userAnswer'>
<span>{{index+1}}. </span>{{item.userAnswer}}
</span>
<span v-else>
<span>{{index+1}}. </span>未填写
</span>
</div>
</div>
<div v-else
v-html='scope.row.answer'
style='white-space: pre-wrap'></div>
</template>
</el-table-column>
<el-table-column prop="runResult"
label="学生运行结果"
align="center">
<template slot-scope="scope">
<div class="m-b-20"
v-html='scope.row.runResult'
style='white-space: pre-wrap'></div>
<template v-if="scope.row.runThePictureList">
<img v-for="(img, i) in scope.row.runThePictureList"
:key="i"
width="200"
class="result-pic"
:src="img"
alt="">
</template>
</template>
</el-table-column>
<el-table-column prop="quesScore"
label="分值"
width="80"
align="center"></el-table-column>
<el-table-column prop="score"
label="得分"
width="80"
align="center"></el-table-column>
</el-table>
</div>
<div class="m-b-20">
<h6 class="l-title">
<img src="@/assets/images/report5.png"
alt="">
实验总结与体会
</h6>
<quill v-show="editing"
:border="true"
v-model="infoData.summarize"
:height="150"
:index="1" />
<div v-show="!editing"
class="pre-wrap"
v-html="infoData.summarize"></div>
</div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
@ -145,126 +227,129 @@ import util from '@/util'
import breadcrumb from '@/components/breadcrumb' import breadcrumb from '@/components/breadcrumb'
import quill from "@/components/quill"; import quill from "@/components/quill";
export default { export default {
data() { data () {
return { return {
reportId: this.$route.query.reportId, reportId: this.$route.query.reportId,
title: "实验报告", title: "实验报告",
form: {}, form: {},
infoData: {}, infoData: {},
expData: [], expData: [],
editing: false, editing: false,
loadIns: null, loadIns: null,
loading: false, loading: false,
project:false, project: false,
userScores: [] userScores: []
}; };
}, },
components: { components: {
breadcrumb, breadcrumb,
quill quill
}, },
mounted() { mounted () {
this.getData() this.getData()
},
methods: {
getData () { //
const { reportId } = this
this.$get(`${this.api.reportDetail}?reportId=${reportId}`).then(({ report, userScores }) => {
this.form = report
const form = this.form
this.infoData = {
reportId,
className: form.className,
workNumber: form.workNumber,
experimentalClassName: form.experimentalClassName,
instructor: form.instructor,
period: form.period,
laboratory: form.laboratory,
submitTime: form.submitTime,
score: form.score,
userName: form.userName,
projectName: form.projectName,
purpose: form.purpose,
summarize: form.summarize
}
const data = report.data
this.userScores = userScores
// data使
if (!data) {
this.handleList(userScores)
this.$post(this.api.editExperimentalData, {
reportId,
data: JSON.stringify(userScores)
}).then(res => { }).catch(err => { })
} else {
this.handleList(userScores.find(e => e.lcRuleRecords) ? userScores : JSON.parse(data))
}
}).catch(res => { })
}, },
methods: { //
getData() { // handleList (list) {
const { reportId } = this this.project = list.find(e => e.lcRuleRecords) // lcRuleRecords
this.$get(`${this.api.reportDetail}?reportId=${reportId}`).then(({ report, userScores }) => { if (this.project) {
this.form = report list.map(e => {
const form = this.form e.assessmentPoint = ''
this.infoData = { e.referenceAnswer = ''
reportId, e.answer = ''
className: form.className, e.lcRuleRecords.map((n, i) => {
workNumber: form.workNumber, e.assessmentPoint += `${i + 1}.${n.name}`
experimentalClassName: form.experimentalClassName, e.referenceAnswer += `${i + 1}.${n.ruleAnswer}`
instructor: form.instructor, e.answer += `${i + 1}.${n.userAnswer}`
period: form.period,
laboratory: form.laboratory,
submitTime: form.submitTime,
score: form.score,
userName: form.userName,
projectName: form.projectName,
purpose: form.purpose,
summarize: form.summarize
}
const data = report.data
this.userScores = userScores
// data使
if (!data) {
this.handleList(userScores)
this.$post(this.api.editExperimentalData, {
reportId,
data: JSON.stringify(userScores)
}).then(res => {}).catch(err => {})
} else {
this.handleList(userScores.find(e => e.lcRuleRecords) ? userScores : JSON.parse(data))
}
}).catch(res => {})
},
//
handleList(list) {
this.project = list.find(e => e.lcRuleRecords) // lcRuleRecords
if (this.project) {
list.map(e => {
e.assessmentPoint = ''
e.referenceAnswer = ''
e.answer = ''
e.lcRuleRecords.map((n, i) => {
e.assessmentPoint += `${i + 1}.${n.name}`
e.referenceAnswer += `${i + 1}.${n.ruleAnswer}`
e.answer += `${i + 1}.${n.userAnswer}`
})
})
} else { // pythonuserScores
list.forEach(e => {
const item = this.userScores.find(n => n.judgmentId == e.judgmentId)
if (item && item.runThePictureList) e.runThePictureList = item.runThePictureList
})
}
this.expData = list
},
exportPage() {
const form = Object.assign(this.form, this.infoData)
const list = JSON.parse(JSON.stringify(this.expData))
list.map((e, i) => {
const item = this.userScores.find(n => n.judgmentId == e.judgmentId)
if (item && item.runThePicture) e.runThePicture = item.runThePicture
if (item && item.runThePictureList) e.runThePictureList = item.runThePictureList
e.id = i + 1
if (e.referenceAnswer && typeof e.referenceAnswer === 'string') e.referenceAnswer = e.referenceAnswer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
if (e.answer && typeof e.answer === 'string') e.answer = e.answer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
}) })
for (const i in form) { })
if (form[i] && typeof form[i] === 'string') form[i] = form[i].replace(/<[^>]+>/g, '') } else { // pythonuserScores
list.forEach(e => {
const item = this.userScores.find(n => n.judgmentId == e.judgmentId)
if (item) {
if (item.runThePictureList) e.runThePictureList = item.runThePictureList
if (item.runResult) e.runResult = item.runResult
} }
form.purpose = form.purpose.replace(/<[^>]+>/g, '') })
this.loading = true; }
this.loadIns = Loading.service({ this.expData = list
background: "#fff" },
}); exportPage () {
this.$post(this.project ? this.api.exportBankExperimentReport : this.api.exportLabReport, { const form = Object.assign(this.form, this.infoData)
...form, const list = JSON.parse(JSON.stringify(this.expData))
experimentalData: list list.map((e, i) => {
}).then(res => { const item = this.userScores.find(n => n.judgmentId == e.judgmentId)
this.loadIns.close(); if (item && item.runThePicture) e.runThePicture = item.runThePicture
this.loading = false; if (item && item.runThePictureList) e.runThePictureList = item.runThePictureList
util.downloadFileDirect(`实验报告.docx`,new Blob([res])) e.id = i + 1
}).catch(res => { if (e.referenceAnswer && typeof e.referenceAnswer === 'string') e.referenceAnswer = e.referenceAnswer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
this.loadIns.close(); if (e.answer && typeof e.answer === 'string') e.answer = e.answer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
this.loading = false; })
}) for (const i in form) {
}, if (form[i] && typeof form[i] === 'string') form[i] = form[i].replace(/<[^>]+>/g, '')
editReport() { // }
if (this.editing) { form.purpose = form.purpose.replace(/<[^>]+>/g, '')
this.$post(`${this.api.updateReport}`, this.infoData).then(res => { this.loading = true;
this.editing = false; this.loadIns = Loading.service({
this.$message.success('修改成功') background: "#fff"
}).catch(err => {}); });
} else { this.$post(this.project ? this.api.exportBankExperimentReport : this.api.exportLabReport, {
this.editing = true; ...form,
} experimentalData: list
} }).then(res => {
this.loadIns.close();
this.loading = false;
util.downloadFileDirect(`实验报告.docx`, new Blob([res]))
}).catch(res => {
this.loadIns.close();
this.loading = false;
})
},
editReport () { //
if (this.editing) {
this.$post(`${this.api.updateReport}`, this.infoData).then(res => {
this.editing = false;
this.$message.success('修改成功')
}).catch(err => { });
} else {
this.editing = true;
}
} }
}
}; };
</script> </script>
@ -273,132 +358,137 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
} }
.wrap { .wrap {
padding: 12px 300px 20px; padding: 12px 300px 20px;
} }
code, kbd, samp{ code,
font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; kbd,
word-wrap: break-word; samp {
white-space: pre-wrap; font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei',
arial, STHeiTi, sans-serif;
word-wrap: break-word;
white-space: pre-wrap;
} }
/deep/ pre{ /deep/ pre {
white-space: pre-wrap; /* css-3 */ white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: pre-wrap; /* Opera 4-6 */ white-space: pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */ white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */ word-wrap: break-word; /* Internet Explorer 5.5+ */
word-break:break-all; word-break: break-all;
overflow:hidden; overflow: hidden;
font-size: 12px; font-size: 12px;
font-weight:400; font-weight: 400;
font-family:'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei',
arial, STHeiTi, sans-serif;
} }
.content { .content {
padding: 16px 0; padding: 16px 0;
background: #fff; background: #fff;
&.loading { &.loading {
padding-top: 30px; padding-top: 30px;
}
.r-title {
margin-bottom: 40px;
font-size: 24px;
text-align: center;
color: #333;
}
.info {
padding: 20px 16px;
border: 1px solid #e1e6f2;
}
.l-title {
display: flex;
align-items: center;
padding: 5px 8px;
margin-bottom: 12px;
font-size: 14px;
color: #333;
background-color: #f7f9fc;
img {
margin-right: 5px;
} }
.r-title { }
margin-bottom: 40px; .info-list {
font-size: 24px; display: flex;
text-align: center; flex-wrap: wrap;
color: #333; padding: 10px 0 0 20px;
li {
display: inline-flex;
width: 25%;
padding: 0 10px;
margin-bottom: 34px;
} }
.info { &.edit {
padding: 20px 16px; li {
border: 1px solid #E1E6F2; align-items: center;
}
} }
.l-title{ label {
display: flex;
align-items: center;
padding: 5px 8px;
margin-bottom: 12px;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
background-color: #F7F9FC; white-space: nowrap;
img{
margin-right: 5px;
}
} }
.info-list { span {
display: flex; min-width: 150px;
flex-wrap: wrap; padding: 0 10px 3px;
padding: 10px 0 0 20px; border-bottom: 1px solid #e1e6f2;
li {
display: inline-flex;
width: 25%;
padding: 0 10px;
margin-bottom: 34px;
}
&.edit {
li {
align-items: center;
}
}
label {
font-size: 14px;
color: #333;
white-space: nowrap;
}
span {
min-width: 150px;
padding: 0 10px 3px;
border-bottom: 1px solid #E1E6F2;
}
/deep/.el-input {
width: 174px;
}
} }
.score-wrap { /deep/.el-input {
position: relative; width: 174px;
min-width: 150px;
border-bottom: 1px solid #E1E6F2;
em {
position: absolute;
top: -12px;
left: 30px;
font-family: din;
font-size: 30px;
font-weight: 600;
color: #0B1D30;
}
img {
position: absolute;
bottom: -15px;
left: 0;
}
} }
/deep/.el-textarea .el-textarea__inner, .pre-wrap { }
min-height: 72px; .score-wrap {
padding: 10px 16px; position: relative;
font-size: 14px; min-width: 150px;
color: #333; border-bottom: 1px solid #e1e6f2;
&.edit { em {
color: #ABB3C6; position: absolute;
border: 1px solid #CACFDB; top: -12px;
border-radius: 4px; left: 30px;
background-color: #F6F7F9; font-family: din;
} font-size: 30px;
font-weight: 600;
color: #0b1d30;
} }
/deep/ .table th { img {
background-color: #e1eaff !important; position: absolute;
.cell { bottom: -15px;
line-height: 35px; left: 0;
color: #555555; }
} }
/deep/.el-textarea .el-textarea__inner,
.pre-wrap {
min-height: 72px;
padding: 10px 16px;
font-size: 14px;
color: #333;
&.edit {
color: #abb3c6;
border: 1px solid #cacfdb;
border-radius: 4px;
background-color: #f6f7f9;
} }
}
/deep/ .table th {
background-color: #e1eaff !important;
.cell {
line-height: 35px;
color: #555555;
}
}
} }
.result-pic { .result-pic {
margin: 10px 0; margin: 10px 0;
} }
@media (max-width: 1650px) { @media (max-width: 1650px) {
.wrap { .wrap {
padding: 12px 200px 20px; padding: 12px 200px 20px;
} }
} }
@media (max-width: 1430px) { @media (max-width: 1430px) {
.wrap { .wrap {
padding: 12px 100px 20px; padding: 12px 100px 20px;
} }
} }
</style> </style>
Loading…
Cancel
Save