Skip to content

Commit 1ef3f54

Browse files
feat: Task center supports switching nodes (#11315)
1 parent 5184689 commit 1ef3f54

File tree

3 files changed

+61
-11
lines changed

3 files changed

+61
-11
lines changed

frontend/src/api/modules/log.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ export const cleanLogs = (param: Log.CleanLog) => {
1818
return http.post(`/core/logs/clean`, param);
1919
};
2020

21-
export const searchTasks = (req: Log.SearchTaskReq) => {
22-
return http.post<ResPage<Log.Task>>(`/logs/tasks/search`, req);
21+
export const searchTasks = (req: Log.SearchTaskReq, node?: string) => {
22+
const params = node ? `?operateNode=${node}` : '';
23+
return http.post<ResPage<Log.Task>>(`/logs/tasks/search${params}`, req);
2324
};
2425

2526
export const countExecutingTask = () => {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<template>
2+
<el-select
3+
:model-value="modelValue"
4+
@update:model-value="handleChange"
5+
class="p-w-200"
6+
:placeholder="$t('setting.selectNode')"
7+
>
8+
<el-option
9+
v-for="item in nodes"
10+
:key="item.id"
11+
:label="item.name === 'local' ? globalStore.getMasterAlias() : item.name"
12+
:value="item.name"
13+
></el-option>
14+
</el-select>
15+
</template>
16+
17+
<script setup>
18+
import { defineProps, defineEmits } from 'vue';
19+
import { listAllNodes } from '@/api/modules/setting';
20+
import { useGlobalStore } from '@/composables/useGlobalStore';
21+
const { globalStore } = useGlobalStore();
22+
23+
defineProps({
24+
modelValue: {
25+
type: String,
26+
default: '',
27+
},
28+
});
29+
30+
const nodes = ref([]);
31+
const emit = defineEmits(['update:modelValue', 'change']);
32+
33+
const handleChange = (value) => {
34+
emit('update:modelValue', value);
35+
emit('change', value);
36+
};
37+
38+
const listNodes = async () => {
39+
try {
40+
const res = await listAllNodes();
41+
nodes.value = res.data || [];
42+
} catch (error) {}
43+
};
44+
45+
onMounted(() => {
46+
listNodes();
47+
});
48+
</script>

frontend/src/components/task-list/index.vue

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
<template>
2-
<DrawerPro
3-
v-model="open"
4-
size="large"
5-
:header="$t('menu.msgCenter')"
6-
:resource="globalStore.currentNode"
7-
@close="handleClose"
8-
>
2+
<DrawerPro v-model="open" size="large" :header="$t('menu.msgCenter')" @close="handleClose">
93
<template #content>
104
<LayoutContent v-loading="loading" :title="$t('logs.task')">
5+
<template #leftToolBar>
6+
<NodeSelect v-model="targeNode" @change="search()" />
7+
</template>
118
<template #rightToolBar>
129
<el-select v-model="req.status" @change="search()" clearable class="p-w-200">
1310
<template #prefix>{{ $t('commons.table.status') }}</template>
@@ -50,11 +47,13 @@
5047
</template>
5148

5249
<script setup lang="ts">
50+
import TaskLog from '@/components/log/task/index.vue';
51+
import NodeSelect from '@/components/node-select/index.vue';
52+
5353
import { dateFormat } from '@/utils/util';
5454
import { searchTasks } from '@/api/modules/log';
5555
import { reactive, ref } from 'vue';
5656
import { Log } from '@/api/interface/log';
57-
import TaskLog from '@/components/log/task/index.vue';
5857
import bus from '@/global/bus';
5958
import { GlobalStore } from '@/store';
6059
const globalStore = GlobalStore();
@@ -79,14 +78,15 @@ const req = reactive({
7978
page: 1,
8079
pageSize: 10,
8180
});
81+
const targeNode = ref('local');
8282
8383
const search = async () => {
8484
bus.emit('refreshTask', true);
8585
req.page = paginationConfig.currentPage;
8686
req.pageSize = paginationConfig.pageSize;
8787
loading.value = true;
8888
try {
89-
const res = await searchTasks(req);
89+
const res = await searchTasks(req, targeNode.value);
9090
loading.value = false;
9191
data.value = res.data.items;
9292
paginationConfig.total = res.data.total;
@@ -101,6 +101,7 @@ const openTaskLog = (row: Log.Task) => {
101101
};
102102
103103
const acceptParams = () => {
104+
targeNode.value = globalStore.currentNode;
104105
search();
105106
open.value = true;
106107
};

0 commit comments

Comments
 (0)