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"
>
-
+
{{ numberFormat(row.char_length) }}
@@ -87,6 +94,7 @@
:label="$t('views.document.table.paragraph')"
align="right"
min-width="90"
+ sortable
/>
@@ -242,7 +250,12 @@
{{ $t(hitHandlingMethod[row.hit_handling_method as keyof typeof hitHandlingMethod]) }}
-
+
{{ datetimeFormat(row.create_time) }}
@@ -251,6 +264,7 @@
prop="update_time"
:label="$t('views.document.table.updateTime')"
width="175"
+ sortable
>
{{ datetimeFormat(row.update_time) }}
@@ -509,6 +523,7 @@ const loading = ref(false)
let interval: any
const filterText = ref('')
const filterMethod = ref({})
+const orderBy = ref('')
const documentData = ref([])
const currentMouseId = ref(null)
const datasetDetail = ref({})
@@ -805,10 +820,16 @@ function handleSizeChange() {
getList()
}
+function handleSortChange({ prop, order }: { prop: string; order: string }) {
+ orderBy.value = order === 'ascending' ? prop : `-${prop}`
+ getList()
+}
+
function getList(bool?: boolean) {
const param = {
...(filterText.value && { name: filterText.value }),
- ...filterMethod.value
+ ...filterMethod.value,
+ order_by: orderBy.value,
}
documentApi
.getDocument(id as string, paginationConfig.value, param, bool ? undefined : loading)