@steedos-widgets/amis-lib 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.
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +41 -13
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +41 -13
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +5 -4
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -8275,9 +8275,12 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
8275
8275
|
// 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
|
|
8276
8276
|
// 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
|
|
8277
8277
|
// 基于amis3.6,已经不再用blur事件触发onChangeScript,所以这里把之前加上的onChangeScript去掉了,如果以后还要换blur来触发onChangeScript脚本的话,这里又要加回onChangeScript脚本
|
|
8278
|
+
// 这里重新额外先执行下onChangeScript,是因为不执行还有bug:[Bug]: amis升级到6.3后列表快速搜索功能,有时点击右上角的刷新按钮会按上次搜索的过滤条件请求数据 #6734
|
|
8278
8279
|
const onSearchScript = `
|
|
8280
|
+
${onChangeScript}
|
|
8281
|
+
|
|
8279
8282
|
// 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
|
|
8280
|
-
const scope = event.context.scoped;
|
|
8283
|
+
// const scope = event.context.scoped;
|
|
8281
8284
|
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
8282
8285
|
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
8283
8286
|
let isLookup = event.data.isLookup;
|
|
@@ -8383,10 +8386,11 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
8383
8386
|
// listView.handleChangePage(1);
|
|
8384
8387
|
|
|
8385
8388
|
|
|
8386
|
-
// 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8
|
|
8389
|
+
// 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页
|
|
8387
8390
|
const scope = event.context.scoped;
|
|
8388
8391
|
const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");
|
|
8389
|
-
sb.
|
|
8392
|
+
const sbValue = sb.state.value;
|
|
8393
|
+
sb.handleSearch(sbValue);
|
|
8390
8394
|
`;
|
|
8391
8395
|
toolbarReloadButton = {
|
|
8392
8396
|
// "type": "reload",//不可以直接使用reload,因为它不会设置页码到第一页,这在加载更多按钮的翻页模式下会有问题
|
|
@@ -11359,12 +11363,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
11359
11363
|
}
|
|
11360
11364
|
|
|
11361
11365
|
var fieldFilters = ${JSON.stringify(field.filters)};
|
|
11362
|
-
|
|
11363
|
-
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
|
|
11366
|
+
var currentAmis = amisRequire('amis');
|
|
11367
|
+
//递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
|
|
11368
|
+
function traverseNestedArray(arr) {
|
|
11369
|
+
for (let i = 0; i < arr.length; i++) {
|
|
11370
|
+
if (Array.isArray(arr[i])) {
|
|
11371
|
+
// 如果当前元素是数组,则递归调用自身继续遍历
|
|
11372
|
+
traverseNestedArray(arr[i]);
|
|
11373
|
+
} else {
|
|
11374
|
+
// 如果当前元素不是数组,则处理该元素
|
|
11375
|
+
// 下面正则用于匹配amis公式\${}
|
|
11376
|
+
if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
|
|
11377
|
+
arr[i] = currentAmis.evaluate(arr[i], api.data.$);
|
|
11378
|
+
}
|
|
11379
|
+
}
|
|
11367
11380
|
}
|
|
11381
|
+
}
|
|
11382
|
+
if(fieldFilters && fieldFilters.length){
|
|
11383
|
+
traverseNestedArray(fieldFilters);
|
|
11368
11384
|
filters.push(fieldFilters);
|
|
11369
11385
|
}
|
|
11370
11386
|
|
|
@@ -11764,12 +11780,24 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
11764
11780
|
// }
|
|
11765
11781
|
|
|
11766
11782
|
var fieldFilters = ${JSON.stringify(field.filters)};
|
|
11767
|
-
|
|
11768
|
-
|
|
11769
|
-
|
|
11770
|
-
|
|
11771
|
-
|
|
11783
|
+
var currentAmis = amisRequire('amis');
|
|
11784
|
+
//递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
|
|
11785
|
+
function traverseNestedArray(arr) {
|
|
11786
|
+
for (let i = 0; i < arr.length; i++) {
|
|
11787
|
+
if (Array.isArray(arr[i])) {
|
|
11788
|
+
// 如果当前元素是数组,则递归调用自身继续遍历
|
|
11789
|
+
traverseNestedArray(arr[i]);
|
|
11790
|
+
} else {
|
|
11791
|
+
// 如果当前元素不是数组,则处理该元素
|
|
11792
|
+
// 下面正则用于匹配amis公式\${}
|
|
11793
|
+
if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
|
|
11794
|
+
arr[i] = currentAmis.evaluate(arr[i], api.data.$);
|
|
11795
|
+
}
|
|
11796
|
+
}
|
|
11772
11797
|
}
|
|
11798
|
+
}
|
|
11799
|
+
if(fieldFilters && fieldFilters.length){
|
|
11800
|
+
traverseNestedArray(fieldFilters);
|
|
11773
11801
|
filters.push(fieldFilters);
|
|
11774
11802
|
}
|
|
11775
11803
|
|