Files
learning-system-portal/src/views/exam/TestPaper.vue
zhaofang c3559d4f1d 提交
2022-08-09 12:01:36 +08:00

884 lines
30 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="u-page">
<el-container>
<el-header style="padding: 2px 20px 10px 10px;">
<div style="padding-bottom: 10px;">
<div style="display: flex;">
<!-- <el-cascader :options="resOwnerListMap" v-model="ownership" placeholder="资源归属" clearable :props="resourceProps"></el-cascader> -->
<div style="display: flex;justify-content:flex-start;">
<!-- <div style="padding-right: 5px;">
<el-select placeholder="试卷类型" v-model="params.paperType" style="width: 110px;" clearable>
<el-option label="考试卷" :value="1"></el-option>
<el-option label="测试卷" :value="2"></el-option>
</el-select>
</div> -->
<div style="padding: 0px 5px;"><el-input placeholder="关键词" v-model="params.keyWord" clearable></el-input></div>
<div style="padding: 0px 5px;"><el-button icon="el-icon-search" @click="getsearch" type="primary" >搜索</el-button></div>
<div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" @click="reset">重置</el-button></div>
<div style="padding-left:5px;"><el-button icon="el-icon-plus" type="primary" @click="addPaper()" >新建试卷</el-button></div>
</div>
</div>
</div>
</el-header>
<el-container >
<el-main>
<el-table style="" :data="pageData.list" border stripe>
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="试卷名称" show-overflow-tooltip>
<template slot-scope="scope">
<span class="previewStyle" @click="viewTopic(scope.row)">{{ scope.row.testName}}</span>
</template>
</el-table-column>
<el-table-column label="试题数目" prop="counts">
</el-table-column>
<el-table-column label="创建人" prop="sysCreateBy" width="150px"></el-table-column>
<!-- <el-table-column prop="type" label="资源归属">
<template slot-scope="scope">
{{resOwnerName(scope.row.resOwner1)}}/{{resOwnerName(scope.row.resOwner2)}}{{scope.row.resOwner3? '/' : ''}}{{resOwnerName(scope.row.resOwner3)}}
</template>
</el-table-column> -->
<el-table-column label="最后更新" prop="sysCreateTime" width="160px"></el-table-column>
<!-- <el-table-column label="试卷类型" prop="content">
<template slot-scope="scope">
{{scope.row.paperType == 1? '考试卷':'测试卷'}}
</template>
</el-table-column> -->
<el-table-column label="操作" width="150px" fixed="right">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-folder-opened" @click="eidtVolume(scope.row)">编辑</el-button>
<el-button type="text" icon="el-icon-delete" @click="deleteVolume(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div v-if="pageData.list.length > 0" style="text-align: center;margin-top:70px">
<el-pagination background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="params.pageIndex"
:page-sizes="[10,20,30,40]"
:page-size="params.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageData.count"
></el-pagination>
</div>
<div style="height: 100px;"></div>
</el-main>
</el-container>
</el-container>
<el-dialog :close-on-click-modal="false" :title="isEidt ? '编辑试卷' : '新建试卷'" :visible.sync="showAddDialog" width="80%" custom-class="g-dialog">
<el-tabs v-model="formTab">
<el-tab-pane label="基本信息" name="info">
<!--试卷基本信息-->
<el-form label-width="200px">
<!-- <el-form-item label="资源归属">
<el-cascader :options="resOwnerListMap" v-model="resOwner" placeholder="资源归属" clearable :props="resourceProps"></el-cascader>
</el-form-item> -->
<el-form-item label="试卷名称" required=""><el-input v-model="paper.testName" maxlength="20"
show-word-limit placeholder="请输入名称"></el-input></el-form-item>
<!-- <el-form-item label="试卷类型">
<el-radio v-model="paper.paperType" :label="1">考试卷</el-radio>
<el-radio v-model="paper.paperType" :label="2">测试卷</el-radio>
</el-form-item>
<el-form-item label="试卷模式" required="">
<el-radio v-model="paper.paperMode" :label="1">固定试卷</el-radio>
<el-radio v-model="paper.paperMode" :label="2">随机试卷</el-radio>
</el-form-item> -->
<el-form-item label="难度">
<el-select v-model="paper.difficulty" placeholder="请选择试卷难度">
<el-option label="容易" :value="1"></el-option>
<el-option label="中等" :value="2"></el-option>
<el-option label="困难" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="描述"><el-input type="textarea" v-model="paper.remark" placeholder="请输入描述" maxlength="200"
show-word-limit></el-input></el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="编辑试卷" name="paper">
<el-row :gutter="10">
<el-col :span="8">
<!--查询已有试题-->
<div>
<el-form :inline="true" size="mini">
<el-form-item><el-checkbox v-model="question.all">全部</el-checkbox></el-form-item>
<el-form-item>
<el-select clearable v-model="qlib.type" placeholder="请选择题型" class="search-width-120">
<el-option label="单选题" :value="1"></el-option>
<el-option label="多选题" :value="2"></el-option>
<el-option label="判断题" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item><el-input class="search-width-120" clearable v-model="qlib.title" placeholder="题干"></el-input></el-form-item>
<el-form-item><el-button type="primary" @click="questionList">搜索</el-button></el-form-item>
</el-form>
</div>
<!--选择试题,换成动态的便利-->
<div class="quest-box ">
<div class="quest-div">
<el-checkbox-group v-model="question.checkQuest">
<el-checkbox class="quest-item" v-for="item in question.list" :label="item.id" :key="item.id">[{{typeFilter(item.type)}}]{{item.title}}</el-checkbox>
</el-checkbox-group>
<div v-if="question.list.length > 0" style="text-align:center">
<el-pagination background
@current-change="currentChange"
:current-page="qlib.pageIndex"
:page-size="qlib.pageSize"
layout="prev, pager, next"
:total="question.count"></el-pagination>
</div>
</div>
</div>
</el-col>
<el-col :span="1">
<div style="padding-top: 150px;">
<div><el-button type="primary" @click="arrowRight()" size="mini" icon="el-icon-d-arrow-right"></el-button></div>
<div style="padding-top: 50px;"><el-button @click="arrowLeft()" type="primary" size="mini" icon="el-icon-d-arrow-left"></el-button></div>
</div>
</el-col>
<el-col :span="15">
<div>
<div style="display: flex;justify-content: space-between;">
<div>
<el-form :inline="true" size="mini">
<el-form-item>
<el-select clearable v-model="qpaper.qtype" placeholder="请选择题型" class="search-width-120">
<!-- <el-option label="全部题型" :value="0"></el-option> -->
<el-option label="单选题" :value="1"></el-option>
<el-option label="多选题" :value="2"></el-option>
<el-option label="判断题" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item><el-input class="search-width-120" v-model="qpaper.keyword" clearable placeholder="题干"></el-input></el-form-item>
<el-form-item>
<el-button type="primary" @click="selectQuery()">搜索</el-button>
<!-- <el-button type="primary" size="mini" @click="randomTest.showRandom = true">批量导入</el-button> -->
<!-- <el-button @click="addPageBreak" type="primary" size="mini">分页符</el-button> -->
</el-form-item>
<el-form-item><el-checkbox v-model="qpaper.optShow">选项</el-checkbox></el-form-item>
</el-form>
</div>
<div style="line-height:40px;width:37%;text-align: right;font-size: 14px;">
本卷共
<span class="bigred">{{paperLength}}</span>
, 总分
<span class="bigred">{{totalScore}}</span>
</div>
</div>
</div>
<div class="paper-box">
<div v-if="paper.data.length>0" v-for="(item,idx) in paper.data" :key="idx">
<div v-if="item.type < 900">
<div style="display: flex;justify-content: space-between;background-color: #dcf1ff;padding: 5px;">
<div>
<span style="padding-right: 5px;"><el-checkbox v-model="item.checked"></el-checkbox></span>
<span v-if="item.type == 1">单选题</span>
<span v-if="item.type == 2">多选题</span>
<span v-if="item.type == 3">判断题</span>
<span style="padding-left: 5px;">难度[{{item.difficulty == 1? '简单' : item.difficulty == 2? '中等': '困难'}}]</span>
<!-- <span style="padding-left: 5px;">知识点[{{item.analysis}}]</span> -->
</div>
<div>
<el-input @input="changeInput($event)" v-model="item.defaultScore" style="width: 120px;" size="mini" placeholder="分数" @blur="paperCalculation()">
<template slot="append"></template>
</el-input>
<el-button icon="el-icon-delete" @click="checkDelete(idx)" size="mini"></el-button>
</div>
</div>
<div style="padding: 15px;">
<div>{{ item.title }}</div>
<div v-if="qpaper.optShow">
<div v-if="item.type == 3">{{item.answer?'正确':'错误'}}</div>
<div v-else v-for="(opt, optIdx) in item.optionList" :key="optIdx">{{ optIdx + 1 }}, {{ opt.content }}</div>
</div>
</div>
</div>
<div v-if="item.type > 900">
<div style="height: 25px;">
<span style="float: right;margin-top: -5px;cursor: pointer;" class="el-icon-delete" @click="checkDelete(idx)"></span>
<div style="border-bottom: 2px dotted #000000;margin-right: 50px;"></div>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button @click="showAddDialog = false">取消</el-button>
<el-button v-if="formTab == 'info'" type="primary" @click="saveAndNext()">下一步</el-button>
<el-button v-if="formTab == 'paper'" type="primary" @click="savePaper()">保存</el-button>
<!-- <el-button v-if="formTab == 'paper'" type="warning" @click="previewPaper">预览</el-button> -->
</span>
</el-dialog>
<el-dialog title="【B10】新员工入模培训 基础知识篇" :visible.sync="showPreviewDialog" width="800px">
<div><img :src="`${webBaseUrl}/temp/exam_paper.png`" style="width: 760px" /></div>
<span slot="footer" class="dialog-footer"><el-button @click="showPreviewDialog = false">关闭</el-button></span>
</el-dialog>
<el-dialog title="查看试卷" append-to-body :visible.sync="viewVolumeShow" width="40%" custom-class="g-dialog">
<div style="padding: 10px; font-size: 20px" v-for="(item, index) in viewShowData" :key="item.id">
<div class="test-info">{{index+1}}.{{typeFilter(item.type)}}{{item.title}}</div>
<div style="padding: 10px" v-if="item.type == 3">
<div class="test-info"><span>正确答案{{item.answer? '正确': '错误'}}</span></div>
</div>
<div style="padding: 10px" v-else>
<div class="test-info" v-for="(cc,inx) in item.optionList" :key="inx"><span :class="(cc.isAnswer || cc.score > 0)?'right-key': ''">{{numberToLetter(inx+1)}}{{cc.content}}</span></div>
</div>
<!-- <div style="padding: 10px">
<div class="test-info">解析</div>
<div class="test-info"></div>
</div> -->
</div>
<!-- </div> -->
<span slot="footer" class="dialog-footer"><el-button @click="viewVolumeShow = false">关闭</el-button></span>
</el-dialog>
<el-dialog title="随机导入" :visible.sync="randomTest.showRandom" width="500px">
<div>
<el-form :model="randomTest.formInline">
<el-form-item label="按照数目:">
选择
<input class="test-input" v-model="randomTest.formInline.num" />
题到试卷
</el-form-item>
<el-form-item label="按照总分:">
选择
<input class="test-input" v-model="randomTest.formInline.score" />
分的题到试卷中
</el-form-item>
<el-form-item label="按照难度:">
简单
<input class="test-input" v-model="randomTest.formInline.diff1" />
中等
<input class="test-input" v-model="randomTest.formInline.diff2" />
困难
<input class="test-input" v-model="randomTest.formInline.diff3" />
</el-form-item>
<el-form-item label="按照题型:">
单选
<input class="test-input" v-model="randomTest.formInline.type1" />
多选
<input class="test-input" v-model="randomTest.formInline.type2" />
判断
<input class="test-input" v-model="randomTest.formInline.type3" />
</el-form-item>
</el-form>
<div style="color:#6f6f6f; ">以上内容都需要填写整数</div>
</div>
<span slot="footer" class="dialog-footer"><el-button @click="queryLise()"> </el-button></span>
</el-dialog>
</div>
</template>
<script>
import apiPaper from '@/api/modules/paper.js';
import examQuestionApi from "@/api/modules/question";
import { deepClone } from '../../utils';
import {numberToLetter, deepCopy} from '../../utils/tools.js';
import { mapGetters,mapActions} from 'vuex';
export default {
name: 'articleItems',
data() {
return {
keyData:0,
resOwnerListMap:[],
numberToLetter:numberToLetter,
question: {
checkQuest: [],
all:false,
list: [],
totalPages:0,
count:0,
},
questionData: [],
resOwner: [],
ownership: [],
resourceData: [],
testRadio:'',
resourceProps:{
value: 'code',
label: 'name',
},
randomTest: {
showRandom: false,
qids:[],
formInline: {
num:'',
score:'',
diff1:'',
diff2:'',
diff3:'',
type1:'',
type2:'',
type3:'',
}
},
viewVolumeShow:false,
viewShowData: [],
isEidt: false,
formTab: 'info',
qlib: {
pageIndex:1,
type: '',
title: '',
pageSize:50,
qlist: []
},
qpaper: {
//试卷的内容
optShow: false,
qtype: '',
keyword: '',
},
value: [1, 4],
type: '',
defaultProps: { children: 'children', label: 'label' },
params: {keyWord:'',pageIndex:1,pageSize: 10 },
typeList: [],
pageData: {
count: 0,
list: []
},
shareShow: false,
shareInfo: {
aid: '',
name: '',
toType: 1,
toAid: '',
toName: '',
toInfo: '',
remark: ''
},
recommend: {
dlgShow: false,
records: [
{ addTime: '2022-02-14 11:30:00', toType: 2, status: 9, toAid: '', toName: '受众名称', toInfo: '', remark: '' },
{ addTime: '2022-02-14 11:30:00', toType: 2, status: 3, toAid: '', toName: '受众名称', toInfo: '', remark: '' },
{ addTime: '2022-02-14 11:30:00', toType: 2, status: 9, toAid: '', toName: '受众名称', toInfo: '', remark: '' }
]
},
showAddDialog: false,
paper: {
testName: '',
remark: '',
difficulty: '',
data: []
},
showCompilerDialog: false,
checkQuest: [],
selectedQuest: [],
showPreviewDialog: false,
dialog:false,
paperData: [],
totalScore:0,
paperLength:0,
};
},
computed:{
...mapGetters(['resOwnerMap','sysTypeMap']),
// totalScore() {
// let score = 0;
// this.paper.data && this.paper.data.forEach(item=>{
// if(item.type < 900) {
// score += Number(item.defaultScore);
// }
// })
// return score;
// },
// paperLength(){
// let num = 0;
// this.paper.data && this.paper.data.forEach(item=>{
// if(item.type < 900) {
// num++
// }
// })
// return num;
// }
},
mounted() {
this.getResOwnerTree().then(rs=>{
this.resOwnerListMap=rs;
});
this.searchData();
// if(this.resOwnerListMap.length == 0) {
// this.$store.dispatch("getList");
// }
},
methods: {
changeInput(e){
this.$forceUpdate();
},
currentChange(val) {
this.qlib.pageIndex = val;
this.questionList();
},
paperCalculation() {
this.totalScore=0;
this.paperLength=0;
this.paper.data.forEach(item=>{
if(item.type < 900) {
this.paperLength++;
this.totalScore += Number(item.defaultScore);
}
})
},
getsearch(){
this.params.pageIndex = 1;
this.searchData();
},
reset(){
this.ownership = []
this.params.paperType = ''
this.params.keyWord = ''
this.params.pageIndex = 1;
this.searchData();
},
...mapActions({
getResOwnerTree:'resOwner/getResOwnerTree',
}),
resOwnerName(code){
if(code==''){return '';}
return this.resOwnerMap.get(code);
},
sysTypeName(code){
if(code==''){return '';}
return this.sysTypeMap.get(code);
},
addPaper(){
this.showAddDialog = true;
this.paper = {};
this.paper.data = [];
this.resOwner = [];
this.formTab = 'info';
this.totalScore=0;
this.qlib.type= '';
this.qlib.title= '';
this.paperLength=0;
this.question.all = false;
this.question.list =[];
this.question.checkQuest = [];
},
// 查询已有的数据
selectQuery() {
if(this.qpaper.qtype == '' && this.qpaper.keyword == '') {
this.paper.data = deepCopy(this.paperData);
this.$forceUpdate();
return
}
let data = deepCopy(this.paperData);
if(this.qpaper.qtype !== '') {
data = data.filter(item => {
if(item.type === this.qpaper.qtype){
return item;
}
});
}
if(this.qpaper.keyword !== '') {
data = data.filter(item => {
return item.title.toLowerCase()
.indexOf(this.qpaper.keyword.toLowerCase()) > -1;
});
}
this.paper.data = data;
this.$forceUpdate();
},
checkDelete(index) {
this.paper.data.splice(index,1);
this.paperCalculation();
this.$forceUpdate();
},
// paper.data
// this.question.checkQuest 待选的试题
// this.paper.data 选中的试题
// 向左 不要
arrowLeft() {
let paperList = deepClone(this.paper.data)
let data = paperList.filter((item)=> {
return item.checked;
})
// let item = Array.from(new Set(arr));
// this.question.list = null;
this.question.list.push(...data);
this.question.list = Array.from(new Set(this.question.list));
let list = paperList.filter(item=>{
return !item.checked;
})
this.paper.data = list;
this.paper.data = Array.from(new Set(this.paper.data));
this.paperData = list;
this.paperData = Array.from(new Set(this.paperData));
this.paperCalculation();
},
// 新建:选择向右 要
arrowRight() {
let questionList = deepClone(this.question.list)
let data = questionList.filter((item)=> {
return this.question.checkQuest.indexOf(item.id) < 0;
})
this.question.list = data; // 去除选中数据
let list = questionList.filter((item)=> {
return this.question.checkQuest.includes(item.id);
})
// 拿到去除的数据
this.paper.data.push(...list);// 到已选择列表
this.paper.data = Array.from(new Set(this.paper.data));
this.paperData.push(...list);
this.paperData = Array.from(new Set(this.paperData));
this.paperCalculation();
},
// 新建保存、编辑
savePaper() {
if(!this.paper.testName) {
return this.$message.warning('请您完善基本信息必填项!')
}
this.paper.resOwner1 = this.resOwner[0];
this.paper.resOwner2 = this.resOwner[1];
this.paper.resOwner3 = this.resOwner[2];
this.paper.counts = this.paperLength;
this.paper.totalScore = this.totalScore;
this.paper.paperContent = JSON.stringify(this.paper.data);
if(this.paper.id) {
apiPaper.update(this.paper).then((res)=>{
if(res.status === 200) {
this.$message.success('编辑成功!')
this.showAddDialog = false;
this.searchData();
} else {
this.$message.error(res.message);
}
})
} else{
apiPaper.save(this.paper).then((res)=>{
if(res.status === 200) {
this.$message.success('保存成功!')
this.showAddDialog = false;
this.searchData();
} else {
this.$message.error(res.message+',减少试题数量再试试');
}
})
}
},
typeFilter(num) {
let name = '';
switch (num) {
case 1:
name = '单选';
break;
case 2:
name = '多选';
break;
case 3:
name = '判断';
break;
default:
break;
}
return name;
},
// 编辑试题,试题查询
questionList() {
this.question.list = [];
this.qlib.pageSize = 50;
examQuestionApi.querylist(this.qlib).then(res=>{
if(res.status === 200) {
this.question.list.push(...res.result.list);
this.question.list.forEach(item=>{
item.checked = false;
})
this.question.count = res.result.count;
this.question.totalPages = res.result.totalPages;
this.$forceUpdate();
} else {
this.$message.error(res.message);
}
})
},
// 列标查询
searchData() {
this.params.resOwner1 = this.ownership[0];
this.params.resOwner2 = this.ownership[1];
this.params.resOwner3 = this.ownership[2];
apiPaper.querylist(this.params).then((res)=>{
if(res.status === 200) {
this.pageData.list = res.result.list;
this.pageData.count = res.result.count;
this.$forceUpdate();
} else {
this.$message.error(res.message);
}
})
},
viewTopic(row) {
this.viewVolumeShow=true;
apiPaper.detail(row.id).then(res=>{
if(res.status === 200) {
this.viewShowData = JSON.parse(res.result.paperContent);
} else {
this.$message.error(res.message);
}
})
},
queryLise() {
//计算试题的ids
apiPaper.batchImportCount(this.randomTest.formInline).then(res=>{
if(res.status === 200) {
// this.pageData.list = res.result.list;
// this.pageData.count = res.result.count;
} else {
this.$message.error(res.message);
}
})
this.randomTest.showRandom = false;
},
eidtVolume(row) {
this.isEidt = true;
this.showAddDialog = true;
this.paper = {};
this.resOwner = [];
this.formTab = 'info';
// 删除掉详情接口
apiPaper.detail(row.id).then(res=>{
if(res.status === 200) {
this.paper = res.result;
this.paper.data = JSON.parse(res.result.paperContent);
this.paperData = JSON.parse(res.result.paperContent);
this.paper.paperType = Number(res.result.paperType);
if(res.result.resOwner3) {
this.resOwner = [res.result.resOwner1,res.result.resOwner2,res.result.resOwner3];
} else {
this.resOwner = [res.result.resOwner1,res.result.resOwner2 ];
}
this.paperCalculation();
} else {
this.$message.error(res.message);
}
})
},
changeTab(tab) {
//判断,如果,如果没有试卷的id 就不能切换到试卷编辑页,要提示先保存
},
saveAndNext() {
this.formTab = 'paper';
this.searchData();
},
addPageBreak() {
//添加分页符
this.paper.data.push({ id: '9', type: 901, score: 0, checked: false, content: '' });
this.$forceUpdate();
},
deleteVolume(row) {
this.$confirm('此操作将数据永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
apiPaper.del(row.id).then((res)=>{
if(res.status === 200) {
this.$message.success('删除成功!');
this.searchData();
} else {
this.$message.error(res.message);
}
})
});
},
handleSizeChange(val) {
this.params.pageSize = val;
this.params.pageIndex = 1;
this.searchData();
},
handleCurrentChange(val) {
this.params.pageIndex = val;
this.searchData();
},
previewPaper() {
this.showCompilerDialog = false;
this.showPreviewDialog = true;
}
},
watch:{
'question.all':function(val) {
if(val === true) {
let ids = this.question.list.map((item)=>{
return item.id;
})
this.question.checkQuest = ids;
} else {
this.question.checkQuest = [];
}
}
}
};
</script>
<style lang="scss" scoped>
.el-input{
.el-input__inner{
padding: 0px 5px;
}
}
.test-input {
width: 60px;
margin: 0 5px;
border: 1px solid #e8e8e8;
}
.test-input:focus {
border: none;
}
.bigred {
color: red;
font-size: 20px;
}
.right-key{
color: #00aa00;
}
.paper-box {
//
border: 1px solid #dfdfdf;
padding: 5px 10px;
height: 410px;
overflow: auto;
}
.el-aside {
padding: 0px 2px 10px 0px;
}
.el-main {
padding: 0px 10px;
}
.article-status1 {
padding: 3px;
border: 1px dotted #1ea0fa;
color: #1ea0fa;
}
.article-status2 {
padding: 3px;
border: 1px dotted #00aa00;
color: #00aa00;
}
.article-status3 {
padding: 3px;
border: 1px dotted #ff0000;
color: #ff0000;
}
.article-list {
margin: 5px 0;
border: 1px solid #dddddd;
padding: 10px;
}
.article-info {
.article-info-title {
font-size: 16px;
font-weight: 400;
height: 40px;
line-height: 40px;
.article-info-date {
width: 150px;
height: 40px;
line-height: 40px;
float: right;
font-weight: 200;
color: #999999;
i {
margin-right: 5px;
}
}
}
.article-info-summary {
height: 65px;
color: #999999;
}
.article-info-tools {
height: 30px;
.article-info-tools-auth {
float: left;
font-size: 13px;
color: #999999;
img {
margin-right: 10px;
width: 30px;
border: 1px solid #eee;
border-radius: 50%;
vertical-align: middle;
}
}
.article-info-tools-btns {
float: right;
.article-info-tools-btn {
margin: 0 0 0 15px;
}
}
}
}
.case-row-btn {
line-height: 25px;
button {
height: 20px;
padding: 3px 20px;
}
}
.label-border-bottom {
border-bottom: 1px solid #dfdfdf;
padding: 5px 0;
margin-bottom: 10px;
}
.label-border-bottom2 {
border-bottom: 1px solid #dfdfdf;
}
.search-width-120 {
width: 120px;
}
.algin-center {
text-align: center;
}
.quest-box {
min-height: 400px;
border: 1px solid #dfdfdf;
padding: 5px 10px;
.quest-div {
height: 400px;
overflow-y: auto;
}
.quest-bottom {
height: 40px;
}
.quest-item {
display: block;
padding: 5px 3px;
}
.quest-item:hover {
background: #dbd6d6;
}
}
//
.hr {
text-align: center;
line-height: 0px;
background: blue;
}
.hr:after {
content: '分页符';
font-weight: bold;
font-size: 30px;
background: white;
z-index: 2;
}
</style>