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