From 81fd808d02b1627fad17085b9d24ce032d5dbff6 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 30 May 2026 01:18:55 +0800 Subject: [PATCH] fix: data_filter form fields missing uitype and browserfields lookup 1. Default uitype to 'str' when no alter matches (text input) 2. Handle alter.uitype='select' by converting to code with inline data 3. Read browserfields from opts.row_options.browserfields (CRUD-generated UIs nest it under row_options, not at opts top level) --- bricks/dataviewer.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bricks/dataviewer.js b/bricks/dataviewer.js index 892e85d..e8f4a0d 100644 --- a/bricks/dataviewer.js +++ b/bricks/dataviewer.js @@ -268,7 +268,8 @@ bricks.DataViewer = class extends bricks.VBox { get_filter_fields(){ var fields = []; var self = this; - var alters = (this.opts.browserfields && this.opts.browserfields.alters) || {}; + var bf = this.opts.browserfields || (this.opts.row_options && this.opts.row_options.browserfields) || {}; + var alters = bf.alters || {}; var labels = this.opts.filter_labels || {}; function extract(node){ @@ -304,6 +305,11 @@ bricks.DataViewer = class extends bricks.VBox { if (alter.data_field){ f.data_field = alter.data_field; } + } else if (alter.uitype === 'select' && alter.options){ + f.uitype = 'code'; + f.data = alter.options; + } else { + f.uitype = 'str'; } fields.push(f); }