Browse Source

2024-6-24 监理员查看考试记录

dzl 9 months ago
parent
commit
1541da1fc6

+ 1 - 1
.env.development

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 北京继续教育
+VUE_APP_TITLE = 继续教育
 
 # 开发环境配置
 ENV = 'development'

+ 1 - 1
.env.production

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 北京继续教育
+VUE_APP_TITLE = 继续教育
 
 # 生产环境配置
 ENV = 'production'

+ 3 - 2
src/api/jianliyuan/index.js

@@ -49,9 +49,10 @@ export function submitDaan(data){
 
 
 //查询考试记录
-export function getKsList(){
+export function getKsList(data){
 	return request({
-		url:"/system/PaperInfo/paperReancaiList"
+		url:"/system/PaperInfo/paperReancaiList",
+		params:data
 	})
 }
 

+ 10 - 0
src/api/xiehui/jxjy/kaoshiGl.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+
+//查询考试成绩
+export function getCjList(data){
+	return request({
+		url:"/system/PaperInfo/paperReancaiTotalList",
+		params:data,
+	})
+}

+ 21 - 3
src/views/components/shijuan/danxuan.vue

@@ -1,5 +1,5 @@
 <template>
-	<div :style="{backgroundColor:StandardAnswer == ''?'':'#F2F6FC'}" style="padding: 20px;">
+	<div :style="{backgroundColor:(StandardAnswer === '' || StandardAnswer === null) || disabled == true?'':'#F2F6FC'}" style="padding: 20px;">
 		<div style="font-size: 16px;">
 			<span>{{content.tihao+". "}}{{getContent.TestContent}}</span><span style="color: #F56C6C;">({{getContent.TestMark
 }}分)</span>
@@ -7,7 +7,7 @@
 		<div style="padding-left: 20px;margin-top:20px">
 			<div style="display: flex;align-items: center;margin-bottom: 18px;" v-for="(v,i) in getContent.OptionContent
 " :key="v">
-				<el-radio v-model="StandardAnswer" :label="abc[i]" @change="chooseXx">
+				<el-radio v-model="StandardAnswer" :disabled="disabled" :label="abc[i]" @change="chooseXx">
 					<span style="font-weight: bold;font-size: 16px;">
 						{{abc[i]+". "}}
 					</span>
@@ -21,6 +21,14 @@
 		<div style="color: #0000FF;margin-top: 20px;" v-if="show">
 			标准答案:{{getContent.StandardAnswer}}
 		</div>
+		<div v-if="disabled">
+			<div style="color: #0000FF;margin-top: 5px;">
+				考生答案:{{getContent.userAnswer}}
+			</div>
+			<div :style="{color: getContent.userAnswer == getContent.StandardAnswer ?'#0000FF':'#F56C6C'}" style=" margin-top: 5px;">
+				本题得分:{{getContent.userScore}}
+			</div>
+		</div>
 	</div>
 </template>
 
@@ -44,6 +52,10 @@ import { number } from 'echarts';
 			fIndex:{
 				type:Number,
 				default:null
+			},
+			disabled:{
+				type:Boolean,
+				default:false
 			}
 		},
 		data() {
@@ -79,5 +91,11 @@ import { number } from 'echarts';
 	};
 </script>
 
-<style>
+<style scoped lang="scss">
+	::v-deep .el-radio__input.is-disabled + span.el-radio__label{
+		color:#606266 !important;
+	}
+	::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner{
+		background-color:  #1890ff !important;
+	}
 </style>

+ 22 - 6
src/views/components/shijuan/duoxuan.vue

@@ -1,15 +1,13 @@
 <template>
-	<div :style="{backgroundColor:daAn.length == 0?'':'#F2F6FC'}" style="padding: 20px;">
+	<div :style="{backgroundColor:daAn.length == 0 || disabled == true?'':'#F2F6FC'}" style="padding: 20px;">
 		<div style="font-size: 16px;">
 			<span>{{content.tihao+". "}}{{getContent.TestContent}}</span><span style="color: #F56C6C;">({{getContent.TestMark
 }}分)</span>
 		</div>
 		<div style="padding-left: 20px;margin-top:20px">
 			<div style="display: flex;align-items: center;margin-bottom: 18px;" v-for="(v,i) in getContent.OptionContent
-" :key="v">
-				<!-- <el-radio v-model="StandardAnswer" :label="abc[i]"> -->
-				<el-checkbox v-model="checks[i]" :key="i"  @change="chooseDa(i,$event)">
-				<!-- <el-checkbox v-model="checks[i]"  > -->
+" :key="v"> 
+				<el-checkbox v-model="checks[i]" :key="i" :disabled="disabled"  @change="chooseDa(i,$event)"> 
 					<span style="font-weight: bold;font-size: 16px;">
 						{{abc[i]+". "}}
 					</span>
@@ -22,6 +20,14 @@
 		<div style="color: #0000FF;margin-top: 20px;" v-if="show">
 			标准答案:{{getContent.StandardAnswer}}
 		</div>
+		<div v-if="disabled">
+			<div style="color: #0000FF;margin-top: 5px;">
+				考生答案:{{getContent.userAnswer}}
+			</div>
+			<div :style="{color: getContent.userAnswer == getContent.StandardAnswer ?'#0000FF':'#F56C6C'}" style=" margin-top: 5px;">
+				本题得分:{{getContent.userScore}}
+			</div>
+		</div>
 	</div>
 </template>
 
@@ -44,6 +50,10 @@
 			fIndex:{
 				type:Number,
 				default:null
+			},
+			disabled:{
+				type:Boolean,
+				default:false
 			}
 		},
 		data() {
@@ -100,5 +110,11 @@
 	};
 </script>
 
