Commit 2a9bf097 authored by 李苏's avatar 李苏 💬

新增试题管理

parent 5f4456dd
...@@ -860,19 +860,19 @@ export const powerRoutes=[ ...@@ -860,19 +860,19 @@ export const powerRoutes=[
name:'questionManage', name:'questionManage',
path:"questionManage" path:"questionManage"
}, },
// { {
// component:'train/testPaper/index', component:'train/testPaper/index',
// hidden:false, hidden:false,
// meta:{ meta:{
// "title": "考试试卷", "title": "考试试卷",
// "icon": "", "icon": "",
// "noCache": false, "noCache": false,
// "link": null, "link": null,
// "mkid":'test', "mkid":'test',
// }, },
// name:'testPaper', name:'testPaper',
// path:"testPaper" path:"testPaper"
// }, },
/*, /*,
......
...@@ -2,77 +2,70 @@ ...@@ -2,77 +2,70 @@
<RelDialog :type='type' :editApp='editApp' :app='app' :buttonApp='buttonApp'> <RelDialog :type='type' :editApp='editApp' :app='app' :buttonApp='buttonApp'>
<!-- 填写表单内容,slot=form必写--> <!-- 填写表单内容,slot=form必写-->
<el-form slot="form" ref="form" :model="form" label-width="80px" :rules="rules"> <el-form slot="form" ref="form" :model="form" label-width="80px" :rules="rules">
<el-row :gutter="20"> <el-row :gutter="20"> <el-col :span="24"> <el-form-item label="题目 " ref="cont" prop="cont"> <el-input :readonly="readonly" v-model="form.cont"></el-input>
<el-col :span="24"> </el-form-item> </el-col>
<el-form-item label="题目 " ref="cont" prop="cont">
<el-input :readonly="readonly" v-model="form.cont" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="试题类型 " ref="type" prop="type"> <el-form-item label="试题类型 " ref="type" prop="type">
<!-- <el-input :readonly="readonly" v-model="form.type" ></el-input> --> <!-- <el-input :readonly="readonly" v-model="form.type" ></el-input> --> <RelSelect :readonly="readonly" filterable style="width: 100%;" clearable src='aqgl/pxgl/pxst/init/type'
<RelSelect :readonly="readonly" filterable style="width: 100%;" clearable src='aqgl/pxgl/pxst/init/type' :match="{value:'id',label:'name'}" v-model='form.type' ></RelSelect> :match="{value:'id',label:'name'}" v-model='form.type'></RelSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="题库编码" ref="mid" prop="mid"> <el-form-item label="题库编码" ref="mid" prop="mid">
<!-- <el-input :readonly="readonly" v-model="form.mid" ></el-input> --> <!-- <el-input :readonly="readonly" v-model="form.mid" ></el-input> --> <RelSelect :readonly="readonly" filterable style="width: 100%;" clearable src='aqgl/pxgl/pxxm/query'
<RelSelect :readonly="readonly" filterable style="width: 100%;" clearable src='aqgl/pxgl/pxxm/query' :match="{value:'id',label:'name'}" v-model='form.mid' ></RelSelect> :match="{value:'id',label:'name'}" v-model='form.mid'></RelSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20"> <el-col :span="12">
<el-col :span="12">
<el-form-item label="选项A" ref="opta" prop="opta"> <el-form-item label="选项A" ref="opta" prop="opta">
<el-input :readonly="readonly" v-model="form.opta" ></el-input> <el-input :readonly="readonly" v-model="form.opta"></el-input> </el-form-item> </el-col>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选项B" ref="optb" prop="optb"> <el-form-item label="选项B" ref="optb" prop="optb">
<el-input :readonly="readonly" v-model="form.optb" ></el-input> <el-input :readonly="readonly" v-model="form.optb"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选项C" ref="optc" prop="optc"> <el-form-item label="选项C" ref="optc" prop="optc">
<el-input :readonly="readonly" v-model="form.optc" ></el-input> <el-input :readonly="readonly" v-model="form.optc"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选项D" ref="optd" prop="optd"> <el-form-item label="选项D" ref="optd" prop="optd">
<el-input :readonly="readonly" v-model="form.optd" ></el-input> <el-input :readonly="readonly" v-model="form.optd"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选项E" ref="opte" prop="opte"> <el-form-item label="选项E" ref="opte" prop="opte">
<el-input :readonly="readonly" v-model="form.opte" ></el-input> <el-input :readonly="readonly" v-model="form.opte"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选项F" ref="optf" prop="optf"> <el-form-item label="选项F" ref="optf" prop="optf">
<el-input :readonly="readonly" v-model="form.optf" ></el-input> <el-input :readonly="readonly" v-model="form.optf"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="答案" ref="ans" prop="ans"> <el-form-item label="答案" ref="ans" prop="ans">
<el-input :readonly="readonly" v-model="form.ans" ></el-input> <el-input :readonly="readonly" v-model="form.ans"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="答案描述" ref="desc" prop="desc"> <el-form-item label="答案描述" ref="desc" prop="desc">
<el-input type="textarea" :readonly="readonly" v-model="form.desc" ></el-input> <el-input type="textarea" :readonly="readonly" v-model="form.desc"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" ref="bz" prop="bz"> <el-form-item label="备注" ref="bz" prop="bz">
<el-input type="textarea" :readonly="readonly" v-model="form.bz" ></el-input> <el-input type="textarea" :readonly="readonly" v-model="form.bz"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
<el-form-item label="系统版本" ref="sysversion" prop="sysversion"> <el-form-item label="系统版本" ref="sysversion" prop="sysversion">
<el-input :readonly="readonly" v-model="form.sysversion" ></el-input> <el-input :readonly="readonly" v-model="form.sysversion" ></el-input>
</el-form-item> </el-form-item>
...@@ -82,7 +75,9 @@ ...@@ -82,7 +75,9 @@
</RelDialog> </RelDialog>
</template> </template>
<script> <script>
import {editMixin} from 'common' import {
editMixin
} from 'common'
export default { export default {
mixins: [editMixin], mixins: [editMixin],
/* 存放index页面传递的额外参数*/ /* 存放index页面传递的额外参数*/
...@@ -102,38 +97,48 @@ ...@@ -102,38 +97,48 @@
bmList: [], bmList: [],
/* 当前表单初始值,默认由RelDialog查询indexQuery赋值,copy时不赋值id,初始化时所有query的值都会赋值给form*/ /* 当前表单初始值,默认由RelDialog查询indexQuery赋值,copy时不赋值id,初始化时所有query的值都会赋值给form*/
form: { form: { cont: '',
cont:'',
//ID //ID
id:'', id: '',
//试题类型 //试题类型
type:'', type: '',
//题库编码 //题库编码
mid:'', mid: '',
//选项A //选项A
opta:'', opta: '',
//选项B //选项B
optb:'', optb: '',
//选项C //选项C
optc:'', optc: '',
//选项D //选项D
optd:'', optd: '',
//选项E //选项E
opte:'', opte: '',
//选项F //选项F
optf:'', optf: '',
//答案 //答案
ans:'', ans: '',
//答案描述 //答案描述
desc:'', desc: '',
//备注 //备注
bz:'', bz: '',
}, },
/* form提交时的规则,具体规则参考官网*/ /* form提交时的规则,具体规则参考官网*/
rules: { rules: {
cont: [{
required: true
}, ],
type: [{
required: true
}, ],
mid: [{
required: true
}, ],
ans: [{
required: true
}, ]
} }
} }
}, },
......
...@@ -25,8 +25,47 @@ ...@@ -25,8 +25,47 @@
</div> </div>
</template> </template>
<script> <script>
import {
/* 测试*/
doQuery,
doAdd,
doUpdate,
doDelete,
pxxmQuery,
excelimport
} from '@/api/train/questionManage';
import Subject from './subject' import Subject from './subject'
export default{ export default{
created(){
let type={
'S':'DXT',
'F':'TKT',
'J':'PDT',
'M':'DXTS'
}
doQuery().then(res=>{
let oList=res.data.records||[]
/* 构建subjectList*/
this.subjectList=oList.map(item=>{
let newobj=Object.create({})
newobj.id=item.id
newobj.score=item.score||'暂无分值'
newobj.type=type[item.type]
newobj.subject=item.cont||'未设置问题'
newobj.options=Object.create({})
item['opta']&&(newobj.options.A=item.opta)
item['optb']&&(newobj.options.B=item.optb)
item['optc']&&(newobj.options.C=item.optc)
item['optd']&&(newobj.options.D=item.optd)
item['opte']&&(newobj.options.E=item.opte)
item['optf']&&(newobj.options.F=item.optf)
return newobj
})
})
},
mounted() { mounted() {
this.getRemain() this.getRemain()
...@@ -81,140 +120,7 @@ ...@@ -81,140 +120,7 @@
remaining:'', remaining:'',
title:'专八仪表考试测试1128(在线考试)', title:'专八仪表考试测试1128(在线考试)',
that:this, that:this,
subjectList:[ subjectList:[]
{id:'AE89',
subject:'下列营养物质中在人体不能产生能量的为',
score:'2',
type:'DXTS',
options:{
A:'蔗糖',
B:'果糖',
C:'木质素',
D:'酪蛋白'
}
},
{
id:'AE891',
subject:'从业人员在职业活动中,以公平、对等的态度对待领导、同事和顾客等人的行为是()',
score:'5',
type:'TKT',
options:{
}
},
{
id:'AE8914',
subject:'对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。',
score:'2',
type:'DXT',
options:{
A:'1个',
B:'2个',
C:'3个',
D:'4个',
E:'5个'
}
},
{id:'AE89',
subject:'下列营养物质中在人体不能产生能量的为',
score:'2',
type:'DXT',
options:{
A:'蔗糖',
B:'果糖',
C:'木质素',
D:'酪蛋白'
}
},
{
id:'AE891',
subject:'从业人员在职业活动中,以公平、对等的态度对待领导、同事和顾客等人的行为是()',
score:'5',
type:'TKT',
options:{
}
},
{
id:'AE8914',
subject:'对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。',
score:'2',
type:'DXTS',
options:{
A:'1个',
B:'2个',
C:'3个',
D:'4个',
E:'5个'
}
},
{id:'AE89',
subject:'下列营养物质中在人体不能产生能量的为',
score:'2',
type:'DXT',
options:{
A:'蔗糖',
B:'果糖',
C:'木质素',
D:'酪蛋白'
}
},
{
id:'AE891',
subject:'众所周知,()是世界上最帅的人。',
score:'5',
type:'TKT',
options:{
}
},
{
id:'AE8914',
subject:'对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。',
score:'2',
type:'DXTS',
options:{
A:'1个',
B:'2个',
C:'3个',
D:'4个',
E:'5个'
}
},
{id:'AE89',
subject:'下列营养物质中在人体不能产生能量的为',
score:'2',
type:'DXT',
options:{
A:'蔗糖',
B:'果糖',
C:'木质素',
D:'酪蛋白'
}
},
{
id:'AE891',
subject:'从业人员在职业活动中,以公平、对等的态度对待领导、同事和顾客等人的行为是()',
score:'5',
type:'TKT',
options:{
}
},
{
id:'AE8914',
subject:'对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。',
score:'2',
type:'DXT',
options:{
A:'1个',
B:'2个',
C:'3个',
D:'4个',
E:'5个'
}
}
]
} }
} }
} }
......
<template> <template>
<div class="examMain" :title="subject"> <div class="examMain">
<!-- 试题题目--> <!-- 试题题目-->
<template v-if="type!='TKT'"> <template v-if="type!='TKT'">
<span>{{`${index}.`}}</span> <span>{{`${index}.`}}</span>
...@@ -28,7 +28,12 @@ ...@@ -28,7 +28,12 @@
</el-checkbox-group> </el-checkbox-group>
</div> </div>
</div> </div>
<!-- 判断题 -->
<div v-if="type=='PDT'" class="options">
<div class="item" :key="index" v-for="(item,index) in options">
<el-radio v-model="value" :label="index"> {{`${index}.${item}`}}</el-radio>
</div>
</div>
</div> </div>
</template> </template>
...@@ -90,8 +95,10 @@ ...@@ -90,8 +95,10 @@
}, },
methods:{ methods:{
transTKT(val,fn){ transTKT(val,fn){
let nval
let template=`<input type='text' name='tktinput' class='tktinput'>` let template=`<input type='text' name='tktinput' class='tktinput'>`
let nval=val.replace('()',template) /* 判断有无()*/
val.indexOf('()')==-1?( nval=val+template):( nval=val.replace('()',template))
return nval return nval
} }
}, },
...@@ -100,7 +107,8 @@ ...@@ -100,7 +107,8 @@
let typeArry={ let typeArry={
'DXT':'(单选题)', 'DXT':'(单选题)',
'DXTS':'(多选题)', 'DXTS':'(多选题)',
'TKT':'(填空题)' 'TKT':'(填空题)',
'PDT':'(判断题)'
} }
let nval=typeArry[val] let nval=typeArry[val]
return nval||'其他' return nval||'其他'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment