From b6969acc37a456ee077f3493b824e76416dbb9a1 Mon Sep 17 00:00:00 2001 From: "sas.fajri" Date: Fri, 8 May 2026 09:57:19 +0700 Subject: [PATCH] Debounce dashboard user project search --- .../components/oneDashboardUserMcuDetail.vue | 10 ++++++++-- .../components/oneDashboardUserMcuList.vue | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue index 4f3c578..feb27cd 100644 --- a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue +++ b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue @@ -97,11 +97,17 @@ module.exports = { this.password = '' } }, - projectKeyword(val) { - this.$store.dispatch('dashboard_user/search_project', { search: val || '' }) + projectKeyword(val, old) { + let next = (val || '').trim() + let prev = (old || '').trim() + if (next === prev) return + this.thrSearchProject(next) } }, methods: { + thrSearchProject: _.debounce(function(keyword) { + this.$store.dispatch('dashboard_user/search_project', { search: keyword || '' }) + }, 300), closeDialogSuccess() { this.$store.commit('dashboard_user/update_dialog_success', false) this.refreshList() diff --git a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuList.vue b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuList.vue index 7c45f6b..c28867d 100644 --- a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuList.vue +++ b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuList.vue @@ -72,8 +72,11 @@ module.exports = { projectSearch: { get() { return this.$store.state.dashboard_user.project_keyword }, set(val) { + let next = (val || '').trim() + let prev = (this.$store.state.dashboard_user.project_keyword || '').trim() + if (next === prev) return this.$store.commit('dashboard_user/update_project_keyword', val) - this.$store.dispatch('dashboard_user/search_project', { search: val || '' }) + this.thrSearchProject(next) } }, projectItems() { @@ -85,6 +88,9 @@ module.exports = { } }, methods: { + thrSearchProject: _.debounce(function(keyword) { + this.$store.dispatch('dashboard_user/search_project', { search: keyword || '' }) + }, 300), doSearch() { this.$store.dispatch('dashboard_user/search', { username: this.username || '',