@steedos-widgets/amis-object 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.
@@ -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,6 +6046,7 @@ async function getTableApi(mainObject, fields, options){
6045
6046
  selfData.page = localListViewProps.page || 1;
6046
6047
  }
6047
6048
  }
6049
+
6048
6050
  delete selfData.context;
6049
6051
  delete selfData.global;
6050
6052
  sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));
@@ -8818,6 +8820,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8818
8820
  const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
8819
8821
  const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
8820
8822
  const onSearchScript = `
8823
+ // console.log("===onSearchScript=form==");
8821
8824
  const scope = event.context.scoped;
8822
8825
  var filterForm = scope.parent.parent.getComponents().find(function(n){
8823
8826
  return n.props.type === "form";
@@ -8874,25 +8877,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8874
8877
  crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
8875
8878
  `;
8876
8879
  const onCancelScript = `
8877
- doAction(
8878
- {
8879
- "componentId": 'service_${ctx.crudId}',
8880
- "actionType": "setValue",
8881
- "args": {
8882
- "value": {
8883
- "__filterFormValues": null
8884
- }
8885
- }
8886
- }
8887
- )
8880
+ // console.log("===onCancelScript=form==");
8888
8881
  const scope = event.context.scoped;
8889
8882
  var filterForm = scope.parent.parent.getComponents().find(function(n){
8890
8883
  return n.props.type === "form";
8891
8884
  });
8892
8885
  var filterFormValues = filterForm.getValues();
8893
- var listView = scope.parent.parent.parent.getComponents().find(function(n){
8894
- return n.props.type === "crud";
8895
- });
8886
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
8896
8887
  const removedValues = {};
8897
8888
  for(var k in filterFormValues){
8898
8889
  if(/^__searchable__/.test(k)){
@@ -8907,7 +8898,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8907
8898
  if(localListViewProps){
8908
8899
  localListViewProps = JSON.parse(localListViewProps);
8909
8900
  for(var k in localListViewProps){
8910
- if(k !== "__keywords"){
8901
+ if(/^__searchable__/.test(k)){
8911
8902
  removedValues[k] = null;
8912
8903
  }
8913
8904
  }
@@ -8918,20 +8909,35 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
8918
8909
  //lookup字段保留快速搜索条件
8919
8910
  removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
8920
8911
  }
8921
- filterForm.reset();
8922
- setTimeout(()=>{
8923
- listView.handleFilterSubmit(removedValues);
8924
- }, 100);
8925
- const filterService = filterForm.context.getComponents().find(function(n){
8926
- return n.props.type === "service";
8927
- });
8928
- 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});
8929
8934
  //触发amis crud 高度重算
8930
8935
  setTimeout(()=>{
8931
8936
  window.dispatchEvent(new Event("resize"))
8932
8937
  }, 100);
8933
8938
  // 移除搜索按钮上的红点
8934
- 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");
8935
8941
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
8936
8942
  `;
8937
8943
  const dataProviderInited = `
@@ -10797,7 +10803,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10797
10803
  // }
10798
10804
  `;
10799
10805
 
10800
- 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" } = {}){
10801
10808
  const searchableFieldsLabel = [];
10802
10809
  _.each(mainObject.fields, function (field) {
10803
10810
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
@@ -10813,6 +10820,33 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10813
10820
  crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
10814
10821
  }
10815
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
+
10816
10850
  return {
10817
10851
  "type": "tooltip-wrapper",
10818
10852
  "id": "steedos_crud_toolbar_quick_search",
@@ -10831,28 +10865,24 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10831
10865
  "placeholder": "搜索此列表",
10832
10866
  "value": crudKeywords,
10833
10867
  "clearable": true,
10834
- "clearAndSubmit": true,
10868
+ // "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
10835
10869
  "searchImediately": false,
10836
10870
  "onEvent": {
10837
- "change": {
10871
+ "search": {
10838
10872
  "actions": [
10839
10873
  {
10840
10874
  "actionType": "custom",
10841
- "script": `
10842
- doAction(
10843
- {
10844
- "componentId": 'service_${crudId}',
10845
- "actionType": "setValue",
10846
- "args": {
10847
- "value": {
10848
- "__serachBoxValues": event.data
10849
- }
10850
- }
10851
- }
10852
- )
10853
- `
10875
+ "script": onSearchScript
10854
10876
  }
10855
10877
  ]
10878
+ },
10879
+ "blur": { //这里把change事件换成blur是因为amis 3.2change事件中setData会卡,升级到3.4+后就可以换回change事件
10880
+ "actions": [
10881
+ {
10882
+ "actionType": "custom",
10883
+ "script": onChangeScript
10884
+ },
10885
+ ]
10856
10886
  }
10857
10887
  }
10858
10888
  }
@@ -10861,7 +10891,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
10861
10891
  }
10862
10892
 
10863
10893
  function getObjectHeaderToolbar(mainObject, fields, formFactor, {
10864
- showDisplayAs = false, hiddenCount = false, headerToolbarItems, crudId,
10894
+ showDisplayAs = false, hiddenCount = false, headerToolbarItems,
10865
10895
  filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
10866
10896
  // console.log(`getObjectHeaderToolbar====>`, filterVisible)
10867
10897
  // console.log(`getObjectHeaderToolbar`, mainObject)
@@ -10965,7 +10995,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
10965
10995
  };
10966
10996
  }
10967
10997
  let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name);
