From a3717300083e92f66c53e1626b5730dda4db6254 Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 27 Aug 2024 18:02:54 +0800 Subject: [PATCH] =?UTF-8?q?fix=20:=20=E4=BF=AE=E6=94=B9=E8=80=83=E8=AF=95?= =?UTF-8?q?=E4=B8=AD=20=E8=AF=95=E9=A2=98=E7=9A=84=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/views/exam/classify.vue | 13 ++++--- client/src/views/exam/questions.vue | 35 +++++++++++++------ .../0006_alter_paper_paper_types.py | 18 ---------- .../migrations/0006_auto_20240827_1731.py | 28 +++++++++++++++ .../migrations/0007_alter_question_year.py | 18 ++++++++++ server/apps/exam/models.py | 4 +-- server/apps/exam/views.py | 5 +-- 7 files changed, 84 insertions(+), 37 deletions(-) delete mode 100644 server/apps/exam/migrations/0006_alter_paper_paper_types.py create mode 100644 server/apps/exam/migrations/0006_auto_20240827_1731.py create mode 100644 server/apps/exam/migrations/0007_alter_question_year.py diff --git a/client/src/views/exam/classify.vue b/client/src/views/exam/classify.vue index 03342a9..d32b342 100644 --- a/client/src/views/exam/classify.vue +++ b/client/src/views/exam/classify.vue @@ -23,7 +23,10 @@ - @@ -35,6 +38,7 @@ 取消 确认 + @@ -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() { diff --git a/client/src/views/exam/questions.vue b/client/src/views/exam/questions.vue index 22093fc..0b7d515 100644 --- a/client/src/views/exam/questions.vue +++ b/client/src/views/exam/questions.vue @@ -10,8 +10,17 @@ @change="handleFilter"> - + --> + 搜索 刷新重置 @@ -103,16 +112,17 @@ - - - + + + + -
{{ question.type }}
@@ -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(){ diff --git a/server/apps/exam/migrations/0006_alter_paper_paper_types.py b/server/apps/exam/migrations/0006_alter_paper_paper_types.py deleted file mode 100644 index 2e2ac3e..0000000 --- a/server/apps/exam/migrations/0006_alter_paper_paper_types.py +++ /dev/null @@ -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='试卷类型'), - ), - ] diff --git a/server/apps/exam/migrations/0006_auto_20240827_1731.py b/server/apps/exam/migrations/0006_auto_20240827_1731.py new file mode 100644 index 0000000..a499dd6 --- /dev/null +++ b/server/apps/exam/migrations/0006_auto_20240827_1731.py @@ -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='真题年份'), + ), + ] diff --git a/server/apps/exam/migrations/0007_alter_question_year.py b/server/apps/exam/migrations/0007_alter_question_year.py new file mode 100644 index 0000000..1fba582 --- /dev/null +++ b/server/apps/exam/migrations/0007_alter_question_year.py @@ -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='真题年份和备注'), + ), + ] diff --git a/server/apps/exam/models.py b/server/apps/exam/models.py index 04b89d9..d631baa 100644 --- a/server/apps/exam/models.py +++ b/server/apps/exam/models.py @@ -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='限时(分钟)') diff --git a/server/apps/exam/views.py b/server/apps/exam/views.py index 5a530c4..3b294d2 100644 --- a/server/apps/exam/views.py +++ b/server/apps/exam/views.py @@ -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): """