import { amisRender, commonInfo, copyField, crudCommonOptions, paginationCommonOptions, time, yarnQueueCrud, } from '../../util/amis.tsx' const queueCrud = (name: string) => { return { type: 'crud', title: name, api: `${commonInfo.baseUrl}/queue/all?name=${name}`, ...crudCommonOptions(), interval: 10000, loadDataOnce: true, perPage: 5, headerToolbar: [ 'reload', 'filter-toggler', { type: 'tpl', tpl: '共 ${total|default:0} 个任务', }, paginationCommonOptions(false), ], footerToolbar: [], columns: [ { name: 'data.flinkJobId', label: '任务 ID', width: 200, ...copyField('data.flinkJobId'), }, { name: 'data.alias', label: '别名', className: 'nowrap', ...copyField('data.alias'), }, { name: 'data.batch', label: '批次', width: 100, type: 'tpl', tpl: '${data.batch}', }, { name: 'priority', label: '优先级', width: 60, align: 'center', type: 'tpl', tpl: '${priority}', }, { name: 'data.comment', label: '备注', className: 'nowrap', }, { name: 'createTime', label: '任务提交时间', ...time('createTime'), width: 160, fixed: 'right', }, ], } } const Queue = () => { let items = [] for (let name of Object.keys(commonInfo.clusters.compaction)) { // @ts-ignore items.push(yarnQueueCrud(name, commonInfo.clusters.compaction[name])) items.push(queueCrud(`compaction-queue-${name}`)) } return (
{amisRender( { type: 'wrapper', body: [ queueCrud('compaction-queue-pre'), ...items, ], }, )}
) } export default Queue