- 纯薄交互层,无数据表,调用 pipeline-service 引擎函数 - 6个dspy API(submit/list/detail/node/modify/control) - 4个UI页面(index/list/detail/submit) - pipeline_task.js 交互辅助函数 - load_path.py RBAC 权限注册 - 完整 README 文档
75 lines
2.5 KiB
JavaScript
75 lines
2.5 KiB
JavaScript
// pipeline_task.js — 产线任务交互辅助函数
|
|
|
|
var currentTaskId = '';
|
|
|
|
// 加载任务列表
|
|
function loadTaskList() {
|
|
var filterPipeline = $('[name="filter_pipeline"]').val() || '';
|
|
var url = entire_url('api/task_list.dspy');
|
|
if (filterPipeline) {
|
|
url += '?pipeline_id=' + filterPipeline;
|
|
}
|
|
|
|
$.get(url, function(resp) {
|
|
var data = typeof resp === 'string' ? JSON.parse(resp) : resp;
|
|
if (!data.success) {
|
|
$('#task_table_area').html('<div class="alert error">' + (data.message || '加载失败') + '</div>');
|
|
return;
|
|
}
|
|
|
|
var tasks = data.tasks || [];
|
|
if (tasks.length === 0) {
|
|
$('#task_table_area').html('<div class="empty-state">暂无任务</div>');
|
|
return;
|
|
}
|
|
|
|
var html = '<table class="data-table"><thead><tr>';
|
|
html += '<th>任务ID</th><th>标题</th><th>状态</th><th>版本</th><th>创建时间</th><th>操作</th>';
|
|
html += '</tr></thead><tbody>';
|
|
|
|
tasks.forEach(function(t) {
|
|
html += '<tr>';
|
|
html += '<td>' + (t.id || '').substring(0, 8) + '</td>';
|
|
html += '<td>' + (t.title || '') + '</td>';
|
|
html += '<td><span class="badge state-' + (t.state || '') + '">' + (t.state || '') + '</span></td>';
|
|
html += '<td>v' + (t.current_version || 1) + '</td>';
|
|
html += '<td>' + (t.created_at || '') + '</td>';
|
|
html += '<td><button class="btn-small" onclick="viewTask(\'' + t.id + '\')">查看</button></td>';
|
|
html += '</tr>';
|
|
});
|
|
|
|
html += '</tbody></table>';
|
|
$('#task_table_area').html(html);
|
|
});
|
|
}
|
|
|
|
// 查看任务详情
|
|
function viewTask(taskId) {
|
|
currentTaskId = taskId;
|
|
var url = entire_url('task_detail.ui');
|
|
window.location.href = url + '?task_id=' + taskId;
|
|
}
|
|
|
|
// 控制任务(暂停/恢复/取消)
|
|
function controlTask(action) {
|
|
if (!currentTaskId) return;
|
|
|
|
var url = entire_url('api/task_control.dspy');
|
|
$.post(url, {task_id: currentTaskId, action: action}, function(resp) {
|
|
var data = typeof resp === 'string' ? JSON.parse(resp) : resp;
|
|
if (data.success) {
|
|
alert('操作成功: ' + data.message);
|
|
location.reload();
|
|
} else {
|
|
alert('操作失败: ' + (data.message || '未知错误'));
|
|
}
|
|
});
|
|
}
|
|
|
|
// 页面加载完成
|
|
$(function() {
|
|
if ($('#task_table_area').length > 0) {
|
|
loadTaskList();
|
|
}
|
|
});
|