@steedos-widgets/amis-lib 1.2.39 → 1.2.40

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/index.umd.js CHANGED
@@ -3309,6 +3309,7 @@
3309
3309
  }
3310
3310
  const btnSearchId = "btn_filter_form_search_" + new Date().getTime();
3311
3311
  const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
3312
+ const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
3312
3313
  const onSearchScript = `
3313
3314
  const scope = event.context.scoped;
3314
3315
  var filterForm = scope.parent.parent.getComponents().find(function(n){
@@ -3394,6 +3395,11 @@
3394
3395
  }
3395
3396
  }
3396
3397
  }
3398
+ else{
3399
+ const keywordsSearchBoxName = "${keywordsSearchBoxName}";
3400
+ //lookup字段保留快速搜索条件
3401
+ removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
3402
+ }
3397
3403
  filterForm.reset();
3398
3404
  listView.handleFilterSubmit(removedValues);
3399
3405
  const filterService = filterForm.context.getComponents().find(function(n){
@@ -5261,16 +5267,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5261
5267
  // }
5262
5268
  `;
5263
5269
 
5264
-
5265
- function getObjectHeaderToolbar(mainObject, fields, formFactor, { showDisplayAs = false, hiddenCount = false, headerToolbarItems, filterVisible = true, isLookup = false } = {}){
5266
- // console.log(`getObjectHeaderToolbar====>`, filterVisible)
5267
- // console.log(`getObjectHeaderToolbar`, mainObject)
5270
+ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
5268
5271
  const searchableFieldsLabel = [];
5269
5272
  _.each(fields, function (field) {
5270
- if (field.searchable && SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1) {
5273
+ if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
5271
5274
  searchableFieldsLabel.push(field.label);
5272
5275
  }
5273
5276
  });
5277
+
5274
5278
  const listViewPropsStoreKey = location.pathname + "/crud";
5275
5279
  let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);
5276
5280
  let crudKeywords = "";
@@ -5279,6 +5283,35 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5279
5283
  crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
5280
5284
  }
5281
5285
 
5286
+ return {
5287
+ "type": "tooltip-wrapper",
5288
+ "align": "right",
5289
+ "title": "",
5290
+ "content": "可搜索字段:" + searchableFieldsLabel.join(","),
5291
+ "placement": "bottom",
5292
+ "tooltipTheme": "dark",
5293
+ "trigger": "click",
5294
+ "className": formFactor !== 'SMALL' ? "mr-1" : '',
5295
+ "visible": !!searchableFieldsLabel.length,
5296
+ "body": [
5297
+ {
5298
+ "type": "search-box",
5299
+ "name": keywordsSearchBoxName,
5300
+ "placeholder": "快速搜索",
5301
+ "value": crudKeywords,
5302
+ "clearable": true,
5303
+ "clearAndSubmit": true
5304
+ }
5305
+ ]
5306
+ }
5307
+ }
5308
+
5309
+ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
5310
+ showDisplayAs = false, hiddenCount = false, headerToolbarItems,
5311
+ filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
5312
+ // console.log(`getObjectHeaderToolbar====>`, filterVisible)
5313
+ // console.log(`getObjectHeaderToolbar`, mainObject)
5314
+
5282
5315
  const isMobile = window.innerWidth < 768;
5283
5316
  if(isMobile){
5284
5317
  showDisplayAs = false;
@@ -5350,26 +5383,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5350
5383
  }
5351
5384
  } : {},
5352
5385
  getDisplayAsButton(mainObject?.name),
5353
- {
5354
- "type": "tooltip-wrapper",
5355
- "align": "right",
5356
- "title": "",
5357
- "content": "可搜索字段:" + searchableFieldsLabel.join(","),
5358
- "placement": "bottom",
5359
- "tooltipTheme": "dark",
5360
- "trigger": "click",
5361
- // "className": "mr-1",
5362
- "body": [
5363
- {
5364
- "type": "search-box",
5365
- "name": "__keywords",
5366
- "placeholder": "请输入关键字",
5367
- "value": crudKeywords,
5368
- "clearable": true,
5369
- "clearAndSubmit": true
5370
- }
5371
- ]
5372
- },
5386
+ getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName })
5373
5387
  ]
