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', '')
|
modulename = getattr(desc, 'modulename', '')
|
||||||
result = []
|
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():
|
for var_name, field_info in var_field_map.items():
|
||||||
field_name = field_info['name']
|
field_name = field_info['name']
|
||||||
field_title = field_info.get('title', field_name)
|
field_title = field_info.get('title', field_name)
|
||||||
field_uitype = field_info.get('uitype', 'str')
|
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 = {
|
field_def = {
|
||||||
'name': var_name,
|
'name': var_name,
|
||||||
@ -322,6 +330,18 @@ def build_filter_field_list(desc) -> list:
|
|||||||
'cwidth': 15
|
'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:
|
if field_uitype == 'code' and field_name in codes_map:
|
||||||
c = codes_map[field_name]
|
c = codes_map[field_name]
|
||||||
ctable = c.table if isinstance(c, dict) else getattr(c, 'table', '')
|
ctable = c.table if isinstance(c, dict) else getattr(c, 'table', '')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user