Issue #169: Done.

This commit is contained in:
chiayin
2023-10-19 14:11:40 +08:00
parent b32e1b3b61
commit 6c032ca94a
5 changed files with 74 additions and 25 deletions

View File

@@ -4,8 +4,10 @@ import apiError from '@/module/apiError.js';
export default defineStore('allMapDataStore', {
state: () => ({
baseLogId: null,
logId: null,
traceId: 1,
baseTraceId: 1,
tempFilterId: null,
createFilterId: null,
filterName: null,
@@ -14,8 +16,11 @@ export default defineStore('allMapDataStore', {
allStats: {},
allInsights: {},
allTrace: [],
allBaseTrace: [],
allCase: [],
allBaseCase: [],
allTraceTaskSeq: [],
allBaseTraceTaskSeq: [],
allFilterTask: [],
allFilterStartToEnd: [],
allFilterEndToStart: [],
@@ -31,6 +36,7 @@ export default defineStore('allMapDataStore', {
selectTimeFrame: [], // user select time start and end
infinite404: null, // 無限滾動式是否到底要換頁
infiniteStart: 0, // 無限滾動 case 開始的數字
baseInfiniteStart: 0, // 無限滾動 case 開始的數字
}),
getters: {
processMap: state => {
@@ -48,15 +54,27 @@ export default defineStore('allMapDataStore', {
traces: state => {
return state.allTrace;
},
baseTraces: state => {
return state.allBaseTrace;
},
cases: state => {
return state.allCase;
},
baseCases: state => {
return state.allBaseCase;
},
infiniteFirstCases: state => {
if(state.infiniteStart === 0) return state.allCase;
},
BaseInfiniteFirstCases: state => {
if(state.BaseInfiniteStart === 0) return state.allBaseCase;
},
traceTaskSeq: state => {
return state.allTraceTaskSeq;
},
baseTraceTaskSeq: state => {
return state.allBaseTraceTaskSeq;
},
// All tasks
filterTasks: state => {
return state.allFilterTask;
@@ -111,6 +129,8 @@ export default defineStore('allMapDataStore', {
let logId = this.logId;
let tempFilterId = this.tempFilterId;
let createfilterId = this.createFilterId;
let baseLogId = this.baseLogId;
let baseApi = `/api/logs/${baseLogId}/traces`;
let api = '';
// 先判斷暫存 再判斷 filter 最後 log
@@ -119,9 +139,11 @@ export default defineStore('allMapDataStore', {
else api = `/api/logs/${logId}/traces`;
try {
let baseResponse;
const response = await this.$axios.get(api);
this.allTrace = response.data;
if(baseLogId) baseResponse = await this.$axios.get(baseApi);
this.allBaseTrace = baseResponse.data;
} catch(error) {
apiError(error, 'Failed to load the Trace.');
}
@@ -137,7 +159,6 @@ export default defineStore('allMapDataStore', {
let start = this.infiniteStart;
let api = '';
// 先判斷暫存 再判斷 filter 最後 log
if(tempFilterId != null) api = `/api/temp-filters/${tempFilterId}/traces/${traceId}?start=${start}&page_size=20`;
else if(createfilterId!= null) api = `/api/filters/${createfilterId}/traces/${traceId}?start=${start}&page_size=20`;
@@ -158,6 +179,30 @@ export default defineStore('allMapDataStore', {
apiError(error, 'Failed to load the Trace Detail.');
};
},
/**
* fetch base log trace detail api.
*/
async getBaseTraceDetail() {
let logId = this.baseLogId;
let traceId = this.baseTraceId;
let start = this.baseInfiniteStart;
let api = `/api/logs/${logId}/traces/${traceId}?start=${start}&page_size=20`;
try {
const response = await this.$axios.get(api);
this.allBaseTraceTaskSeq = response.data.task_seq;
this.allBaseCase = response.data.cases;
this.allBaseCase.map(c => {
c.started_at = moment(c.started_at).format('YYYY-MM-DD HH:MM');
c.completed_at = moment(c.completed_at).format('YYYY-MM-DD HH:MM');
return this.allBaseCase;
});
return this.allBaseCase;
} catch(error) {
if(error.response.status === 404) return this.infinite404 = 404;
apiError(error, 'Failed to load the Trace Detail.');
};
},
/**
* fetch Filter Parameters api.
*/