5374
5388
  }else {
5375
5389
  return [
@@ -5429,26 +5443,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5429
5443
  // getExportExcelToolbarButtonSchema(),
5430
5444
  mainObject?.permissions?.allowCreateListViews ? getSettingListviewToolbarButtonSchema() : {},
5431
5445
  getDisplayAsButton(mainObject?.name),
5432
- {
5433
- "type": "tooltip-wrapper",
5434
- "align": "right",
5435
- "title": "",
5436
- "content": "可搜索字段:" + searchableFieldsLabel.join(","),
5437
- "placement": "bottom",
5438
- "tooltipTheme": "dark",
5439
- "trigger": "click",
5440
- "className": "mr-1",
5441
- "body": [
5442
- {
5443
- "type": "search-box",
5444
- "name": "__keywords",
5445
- "placeholder": "请输入关键字",
5446
- "value": crudKeywords,
5447
- "clearable": true,
5448
- "clearAndSubmit": true
5449
- }
5450
- ]
5451
- },
5446
+ getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName }),
5452
5447
  // {
5453
5448
  // "type": "drag-toggler",
5454
5449
  // "align": "right"
@@ -5866,7 +5861,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5866
5861
  })){
5867
5862
  i++;
5868
5863
  tableFields.push(field);
5869
- if(field.searchable && SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1){
5864
+ if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
5870
5865
  searchableFields.push(field.name);
5871
5866
  }
5872
5867
  }
@@ -5907,7 +5902,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5907
5902
  source.data.$term = "$term";
5908
5903
  source.data.$self = "$$";
5909
5904
 
