From 829d099d312c6889d82759404a9759fe4ba0f7c7 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 16 Jul 2026 12:21:20 +0800 Subject: [PATCH] fix: inputdata2dic use getAll for multi-value fields, UserInputView iterate arrays --- bricks/llmout.js | 15 +++++++++------ bricks/utils.js | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/bricks/llmout.js b/bricks/llmout.js index 9c40465..ba4cfb9 100644 --- a/bricks/llmout.js +++ b/bricks/llmout.js @@ -16,23 +16,26 @@ bricks.UserInputView = class extends bricks.VBox { this.v_ws = []; this.a_ws = []; this.input_fields.forEach(f =>{ - if (data[f.name]){ + var vals = data[f.name]; + if (!vals) return; + if (!Array.isArray(vals)) vals = [vals]; + vals.forEach(val => { if (f.name.startsWith('video')){ - var url = URL.createObjectURL(data[f.name]); + var url = URL.createObjectURL(val); this.v_ws.push(new bricks.VideoPlayer({ url:url, autoplay:false, width: '100%' })); } else if (f.name.startsWith('audio')){ - var url = URL.createObjectURL(data[f.name]); + var url = URL.createObjectURL(val); this.a_ws.push(new bricks.AudioPlayer({ url:url, autoplay:false, width: '100%' })); } else if (f.name.startsWith('image')){ - var url = URL.createObjectURL(data[f.name]); + var url = URL.createObjectURL(val); mdtext += ` * ${f.label || f.name} ![${f.label || f.name}](${url}) @@ -41,11 +44,11 @@ bricks.UserInputView = class extends bricks.VBox { mdtext += ` * ${f.label || f.name} -${data[f.name]} +${val} `; } - } + }); }); this.clear_widgets(); var w = new bricks.MdWidget({ diff --git a/bricks/utils.js b/bricks/utils.js index 6b0efc6..4b47087 100644 --- a/bricks/utils.js +++ b/bricks/utils.js @@ -222,8 +222,9 @@ var inputdata2dic = function(data){ try { var d = {} for (let k of data.keys()){ - var x = data.get(k); - if (k == 'prompt'){ + var vals = data.getAll(k); + var x = vals.length > 1 ? vals : vals[0]; + if (k == 'prompt' && typeof x === 'string'){ x = bricks.escapeSpecialChars(x); } d[k] = x;