{ "widgettype": "VBox", "options": {"width": "100%", "height": "100%", "padding": "16px", "gap": "12px"}, "subwidgets": [ { "widgettype": "HBox", "options": {"width": "100%", "justifyContent": "space-between", "alignItems": "center"}, "subwidgets": [ {"widgettype": "Title", "options": {"text": "开发产线工作台", "cfontsize": 22}}, {"widgettype": "Filler"} ] }, { "widgettype": "Form", "id": "quick_submit_form", "options": { "name": "quick_submit", "width": "100%", "css": "card", "padding": "12px", "submit_url": "{{entire_url('api/task_submit.dspy')}}", "submit_label": "提交任务", "submit_css": "primary", "fields": [ { "name": "input_text", "uitype": "text", "label": "", "placeholder": "输入任务描述,如:生成一首中国风歌曲...", "cwidth": 40 }, { "name": "pipeline_id", "uitype": "code", "label": "产线", "placeholder": "选择产线", "cwidth": 20, "dataurl": "{{entire_url('api/pipeline_options.dspy')}}", "valueField": "pipeline_id", "textField": "pipeline_id_text", "params": { "valueField": "pipeline_id", "textField": "pipeline_id_text" } }, { "name": "title", "uitype": "hide", "value": "" } ] }, "binds": [ { "wid": "self", "event": "beforesubmit", "actiontype": "script", "target": "self", "script": "var input_el=this.form_element.querySelector('[name=\"input_text\"]');var pipe_el=this.form_element.querySelector('[name=\"pipeline_id\"]');var input_val=input_el?input_el.value:'';var title_el=this.form_element.querySelector('[name=\"title\"]');if(title_el)title_el.value=input_val||'new task';if(!input_val){bricks.show_error({title:'提示',message:'请输入任务描述'});return false;}return true;" }, { "wid": "self", "event": "submited", "actiontype": "script", "target": "self", "script": "var tbl=bricks.getWidgetById('task_table');setTimeout(function(){if(tbl)tbl.render({});},500);var input_el=this.form_element.querySelector('[name=\"input_text\"]');if(input_el)input_el.value='';" } ] }, { "widgettype": "HBox", "options": {"width": "100%", "css": "filler", "gap": "12px"}, "subwidgets": [ { "widgettype": "VBox", "options": {"width": "60%", "height": "100%", "gap": "4px"}, "subwidgets": [ { "widgettype": "HBox", "options": {"width": "100%", "alignItems": "center"}, "subwidgets": [ {"widgettype": "Text", "options": {"text": "任务列表", "cfontsize": 14}}, {"widgettype": "Filler"}, {"widgettype": "Text", "id": "poll_status", "options": {"text": "", "color": "#888", "cfontsize": 11}} ] }, { "widgettype": "Tabular", "id": "task_table", "options": { "width": "100%", "height": "100%", "css": "card", "data_url": "{{entire_url('api/task_list.dspy')}}", "data_method": "GET", "page_rows": 15, "popup": { "popup_event": "dblclick", "popup_desc": { "widgettype": "urlwidget", "options": { "url": "/pipeline_task/task_tree_popup.ui?task_id=${id}$&title=${encodeURIComponent(title)}$", "method": "GET" } }, "popupwindow": true, "options": {"title": "${title}$"} }, "toolbar": { "tools": [ {"name": "refresh", "label": "刷新", "selected_row": false}, {"name": "view", "label": "查看详情", "selected_row": true} ] }, "search_form": { "fields": [ { "name": "pipeline_id", "label": "产线", "uitype": "str", "placeholder": "筛选产线ID" }, { "name": "state", "label": "状态", "uitype": "code", "data": [ {"value": "", "text": "全部"}, {"value": "submitted", "text": "已提交"}, {"value": "running", "text": "运行中"}, {"value": "waiting", "text": "等待人工"}, {"value": "completed", "text": "已完成"}, {"value": "failed", "text": "失败"}, {"value": "paused", "text": "已暂停"}, {"value": "cancelled", "text": "已取消"} ] } ] }, "row_options": { "browserfields": { "exclouded": ["tenant_id", "owner_id", "params"], "cwidths": { "id": 16, "title": 22, "pipeline_id": 8, "state": 7, "current_version": 5, "created_at": 10 }, "alters": { "state": { "uitype": "code", "data": [ {"value": "submitted", "text": "已提交"}, {"value": "running", "text": "运行中"}, {"value": "waiting", "text": "⚠等待"}, {"value": "completed", "text": "已完成"}, {"value": "failed", "text": "失败"}, {"value": "paused", "text": "已暂停"}, {"value": "cancelled", "text": "已取消"} ] } } }, "fields": [ {"name": "id", "type": "str", "length": 32, "cwidth": 16, "uitype": "str", "label": "任务ID"}, {"name": "title", "type": "str", "length": 255, "cwidth": 22, "uitype": "str", "label": "标题"}, {"name": "pipeline_id", "type": "str", "length": 32, "cwidth": 8, "uitype": "str", "label": "产线"}, {"name": "state", "type": "str", "length": 20, "cwidth": 7, "uitype": "code", "label": "状态"}, {"name": "current_version", "type": "int", "cwidth": 5, "uitype": "int", "label": "版本"}, {"name": "created_at", "type": "datetime", "cwidth": 10, "uitype": "str", "label": "创建时间"} ] } }, "binds": [ { "wid": "self", "event": "refresh", "actiontype": "method", "target": "self", "method": "render" }, { "wid": "self", "event": "view", "actiontype": "urlwidget", "target": "app.pipeline_task_content", "mode": "replace", "options": { "url": "{{entire_url('task_detail.ui')}}", "params": {"task_id": "${id}$"} } } ] } ] }, { "widgettype": "VBox", "options": {"width": "40%", "height": "100%", "gap": "4px"}, "subwidgets": [ { "widgettype": "HBox", "options": {"width": "100%", "alignItems": "center"}, "subwidgets": [ {"widgettype": "Text", "options": {"text": "我的Bug", "cfontsize": 14}}, {"widgettype": "Filler"}, {"widgettype": "Text", "id": "bug_count", "options": {"text": "", "color": "#888", "cfontsize": 11}} ] }, { "widgettype": "Tabular", "id": "bug_table", "options": { "width": "100%", "height": "100%", "css": "card", "title": "", "data_url": "{{entire_url('api/my_bugs.dspy')}}", "data_method": "GET", "page_rows": 15, "row_options": { "browserfields": { "cwidths": { "title": 24, "status": 7, "severity": 6, "reporter_type": 6, "created_at": 9 } }, "fields": [ {"name": "title", "type": "str", "length": 300, "cwidth": 24, "uitype": "str", "label": "标题"}, {"name": "status", "type": "str", "length": 20, "cwidth": 7, "uitype": "str", "label": "状态"}, {"name": "severity", "type": "str", "length": 10, "cwidth": 6, "uitype": "str", "label": "严重度"}, {"name": "reporter_type", "type": "str", "length": 10, "cwidth": 6, "uitype": "str", "label": "来源"}, {"name": "created_at", "type": "str", "length": 20, "cwidth": 9, "uitype": "str", "label": "时间"}, {"name": "id", "type": "str", "length": 32, "uitype": "str", "label": "ID"} ] } } } ] } ] } ] }