@steedos-widgets/amis-lib 1.3.17-beta.2 → 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 +115 -89
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +115 -89
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +19 -14
- 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.esm.js
CHANGED
|
@@ -2615,19 +2615,25 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2615
2615
|
if(options.isRelated){
|
|
2616
2616
|
api.url += "&recordId=${_master.recordId}";
|
|
2617
2617
|
}
|
|
2618
|
-
|
|
2619
|
-
|
|
2618
|
+
api.cache = 3000;
|
|
2620
2619
|
api.data.$term = "$term";
|
|
2621
2620
|
api.data.term = "$term";
|
|
2622
2621
|
api.data.$self = "$$";
|
|
2623
2622
|
api.data.self = "$$";
|
|
2624
2623
|
api.data.filter = "$filter";
|
|
2625
|
-
api.data.__filterFormValues = "${__filterFormValues}";
|
|
2626
|
-
api.data.__serachBoxValues = "${__serachBoxValues}";
|
|
2627
2624
|
api.data.loaded = "${loaded}";
|
|
2628
2625
|
api.data.listViewId = "${listViewId}";
|
|
2629
2626
|
api.data.listName = "${listName}";
|
|
2630
2627
|
api.requestAdaptor = `
|
|
2628
|
+
let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
|
|
2629
|
+
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
2630
|
+
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
2631
|
+
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
2632
|
+
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
2633
|
+
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
2634
|
+
// 这里直接合并到api.data.$self,而不是后面定义的selfData变量,是因为可以省去在接收适配器中写一样的合并逻辑
|
|
2635
|
+
// 如果有问题可以改为合并到selfData变量中,但是要在接收适配器中写上一样的合并逻辑,否则里面的过滤条件不会存入本地存储中
|
|
2636
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
2631
2637
|
// selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.
|
|
2632
2638
|
let selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
2633
2639
|
// 保留一份初始data,以供自定义发送适配器中获取原始数据。
|
|
@@ -2697,11 +2703,7 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2697
2703
|
userFilters = [["${valueField.name}", "=", selfData.value]];
|
|
2698
2704
|
}
|
|
2699
2705
|
|
|
2700
|
-
|
|
2701
|
-
const __serachBoxValues = api.data.__serachBoxValues;
|
|
2702
|
-
// 筛选按钮
|
|
2703
|
-
const filterSelfData = __filterFormValues ? __filterFormValues : selfData;
|
|
2704
|
-
var searchableFilter = SteedosUI.getSearchFilter(filterSelfData) || [];
|
|
2706
|
+
var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
|
|
2705
2707
|
if(searchableFilter.length > 0){
|
|
2706
2708
|
if(userFilters.length > 0 ){
|
|
2707
2709
|
userFilters = [userFilters, 'and', searchableFilter];
|
|
@@ -2722,8 +2724,7 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2722
2724
|
})
|
|
2723
2725
|
}
|
|
2724
2726
|
|
|
2725
|
-
|
|
2726
|
-
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(keyWords, allowSearchFields);
|
|
2727
|
+
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);
|
|
2727
2728
|
if(keywordsFilters && keywordsFilters.length > 0){
|
|
2728
2729
|
userFilters.push(keywordsFilters);
|
|
2729
2730
|
}
|
|
@@ -2876,19 +2877,6 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2876
2877
|
selfData.page = localListViewProps.page || 1;
|
|
2877
2878
|
}
|
|
2878
2879
|
}
|
|
2879
|
-
|
|
2880
|
-
// 列表视图(对象表格)筛选按钮表单输入框输入内容后,如果不按回车键或者搜索按钮,selfData中该输入框是没有最新值的。
|
|
2881
|
-
const __filterFormValues = api.body.__filterFormValues;
|
|
2882
|
-
if(__filterFormValues){
|
|
2883
|
-
let filterFormValues = JSON.parse(JSON.stringify(__filterFormValues)) || {};
|
|
2884
|
-
selfData = Object.assign({}, selfData, filterFormValues);
|
|
2885
|
-
}
|
|
2886
|
-
// “搜索此列表”搜索框同理。
|
|
2887
|
-
const __serachBoxValues = api.body.__serachBoxValues;
|
|
2888
|
-
if(__serachBoxValues){
|
|
2889
|
-
let serachBoxValues = JSON.parse(JSON.stringify(__serachBoxValues)) || {};
|
|
2890
|
-
selfData = Object.assign({}, selfData, serachBoxValues);
|
|
2891
|
-
}
|
|
2892
2880
|
|
|
2893
2881
|
delete selfData.context;
|
|
2894
2882
|
delete selfData.global;
|
|
@@ -5663,6 +5651,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5663
5651
|
const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
|
|
5664
5652
|
const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
|
|
5665
5653
|
const onSearchScript = `
|
|
5654
|
+
// console.log("===onSearchScript=form==");
|
|
5666
5655
|
const scope = event.context.scoped;
|
|
5667
5656
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
5668
5657
|
return n.props.type === "form";
|
|
@@ -5719,25 +5708,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5719
5708
|
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
|
|
5720
5709
|
`;
|
|
5721
5710
|
const onCancelScript = `
|
|
5722
|
-
|
|
5723
|
-
{
|
|
5724
|
-
"componentId": 'service_${ctx.crudId}',
|
|
5725
|
-
"actionType": "setValue",
|
|
5726
|
-
"args": {
|
|
5727
|
-
"value": {
|
|
5728
|
-
"__filterFormValues": null
|
|
5729
|
-
}
|
|
5730
|
-
}
|
|
5731
|
-
}
|
|
5732
|
-
)
|
|
5711
|
+
// console.log("===onCancelScript=form==");
|
|
5733
5712
|
const scope = event.context.scoped;
|
|
5734
5713
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
5735
5714
|
return n.props.type === "form";
|
|
5736
5715
|
});
|
|
5737
5716
|
var filterFormValues = filterForm.getValues();
|
|
5738
|
-
|
|
5739
|
-
return n.props.type === "crud";
|
|
5740
|
-
});
|
|
5717
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
5741
5718
|
const removedValues = {};
|
|
5742
5719
|
for(var k in filterFormValues){
|
|
5743
5720
|
if(/^__searchable__/.test(k)){
|
|
@@ -5752,7 +5729,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5752
5729
|
if(localListViewProps){
|
|
5753
5730
|
localListViewProps = JSON.parse(localListViewProps);
|
|
5754
5731
|
for(var k in localListViewProps){
|
|
5755
|
-
if(k
|
|
5732
|
+
if(/^__searchable__/.test(k)){
|
|
5756
5733
|
removedValues[k] = null;
|
|
5757
5734
|
}
|
|
5758
5735
|
}
|
|
@@ -5763,20 +5740,35 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5763
5740
|
//lookup字段保留快速搜索条件
|
|
5764
5741
|
removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
|
|
5765
5742
|
}
|
|
5766
|
-
filterForm.
|
|
5767
|
-
|
|
5768
|
-
|
|
5769
|
-
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5743
|
+
filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了
|
|
5744
|
+
// 以下方法都无法实现清除表单值
|
|
5745
|
+
// filterForm.setValues({}, true)
|
|
5746
|
+
// filterForm.reset();
|
|
5747
|
+
// filterForm.handleAction({},{
|
|
5748
|
+
// "actionType": "setValue",
|
|
5749
|
+
// "args": {
|
|
5750
|
+
// "value": removedValues
|
|
5751
|
+
// }
|
|
5752
|
+
// });
|
|
5753
|
+
// 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段
|
|
5754
|
+
// filterForm.handleAction({},{
|
|
5755
|
+
// "actionType": "clear"
|
|
5756
|
+
// });
|
|
5757
|
+
|
|
5758
|
+
// 清除__changedFilterFormValues中的值
|
|
5759
|
+
crud && crud.setData({__changedFilterFormValues: {}});
|
|
5760
|
+
filterForm.handleFormSubmit(event);
|
|
5761
|
+
// crud.handleFilterSubmit(removedValues);
|
|
5762
|
+
|
|
5763
|
+
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
5764
|
+
filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
|
|
5774
5765
|
//触发amis crud 高度重算
|
|
5775
5766
|
setTimeout(()=>{
|
|
5776
5767
|
window.dispatchEvent(new Event("resize"))
|
|
5777
5768
|
}, 100);
|
|
5778
5769
|
// 移除搜索按钮上的红点
|
|
5779
|
-
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5770
|
+
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5771
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
5780
5772
|
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
5781
5773
|
`;
|
|
5782
5774
|
const dataProviderInited = `
|
|
@@ -7642,7 +7634,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7642
7634
|
// }
|
|
7643
7635
|
`;
|
|
7644
7636
|
|
|
7645
|
-
function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
|
|
7637
|
+
// function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
|
|
7638
|
+
function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
|
|
7646
7639
|
const searchableFieldsLabel = [];
|
|
7647
7640
|
_.each(mainObject.fields, function (field) {
|
|
7648
7641
|
if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
|
|
@@ -7658,6 +7651,33 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7658
7651
|
crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
|
|
7659
7652
|
}
|
|
7660
7653
|
|
|
7654
|
+
const onChangeScript = `
|
|
7655
|
+
const scope = event.context.scoped;
|
|
7656
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
7657
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
7658
|
+
let __changedSearchBoxValues = {};
|
|
7659
|
+
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
7660
|
+
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7661
|
+
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
7662
|
+
crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7663
|
+
`;
|
|
7664
|
+
|
|
7665
|
+
// onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
|
|
7666
|
+
// 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
|
|
7667
|
+
// 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
|
|
7668
|
+
const onSearchScript = `
|
|
7669
|
+
${onChangeScript}
|
|
7670
|
+
|
|
7671
|
+
// 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
|
|
7672
|
+
// const scope = event.context.scoped;
|
|
7673
|
+
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
7674
|
+
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
7675
|
+
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
7676
|
+
setTimeout(function(){
|
|
7677
|
+
filterForm.setValues(event.data.__changedFilterFormValues);
|
|
7678
|
+
}, 500);
|
|
7679
|
+
`;
|
|
7680
|
+
|
|
7661
7681
|
return {
|
|
7662
7682
|
"type": "tooltip-wrapper",
|
|
7663
7683
|
"id": "steedos_crud_toolbar_quick_search",
|
|
@@ -7676,28 +7696,24 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7676
7696
|
"placeholder": "搜索此列表",
|
|
7677
7697
|
"value": crudKeywords,
|
|
7678
7698
|
"clearable": true,
|
|
7679
|
-
"clearAndSubmit": true
|
|
7699
|
+
// "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
7680
7700
|
"searchImediately": false,
|
|
7681
7701
|
"onEvent": {
|
|
7682
|
-
"
|
|
7702
|
+
"search": {
|
|
7683
7703
|
"actions": [
|
|
7684
7704
|
{
|
|
7685
7705
|
"actionType": "custom",
|
|
7686
|
-
"script":
|
|
7687
|
-
doAction(
|
|
7688
|
-
{
|
|
7689
|
-
"componentId": 'service_${crudId}',
|
|
7690
|
-
"actionType": "setValue",
|
|
7691
|
-
"args": {
|
|
7692
|
-
"value": {
|
|
7693
|
-
"__serachBoxValues": event.data
|
|
7694
|
-
}
|
|
7695
|
-
}
|
|
7696
|
-
}
|
|
7697
|
-
)
|
|
7698
|
-
`
|
|
7706
|
+
"script": onSearchScript
|
|
7699
7707
|
}
|
|
7700
7708
|
]
|
|
7709
|
+
},
|
|
7710
|
+
"blur": { //这里把change事件换成blur是因为amis 3.2change事件中setData会卡,升级到3.4+后就可以换回change事件
|
|
7711
|
+
"actions": [
|
|
7712
|
+
{
|
|
7713
|
+
"actionType": "custom",
|
|
7714
|
+
"script": onChangeScript
|
|
7715
|
+
},
|
|
7716
|
+
]
|
|
7701
7717
|
}
|
|
7702
7718
|
}
|
|
7703
7719
|
}
|
|
@@ -7706,7 +7722,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7706
7722
|
}
|
|
7707
7723
|
|
|
7708
7724
|
function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
7709
|
-
showDisplayAs = false, hiddenCount = false, headerToolbarItems,
|
|
7725
|
+
showDisplayAs = false, hiddenCount = false, headerToolbarItems,
|
|
7710
7726
|
filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
|
|
7711
7727
|
// console.log(`getObjectHeaderToolbar====>`, filterVisible)
|
|
7712
7728
|
// console.log(`getObjectHeaderToolbar`, mainObject)
|
|
@@ -7810,7 +7826,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
7810
7826
|
};
|
|
7811
7827
|
}
|
|
7812
7828
|
let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name);
|
|
7813
|
-
let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName
|
|
7829
|
+
let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });
|
|
7814
7830
|
|
|
7815
7831
|
// toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {"type": "tpl",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom
|
|
7816
7832
|
// 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
|
|
@@ -7958,6 +7974,20 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
7958
7974
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
7959
7975
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
7960
7976
|
`;
|
|
7977
|
+
let onChangeScript = `
|
|
7978
|
+
const scope = event.context.scoped;
|
|
7979
|
+
// let filterFormValues = event.data;
|
|
7980
|
+
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
7981
|
+
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
7982
|
+
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
7983
|
+
let filterFormValues = filterFormService.getData();
|
|
7984
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
7985
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
7986
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
7987
|
+
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
7988
|
+
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
7989
|
+
crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
7990
|
+
`;
|
|
7961
7991
|
return {
|
|
7962
7992
|
"title": "",
|
|
7963
7993
|
"submitText": "",
|
|
@@ -7981,19 +8011,7 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
7981
8011
|
"actions": [
|
|
7982
8012
|
{
|
|
7983
8013
|
"actionType": "custom",
|
|
7984
|
-
"script":
|
|
7985
|
-
doAction(
|
|
7986
|
-
{
|
|
7987
|
-
"componentId": 'service_${options.crudId}',
|
|
7988
|
-
"actionType": "setValue",
|
|
7989
|
-
"args": {
|
|
7990
|
-
"value": {
|
|
7991
|
-
"__filterFormValues": event.data
|
|
7992
|
-
}
|
|
7993
|
-
}
|
|
7994
|
-
}
|
|
7995
|
-
)
|
|
7996
|
-
`
|
|
8014
|
+
"script": onChangeScript
|
|
7997
8015
|
}
|
|
7998
8016
|
]
|
|
7999
8017
|
}
|
|
@@ -8068,7 +8086,6 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8068
8086
|
const bulkActions = getBulkActions(objectSchema);
|
|
8069
8087
|
const defaults = options.defaults;
|
|
8070
8088
|
const listSchema = (defaults && defaults.listSchema) || {};
|
|
8071
|
-
const id = `listview_${objectSchema.name}`;
|
|
8072
8089
|
|
|
8073
8090
|
const bodyProps = {
|
|
8074
8091
|
// toolbar: getToolbar(),
|
|
@@ -8078,7 +8095,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8078
8095
|
...options,
|
|
8079
8096
|
disableStatistics: options.queryCount === false
|
|
8080
8097
|
}),
|
|
8081
|
-
filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields,
|
|
8098
|
+
filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),
|
|
8082
8099
|
};
|
|
8083
8100
|
if(options.formFactor !== 'SMALL' || ["split"].indexOf(options.displayAs) == -1){
|
|
8084
8101
|
if(listSchema.mode !== "cards"){
|
|
@@ -8107,8 +8124,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8107
8124
|
showDisplayAs,
|
|
8108
8125
|
hiddenCount: options.queryCount === false,
|
|
8109
8126
|
headerToolbarItems: options.headerToolbarItems,
|
|
8110
|
-
filterVisible: options.filterVisible
|
|
8111
|
-
crudId: id
|
|
8127
|
+
filterVisible: options.filterVisible
|
|
8112
8128
|
});
|
|
8113
8129
|
|
|
8114
8130
|
options.amisData = createObject(options.amisData, {
|
|
@@ -8121,6 +8137,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8121
8137
|
|
|
8122
8138
|
|
|
8123
8139
|
let body = null;
|
|
8140
|
+
const id = `listview_${objectSchema.name}`;
|
|
8124
8141
|
if(options.formFactor === 'SMALL' && false){
|
|
8125
8142
|
delete bodyProps.bulkActions;
|
|
8126
8143
|
delete bodyProps.headerToolbar;
|
|
@@ -10352,6 +10369,13 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10352
10369
|
source.data.$self = "$$";
|
|
10353
10370
|
|
|
10354
10371
|
source.requestAdaptor = `
|
|
10372
|
+
let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
|
|
10373
|
+
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
10374
|
+
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
10375
|
+
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
10376
|
+
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
10377
|
+
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
10378
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
10355
10379
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
10356
10380
|
var filters = [];
|
|
10357
10381
|
var pageSize = api.data.pageSize || 10;
|
|
@@ -11995,9 +12019,7 @@ async function getFieldSearchable(perField, permissionFields, ctx){
|
|
|
11995
12019
|
|
|
11996
12020
|
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));
|
|
11997
12021
|
if(amisField){
|
|
11998
|
-
return
|
|
11999
|
-
submitOnChange: false
|
|
12000
|
-
});
|
|
12022
|
+
return amisField;
|
|
12001
12023
|
}
|
|
12002
12024
|
}
|
|
12003
12025
|
}
|
|
@@ -12390,12 +12412,16 @@ async function getForm(props, mode = "edit") {
|
|
|
12390
12412
|
}
|
|
12391
12413
|
else if (mode === "new") {
|
|
12392
12414
|
let onNewItemSubmitScript = `
|
|
12393
|
-
event.data["${props.name}"]
|
|
12415
|
+
let fieldValue = _.cloneDeep(event.data["${props.name}"]);
|
|
12416
|
+
if(!fieldValue){
|
|
12417
|
+
fieldValue = [];
|
|
12418
|
+
}
|
|
12419
|
+
fieldValue.push(JSON.parse(JSON.stringify(event.data)));
|
|
12394
12420
|
doAction({
|
|
12395
12421
|
"componentId": "${props.id}",
|
|
12396
12422
|
"actionType": "setValue",
|
|
12397
12423
|
"args": {
|
|
12398
|
-
"value":
|
|
12424
|
+
"value": fieldValue
|
|
12399
12425
|
}
|
|
12400
12426
|
});
|
|
12401
12427
|
`;
|
|
@@ -12598,7 +12624,7 @@ const getAmisInputTableSchema = async (props, readonly) => {
|
|
|
12598
12624
|
"className": props.className
|
|
12599
12625
|
};
|
|
12600
12626
|
if (props.addable) {
|
|
12601
|
-
let buttonNewSchema = getButtonNew(props);
|
|
12627
|
+
let buttonNewSchema = await getButtonNew(props);
|
|
12602
12628
|
schema.body.push(buttonNewSchema);
|
|
12603
12629
|
}
|
|
12604
12630
|
if (props.amis) {
|