diff --git a/packages/@steedos-widgets/amis-lib/src/lib/converter/amis/fields/lookup.js b/packages/@steedos-widgets/amis-lib/src/lib/converter/amis/fields/lookup.js index 946b5ff5..6b3c225e 100644 --- a/packages/@steedos-widgets/amis-lib/src/lib/converter/amis/fields/lookup.js +++ b/packages/@steedos-widgets/amis-lib/src/lib/converter/amis/fields/lookup.js @@ -571,6 +571,20 @@ export async function lookupToAmisPicker(field, readonly, ctx){ }); payload.data.rows = updatedResult; } + let __changedFilterFormValuesKey = "__changedFilterFormValues"; + let __lookupField = api.data.$self.__lookupField; + if(__lookupField){ + let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to; + if(__lookupField.reference_to_field){ + lookupTag += "__" + __lookupField.reference_to_field; + } + __changedFilterFormValuesKey += lookupTag; + } + let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {}; + let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {}; + // 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112 + payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues; + payload.data.__changedSearchBoxValues = __changedSearchBoxValues; return payload; `; if(field.optionsFunction || field._optionsFunction){