From 614c883863147355119abfccb5b5478666804938 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 31 Jul 2026 14:09:56 +0800 Subject: [PATCH] fix: use TextFiles widget (UiText+file+send) instead of broken render event --- wwwroot/index.ui | 66 +++++----------------------------- wwwroot/sd_cockpit/index.ui | 71 +++++-------------------------------- 2 files changed, 18 insertions(+), 119 deletions(-) diff --git a/wwwroot/index.ui b/wwwroot/index.ui index 7252a3b..017cd9a 100644 --- a/wwwroot/index.ui +++ b/wwwroot/index.ui @@ -83,70 +83,22 @@ ] }, { - "widgettype": "VBox", + "widgettype": "TextFiles", + "id": "chat_input", "options": { - "width": "100%", "bgcolor": "#fff", "border": "1px solid #e2e8f0", "borderTop": "none", "borderRadius": "0 0 8px 8px", - "padding": "10px 14px 10px 14px", - "gap": "6px" + "padding": "10px 14px 10px 14px" }, - "subwidgets": [ + "binds": [ { - "widgettype": "HBox", - "id": "file_list", - "options": { - "width": "100%", - "wrap": "wrap", - "gap": "4px", - "minHeight": "0" - }, - "subwidgets": [] - }, - { - "widgettype": "Form", - "id": "chat_form", - "options": { - "name": "chat_form", - "padding": "0", - "fields": [ - { "name": "message_text", "uitype": "textarea", "placeholder": "输入需求或回复 Agent...", "rows": 2 } - ] - } - }, - { - "widgettype": "HBox", - "options": { - "width": "100%", - "alignItems": "center", - "gap": "8px", - "padding": "4px 0 0 0" - }, - "subwidgets": [ - { - "widgettype": "Button", - "options": { "name": "attach_btn", "label": "添加文件" }, - "binds": [ - { - "wid": "self", "event": "click", "actiontype": "script", "target": "self", - "script": "var inp=document.createElement('input');inp.type='file';inp.multiple=true;inp.onchange=function(){var list=document.getElementById('cockpit_file_bag');if(!list){list=document.createElement('div');list.id='cockpit_file_bag';list.style.cssText='display:flex;flex-wrap:wrap;gap:4px';var fl=bricks.getWidgetById('file_list');if(fl)fl.dom_element.appendChild(list);}for(var i=0;i×';list.appendChild(chip);}};inp.click();" - } - ] - }, - { "widgettype": "Filler" }, - { - "widgettype": "Button", - "options": { "name": "send_btn", "label": "发送", "css": "primary" }, - "binds": [ - { - "wid": "self", "event": "click", "actiontype": "script", "target": "self", - "script": "var form=bricks.getWidgetById('chat_form');var msg=form?form.getValue('message_text'):'';if(!msg||!msg.trim()){bricks.show_error({title:'提示',message:'请输入内容'});return;}var iter=bricks.getWidgetById('current_iteration_id');var iid=iter?iter.options.value:'';if(!iid){bricks.show_error({title:'提示',message:'请先选择迭代'});return;}var files=[];var bag=document.getElementById('cockpit_file_bag');if(bag){var chips=bag.querySelectorAll('[data-fn]');for(var j=0;j×';list.appendChild(chip);}};inp.click();" - } - ] - }, - { "widgettype": "Filler" }, - { - "widgettype": "Button", - "options": { "name": "send_btn", "label": "发送", "css": "primary" }, - "binds": [ - { - "wid": "self", "event": "click", "actiontype": "script", "target": "self", - "script": "var ut=document.getElementsByName('cockpit_input')[0];var msg=ut?ut.value.trim():'';if(!msg){bricks.show_error({title:'提示',message:'请输入内容'});return;}var iter=bricks.getWidgetById('current_iteration_id');var iid=iter?iter.options.value:'';if(!iid){bricks.show_error({title:'提示',message:'请先选择迭代'});return;}var files=[];var bag=document.getElementById('cockpit_file_bag');if(bag){var chips=bag.querySelectorAll('[data-fn]');for(var j=0;j