From b43d2e7cbd25efd89ef2242dc6a285b0062a9e5d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sun, 31 May 2026 15:59:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20codeViewBuilder=E6=94=AF=E6=8C=81DataRow?= =?UTF-8?q?=E8=B0=83=E7=94=A8(rec=E4=B8=BAundefined=E6=97=B6=E7=94=A8desc.?= =?UTF-8?q?user=5Fdata)=E5=B9=B6=E5=A2=9E=E5=8A=A0field=5Fname=5Ftext?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bricks/uitypesdef.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/bricks/uitypesdef.js b/bricks/uitypesdef.js index ae53893..26b8b0a 100644 --- a/bricks/uitypesdef.js +++ b/bricks/uitypesdef.js @@ -108,11 +108,23 @@ bricks.uitypesdef.setViewBuilder('float', floatViewBuilder); var codeViewBuilder = function(desc, rec){ var opts = objcopy(desc) if (opts.uiparams) bricks.extend(opts, opts.uiparams); - var name = desc.textFeild || 'text'; - var v = rec[name]; + // rec may be undefined when called from DataRow, use desc.user_data instead + var record = rec || desc.user_data || {}; + // Try textField (correct spelling) first, then textFeild (legacy typo), then default 'text' + var tf = desc.textField || desc.textFeild || 'text'; + var v = record[tf]; if (! v) { - name = desc.valueField || 'value'; - v = rec[name]; + // Try field_name + '_text' convention + v = record[desc.name + '_text']; + } + if (! v) { + // Fall back to valueField or 'value' + var vf = desc.valueField || 'value'; + v = record[vf]; + } + if (! v) { + // Last resort: use the raw field value + v = record[desc.name]; } return buildText(v, 'left') }