diff --git a/src/router/index.js b/src/router/index.js index 85511e4..723125b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -119,6 +119,14 @@ const routes = [ component: CompareDashboard, } ] + }, + { + path: "/rule/:type/:fileId/conformance/:checkId", + name: "CheckConformance", + component: Conformance, + meta: { + file: {}, + } } ] }, diff --git a/src/stores/conformance.js b/src/stores/conformance.js index 5793ff0..378d0f5 100644 --- a/src/stores/conformance.js +++ b/src/stores/conformance.js @@ -264,7 +264,6 @@ export default defineStore('conformanceStore', { else if(logCreateCheckId !== null) { api = `/api/log-checks/${logCreateCheckId}`; } - try { const response = await this.$axios.get(api); !getRouteFile ? this.allConformanceTempReportData = response.data : this.allRouteFile = response.data.file; @@ -447,5 +446,12 @@ export default defineStore('conformanceStore', { apiError(error, 'Failed to updata an Existing Conformance.'); } }, + /** + * Set the state value of conformance log creation check ID + * @param {string} createCheckID + */ + setConformanceLogCreateCheckId(createCheckID) { + this.conformanceLogCreateCheckId = createCheckID; + }, }, }) diff --git a/src/views/Discover/Conformance/index.vue b/src/views/Discover/Conformance/index.vue index cf2a708..b0169b5 100644 --- a/src/views/Discover/Conformance/index.vue +++ b/src/views/Discover/Conformance/index.vue @@ -21,9 +21,17 @@ export default { const loadingStore = LoadingStore(); const conformanceStore = ConformanceStore(); const { isLoading } = storeToRefs(loadingStore); - const { conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, conformanceLogTempCheckId, conformanceFilterTempCheckId, selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceRuleData, conformanceTempReportData, conformanceFileName } = storeToRefs(conformanceStore); + const { conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, + conformanceLogTempCheckId, conformanceFilterTempCheckId, selectedRuleType, selectedActivitySequence, + selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceRuleData, + conformanceTempReportData, conformanceFileName, + } = storeToRefs(conformanceStore); - return { isLoading, conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, conformanceLogTempCheckId, conformanceFilterTempCheckId, conformanceStore, selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceRuleData, conformanceTempReportData, conformanceFileName } + return { isLoading, conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, + conformanceLogTempCheckId, conformanceFilterTempCheckId, conformanceStore, selectedRuleType, + selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, + conformanceRuleData, conformanceTempReportData, conformanceFileName + }; }, components: { StatusBar, @@ -82,23 +90,28 @@ export default { }, async beforeRouteEnter(to, from, next) { const isCheckPage = to.name.includes('Check'); - if (isCheckPage) { const conformanceStore = ConformanceStore(); // Save token in Headers. + // (?:^|.;\s):匹配 "luciaToken" 之前的內容,允許它在字符串開頭或某個分號之後。 + // luciaToken\s=\s**:匹配 "luciaToken=",並忽略兩邊的空格。 + // ([^;]*):捕獲 "luciaToken" 的值,直到遇到下一個分號或字符串結尾。 + // .*$:匹配剩餘的字符,確保完整的提取。 + // |^.*$:在找不到 "luciaToken" 的情況下,匹配整個字符串。 + // 實際應用 const token = document.cookie.replace(/(?:(?:^|.*;\s*)luciaToken\s*\=\s*([^;]*).*$)|^.*$/, "$1"); axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; switch (to.params.type) { case 'log': - conformanceStore.conformanceLogCreateCheckId = to.params.fileId; + conformanceStore.setConformanceLogCreateCheckId(to.params.fileId); break; case 'filter': conformanceStore.conformanceFilterCreateCheckId = to.params.fileId; break; } await conformanceStore.getConformanceReport(); - to.meta.file = await conformanceStore.conformanceTempReportData.file; // 將 file data 存到 route 給 Navbar, StatusBar 使用 + to.meta.file = await conformanceStore.conformanceTempReportData?.file; // 將 file data 存到 route 給 Navbar, StatusBar 使用 } next(); }