fix: codeViewBuilder支持DataRow调用(rec为undefined时用desc.user_data)并增加field_name_text查找逻辑

This commit is contained in:
yumoqing 2026-05-31 15:59:17 +08:00
parent f49994cea7
commit b43d2e7cbd

View File

@ -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')
}