From adcdb2bdc0e8533eba813199d932725294609d31 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 22 Jul 2024 13:52:48 +0800 Subject: [PATCH] refactor NavBar.vue --- src/components/Navbar.vue | 108 +++++++++--------- src/components/icons/IconChecked.vue | 8 +- src/main.ts | 1 - src/module/alertModal.js | 9 +- .../ModalAccountEditCreate.vue | 1 + src/views/Compare/Dashboard/Compare.vue | 2 + src/views/Discover/Map/Map.vue | 2 +- src/views/Discover/Performance/FreqChart.vue | 10 +- src/views/Discover/Performance/index.vue | 1 - src/views/MainContainer.vue | 1 - 10 files changed, 67 insertions(+), 76 deletions(-) diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue index 801c133..5402b6e 100644 --- a/src/components/Navbar.vue +++ b/src/components/Navbar.vue @@ -272,63 +272,25 @@ export default { /** * Save button' modal */ - async saveModal() { - // 協助判斷 MAP, CONFORMANCE 儲存有「送出」或「取消」。 - let isSaved; - // 傳給 Map,通知 Sidebar 要關閉。 - this.$emitter.emit('saveModal', false); - // 判斷在哪個子頁面 - switch (this.$route.name) { + async saveModal() { + // 協助判斷 MAP, CONFORMANCE 儲存有「送出」或「取消」。 + let isSaved; + // 傳給 Map,通知 Sidebar 要關閉。 + this.$emitter.emit('saveModal', false); + + switch (this.$route.name) { case 'Map': - // 先判斷有沒有 filter Id,有就儲存 return,沒有就往下走 - // 沒有 filter Id, 有暫存 tempFilterId Id 可以另存新檔 - if(this.createFilterId) { - await this.allMapDataStore.updataFilter(); - if(this.isUpdataFilter) { - await savedSuccessfully(this.filterName); - } - }else if(this.logId){ - isSaved = await saveFilter(this.allMapDataStore.addFilterId); - // 存檔後為 filterID,換網址不跳頁,使用 push 記錄歷史路由 - if(isSaved) { - this.setActivePage('MAP'); - await this.$router.push(`/discover/filter/${this.createFilterId}/map`); - } - }; - break; + await this.handleMapSave(); + break; case 'CheckMap': - // 無論 parentLog, parentFilter,做新 filter 皆另存新檔 - isSaved = await saveFilter(this.allMapDataStore.addFilterId); - // 存檔後為 filterID,換網址不跳頁,使用 push 記錄歷史路由 - if(isSaved) { - this.setActivePage('MAP'); - await this.$router.push(`/discover/filter/${this.createFilterId}/map`); - } - break; + await this.handleCheckMapSave(); + break; case 'Conformance': case 'CheckConformance': - // 先判斷有沒有 check Id,有就儲存 return,沒有就往下走 - // 沒有 check Id, 有暫存 temp Id 可以另存新檔 - if(this.conformanceFilterCreateCheckId || this.conformanceLogCreateCheckId){ - await this.conformanceStore.updataConformance(); - if(this.isUpdataConformance) { - await savedSuccessfully(this.conformanceFileName); - } - } else { - isSaved = await saveConformance(this.conformanceStore.addConformanceCreateCheckId); - // 存檔後為 checkID,換網址不跳頁,使用 push 記錄歷史路由 - if(isSaved) { - if(this.conformanceLogId) { - this.setActivePage('CONFORMANCE'); - await this.$router.push(`/discover/conformance/log/${this.conformanceLogCreateCheckId}/conformance`); - } - else if(this.conformanceFilterId) { - this.setActivePage('CONFORMANCE'); - await this.$router.push(`/discover/conformance/filter/${this.conformanceFilterCreateCheckId}/conformance`); - } - } - } - break; + await this.handleConformanceSave(); + break; + default: + break; } }, /** @@ -339,6 +301,46 @@ export default { this.setActivePageComputedByRoute(this.$route.matched[this.$route.matched.length - 1].name); } }, + async handleMapSave() { + if (this.createFilterId) { + await this.allMapDataStore.updataFilter(); + if (this.isUpdataFilter) { + await savedSuccessfully(this.filterName); + } + } else if (this.logId) { + const isSaved = await saveFilter(this.allMapDataStore.addFilterId); + if (isSaved) { + this.setActivePage('MAP'); + await this.$router.push(`/discover/filter/${this.createFilterId}/map`); + } + } + }, + async handleCheckMapSave() { + const isSaved = await saveFilter(this.allMapDataStore.addFilterId); + if (isSaved) { + this.setActivePage('MAP'); + await this.$router.push(`/discover/filter/${this.createFilterId}/map`); + } + }, + async handleConformanceSave() { + if (this.conformanceFilterCreateCheckId || this.conformanceLogCreateCheckId) { + await this.conformanceStore.updataConformance(); + if (this.isUpdataConformance) { + await savedSuccessfully(this.conformanceFileName); + } + } else { + const isSaved = await saveConformance(this.conformanceStore.addConformanceCreateCheckId); + if (isSaved) { + if (this.conformanceLogId) { + this.setActivePage('CONFORMANCE'); + await this.$router.push(`/discover/conformance/log/${this.conformanceLogCreateCheckId}/conformance`); + } else if (this.conformanceFilterId) { + this.setActivePage('CONFORMANCE'); + await this.$router.push(`/discover/conformance/filter/${this.conformanceFilterCreateCheckId}/conformance`); + } + } + } + }, ...mapActions(PageAdminStore, [ 'setPendingActivePage', 'setPrevioiusPage', diff --git a/src/components/icons/IconChecked.vue b/src/components/icons/IconChecked.vue index abe3e0b..c4a5893 100644 --- a/src/components/icons/IconChecked.vue +++ b/src/components/icons/IconChecked.vue @@ -1,15 +1,15 @@