题目新增、编辑下标显示问题,课程列表显示课程类别

This commit is contained in:
18571350067 2021-11-30 21:38:26 +08:00
parent ef74dfef4a
commit 9aef31c7cb
4 changed files with 143 additions and 102 deletions

View File

@ -3,7 +3,7 @@
<a-descriptions layout="horizontal" bordered size="small" :column="1">
<a-descriptions-item label="课程编号"> {{ detailData.courseCode }} </a-descriptions-item>
<a-descriptions-item label="课程名称"> {{ detailData.courseName }} </a-descriptions-item>
<a-descriptions-item label="课程类别" v-for="(item,index) in dictCourseType" :key="index" :value="item.value"> {{ item.name }} </a-descriptions-item>
<a-descriptions-item label="课程类别"> {{detailData.courseTypeName}} </a-descriptions-item>
<a-descriptions-item label="课时"> {{ detailData.hour }} </a-descriptions-item>
<a-descriptions-item label="学习内容"> {{ detailData.learningContent }} </a-descriptions-item>
<a-descriptions-item label="试题数量"> {{ detailData.questionCount }} </a-descriptions-item>
@ -13,6 +13,11 @@
<img :src="detailData.coverPath">
</div>
</a-descriptions-item>
<a-descriptions-item label="标签">
<a-tag color="blue" v-for="(item,index) in detailData.tags" :key="index ">
{{item}}
</a-tag>
</a-descriptions-item>
</a-descriptions>
<div class="buttonGroup">
<a-button type="primary" @click="close"> 返回 </a-button>
@ -32,17 +37,20 @@ export default {
detailData: {
coverPath: [],
},
dictCourseType:[]
dictCourseType: [],
dictCourseTag: [],
tags:[] //
}
},
created: function () {
let parameter = {}
getCourseDetails(Object.assign(parameter, this.queryParam)).then((res) => {
this.detailData = res.data
console.log(this.detailData)
})
//
this.dictionaryDropDown();
this.dictionaryDropDown()
this.getTagName();
},
methods: {
close() {
@ -54,12 +62,35 @@ export default {
//
dictionaryDropDown() {
this.formLoading = true
//
dictionaryDropDown({ dictionaryCode: '0006' }).then((res) => {
this.dictCourseType = res.data
this.formLoading = false
})
dictionaryDropDown({ dictionaryCode: '0006' }).then((res) => {
this.dictCourseType = res.data
//valuename
for (let i = 0; i < this.dictCourseType.length; i++) {
if (this.dictCourseType[i].value == this.detailData.courseType) {
this.detailData.courseTypeName = this.dictCourseType[i].name
}
}
})
},
getTagName() {
dictionaryDropDown({ dictionaryCode: '0008' }).then((res) => {
this.dictCourseTag = res.data
console.log(this.dictCourseTag);
let tags = [];
for (let i = 0; i < this.dictCourseTag.length; i++) {
for (let j = 0; j < this.detailData.courseTags.length; j++) {
if(this.dictCourseTag[i].value == this.detailData.courseTags[j].dictValue){
tags.push(this.dictCourseTag[i].name);
}
}
}
console.log('tagagagaga',tags);
this.detailData.tags = tags;
})
},
},
}

View File

@ -56,7 +56,7 @@ export default {
columns: [
{ title: '课程编号', width: '160px', align: 'center', dataIndex: 'courseCode', key: 'courseCode' },
{ title: '课程名称', width: 'auto', align: 'center', dataIndex: 'courseName', key: 'courseName' },
{ title: '课程类别', width: 'auto', align: 'center', dataIndex: 'courseType', key: 'courseType' },
{ title: '课程类别', width: 'auto', align: 'center', dataIndex: 'courseTypeName', key: 'courseTypeName' },
{ title: '课时/分', width: '160px', align: 'center', dataIndex: 'hour', key: 'hour' },
{ title: '数量', width: '160px', align: 'center', dataIndex: 'questionCount', key: 'questionCount' },
{ title: '操作', key: 'operation', width: '300px', align: 'center', scopedSlots: { customRender: 'action' } },
@ -73,6 +73,7 @@ export default {
//
dictionaryDropDown({ dictionaryCode: '0006' }).then((res) => {
console.log('课程类别----',res)
this.queryOptions[1].options = dictToTree(res.data, [], 0);
})

View File

@ -51,48 +51,48 @@
<a-textarea placeholder="" :rows="6" v-model="multiselect.questionName" style="width: 100%" />
</a-card>
<a-checkbox-group @change="onChange" :value="checkedValues" style="width: 100%">
<a-card :bordered="false">
<template slot="title">
选项从选项中选择一个作为答案<br />A &nbsp;&nbsp;
<a-checkbox value="A">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerA" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
B &nbsp;&nbsp;
<a-checkbox value="B">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerB" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
C &nbsp;&nbsp;
<a-checkbox value="C">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerC" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
D &nbsp;&nbsp;
<a-checkbox value="D">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerD" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
E &nbsp;&nbsp;
<a-checkbox value="E">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerE" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
F &nbsp;&nbsp;
<a-checkbox value="F">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerF" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
选项从选项中选择一个作为答案<br />A &nbsp;&nbsp;
<a-checkbox value="A">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerA" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
B &nbsp;&nbsp;
<a-checkbox value="B">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerB" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
C &nbsp;&nbsp;
<a-checkbox value="C">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerC" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
D &nbsp;&nbsp;
<a-checkbox value="D">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerD" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
E &nbsp;&nbsp;
<a-checkbox value="E">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerE" style="width: 100%" />
</a-card>
<a-card :bordered="false">
<template slot="title">
F &nbsp;&nbsp;
<a-checkbox value="F">答案</a-checkbox>
</template>
<a-textarea placeholder="" :rows="6" v-model="multiselect.answerF" style="width: 100%" />
</a-card>
</a-checkbox-group>
<a-card title="答案解析" :bordered="false">
<a-textarea placeholder="" :rows="6" v-model="multiselect.asnwerParse" style="width: 100%" />
@ -162,12 +162,14 @@
<script>
import { questionAdd, getQuestionDeatil } from '@/api/course/question/question'
import { getQuestionListByCourseId } from '@/api/course/course'
export default {
components: {},
data() {
return {
checkedValues:[],
isactive:this.$route.query.isactive,
quesitonList: [],
checkedValues: [],
radio: {},
multiselect: {},
estimate: {},
@ -192,9 +194,9 @@ export default {
this.radio.disabled = false
} else if (this.tabKey == '2') {
this.multiselect = res.data
console.log('c---------------s------------',this.multiselect)
if(this.multiselect.rightAnswers) this.checkedValues = this.multiselect.rightAnswers.split('')
console.log('arr',this.checkedValues)
console.log('c---------------s------------', this.multiselect)
if (this.multiselect.rightAnswers) this.checkedValues = this.multiselect.rightAnswers.split('')
console.log('arr', this.checkedValues)
this.multiselect.disabled = false
} else if (this.tabKey == '3') {
this.estimate = res.data
@ -217,7 +219,8 @@ export default {
query: {
id: this.$route.query.courseId,
questionId: this.$route.query.id,
isactive: this.$route.query.isactive,
isactive: this.isactive,
opt: this.$route.query.opt
},
})
},
@ -271,11 +274,25 @@ export default {
from.courseId = this.$route.query.courseId
questionAdd(from).then((res) => {
this.$message.success('新增题目成功!')
this.close()
if (res.code == 200) {
this.$message.success('新增题目成功!')
// this.getQuestion()
this.close()
} else {
this.$message.error('新增题目成功!')
}
})
},
//
// getQuestion() {
// getQuestionListByCourseId({ id: this.$route.query.courseId }).then((res) => {
// if (!this.$route.query.id) {
// this.isactive = res.data.length - 1
// }
// })
// },
//
radioV() {
//
@ -314,8 +331,8 @@ export default {
//
onChange(checkedValues) {
console.log('checked = ', checkedValues);
this.checkedValues = checkedValues;
console.log('checked = ', checkedValues)
this.checkedValues = checkedValues
},
//
@ -352,17 +369,16 @@ export default {
from.questionType = 2
from.rightAnswers = ''
console.log('this.checkedValues',this.checkedValues)
console.log('this.checkedValues', this.checkedValues)
if (this.checkedValues.length < 1 || this.checkedValues.length == 0) {
this.$message.error('请选择正确答案!')
return false
}
for(let i = 0 ; i<this.checkedValues.length; i++) from.rightAnswers =from.rightAnswers+this.checkedValues[i];
for (let i = 0; i < this.checkedValues.length; i++) from.rightAnswers = from.rightAnswers + this.checkedValues[i]
console.log("rightAnswers",from.rightAnswers);
console.log('rightAnswers', from.rightAnswers)
return from
},
@ -414,7 +430,6 @@ export default {
from.questionType = 5
return from
},
},
}
</script>

View File

@ -6,13 +6,7 @@
<div class="questionLeft">
<h1 class="questionNumber">题序</h1>
<!-- 题目序号 -->
<div
v-for="(item, index) in quesitonList"
:key="item"
class="questionLeftItem"
@click="quesionId(item, index)"
:class="{ active_color: index == isactive }"
>
<div v-for="(item, index) in quesitonList" :key="item" class="questionLeftItem" @click="quesionId(item, index)" :class="{ active_color: index == isactive }">
{{ index + 1 }}
</div>
</div>
@ -20,27 +14,11 @@
<div class="questionDetail">
<br />
<div>
<a-button
type="primary"
class="create-button"
style="font-size: 15px; margin: 0px 10px 10px 0px"
@click="questionSave"
>新增题目</a-button
>
<a-button
type="primary"
class="create-button"
style="font-size: 15px; margin: 0px 10px 10px 0px"
@click="questionBatch"
>
<a-button type="primary" class="create-button" style="font-size: 15px; margin: 0px 10px 10px 0px" @click="questionSave">新增题目</a-button>
<a-button type="primary" class="create-button" style="font-size: 15px; margin: 0px 10px 10px 0px" @click="questionBatch">
批量导入
</a-button>
<a-button
type="primary"
class="create-button"
style="font-size: 15px; margin: 0px 10px 10px 0px"
@click="showModal"
>
<a-button type="primary" class="create-button" style="font-size: 15px; margin: 0px 10px 10px 0px" @click="showModal">
模板下载
</a-button>
<a-modal v-model="visible" title="模板下载" cancelText="关闭" :ok-button-props="{ style: { display: 'none' } }">
@ -48,7 +26,9 @@
<a-button type="primary" class="create-button" style="font-size: 15px; margin:-15px 30px 3px 70px" @click="questionBatchDownload">纯净模板</a-button>
</a-modal>
</div>
<b><h1 class="questionContent">课程题目库预览</h1></b>
<b>
<h1 class="questionContent">课程题目库预览</h1>
</b>
<a-divider :style="{ backgroundColor: '#000' }" />
<div class="question">
<h1 class="questionName" v-if="quesitonList != null && quesitonList.length != 0">
@ -111,6 +91,7 @@ export default {
questionDetail: {},
isactive: 1,
visible: false,
add:'add',
}
},
@ -124,7 +105,20 @@ export default {
this.quesitonList = res.data
if (!res.data) return
this.quesionId(this.$route.query.questionId || this.quesitonList[0], this.$route.query.isactive || 0)
let questionId = 0, index = 0;
if(this.$route.query.questionId){
questionId = this.$route.query.questionId
index = this.$route.query.isactive;
} else if(this.$route.query.opt){
questionId = this.quesitonList[this.quesitonList.length-1];
index = this.quesitonList.length-1;
} else{
questionId = this.quesitonList[0];
index = 0;
}
this.quesionId(questionId, index)
})
},
@ -163,8 +157,8 @@ export default {
query: {
courseId: this.$route.query.id,
isactive: this.isactive,
id: this.questionId,
opt: 'add',
// id: this.questionId,
opt: this.add,
},
})
},
@ -185,10 +179,10 @@ export default {
deleteQuestion({ id: id }).then((res) => {
if (res.code == 200) {
this.getQuestion()
this.$message.success('删除成功!');
}else{
this.getQuestion();
this.$message.error('后台报错了~');
this.$message.success('删除成功!')
} else {
this.getQuestion()
this.$message.error('后台报错了~')
}
})
},