-<style>
+<style scoped lang="scss">
+	::v-deep .el-checkbox__input.is-disabled + span.el-checkbox__label{
+		color:#606266 !important;
+	}
+	::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{
+		background-color:  #1890ff !important;
+	}
 </style>

+ 216 - 0
src/views/components/shijuan/finishSj.vue

@@ -0,0 +1,216 @@
+<template>
+	<div  >
+		<div
+			style="padding: 10px;text-align: center;font-size: 20px;font-weight: bold;border-bottom: 2px solid #60A900;position: relative;">
+			{{title}}
+			<div style="position: absolute;right: 0;bottom: 10px;font-weight: normal;font-size: 14px;">
+				{{allNum}}
+			</div>
+		</div>
+		<div class="flex-ac-jc flex-wrap">
+			<span class="m-r-10" v-if="config.UserCord != null">
+				身份证号:{{config.UserCord}}
+			</span>
+			<span class="m-r-10" v-if="config.UserName != null">
+				姓名:{{config.UserName}}
+			</span>
+			<span class="m-r-10">
+				答题时间:{{config.StartTime+" 至 "+ config.EndTime}}
+			</span>
+			<span class="m-r-10">
+				通过分数:{{config.passMark}}
+			</span>
+			<span>
+				考生得分:{{config.TotalMark}}
+			</span>
+		</div>
+		<div style="padding: 10px 20px;position: relative;">
+			<div v-for="(v,i) in content" :key="i">
+				<div v-for="(item,key) in v" :key="key">
+					<div v-if="key == '27'">
+						<span v-if="i==0">
+							一、
+						</span>
+						<span v-else-if="i==1">
+							二、
+						</span>
+						<span v-else>
+							三、
+						</span>
+						单选题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+					</div>
+					<div v-else-if="key == '28'">
+						<span v-if="i==0">
+							一、
+						</span>
+						<span v-else-if="i==1">
+							二、
+						</span>
+						<span v-else>
+							三、
+						</span>
+						多选题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+					</div>
+					<div v-else>
+						<span v-if="i==0">
+							一、
+						</span>
+						<span v-else-if="i==1">
+							二、
+						</span>
+						<span v-else>
+							三、
+						</span>
+						判断题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+					</div>
+					<div v-for="(value,index) in item.list" :key="value.RubricID">
+						<div v-if="key == '27'" style="width:calc(100% - 360px);">
+							<danxuan :id="`#question-${value.tihao}`" :content="value"  :show="true" :disabled="true" >
+							</danxuan>
+						</div>
+						<div v-else-if="key == '28'" style="width:calc(100% - 360px);">
+							<duoxuan :id="`#question-${value.tihao}`" :content="value"   :show="true" :disabled="true" >
+							</duoxuan>
+						</div>
+						<div v-else style="width:calc(100% - 360px);">
+							<panduan :id="`#question-${value.tihao}`" :content="value"   :show="true" :disabled="true" >
+							</panduan>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="flex-ac-jc pd-20">
+				<el-button type="danger" @click="back">关 闭</el-button> 
+			</div>
+			<div style="position: fixed;top;width: 384px;top:60px;right:20px;z-index: 99;background-color: #fff;border: 2px solid #ccc;padding:5px 10px;border-radius: 10px;"> 
+				<div v-for="(v,i) in content" :key="i">
+					<div v-for="(item,key) in v" :key="key" >
+						<div v-if="key == '27'" class="m-b-10">
+							<span v-if="i==0">
+								一、
+							</span>
+							<span v-else-if="i==1">
+								二、
+							</span>
+							<span v-else>
+								三、
+							</span>
+							单选题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+						</div>
+						<div v-else-if="key == '28'" class="m-b-10">
+							<span v-if="i==0">
+								一、
+							</span>
+							<span v-else-if="i==1">
+								二、
+							</span>
+							<span v-else>
+								三、
+							</span>
+							多选题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+						</div>
+						<div v-else class="m-b-10" >
+							<span v-if="i==0">
+								一、
+							</span>
+							<span v-else-if="i==1">
+								二、
+							</span>
+							<span v-else>
+								三、
+							</span>
+							判断题 ({{'共'+item.count+'题,共'+item.score+'分'}})
+						</div>
+						<div style="width: 100%;display: flex;flex-wrap: wrap;box-sizing: border-box;border-collapse: collapse;" class="m-b-10"> 
+							<div v-for="(value,index) in item.list" :key="value.RubricID" style="width: 60px;border:1px solid #ccc;margin-bottom:-1px;margin-right: -1px;color:#fff" class="pd-10 flex-ac-jc tihao" :style="{backgroundColor:value.userScore == value.TestMark?'#67C23A':value.userScore == 0?'#F56C6C':'#E6A23C'}" @click="scrollToQuestion(index,value)"  >
+								{{value.tihao}}
+							</div>
+						</div>
+						
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import danxuan from "./danxuan.vue"
+	import duoxuan from "./duoxuan.vue"
+	import panduan from "./panduan.vue"
+	import {
+		submitDaan
+	} from "@/api/jianliyuan/index"
+	export default {
+		name: "FinishSj",
+		props: {
+			content: { // 传入的地址
+				type: Object,
+				default: null,
+			}, 
+			title:{
+				type:String,
+				default:null
+			},
+			config:{
+				type:Object,
+				default:null
+			}
+		},
+		components: {
+			danxuan,
+			duoxuan,
+			panduan
+		},
+		data() {
+			return {
+				show: false,
+				answerList: [],
+				allNum: null,
+				min:null,
+				second:59,
+				miao:59,
+				ti:null,
+				startTime:null,
+			};
+		},
+		computed: {
+			
+		},
+		mounted() {  
+			this.getAllNum() 
+		},
+		methods: { 
+			getAllNum() {
+				let num = 0
+				let score = 0
+				for (let i in this.content) {
+					this.answerList.push([])
+					for (let q in this.content[i]) {
+						this.answerList[i] = this.content[i][q].list
+						num += this.content[i][q].count
+						score += this.content[i][q].score
+					}
+				}
+				this.allNum = "总共" + num + "题 共" + score + "分" 
+			}, 
+			scrollToQuestion(index,value) {  
+			  const questionId = `#question-${value.tihao}`;  
+			  const questionElement = document.getElementById(questionId);  
+		  
+			  if (questionElement) {    
+				questionElement.scrollIntoView({ behavior: 'smooth' });  
+			  }  
+			}, 
+			back(){
+				this.$emit("back",false)
+			}
+		},
+	};
+</script>
+
+<style scoped lang="scss"> 
+	.tihao:hover{
+		cursor: pointer;
+	}
+</style>

+ 23 - 4
src/views/components/shijuan/panduan.vue

@@ -1,18 +1,26 @@
 <template>
-	<div :style="{backgroundColor:StandardAnswer === ''?'':'#F2F6FC'}" style="padding: 20px;">
+	<div :style="{backgroundColor:(StandardAnswer === '' || StandardAnswer === null) || disabled == true?'':'#F2F6FC'}" style="padding: 20px;">
 		<div style="font-size: 16px;">
 			<span>{{content.tihao+". "}}{{getContent.TestContent}}</span><span style="color: #F56C6C;">({{getContent.TestMark
 }}分)</span>
 		</div>
 		<div style="padding-left: 20px;margin-top:20px">
 			<el-radio-group v-model="StandardAnswer" @change="chooseXx">
-				<el-radio :label="'正确'" ><span style="font-size: 16px;">正确</span></el-radio>
-				<el-radio :label="'错误'" ><span style="font-size: 16px;">错误</span></el-radio>
+				<el-radio :label="'正确'" :disabled="disabled" ><span style="font-size: 16px;">正确</span></el-radio>
+				<el-radio :label="'错误'"  :disabled="disabled"  ><span style="font-size: 16px;">错误</span></el-radio>
 			</el-radio-group>
 		</div>
 		<div style="color: #0000FF;margin-top: 20px;" v-if="show">
 			标准答案:{{getContent.StandardAnswer}}
 		</div>
