fix: inputdata2dic use getAll for multi-value fields, UserInputView iterate arrays

This commit is contained in:
yumoqing 2026-07-16 12:21:20 +08:00
parent f732d631e3
commit 829d099d31
2 changed files with 12 additions and 8 deletions

View File

@ -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({

View File

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