From 5227a4d491120fba7eb69c943c62d617ce96e1f6 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 28 Aug 2026 12:26:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(AgentIO):=20=E6=A8=A1=E5=9E=8B=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E5=B0=8A=E9=87=8D=E6=9C=8D=E5=8A=A1=E7=AB=AF=20select?= =?UTF-8?q?ed=20=E6=A0=87=E8=AE=B0=EF=BC=8C=E4=B8=8D=E5=86=8D=E6=AF=8F?= =?UTF-8?q?=E6=AC=A1=E9=87=8D=E5=BB=BA=E5=9B=9E=E9=80=80=E9=A6=96=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UiCode.build_options: 未显式指定 value 时,扫描数据项 selected:true 标记作为初始选中 (此前每次重建控件都把用户已持久化的选择重置成列表第一项) - AgentIO 透传 model_params 给 AgentInput(多 tab 会话按 session_id 解析项目模型) --- bricks/agent.js | 2 +- bricks/input.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bricks/agent.js b/bricks/agent.js index 2a789fe..225d469 100644 --- a/bricks/agent.js +++ b/bricks/agent.js @@ -323,7 +323,7 @@ bricks.AgentIO = class extends bricks.VBox { width: '100%', css: 'filler' }); - this.inputw = new bricks.AgentInput({model_dataurl:this.opts.model_dataurl,model_cwidth:this.opts.model_cwidth,placeholder:this.opts.placeholder}); + this.inputw = new bricks.AgentInput({model_dataurl:this.opts.model_dataurl,model_cwidth:this.opts.model_cwidth,model_params:this.opts.model_params,placeholder:this.opts.placeholder}); this.inputw.bind('inputed', this.user_inputed.bind(this)); this.add_widget(this.msg_box); this.add_widget(this.inputw); diff --git a/bricks/input.js b/bricks/input.js index 3b6e0af..d1ae8d5 100644 --- a/bricks/input.js +++ b/bricks/input.js @@ -1198,6 +1198,14 @@ bricks.UiCode =class extends bricks.UiType { var vf = this.opts.valueField || 'value'; var tf = this.opts.textField || 'text'; var v = this.opts.value || this.opts.defaultvalue || null; + // 服务端数据可用 selected:true 标记当前项(如:项目已选的模型)。 + // 未显式指定 value 时尊重该标记,而不是永远回退第一项—— + // 否则每次重建控件都会把用户已持久化的选择重置成列表首项。 + if (!v) { + for (var i = 0; i < data.length; i++) { + if (data[i] && data[i].selected) { v = data[i][vf]; break; } + } + } if (!v && ! this.opts.nullable && data.length > 0){ v = data[0][vf] }