5910
-
5905
+ let keywordsSearchBoxName = `__keywords_lookup__${field.name}__to__${refObjectConfig.name}`;
5906
+
5911
5907
  source.requestAdaptor = `
5912
5908
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
5913
5909
  var filters = [];
@@ -5961,19 +5957,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5961
5957
  })
5962
5958
  }
5963
5959
 
5964
- if(selfData.__keywords && allowSearchFields){
5965
- const keywordsFilters = [];
5966
- allowSearchFields.forEach(function(key, index){
5967
- const keyValue = selfData.__keywords;
5968
- if(keyValue){
5969
- keywordsFilters.push([key, "contains", keyValue]);
5970
- if(index < allowSearchFields.length - 1){
5971
- keywordsFilters.push('or');
5972
- }
5973
- }
5974
- })
5960
+ var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${keywordsSearchBoxName}, allowSearchFields);
5961
+ if(keywordsFilters && keywordsFilters.length > 0){
5975
5962
  filters.push(keywordsFilters);
5976
- };
5963
+ }
5977
5964
 
5978
5965
  var fieldFilters = ${JSON.stringify(field.filters)};
5979
5966
  if(fieldFilters && fieldFilters.length){
@@ -6091,7 +6078,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6091
6078
  pickerSchema.className = pickerSchema.className || "" + " steedos-select-user";
6092
6079
  }
6093
6080
 
6094
- pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true });
6081
+ pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
6095
6082
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
6096
6083
  if (isAllowCreate) {
6097
6084
  const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
@@ -6102,8 +6089,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6102
6089
  pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar();
6103
6090
  if (ctx.filterVisible !== false) {
6104
6091
  pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
6092
+ ...ctx,
6105
6093
  isLookup: true,
6106
- ...ctx
6094
+ keywordsSearchBoxName
6107
6095
  });
6108
6096
  }
6109
6097
  pickerSchema.data = Object.assign({}, pickerSchema.data, {
@@ -6439,7 +6427,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6439
6427
  }
6440
6428
 
6441
6429
  if(referenceTo.objectName === "space_users" && field.reference_to_field === "user"){
6442
- if(ctx.idsDependOn || field.amis){
6430
+ if(ctx.idsDependOn){
6443
6431
  // ids人员点选模式
6444
6432
  return await lookupToAmisIdsPicker(field, readonly, ctx);
6445
6433
  }
@@ -6814,7 +6802,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6814
6802
  return readonly ? getAmisFileReadonlySchema(steedosField) : getAmisFileEditSchema(steedosField);
6815
6803
  };
6816
6804
 
6817
- const SEARCHABLE_FIELD_TYPES = ["text", "textarea", "autonumber", "url", "email"];
6805
+ const QUICK_SEARCHABLE_FIELD_TYPES = ["text", "textarea", "autonumber", "url", "email"];
6818
6806
  const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];
6819
6807
  // const Lookup = require('./lookup');
6820
6808
 
@@ -7587,9 +7575,22 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7587
7575
  window.isFieldTypeSearchable = isFieldTypeSearchable;
7588
7576
  }
7589
7577
 
7578
+
7579
+ function isFieldQuickSearchable(field, nameFieldKey) {
7580
+ let fieldSearchable = field.searchable;
7581
+ if(fieldSearchable !== false && field.name === nameFieldKey){
7582
+ // 对象上名称字段的searchable默认认为是true
7583
+ fieldSearchable = true;
7584
+ }
7585
+ if (fieldSearchable && QUICK_SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1) {
7586
+ return true;
7587
+ }
7588
+ return false;
7589
+ }
7590
+
7590
7591
  var index = /*#__PURE__*/Object.freeze({
7591
7592
  __proto__: null,
7592
- SEARCHABLE_FIELD_TYPES: SEARCHABLE_FIELD_TYPES,
7593
+ QUICK_SEARCHABLE_FIELD_TYPES: QUICK_SEARCHABLE_FIELD_TYPES,
7593
7594
  OMIT_FIELDS: OMIT_FIELDS,
7594
7595
  getBaseFields: getBaseFields,
7595
7596
  getAmisFieldType: getAmisFieldType,
@@ -7600,6 +7601,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7600
7601
  convertSFieldToAmisField: convertSFieldToAmisField,
7601
7602
  getFieldSearchable: getFieldSearchable,
7602
7603
  isFieldTypeSearchable: isFieldTypeSearchable,
7604
+ isFieldQuickSearchable: isFieldQuickSearchable,
7603
7605
  getAmisStaticFieldType: getAmisStaticFieldType
7604
7606
  });
7605
7607
 
@@ -8376,8 +8378,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8376
8378
  if(filter){
8377
8379
  baseFilters = filter;
8378
8380
  }
8379
- ___namespace.each(fields,function(field){
8380
- if(field.searchable && SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1){
8381
+
8382
+ ___namespace.each(fields, function (field) {
8383
+ if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
8381
8384
  searchableFields.push(field.name);
8382
8385
  }
8383
8386
  });
@@ -8505,19 +8508,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8505
8508
  })
8506
8509
  }
8507
8510
 
8508
- if(selfData.__keywords && allowSearchFields){
8509
- const keywordsFilters = [];
8510
- allowSearchFields.forEach(function(key, index){
8511
- const keyValue = selfData.__keywords;
8512
- if(keyValue){
8513
- keywordsFilters.push([key, "contains", keyValue]);
8514
- if(index < allowSearchFields.length - 1){
8515
- keywordsFilters.push('or');
8516
- }
8517
- }
8518
- })
8511
+ var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);
8512
+ if(keywordsFilters && keywordsFilters.length > 0){
8519
8513
  userFilters.push(keywordsFilters);
8520
- };
8514
+ }
8521
8515
 
8522
8516
  let filters = [];
8523
8517