fix : 修改考试中 试题的备注

This commit is contained in:
zty 2024-08-27 18:02:54 +08:00
parent 38ce78b8ee
commit a371730008
7 changed files with 84 additions and 37 deletions

View File

@ -23,7 +23,10 @@
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.page_size"
<pagination v-show="total > 0"
:total="total"
:page.sync="listQuery.page"
:limit.sync="listQuery.page_size"
@pagination="getList" />
<el-dialog :visible.sync="dialogVisible" :title="dialogType === 'edit' ? '编辑分类' : '新增分类'">
<el-form :model="questioncat" label-width="80px" label-position="right" :rules="rule1" ref="commonForm">
@ -35,6 +38,7 @@
<el-button type="danger" @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="confirm('commonForm')">确认</el-button>
</div>
</el-dialog>
</div>
</template>
@ -84,21 +88,20 @@ export default {
methods: {
checkPermission,
getList(query = this.listQuery) {
getList() {
this.listLoading = true;
getQuestioncatList(query).then(response => {
getQuestioncatList(this.listQuery).then(response => {
this.tableData = response.data.results;
this.total = response.data.count;
this.listLoading = false;
});
},
resetFilter() {
this.search = ""
this.listQuery = listQuery
this.getList();
},
handleFilter() {
this.listQuery.page = 1;
this.getList();
},
handleAdd() {

View File

@ -10,8 +10,17 @@
@change="handleFilter">
<el-option v-for="item in typeOptions" :key="item.key" :label="item.label" :value="item.value" />
</el-select>
<el-input v-model="listQuery.search" placeholder="输入题干进行搜索" style="width: 200px;" class="filter-item"
<!-- <el-input v-model="listQuery.search" placeholder="备注"
clearable
style="width: 200px;"
class="filter-item"
@keyup.enter.native="handleSearch" />
-->
<el-input v-model="listQuery.search" placeholder="输入题干、备注或创建日期搜索"
style="width: 200px;"
class="filter-item"
clearable
@keyup.enter.native="handleSearch" />
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
<el-button class="filter-item" type="primary" icon="el-icon-refresh-left" @click="resetFilter">刷新重置
</el-button>
@ -103,16 +112,17 @@
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column label="真题年份">
<template slot-scope="scope">
<span v-if="scope.row.year">{{ scope.row.year }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" sortable='custom' prop="create_time">
<template slot-scope="scope">
<span>{{ scope.row.create_time }}</span>
</template>
</el-table-column>
<el-table-column label="备注">
<template slot-scope="scope">
<span v-if="scope.row.year">{{ scope.row.year }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handleDetail(scope)" icon="el-icon-more"></el-button>
@ -122,7 +132,10 @@
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.page_size"
<pagination v-show="total > 0"
:total="total"
:page.sync="listQuery.page"
:limit.sync="listQuery.page_size"
@pagination="getList" />
<el-dialog title="题目详情" :visible.sync="dialogVisible" width="30%">
<div>{{ question.type }}</div>
@ -164,7 +177,9 @@ const listQuery = {
page: 1,
page_size: 20,
search: '',
questioncat:''
questioncat:'',
year:'',
type:''
};
export default {
components: { Pagination },
@ -237,8 +252,8 @@ export default {
});
},
getQuestioncatList() {
getQuestioncatList().then(response => {
this.questioncatData = response.data.results;
getQuestioncatList({page:0}).then(response => {
this.questioncatData = response.data;
});
},
handleImport(){

View File

@ -1,18 +0,0 @@
# Generated by Django 3.2.12 on 2024-06-24 03:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('exam', '0005_alter_paper_questions'),
]
operations = [
migrations.AlterField(
model_name='paper',
name='paper_types',
field=models.IntegerField(choices=[(10, '押题'), (20, '抽考')], default=10, verbose_name='试卷类型'),
),
]

View File

@ -0,0 +1,28 @@
# Generated by Django 3.2.12 on 2024-08-27 09:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('exam', '0005_alter_paper_questions'),
]
operations = [
migrations.AlterField(
model_name='paper',
name='category',
field=models.ManyToManyField(blank=True, null=True, related_name='paper_category', to='exam.Questioncat', verbose_name='题库分类'),
),
migrations.AlterField(
model_name='paper',
name='paper_types',
field=models.CharField(choices=[('押题', '押题'), ('抽考', '抽考')], default='押题', max_length=50, verbose_name='试卷类型'),
),
migrations.AlterField(
model_name='question',
name='year',
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='真题年份'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2024-08-27 09:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('exam', '0006_auto_20240827_1731'),
]
operations = [
migrations.AlterField(
model_name='question',
name='year',
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='真题年份和备注'),
),
]

View File

@ -40,7 +40,7 @@ class Question(CommonADModel):
right = JSONField(verbose_name='正确答案')
resolution = models.TextField(verbose_name='解析', blank=True)
enabled = models.BooleanField('是否启用', default=False)
year = models.IntegerField('真题年份', null=True, blank=True)
year = models.CharField(max_length=200, verbose_name='真题年份和备注', null=True, blank=True)
class Meta:
verbose_name = '题目'
@ -56,7 +56,7 @@ class Paper(CommonAModel):
('抽考', '抽考'),
)
paper_types = models.CharField(default='押题', max_length=50,choices=cate_types, verbose_name='试卷类型')
paper_types = models.CharField(default='押题', max_length=50, choices=cate_types, verbose_name='试卷类型')
name = models.CharField(max_length=200, verbose_name='名称', unique=True)
questions = models.ManyToManyField(Question, through='PaperQuestion', null=True, blank=True)
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')

View File

@ -79,8 +79,9 @@ class QuestionViewSet(CreateUpdateCustomMixin, ModelViewSet):
perms_map = {'get': '*', 'post':'question', 'put':'question', 'delete':'question'}
queryset = Question.objects.all()
serializer_class = QuestionSerializer
filterset_fields = ['level', 'type', 'year', 'questioncat']
search_fields = ['name', 'options', 'resolution']
filterset_fields = ['level', 'type', 'questioncat']
search_fields = ['name', 'options', 'resolution', 'create_time', 'year']
ordering = ['-create_time']
def destroy(self, request, *args, **kwargs):
"""