diff --git a/src/views/Logs/Dumps/Dumps.vue b/src/views/Logs/Dumps/Dumps.vue
index 81c9de0..77161d4 100644
--- a/src/views/Logs/Dumps/Dumps.vue
+++ b/src/views/Logs/Dumps/Dumps.vue
@@ -294,13 +294,13 @@
         this.allDumps,
         this.filterStartDate,
         this.filterEndDate,
-        'dateTime'
+        'dateTime',
       );
     },
     filteredDumps() {
       return this.getFilteredTableData(
         this.filteredDumpsByDate,
-        this.activeFilters
+        this.activeFilters,
       );
     },
   },
@@ -356,19 +356,19 @@
           .msgBoxConfirm(
             this.$tc(
               'pageDumps.modal.deleteDumpConfirmation',
-              this.selectedRows.length
+              this.selectedRows.length,
             ),
             {
               title: this.$tc(
                 'pageDumps.modal.deleteDump',
-                this.selectedRows.length
+                this.selectedRows.length,
               ),
               okTitle: this.$tc(
                 'pageDumps.modal.deleteDump',
-                this.selectedRows.length
+                this.selectedRows.length,
               ),
               cancelTitle: this.$t('global.action.cancel'),
-            }
+            },
           )
           .then((deleteConfrimed) => {
             if (deleteConfrimed) {
diff --git a/src/views/Logs/Dumps/DumpsForm.vue b/src/views/Logs/Dumps/DumpsForm.vue
index 07f4a06..0a9b058 100644
--- a/src/views/Logs/Dumps/DumpsForm.vue
+++ b/src/views/Logs/Dumps/DumpsForm.vue
@@ -73,7 +73,7 @@
             this.infoToast(this.$t('pageDumps.toast.successStartBmcDump'), {
               title: this.$t('pageDumps.toast.successStartBmcDumpTitle'),
               timestamp: true,
-            })
+            }),
           )
           .catch(({ message }) => this.errorToast(message));
       }
@@ -88,7 +88,7 @@
           this.infoToast(this.$t('pageDumps.toast.successStartSystemDump'), {
             title: this.$t('pageDumps.toast.successStartSystemDumpTitle'),
             timestamp: true,
-          })
+          }),
         )
         .catch(({ message }) => this.errorToast(message));
     },
diff --git a/src/views/Logs/EventLogs/EventLogs.vue b/src/views/Logs/EventLogs/EventLogs.vue
index ff0473e..6994849 100644
--- a/src/views/Logs/EventLogs/EventLogs.vue
+++ b/src/views/Logs/EventLogs/EventLogs.vue
@@ -453,13 +453,13 @@
       return this.getFilteredTableDataByDate(
         this.allLogs,
         this.filterStartDate,
-        this.filterEndDate
+        this.filterEndDate,
       );
     },
     filteredLogs() {
       return this.getFilteredTableData(
         this.filteredLogsByDate,
-        this.activeFilters
+        this.activeFilters,
       );
     },
   },
@@ -548,16 +548,16 @@
           .msgBoxConfirm(
             this.$tc(
               'pageEventLogs.modal.deleteMessage',
-              this.selectedRows.length
+              this.selectedRows.length,
             ),
             {
               title: this.$tc(
                 'pageEventLogs.modal.deleteTitle',
-                this.selectedRows.length
+                this.selectedRows.length,
               ),
               okTitle: this.$t('global.action.delete'),
               cancelTitle: this.$t('global.action.cancel'),
-            }
+            },
           )
           .then((deleteConfirmed) => {
             if (deleteConfirmed) {
@@ -565,11 +565,14 @@
                 this.$store
                   .dispatch(
                     'eventLog/deleteAllEventLogs',
-                    this.selectedRows.length
+                    this.selectedRows.length,
                   )
                   .then(() => {
                     this.successToast(
-                      this.$tc('pageEventLogs.toast.successDelete', uris.length)
+                      this.$tc(
+                        'pageEventLogs.toast.successDelete',
+                        uris.length,
+                      ),
                     );
                   })
                   .catch(({ message }) => this.errorToast(message));
diff --git a/src/views/Logs/PostCodeLogs/PostCodeLogs.vue b/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
index a68047b..57bbdb5 100644
--- a/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
+++ b/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
@@ -286,7 +286,7 @@
               },
             ],
           };
-        }
+        },
       );
     },
     batchExportData() {
@@ -296,13 +296,13 @@
       return this.getFilteredTableDataByDate(
         this.allLogs,
         this.filterStartDate,
-        this.filterEndDate
+        this.filterEndDate,
       );
     },
     filteredLogs() {
       return this.getFilteredTableData(
         this.filteredLogsByDate,
-        this.activeFilters
+        this.activeFilters,
       );
     },
   },
@@ -337,7 +337,7 @@
           (postCodes) => {
             const allLogsString = JSON.stringify(postCodes);
             return allLogsString;
-          }
+          },
         );
       }
     },
