@steedos-widgets/amis-object 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.
@@ -1039,6 +1039,10 @@ fieldset.antd-Collapse > legend{
1039
1039
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1040
1040
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
1041
1041
  }
1042
+ .blur {
1043
+ --tw-blur: blur(8px);
1044
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
1045
+ }
1042
1046
  .filter {
1043
1047
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
1044
1048
  }
@@ -5784,19 +5784,25 @@ async function getTableApi(mainObject, fields, options){
5784
5784
  if(options.isRelated){
5785
5785
  api.url += "&recordId=${_master.recordId}";
5786
5786
  }
5787
- // api.cache = 3000;
5788
-
5787
+ api.cache = 3000;
5789
5788
  api.data.$term = "$term";
5790
5789
  api.data.term = "$term";
5791
5790
  api.data.$self = "$$";
5792
5791
  api.data.self = "$$";
5793
5792
  api.data.filter = "$filter";
5794
- api.data.__filterFormValues = "${__filterFormValues}";
5795
- api.data.__serachBoxValues = "${__serachBoxValues}";
5796
5793
  api.data.loaded = "${loaded}";
5797
5794
  api.data.listViewId = "${listViewId}";
5798
5795
  api.data.listName = "${listName}";
5799
5796
  api.requestAdaptor = `
5797
+ let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
5798
+ let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
5799
+ // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
5800
+ // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
5801
+ // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
5802
+ // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
5803
+ // 这里直接合并到api.data.$self,而不是后面定义的selfData变量,是因为可以省去在接收适配器中写一样的合并逻辑
5804
+ // 如果有问题可以改为合并到selfData变量中,但是要在接收适配器中写上一样的合并逻辑,否则里面的过滤条件不会存入本地存储中
5805
+ Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
5800
5806
  // selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.
5801
5807
  let selfData = JSON.parse(JSON.stringify(api.data.$self));
5802
5808
  // 保留一份初始data,以供自定义发送适配器中获取原始数据。
@@ -5866,11 +5872,7 @@ async function getTableApi(mainObject, fields, options){
5866
5872
  userFilters = [["${valueField.name}", "=", selfData.value]];
5867
5873
  }
5868
5874
 
5869
- const __filterFormValues = api.data.__filterFormValues;
5870
- const __serachBoxValues = api.data.__serachBoxValues;
5871
- // 筛选按钮
5872
- const filterSelfData = __filterFormValues ? __filterFormValues : selfData;
5873
- var searchableFilter = SteedosUI.getSearchFilter(filterSelfData) || [];
5875
+ var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
5874
5876
  if(searchableFilter.length > 0){
5875
5877
  if(userFilters.length > 0 ){
5876
5878
  userFilters = [userFilters, 'and', searchableFilter];
@@ -5891,8 +5893,7 @@ async function getTableApi(mainObject, fields, options){
5891
5893
  })
5892
5894
  }
5893
5895
 
5894
- const keyWords = __serachBoxValues ? __serachBoxValues.__keywords : selfData.__keywords;
5895
- var keywordsFilters = SteedosUI.getKeywordsSearchFilter(keyWords, allowSearchFields);
5896
+ var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);
5896
5897
  if(keywordsFilters && keywordsFilters.length > 0){
5897
5898
  userFilters.push(keywordsFilters);
5898
5899
  }
@@ -6045,19 +6046,6 @@ async function getTableApi(mainObject, fields, options){
6045
6046
  selfData.page = localListViewProps.page || 1;
6046
6047
  }
6047
6048
  }
6048
-
6049
- // 列表视图(对象表格)筛选按钮表单输入框输入内容后,如果不按回车键或者搜索按钮,selfData中该输入框是没有最新值的。
6050
- const __filterFormValues = api.body.__filterFormValues;
6051
- if(__filterFormValues){
6052
- let filterFormValues = JSON.parse(JSON.stringify(__filterFormValues)) || {};
6053
- selfData = Object.assign({}, selfData, filterFormValues);
6054
- }
6055
- // “搜索此列表”搜索框同理。
6056
- const __serachBoxValues = api.body.__serachBoxValues;
6057
- if(__serachBoxValues){
6058
- let serachBoxValues = JSON.parse(JSON.stringify(__serachBoxValues)) || {};
6059
- selfData = Object.assign({}, selfData, serachBoxValues);
6060
- }
6061
6049
 
6062
6050
  delete selfData.context;
6063
6051
  delete selfData.global;
@@ -8832,6 +8820,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8832
8820
  const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
8833
8821
  const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
8834
8822
  const onSearchScript = `
8823
+ // console.log("===onSearchScript=form==");
8835
8824
  const scope = event.context.scoped;
8836
8825
  var filterForm = scope.parent.parent.getComponents().find(function(n){
8837
8826
  return n.props.type === "form";
@@ -8888,25 +8877,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8888
8877
  crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
8889
8878
  `;
8890
8879
  const onCancelScript = `
8891
- doAction(
8892
- {
8893
- "componentId": 'service_${ctx.crudId}',
8894
- "actionType": "setValue",
8895
- "args": {
8896
- "value": {
8897
- "__filterFormValues": null
8898
- }
8899
- }
8900
- }
8901
- )
8880
+ // console.log("===onCancelScript=form==");
8902
8881
  const scope = event.context.scoped;
8903
8882
  var filterForm = scope.parent.parent.getComponents().find(function(n){
8904
8883
  return n.props.type === "form";
8905
8884
  });
8906
8885
  var filterFormValues = filterForm.getValues();
8907
- var listView = scope.parent.parent.parent.getComponents().find(function(n){
8908
- return n.props.type === "crud";
8909
- });
8886
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
8910
8887
  const removedValues = {};
8911
8888
  for(var k in filterFormValues){
8912
8889
  if(/^__searchable__/.test(k)){
@@ -8921,7 +8898,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8921
8898
  if(localListViewProps){
8922
8899
  localListViewProps = JSON.parse(localListViewProps);
8923
8900
  for(var k in localListViewProps){
8924
- if(k !== "__keywords"){
8901
+ if(/^__searchable__/.test(k)){
8925
8902
  removedValues[k] = null;
8926
8903
  }
8927
8904
  }
@@ -8932,20 +8909,35 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8932
8909
  //lookup字段保留快速搜索条件
8933
8910
  removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
8934
8911
  }
8935
- filterForm.reset();
8936
- setTimeout(()=>{
8937
- listView.handleFilterSubmit(removedValues);
8938
- }, 100);
8939
- const filterService = filterForm.context.getComponents().find(function(n){
8940
- return n.props.type === "service";
8941
- });
8942
- filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
8912
+ filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了
8913
+ // 以下方法都无法实现清除表单值
8914
+ // filterForm.setValues({}, true)
8915
+ // filterForm.reset();
8916
+ // filterForm.handleAction({},{
8917
+ // "actionType": "setValue",
8918
+ // "args": {
8919
+ // "value": removedValues
8920
+ // }
8921
+ // });
8922
+ // 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段
8923
+ // filterForm.handleAction({},{
8924
+ // "actionType": "clear"
8925
+ // });
8926
+
8927
+ // 清除__changedFilterFormValues中的值
8928
+ crud && crud.setData({__changedFilterFormValues: {}});
8929
+ filterForm.handleFormSubmit(event);
8930
+ // crud.handleFilterSubmit(removedValues);
8931
+
8932
+ let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
8933
+ filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
8943
8934
  //触发amis crud 高度重算
8944
8935
  setTimeout(()=>{
8945
8936
  window.dispatchEvent(new Event("resize"))
8946
8937
  }, 100);
8947
8938
  // 移除搜索按钮上的红点
8948
- let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
8939
+ // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
8940
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
8949
8941
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
8950
8942
  `;
8951
8943
  const dataProviderInited = `
@@ -10811,7 +10803,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10811
10803
  // }
10812
10804
  `;
10813
10805
 
10814
- function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
10806
+ // function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
10807
+ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
10815
10808
  const searchableFieldsLabel = [];
10816
10809
  _.each(mainObject.fields, function (field) {
10817
10810
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
@@ -10827,6 +10820,33 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10827
10820
  crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
10828
10821
  }
10829
10822
 
10823
+ const onChangeScript = `
10824
+ const scope = event.context.scoped;
10825
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
10826
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
10827
+ let __changedSearchBoxValues = {};
10828
+ __changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
10829
+ // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
10830
+ // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
10831
+ crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
10832
+ `;
10833
+
10834
+ // onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
10835
+ // 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
10836
+ // 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
10837
+ const onSearchScript = `
10838
+ ${onChangeScript}
10839
+
10840
+ // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
10841
+ // const scope = event.context.scoped;
10842
+ // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
10843
+ // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
10844
+ let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
10845
+ setTimeout(function(){
10846
+ filterForm.setValues(event.data.__changedFilterFormValues);
10847
+ }, 500);
10848
+ `;
10849
+
10830
10850
  return {
10831
10851
  "type": "tooltip-wrapper",
10832
10852
  "id": "steedos_crud_toolbar_quick_search",
@@ -10845,28 +10865,24 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10845
10865
  "placeholder": "搜索此列表",
10846
10866
  "value": crudKeywords,
10847
10867
  "clearable": true,
10848
- "clearAndSubmit": true,
10868
+ // "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
10849
10869
  "searchImediately": false,
10850
10870
  "onEvent": {
10851
- "change": {
10871
+ "search": {
10852
10872
  "actions": [
10853
10873
  {
10854
10874
  "actionType": "custom",
10855
- "script": `
10856
- doAction(
10857
- {
10858
- "componentId": 'service_${crudId}',
10859
- "actionType": "setValue",
10860
- "args": {
10861
- "value": {
10862
- "__serachBoxValues": event.data
10863
- }
10864
- }
10865
- }
10866
- )
10867
- `
10875
+ "script": onSearchScript
10868
10876
  }
10869
10877
  ]
10878
+ },
10879
+ "blur": { //这里把change事件换成blur是因为amis 3.2change事件中setData会卡,升级到3.4+后就可以换回change事件
10880
+ "actions": [
10881
+ {
10882
+ "actionType": "custom",
10883
+ "script": onChangeScript
10884
+ },
10885
+ ]
10870
10886
  }
10871
10887
  }
10872
10888
  }
@@ -10875,7 +10891,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10875
10891
  }
10876
10892
 
10877
10893
  function getObjectHeaderToolbar(mainObject, fields, formFactor, {
10878
- showDisplayAs = false, hiddenCount = false, headerToolbarItems, crudId,
10894
+ showDisplayAs = false, hiddenCount = false, headerToolbarItems,
10879
10895
  filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
10880
10896
  // console.log(`getObjectHeaderToolbar====>`, filterVisible)
10881
10897
  // console.log(`getObjectHeaderToolbar`, mainObject)
@@ -10979,7 +10995,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
10979
10995
  };
10980
10996
  }
10981
10997
  let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name);
10982
- let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName, crudId });
10998
+ let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });
10983
10999
 
10984
11000
  // toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {"type": "tpl",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom
10985
11001
  // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
@@ -11127,6 +11143,20 @@ async function getObjectFilter(objectSchema, fields, options) {
11127
11143
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
11128
11144
  crudService && crudService.setData({isFieldsFilterEmpty});
11129
11145
  `;
11146
+ let onChangeScript = `
11147
+ const scope = event.context.scoped;
11148
+ // let filterFormValues = event.data;
11149
+ let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
11150
+ let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
11151
+ // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
11152
+ let filterFormValues = filterFormService.getData();
11153
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
11154
+ const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
11155
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
11156
+ // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
11157
+ // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
11158
+ crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
11159
+ `;
11130
11160
  return {
11131
11161
  "title": "",
11132
11162
  "submitText": "",
@@ -11150,19 +11180,7 @@ async function getObjectFilter(objectSchema, fields, options) {
11150
11180
  "actions": [
11151
11181
  {
11152
11182
  "actionType": "custom",
11153
- "script": `
11154
- doAction(
11155
- {
11156
- "componentId": 'service_${options.crudId}',
11157
- "actionType": "setValue",
11158
- "args": {
11159
- "value": {
11160
- "__filterFormValues": event.data
11161
- }
11162
- }
11163
- }
11164
- )
11165
- `
11183
+ "script": onChangeScript
11166
11184
  }
11167
11185
  ]
11168
11186
  }
@@ -11237,7 +11255,6 @@ async function getObjectCRUD(objectSchema, fields, options){
11237
11255
  const bulkActions = getBulkActions(objectSchema);
11238
11256
  const defaults = options.defaults;
11239
11257
  const listSchema = (defaults && defaults.listSchema) || {};
11240
- const id = `listview_${objectSchema.name}`;
11241
11258
 
11242
11259
  const bodyProps = {
11243
11260
  // toolbar: getToolbar(),
@@ -11247,7 +11264,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11247
11264
  ...options,
11248
11265
  disableStatistics: options.queryCount === false
11249
11266
  }),
11250
- filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, Object.assign({}, options, {crudId: id})),
11267
+ filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),
11251
11268
  };
11252
11269
  if(options.formFactor !== 'SMALL' || ["split"].indexOf(options.displayAs) == -1){
11253
11270
  if(listSchema.mode !== "cards"){
@@ -11276,8 +11293,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11276
11293
  showDisplayAs,
11277
11294
  hiddenCount: options.queryCount === false,
11278
11295
  headerToolbarItems: options.headerToolbarItems,
11279
- filterVisible: options.filterVisible,
11280
- crudId: id
11296
+ filterVisible: options.filterVisible
11281
11297
  });
11282
11298
 
11283
11299
  options.amisData = createObject(options.amisData, {
@@ -11290,6 +11306,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11290
11306
 
11291
11307
 
11292
11308
  let body = null;
11309
+ const id = `listview_${objectSchema.name}`;
11293
11310
  if(options.formFactor === 'SMALL' && false){
11294
11311
  delete bodyProps.bulkActions;
11295
11312
  delete bodyProps.headerToolbar;
@@ -13521,6 +13538,13 @@ async function lookupToAmisPicker(field, readonly, ctx){
13521
13538
  source.data.$self = "$$";
13522
13539
 
13523
13540
  source.requestAdaptor = `
13541
+ let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
13542
+ let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
13543
+ // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
13544
+ // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
13545
+ // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
13546
+ // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
13547
+ Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
13524
13548
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
13525
13549
  var filters = [];
13526
13550
  var pageSize = api.data.pageSize || 10;
@@ -15164,9 +15188,7 @@ async function getFieldSearchable(perField, permissionFields, ctx){
15164
15188
 
15165
15189
  const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));
15166
15190
  if(amisField){
15167
- return Object.assign({}, amisField,{
15168
- submitOnChange: false
15169
- });
15191
+ return amisField;
15170
15192
  }
15171
15193
  }
15172
15194
  }
@@ -15559,12 +15581,16 @@ async function getForm(props, mode = "edit") {
15559
15581
  }
15560
15582
  else if (mode === "new") {
15561
15583
  let onNewItemSubmitScript = `
15562
- event.data["${props.name}"].push(JSON.parse(JSON.stringify(event.data)));
15584
+ let fieldValue = _.cloneDeep(event.data["${props.name}"]);
15585
+ if(!fieldValue){
15586
+ fieldValue = [];
15587
+ }
15588
+ fieldValue.push(JSON.parse(JSON.stringify(event.data)));
15563
15589
  doAction({
15564
15590
  "componentId": "${props.id}",
15565
15591
  "actionType": "setValue",
15566
15592
  "args": {
15567
- "value": event.data["${props.name}"]
15593
+ "value": fieldValue
15568
15594
  }
15569
15595
  });
15570
15596
  `;
@@ -15767,7 +15793,7 @@ const getAmisInputTableSchema = async (props, readonly) => {
15767
15793
  "className": props.className
15768
15794
  };
15769
15795
  if (props.addable) {
15770
- let buttonNewSchema = getButtonNew(props);
15796
+ let buttonNewSchema = await getButtonNew(props);
15771
15797
  schema.body.push(buttonNewSchema);
15772
15798
  }
15773
15799
  if (props.amis) {
@@ -20786,7 +20812,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
20786
20812
  source: {
20787
20813
  "method": "post",
20788
20814
  "url": "${context.rootUrl}/graphql",
20789
- "requestAdaptor": "\n var steedosField = ".concat(JSON.stringify(steedosField), ";\n var objectName, filters, valueFieldKey, labelFieldKey;\n if(_.isString(steedosField.reference_to)){\n const referenceTo = getReferenceToSync(steedosField);\n const referenceToField = steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[steedosField.name];\n if(_.isString(value)){\n value = [value]\n }\n filters = [referenceToField, \"in\", value || []];\n }else{\n const _steedosField = {\n ...steedosField,\n reference_to: api.data[steedosField.name].o\n }\n const referenceTo = getReferenceToSync(_steedosField);\n const referenceToField = _steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[_steedosField.name] && api.data[_steedosField.name].ids;\n filters = [referenceToField, \"in\", value || []];\n }\n api.data = {\n query: '{options:' + objectName + '(filters: ' + JSON.stringify(filters) + '){label: ' + labelFieldKey + ',value: ' + valueFieldKey + '}}'\n }\n return api;\n "),
20815
+ "requestAdaptor": "\n var steedosField = ".concat(JSON.stringify(steedosField), ";\n var objectName, filters, valueFieldKey, labelFieldKey;\n if(_.isString(steedosField.reference_to)){\n const referenceTo = getReferenceToSync(steedosField);\n const referenceToField = steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[steedosField.name];\n if(_.isString(value)){\n value = [value]\n }\n filters = [referenceToField, \"in\", value || []];\n if(objectName == \"object_fields\"){\n //\u5BF9\u8C61\u4E3Aobject_fields\u65F6\uFF0C\u5FC5\u987B\u52A0\u4E0Aobject\u7684\u8FC7\u6EE4\u6761\u4EF6\n const filtersFunction = ").concat(steedosField.filtersFunction || steedosField._filtersFunction, ";\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data);\n if(_filters && _filters.length > 0){\n filters = [filters,_filters]\n }\n }\n }\n }else{\n const _steedosField = {\n ...steedosField,\n reference_to: api.data[steedosField.name].o\n }\n const referenceTo = getReferenceToSync(_steedosField);\n const referenceToField = _steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[_steedosField.name] && api.data[_steedosField.name].ids;\n filters = [referenceToField, \"in\", value || []];\n }\n api.data = {\n query: '{options:' + objectName + '(filters: ' + JSON.stringify(filters) + '){label: ' + labelFieldKey + ',value: ' + valueFieldKey + '}}'\n }\n return api;\n "),
20790
20816
  "trackExpression": "${" + steedosField.name + "}",
20791
20817
  "cache": 3000
20792
20818
  },