@steedos-widgets/amis-object 6.3.12-beta.18 → 6.3.12-beta.19

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.
@@ -9343,6 +9343,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9343
9343
  if (!ctx) {
9344
9344
  ctx = {};
9345
9345
  }
9346
+ console.log("getObjectFieldsFilterBarSchema===", ctx);
9346
9347
  const searchableFields = ctx.searchable_fields;
9347
9348
  const autoOpenFilter = !!ctx.auto_open_filter;
9348
9349
  const btnSearchId = "btn_filter_form_search_" + new Date().getTime();
@@ -9513,6 +9514,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9513
9514
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
9514
9515
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
9515
9516
  `;
9517
+ const filterFormValues = ctx.filter_form_data;
9516
9518
  const dataProviderInited = `
9517
9519
  const searchableFields = ${JSON.stringify(searchableFields)};
9518
9520
  const autoOpenFilter = ${autoOpenFilter};
@@ -9550,6 +9552,20 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9550
9552
  }
9551
9553
  setData({ filterFormSearchableFields: defaultSearchableFields });
9552
9554
  if(isLookup){
9555
+ let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
9556
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
9557
+ if (isAmisFormula){
9558
+ filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
9559
+ }
9560
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
9561
+ filterFormValues = _.pickBy(filterFormValues, function(n,k){
9562
+ return defaultSearchableFields.indexOf(k) > -1;
9563
+ });
9564
+ filterFormValues = _.mapKeys(filterFormValues, function(n,k){
9565
+ return "__searchable__" + k;
9566
+ })
9567
+ setData({ ...filterFormValues });
9568
+ }
9553
9569
  // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
9554
9570
  setData({ showFieldsFilter: autoOpenFilter });
9555
9571
  }
@@ -15011,6 +15027,7 @@ function getLookupSapceUserTreeSchema(isMobile){
15011
15027
  {
15012
15028
  "actionType": "custom",
15013
15029
  "script": `
15030
+ console.log("===__searchable__organizations_parents===",event.data);
15014
15031
  const scope = event.context.scoped;
15015
15032
  var filterFormValues={
15016
15033
  "__searchable__organizations_parents":event.data.value.value
@@ -15236,6 +15253,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15236
15253
  // field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
15237
15254
  let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
15238
15255
 
15256
+ const filterFormValues = field.filter_form_data;
15239
15257
  source.requestAdaptor = `
15240
15258
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
15241
15259
  let __lookupField = api.data.$self.__lookupField;
@@ -15278,7 +15296,21 @@ async function lookupToAmisPicker(field, readonly, ctx){
15278
15296
  }
15279
15297
  }
15280
15298
 
15281
- var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
15299
+ let filterFormValues = ${_$1__namespace.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
15300
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
15301
+ if (isAmisFormula){
15302
+ filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
15303
+ }
15304
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
15305
+ // filterFormValues = _.pickBy(filterFormValues, function(n,k){
15306
+ // return defaultSearchableFields.indexOf(k) > -1;
15307
+ // });
15308
+ filterFormValues = _.mapKeys(filterFormValues, function(n,k){
15309
+ return "__searchable__" + k;
15310
+ })
15311
+ }
15312
+
15313
+ var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
15282
15314
 
15283
15315
  if(searchableFilter.length > 0){
15284
15316
  if(filters.length > 0 ){
@@ -15512,13 +15544,15 @@ async function lookupToAmisPicker(field, readonly, ctx){
15512
15544
  }
15513
15545
  pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup: true});
15514
15546
  if (ctx.filterVisible !== false) {
15547
+ console.log("lookupToAmisPicker===pickerSchema.filter===field===", field);
15515
15548
  pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
15516
15549
  ...ctx,
15517
15550
  isLookup: true,
15518
15551
  keywordsSearchBoxName,
15519
15552
  searchable_fields: field.searchable_fields,
15520
15553
  auto_open_filter: field.auto_open_filter,
15521
- show_left_filter: field.show_left_filter
15554
+ show_left_filter: field.show_left_filter,
15555
+ filter_form_data: field.filter_form_data
15522
15556
  });
15523
15557
  }
15524
15558
  pickerSchema.data = Object.assign({}, pickerSchema.data, {
@@ -16012,6 +16046,10 @@ async function lookupToAmis(field, readonly, ctx){
16012
16046
  }
16013
16047
  let amisSchema;
16014
16048
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
16049
+ if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
16050
+ // 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
16051
+ enableEnhancedLookup = false;
16052
+ }
16015
16053
  if(enableEnhancedLookup == true){
16016
16054
  amisSchema = await lookupToAmisPicker(field, readonly, ctx);
16017
16055
  }else if(refObject.enable_tree) {
@@ -17143,7 +17181,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
17143
17181
  return convertData
17144
17182
  }
17145
17183
  // if(ctx.mode === 'edit'){
17146
- let convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17184
+ let convertDataResult;
17185
+ if(convertData.type == "steedos-field"){
17186
+ // 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
17187
+ // 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
17188
+ // 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
17189
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
17190
+ }
17191
+ else {
17192
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17193
+ }
17147
17194
  // 只读时file字段的外层control层若存在name,内部each组件存在问题
17148
17195
  if(readonly && field.type == "file") {
17149
17196
  convertDataResult.name = "";