diff --git a/apps/trigger/serializers/trigger_task.py b/apps/trigger/serializers/trigger_task.py
index 3730d399e77..e25ce44de7d 100644
--- a/apps/trigger/serializers/trigger_task.py
+++ b/apps/trigger/serializers/trigger_task.py
@@ -76,12 +76,14 @@ def get_execution_details(self, is_valid=True):
class TriggerTaskRecordQuerySerializer(serializers.Serializer):
trigger_id = serializers.CharField(required=True, label=_("Trigger ID"))
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
- state = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger task'))
- name = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger task'))
+ state = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger state'))
+ name = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger name'))
+ order = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('Order field'))
def get_query_set(self):
trigger_query_set = QuerySet(
model=get_dynamics_model({
+ 'ett.create_time': models.DateTimeField(),
'ett.state': models.CharField(),
'sdc.name': models.CharField(),
'ett.workspace_id': models.CharField(),
@@ -89,6 +91,10 @@ def get_query_set(self):
}))
trigger_query_set = trigger_query_set.filter(
**{'ett.trigger_id': self.data.get("trigger_id")})
+ if self.data.get("order"):
+ trigger_query_set = trigger_query_set.order_by(self.data.get("order"))
+ else:
+ trigger_query_set = trigger_query_set.order_by("-ett.create_time")
if self.data.get('state'):
trigger_query_set = trigger_query_set.filter(**{'ett.state': self.data.get('state')})
if self.data.get("name"):
diff --git a/ui/src/views/trigger/execution-record/TriggerTaskRecordDrawer.vue b/ui/src/views/trigger/execution-record/TriggerTaskRecordDrawer.vue
index 1ca5e8d5957..b6079b68783 100644
--- a/ui/src/views/trigger/execution-record/TriggerTaskRecordDrawer.vue
+++ b/ui/src/views/trigger/execution-record/TriggerTaskRecordDrawer.vue
@@ -19,7 +19,7 @@
>([])
const query = ref({
state: '',
name: '',
+ order: '',
})
const loading = ref(false)
const current_trigger_id = ref()
@@ -210,7 +214,10 @@ const changeSize = () => {
paginationConfig.current_page = 1
getList()
}
-
+function handleSortChange({ prop, order }: { prop: string; order: string }) {
+ query.value.order = order === 'ascending' ? `ett.${prop}` : `-ett.${prop}`
+ getList()
+}
const getList = (isLoading?: boolean) => {
if (current_trigger_id.value) {
return triggerAPI