10968
- let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName, crudId });
10998
+ let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });
10969
10999
 
10970
11000
  // toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {"type": "tpl",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom
10971
11001
  // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
@@ -11113,6 +11143,20 @@ async function getObjectFilter(objectSchema, fields, options) {
11113
11143
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
11114
11144
  crudService && crudService.setData({isFieldsFilterEmpty});
11115
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
+ `;
11116
11160
  return {
11117
11161
  "title": "",
11118
11162
  "submitText": "",
@@ -11136,19 +11180,7 @@ async function getObjectFilter(objectSchema, fields, options) {
11136
11180
  "actions": [
11137
11181
  {
11138
11182
  "actionType": "custom",
11139
- "script": `
11140
- doAction(
11141
- {
11142
- "componentId": 'service_${options.crudId}',
11143
- "actionType": "setValue",
11144
- "args": {
11145
- "value": {
11146
- "__filterFormValues": event.data
11147
- }
11148
- }
11149
- }
11150
- )
11151
- `
11183
+ "script": onChangeScript
11152
11184
  }
11153
11185
  ]
11154
11186
  }
@@ -11223,7 +11255,6 @@ async function getObjectCRUD(objectSchema, fields, options){
11223
11255
  const bulkActions = getBulkActions(objectSchema);
11224
11256
  const defaults = options.defaults;
11225
11257
  const listSchema = (defaults && defaults.listSchema) || {};
11226
- const id = `listview_${objectSchema.name}`;
11227
11258
 
11228
11259
  const bodyProps = {
11229
11260
  // toolbar: getToolbar(),
@@ -11233,7 +11264,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11233
11264
  ...options,
11234
11265
  disableStatistics: options.queryCount === false
11235
11266
  }),
11236
- filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, Object.assign({}, options, {crudId: id})),
11267
+ filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),
11237
11268
  };
11238
11269
  if(options.formFactor !== 'SMALL' || ["split"].indexOf(options.displayAs) == -1){
11239
11270
  if(listSchema.mode !== "cards"){
@@ -11262,8 +11293,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11262
11293
  showDisplayAs,
11263
11294
  hiddenCount: options.queryCount === false,
11264
11295
  headerToolbarItems: options.headerToolbarItems,
11265
- filterVisible: options.filterVisible,
11266
- crudId: id
11296
+ filterVisible: options.filterVisible
11267
11297
  });
11268
11298
 
11269
11299
  options.amisData = createObject(options.amisData, {
@@ -11276,6 +11306,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11276
11306
 
11277
11307
 
11278
11308
  let body = null;
11309
+ const id = `listview_${objectSchema.name}`;
11279
11310
  if(options.formFactor === 'SMALL' && false){
11280
11311
  delete bodyProps.bulkActions;
11281
11312
  delete bodyProps.headerToolbar;
@@ -13507,6 +13538,13 @@ async function lookupToAmisPicker(field, readonly, ctx){
13507
13538
  source.data.$self = "$$";
13508
13539
 
13509
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);
13510
13548
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
13511
13549
  var filters = [];
13512
13550
  var pageSize = api.data.pageSize || 10;
@@ -13573,7 +13611,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
13573
13611
  const filtersFunction = ${field.filtersFunction || field._filtersFunction};
13574
13612
 
13575
13613
  if(filtersFunction && !inFilterForm){
13576
- const _filters = filtersFunction(filters, api.data.$self.__super.__super);
13614
+ const _filters = filtersFunction(filters, api.data.$self.__super);
13577
13615
  if(_filters && _filters.length > 0){
13578
13616
  filters.push(_filters);
13579
13617
  }
@@ -15150,9 +15188,7 @@ async function getFieldSearchable(perField, permissionFields, ctx){
15150
15188
 
15151
15189
  const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));
15152
15190
  if(amisField){
15153
- return Object.assign({}, amisField,{
15154
- submitOnChange: false
15155
- });
15191
+ return amisField;
15156
15192
  }
15157
15193
  }
15158
15194
  }
@@ -15545,12 +15581,16 @@ async function getForm(props, mode = "edit") {
15545
15581
  }
15546
15582
  else if (mode === "new") {
15547
15583
  let onNewItemSubmitScript = `
15548
- 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)));
15549
15589
  doAction({
15550
15590
  "componentId": "${props.id}",
15551
15591
  "actionType": "setValue",
15552
15592
  "args": {
15553
- "value": event.data["${props.name}"]
15593
+ "value": fieldValue
15554
15594
  }
15555
15595
  });
15556
15596
  `;
@@ -15753,7 +15793,7 @@ const getAmisInputTableSchema = async (props, readonly) => {
15753
15793
  "className": props.className
15754
15794
  };
15755
15795
  if (props.addable) {
15756
- let buttonNewSchema = getButtonNew(props);
15796
+ let buttonNewSchema = await getButtonNew(props);
15757
15797
  schema.body.push(buttonNewSchema);
15758
15798
  }
15759
15799
  if (props.amis) {
@@ -20772,7 +20812,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
20772
20812
  source: {
20773
20813
  "method": "post",
20774
20814
  "url": "${context.rootUrl}/graphql",
20775
- "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 "),
20776
20816
  "trackExpression": "${" + steedosField.name + "}",
20777
20817
  "cache": 3000
20778
20818
  },