mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 22:36:06 +08:00
修复定时任务状态筛选
This commit is contained in:
parent
bd28682769
commit
dc27856441
|
@ -217,6 +217,22 @@ export default class CronService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private formatFilterQuery(query: any, filterQuery: any) {
|
||||||
|
if (filterQuery) {
|
||||||
|
if (!query[Op.and]) {
|
||||||
|
query[Op.and] = [];
|
||||||
|
}
|
||||||
|
const filterKeys: any = Object.keys(filterQuery);
|
||||||
|
for (const key of filterKeys) {
|
||||||
|
let q: any = {};
|
||||||
|
if (filterKeys[key]) {
|
||||||
|
q[key] = filterKeys[key];
|
||||||
|
}
|
||||||
|
query[Op.and].push(q);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private formatViewSort(order: string[][], viewQuery: any) {
|
private formatViewSort(order: string[][], viewQuery: any) {
|
||||||
if (viewQuery.sorts && viewQuery.sorts.length > 0) {
|
if (viewQuery.sorts && viewQuery.sorts.length > 0) {
|
||||||
for (const { property, type } of viewQuery.sorts) {
|
for (const { property, type } of viewQuery.sorts) {
|
||||||
|
@ -229,16 +245,16 @@ export default class CronService {
|
||||||
searchValue: string;
|
searchValue: string;
|
||||||
page: string;
|
page: string;
|
||||||
size: string;
|
size: string;
|
||||||
sortField: string;
|
sorter: string;
|
||||||
sortType: string;
|
filters: string;
|
||||||
queryString: string;
|
queryString: string;
|
||||||
}): Promise<{ data: Crontab[]; total: number }> {
|
}): Promise<{ data: Crontab[]; total: number }> {
|
||||||
const searchText = params?.searchValue;
|
const searchText = params?.searchValue;
|
||||||
const page = Number(params?.page || '0');
|
const page = Number(params?.page || '0');
|
||||||
const size = Number(params?.size || '0');
|
const size = Number(params?.size || '0');
|
||||||
const sortField = params?.sortField || '';
|
|
||||||
const sortType = params?.sortType || '';
|
|
||||||
const viewQuery = JSON.parse(params?.queryString || '{}');
|
const viewQuery = JSON.parse(params?.queryString || '{}');
|
||||||
|
const filterQuery = JSON.parse(params?.filters || '{}');
|
||||||
|
const sorterQuery = JSON.parse(params?.sorter || '{}');
|
||||||
|
|
||||||
let query: any = {};
|
let query: any = {};
|
||||||
let order = [
|
let order = [
|
||||||
|
@ -250,10 +266,14 @@ export default class CronService {
|
||||||
|
|
||||||
this.formatViewQuery(query, viewQuery);
|
this.formatViewQuery(query, viewQuery);
|
||||||
this.formatSearchText(query, searchText);
|
this.formatSearchText(query, searchText);
|
||||||
|
this.formatFilterQuery(query, filterQuery);
|
||||||
this.formatViewSort(order, viewQuery);
|
this.formatViewSort(order, viewQuery);
|
||||||
|
|
||||||
if (sortType && sortField) {
|
if (sorterQuery) {
|
||||||
order.unshift([sortField, sortType]);
|
const { field, type } = sorterQuery;
|
||||||
|
if (field && type) {
|
||||||
|
order.unshift([field, type]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let condition: any = {
|
let condition: any = {
|
||||||
where: query,
|
where: query,
|
||||||
|
|
|
@ -181,6 +181,8 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
{
|
{
|
||||||
title: '最后运行时间',
|
title: '最后运行时间',
|
||||||
align: 'center' as const,
|
align: 'center' as const,
|
||||||
|
dataIndex: 'last_execution_time',
|
||||||
|
key: 'last_execution_time',
|
||||||
width: 150,
|
width: 150,
|
||||||
sorter: {
|
sorter: {
|
||||||
compare: (a: any, b: any) => {
|
compare: (a: any, b: any) => {
|
||||||
|
@ -210,6 +212,8 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
title: '最后运行时长',
|
title: '最后运行时长',
|
||||||
align: 'center' as const,
|
align: 'center' as const,
|
||||||
width: 120,
|
width: 120,
|
||||||
|
dataIndex: 'last_running_time',
|
||||||
|
key: 'last_running_time',
|
||||||
sorter: {
|
sorter: {
|
||||||
compare: (a: any, b: any) => {
|
compare: (a: any, b: any) => {
|
||||||
return a.last_running_time - b.last_running_time;
|
return a.last_running_time - b.last_running_time;
|
||||||
|
@ -366,6 +370,7 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
page: number;
|
page: number;
|
||||||
size: number;
|
size: number;
|
||||||
sorter: any;
|
sorter: any;
|
||||||
|
filters: any;
|
||||||
}>({} as any);
|
}>({} as any);
|
||||||
const [viewConf, setViewConf] = useState<any>();
|
const [viewConf, setViewConf] = useState<any>();
|
||||||
const [tableScrollHeight, setTableScrollHeight] = useState<number>();
|
const [tableScrollHeight, setTableScrollHeight] = useState<number>();
|
||||||
|
@ -388,9 +393,13 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
cmd[1] = cmd[1].replace('/ql/data/scripts/', '');
|
cmd[1] = cmd[1].replace('/ql/data/scripts/', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
let [p, s] = cmd[1].split('/');
|
let p: string, s: string;
|
||||||
if (!s) {
|
let index = cmd[1].lastIndexOf('/');
|
||||||
s = p;
|
if (index >= 0) {
|
||||||
|
s = cmd[1].slice(index + 1);
|
||||||
|
p = cmd[1].slice(0, index);
|
||||||
|
} else {
|
||||||
|
s = cmd[1];
|
||||||
p = '';
|
p = '';
|
||||||
}
|
}
|
||||||
history.push(`/script?p=${p}&s=${s}`);
|
history.push(`/script?p=${p}&s=${s}`);
|
||||||
|
@ -401,11 +410,10 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
|
|
||||||
const getCrons = () => {
|
const getCrons = () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const { page, size, sorter } = pageConf;
|
const { page, size, sorter, filters } = pageConf;
|
||||||
let url = `${config.apiPrefix}crons?searchValue=${searchText}&page=${page}&size=${size}`;
|
let url = `${config.apiPrefix}crons?searchValue=${searchText}&page=${page}&size=${size}&filters=${JSON.stringify(filters)}`;
|
||||||
if (sorter && sorter.field) {
|
if (sorter && sorter.field) {
|
||||||
url += `&sortField=${sorter.field}&sortType=${sorter.order === 'ascend' ? 'ASC' : 'DESC'
|
url += `&sorter=${JSON.stringify({ field: sorter.field, type: sorter.order === 'ascend' ? 'ASC' : 'DESC' })}`;
|
||||||
}`;
|
|
||||||
}
|
}
|
||||||
if (viewConf) {
|
if (viewConf) {
|
||||||
url += `&queryString=${JSON.stringify({
|
url += `&queryString=${JSON.stringify({
|
||||||
|
@ -820,7 +828,7 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
sorter: SorterResult<any> | SorterResult<any>[],
|
sorter: SorterResult<any> | SorterResult<any>[],
|
||||||
) => {
|
) => {
|
||||||
const { current, pageSize } = pagination;
|
const { current, pageSize } = pagination;
|
||||||
setPageConf({ page: current as number, size: pageSize as number, sorter });
|
setPageConf({ page: current as number, size: pageSize as number, sorter, filters });
|
||||||
localStorage.setItem('pageSize', String(pageSize));
|
localStorage.setItem('pageSize', String(pageSize));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -857,6 +865,7 @@ const Crontab = ({ headerStyle, isPhone, theme }: any) => {
|
||||||
page: 1,
|
page: 1,
|
||||||
size: parseInt(localStorage.getItem('pageSize') || '20'),
|
size: parseInt(localStorage.getItem('pageSize') || '20'),
|
||||||
sorter: {},
|
sorter: {},
|
||||||
|
filters: {}
|
||||||
});
|
});
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setTableScrollHeight(getTableScroll());
|
setTableScrollHeight(getTableScroll());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user