@steedos-widgets/sortable 3.6.11-beta.7 → 3.6.12

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.
@@ -24623,9 +24623,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24623
24623
  // 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
24624
24624
  // 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
24625
24625
  // 基于amis3.6,已经不再用blur事件触发onChangeScript,所以这里把之前加上的onChangeScript去掉了,如果以后还要换blur来触发onChangeScript脚本的话,这里又要加回onChangeScript脚本
24626
+ // 这里重新额外先执行下onChangeScript,是因为不执行还有bug:[Bug]: amis升级到6.3后列表快速搜索功能,有时点击右上角的刷新按钮会按上次搜索的过滤条件请求数据 #6734
24626
24627
  const onSearchScript = `
24628
+ ${onChangeScript}
24629
+
24627
24630
  // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
24628
- const scope = event.context.scoped;
24631
+ // const scope = event.context.scoped;
24629
24632
  // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
24630
24633
  // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
24631
24634
  let isLookup = event.data.isLookup;
@@ -24731,10 +24734,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24731
24734
  // listView.handleChangePage(1);
24732
24735
 
24733
24736
 
24734
- // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现快速搜索输入框中过滤条件变更时再点刷新可以自动跳转到第一页面
24737
+ // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页
24735
24738
  const scope = event.context.scoped;
24736
24739
  const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");
24737
- sb.handleSearch();
24740
+ const sbValue = sb.state.value;
24741
+ sb.handleSearch(sbValue);
24738
24742
  `;
24739
24743
  toolbarReloadButton = {
24740
24744
  // "type": "reload",//不可以直接使用reload,因为它不会设置页码到第一页,这在加载更多按钮的翻页模式下会有问题
@@ -25999,12 +26003,24 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25999
26003
  }
26000
26004
 
26001
26005
  var fieldFilters = ${JSON.stringify(field.filters)};
26002
- if(fieldFilters && fieldFilters.length){
26003
- var filtersForString = JSON.stringify(fieldFilters);
26004
- if(filtersForString.indexOf('$') > -1) {
26005
- var currentAmis = amisRequire('amis');
26006
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$self.__super))
26006
+ var currentAmis = amisRequire('amis');
26007
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
26008
+ function traverseNestedArray(arr) {
26009
+ for (let i = 0; i < arr.length; i++) {
26010
+ if (Array.isArray(arr[i])) {
26011
+ // 如果当前元素是数组,则递归调用自身继续遍历
26012
+ traverseNestedArray(arr[i]);
26013
+ } else {
26014
+ // 如果当前元素不是数组,则处理该元素
26015
+ // 下面正则用于匹配amis公式\${}
26016
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
26017
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
26018
+ }
26019
+ }
26007
26020
  }
26021
+ }
26022
+ if(fieldFilters && fieldFilters.length){
26023
+ traverseNestedArray(fieldFilters);
26008
26024
  filters.push(fieldFilters);
26009
26025
  }
26010
26026
 
@@ -26404,12 +26420,24 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26404
26420
  // }
26405
26421
 
26406
26422
  var fieldFilters = ${JSON.stringify(field.filters)};
26407
- if(fieldFilters && fieldFilters.length){
26408
- var filtersForString = JSON.stringify(fieldFilters);
26409
- if(filtersForString.indexOf('$') > -1) {
26410
- var currentAmis = amisRequire('amis');
26411
- fieldFilters = JSON.parse(currentAmis.evaluate(filtersForString, api.data.$))
26423
+ var currentAmis = amisRequire('amis');
26424
+ //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
26425
+ function traverseNestedArray(arr) {
26426
+ for (let i = 0; i < arr.length; i++) {
26427
+ if (Array.isArray(arr[i])) {
26428
+ // 如果当前元素是数组,则递归调用自身继续遍历
26429
+ traverseNestedArray(arr[i]);
26430
+ } else {
26431
+ // 如果当前元素不是数组,则处理该元素
26432
+ // 下面正则用于匹配amis公式\${}
26433
+ if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
26434
+ arr[i] = currentAmis.evaluate(arr[i], api.data.$);
26435
+ }
26436
+ }
26412
26437
  }
26438
+ }
26439
+ if(fieldFilters && fieldFilters.length){
26440
+ traverseNestedArray(fieldFilters);
26413
26441
  filters.push(fieldFilters);
26414
26442
  }
26415
26443
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "3.6.11-beta.7",
3
+ "version": "3.6.12",
4
4
  "main": "dist/sortable.cjs.js",
5
5
  "module": "dist/sortable.esm.js",
6
6
  "unpkg": "dist/sortable.umd.js",
@@ -45,7 +45,7 @@
45
45
  "dependencies": {
46
46
  "@dnd-kit/core": "^6.0.5",
47
47
  "@dnd-kit/sortable": "^7.0.1",
48
- "@steedos-widgets/amis-lib": "3.6.11-beta.7"
48
+ "@steedos-widgets/amis-lib": "3.6.12"
49
49
  },
50
- "gitHead": "46c5199ed3fa9d1dc9ba82dfcfcad56e1638639e"
50
+ "gitHead": "e71fedfe247929278dab0a0ecc9679246d4ad7f7"
51
51
  }