dev_202412
yujialong 10 months ago
parent b97887506e
commit b61162f633
  1. 9
      src/components/breadcrumb/index.vue
  2. 4
      src/layouts/header/index.vue
  3. 65
      src/layouts/navbar/index.vue
  4. 16
      src/pages/match/details/index.vue
  5. 62
      src/pages/record/details/index.vue
  6. 216
      src/pages/record/show/index.vue
  7. 4
      src/router/modules/product.js
  8. 2
      src/setting.js

@ -3,12 +3,10 @@
<div class="breadcrumb"> <div class="breadcrumb">
<el-breadcrumb separator=">"> <el-breadcrumb separator=">">
<template v-for="(item, i) in routes"> <template v-for="(item, i) in routes">
<el-breadcrumb-item v-if="i != routes.length - 1" <el-breadcrumb-item v-if="i != routes.length - 1" :key="i">
:key="i">
<span @click="to(item)">{{ item.name }}</span> <span @click="to(item)">{{ item.name }}</span>
</el-breadcrumb-item> </el-breadcrumb-item>
<el-breadcrumb-item v-else <el-breadcrumb-item v-else :key="i">
:key="i">
{{ item.name }} {{ item.name }}
</el-breadcrumb-item> </el-breadcrumb-item>
</template> </template>
@ -41,15 +39,18 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.breadcrumb { .breadcrumb {
margin: 4px 0 16px; margin: 4px 0 16px;
/deep/.el-breadcrumb__item { /deep/.el-breadcrumb__item {
.el-breadcrumb__inner, .el-breadcrumb__inner,
.el-breadcrumb__separator { .el-breadcrumb__separator {
font-weight: 400; font-weight: 400;
color: $main-color; color: $main-color;
} }
.el-breadcrumb__inner { .el-breadcrumb__inner {
cursor: pointer; cursor: pointer;
} }
&:last-child { &:last-child {
.el-breadcrumb__inner { .el-breadcrumb__inner {
color: #0b1d30; color: #0b1d30;

@ -10,7 +10,7 @@
<template v-else> <template v-else>
<img v-if="isZj" src="/images/4.png" alt=""> <img v-if="isZj" src="/images/4.png" alt="">
<img v-else-if="isSq" style="max-height: 100%" src="/images/1.png" alt=""> <img v-else-if="isSq" style="max-height: 100%" src="/images/1.png" alt="">
<img v-else :style="{ maxWidth: title ? '200px' : '300px' }" :src="logoUrl" height="50" /> <img v-else :src="logoUrl" />
<span class="title">{{ title }}</span> <span class="title">{{ title }}</span>
</template> </template>
</a> </a>
@ -300,7 +300,7 @@ $height: 64px;
cursor: pointer; cursor: pointer;
img { img {
max-width: 300px; max-height: 50px;
margin-right: 10px; margin-right: 10px;
} }
} }

@ -1,33 +1,19 @@
<template> <template>
<div> <div>
<!-- pc端 --> <!-- pc端 -->
<ul v-if="!$store.state.layout.isMobile" <ul v-if="!$store.state.layout.isMobile" class="nav">
class="nav"> <li v-for="(item, i) in menus" :key="i" :class="{ active: active == item.id }" @click="jump(item)">
<li v-for="(item, i) in menus"
:key="i"
:class="{active: active == item.id}"
@click="jump(item)">
{{ item.name }} {{ item.name }}
<ul :class="['children']" <ul :class="['children']" v-if="item.id === '/preInfo/list' || item.id === '/info/list'">
v-if="item.id === '/preInfo/list' || item.id === '/info/list'"> <li v-for="(column, i) in columns" :key="i" :class="{ active: columnActive === column.id }"
<li v-for="(column, i) in columns"
:key="i"
:class="{active: columnActive === column.id}"
@click="toInfo($event, column)">{{ column.name }}</li> @click="toInfo($event, column)">{{ column.name }}</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<!-- 移动端 --> <!-- 移动端 -->
<el-menu v-else <el-menu v-else ref="elMenu" class="menu" background-color="#fff" text-color="#333" active-text-color="#006eff"
ref="elMenu" @open="menuClick" @select="menuClick" :default-active="String(active)">
class="menu"
background-color="#fff"
text-color="#333"
active-text-color="#006eff"
@open="menuClick"
@select="menuClick"
:default-active="String(active)">
<menuTree :menuList="menus" /> <menuTree :menuList="menus" />
</el-menu> </el-menu>
</div> </div>
@ -133,13 +119,13 @@ export default {
}, },
watch: { watch: {
"$route" (to, from) { "$route" (to, from) {
let actives = this.actives; let actives = this.actives
for (let i in this.actives) { for (let i in this.actives) {
if (actives[i].includes(this.$route.name)) this.active = `/${i}/list`; if (actives[i].includes(this.$route.name)) this.active = `/${i}/list`
} }
let arr = this.$route.path.split("/"); let arr = this.$route.path.split("/")
let name = `/${arr[1]}/list` let name = `/${arr[1]}/list`
this.active = name; this.active = name === '/index/list' && Setting.isZxy ? '/index/zxy' : name
} }
}, },
mounted () { mounted () {
@ -152,7 +138,7 @@ export default {
if (Setting.isZxy) { if (Setting.isZxy) {
menus[0].id = '/index/zxy' menus[0].id = '/index/zxy'
menus.splice(1, 0, { menus.splice(1, 0, {
id: '/product', id: '/product/list',
name: '产品服务' name: '产品服务'
}) })
} }
@ -231,6 +217,7 @@ export default {
left: 50%; left: 50%;
display: flex; display: flex;
transform: translateX(-50%); transform: translateX(-50%);
&>li { &>li {
position: relative; position: relative;
padding: 0 15px; padding: 0 15px;
@ -241,16 +228,19 @@ export default {
white-space: nowrap; white-space: nowrap;
cursor: pointer; cursor: pointer;
border-bottom: 4px solid transparent; border-bottom: 4px solid transparent;
&.active { &.active {
color: $main-color; color: $main-color;
border-bottom-color: $main-color; border-bottom-color: $main-color;
} }
&:hover { &:hover {
.children { .children {
display: flex; display: flex;
} }
} }
} }
.children { .children {
position: absolute; position: absolute;
top: 64px; top: 64px;
@ -261,15 +251,18 @@ export default {
border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;
box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.15); box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.15);
transform: translateX(-50%); transform: translateX(-50%);
&.show { &.show {
display: flex; display: flex;
} }
&>li { &>li {
padding: 0 20px; padding: 0 20px;
margin: 0 20px; margin: 0 20px;
color: #333; color: #333;
line-height: 64px; line-height: 64px;
cursor: pointer; cursor: pointer;
&:before { &:before {
content: ''; content: '';
display: inline-block; display: inline-block;
@ -279,8 +272,10 @@ export default {
vertical-align: middle; vertical-align: middle;
background-color: #333; background-color: #333;
} }
&.active { &.active {
color: $main-color; color: $main-color;
&:before { &:before {
background-color: $main-color; background-color: $main-color;
} }
@ -290,6 +285,7 @@ export default {
} }
$height: 90px; $height: 90px;
/deep/.menu.el-menu--horizontal { /deep/.menu.el-menu--horizontal {
display: flex; display: flex;
position: absolute; position: absolute;
@ -298,76 +294,95 @@ $height: 90px;
transform: translateX(-50%); transform: translateX(-50%);
border: 0; border: 0;
outline: none; outline: none;
.el-menu-item, .el-menu-item,
.el-submenu__title { .el-submenu__title {
height: $height; height: $height;
line-height: $height; line-height: $height;
span { span {
font-size: 1rem; font-size: 1rem;
font-weight: 600; font-weight: 600;
} }
&:hover { &:hover {
background-color: transparent !important; background-color: transparent !important;
span { span {
color: #1583ff; color: #1583ff;
} }
} }
} }
.el-submenu__title { .el-submenu__title {
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.menu-child { .menu-child {
display: flex; display: flex;
} }
.el-submenu__icon-arrow { .el-submenu__icon-arrow {
position: static; position: static;
margin: 0 0 0 5px; margin: 0 0 0 5px;
color: inherit; color: inherit;
} }
.is-active { .is-active {
color: #333 !important; color: #333 !important;
} }
.active, .active,
.active .el-submenu__title { .active .el-submenu__title {
color: #1583ff !important; color: #1583ff !important;
} }
&.home { &.home {
.el-menu-item, .el-menu-item,
.el-submenu__title { .el-submenu__title {
&:hover { &:hover {
background-color: transparent !important; background-color: transparent !important;
span { span {
color: #fff; color: #fff;
} }
} }
} }
.is-active { .is-active {
color: #f9f9f9 !important; color: #f9f9f9 !important;
} }
.active, .active,
.active .el-submenu__title { .active .el-submenu__title {
color: #fff !important; color: #fff !important;
} }
} }
} }
@media (max-width: 1870px) { @media (max-width: 1870px) {
.nav { .nav {
left: 55%; left: 55%;
&>li { &>li {
margin: 0 10px; margin: 0 10px;
} }
} }
} }
@media (max-width: 1440px) { @media (max-width: 1440px) {
.nav { .nav {
left: 53%; left: 53%;
&>li { &>li {
padding: 0 10px; padding: 0 10px;
} }
} }
} }
@media (max-width: 1360px) { @media (max-width: 1360px) {
.nav { .nav {
&>li { &>li {

@ -261,9 +261,7 @@
<td> <td>
<div v-if="showButton" class="m-b-10 text-right"> <div v-if="showButton" class="m-b-10 text-right">
<el-button type="primary" :disabled="status > 3" @click="automaticAllocationMember">{{ <el-button type="primary" :disabled="status > 3" @click="automaticAllocationMember">{{
assignRecord.assignOrNot assignRecord.assignOrNot && status < 3 ? '取消' : '' }}自动分配阶段成员</el-button>
? '取消' : ''
}}自动分配阶段成员</el-button>
</div> </div>
<table class="table tc"> <table class="table tc">
<tr> <tr>
@ -1348,18 +1346,18 @@ export default {
}, },
// //
automaticAllocationMember () { automaticAllocationMember () {
const whether = this.assignRecord.assignOrNot const whether = this.assignRecord.assignOrNot && this.status < 3
this.$confirm(`确定${whether ? '取消' : '开启'}自动分配阶段成员`, '提示', { this.$confirm(`确定${whether ? '取消' : ''}自动分配阶段成员`, '提示', {
cancelButtonText: '否', cancelButtonText: '否',
confirmButtonText: '是', confirmButtonText: '是',
type: 'success', type: 'success',
closeOnClickModal: false, closeOnClickModal: false,
}).then(async () => { }).then(async () => {
// =true //
if (this.assignRecord.assignOrNot) { if (this.status < 3) {
await this.$post(this.api.competitionTeamAutomaticAllocationRecordSave, { await this.$post(this.api.competitionTeamAutomaticAllocationRecordSave, {
id: this.assignRecord.id, id: this.assignRecord.id,
assignOrNot: 0, assignOrNot: whether ? 0 : 1,
competitionId: this.id, competitionId: this.id,
teamId: this.info.teamId teamId: this.info.teamId
}) })
@ -1369,7 +1367,7 @@ export default {
this.getData() this.getData()
this.getInfo() this.getInfo()
Util.successMsg(`${whether ? '取消' : '开启'}自动分配成功!`) Util.successMsg(`${whether ? '取消' : ''} 自动分配成功!`)
}).catch(() => { }) }).catch(() => { })
}, },
// //

@ -5,68 +5,34 @@
<div class="page"> <div class="page">
<div class="flex-between m-b-20"> <div class="flex-between m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/record7.png" <img src="@/assets/img/record7.png" alt="">
alt="">
实验报告列表 实验报告列表
</h6> </h6>
<div> <div>
<el-button type="primary" <el-button type="primary" @click="exportData">导出数据</el-button>
@click="exportData">导出数据</el-button>
</div> </div>
</div> </div>
<el-table ref="table" <el-table ref="table" class="table" stripe header-align="center" :data="listData"
class="table" @selection-change="handleSelectionChange" row-key="reportId">
stripe <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
header-align="center" <el-table-column prop="id" label="次序" width="80" align="center" type="index"></el-table-column>
:data="listData" <el-table-column prop="projectName" label="实验项目名称" align="center"></el-table-column>
@selection-change="handleSelectionChange" <el-table-column prop="score" width="100" label="得分" align="center"></el-table-column>
row-key="reportId"> <el-table-column prop="timeSum" width="100" label="耗时" align="center">
<el-table-column type="selection"
width="55"
align="center"
:reserve-selection="true"></el-table-column>
<el-table-column prop="id"
label="次序"
width="80"
align="center"
type="index"></el-table-column>
<el-table-column prop="projectName"
label="实验项目名称"
align="center"></el-table-column>
<el-table-column prop="score"
width="100"
label="得分"
align="center"></el-table-column>
<el-table-column prop="timeSum"
width="100"
label="耗时"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.timeSum }}min {{ scope.row.timeSum }}min
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="startTime" <el-table-column prop="startTime" width="160" label="起始时间" align="center"></el-table-column>
width="160" <el-table-column prop="submitTime" width="160" label="结束时间" align="center"></el-table-column>
label="起始时间" <el-table-column width="100" label="操作" align="center">
align="center"></el-table-column>
<el-table-column prop="submitTime"
width="160"
label="结束时间"
align="center"></el-table-column>
<el-table-column width="100"
label="操作"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text" @click="toReport(scope.row)">实验报告</el-button>
@click="toReport(scope.row)">实验报告</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background <el-pagination background layout="total, prev, pager, next" :total="total" :current-page="page"
layout="total, prev, pager, next"
:total="total"
:current-page="page"
@current-change="handleCurrentChange"></el-pagination> @current-change="handleCurrentChange"></el-pagination>
</div> </div>
</div> </div>

@ -3,222 +3,141 @@
<div class="wrap"> <div class="wrap">
<div class="top"> <div class="top">
<breadcrumb :routes.sync="routes" /> <breadcrumb :routes.sync="routes" />
<span v-if="fromPython" <span v-if="fromPython" class="back" @click="back">返回实验</span>
class="back"
@click="back">返回实验</span>
</div> </div>
<div class="content" <div class="content" v-loading="loading" id="pdfDom">
v-loading="loading"
id="pdfDom">
<div class="text-right"> <div class="text-right">
<el-button @click="editReport"> <el-button @click="editReport">
{{ editing ? "保存" : "编辑" }} {{ editing ? "保存" : "编辑" }}
</el-button> </el-button>
<el-button type="primary" <el-button type="primary" @click="exportPage">导出报告</el-button>
@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" <img src="@/assets/img/report1.png" alt="">
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" <el-input v-if="editing" v-model="infoData.userName" disabled></el-input>
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" <el-input v-if="editing" v-model="infoData.workNumber" disabled></el-input>
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" <el-input v-if="editing" v-model="infoData.submitTime" disabled></el-input>
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" <el-input v-if="editing" v-model="infoData.score" disabled></el-input>
v-model="infoData.score" <div v-else class="score-wrap">
disabled></el-input>
<div v-else
class="score-wrap">
<em>{{ infoData.score }}</em> <em>{{ infoData.score }}</em>
<img src="@/assets/img/point.png" <img src="@/assets/img/point.png" alt="">
alt="">
</div> </div>
</li> </li>
<li> <li>
<label>学生班级</label> <label>学生班级</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.className"></el-input>
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" <el-input v-if="editing" v-model="infoData.instructor"></el-input>
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" <el-input v-if="editing" v-model="infoData.period"></el-input>
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" <img src="@/assets/img/report2.png" alt="">
alt="">
实验项目名称 实验项目名称
</h6> </h6>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.projectName" type="textarea"></el-input>
v-model="infoData.projectName" <div v-else class="pre-wrap" v-html="infoData.projectName"></div>
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" <img src="@/assets/img/report3.png" alt="">
alt="">
实验目的 实验目的
</h6> </h6>
<quill v-if="editing" <quill v-if="editing" :border="true" v-model="infoData.purpose" :height="150" />
:border="true" <div v-else :class="['pre-wrap', { edit: editing }]" v-html="infoData.purpose"></div>
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" <img src="@/assets/img/report4.png" alt="">
alt="">
实验数据 实验数据
</h6> </h6>
<el-table :data="expData" <el-table :data="expData" class="table" border stripe header-align="center">
class="table" <el-table-column type="index" label="序号" :key="1" align="center" width="60">
border
stripe
header-align="center">
<el-table-column type="index"
label="序号"
:key="1"
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" <el-table-column prop="judgmentName" label="判分点" width="200" align="center"></el-table-column>
label="判分点" <el-table-column v-if="IsLc" prop="judgmentName" label="考核点" align="center" :key="2" width="150">
width="200"
align="center"></el-table-column>
<el-table-column v-if="project"
prop="judgmentName"
label="考核点"
align="center"
:key="2"
width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-for="(item, index) in scope.row.lcRuleRecords" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
: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" <el-table-column prop="ruleAnswer" label="参考答案" :key="3" style='word-wrap: break-word'>
label="参考答案"
:key="3"
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" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
: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 <div v-else v-html="scope.row.referenceAnswer"></div>
v-html="scope.row.referenceAnswer"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userAnswer" <el-table-column prop="userAnswer" :key="4" label="学生答案">
:key="4"
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" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
:key="index">
{{ index + 1 }}. {{ item.userAnswer || '未填写' }} {{ index + 1 }}. {{ item.userAnswer || '未填写' }}
</div> </div>
</div> </div>
<div v-else <div v-else v-html="scope.row.answer" style="white-space: pre-wrap"></div>
v-html='scope.row.answer'
style='white-space: pre-wrap'></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="!project" <el-table-column v-if="!IsLc" prop="runResult" label="学生运行结果" :key="5" align="center">
prop="runResult"
label="学生运行结果"
:key="5"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="m-b-20" <div class="m-b-20" v-html="scope.row.runResult" style="white-space: pre-wrap"></div>
v-html='scope.row.runResult'
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" <img v-for="(img, i) in scope.row.runThePictureList" :key="i" width="200" class="result-pic"
:key="i" :src="img" alt="">
width="200"
class="result-pic"
:src="img"
alt="">
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="quesScore" <el-table-column prop="quesScore" :key="6" label="分值" width="80" align="center"></el-table-column>
:key="6" <el-table-column prop="score" label="得分" :key="7" width="80" align="center"></el-table-column>
label="分值"
width="80"
align="center"></el-table-column>
<el-table-column prop="score"
label="得分"
:key="7"
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" <img src="@/assets/img/report5.png" alt="">
alt="">
实验总结与体会 实验总结与体会
</h6> </h6>
<Editor v-if="editing" <Editor v-if="editing" api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda' v-model="infoData.summarize"
api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda'
v-model="infoData.summarize"
:init="editorConfig" /> :init="editorConfig" />
<div v-else <div v-else class="pre-wrap" v-html="infoData.summarize"></div>
class="pre-wrap"
v-html="infoData.summarize"></div>
</div> </div>
</div> </div>
</div> </div>
@ -249,7 +168,7 @@ export default {
editing: false, editing: false,
loadIns: null, loadIns: null,
loading: false, loading: false,
project: false, IsLc: false,
userScores: [], userScores: [],
quills: [], quills: [],
quillIndex1: 0, quillIndex1: 0,
@ -335,8 +254,8 @@ export default {
}, },
// //
handleList (list) { handleList (list) {
this.project = list.find(e => e.lcRuleRecords) // lcRuleRecords this.IsLc = list.find(e => e.lcRuleRecords) // lcRuleRecords
if (this.project) { if (this.IsLc) {
list.map(e => { list.map(e => {
e.assessmentPoint = '' e.assessmentPoint = ''
e.referenceAnswer = '' e.referenceAnswer = ''
@ -379,7 +298,7 @@ export default {
// if (form[i] && typeof form[i] === 'string') form[i] = form[i].replace(/<[^>]+>/g, '') // if (form[i] && typeof form[i] === 'string') form[i] = form[i].replace(/<[^>]+>/g, '')
// } // }
form.purpose = form.purpose.replace(/<[^>]+>/g, '') form.purpose = form.purpose.replace(/<[^>]+>/g, '')
this.$post(this.project ? this.api.exportBankExperimentReport : this.api.exportLabReport, { this.$post(this.IsLc ? this.api.exportBankExperimentReport : this.api.exportLabReport, {
...form, ...form,
experimentalData: list experimentalData: list
}).then(res => { }).then(res => {
@ -446,24 +365,29 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '/styles/css/editor.css'; @import '/styles/css/editor.css';
.top { .top {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 15px; margin-bottom: 15px;
.back { .back {
font-size: 14px; font-size: 14px;
color: #007eff; color: #007eff;
cursor: pointer; cursor: pointer;
} }
} }
.breadcrumb { .breadcrumb {
/deep/.el-breadcrumb__item { /deep/.el-breadcrumb__item {
.is-link, .is-link,
.el-breadcrumb__separator { .el-breadcrumb__separator {
font-weight: 400; font-weight: 400;
color: $main-color; color: $main-color;
} }
&:last-child { &:last-child {
.is-link { .is-link {
color: #0b1d30; color: #0b1d30;
@ -471,9 +395,11 @@ export default {
} }
} }
} }
.wrap { .wrap {
padding: 12px 300px 20px; padding: 12px 300px 20px;
} }
code, code,
kbd, kbd,
samp { samp {
@ -481,68 +407,86 @@ samp {
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;
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ /* css-3 */
white-space: pre-wrap; /* Opera 4-6 */ white-space: -moz-pre-wrap;
white-space: -o-pre-wrap; /* Opera 7 */ /* Mozilla, since 1999 */
word-wrap: break-word; /* Internet Explorer 5.5+ */ white-space: pre-wrap;
/* Opera 4-6 */
white-space: -o-pre-wrap;
/* Opera 7 */
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 40px; padding: 16px 40px;
background: #fff; background: #fff;
.r-title { .r-title {
margin-bottom: 40px; margin-bottom: 40px;
font-size: 24px; font-size: 24px;
text-align: center; text-align: center;
color: #333; color: #333;
} }
.info { .info {
padding: 20px 16px; padding: 20px 16px;
border: 1px solid #e1e6f2; border: 1px solid #e1e6f2;
} }
.l-title { .l-title {
padding: 5px 8px; padding: 5px 8px;
background-color: #f7f9fc; background-color: #f7f9fc;
} }
.info-list { .info-list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 10px 0 0 20px; padding: 10px 0 0 20px;
li { li {
display: inline-flex; display: inline-flex;
width: 25%; width: 25%;
padding: 0 10px; padding: 0 10px;
margin-bottom: 34px; margin-bottom: 34px;
} }
&.edit { &.edit {
li { li {
align-items: center; align-items: center;
} }
} }
label { label {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
white-space: nowrap; white-space: nowrap;
} }
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;
} }
} }
.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;
@ -552,18 +496,21 @@ samp {
font-weight: 600; font-weight: 600;
color: #0b1d30; color: #0b1d30;
} }
img { img {
position: absolute; position: absolute;
bottom: -15px; bottom: -15px;
left: 0; left: 0;
} }
} }
/deep/.el-textarea .el-textarea__inner, /deep/.el-textarea .el-textarea__inner,
.pre-wrap { .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;
@ -571,22 +518,27 @@ samp {
background-color: #f6f7f9; background-color: #f6f7f9;
} }
} }
/deep/ .table th { /deep/ .table th {
background-color: #e1eaff !important; background-color: #e1eaff !important;
.cell { .cell {
line-height: 35px; line-height: 35px;
color: #555555; 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;

@ -1,11 +1,11 @@
import BasicLayout from '@/layouts/home'; import BasicLayout from '@/layouts/home';
export default { export default {
path: '/product', path: '/product/list',
component: BasicLayout, component: BasicLayout,
children: [ children: [
{ {
path: `/product`, path: `/product/list`,
component: () => import('@/pages/product/list'), component: () => import('@/pages/product/list'),
meta: { title: '产品服务' } meta: { title: '产品服务' }
}, },

@ -68,7 +68,7 @@ const Setting = {
/** /**
* 路由白名单 * 路由白名单
* */ * */
whiteList: ['/login', '/index/list', '/index/zxy', '/product', '/cityPartner/list', '/devPlatform/list', '/log/list', '/touristMatch/list', '/touristMatch/details', '/touristMatch/noticeDetail', '/preCourse/list', '/preCourse/details', '/preInfo/list', '/preInfo/details', '/screen', '/screenShow', '/screenShowPro', '/join', '/join/success'], whiteList: ['/login', '/index/list', '/index/zxy', '/product/list', '/cityPartner/list', '/devPlatform/list', '/log/list', '/touristMatch/list', '/touristMatch/details', '/touristMatch/noticeDetail', '/preCourse/list', '/preCourse/details', '/preInfo/list', '/preInfo/details', '/screen', '/screenShow', '/screenShowPro', '/join', '/join/success'],
/** /**
* 平台列表 * 平台列表
* */ * */

Loading…
Cancel
Save