fix(sj_map_reduce): 修复日志组件异常
This commit is contained in:
parent
78a6d9f895
commit
8599258b1d
@ -33,30 +33,43 @@ const syncTime = ref(1);
|
|||||||
const logList = ref<Api.JobLog.JobMessage[]>([]);
|
const logList = ref<Api.JobLog.JobMessage[]>([]);
|
||||||
const interval = ref<NodeJS.Timeout>();
|
const interval = ref<NodeJS.Timeout>();
|
||||||
const controller = new AbortController();
|
const controller = new AbortController();
|
||||||
const finished = ref<boolean>(false);
|
const finished = ref<boolean>(true);
|
||||||
let startId = '0';
|
let startId = '0';
|
||||||
let fromIndex: number = 0;
|
let fromIndex: number = 0;
|
||||||
|
let axiosController = new AbortController();
|
||||||
|
|
||||||
const stopLog = () => {
|
const pauseLog = () => {
|
||||||
finished.value = true;
|
finished.value = true;
|
||||||
controller.abort();
|
controller.abort();
|
||||||
clearTimeout(interval.value);
|
clearTimeout(interval.value);
|
||||||
interval.value = undefined;
|
interval.value = undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const stopLog = () => {
|
||||||
|
if (!finished.value) axiosController.abort();
|
||||||
|
pauseLog();
|
||||||
|
startId = '0';
|
||||||
|
fromIndex = 0;
|
||||||
|
logList.value = [];
|
||||||
|
};
|
||||||
|
|
||||||
async function getLogList() {
|
async function getLogList() {
|
||||||
let logData = null;
|
let logData = null;
|
||||||
let logError;
|
let logError;
|
||||||
|
|
||||||
if (props.type === 'job') {
|
if (props.type === 'job') {
|
||||||
const taskData = props.taskData! as Api.Job.JobTask;
|
const taskData = props.taskData! as Api.Job.JobTask;
|
||||||
const { data, error } = await fetchJobLogList({
|
const { data, error } = await fetchJobLogList(
|
||||||
taskBatchId: taskData.taskBatchId,
|
{
|
||||||
jobId: taskData.jobId,
|
taskBatchId: taskData.taskBatchId,
|
||||||
taskId: taskData.id,
|
jobId: taskData.jobId,
|
||||||
startId,
|
taskId: taskData.id,
|
||||||
fromIndex,
|
startId,
|
||||||
size: 50
|
fromIndex,
|
||||||
});
|
size: 50
|
||||||
|
},
|
||||||
|
axiosController
|
||||||
|
);
|
||||||
logData = data;
|
logData = data;
|
||||||
logError = error;
|
logError = error;
|
||||||
}
|
}
|
||||||
@ -86,7 +99,7 @@ async function getLogList() {
|
|||||||
clearTimeout(interval.value);
|
clearTimeout(interval.value);
|
||||||
interval.value = setTimeout(getLogList, syncTime.value * 1000);
|
interval.value = setTimeout(getLogList, syncTime.value * 1000);
|
||||||
}
|
}
|
||||||
} else {
|
} else if (logError?.code !== 'ERR_CANCELED') {
|
||||||
stopLog();
|
stopLog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -100,18 +113,18 @@ watch(
|
|||||||
async val => {
|
async val => {
|
||||||
if (val) {
|
if (val) {
|
||||||
if (props.modelValue) {
|
if (props.modelValue) {
|
||||||
logList.value = props.modelValue;
|
logList.value = [...props.modelValue];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((val || !props.drawer) && props.type && props.taskData) {
|
if ((val || !props.drawer) && props.type && props.taskData) {
|
||||||
finished.value = false;
|
finished.value = false;
|
||||||
|
axiosController = new AbortController();
|
||||||
await getLogList();
|
await getLogList();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!val && props.drawer) {
|
if (!val && props.drawer) {
|
||||||
stopLog();
|
stopLog();
|
||||||
logList.value = [];
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
@ -163,7 +176,7 @@ const handleSyncSelect = async (time: number) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (time === 0) {
|
if (time === 0) {
|
||||||
stopLog();
|
pauseLog();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import { request } from '../request';
|
import { request } from '../request';
|
||||||
|
|
||||||
/** get Job Log List */
|
/** get Job Log List */
|
||||||
export function fetchJobLogList(params?: Api.JobLog.JobLogSearchParams) {
|
export function fetchJobLogList(params?: Api.JobLog.JobLogSearchParams, controller?: AbortController) {
|
||||||
return request<Api.JobLog.JobLogList>({
|
return request<Api.JobLog.JobLogList>({
|
||||||
url: '/job/log/list',
|
url: '/job/log/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params,
|
||||||
|
signal: controller?.signal
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +135,10 @@ export const request = createFlatRequest<App.Service.Response, RequestInstanceSt
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (error.code === 'ERR_CANCELED') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
showErrorMsg(request.state, message);
|
showErrorMsg(request.state, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user