@steedos-widgets/amis-lib 1.3.17-beta.1 → 1.3.17
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 +117 -77
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +117 -77
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +19 -13
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/toolbar.d.ts +1 -2
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -2642,19 +2642,25 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2642
2642
|
if(options.isRelated){
|
|
2643
2643
|
api.url += "&recordId=${_master.recordId}";
|
|
2644
2644
|
}
|
|
2645
|
-
api.cache = 3000;
|
|
2646
|
-
|
|
2645
|
+
api.cache = 3000;
|
|
2647
2646
|
api.data.$term = "$term";
|
|
2648
2647
|
api.data.term = "$term";
|
|
2649
2648
|
api.data.$self = "$$";
|
|
2650
2649
|
api.data.self = "$$";
|
|
2651
2650
|
api.data.filter = "$filter";
|
|
2652
|
-
api.data.__filterFormValues = "${__filterFormValues}";
|
|
2653
|
-
api.data.__serachBoxValues = "${__serachBoxValues}";
|
|
2654
2651
|
api.data.loaded = "${loaded}";
|
|
2655
2652
|
api.data.listViewId = "${listViewId}";
|
|
2656
2653
|
api.data.listName = "${listName}";
|
|
2657
2654
|
api.requestAdaptor = `
|
|
2655
|
+
let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
|
|
2656
|
+
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
2657
|
+
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
2658
|
+
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
2659
|
+
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
2660
|
+
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
2661
|
+
// 这里直接合并到api.data.$self,而不是后面定义的selfData变量,是因为可以省去在接收适配器中写一样的合并逻辑
|
|
2662
|
+
// 如果有问题可以改为合并到selfData变量中,但是要在接收适配器中写上一样的合并逻辑,否则里面的过滤条件不会存入本地存储中
|
|
2663
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
2658
2664
|
// selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.
|
|
2659
2665
|
let selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
2660
2666
|
// 保留一份初始data,以供自定义发送适配器中获取原始数据。
|
|
@@ -2724,11 +2730,7 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2724
2730
|
userFilters = [["${valueField.name}", "=", selfData.value]];
|
|
2725
2731
|
}
|
|
2726
2732
|
|
|
2727
|
-
|
|
2728
|
-
const __serachBoxValues = api.data.__serachBoxValues;
|
|
2729
|
-
// 筛选按钮
|
|
2730
|
-
const filterSelfData = __filterFormValues ? __filterFormValues : selfData;
|
|
2731
|
-
var searchableFilter = SteedosUI.getSearchFilter(filterSelfData) || [];
|
|
2733
|
+
var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
|
|
2732
2734
|
if(searchableFilter.length > 0){
|
|
2733
2735
|
if(userFilters.length > 0 ){
|
|
2734
2736
|
userFilters = [userFilters, 'and', searchableFilter];
|
|
@@ -2749,8 +2751,7 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2749
2751
|
})
|
|
2750
2752
|
}
|
|
2751
2753
|
|
|
2752
|
-
|
|
2753
|
-
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(keyWords, allowSearchFields);
|
|
2754
|
+
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);
|
|
2754
2755
|
if(keywordsFilters && keywordsFilters.length > 0){
|
|
2755
2756
|
userFilters.push(keywordsFilters);
|
|
2756
2757
|
}
|
|
@@ -2903,6 +2904,7 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2903
2904
|
selfData.page = localListViewProps.page || 1;
|
|
2904
2905
|
}
|
|
2905
2906
|
}
|
|
2907
|
+
|
|
2906
2908
|
delete selfData.context;
|
|
2907
2909
|
delete selfData.global;
|
|
2908
2910
|
sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));
|
|
@@ -5676,6 +5678,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5676
5678
|
const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
|
|
5677
5679
|
const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
|
|
5678
5680
|
const onSearchScript = `
|
|
5681
|
+
// console.log("===onSearchScript=form==");
|
|
5679
5682
|
const scope = event.context.scoped;
|
|
5680
5683
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
5681
5684
|
return n.props.type === "form";
|
|
@@ -5732,25 +5735,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5732
5735
|
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
|
|
5733
5736
|
`;
|
|
5734
5737
|
const onCancelScript = `
|
|
5735
|
-
|
|
5736
|
-
{
|
|
5737
|
-
"componentId": 'service_${ctx.crudId}',
|
|
5738
|
-
"actionType": "setValue",
|
|
5739
|
-
"args": {
|
|
5740
|
-
"value": {
|
|
5741
|
-
"__filterFormValues": null
|
|
5742
|
-
}
|
|
5743
|
-
}
|
|
5744
|
-
}
|
|
5745
|
-
)
|
|
5738
|
+
// console.log("===onCancelScript=form==");
|
|
5746
5739
|
const scope = event.context.scoped;
|
|
5747
5740
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
5748
5741
|
return n.props.type === "form";
|
|
5749
5742
|
});
|
|
5750
5743
|
var filterFormValues = filterForm.getValues();
|
|
5751
|
-
|
|
5752
|
-
return n.props.type === "crud";
|
|
5753
|
-
});
|
|
5744
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
5754
5745
|
const removedValues = {};
|
|
5755
5746
|
for(var k in filterFormValues){
|
|
5756
5747
|
if(/^__searchable__/.test(k)){
|
|
@@ -5765,7 +5756,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5765
5756
|
if(localListViewProps){
|
|
5766
5757
|
localListViewProps = JSON.parse(localListViewProps);
|
|
5767
5758
|
for(var k in localListViewProps){
|
|
5768
|
-
if(k
|
|
5759
|
+
if(/^__searchable__/.test(k)){
|
|
5769
5760
|
removedValues[k] = null;
|
|
5770
5761
|
}
|
|
5771
5762
|
}
|
|
@@ -5776,20 +5767,35 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5776
5767
|
//lookup字段保留快速搜索条件
|
|
5777
5768
|
removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
|
|
5778
5769
|
}
|
|
5779
|
-
filterForm.
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5770
|
+
filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了
|
|
5771
|
+
// 以下方法都无法实现清除表单值
|
|
5772
|
+
// filterForm.setValues({}, true)
|
|
5773
|
+
// filterForm.reset();
|
|
5774
|
+
// filterForm.handleAction({},{
|
|
5775
|
+
// "actionType": "setValue",
|
|
5776
|
+
// "args": {
|
|
5777
|
+
// "value": removedValues
|
|
5778
|
+
// }
|
|
5779
|
+
// });
|
|
5780
|
+
// 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段
|
|
5781
|
+
// filterForm.handleAction({},{
|
|
5782
|
+
// "actionType": "clear"
|
|
5783
|
+
// });
|
|
5784
|
+
|
|
5785
|
+
// 清除__changedFilterFormValues中的值
|
|
5786
|
+
crud && crud.setData({__changedFilterFormValues: {}});
|
|
5787
|
+
filterForm.handleFormSubmit(event);
|
|
5788
|
+
// crud.handleFilterSubmit(removedValues);
|
|
5789
|
+
|
|
5790
|
+
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
5791
|
+
filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
|
|
5787
5792
|
//触发amis crud 高度重算
|
|
5788
5793
|
setTimeout(()=>{
|
|
5789
5794
|
window.dispatchEvent(new Event("resize"))
|
|
5790
5795
|
}, 100);
|
|
5791
5796
|
// 移除搜索按钮上的红点
|
|
5792
|
-
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5797
|
+
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5798
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
5793
5799
|
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
5794
5800
|
`;
|
|
5795
5801
|
const dataProviderInited = `
|
|
@@ -7655,7 +7661,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7655
7661
|
// }
|
|
7656
7662
|
`;
|
|
7657
7663
|
|
|
7658
|
-
function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
|
|
7664
|
+
// function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
|
|
7665
|
+
function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
|
|
7659
7666
|
const searchableFieldsLabel = [];
|
|
7660
7667
|
_.each(mainObject.fields, function (field) {
|
|
7661
7668
|
if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
|
|
@@ -7671,6 +7678,33 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7671
7678
|
crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
|
|
7672
7679
|
}
|
|
7673
7680
|
|
|
7681
|
+
const onChangeScript = `
|
|
7682
|
+
const scope = event.context.scoped;
|
|
7683
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
7684
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
7685
|
+
let __changedSearchBoxValues = {};
|
|
7686
|
+
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
7687
|
+
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7688
|
+
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
7689
|
+
crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7690
|
+
`;
|
|
7691
|
+
|
|
7692
|
+
// onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
|
|
7693
|
+
// 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
|
|
7694
|
+
// 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
|
|
7695
|
+
const onSearchScript = `
|
|
7696
|
+
${onChangeScript}
|
|
7697
|
+
|
|
7698
|
+
// 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
|
|
7699
|
+
// const scope = event.context.scoped;
|
|
7700
|
+
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
7701
|
+
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
7702
|
+
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
7703
|
+
setTimeout(function(){
|
|
7704
|
+
filterForm.setValues(event.data.__changedFilterFormValues);
|
|
7705
|
+
}, 500);
|
|
7706
|
+
`;
|
|
7707
|
+
|
|
7674
7708
|
return {
|
|
7675
7709
|
"type": "tooltip-wrapper",
|
|
7676
7710
|
"id": "steedos_crud_toolbar_quick_search",
|
|
@@ -7689,28 +7723,24 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7689
7723
|
"placeholder": "搜索此列表",
|
|
7690
7724
|
"value": crudKeywords,
|
|
7691
7725
|
"clearable": true,
|
|
7692
|
-
"clearAndSubmit": true
|
|
7726
|
+
// "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
7693
7727
|
"searchImediately": false,
|
|
7694
7728
|
"onEvent": {
|
|
7695
|
-
"
|
|
7729
|
+
"search": {
|
|
7696
7730
|
"actions": [
|
|
7697
7731
|
{
|
|
7698
7732
|
"actionType": "custom",
|
|
7699
|
-
"script":
|
|
7700
|
-
doAction(
|
|
7701
|
-
{
|
|
7702
|
-
"componentId": 'service_${crudId}',
|
|
7703
|
-
"actionType": "setValue",
|
|
7704
|
-
"args": {
|
|
7705
|
-
"value": {
|
|
7706
|
-
"__serachBoxValues": event.data
|
|
7707
|
-
}
|
|
7708
|
-
}
|
|
7709
|
-
}
|
|
7710
|
-
)
|
|
7711
|
-
`
|
|
7733
|
+
"script": onSearchScript
|
|
7712
7734
|
}
|
|
7713
7735
|
]
|
|
7736
|
+
},
|
|
7737
|
+
"blur": { //这里把change事件换成blur是因为amis 3.2change事件中setData会卡,升级到3.4+后就可以换回change事件
|
|
7738
|
+
"actions": [
|
|
7739
|
+
{
|
|
7740
|
+
"actionType": "custom",
|
|
7741
|
+
"script": onChangeScript
|
|
7742
|
+
},
|
|
7743
|
+
]
|
|
7714
7744
|
}
|
|
7715
7745
|
}
|
|
7716
7746
|
}
|
|
@@ -7719,7 +7749,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7719
7749
|
}
|
|
7720
7750
|
|
|
7721
7751
|
function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
7722
|
-
showDisplayAs = false, hiddenCount = false, headerToolbarItems,
|
|
7752
|
+
showDisplayAs = false, hiddenCount = false, headerToolbarItems,
|
|
7723
7753
|
filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
|
|
7724
7754
|
// console.log(`getObjectHeaderToolbar====>`, filterVisible)
|
|
7725
7755
|
// console.log(`getObjectHeaderToolbar`, mainObject)
|
|
@@ -7823,7 +7853,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
7823
7853
|
};
|
|
7824
7854
|
}
|
|
7825
7855
|
let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name);
|
|
7826
|
-
let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName
|
|
7856
|
+
let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });
|
|
7827
7857
|
|
|
7828
7858
|
// toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {"type": "tpl",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom
|
|
7829
7859
|
// 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
|
|
@@ -7971,6 +8001,20 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
7971
8001
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
7972
8002
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
7973
8003
|
`;
|
|
8004
|
+
let onChangeScript = `
|
|
8005
|
+
const scope = event.context.scoped;
|
|
8006
|
+
// let filterFormValues = event.data;
|
|
8007
|
+
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
8008
|
+
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
8009
|
+
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
8010
|
+
let filterFormValues = filterFormService.getData();
|
|
8011
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
8012
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
8013
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
8014
|
+
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
8015
|
+
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
8016
|
+
crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
8017
|
+
`;
|
|
7974
8018
|
return {
|
|
7975
8019
|
"title": "",
|
|
7976
8020
|
"submitText": "",
|
|
@@ -7994,19 +8038,7 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
7994
8038
|
"actions": [
|
|
7995
8039
|
{
|
|
7996
8040
|
"actionType": "custom",
|
|
7997
|
-
"script":
|
|
7998
|
-
doAction(
|
|
7999
|
-
{
|
|
8000
|
-
"componentId": 'service_${options.crudId}',
|
|
8001
|
-
"actionType": "setValue",
|
|
8002
|
-
"args": {
|
|
8003
|
-
"value": {
|
|
8004
|
-
"__filterFormValues": event.data
|
|
8005
|
-
}
|
|
8006
|
-
}
|
|
8007
|
-
}
|
|
8008
|
-
)
|
|
8009
|
-
`
|
|
8041
|
+
"script": onChangeScript
|
|
8010
8042
|
}
|
|
8011
8043
|
]
|
|
8012
8044
|
}
|
|
@@ -8081,7 +8113,6 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8081
8113
|
const bulkActions = getBulkActions(objectSchema);
|
|
8082
8114
|
const defaults = options.defaults;
|
|
8083
8115
|
const listSchema = (defaults && defaults.listSchema) || {};
|
|
8084
|
-
const id = `listview_${objectSchema.name}`;
|
|
8085
8116
|
|
|
8086
8117
|
const bodyProps = {
|
|
8087
8118
|
// toolbar: getToolbar(),
|
|
@@ -8091,7 +8122,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8091
8122
|
...options,
|
|
8092
8123
|
disableStatistics: options.queryCount === false
|
|
8093
8124
|
}),
|
|
8094
|
-
filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields,
|
|
8125
|
+
filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),
|
|
8095
8126
|
};
|
|
8096
8127
|
if(options.formFactor !== 'SMALL' || ["split"].indexOf(options.displayAs) == -1){
|
|
8097
8128
|
if(listSchema.mode !== "cards"){
|
|
@@ -8120,8 +8151,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8120
8151
|
showDisplayAs,
|
|
8121
8152
|
hiddenCount: options.queryCount === false,
|
|
8122
8153
|
headerToolbarItems: options.headerToolbarItems,
|
|
8123
|
-
filterVisible: options.filterVisible
|
|
8124
|
-
crudId: id
|
|
8154
|
+
filterVisible: options.filterVisible
|
|
8125
8155
|
});
|
|
8126
8156
|
|
|
8127
8157
|
options.amisData = createObject(options.amisData, {
|
|
@@ -8134,6 +8164,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8134
8164
|
|
|
8135
8165
|
|
|
8136
8166
|
let body = null;
|
|
8167
|
+
const id = `listview_${objectSchema.name}`;
|
|
8137
8168
|
if(options.formFactor === 'SMALL' && false){
|
|
8138
8169
|
delete bodyProps.bulkActions;
|
|
8139
8170
|
delete bodyProps.headerToolbar;
|
|
@@ -10365,6 +10396,13 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10365
10396
|
source.data.$self = "$$";
|
|
10366
10397
|
|
|
10367
10398
|
source.requestAdaptor = `
|
|
10399
|
+
let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
|
|
10400
|
+
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
10401
|
+
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
10402
|
+
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
10403
|
+
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
10404
|
+
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
10405
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
10368
10406
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
10369
10407
|
var filters = [];
|
|
10370
10408
|
var pageSize = api.data.pageSize || 10;
|
|
@@ -10431,7 +10469,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10431
10469
|
const filtersFunction = ${field.filtersFunction || field._filtersFunction};
|
|
10432
10470
|
|
|
10433
10471
|
if(filtersFunction && !inFilterForm){
|
|
10434
|
-
const _filters = filtersFunction(filters, api.data.$self.__super
|
|
10472
|
+
const _filters = filtersFunction(filters, api.data.$self.__super);
|
|
10435
10473
|
if(_filters && _filters.length > 0){
|
|
10436
10474
|
filters.push(_filters);
|
|
10437
10475
|
}
|
|
@@ -12008,9 +12046,7 @@ async function getFieldSearchable(perField, permissionFields, ctx){
|
|
|
12008
12046
|
|
|
12009
12047
|
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));
|
|
12010
12048
|
if(amisField){
|
|
12011
|
-
return
|
|
12012
|
-
submitOnChange: false
|
|
12013
|
-
});
|
|
12049
|
+
return amisField;
|
|
12014
12050
|
}
|
|
12015
12051
|
}
|
|
12016
12052
|
}
|
|
@@ -12403,12 +12439,16 @@ async function getForm(props, mode = "edit") {
|
|
|
12403
12439
|
}
|
|
12404
12440
|
else if (mode === "new") {
|
|
12405
12441
|
let onNewItemSubmitScript = `
|
|
12406
|
-
event.data["${props.name}"]
|
|
12442
|
+
let fieldValue = _.cloneDeep(event.data["${props.name}"]);
|
|
12443
|
+
if(!fieldValue){
|
|
12444
|
+
fieldValue = [];
|
|
12445
|
+
}
|
|
12446
|
+
fieldValue.push(JSON.parse(JSON.stringify(event.data)));
|
|
12407
12447
|
doAction({
|
|
12408
12448
|
"componentId": "${props.id}",
|
|
12409
12449
|
"actionType": "setValue",
|
|
12410
12450
|
"args": {
|
|
12411
|
-
"value":
|
|
12451
|
+
"value": fieldValue
|
|
12412
12452
|
}
|
|
12413
12453
|
});
|
|
12414
12454
|
`;
|
|
@@ -12611,7 +12651,7 @@ const getAmisInputTableSchema = async (props, readonly) => {
|
|
|
12611
12651
|
"className": props.className
|
|
12612
12652
|
};
|
|
12613
12653
|
if (props.addable) {
|
|
12614
|
-
let buttonNewSchema = getButtonNew(props);
|
|
12654
|
+
let buttonNewSchema = await getButtonNew(props);
|
|
12615
12655
|
schema.body.push(buttonNewSchema);
|
|
12616
12656
|
}
|
|
12617
12657
|
if (props.amis) {
|