From 79cfc005bb36a11537300b5c17589bd1289d8fc9 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 12 Jun 2026 11:40:55 +0800 Subject: [PATCH] feat: filter form passes valueField/textField to UiCode get_filter_fields() now: - Copies valueField/textField from alter config to filter field - Uses custom valueField for empty option check and injection - Ensures filter form and add/edit form use identical code-type config --- bricks/dataviewer.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bricks/dataviewer.js b/bricks/dataviewer.js index bc9f6b1..23498dd 100644 --- a/bricks/dataviewer.js +++ b/bricks/dataviewer.js @@ -295,12 +295,20 @@ bricks.DataViewer = class extends bricks.VBox { if (alter.uitype === 'code'){ f.uitype = 'code'; f.data = []; + // Pass valueField/textField from alter config + if (alter.valueField) f.valueField = alter.valueField; + if (alter.textField) f.textField = alter.textField; + var vf = f.valueField || 'value'; + var tf = f.textField || 'text'; // 检查是否已有空选项 var hasEmpty = alter.data && alter.data.some(d => - d.value === '' || d.value === null || d.value === undefined + d[vf] === '' || d[vf] === null || d[vf] === undefined ); if (!hasEmpty) { - f.data.push({value: '', text: ''}); + var emptyOpt = {}; + emptyOpt[vf] = ''; + emptyOpt[tf] = ''; + f.data.push(emptyOpt); } if (alter.data && Array.isArray(alter.data)){ f.data = f.data.concat(alter.data);