+		<div v-if="disabled">
+			<div style="color: #0000FF;margin-top: 5px;">
+				考生答案:{{getContent.userAnswer}}
+			</div>
+			<div :style="{color: getContent.userAnswer == getContent.StandardAnswer ?'#0000FF':'#F56C6C'}" style=" margin-top: 5px;">
+				本题得分:{{getContent.userScore}}
+			</div>
+		</div>
 	</div>
 </template>
 
@@ -35,8 +43,13 @@
 			fIndex:{
 				type:Number,
 				default:null,
+			},
+			disabled:{
+				type:Boolean,
+				default:false
 			}
 			
+			
 		},
 		data() {
 			return {
@@ -69,5 +82,11 @@
 	};
 </script>
 
-<style>
+<style scoped lang="scss">
+	::v-deep .el-radio__input.is-disabled + span.el-radio__label{
+		color:#606266 !important;
+	}
+	::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner{
+		background-color:  #1890ff !important;
+	}
 </style>

+ 2 - 5
src/views/components/shijuan/zhengjuan.vue

@@ -108,7 +108,7 @@
 							判断题 ({{'共'+item.count+'题,共'+item.score+'分'}})
 						</div>
 						<div style="width: 100%;display: flex;flex-wrap: wrap;box-sizing: border-box;border-collapse: collapse;" class="m-b-10"> 
-							<div v-for="(value,index) in item.rubricInfos" :key="value.RubricID" style="width: 60px;border:1px solid #ccc;margin-bottom:-1px;margin-right: -1px;" class="pd-10 flex-ac-jc tihao" :style="{backgroundColor:value.userAnswer !==''?'#9dddff':'#fff'}" @click="scrollToQuestion(index,value)"  >
+							<div v-for="(value,index) in item.rubricInfos" :key="value.RubricID" style="width: 60px;border:1px solid #ccc;margin-bottom:-1px;margin-right: -1px;" class="pd-10 flex-ac-jc tihao" :style="{backgroundColor:value.userAnswer !=='' && value.userAnswer != null?'#9dddff':'#fff'}" @click="scrollToQuestion(index,value)"  >
 								{{value.tihao}}
 							</div>
 						</div>
@@ -223,10 +223,7 @@
 				for (let i in this.content) {
 					this.answerList.push([])
 					for (let q in this.content[i]) {
-						this.answerList[i] = this.content[i][q].rubricInfos.map(item => {
-							item.userAnswer = ""
-							return item
-						})
+						this.answerList[i] = this.content[i][q].rubricInfos
 						num += this.content[i][q].count
 						score += this.content[i][q].score
 					}

+ 1 - 2
src/views/components/shijuan/zhuti.vue

@@ -52,7 +52,7 @@
 								判断题 ({{'共'+item.count+'题,共'+item.score+'分'}})
 							</div>
 							<div style="width: 100%;display: flex;flex-wrap: wrap;box-sizing: border-box;border-collapse: collapse;" class="m-b-10"> 
-								<div v-for="(value,index) in item.rubricInfos" :key="value.RubricID" style="width: calc(100% / 6);border:1px solid #ccc;margin-bottom:-1px;margin-right: -1px;" class="pd-10 flex-ac-jc tihao" :style="{backgroundColor:answerList[value.tihao-1].userAnswer !==''?'#9dddff':'#fff'}" @click="scrollToQuestion(value.tihao)"  >
+								<div v-for="(value,index) in item.rubricInfos" :key="value.RubricID" style="width: calc(100% / 6);border:1px solid #ccc;margin-bottom:-1px;margin-right: -1px;" class="pd-10 flex-ac-jc tihao" :style="{backgroundColor:answerList[value.tihao-1].userAnswer !=='' && answerList[value.tihao-1].userAnswer !=='' != null?'#9dddff':'#fff'}" @click="scrollToQuestion(value.tihao)"  >
 									{{value.tihao}}
 								</div>
 							</div>
@@ -232,7 +232,6 @@
 					this.answerList.push([])
 					for (let q in this.content[i]) { 
 						this.answerList[i] = this.content[i][q].rubricInfos.map(item => {
-							item.userAnswer = ""
 							item.fIndex = i
 							item.tmType = q
 							item.num = this.content[i][q].count

+ 72 - 23
src/views/jianlirenyuan/chengji/index.vue

@@ -1,23 +1,29 @@
 <template>
 	<div class="app-container">
-		<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
-			label-width="68px">
-			<el-form-item label="试卷名称" prop="PaperName">
-				<el-input v-model="queryParams.PaperName" placeholder="请输入试卷名称" clearable
-					@keyup.enter.native="handleQuery" />
+		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"
+			label-width="68px"> 
+			<el-form-item label="期次" prop="QiciYear">
+				<div class="flex-ac">
+					<el-input v-model="queryParams.QiciYear" placeholder="" clearable style="width: 120px;"
+						@keyup.enter.native="handleQuery"  />
+					<span class="p-l-10 p-r-10">年</span>
+					<el-input v-model="queryParams.QiCi" placeholder="" clearable style="width: 120px;"
+						@keyup.enter.native="handleQuery" />
+					<span class="p-l-10">期</span>
+				</div>
 			</el-form-item>
-			<el-form-item label="组卷方式" prop="ProduceWay">
-				<el-select v-model="queryParams.ProduceWay" placeholder="请选择组卷方式" clearable>
-					<el-option v-for="dict in dict.type.jxjy_ks_ctfs" :key="dict.value" :label="dict.label"
-						:value="dict.value" />
+			<el-form-item label="状态" prop="PassState">
+				<el-select v-model="queryParams.PassState" placeholder="请选择是否及格" clearable>
+					<el-option  label="不及格" value="2" />
+					<el-option  label="及格" value="1" /> 
 				</el-select>
 			</el-form-item>
 			<el-form-item>
 				<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
 				<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
 			</el-form-item>
-		</el-form> -->
-		<el-table :data="tableData" style="width: 100%">
+		</el-form>
+		<el-table :data="tableData" style="width: 100%" v-loading="loading">
 			<el-table-column   label="期次" align="center">
 				<template slot-scope="scope">
 					{{scope.row.qiciYear+"第"+scope.row.qiCi+"期"}}
@@ -41,7 +47,9 @@
 			</el-table-column>
 			<el-table-column prop="zxs" label="是否及格" align="center">
 				<template slot-scope="scope">
-					{{scope.row.PassState == 0?'不及格':'及格'}}
+					<span :style="{color:scope.row.PassState == 0?'#F56C6C':'#606266'}">
+						{{scope.row.PassState == 0?'不及格':'及格'}}
+					</span>
 				</template>
 			</el-table-column>
 			<el-table-column prop="zxs" label="总考次数/当前次数" align="center">
@@ -49,15 +57,26 @@
 					{{scope.row.repeatExamNum+" / "+ scope.row.currentCount}}
 				</template>
 			</el-table-column>
-			<el-table-column prop="yxsj" label="证书打印" align="center">
+			<el-table-column prop="yxsj" label="操作" align="center">
 				<template slot-scope="scope">
 					<!-- <span style="color: #F56C6C;">
 						{{scope.row.yxsj}}
 					</span> -->
-					<el-button type="text" @click="getInfo(scope.row)">查询详情</el-button>
+					<el-button type="text" icon="el-icon-view" @click="getInfo(scope.row)">查看试卷</el-button>
+					<el-button type="text" style="color: #F56C6C;" icon="el-icon-printer" @click="zsDownload(scope.row)" v-if="scope.row.PassState == 1">证书下载</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
+		<el-dialog title="证书下载" width="50vw" :visible.sync="zsShow" >
+			 <div style="height: 40vh;">
+				 
+			 </div>
+		</el-dialog>
+		<div class="shijuan">
+			<el-dialog title="继续教育考试" :visible.sync="ksShow" :show-close="false" fullscreen destroy-on-close >
+				<finishSj :content="sjContent" :config="sjConfig" :title="title" @back="back"></finishSj> 
+			</el-dialog>
+		</div>
 	</div>
 </template>
 
@@ -65,16 +84,26 @@
 	import {
 		getKsList,getFinishSjInfo
 	} from "@/api/jianliyuan/index"
+	import finishSj from "../../components/shijuan/finishSj" 
 	export default {
 		name: "Chengji",
+		components:{
+			finishSj
+		},
 		data() {
 			return {
 				tableData: [],
-				queryParams:{
-					qici:"",
-					type:""
+				queryParams:{ 
+					QiciYear:null,
+					QiCi:null, 
+					PassState:null,
 				},
 				loading:false,
+				ksShow:false, 
+				sjContent:null,
+				sjConfig:null,
+				title:null,
+				zsShow:false
 			}
 		},
 		created() {
@@ -82,28 +111,48 @@
 		},
 		methods: {
 			getList(){
-				getKsList().then(res=>{
+				this.loading = true
+				getKsList(this.queryParams).then(res=>{
+					this.loading = false
 					this.tableData = res.data
 				})
 			},
 			//搜索
-			handleQuery(){
-				this.loading = true
+			handleQuery(){  
+				this.getList()
 			},
 			//重置
 			resetQuery(){
-				this.loading = true
+				this.queryParams.QiCi = null
+				this.resetForm("queryForm");
+				this.handleQuery(); 
 			},
 			//查询试卷详情
 			getInfo(row){
+				this.loading = true
+				this.title = row.TrainName
+				this.sjConfig = row 
 				getFinishSjInfo(row.UserScoreID).then(res=>{
-					
+					this.loading = false
+					this.sjContent = res.data
+					this.ksShow = true
 				})
+			},
+			back(){
+				this.ksShow = false
+			},
+			zsDownload(row){
+				this.zsShow = true
 			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	
+	::v-deep .shijuan .el-dialog__body{
+		padding: 0 20px;
+	}
+	::v-deep .shijuan .el-dialog__header{
+		display: none!important;
+	}
 </style>

+ 12 - 2
src/views/jianlirenyuan/peixunList/index.vue

@@ -45,7 +45,7 @@
 					</div>
 					<div v-else>
 						<div v-if="scope.row.overFlg === '1'">
-							完成学时|考试通过|打印证明
+							完成学时|考试通过|<span style="color: #F56C6C;cursor: pointer;" @click="zsDownload(scope.row)">证书下载</span>
 						</div>
 						<div v-if="scope.row.overFlg === '2'" style="color: #909399;">
 							考试次数上限未通过
@@ -89,6 +89,11 @@
 		<el-dialog title="继续教育学习" :visible.sync="studyShow" fullscreen destroy-on-close :before-close="studyOver">
 			<xuexi :classData="classData"></xuexi>
 		</el-dialog>
+		<el-dialog title="证书下载" width="50vw" :visible.sync="zsShow" >
+			 <div style="height: 40vh;">
+				 
+			 </div>
+		</el-dialog>
 		<div class="shijuan">
 			<el-dialog title="继续教育考试" :visible.sync="ksShow" :show-close="false" fullscreen destroy-on-close >
 				<zhengjuan :content="sjContent" :sjConfig="sjConfig" :personId="personId" v-if="sjTYpe == 'zj'" @subSuccess="subSuccess"></zhengjuan>
@@ -122,7 +127,8 @@
 				sjContent:null,
 				sjConfig:null,
 				personId:null,
-				sjTYpe:'zj'
+				sjTYpe:'zj',
+				zsShow:false
 			}
 		},
 		created() {
@@ -157,6 +163,10 @@
 			subSuccess(data){
 				this.getList()
 				this.ksShow = false 			
+			},
+			//证书下载
+			zsDownload(row){
+				this.zsShow = true
 			}
 			
 		}

+ 170 - 0
src/views/xiehui/jxjy/kaoshiGl/chengjiList.vue

@@ -0,0 +1,170 @@
+<template>
+	<div class="app-container"> 
+		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"
+			label-width="68px">
+			<el-form-item label="姓名" prop="UserName" >
+				<el-input v-model="queryParams.UserName" placeholder="请输入姓名" clearable
+					@keyup.enter.native="handleQuery" />
+			</el-form-item>
+			<el-form-item label="身份证号" prop="UserCord" >
+				<el-input v-model="queryParams.UserCord" placeholder="请输入身份证号" clearable
+					@keyup.enter.native="handleQuery" />
+			</el-form-item>
+			<el-form-item label="期次" prop="QiciYear">
+				<div class="flex-ac">
+					<el-input v-model="queryParams.QiciYear" placeholder="" clearable style="width: 120px;"
+						@keyup.enter.native="handleQuery"  />
+					<span class="p-l-10 p-r-10">年</span>
+					<el-input v-model="queryParams.QiCi" placeholder="" clearable style="width: 120px;"
+						@keyup.enter.native="handleQuery" />
+					<span class="p-l-10">期</span>
+				</div>
+			</el-form-item>
+			<el-form-item label="状态" prop="PassState">
+				<el-select v-model="queryParams.PassState" placeholder="请选择是否及格" clearable>
+					<el-option  label="不及格" value="2" />
+					<el-option  label="及格" value="1" />
+				</el-select>
+			</el-form-item>
+			<el-form-item>
+				<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+				<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+			</el-form-item>
+		</el-form>
+		<el-table :data="tableData" style="width: 100%" v-loading="loading">
+			<el-table-column   label="期次" align="center">
+				<template slot-scope="scope">
+					{{scope.row.qiciYear+"第"+scope.row.qiCi+"期"}}
+				</template>
+			</el-table-column>
+			<el-table-column prop="pxlb" label="培训类别" align="center">
+				<template slot-scope="scope">
+					{{scope.row.zhuanYeType === ""?scope.row.zcsZhuanYe:scope.row.zcsZhuanYe+"("+scope.row.zhuanYeType+")"}}
+				</template>
+			</el-table-column>
+			<el-table-column prop="StartTime" label="答卷开始时间" align="center" width="150px" >
+			</el-table-column>
+			<el-table-column prop="EndTime" label="答卷结束时间" align="center" width="150px" >
+			</el-table-column>
+			<el-table-column prop="UserName" label="姓名" align="center" >
+			</el-table-column>
+			<el-table-column prop="UserCord" label="身份证号" align="center" width="200px">
+			</el-table-column>
+			<el-table-column prop="TotalMark" label="考试分数" align="center" >
+			</el-table-column>
+			<el-table-column prop="passMark" label="及格分数" align="center">
+			</el-table-column>
+			<el-table-column prop="zxs" label="是否及格" align="center">
+				<template slot-scope="scope">
+					<span :style="{color:scope.row.PassState == 0?'#F56C6C':'#606266'}">
+						{{scope.row.PassState == 0?'不及格':'及格'}}
+					</span>
+				</template>
+			</el-table-column>
+			<el-table-column prop="zxs" label="考试次数" align="center">
+				<template slot-scope="scope">
+					{{ "第"+scope.row.currentCount+"次"}}
+				</template>
+			</el-table-column>
+			<el-table-column prop="yxsj" label="操作" align="center">
+				<template slot-scope="scope">
+					<!-- <span style="color: #F56C6C;">
+						{{scope.row.yxsj}}
+					</span> -->
+					<el-button type="text" icon="el-icon-view" @click="getInfo(scope.row)">查卷</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+		<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+			@pagination="getList" />
+		<div class="shijuan">
+			<el-dialog title="" :visible.sync="ksShow" :show-close="false" fullscreen destroy-on-close >
+				<finishSj :content="sjContent" :title="title" :config="sjConfig" @back="back"></finishSj> 
+			</el-dialog>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		getCjList
+	} from "@/api/xiehui/jxjy/kaoshiGl"
+	import {
+		getFinishSjInfo
+	} from "@/api/jianliyuan/index"
+	import finishSj from "../../../components/shijuan/finishSj" 
+	export default {
+		name: "Chengji",
+		components:{
+			finishSj
+		},
+		data() {
+			return {
+				tableData: [],
+				queryParams:{
+					pageSize:10,
+					pageNum:1,
+					UserName:null,
+					UserCord:null,
+					QiciYear:null,
+					QiCi:null,
+					PassState:null
+				},
+				total:0,
+				loading:false,
+				ksShow:false, 
+				sjContent:null,
+				sjConfig:null,
+				title:null,
+				
+			}
+		},
+		created() {
+			this.getList()
+		},
+		methods: {
+			getList(){
+				this.loading = true
+				getCjList(this.queryParams).then(res=>{
+					this.loading = false
+					this.total = res.total
+					this.tableData = res.rows
+				})
+			},
+			//搜索
+			handleQuery(){ 
+				this.queryParams.pageNum = 1
+				this.getList()
+			},
+			//重置
+			resetQuery(){
+				this.queryParams.QiCi = null
+				this.resetForm("queryForm");
+				this.handleQuery(); 
+			},
+			//查询试卷详情
+			getInfo(row){
+				this.loading = true
+				this.title = row.TrainName
+				this.sjConfig = row
+				getFinishSjInfo(row.UserScoreID).then(res=>{
+					this.loading = false
+					this.sjContent = res.data
+					this.ksShow = true
+				})
+			},
+			back(){
+				this.ksShow = false
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	::v-deep .shijuan .el-dialog__body{
+		padding: 0 20px;
+	}
+	::v-deep .shijuan .el-dialog__header{
+		display: none!important;
+	}
+</style>

+ 8 - 0
src/views/xiehui/jxjy/kaoshiGl/ksRenyuan.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>