@steedos-widgets/amis-lib 1.2.39-beta.1 → 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/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +79 -63
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +79 -63
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +79 -63
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/index.d.ts +2 -0
- package/dist/types/lib/converter/amis/toolbar.d.ts +3 -1
- package/package.json +2 -2
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,24 +5267,51 @@ 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} = {}){
|
|
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.
|
|
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 = "";
|
|
5277
|
-
if(localListViewProps){
|
|
5281
|
+
if(localListViewProps && !isLookup){
|
|
5278
5282
|
localListViewProps = JSON.parse(localListViewProps);
|
|
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;
|
|
@@ -5334,7 +5367,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5334
5367
|
],
|
|
5335
5368
|
"size":8,
|
|
5336
5369
|
"animation": true,
|
|
5337
|
-
"visibleOn": "${isFieldsFilterEmpty == false}"
|
|
5370
|
+
"visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
|
|
5338
5371
|
},
|
|
5339
5372
|
"align": "right",
|
|
5340
5373
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
@@ -5349,7 +5382,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5349
5382
|
}
|
|
5350
5383
|
}
|
|
5351
5384
|
} : {},
|
|
5352
|
-
getDisplayAsButton(mainObject?.name)
|
|
5385
|
+
getDisplayAsButton(mainObject?.name),
|
|
5386
|
+
getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName })
|
|
5353
5387
|
]
|
|
5354
5388
|
}else {
|
|
5355
5389
|
return [
|
|
@@ -5382,7 +5416,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5382
5416
|
],
|
|
5383
5417
|
"size":8,
|
|
5384
5418
|
"animation": true,
|
|
5385
|
-
"visibleOn": "${isFieldsFilterEmpty == false}"
|
|
5419
|
+
"visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
|
|
5386
5420
|
},
|
|
5387
5421
|
"align": "right",
|
|
5388
5422
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
@@ -5409,26 +5443,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5409
5443
|
// getExportExcelToolbarButtonSchema(),
|
|
5410
5444
|
mainObject?.permissions?.allowCreateListViews ? getSettingListviewToolbarButtonSchema() : {},
|
|
5411
5445
|
getDisplayAsButton(mainObject?.name),
|
|
5412
|
-
{
|
|
5413
|
-
"type": "tooltip-wrapper",
|
|
5414
|
-
"align": "right",
|
|
5415
|
-
"title": "",
|
|
5416
|
-
"content": "可模糊搜索字段:" + searchableFieldsLabel.join(","),
|
|
5417
|
-
"placement": "bottom",
|
|
5418
|
-
"tooltipTheme": "dark",
|
|
5419
|
-
"trigger": "click",
|
|
5420
|
-
"className": "mr-1",
|
|
5421
|
-
"body": [
|
|
5422
|
-
{
|
|
5423
|
-
"type": "search-box",
|
|
5424
|
-
"name": "__keywords",
|
|
5425
|
-
"placeholder": "请输入关键字",
|
|
5426
|
-
"value": crudKeywords,
|
|
5427
|
-
"clearable": true,
|
|
5428
|
-
"clearAndSubmit": true
|
|
5429
|
-
}
|
|
5430
|
-
]
|
|
5431
|
-
},
|
|
5446
|
+
getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName }),
|
|
5432
5447
|
// {
|
|
5433
5448
|
// "type": "drag-toggler",
|
|
5434
5449
|
// "align": "right"
|
|
@@ -5779,8 +5794,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5779
5794
|
"style": {
|
|
5780
5795
|
"max-height": "100%",
|
|
5781
5796
|
"position": "absolute",
|
|
5782
|
-
"left": "-
|
|
5783
|
-
"width": "
|
|
5797
|
+
"left": "-330px",
|
|
5798
|
+
"width": "320px",
|
|
5784
5799
|
"bottom": 0,
|
|
5785
5800
|
"top": "0",
|
|
5786
5801
|
"overflow": "auto",
|
|
@@ -5846,7 +5861,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5846
5861
|
})){
|
|
5847
5862
|
i++;
|
|
5848
5863
|
tableFields.push(field);
|
|
5849
|
-
if(field.
|
|
5864
|
+
if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
|
|
5850
5865
|
searchableFields.push(field.name);
|
|
5851
5866
|
}
|
|
5852
5867
|
}
|
|
@@ -5887,7 +5902,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5887
5902
|
source.data.$term = "$term";
|
|
5888
5903
|
source.data.$self = "$$";
|
|
5889
5904
|
|
|
5890
|
-
|
|
5905
|
+
let keywordsSearchBoxName = `__keywords_lookup__${field.name}__to__${refObjectConfig.name}`;
|
|
5906
|
+
|
|
5891
5907
|
source.requestAdaptor = `
|
|
5892
5908
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
5893
5909
|
var filters = [];
|
|
@@ -5941,19 +5957,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5941
5957
|
})
|
|
5942
5958
|
}
|
|
5943
5959
|
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
allowSearchFields.forEach(function(key, index){
|
|
5947
|
-
const keyValue = selfData.__keywords;
|
|
5948
|
-
if(keyValue){
|
|
5949
|
-
keywordsFilters.push([key, "contains", keyValue]);
|
|
5950
|
-
if(index < allowSearchFields.length - 1){
|
|
5951
|
-
keywordsFilters.push('or');
|
|
5952
|
-
}
|
|
5953
|
-
}
|
|
5954
|
-
})
|
|
5960
|
+
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${keywordsSearchBoxName}, allowSearchFields);
|
|
5961
|
+
if(keywordsFilters && keywordsFilters.length > 0){
|
|
5955
5962
|
filters.push(keywordsFilters);
|
|
5956
|
-
}
|
|
5963
|
+
}
|
|
5957
5964
|
|
|
5958
5965
|
var fieldFilters = ${JSON.stringify(field.filters)};
|
|
5959
5966
|
if(fieldFilters && fieldFilters.length){
|
|
@@ -6065,13 +6072,13 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6065
6072
|
if(referenceTo.objectName === "space_users" && field.reference_to_field === "user" && !isMobile){
|
|
6066
6073
|
headerToolbarItems = getLookupSapceUserTreeSchema();
|
|
6067
6074
|
pickerSchema["style"] = {
|
|
6068
|
-
"margin-left":"
|
|
6075
|
+
"margin-left":"330px",
|
|
6069
6076
|
"min-height": "300px"
|
|
6070
6077
|
};
|
|
6071
6078
|
pickerSchema.className = pickerSchema.className || "" + " steedos-select-user";
|
|
6072
6079
|
}
|
|
6073
6080
|
|
|
6074
|
-
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, ctx.formFactor, { headerToolbarItems });
|
|
6081
|
+
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
|
|
6075
6082
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
6076
6083
|
if (isAllowCreate) {
|
|
6077
6084
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
@@ -6082,8 +6089,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6082
6089
|
pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar();
|
|
6083
6090
|
if (ctx.filterVisible !== false) {
|
|
6084
6091
|
pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
|
|
6092
|
+
...ctx,
|
|
6085
6093
|
isLookup: true,
|
|
6086
|
-
|
|
6094
|
+
keywordsSearchBoxName
|
|
6087
6095
|
});
|
|
6088
6096
|
}
|
|
6089
6097
|
pickerSchema.data = Object.assign({}, pickerSchema.data, {
|
|
@@ -6419,7 +6427,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6419
6427
|
}
|
|
6420
6428
|
|
|
6421
6429
|
if(referenceTo.objectName === "space_users" && field.reference_to_field === "user"){
|
|
6422
|
-
if(ctx.idsDependOn
|
|
6430
|
+
if(ctx.idsDependOn){
|
|
6423
6431
|
// ids人员点选模式
|
|
6424
6432
|
return await lookupToAmisIdsPicker(field, readonly, ctx);
|
|
6425
6433
|
}
|
|
@@ -6794,6 +6802,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6794
6802
|
return readonly ? getAmisFileReadonlySchema(steedosField) : getAmisFileEditSchema(steedosField);
|
|
6795
6803
|
};
|
|
6796
6804
|
|
|
6805
|
+
const QUICK_SEARCHABLE_FIELD_TYPES = ["text", "textarea", "autonumber", "url", "email"];
|
|
6797
6806
|
const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];
|
|
6798
6807
|
// const Lookup = require('./lookup');
|
|
6799
6808
|
|
|
@@ -7566,8 +7575,22 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7566
7575
|
window.isFieldTypeSearchable = isFieldTypeSearchable;
|
|
7567
7576
|
}
|
|
7568
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
|
+
|
|
7569
7591
|
var index = /*#__PURE__*/Object.freeze({
|
|
7570
7592
|
__proto__: null,
|
|
7593
|
+
QUICK_SEARCHABLE_FIELD_TYPES: QUICK_SEARCHABLE_FIELD_TYPES,
|
|
7571
7594
|
OMIT_FIELDS: OMIT_FIELDS,
|
|
7572
7595
|
getBaseFields: getBaseFields,
|
|
7573
7596
|
getAmisFieldType: getAmisFieldType,
|
|
@@ -7578,6 +7601,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7578
7601
|
convertSFieldToAmisField: convertSFieldToAmisField,
|
|
7579
7602
|
getFieldSearchable: getFieldSearchable,
|
|
7580
7603
|
isFieldTypeSearchable: isFieldTypeSearchable,
|
|
7604
|
+
isFieldQuickSearchable: isFieldQuickSearchable,
|
|
7581
7605
|
getAmisStaticFieldType: getAmisStaticFieldType
|
|
7582
7606
|
});
|
|
7583
7607
|
|
|
@@ -8354,8 +8378,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
8354
8378
|
if(filter){
|
|
8355
8379
|
baseFilters = filter;
|
|
8356
8380
|
}
|
|
8357
|
-
|
|
8358
|
-
|
|
8381
|
+
|
|
8382
|
+
___namespace.each(fields, function (field) {
|
|
8383
|
+
if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
|
|
8359
8384
|
searchableFields.push(field.name);
|
|
8360
8385
|
}
|
|
8361
8386
|
});
|
|
@@ -8483,19 +8508,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
8483
8508
|
})
|
|
8484
8509
|
}
|
|
8485
8510
|
|
|
8486
|
-
|
|
8487
|
-
|
|
8488
|
-
allowSearchFields.forEach(function(key, index){
|
|
8489
|
-
const keyValue = selfData.__keywords;
|
|
8490
|
-
if(keyValue){
|
|
8491
|
-
keywordsFilters.push([key, "contains", keyValue]);
|
|
8492
|
-
if(index < allowSearchFields.length - 1){
|
|
8493
|
-
keywordsFilters.push('or');
|
|
8494
|
-
}
|
|
8495
|
-
}
|
|
8496
|
-
})
|
|
8511
|
+
var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);
|
|
8512
|
+
if(keywordsFilters && keywordsFilters.length > 0){
|
|
8497
8513
|
userFilters.push(keywordsFilters);
|
|
8498
|
-
}
|
|
8514
|
+
}
|
|
8499
8515
|
|
|
8500
8516
|
let filters = [];
|
|
8501
8517
|
|