diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue index f42807b..0b42a33 100644 --- a/src/components/Navbar.vue +++ b/src/components/Navbar.vue @@ -184,6 +184,13 @@ export default { break; } break; + case 'COMPARE': + switch(name) { + case 'CompareDashboard': + this.isActive = 'DASHBOARD' + break; + } + break; } // if(this.navViewName === 'DISCOVER') { // if(name === 'Map' || name === 'CheckMap') this.isActive = 'MAP'; diff --git a/src/router/index.js b/src/router/index.js index f33d4ea..b1aa365 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -88,9 +88,15 @@ const routes = [ ] }, { - path: "/compare/dashboard", - name: "CompareDashboard", - component: CompareDashboard, + path: "/compare", + name: "Compare", + children: [ + { + path: "/compare/dashboard/:primaryType/:primaryId/:secondaryType/:secondaryId", + name: "CompareDashboard", + component: CompareDashboard, + } + ] } ] }, @@ -99,11 +105,6 @@ const routes = [ name: "NotFound404", component: NotFound404, }, - // { - // path: "/compare/dashboard", - // name: "CompareDashboard", - // component: CompareDashboard, - // } ]; const base_url = import.meta.env.BASE_URL; diff --git a/src/stores/compare.js b/src/stores/compare.js new file mode 100644 index 0000000..b3fbfb1 --- /dev/null +++ b/src/stores/compare.js @@ -0,0 +1,31 @@ +import { defineStore } from "pinia"; +import apiError from '@/module/apiError.js'; + +export default defineStore('compareStore', { + state: () => ({ + allCompareDashboardData: null, + }), + getters: { + compareDashboardData: state => { + return state.allCompareDashboardData; + }, + }, + actions: { + /** + * Get Performance + * @param { array } queryParams + */ + async getCompare(queryParams) { + // encodeURIComponent 函數用於將字串中的特殊字符進行編碼,以確保 URL 的正確性。 + const queryString = JSON.stringify(queryParams); + const api = `/api/compare?datasets=${encodeURIComponent(queryString)}`; + + try { + const response = await this.$axios.get(api); + this.allCompareDashboardData = response.data; + } catch(error) { + apiError(error, 'Failed to load the Compare.'); + } + } + }, +}) diff --git a/src/stores/performance.js b/src/stores/performance.js index ab4adfa..a3913f9 100644 --- a/src/stores/performance.js +++ b/src/stores/performance.js @@ -1,7 +1,4 @@ import { defineStore } from "pinia"; -// import moment from "moment"; -// import { Decimal } from 'decimal.js'; -// import abbreviateNumber from '@/module/abbreviateNumber.js'; import apiError from '@/module/apiError.js'; export default defineStore('performanceStore', { diff --git a/src/views/Compare/Dashboard/index.vue b/src/views/Compare/Dashboard/index.vue index a9b2c0c..fb5df17 100644 --- a/src/views/Compare/Dashboard/index.vue +++ b/src/views/Compare/Dashboard/index.vue @@ -100,20 +100,20 @@