实验报告

20240205 20230705
yujialong 1 year ago
parent 2cf63091a1
commit a823365509
  1. 55
      src/App.vue
  2. 470
      src/components/case/index.vue
  3. 124
      src/components/selectBusiness/index.vue
  4. 50
      src/layouts/header/index.vue
  5. 164
      src/pages/index/list/index.vue
  6. 263
      src/pages/report/index.vue

@ -1,19 +1,21 @@
<template> <template>
<div id="app" > <div id="app">
<select-business class="selectBusiness" :showIt.sync="showIt" v-show="!showIt && showBusiness" /> <select-business class="selectBusiness"
:showIt.sync="showIt"
v-show="!showIt && showBusiness" />
<router-view></router-view> <router-view></router-view>
<vCase :showIt.sync="showIt"></vCase> <vCase :showIt.sync="showIt"></vCase>
<tip-dialog class="Z-9999" /> <tip-dialog class="Z-9999" />
</div> </div>
</template> </template>
<script> <script>
import vCase from '@/components/case' import vCase from '@/components/case'
import Setting from '@/setting'; import Setting from '@/setting';
import util from '@/libs/util'; import util from '@/libs/util';
import selectBusiness from '@/components/selectBusiness' import selectBusiness from '@/components/selectBusiness'
import TipDialog from '@/components/tipDialog' import TipDialog from '@/components/tipDialog'
import { mapState, mapMutations } from 'vuex' import { mapState, mapMutations } from 'vuex'
export default { export default {
name: 'App', name: 'App',
components: { components: {
vCase, vCase,
@ -22,23 +24,23 @@
}, },
created () { created () {
//localStorage //localStorage
if (util.local.get(Setting.storeKey) ) { if (util.local.get(Setting.storeKey)) {
this.$store.replaceState(Object.assign({}, this.$store.state,util.local.get(Setting.storeKey))) this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey)))
this.$store.system.replaceState(Object.assign({}, sessionStorage.getItem('systemData'))) this.$store.system.replaceState(Object.assign({}, sessionStorage.getItem('systemData')))
} }
//vuexlocalStorage //vuexlocalStorage
window.addEventListener("beforeunload",()=>{ window.addEventListener("beforeunload", () => {
if(this.$route.fullPath.includes('/counter/list/manage')) { if (this.$route.fullPath.includes('/counter/list/manage')) {
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
} }
util.local.get(Setting.tokenKey) && util.local.set(Setting.storeKey,this.$store.state) util.local.get(Setting.tokenKey) && util.local.set(Setting.storeKey, this.$store.state)
sessionStorage.setItem('systemData', this.$store.system.state) sessionStorage.setItem('systemData', this.$store.system.state)
}) })
}, },
data() { data () {
return { return {
showIt: true, showIt: true,
showSelect: false showSelect: false
@ -52,18 +54,20 @@
}, },
watch: { watch: {
showIt: { showIt: {
handler(newVal) { handler (newVal) {
if(!newVal && !this.businessKey) { console.log("🚀 ~ file: App.vue:58 ~ handler ~ newVal:", newVal, this.businessKey, sessionStorage.getItem('submited'))
if (!newVal && !this.businessKey && !sessionStorage.getItem('submited')) {
this.setShowBusiness(true) this.setShowBusiness(true)
}else { } else {
if(!newVal) { if (!newVal) {
// //
if(!this.businessKey) { if (!this.businessKey && !sessionStorage.getItem('submited')) {
console.log("🚀 ~ file: App.vue:65 ~ handler ~ submited:", sessionStorage.getItem('submited'))
this.$nextTick(() => { this.setShowBusiness(true) }) this.$nextTick(() => { this.setShowBusiness(true) })
}else { } else {
// this.setTipsOperate('' + this.businessKey + ','); // this.setTipsOperate('' + this.businessKey + ',');
} }
}else { } else {
this.$nextTick(() => { this.setShowBusiness(false) }) this.$nextTick(() => { this.setShowBusiness(false) })
} }
} }
@ -78,7 +82,7 @@
businessKey: state => state.system.businessKey businessKey: state => state.system.businessKey
}) })
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -91,8 +95,9 @@
height: 100%; height: 100%;
} }
.fade-enter-active, .fade-leave-active { .fade-enter-active,
transition: opacity .5s; .fade-leave-active {
transition: opacity 0.5s;
} }
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0; opacity: 0;

File diff suppressed because it is too large Load Diff

@ -1,22 +1,38 @@
<template> <template>
<!-- 业务选择列表 --> <!-- 业务选择列表 -->
<el-dialog :visible="true" class="" :modal="false" @close="closeData" :close-on-click-modal="false" :show-close="false" custom-class="data-dia 2xl:w-7/12 xl:w-9/12 lg:w-full h-9/12"> <el-dialog :visible="true"
<div slot="title" class="dia-header2"> class=""
:modal="false"
@close="closeData"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia 2xl:w-7/12 xl:w-9/12 lg:w-full h-9/12">
<div slot="title"
class="dia-header2">
<div class="data-title2">业务选择</div> <div class="data-title2">业务选择</div>
<div class="close"><img v-lazy="closeImg" alt="" @click="showBusinessSelect(false)" /></div> <div class="close"><img v-lazy="closeImg"
alt=""
@click="showBusinessSelect(false)" /></div>
</div> </div>
<p class="tips2">请选择您要办理的业务:</p> <p class="tips2">请选择您要办理的业务:</p>
<ul class="take-list2"> <ul class="take-list2">
<li v-for="(item) in getBusinessSelectList" :class="{checked: takeCheck == item.myKey}" :key="item.myKey" @click="checkTake(item.myKey)"> <li v-for="(item) in getBusinessSelectList"
<img v-lazy="businessImg" alt=""> :class="{checked: takeCheck == item.myKey}"
:key="item.myKey"
@click="checkTake(item.myKey)">
<img v-lazy="businessImg"
alt="">
<p>{{ item.myKey + item.text}}</p> <p>{{ item.myKey + item.text}}</p>
</li> </li>
<li v-for="(item) in (3 - getBusinessSelectList.length%3)" class="sitting" :key="item"></li> <li v-for="(item) in (3 - getBusinessSelectList.length%3)"
class="sitting"
:key="item"></li>
</ul> </ul>
<div class="dia-footer2"> <div class="dia-footer2">
<div class='busyButtonBox'> <div class='busyButtonBox'>
<el-button @click="showBusinessSelect(false)">取消</el-button> <el-button @click="showBusinessSelect(false)">取消</el-button>
<el-button type="primary" @click="selectBusiness()">确定</el-button> <el-button type="primary"
@click="selectBusiness()">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -33,13 +49,13 @@ export default {
// } // }
// default: '' // default: ''
}, },
mounted() { mounted () {
if(this.businessKey) { if (this.businessKey) {
// //
this.takeCheck = this.businessKey this.takeCheck = this.businessKey
} }
}, },
data() { data () {
return { return {
checkList: [], checkList: [],
takeCheck: '', takeCheck: '',
@ -54,13 +70,13 @@ export default {
setShowBusiness: 'system/setShowBusiness', setShowBusiness: 'system/setShowBusiness',
setTipsOperate: 'system/setTipsOperate', setTipsOperate: 'system/setTipsOperate',
}), }),
closeData() { closeData () {
this.checkList = []; this.checkList = [];
}, },
// / // /
showBusinessSelect (judge) { showBusinessSelect (judge) {
// //
if(!judge && !this.businessKey) { if (!judge && !this.businessKey) {
this.$confirm('由于您未选择一个业务,这将回到业务列表,是否继续?', '提示', { this.$confirm('由于您未选择一个业务,这将回到业务列表,是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
@ -81,17 +97,17 @@ export default {
// //
this.setTipsOperate('您正在进行' + this.businessKey + ',加油!'); this.setTipsOperate('您正在进行' + this.businessKey + ',加油!');
}, },
checkTake(myKey){ checkTake (myKey) {
// //
if(this.takeCheck === myKey) { if (this.takeCheck === myKey) {
this.takeCheck = '' this.takeCheck = ''
}else { } else {
this.takeCheck = myKey this.takeCheck = myKey
} }
}, },
selectBusiness() { selectBusiness () {
// //
if(!this.takeCheck) { if (!this.takeCheck) {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '请选择一个业务' message: '请选择一个业务'
@ -102,7 +118,7 @@ export default {
this.setBusinessKey(this.takeCheck) this.setBusinessKey(this.takeCheck)
// this.$store.dispatch('system/getJudgeData') // this.$store.dispatch('system/getJudgeData')
// id // id
if(!this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id) { if (!this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id) {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '业务开发中,尽请期待!' message: '业务开发中,尽请期待!'
@ -129,19 +145,20 @@ export default {
sessionStorage.setItem('cid', cid) sessionStorage.setItem('cid', cid)
sessionStorage.setItem('systemId', systemId) sessionStorage.setItem('systemId', systemId)
sessionStorage.setItem('projectId', projectId) sessionStorage.setItem('projectId', projectId)
if(assessmentId) { sessionStorage.removeItem('submited')
if (assessmentId) {
sessionStorage.setItem('assessmentId', assessmentId) sessionStorage.setItem('assessmentId', assessmentId)
} }
if(classId) { if (classId) {
sessionStorage.setItem('classId', classId) sessionStorage.setItem('classId', classId)
} }
if(timestamp) { if (timestamp) {
sessionStorage.setItem('timestamp', timestamp) sessionStorage.setItem('timestamp', timestamp)
} }
if(startTime) { if (startTime) {
sessionStorage.setItem('startTime', startTime) sessionStorage.setItem('startTime', startTime)
} }
if(storeProjectId) { if (storeProjectId) {
sessionStorage.setItem('storeProjectId', storeProjectId) sessionStorage.setItem('storeProjectId', storeProjectId)
} }
@ -161,9 +178,9 @@ export default {
}) })
}, },
watch: { watch: {
showBusiness(newVal) { showBusiness (newVal) {
console.log('what') console.log('what')
if(newVal) { if (newVal) {
this.takeCheck = this.businessKey this.takeCheck = this.businessKey
} }
} }
@ -187,7 +204,7 @@ export default {
max-height: 600px; max-height: 600px;
overflow: auto; overflow: auto;
// //
.take-list2{ .take-list2 {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
@ -195,30 +212,30 @@ export default {
flex-wrap: wrap; flex-wrap: wrap;
height: 40vh; height: 40vh;
overflow: auto; overflow: auto;
li{ li {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
width: 30%; width: 30%;
height: 10vh; height: 10vh;
font-size: 16px; font-size: 16px;
margin: 1vh 0; margin: 1vh 0;
border: 4px solid #DBDBDB; border: 4px solid #dbdbdb;
border-radius: 20px; border-radius: 20px;
cursor: pointer; cursor: pointer;
background-color: rgba(216,216,216,0.10); background-color: rgba(216, 216, 216, 0.1);
// &:first-child{ // &:first-child{
// margin: 0 0px 50px 0; // margin: 0 0px 50px 0;
// } // }
// &:last-child{ // &:last-child{
// margin-left: 50px; // margin-left: 50px;
// } // }
img{ img {
width: 15%; width: 15%;
margin: 0; margin: 0;
//height: 154px; //height: 154px;
//margin: 0 45px; //margin: 0 45px;
} }
p{ p {
font-size: 16px; font-size: 16px;
color: #000; color: #000;
text-align: left; text-align: left;
@ -231,27 +248,28 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical -webkit-box-orient: vertical;
} }
&.checked{ &.checked {
background: rgba(97,145,255,0.10) url('../../assets/svg/checked.svg') 96% 7%/auto no-repeat; background: rgba(97, 145, 255, 0.1) url('../../assets/svg/checked.svg') 96% 7% / auto no-repeat;
border-color: #6191FF; border-color: #6191ff;
} }
} }
} }
.dia-header2 { .dia-header2 {
position: relative;height: 50px; position: relative;
height: 50px;
line-height: 50px; line-height: 50px;
background-color: rgb(98, 149, 243) ; background-color: rgb(98, 149, 243);
border-top-left-radius:14px; border-top-left-radius: 14px;
border-top-right-radius:14px; border-top-right-radius: 14px;
.data-title2 { .data-title2 {
position: absolute; position: absolute;
left: 15px; left: 15px;
height: 50px; height: 50px;
font-size: 16px; font-size: 16px;
line-height: 50px; line-height: 50px;
color:#fff; color: #fff;
} }
.close { .close {
height: 50px; height: 50px;
@ -280,7 +298,7 @@ export default {
margin: 0 auto; margin: 0 auto;
display: flex; display: flex;
align-items: center; align-items: center;
.img-wrap{ .img-wrap {
background: url('../../assets/img/data-frame.png') 0 0 / cover no-repeat; background: url('../../assets/img/data-frame.png') 0 0 / cover no-repeat;
width: 180px; width: 180px;
height: 180px; height: 180px;
@ -294,7 +312,7 @@ export default {
max-width: 180px; max-width: 180px;
max-height: 130px; max-height: 130px;
text-align: center; text-align: center;
margin: 10px 10px ; margin: 10px 10px;
img { img {
margin-top: 45px; margin-top: 45px;
} }
@ -308,13 +326,13 @@ export default {
color: #000; color: #000;
} }
} }
.text{ .text {
font-size: 18px; font-size: 18px;
white-space:nowrap; white-space: nowrap;
position: absolute; position: absolute;
bottom: 15px; bottom: 15px;
left: 50%; left: 50%;
transform: translate(-50%,0); transform: translate(-50%, 0);
} }
&.checked { &.checked {
background: url('../../assets/img/data-frame-checked.png') 0 0 / cover no-repeat, background: url('../../assets/img/data-frame-checked.png') 0 0 / cover no-repeat,
@ -325,19 +343,19 @@ export default {
} }
} }
} }
.seal{ .seal {
width: 1100px; width: 1100px;
padding: 0 5%; padding: 0 5%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.box{ .box {
border: 2px solid #e6e6e6; border: 2px solid #e6e6e6;
width: 45%; width: 45%;
min-height: 300px; min-height: 300px;
border-radius: 10px; border-radius: 10px;
padding: 10px; padding: 10px;
} }
.left{ .left {
display: flex; display: flex;
width: 50%; width: 50%;
flex-wrap: wrap; flex-wrap: wrap;
@ -349,14 +367,14 @@ export default {
background: url('../../assets/img/data-frame.png') 0 0 / cover no-repeat; background: url('../../assets/img/data-frame.png') 0 0 / cover no-repeat;
cursor: pointer; cursor: pointer;
margin: 5px 7px; margin: 5px 7px;
img{ img {
width: 130px; width: 130px;
max-height: 90px; max-height: 90px;
} }
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
} }
&:nth-child(n>1){ &:nth-child(n > 1) {
margin-top: 0; margin-top: 0;
} }
img { img {
@ -394,10 +412,10 @@ export default {
} }
} }
} }
.right{ .right {
margin-left: 5%; margin-left: 5%;
} }
.else{ .else {
width: 100%; width: 100%;
} }
} }
@ -416,6 +434,6 @@ export default {
.sitting { .sitting {
opacity: 0; opacity: 0;
cursor: default!important; cursor: default !important;
} }
</style> </style>

@ -1,11 +1,17 @@
<template> <template>
<div class="header" ref="exitHeader"> <div class="header"
<div class="inner" style="width: 100%"> ref="exitHeader">
<div class="logo" @click="toIndex" style="float: left"> <div class="inner"
<img src="../../assets/img/logo.png" alt=""> style="width: 100%">
<div class="logo"
@click="toIndex"
style="float: left">
<img src="../../assets/img/logo.png"
alt="">
</div> </div>
<div style="float: right;margin:0 60px;font-size: 18px"> <div style="float: right;margin:0 60px;font-size: 18px">
<span style="cursor:pointer" @click="exit"> <span style="cursor:pointer"
@click="exit">
退出<i class="icon el-icon-s-unfold"></i> 退出<i class="icon el-icon-s-unfold"></i>
</span> </span>
</div> </div>
@ -13,39 +19,39 @@
</div> </div>
</template> </template>
<script> <script>
import { mapState,mapActions } from 'vuex' import { mapState, mapActions } from 'vuex'
import Setting from '@/setting' import Setting from '@/setting'
import util from '@/libs/util' import util from '@/libs/util'
import Cookie from 'js-cookie' import Cookie from 'js-cookie'
export default { export default {
data() { data () {
return { return {
token: util.local.get(Setting.tokenKey), token: util.local.get(Setting.tokenKey),
}; };
}, },
mounted(){ mounted () {
this.$route.query.manager && Cookie.set('manager', 1) this.$route.query.manager && Cookie.set('manager', 1)
}, },
methods: { methods: {
toIndex(){ toIndex () {
this.$refs.nav.jump({ this.$refs.nav.jump({
index: '/index/list', index: '/index/list',
title: '首页' title: '首页'
}) })
}, },
exit(){ exit () {
const url = location.href const url = location.href
let href = process.env.NODE_ENV === 'development' ? let href = process.env.NODE_ENV === 'development' ?
`http://${location.hostname}:8082/#/` : `http://${location.hostname}:8082/#/` :
`${url.includes('huorantech.cn') ? `http://www.occupationlab.com` : location.origin}${Cookie.get('manager') ? `${url.includes('huorantech.cn') ? `https://www.occupationlab.com` : location.origin}${Cookie.get('manager') ?
'/admin' : '/admin' :
(url.includes('huorantech.cn') || url.includes('izhixinyun.com')) ? (url.includes('huorantech.cn') || url.includes('izhixinyun.com')) ?
'' : '' :
'/student'}/#/` '/student'}/#/`
let assessmentId = sessionStorage.getItem('assessmentId') let assessmentId = sessionStorage.getItem('assessmentId')
if (assessmentId != 'null' && assessmentId != null && assessmentId != ''){ if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
href += `ass/list` href += `ass/list`
}else{ } else {
const cid = sessionStorage.getItem('cid') const cid = sessionStorage.getItem('cid')
href += `station/preview?courseId=${cid}&curriculumName=银行项目` href += `station/preview?courseId=${cid}&curriculumName=银行项目`
} }
@ -54,12 +60,12 @@ export default {
}, },
watch: { watch: {
'$route.path': { '$route.path': {
handler(newVal) { handler (newVal) {
this.$nextTick(() => { this.$nextTick(() => {
console.log(newVal) console.log(newVal)
if(newVal === '/index/list') { if (newVal === '/index/list') {
this.$refs.exitHeader.style.backgroundColor = 'rgb(250, 250, 250)' this.$refs.exitHeader.style.backgroundColor = 'rgb(250, 250, 250)'
}else { } else {
this.$refs.exitHeader.style.backgroundColor = 'rgb(244, 245, 248)' this.$refs.exitHeader.style.backgroundColor = 'rgb(244, 245, 248)'
} }
}) })
@ -70,22 +76,22 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.header{ .header {
width:100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
position: relative; position: relative;
height: 68px; height: 68px;
// background-color: #fff; // background-color: #fff;
background-color: rgb(244,245,248); background-color: rgb(244, 245, 248);
z-index: 1001; z-index: 1001;
.logo{ .logo {
width: 500px; width: 500px;
margin-left: 42px; margin-left: 42px;
cursor: pointer; cursor: pointer;
img{ img {
width: 100%; width: 100%;
} }
} }
} }
</style> </style>

@ -1,39 +1,61 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<img class="sth bg" src="@/assets/img/index-bg.png" alt=""> <img class="sth bg"
<div class="case" @click="setShowBusiness(true)">业务选择</div> src="@/assets/img/index-bg.png"
alt="">
<div class="case"
@click="setShowBusiness(true)">业务选择</div>
<!-- 业务选择 --弹框 --> <!-- 业务选择 --弹框 -->
<div class="sth integrated-counter cp"> <div class="sth integrated-counter cp">
<img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> <img width="100%"
v-lazy="lazy1"
alt=""
@click="toPart('/counter')">
<!-- src="@/assets/img/integrated-counter.png" --> <!-- src="@/assets/img/integrated-counter.png" -->
<div class="name" @click="toPart('/counter')">综合柜台</div> <div class="name"
@click="toPart('/counter')">综合柜台</div>
</div> </div>
<div class="sth international cp"> <div class="sth international cp">
<!-- <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> --> <!-- <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> -->
<img width="100%" v-lazy="lazy2" alt="" @click="showComing" /> <img width="100%"
v-lazy="lazy2"
alt=""
@click="showComing" />
<!-- src="@/assets/img/integrated-counter.png" --> <!-- src="@/assets/img/integrated-counter.png" -->
<!-- <div class="name" @click="showComing">国际结算部</div> --> <!-- <div class="name" @click="showComing">国际结算部</div> -->
</div> </div>
<!-- <img class="sth international cp" v-lazy="lazy2" alt="" @click="showComing"> --> <!-- <img class="sth international cp" v-lazy="lazy2" alt="" @click="showComing"> -->
<div class="sth manager cp" @click="toPart('/lobbyManager')"> <div class="sth manager cp"
<img width="100%" v-lazy="lazy3" alt=""> @click="toPart('/lobbyManager')">
<img width="100%"
v-lazy="lazy3"
alt="">
<div class="name">大堂经理</div> <div class="name">大堂经理</div>
</div> </div>
<img class="sth credit-dep cp" v-lazy="lazy4" alt="" @click="showComing"> <img class="sth credit-dep cp"
<img class="sth company-finance cp" v-lazy="lazy5" alt="" @click="showComing"> v-lazy="lazy4"
<img class="sth personal-finance cp" v-lazy="lazy6" alt="" @click="showComing"> alt=""
@click="showComing">
<img class="sth company-finance cp"
v-lazy="lazy5"
alt=""
@click="showComing">
<img class="sth personal-finance cp"
v-lazy="lazy6"
alt=""
@click="showComing">
<div class="coming" :class="{active: comingVisible}"> <div class="coming"
:class="{active: comingVisible}">
<div style="width: 20%;margin: auto"> <div style="width: 20%;margin: auto">
<img style="width: 100%" v-lazy="lazy7" alt=""> <img style="width: 100%"
v-lazy="lazy7"
alt="">
</div> </div>
<p class="text">敬请期待</p> <p class="text">敬请期待</p>
</div> </div>
@ -45,8 +67,8 @@ import { mapMutations, mapState } from 'vuex';
import saveSystemModule from '@/mixins/saveSystemModule' import saveSystemModule from '@/mixins/saveSystemModule'
export default { export default {
name: 'index', name: 'index',
mixins: [ saveSystemModule ], mixins: [saveSystemModule],
data() { data () {
return { return {
caseVisible: true, caseVisible: true,
comingVisible: false, comingVisible: false,
@ -60,8 +82,8 @@ export default {
lazy7: require('@/assets/svg/coming.svg') lazy7: require('@/assets/svg/coming.svg')
} }
}, },
created() { created () {
if(!sessionStorage.getItem('firstLoad2')) { if (!sessionStorage.getItem('firstLoad2')) {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
// text: 'Loading', // text: 'Loading',
@ -75,17 +97,17 @@ export default {
}, 1000); }, 1000);
} }
if(!this.businessKey) { if (!this.businessKey) {
this.setShowBusiness(true) this.setShowBusiness(true)
} }
}, },
mounted() { mounted () {
let token = this.getQueryVariable('token') let token = this.getQueryVariable('token')
let cid = this.getQueryVariable('cid') let cid = this.getQueryVariable('cid')
let systemId = this.getQueryVariable('systemId') let systemId = this.getQueryVariable('systemId')
let stopTime = this.getQueryVariable('stopTime') let stopTime = this.getQueryVariable('stopTime')
let timestamp =+stopTime; let timestamp = +stopTime;
if (token != null){ if (token != null) {
sessionStorage.setItem('token', token) sessionStorage.setItem('token', token)
sessionStorage.setItem('cid', cid) sessionStorage.setItem('cid', cid)
sessionStorage.setItem('systemId', systemId) sessionStorage.setItem('systemId', systemId)
@ -102,34 +124,34 @@ export default {
...mapMutations({ ...mapMutations({
setShowBusiness: 'system/setShowBusiness' setShowBusiness: 'system/setShowBusiness'
}), }),
getQueryVariable(name) { getQueryVariable (name) {
var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)') var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
if( window.location.href.split('?')[1]){ if (window.location.href.split('?')[1]) {
var r = window.location.href.split('?')[1].match(reg) var r = window.location.href.split('?')[1].match(reg)
if (r != null){ if (r != null) {
return (r[2]) return (r[2])
}else{ } else {
return null return null
} }
} }
}, },
toPart(path){ toPart (path) {
this.$router.push(path) this.$router.push(path)
}, },
showComing(){ showComing () {
this.comingVisible = true this.comingVisible = true
clearTimeout(this.timer) clearTimeout(this.timer)
this.timer = setTimeout(() => { this.timer = setTimeout(() => {
this.comingVisible = false this.comingVisible = false
},1500) }, 1500)
} }
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// //
@mixin nameTip { @mixin nameTip {
width: 200px; width: 200px;
height: 70px; height: 70px;
line-height: 60px; line-height: 60px;
@ -142,44 +164,43 @@ export default {
border-radius: 16px; border-radius: 16px;
// box-shadow: 0 6px 8px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); // box-shadow: 0 6px 8px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
z-index: 100; z-index: 100;
} }
.wrap{ .wrap {
position: relative; position: relative;
min-height: calc(100vh - 68px); min-height: calc(100vh - 68px);
.sth{ .sth {
position: absolute; position: absolute;
&.cp{ &.cp {
cursor: pointer; cursor: pointer;
} }
} }
.bg{ .bg {
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.integrated-counter{ .integrated-counter {
top: -14%; top: -14%;
left: 24%; left: 24%;
width: 43%; width: 43%;
transition: all .5s; transition: all 0.5s;
&:hover{ &:hover {
margin-top: -10px; margin-top: -10px;
} }
.name{ .name {
position: absolute; position: absolute;
top: 23%; top: 23%;
left: 20%; left: 20%;
@include nameTip; @include nameTip;
} }
} }
.international{ .international {
top: -9%; top: -9%;
left: 72%; left: 72%;
width: 28%; width: 28%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// margin-top: -10px; // margin-top: -10px;
// } // }
@ -189,20 +210,19 @@ export default {
// margin-top: -10px; // margin-top: -10px;
// } // }
// } // }
.name{ .name {
position: absolute; position: absolute;
top: 23%; top: 23%;
right: 0; right: 0;
@include nameTip; @include nameTip;
} }
} }
.manager{ .manager {
bottom: 0; bottom: 0;
left: 57%; left: 57%;
width: 39%; width: 39%;
transition: all .5s; transition: all 0.5s;
&:hover{ &:hover {
bottom: 10px; bottom: 10px;
} }
.name { .name {
@ -212,34 +232,34 @@ export default {
@include nameTip; @include nameTip;
} }
} }
.credit-dep{ .credit-dep {
top: 31%; top: 31%;
left: 0; left: 0;
width: 20%; width: 20%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// top: 29%; // top: 29%;
// } // }
} }
.company-finance{ .company-finance {
top: 52%; top: 52%;
left: 9%; left: 9%;
width: 28%; width: 28%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// top: 50%; // top: 50%;
// } // }
} }
.personal-finance{ .personal-finance {
bottom: 0; bottom: 0;
left: 25%; left: 25%;
width: 30%; width: 30%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// bottom: 10px; // bottom: 10px;
// } // }
} }
.case{ .case {
position: absolute; position: absolute;
top: 92px; top: 92px;
left: 150px; left: 150px;
@ -249,52 +269,52 @@ export default {
text-align: center; text-align: center;
color: #fff; color: #fff;
font-size: 24px; font-size: 24px;
background: url(../../../assets/img/case.png) 0 0 /cover no-repeat; background: url(../../../assets/img/case.png) 0 0 / cover no-repeat;
background-size: 150px 50px; background-size: 150px 50px;
cursor: pointer; cursor: pointer;
// &:hover{ // &:hover{
// top: 76px; // top: 76px;
// } // }
} }
@media(max-width: 1440px){ @media (max-width: 1440px) {
.credit-dep{ .credit-dep {
top: 32%; top: 32%;
} }
.company-finance{ .company-finance {
top: 53%; top: 53%;
} }
.personal-finance{ .personal-finance {
top: 72%; top: 72%;
} }
.integrated-counter{ .integrated-counter {
width: 44%; width: 44%;
} }
} }
@media(max-width: 1300px){ @media (max-width: 1300px) {
& { & {
min-height: calc(100vh - 76px); min-height: calc(100vh - 76px);
} }
} }
} }
.coming{ .coming {
position: fixed; position: fixed;
top: -200%; top: -200%;
left: 50%; left: 50%;
width: 376px; width: 376px;
padding: 40px 0; padding: 40px 0;
text-align: center; text-align: center;
transform: translate(-50%,-50%); transform: translate(-50%, -50%);
border-radius: 16px; border-radius: 16px;
background-color: rgba(0,0,0,0.80); background-color: rgba(0, 0, 0, 0.8);
transition: all .3s; transition: all 0.3s;
&.active{ &.active {
top: 50%; top: 50%;
} }
.text{ .text {
margin-top: 24px; margin-top: 24px;
font-size: 22px; font-size: 22px;
font-weight: 400; font-weight: 400;
color: #fff; color: #fff;
} }
} }
</style> </style>

@ -1,113 +1,168 @@
<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">
<div style="text-align: right"
v-if="!loading">
<el-button size="mini"
@click="editReport">
{{ editing ? "保存" : "编辑" }} {{ editing ? "保存" : "编辑" }}
</el-button> </el-button>
<el-button type="primary" size="mini" @click="exportPage">导出报告</el-button> <el-button type="primary"
size="mini"
@click="exportPage">导出报告</el-button>
</div> </div>
<h6 class="r-title">标准实验报告</h6> <h6 class="r-title">标准实验报告</h6>
<div class="info"> <div class="info">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report1.png" alt=""> <img src="@/assets/img/report1.png"
alt="">
基本信息 基本信息
</h6> </h6>
<ul :class="['info-list', {edit: editing}]"> <ul :class="['info-list', {edit: editing}]">
<li> <li>
<label>学生姓名</label> <label>学生姓名</label>
<el-input v-if="editing" v-model="infoData.userName" disabled></el-input> <el-input v-if="editing"
v-model="infoData.userName"
disabled></el-input>
<span v-else>{{ infoData.userName }}</span> <span v-else>{{ infoData.userName }}</span>
</li> </li>
<li> <li>
<label>学生学号</label> <label>学生学号</label>
<el-input v-if="editing" v-model="infoData.workNumber" disabled></el-input> <el-input v-if="editing"
v-model="infoData.workNumber"
disabled></el-input>
<span v-else>{{ infoData.workNumber }}</span> <span v-else>{{ infoData.workNumber }}</span>
</li> </li>
<li> <li>
<label>实验时间</label> <label>实验时间</label>
<el-input v-if="editing" v-model="infoData.submitTime" disabled></el-input> <el-input v-if="editing"
v-model="infoData.submitTime"
disabled></el-input>
<span v-else>{{ infoData.submitTime }}</span> <span v-else>{{ infoData.submitTime }}</span>
</li> </li>
<li> <li>
<label>实验成绩</label> <label>实验成绩</label>
<el-input v-if="editing" v-model="infoData.score" disabled></el-input> <el-input v-if="editing"
<div v-else class="score-wrap"> v-model="infoData.score"
disabled></el-input>
<div v-else
class="score-wrap">
<em>{{ infoData.score }}</em> <em>{{ infoData.score }}</em>
<img src="@/assets/img/point.png" alt=""> <img src="@/assets/img/point.png"
alt="">
</div> </div>
</li> </li>
<li> <li>
<label>学生班级</label> <label>学生班级</label>
<el-input v-if="editing" v-model="infoData.className"></el-input> <el-input v-if="editing"
v-model="infoData.className"></el-input>
<span v-else>{{ infoData.className }}</span> <span v-else>{{ infoData.className }}</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"
v-model="infoData.instructor"></el-input>
<span v-else>{{ infoData.instructor }}</span> <span v-else>{{ infoData.instructor }}</span>
</li> </li>
<li> <li>
<label>实验学时</label> <label>实验学时</label>
<el-input v-if="editing" v-model="infoData.period"></el-input> <el-input v-if="editing"
v-model="infoData.period"></el-input>
<span v-else>{{ infoData.period }}</span> <span v-else>{{ infoData.period }}</span>
</li> </li>
</ul> </ul>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report2.png" alt=""> <img src="@/assets/img/report2.png"
alt="">
实验项目名称 实验项目名称
</h6> </h6>
<el-input v-if="editing" v-model="infoData.projectName" type="textarea"></el-input> <el-input v-if="editing"
<div v-else class="pre-wrap" v-html="infoData.projectName"></div> v-model="infoData.projectName"
type="textarea"></el-input>
<div v-else
class="pre-wrap"
v-html="infoData.projectName"></div>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report3.png" alt=""> <img src="@/assets/img/report3.png"
alt="">
实验目的 实验目的
</h6> </h6>
<quill v-if="editing" :border="true" v-model="infoData.purpose" :height="150" /> <quill v-if="editing"
<div v-else :class="['pre-wrap', {edit: editing}]" v-html="infoData.purpose"></div> :border="true"
v-model="infoData.purpose"
:height="150" />
<div v-else
:class="['pre-wrap', {edit: editing}]"
v-html="infoData.purpose"></div>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report4.png" alt=""> <img src="@/assets/img/report4.png"
alt="">
实验数据 实验数据
</h6> </h6>
<el-table :data="expData" class="table" border stripe header-align="center"> <el-table :data="expData"
<el-table-column type="index" label="序号" align="center" width="60"> class="table"
border
stripe
header-align="center">
<el-table-column type="index"
label="序号"
align="center"
width="60">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="judgmentName" label="判分点" width="270" align="center"></el-table-column> <el-table-column prop="judgmentName"
<el-table-column v-if='project' prop="judgmentName" label="考核点" align="center" width="150"> label="判分点"
width="200"
align="center"></el-table-column>
<el-table-column v-if='project'
prop="judgmentName"
label="考核点"
align="center"
width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> <div v-for="(item, index) in scope.row.lcRuleRecords"
:key="index">
<span> <span>
<span>{{index+1}}. </span>{{item.name}} <span>{{index+1}}. </span>{{item.name}}
</span> </span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ruleAnswer" label="参考答案" style='word-wrap: break-word'> <el-table-column prop="ruleAnswer"
label="参考答案"
width="280"
style='word-wrap: break-word'>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> <div v-for="(item, index) in scope.row.lcRuleRecords"
:key="index">
<span> <span>
<span>{{index+1}}. </span>{{item.ruleAnswer}} <span>{{index+1}}. </span>{{item.ruleAnswer}}
</span> </span>
</div> </div>
</div> </div>
<div v-else v-html="scope.row.referenceAnswer"></div> <div v-else
v-html="scope.row.referenceAnswer"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userAnswer" label="学生答案"> <el-table-column prop="userAnswer"
width="280"
label="学生答案">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> <div v-for="(item, index) in scope.row.lcRuleRecords"
:key="index">
<span v-if='item.userAnswer'> <span v-if='item.userAnswer'>
<span>{{index+1}}. </span>{{item.userAnswer}} <span>{{index+1}}. </span>{{item.userAnswer}}
</span> </span>
@ -116,23 +171,42 @@
</span> </span>
</div> </div>
</div> </div>
<div v-else v-html='scope.row.answer' style='white-space: pre-wrap'></div> <div v-else
v-html='scope.row.answer'
style='white-space: pre-wrap'></div>
<template v-if="scope.row.runThePictureList"> <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=""> <img v-for="(img, i) in scope.row.runThePictureList"
:key="i"
width="200"
class="result-pic"
:src="img"
alt="">
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="quesScore" label="分值" width="80" align="center"></el-table-column> <el-table-column prop="quesScore"
<el-table-column prop="score" label="得分" width="80" align="center"></el-table-column> label="分值"
width="80"
align="center"></el-table-column>
<el-table-column prop="score"
label="得分"
width="80"
align="center"></el-table-column>
</el-table> </el-table>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report5.png" alt=""> <img src="@/assets/img/report5.png"
alt="">
实验总结与体会 实验总结与体会
</h6> </h6>
<quill v-show="editing" :border="true" v-model="infoData.summarize" :height="150" /> <quill v-show="editing"
<div v-show="!editing" class="pre-wrap" v-html="infoData.summarize"></div> :border="true"
v-model="infoData.summarize"
:height="150" />
<div v-show="!editing"
class="pre-wrap"
v-html="infoData.summarize"></div>
</div> </div>
</div> </div>
</div> </div>
@ -144,9 +218,9 @@ import { Loading } from "element-ui";
import util from '@/libs/util' import util from '@/libs/util'
import breadcrumb from '@/components/breadcrumb' import breadcrumb from '@/components/breadcrumb'
import quill from "@/components/quill"; import quill from "@/components/quill";
import {reportDetail,exportBankExperimentReport,updateReport} from "@/api/http.js"; import { reportDetail, exportBankExperimentReport, updateReport } from "@/api/http.js";
export default { export default {
data() { data () {
return { return {
reportId: this.$route.query.reportId, reportId: this.$route.query.reportId,
title: "实验报告", title: "实验报告",
@ -156,7 +230,7 @@ export default {
editing: false, editing: false,
loadIns: null, loadIns: null,
loading: false, loading: false,
project:false, project: false,
userScores: [] userScores: []
}; };
}, },
@ -164,17 +238,14 @@ export default {
breadcrumb, breadcrumb,
quill quill
}, },
mounted() { mounted () {
this.getData() this.getData()
}, },
methods: { methods: {
getData() { // getData () { //
const { reportId } = this const { reportId } = this
reportDetail({ reportDetail(reportId).then(({ data }) => {
reportId const { report, userScores } = data
}).then((data)=>{
console.log(33, data)
// this.$get(`${this.api.reportDetail}?reportId=${reportId}`).then(({ report, userScores }) => {
this.form = report this.form = report
const form = this.form const form = this.form
this.infoData = { this.infoData = {
@ -192,24 +263,22 @@ export default {
purpose: form.purpose, purpose: form.purpose,
summarize: form.summarize summarize: form.summarize
} }
// const data = report.data const expData = report.data
// this.userScores = userScores this.userScores = userScores
// // data使 // data使
// if (!data) { if (!expData) {
// this.handleList(userScores) this.handleList(userScores)
// this.$post(this.api.editExperimentalData, { this.$post(this.api.editExperimentalData, {
// reportId, reportId,
// data: JSON.stringify(userScores) data: JSON.stringify(userScores)
// }).then(res => {}).catch(err => {}) }).then(res => { }).catch(err => { })
// } else { } else {
// this.handleList(userScores.find(e => e.lcRuleRecords) ? userScores : JSON.parse(data)) this.handleList(userScores)
// } }
}).catch(res => {}) }).catch(res => { })
}, },
// //
handleList(list) { handleList (list) {
this.project = list.find(e => e.lcRuleRecords) // lcRuleRecords
if (this.project) {
list.map(e => { list.map(e => {
e.assessmentPoint = '' e.assessmentPoint = ''
e.referenceAnswer = '' e.referenceAnswer = ''
@ -220,10 +289,9 @@ export default {
e.answer += `${i + 1}.${n.userAnswer}` e.answer += `${i + 1}.${n.userAnswer}`
}) })
}) })
}
this.expData = list this.expData = list
}, },
exportPage() { exportPage () {
const form = Object.assign(this.form, this.infoData) const form = Object.assign(this.form, this.infoData)
const list = JSON.parse(JSON.stringify(this.expData)) const list = JSON.parse(JSON.stringify(this.expData))
list.map((e, i) => { list.map((e, i) => {
@ -242,24 +310,24 @@ export default {
this.loadIns = Loading.service({ this.loadIns = Loading.service({
background: "#fff" background: "#fff"
}); });
this.$post(this.project ? this.api.exportBankExperimentReport : this.api.exportLabReport, { exportBankExperimentReport({
...form, ...form,
experimentalData: list experimentalData: list
}).then(res => { }).then(res => {
this.loadIns.close(); this.loadIns.close();
this.loading = false; this.loading = false;
util.downloadFileDirect(`实验报告.docx`,new Blob([res])) util.downloadFileDirect(`实验报告.docx`, new Blob([res.data]))
}).catch(res => { }).catch(res => {
this.loadIns.close(); this.loadIns.close();
this.loading = false; this.loading = false;
}) })
}, },
editReport() { // editReport () { //
if (this.editing) { if (this.editing) {
this.$post(`${this.api.updateReport}`, this.infoData).then(res => { updateReport(this.infoData).then(res => {
this.editing = false; this.editing = false;
this.$message.success('修改成功') this.$message.success('修改成功')
}).catch(err => {}); }).catch(err => { });
} else { } else {
this.editing = true; this.editing = true;
} }
@ -275,22 +343,24 @@ export default {
.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,
samp {
font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif;
word-wrap: break-word; word-wrap: break-word;
white-space: pre-wrap; 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;
@ -306,17 +376,17 @@ code, kbd, samp{
} }
.info { .info {
padding: 20px 16px; padding: 20px 16px;
border: 1px solid #E1E6F2; border: 1px solid #e1e6f2;
} }
.l-title{ .l-title {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 5px 8px; padding: 5px 8px;
margin-bottom: 12px; margin-bottom: 12px;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
background-color: #F7F9FC; background-color: #f7f9fc;
img{ img {
margin-right: 5px; margin-right: 5px;
} }
} }
@ -343,7 +413,7 @@ code, kbd, samp{
span { span {
min-width: 150px; min-width: 150px;
padding: 0 10px 3px; padding: 0 10px 3px;
border-bottom: 1px solid #E1E6F2; border-bottom: 1px solid #e1e6f2;
} }
/deep/.el-input { /deep/.el-input {
width: 174px; width: 174px;
@ -352,7 +422,7 @@ code, kbd, samp{
.score-wrap { .score-wrap {
position: relative; position: relative;
min-width: 150px; min-width: 150px;
border-bottom: 1px solid #E1E6F2; border-bottom: 1px solid #e1e6f2;
em { em {
position: absolute; position: absolute;
top: -12px; top: -12px;
@ -360,7 +430,7 @@ code, kbd, samp{
font-family: din; font-family: din;
font-size: 30px; font-size: 30px;
font-weight: 600; font-weight: 600;
color: #0B1D30; color: #0b1d30;
} }
img { img {
position: absolute; position: absolute;
@ -368,16 +438,17 @@ code, kbd, samp{
left: 0; left: 0;
} }
} }
/deep/.el-textarea .el-textarea__inner, .pre-wrap { /deep/.el-textarea .el-textarea__inner,
.pre-wrap {
min-height: 72px; min-height: 72px;
padding: 10px 16px; padding: 10px 16px;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
&.edit { &.edit {
color: #ABB3C6; color: #abb3c6;
border: 1px solid #CACFDB; border: 1px solid #cacfdb;
border-radius: 4px; border-radius: 4px;
background-color: #F6F7F9; background-color: #f6f7f9;
} }
} }
/deep/ .table th { /deep/ .table th {
@ -388,6 +459,18 @@ code, kbd, samp{
} }
} }
} }
/deep/ .el-table {
width: 100%;
.el-table__header-wrapper table,
.el-table__body-wrapper table {
width: 100% !important;
}
.el-table__body,
.el-table__footer,
.el-table__header {
table-layout: auto;
}
}
.result-pic { .result-pic {
margin: 10px 0; margin: 10px 0;
} }

Loading…
Cancel
Save