fix : 修改考试中 试题的备注
This commit is contained in:
parent
38ce78b8ee
commit
a371730008
|
@ -23,7 +23,10 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</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" />
|
@pagination="getList" />
|
||||||
<el-dialog :visible.sync="dialogVisible" :title="dialogType === 'edit' ? '编辑分类' : '新增分类'">
|
<el-dialog :visible.sync="dialogVisible" :title="dialogType === 'edit' ? '编辑分类' : '新增分类'">
|
||||||
<el-form :model="questioncat" label-width="80px" label-position="right" :rules="rule1" ref="commonForm">
|
<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="danger" @click="dialogVisible = false">取消</el-button>
|
||||||
<el-button type="primary" @click="confirm('commonForm')">确认</el-button>
|
<el-button type="primary" @click="confirm('commonForm')">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -84,21 +88,20 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
checkPermission,
|
checkPermission,
|
||||||
|
|
||||||
getList(query = this.listQuery) {
|
getList() {
|
||||||
this.listLoading = true;
|
this.listLoading = true;
|
||||||
getQuestioncatList(query).then(response => {
|
getQuestioncatList(this.listQuery).then(response => {
|
||||||
this.tableData = response.data.results;
|
this.tableData = response.data.results;
|
||||||
this.total = response.data.count;
|
this.total = response.data.count;
|
||||||
this.listLoading = false;
|
this.listLoading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
resetFilter() {
|
resetFilter() {
|
||||||
this.search = ""
|
|
||||||
this.listQuery = listQuery
|
this.listQuery = listQuery
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
handleFilter() {
|
handleFilter() {
|
||||||
|
this.listQuery.page = 1;
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
|
|
|
@ -10,8 +10,17 @@
|
||||||
@change="handleFilter">
|
@change="handleFilter">
|
||||||
<el-option v-for="item in typeOptions" :key="item.key" :label="item.label" :value="item.value" />
|
<el-option v-for="item in typeOptions" :key="item.key" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</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" />
|
@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-search" @click="handleSearch">搜索</el-button>
|
||||||
<el-button class="filter-item" type="primary" icon="el-icon-refresh-left" @click="resetFilter">刷新重置
|
<el-button class="filter-item" type="primary" icon="el-icon-refresh-left" @click="resetFilter">刷新重置
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -103,16 +112,17 @@
|
||||||
<el-tag v-else type="danger">否</el-tag>
|
<el-tag v-else type="danger">否</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<el-table-column label="创建日期" sortable='custom' prop="create_time">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.create_time }}</span>
|
<span>{{ scope.row.create_time }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="操作">
|
<el-table-column align="center" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="primary" size="small" @click="handleDetail(scope)" icon="el-icon-more"></el-button>
|
<el-button type="primary" size="small" @click="handleDetail(scope)" icon="el-icon-more"></el-button>
|
||||||
|
@ -122,7 +132,10 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</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" />
|
@pagination="getList" />
|
||||||
<el-dialog title="题目详情" :visible.sync="dialogVisible" width="30%">
|
<el-dialog title="题目详情" :visible.sync="dialogVisible" width="30%">
|
||||||
<div>{{ question.type }}</div>
|
<div>{{ question.type }}</div>
|
||||||
|
@ -164,7 +177,9 @@ const listQuery = {
|
||||||
page: 1,
|
page: 1,
|
||||||
page_size: 20,
|
page_size: 20,
|
||||||
search: '',
|
search: '',
|
||||||
questioncat:''
|
questioncat:'',
|
||||||
|
year:'',
|
||||||
|
type:''
|
||||||
};
|
};
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
|
@ -237,8 +252,8 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getQuestioncatList() {
|
getQuestioncatList() {
|
||||||
getQuestioncatList().then(response => {
|
getQuestioncatList({page:0}).then(response => {
|
||||||
this.questioncatData = response.data.results;
|
this.questioncatData = response.data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleImport(){
|
handleImport(){
|
||||||
|
|
|
@ -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='试卷类型'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -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='真题年份'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -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='真题年份和备注'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -40,7 +40,7 @@ class Question(CommonADModel):
|
||||||
right = JSONField(verbose_name='正确答案')
|
right = JSONField(verbose_name='正确答案')
|
||||||
resolution = models.TextField(verbose_name='解析', blank=True)
|
resolution = models.TextField(verbose_name='解析', blank=True)
|
||||||
enabled = models.BooleanField('是否启用', default=False)
|
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:
|
class Meta:
|
||||||
verbose_name = '题目'
|
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)
|
name = models.CharField(max_length=200, verbose_name='名称', unique=True)
|
||||||
questions = models.ManyToManyField(Question, through='PaperQuestion', null=True, blank=True)
|
questions = models.ManyToManyField(Question, through='PaperQuestion', null=True, blank=True)
|
||||||
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')
|
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')
|
||||||
|
|
|
@ -79,8 +79,9 @@ class QuestionViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
||||||
perms_map = {'get': '*', 'post':'question', 'put':'question', 'delete':'question'}
|
perms_map = {'get': '*', 'post':'question', 'put':'question', 'delete':'question'}
|
||||||
queryset = Question.objects.all()
|
queryset = Question.objects.all()
|
||||||
serializer_class = QuestionSerializer
|
serializer_class = QuestionSerializer
|
||||||
filterset_fields = ['level', 'type', 'year', 'questioncat']
|
filterset_fields = ['level', 'type', 'questioncat']
|
||||||
search_fields = ['name', 'options', 'resolution']
|
search_fields = ['name', 'options', 'resolution', 'create_time', 'year']
|
||||||
|
ordering = ['-create_time']
|
||||||
|
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue