fix: filter_fields从browserfields.alters取data/dataurl/valueField
This commit is contained in:
parent
5107e6c830
commit
faa571ffe0
@ -310,10 +310,18 @@ def build_filter_field_list(desc) -> list:
|
||||
modulename = getattr(desc, 'modulename', '')
|
||||
result = []
|
||||
|
||||
# 构建 browserfields alters 映射(含 inline data)
|
||||
alters_map = {}
|
||||
if desc.browserfields and hasattr(desc.browserfields, 'get'):
|
||||
alters_map = desc.browserfields.get('alters', {}) or {}
|
||||
|
||||
for var_name, field_info in var_field_map.items():
|
||||
field_name = field_info['name']
|
||||
field_title = field_info.get('title', field_name)
|
||||
field_uitype = field_info.get('uitype', 'str')
|
||||
# browserfields alters 中的 uitype 优先
|
||||
if field_name in alters_map and alters_map[field_name].get('uitype'):
|
||||
field_uitype = alters_map[field_name]['uitype']
|
||||
|
||||
field_def = {
|
||||
'name': var_name,
|
||||
@ -322,6 +330,18 @@ def build_filter_field_list(desc) -> list:
|
||||
'cwidth': 15
|
||||
}
|
||||
|
||||
# 从 alters 取 inline data 或 dataurl
|
||||
if field_name in alters_map:
|
||||
alter = alters_map[field_name]
|
||||
if alter.get('data'):
|
||||
field_def['data'] = alter['data']
|
||||
if alter.get('dataurl'):
|
||||
field_def['dataurl'] = alter['dataurl']
|
||||
if alter.get('valueField'):
|
||||
field_def['valueField'] = alter['valueField']
|
||||
if alter.get('textField'):
|
||||
field_def['textField'] = alter['textField']
|
||||
|
||||
if field_uitype == 'code' and field_name in codes_map:
|
||||
c = codes_map[field_name]
|
||||
ctable = c.table if isinstance(c, dict) else getattr(c, 'table', '')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user