diff --git a/src/views/Compare/Dashboard/Compare.vue b/src/views/Compare/Dashboard/Compare.vue index d4cc708..258dfc9 100644 --- a/src/views/Compare/Dashboard/Compare.vue +++ b/src/views/Compare/Dashboard/Compare.vue @@ -1241,53 +1241,56 @@ function getAvgProcessTimeHorizontalBarChart(chartData, content, isSingle, xUnit // Created logic (async () => { isLoading.value = true; + try { + const routeParams = route.params; + const primaryType = routeParams.primaryType; + const secondaryType = routeParams.secondaryType; + const primaryId = routeParams.primaryId; + const secondaryId = routeParams.secondaryId; + const typeMap = { + 'log': 'log_id', + 'filter': 'filter_id' + }; + const primaryTypeParam = typeMap[primaryType]; + const secondaryTypeParam = typeMap[secondaryType]; + const queryParams = [ + { [primaryTypeParam]: primaryId }, + { [secondaryTypeParam]: secondaryId } + ]; - const routeParams = route.params; - const primaryType = routeParams.primaryType; - const secondaryType = routeParams.secondaryType; - const primaryId = routeParams.primaryId; - const secondaryId = routeParams.secondaryId; - const typeMap = { - 'log': 'log_id', - 'filter': 'filter_id' - }; - const primaryTypeParam = typeMap[primaryType]; - const secondaryTypeParam = typeMap[secondaryType]; - const queryParams = [ - { [primaryTypeParam]: primaryId }, - { [secondaryTypeParam]: secondaryId } - ]; - - // 取得 Compare Data - await compareStore.getCompare(queryParams); - avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(compareDashboardData.value.time.avg_process_time_by_task); - if(compareDashboardData.value.time.avg_waiting_time_by_edge !== null) { - avgWaitingTimeByEdgeHeight.value = getHorizontalBarHeight(compareDashboardData.value.time.avg_waiting_time_by_edge); - }; - casesByTaskHeight.value = getHorizontalBarHeight(compareDashboardData.value.freq.cases_by_task); - // create chart - [avgCycleTimeData.value, avgCycleTimeOptions.value] = getLineChart( - compareDashboardData.value.time.avg_cycle_time, contentData.avgCycleTime, 'date'); - [avgCycleEfficiencyData.value, avgCycleEfficiencyOptions.value] = getBarChart( - compareDashboardData.value.time.avg_cycle_efficiency, contentData.avgCycleEfficiency, "Cycle Eff"); - [avgProcessTimeData.value, avgProcessTimeOptions.value] = getLineChart( - compareDashboardData.value.time.avg_process_time, contentData.avgProcessTime, 'date'); - [avgProcessTimeByTaskData.value, avgProcessTimeByTaskOptions.value] = getAvgProcessTimeHorizontalBarChart( - compareDashboardData.value.time.avg_process_time_by_task, - contentData.avgProcessTimeByTask, true, 'date'); - [avgWaitingTimeData.value, avgWaitingTimeOptions.value] = getLineChart( - compareDashboardData.value.time.avg_waiting_time, contentData.avgWaitingTime, 'date'); - if(compareDashboardData.value.time.avg_waiting_time_by_edge !== null) { - [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = getHorizontalBarChart( - compareDashboardData.value.time.avg_waiting_time_by_edge, - contentData.avgWaitingTimeByEdge, false, 'date'); - } else { - [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = [null, null] + // 取得 Compare Data + await compareStore.getCompare(queryParams); + avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(compareDashboardData.value.time.avg_process_time_by_task); + if(compareDashboardData.value.time.avg_waiting_time_by_edge !== null) { + avgWaitingTimeByEdgeHeight.value = getHorizontalBarHeight(compareDashboardData.value.time.avg_waiting_time_by_edge); + }; + casesByTaskHeight.value = getHorizontalBarHeight(compareDashboardData.value.freq.cases_by_task); + // create chart + [avgCycleTimeData.value, avgCycleTimeOptions.value] = getLineChart( + compareDashboardData.value.time.avg_cycle_time, contentData.avgCycleTime, 'date'); + [avgCycleEfficiencyData.value, avgCycleEfficiencyOptions.value] = getBarChart( + compareDashboardData.value.time.avg_cycle_efficiency, contentData.avgCycleEfficiency, "Cycle Eff"); + [avgProcessTimeData.value, avgProcessTimeOptions.value] = getLineChart( + compareDashboardData.value.time.avg_process_time, contentData.avgProcessTime, 'date'); + [avgProcessTimeByTaskData.value, avgProcessTimeByTaskOptions.value] = getAvgProcessTimeHorizontalBarChart( + compareDashboardData.value.time.avg_process_time_by_task, + contentData.avgProcessTimeByTask, true, 'date'); + [avgWaitingTimeData.value, avgWaitingTimeOptions.value] = getLineChart( + compareDashboardData.value.time.avg_waiting_time, contentData.avgWaitingTime, 'date'); + if(compareDashboardData.value.time.avg_waiting_time_by_edge !== null) { + [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = getHorizontalBarChart( + compareDashboardData.value.time.avg_waiting_time_by_edge, + contentData.avgWaitingTimeByEdge, false, 'date'); + } else { + [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = [null, null] + } + [freqData.value, freqOptions.value] = getLineChart( + compareDashboardData.value.freq.cases, contentData.freq, 'count'); + [casesByTaskData.value, casesByTaskOptions.value] = getCaseByTaskHorizontalBarChart( + compareDashboardData.value.freq.cases_by_task, contentData.casesByTask, true, 'count'); + } catch (error) { + console.error('Failed to initialize compare dashboard:', error); } - [freqData.value, freqOptions.value] = getLineChart( - compareDashboardData.value.freq.cases, contentData.freq, 'count'); - [casesByTaskData.value, casesByTaskOptions.value] = getCaseByTaskHorizontalBarChart( - compareDashboardData.value.freq.cases_by_task, contentData.casesByTask, true, 'count'); })(); // Mounted diff --git a/src/views/Compare/MapCompare.vue b/src/views/Compare/MapCompare.vue index 5b35020..36fada8 100644 --- a/src/views/Compare/MapCompare.vue +++ b/src/views/Compare/MapCompare.vue @@ -487,54 +487,59 @@ function setActivityBgImage(mapData) { // Created logic (async () => { - const routeParams = route.params; - const file = route.meta.file; - const isCheckPage = route.name.includes('Check'); + try { + const routeParams = route.params; + const file = route.meta.file; + const isCheckPage = route.name.includes('Check'); - isLoading.value = true; - switch (routeParams.type) { - case 'log': - if (!isCheckPage) { - logId.value = routeParams.fileId; - baseLogId.value = routeParams.fileId; - } else { - logId.value = file.parent.id; - baseLogId.value = file.parent.id; - } - break; - case 'filter': - if (!isCheckPage) { - createFilterId.value = routeParams.fileId; - } else { - createFilterId.value = file.parent.id; - } - await allMapDataStore.fetchFunnel(createFilterId.value); - isRuleData.value = Array.from(temporaryData.value); - ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e)); - break; + isLoading.value = true; + switch (routeParams.type) { + case 'log': + if (!isCheckPage) { + logId.value = routeParams.fileId; + baseLogId.value = routeParams.fileId; + } else { + logId.value = file.parent.id; + baseLogId.value = file.parent.id; + } + break; + case 'filter': + if (!isCheckPage) { + createFilterId.value = routeParams.fileId; + } else { + createFilterId.value = file.parent.id; + } + await allMapDataStore.fetchFunnel(createFilterId.value); + isRuleData.value = Array.from(temporaryData.value); + ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e)); + break; + } + await allMapDataStore.getAllMapData(); + await allMapDataStore.getAllTrace(); + + traceId.value = traces.value[0]?.id; + baseTraceId.value = baseTraces.value[0]?.id; + await createCy(mapType.value); + await allMapDataStore.getFilterParams(); + await allMapDataStore.getTraceDetail(); + + emitter.on('saveModal', boolean => { + sidebarView.value = boolean; + sidebarFilter.value = boolean; + sidebarTraces.value = boolean; + sidebarState.value = boolean; + }); + emitter.on('leaveFilter', boolean => { + sidebarView.value = boolean; + sidebarFilter.value = boolean; + sidebarTraces.value = boolean; + sidebarState.value = boolean; + }); + } catch (error) { + console.error('Failed to initialize map compare:', error); + } finally { + isLoading.value = false; } - await allMapDataStore.getAllMapData(); - await allMapDataStore.getAllTrace(); - - traceId.value = traces.value[0]?.id; - baseTraceId.value = baseTraces.value[0]?.id; - await createCy(mapType.value); - await allMapDataStore.getFilterParams(); - await allMapDataStore.getTraceDetail(); - - isLoading.value = false; - emitter.on('saveModal', boolean => { - sidebarView.value = boolean; - sidebarFilter.value = boolean; - sidebarTraces.value = boolean; - sidebarState.value = boolean; - }); - emitter.on('leaveFilter', boolean => { - sidebarView.value = boolean; - sidebarFilter.value = boolean; - sidebarTraces.value = boolean; - sidebarState.value = boolean; - }); })(); onBeforeUnmount(() => { diff --git a/src/views/Discover/Conformance/index.vue b/src/views/Discover/Conformance/index.vue index 5780853..ee1d8ce 100644 --- a/src/views/Discover/Conformance/index.vue +++ b/src/views/Discover/Conformance/index.vue @@ -66,35 +66,39 @@ const { conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conf // Created logic (async () => { isLoading.value = true; + try { + const params = route.params; + const file = route.meta.file; + const isCheckPage = route.name.includes('Check'); - const params = route.params; - const file = route.meta.file; - const isCheckPage = route.name.includes('Check'); - - if(!isCheckPage) { - switch (params.type) { - case 'log': - conformanceLogId.value = params.fileId; - break; - case 'filter': - conformanceFilterId.value = params.fileId; - break; + if(!isCheckPage) { + switch (params.type) { + case 'log': + conformanceLogId.value = params.fileId; + break; + case 'filter': + conformanceFilterId.value = params.fileId; + break; + } + } else { + switch (params.type) { + case 'log': + conformanceLogId.value = file.parent.id; + conformanceFileName.value = file.name; + break; + case 'filter': + conformanceFilterId.value = file.parent.id; + conformanceFileName.value = file.name; + break; + } + await conformanceStore.getConformanceReport(); } - } else { - switch (params.type) { - case 'log': - conformanceLogId.value = file.parent.id; - conformanceFileName.value = file.name; - break; - case 'filter': - conformanceFilterId.value = file.parent.id; - conformanceFileName.value = file.name; - break; - } - await conformanceStore.getConformanceReport(); + await conformanceStore.getConformanceParams(); + } catch (error) { + console.error('Failed to initialize conformance:', error); + } finally { + setTimeout(() => isLoading.value = false, 500); } - await conformanceStore.getConformanceParams(); - setTimeout(() => isLoading.value = false, 500); })(); // Mounted diff --git a/src/views/Discover/Map/Map.vue b/src/views/Discover/Map/Map.vue index de5acae..a3aa323 100644 --- a/src/views/Discover/Map/Map.vue +++ b/src/views/Discover/Map/Map.vue @@ -470,54 +470,59 @@ function setActivityBgImage(mapData) { // Created logic (async () => { - const routeParams = route.params; - const file = route.meta.file; - const isCheckPage = route.name.includes('Check'); + try { + const routeParams = route.params; + const file = route.meta.file; + const isCheckPage = route.name.includes('Check'); - isLoading.value = true; - switch (routeParams.type) { - case 'log': - if(!isCheckPage) { - logId.value = routeParams.fileId; - baseLogId.value = routeParams.fileId; - } else { - logId.value = file.parent.id; - baseLogId.value = file.parent.id; - } - break; - case 'filter': - if(!isCheckPage) { - createFilterId.value = routeParams.fileId; - } else { - createFilterId.value = file.parent.id; - } - await allMapDataStore.fetchFunnel(createFilterId.value); - isRuleData.value = Array.from(temporaryData.value); - ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e)); - break; + isLoading.value = true; + switch (routeParams.type) { + case 'log': + if(!isCheckPage) { + logId.value = routeParams.fileId; + baseLogId.value = routeParams.fileId; + } else { + logId.value = file.parent.id; + baseLogId.value = file.parent.id; + } + break; + case 'filter': + if(!isCheckPage) { + createFilterId.value = routeParams.fileId; + } else { + createFilterId.value = file.parent.id; + } + await allMapDataStore.fetchFunnel(createFilterId.value); + isRuleData.value = Array.from(temporaryData.value); + ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e)); + break; + } + await allMapDataStore.getAllMapData(); + await allMapDataStore.getAllTrace(); + + traceId.value = traces.value[0]?.id; + baseTraceId.value = baseTraces.value[0]?.id; + await createCy(mapType.value); + await allMapDataStore.getFilterParams(); + await allMapDataStore.getTraceDetail(); + + emitter.on('saveModal', boolean => { + sidebarView.value = boolean; + sidebarFilter.value = boolean; + sidebarTraces.value = boolean; + sidebarState.value = boolean; + }); + emitter.on('leaveFilter', boolean => { + sidebarView.value = boolean; + sidebarFilter.value = boolean; + sidebarTraces.value = boolean; + sidebarState.value = boolean; + }); + } catch (error) { + console.error('Failed to initialize map:', error); + } finally { + isLoading.value = false; } - await allMapDataStore.getAllMapData(); - await allMapDataStore.getAllTrace(); - - traceId.value = traces.value[0]?.id; - baseTraceId.value = baseTraces.value[0]?.id; - await createCy(mapType.value); - await allMapDataStore.getFilterParams(); - await allMapDataStore.getTraceDetail(); - - isLoading.value = false; - emitter.on('saveModal', boolean => { - sidebarView.value = boolean; - sidebarFilter.value = boolean; - sidebarTraces.value = boolean; - sidebarState.value = boolean; - }); - emitter.on('leaveFilter', boolean => { - sidebarView.value = boolean; - sidebarFilter.value = boolean; - sidebarTraces.value = boolean; - sidebarState.value = boolean; - }); })(); onBeforeUnmount(() => { diff --git a/src/views/Discover/Performance/index.vue b/src/views/Discover/Performance/index.vue index 4079689..2ee8b0f 100644 --- a/src/views/Discover/Performance/index.vue +++ b/src/views/Discover/Performance/index.vue @@ -905,51 +905,54 @@ function getAvgWaitingTimeLineChart(chartData, content, yUnit) { // Created logic (async () => { isLoading.value = true; - const routeParams = route.params; - const isCheckPage = route.name.includes('Check'); - const type = routeParams.type; - const file = route.meta.file; - let id; + try { + const routeParams = route.params; + const isCheckPage = route.name.includes('Check'); + const type = routeParams.type; + const file = route.meta.file; + let id; - if(!isCheckPage) { - id = routeParams.fileId; - } else { - id = file.parent.id; - } + if(!isCheckPage) { + id = routeParams.fileId; + } else { + id = file.parent.id; + } - // 取得 Performance Data - await performanceStore.getPerformance(type, id); - if(!performanceData.value?.time) { + // 取得 Performance Data + await performanceStore.getPerformance(type, id); + if(!performanceData.value?.time) { + return; + } + avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_process_time_by_task); + if(performanceData.value.time.avg_waiting_time_by_edge !== null) { + avgWaitingTimeByEdgeHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_waiting_time_by_edge); + } + casesByTaskHeight.value = getHorizontalBarHeight(performanceData.value.freq.cases_by_task); + // create chart + [avgCycleTimeData.value, avgCycleTimeOptions.value] = getExplicitDeclaredLineChart(performanceData.value.time.avg_cycle_time, + contentData.avgCycleTime, 'date'); + [avgCycleEfficiencyData.value, avgCycleEfficiencyOptions.value] = getBarChart( + performanceData.value.time.avg_cycle_efficiency, contentData.avgCycleEfficiency); + [avgProcessTimeData.value, avgProcessTimeOptions.value] = getExplicitDeclaredLineChart(performanceData.value.time.avg_process_time, + contentData.avgProcessTime, 'date'); + [avgProcessTimeByTaskData.value, avgProcessTimeByTaskOptions.value] = getHorizontalBarChart( + performanceData.value.time.avg_process_time_by_task, contentData.avgProcessTimeByTask, true, 'date'); + [avgWaitingTimeData.value, avgWaitingTimeOptions.value] = getExplicitDeclaredLineChart( + performanceData.value.time.avg_waiting_time, contentData.avgWaitingTime, 'date'); + if(performanceData.value.time.avg_waiting_time_by_edge !== null) { + [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = getHorizontalBarChart( + performanceData.value.time.avg_waiting_time_by_edge, contentData.avgWaitingTimeByEdge, false, 'date'); + } else { + [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = [null, null] + } + + [casesByTaskData.value, casesByTaskOptions.value] = getHorizontalBarChart(performanceData.value.freq.cases_by_task, + contentData.casesByTask, true, 'count'); + } catch (error) { + console.error('Failed to initialize performance:', error); + } finally { isLoading.value = false; - return; } - avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_process_time_by_task); - if(performanceData.value.time.avg_waiting_time_by_edge !== null) { - avgWaitingTimeByEdgeHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_waiting_time_by_edge); - } - casesByTaskHeight.value = getHorizontalBarHeight(performanceData.value.freq.cases_by_task); - // create chart - [avgCycleTimeData.value, avgCycleTimeOptions.value] = getExplicitDeclaredLineChart(performanceData.value.time.avg_cycle_time, - contentData.avgCycleTime, 'date'); - [avgCycleEfficiencyData.value, avgCycleEfficiencyOptions.value] = getBarChart( - performanceData.value.time.avg_cycle_efficiency, contentData.avgCycleEfficiency); - [avgProcessTimeData.value, avgProcessTimeOptions.value] = getExplicitDeclaredLineChart(performanceData.value.time.avg_process_time, - contentData.avgProcessTime, 'date'); - [avgProcessTimeByTaskData.value, avgProcessTimeByTaskOptions.value] = getHorizontalBarChart( - performanceData.value.time.avg_process_time_by_task, contentData.avgProcessTimeByTask, true, 'date'); - [avgWaitingTimeData.value, avgWaitingTimeOptions.value] = getExplicitDeclaredLineChart( - performanceData.value.time.avg_waiting_time, contentData.avgWaitingTime, 'date'); - if(performanceData.value.time.avg_waiting_time_by_edge !== null) { - [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = getHorizontalBarChart( - performanceData.value.time.avg_waiting_time_by_edge, contentData.avgWaitingTimeByEdge, false, 'date'); - } else { - [avgWaitingTimeByEdgeData.value, avgWaitingTimeByEdgeOptions.value] = [null, null] - } - - [casesByTaskData.value, casesByTaskOptions.value] = getHorizontalBarChart(performanceData.value.freq.cases_by_task, - contentData.casesByTask, true, 'count'); - // 停止 loading - isLoading.value = false; })();