@steedos-widgets/amis-object 3.6.11-beta.7 → 3.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11564,7 +11564,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
11564
11564
  // listView.handleChangePage(1);
11565
11565
 
11566
11566
 
11567
- // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现快速搜索输入框中过滤条件变更时再点刷新可以自动跳转到第一页面
11567
+ // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页
11568
11568
  const scope = event.context.scoped;
11569
11569
  const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");
11570
11570
  sb.handleSearch();
@@ -14540,12 +14540,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
14540
14540
  }
14541
14541
 
14542
14542
  var fieldFilters = ${JSON.stringify(field.filters)};
14543
- if(fieldFilters && fieldFilters.length){
14544
- var filtersForString = JSON.stringify(fieldFilters);
14545
- if(filtersForString.indexOf('$') > -1) {
14546
- var currentAmis = amisRequire('amis');
14547
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$self.__super))
14543
+ var currentAmis = amisRequire('amis');
14544
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
14545
+ function traverseNestedArray(arr) {
14546
+ for (let i = 0; i < arr.length; i++) {
14547
+ if (Array.isArray(arr[i])) {
14548
+ // 如果当前元素是数组,则递归调用自身继续遍历
14549
+ traverseNestedArray(arr[i]);
14550
+ } else {
14551
+ // 如果当前元素不是数组,则处理该元素
14552
+ // 下面正则用于匹配amis公式\${}
14553
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
14554
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
14555
+ }
14556
+ }
14548
14557
  }
14558
+ }
14559
+ if(fieldFilters && fieldFilters.length){
14560
+ traverseNestedArray(fieldFilters);
14549
14561
  filters.push(fieldFilters);
14550
14562
  }
14551
14563
 
@@ -14945,12 +14957,24 @@ async function lookupToAmisSelect(field, readonly, ctx){
14945
14957
  // }
14946
14958
 
14947
14959
  var fieldFilters = ${JSON.stringify(field.filters)};
14948
- if(fieldFilters && fieldFilters.length){
14949
- var filtersForString = JSON.stringify(fieldFilters);
14950
- if(filtersForString.indexOf('$') > -1) {
14951
- var currentAmis = amisRequire('amis');
14952
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$))
14960
+ var currentAmis = amisRequire('amis');
14961
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
14962
+ function traverseNestedArray(arr) {
14963
+ for (let i = 0; i < arr.length; i++) {
14964
+ if (Array.isArray(arr[i])) {
14965
+ // 如果当前元素是数组,则递归调用自身继续遍历
14966
+ traverseNestedArray(arr[i]);
14967
+ } else {
14968
+ // 如果当前元素不是数组,则处理该元素
14969
+ // 下面正则用于匹配amis公式\${}
14970
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
14971
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
14972
+ }
14973
+ }
14953
14974
  }
14975
+ }
14976
+ if(fieldFilters && fieldFilters.length){
14977
+ traverseNestedArray(fieldFilters);
14954
14978
  filters.push(fieldFilters);
14955
14979
  }
14956
14980