@steedos-widgets/amis-lib 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.
package/dist/index.esm.js CHANGED
@@ -8383,7 +8383,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
8383
8383
  // listView.handleChangePage(1);
8384
8384
 
8385
8385
 
8386
- // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现快速搜索输入框中过滤条件变更时再点刷新可以自动跳转到第一页面
8386
+ // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页
8387
8387
  const scope = event.context.scoped;
8388
8388
  const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");
8389
8389
  sb.handleSearch();
@@ -11359,12 +11359,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
11359
11359
  }
11360
11360
 
11361
11361
  var fieldFilters = ${JSON.stringify(field.filters)};
11362
- if(fieldFilters && fieldFilters.length){
11363
- var filtersForString = JSON.stringify(fieldFilters);
11364
- if(filtersForString.indexOf('$') > -1) {
11365
- var currentAmis = amisRequire('amis');
11366
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$self.__super))
11362
+ var currentAmis = amisRequire('amis');
11363
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
11364
+ function traverseNestedArray(arr) {
11365
+ for (let i = 0; i < arr.length; i++) {
11366
+ if (Array.isArray(arr[i])) {
11367
+ // 如果当前元素是数组,则递归调用自身继续遍历
11368
+ traverseNestedArray(arr[i]);
11369
+ } else {
11370
+ // 如果当前元素不是数组,则处理该元素
11371
+ // 下面正则用于匹配amis公式\${}
11372
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
11373
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
11374
+ }
11375
+ }
11367
11376
  }
11377
+ }
11378
+ if(fieldFilters && fieldFilters.length){
11379
+ traverseNestedArray(fieldFilters);
11368
11380
  filters.push(fieldFilters);
11369
11381
  }
11370
11382
 
@@ -11764,12 +11776,24 @@ async function lookupToAmisSelect(field, readonly, ctx){
11764
11776
  // }
11765
11777
 
11766
11778
  var fieldFilters = ${JSON.stringify(field.filters)};
11767
- if(fieldFilters && fieldFilters.length){
11768
- var filtersForString = JSON.stringify(fieldFilters);
11769
- if(filtersForString.indexOf('$') > -1) {
11770
- var currentAmis = amisRequire('amis');
11771
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$))
11779
+ var currentAmis = amisRequire('amis');
11780
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
11781
+ function traverseNestedArray(arr) {
11782
+ for (let i = 0; i < arr.length; i++) {
11783
+ if (Array.isArray(arr[i])) {
11784
+ // 如果当前元素是数组,则递归调用自身继续遍历
11785
+ traverseNestedArray(arr[i]);
11786
+ } else {
11787
+ // 如果当前元素不是数组,则处理该元素
11788
+ // 下面正则用于匹配amis公式\${}
11789
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
11790
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
11791
+ }
11792
+ }
11772
11793
  }
11794
+ }
11795
+ if(fieldFilters && fieldFilters.length){
11796
+ traverseNestedArray(fieldFilters);
11773
11797
  filters.push(fieldFilters);
11774
11798
  }
11775
11799