From e2728ce8f771020d1a45283eab7731a0e4c07987 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Fri, 14 Feb 2025 16:05:54 +0800 Subject: [PATCH] feat: Support sorting feat for knowledge base documents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1017634 --user=刘瑞斌 知识库文档列表排序功能,可以根据各列属性排序 https://www.tapd.cn/57709429/s/1654419 --- .../serializers/document_serializers.py | 7 ++++- ui/src/views/document/index.vue | 27 ++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/apps/dataset/serializers/document_serializers.py b/apps/dataset/serializers/document_serializers.py index b711182b..811c5562 100644 --- a/apps/dataset/serializers/document_serializers.py +++ b/apps/dataset/serializers/document_serializers.py @@ -411,6 +411,7 @@ class DocumentSerializers(ApiMixin, serializers.Serializer): is_active = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('document is active'))) task_type = serializers.IntegerField(required=False, error_messages=ErrMessage.integer(_('task type'))) status = serializers.CharField(required=False, error_messages=ErrMessage.char(_('status'))) + order_by = serializers.CharField(required=False, error_messages=ErrMessage.char(_('order by'))) def get_query_set(self): query_set = QuerySet(model=Document) @@ -437,7 +438,11 @@ class DocumentSerializers(ApiMixin, serializers.Serializer): query_set = query_set.filter(status__icontains=status) else: query_set = query_set.filter(status__iregex='^[2n]*$') - query_set = query_set.order_by('-create_time', 'id') + order_by = self.data.get('order_by', '') + if order_by: + query_set = query_set.order_by(order_by) + else: + query_set = query_set.order_by('-create_time', 'id') return query_set def list(self, with_valid=False): diff --git a/ui/src/views/document/index.vue b/ui/src/views/document/index.vue index bac51f31..3b3b712d 100644 --- a/ui/src/views/document/index.vue +++ b/ui/src/views/document/index.vue @@ -58,12 +58,18 @@ @creatQuick="creatQuickHandle" @row-click="rowClickHandle" @selection-change="handleSelectionChange" + @sort-change="handleSortChange" v-loading="loading" :row-key="(row: any) => row.id" :storeKey="storeKey" > - +