fix(AgentIO): 模型下拉尊重服务端 selected 标记,不再每次重建回退首项

- UiCode.build_options: 未显式指定 value 时,扫描数据项 selected:true 标记作为初始选中
  (此前每次重建控件都把用户已持久化的选择重置成列表第一项)
- AgentIO 透传 model_params 给 AgentInput(多 tab 会话按 session_id 解析项目模型)
This commit is contained in:
yumoqing 2026-08-28 12:26:02 +08:00
parent 406ed6f17a
commit 5227a4d491
2 changed files with 9 additions and 1 deletions

View File

@ -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);

View File

@ -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]
}