@steedos-widgets/amis-lib 1.2.19 → 1.2.25
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 +178 -85
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +178 -85
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +178 -85
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/editor.d.ts +2 -0
- package/dist/types/lib/converter/amis/fields_filter.d.ts +6 -2
- package/dist/types/lib/converter/amis/header.d.ts +6 -2
- package/dist/types/lib/converter/amis/toolbar.d.ts +6 -2
- package/dist/types/lib/converter/amis/toolbars/setting_listview/new.d.ts +21 -0
- package/dist/types/lib/converter/amis/toolbars/setting_listview.d.ts +21 -0
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -3242,28 +3242,42 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
3242
3242
|
// }
|
|
3243
3243
|
// }
|
|
3244
3244
|
// listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
|
|
3245
|
-
|
|
3246
|
-
let
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
setTimeout(()=>{
|
|
3252
|
-
window.dispatchEvent(new Event("resize"))
|
|
3253
|
-
}, 500);
|
|
3254
|
-
}
|
|
3255
|
-
const filterService = filterForm.context.getComponents().find(function(n){
|
|
3256
|
-
return n.props.type === "service";
|
|
3257
|
-
});
|
|
3258
|
-
filterService.setData({showFieldsFilter: false});
|
|
3259
|
-
resizeWindow();
|
|
3260
|
-
// 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
|
|
3261
|
-
let filterFormValues = event.data;
|
|
3262
|
-
let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
|
|
3263
|
-
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
3264
|
-
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
3265
|
-
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});
|
|
3245
|
+
// 点击搜索的时候自动收起搜索栏
|
|
3246
|
+
let resizeWindow = function(){
|
|
3247
|
+
//触发amis crud 高度重算
|
|
3248
|
+
setTimeout(()=>{
|
|
3249
|
+
window.dispatchEvent(new Event("resize"))
|
|
3250
|
+
}, 500);
|
|
3266
3251
|
}
|
|
3252
|
+
const filterService = filterForm.context.getComponents().find(function(n){
|
|
3253
|
+
return n.props.type === "service";
|
|
3254
|
+
});
|
|
3255
|
+
let showFieldsFilter = false;
|
|
3256
|
+
const isMobile = window.innerWidth < 768;
|
|
3257
|
+
if(event.data.__from_fields_filter_settings_confirm){
|
|
3258
|
+
// 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏
|
|
3259
|
+
showFieldsFilter = true;
|
|
3260
|
+
}
|
|
3261
|
+
else if(isMobile){
|
|
3262
|
+
// 如果是手机端,点击搜索后自动关闭搜索栏
|
|
3263
|
+
showFieldsFilter = false;
|
|
3264
|
+
}
|
|
3265
|
+
else if(event.data.displayAs === "split") {
|
|
3266
|
+
// PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏
|
|
3267
|
+
showFieldsFilter = false;
|
|
3268
|
+
}
|
|
3269
|
+
else if(window.innerHeight >= 1200){
|
|
3270
|
+
// 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏
|
|
3271
|
+
showFieldsFilter = true;
|
|
3272
|
+
}
|
|
3273
|
+
filterService.setData({showFieldsFilter});
|
|
3274
|
+
resizeWindow();
|
|
3275
|
+
// 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
|
|
3276
|
+
let filterFormValues = event.data;
|
|
3277
|
+
let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
|
|
3278
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
3279
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
3280
|
+
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
|
|
3267
3281
|
`;
|
|
3268
3282
|
const onCancelScript = `
|
|
3269
3283
|
const scope = event.context.scoped;
|
|
@@ -3302,12 +3316,9 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
3302
3316
|
setTimeout(()=>{
|
|
3303
3317
|
window.dispatchEvent(new Event("resize"))
|
|
3304
3318
|
}, 100);
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
3309
|
-
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
3310
|
-
}
|
|
3319
|
+
// 移除搜索按钮上的红点
|
|
3320
|
+
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
3321
|
+
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
3311
3322
|
`;
|
|
3312
3323
|
const dataProviderInited = `
|
|
3313
3324
|
const objectName = data.objectName;
|
|
@@ -3360,17 +3371,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
3360
3371
|
|| (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))
|
|
3361
3372
|
|| (_.isString(n) && n.length === 0);
|
|
3362
3373
|
});
|
|
3363
|
-
//
|
|
3374
|
+
// 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏
|
|
3364
3375
|
if(!_.isEmpty(omitedEmptyFormValue)){
|
|
3365
|
-
let
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
|
|
3369
|
-
crudService && crudService.setData({isFieldsFilterEmpty: false});
|
|
3370
|
-
}
|
|
3371
|
-
else{
|
|
3372
|
-
setData({ showFieldsFilter: true });
|
|
3373
|
-
}
|
|
3376
|
+
let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
|
|
3377
|
+
crudService && crudService.setData({isFieldsFilterEmpty: false});
|
|
3378
|
+
// setData({ showFieldsFilter: true });//自动展开搜索栏
|
|
3374
3379
|
}
|
|
3375
3380
|
}
|
|
3376
3381
|
}
|
|
@@ -3636,7 +3641,10 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
3636
3641
|
},
|
|
3637
3642
|
{
|
|
3638
3643
|
"actionType": "click",
|
|
3639
|
-
"componentId": btnSearchId
|
|
3644
|
+
"componentId": btnSearchId,
|
|
3645
|
+
"args": {
|
|
3646
|
+
"__from_fields_filter_settings_confirm": true
|
|
3647
|
+
}
|
|
3640
3648
|
},
|
|
3641
3649
|
{
|
|
3642
3650
|
"componentId": "",
|
|
@@ -4168,7 +4176,8 @@ const getNewListviewButtonSchema = ()=>{
|
|
|
4168
4176
|
"name":"",
|
|
4169
4177
|
"label":"",
|
|
4170
4178
|
"filters":"",
|
|
4171
|
-
"shared":false
|
|
4179
|
+
"shared":false,
|
|
4180
|
+
"object_name": "${targetObjectName}",
|
|
4172
4181
|
},
|
|
4173
4182
|
"fieldsExtend": fieldsExtend$4(),
|
|
4174
4183
|
"fields": fields$1(),
|
|
@@ -4215,13 +4224,11 @@ function fields$1(){
|
|
|
4215
4224
|
"object_name",
|
|
4216
4225
|
"filter_scope",
|
|
4217
4226
|
"show_count",
|
|
4218
|
-
"columns
|
|
4219
|
-
"
|
|
4220
|
-
"sort.$.field_name",
|
|
4221
|
-
"sort.$.order",
|
|
4227
|
+
"columns",
|
|
4228
|
+
"sort",
|
|
4222
4229
|
"filters",
|
|
4223
|
-
"mobile_columns
|
|
4224
|
-
"searchable_fields
|
|
4230
|
+
"mobile_columns",
|
|
4231
|
+
"searchable_fields",
|
|
4225
4232
|
"is_system",
|
|
4226
4233
|
"shared"
|
|
4227
4234
|
]
|
|
@@ -4234,7 +4241,8 @@ function fieldsExtend$4(){
|
|
|
4234
4241
|
},
|
|
4235
4242
|
"name": {
|
|
4236
4243
|
"amis": {
|
|
4237
|
-
"hidden": true
|
|
4244
|
+
"hidden": true,
|
|
4245
|
+
"required": false
|
|
4238
4246
|
}
|
|
4239
4247
|
},
|
|
4240
4248
|
"object_name": {
|
|
@@ -4244,37 +4252,56 @@ function fieldsExtend$4(){
|
|
|
4244
4252
|
},
|
|
4245
4253
|
"filter_scope": {
|
|
4246
4254
|
"amis": {
|
|
4247
|
-
"hidden": true
|
|
4255
|
+
"hidden": true,
|
|
4256
|
+
"required": false
|
|
4248
4257
|
}
|
|
4249
4258
|
},
|
|
4250
4259
|
"columns": {
|
|
4251
4260
|
"amis": {
|
|
4252
|
-
"hidden": true
|
|
4261
|
+
"hidden": true,
|
|
4262
|
+
"required": false
|
|
4263
|
+
}
|
|
4264
|
+
},
|
|
4265
|
+
"mobile_columns":{
|
|
4266
|
+
"amis": {
|
|
4267
|
+
"hidden": true,
|
|
4268
|
+
"required": false
|
|
4269
|
+
}
|
|
4270
|
+
},
|
|
4271
|
+
"searchable_fields":{
|
|
4272
|
+
"amis": {
|
|
4273
|
+
"hidden": true,
|
|
4274
|
+
"required": false
|
|
4253
4275
|
}
|
|
4254
4276
|
},
|
|
4255
4277
|
"filter_fields": {
|
|
4256
4278
|
"amis": {
|
|
4257
|
-
"hidden": true
|
|
4279
|
+
"hidden": true,
|
|
4280
|
+
"required": false
|
|
4258
4281
|
}
|
|
4259
4282
|
},
|
|
4260
4283
|
"scrolling_mode": {
|
|
4261
4284
|
"amis": {
|
|
4262
|
-
"hidden": true
|
|
4285
|
+
"hidden": true,
|
|
4286
|
+
"required": false
|
|
4263
4287
|
}
|
|
4264
4288
|
},
|
|
4265
4289
|
"sort": {
|
|
4266
4290
|
"amis": {
|
|
4267
|
-
"hidden": true
|
|
4291
|
+
"hidden": true,
|
|
4292
|
+
"required": false
|
|
4268
4293
|
}
|
|
4269
4294
|
},
|
|
4270
4295
|
"show_count": {
|
|
4271
4296
|
"amis": {
|
|
4272
|
-
"hidden": true
|
|
4297
|
+
"hidden": true,
|
|
4298
|
+
"required": false
|
|
4273
4299
|
}
|
|
4274
4300
|
},
|
|
4275
4301
|
"type": {
|
|
4276
4302
|
"amis": {
|
|
4277
|
-
"hidden": true
|
|
4303
|
+
"hidden": true,
|
|
4304
|
+
"required": false
|
|
4278
4305
|
}
|
|
4279
4306
|
},
|
|
4280
4307
|
"shared": {
|
|
@@ -5097,36 +5124,38 @@ const filterForm = scope.getComponents().find(function(n){
|
|
|
5097
5124
|
const filterService = filterForm.context.getComponents().find(function(n){
|
|
5098
5125
|
return n.props.type === "service";
|
|
5099
5126
|
});
|
|
5100
|
-
|
|
5127
|
+
let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
|
|
5128
|
+
filterService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
5101
5129
|
let resizeWindow = function(){
|
|
5102
5130
|
//触发amis crud 高度重算
|
|
5103
5131
|
setTimeout(()=>{
|
|
5104
5132
|
window.dispatchEvent(new Event("resize"))
|
|
5105
5133
|
}, 500);
|
|
5106
5134
|
}
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
|
|
5115
|
-
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
}
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
}
|
|
5135
|
+
resizeWindow();
|
|
5136
|
+
// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
5137
|
+
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5138
|
+
crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
5139
|
+
// if(filterService.props.data.showFieldsFilter){
|
|
5140
|
+
// if(isMobile){
|
|
5141
|
+
// // 手机上只能通过取消按钮来关闭搜索栏
|
|
5142
|
+
// return;
|
|
5143
|
+
// }
|
|
5144
|
+
// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
|
|
5145
|
+
// direction: "down",
|
|
5146
|
+
// name: "btn_filter_form_cancel"
|
|
5147
|
+
// });
|
|
5148
|
+
// buttonCancel.props.dispatchEvent('click', {}).then(function(){
|
|
5149
|
+
// resizeWindow();
|
|
5150
|
+
// });
|
|
5151
|
+
// }
|
|
5152
|
+
// else{
|
|
5153
|
+
// if(isMobile){
|
|
5154
|
+
// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
5155
|
+
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5156
|
+
// crudService && crudService.setData({showFieldsFilter: true});
|
|
5157
|
+
// }
|
|
5158
|
+
// }
|
|
5130
5159
|
`;
|
|
5131
5160
|
|
|
5132
5161
|
|
|
@@ -5172,7 +5201,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
5172
5201
|
},
|
|
5173
5202
|
},
|
|
5174
5203
|
filterVisible ? {
|
|
5175
|
-
"label": "",
|
|
5204
|
+
"label": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5176
5205
|
"icon": "fa fa-search",
|
|
5177
5206
|
"type": "button",
|
|
5178
5207
|
"tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
@@ -5225,12 +5254,23 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
5225
5254
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500"
|
|
5226
5255
|
},
|
|
5227
5256
|
// getExportExcelToolbarButtonSchema(),
|
|
5257
|
+
getSettingListviewToolbarButtonSchema(),
|
|
5258
|
+
getDisplayAsButton(showDisplayAs),
|
|
5228
5259
|
filterVisible ? {
|
|
5229
|
-
"label": "",
|
|
5260
|
+
"label": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5230
5261
|
"icon": "fa fa-search",
|
|
5231
5262
|
"tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5232
5263
|
"tooltipPlacement": "bottom",
|
|
5233
5264
|
"type": "button",
|
|
5265
|
+
"badge": {
|
|
5266
|
+
"offset": [
|
|
5267
|
+
-5,
|
|
5268
|
+
1
|
|
5269
|
+
],
|
|
5270
|
+
"size":8,
|
|
5271
|
+
"animation": true,
|
|
5272
|
+
"visibleOn": "${isFieldsFilterEmpty == false}"
|
|
5273
|
+
},
|
|
5234
5274
|
"align": "right",
|
|
5235
5275
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
5236
5276
|
"onEvent": {
|
|
@@ -5243,9 +5283,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
5243
5283
|
]
|
|
5244
5284
|
}
|
|
5245
5285
|
}
|
|
5246
|
-
} : {}
|
|
5247
|
-
getSettingListviewToolbarButtonSchema(),
|
|
5248
|
-
getDisplayAsButton(showDisplayAs)
|
|
5286
|
+
} : {}
|
|
5249
5287
|
// {
|
|
5250
5288
|
// "type": "search-box",
|
|
5251
5289
|
// "align": "right",
|
|
@@ -5875,6 +5913,58 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
5875
5913
|
"actions": [
|
|
5876
5914
|
{
|
|
5877
5915
|
"actionType": "reload"
|
|
5916
|
+
},
|
|
5917
|
+
{
|
|
5918
|
+
"actionType": "custom",
|
|
5919
|
+
"script": `
|
|
5920
|
+
const masterRecord = event.data._master?.record;
|
|
5921
|
+
const fieldConfig = ${JSON.stringify(field)};
|
|
5922
|
+
let reference_to = fieldConfig.reference_to;
|
|
5923
|
+
let saveValue;
|
|
5924
|
+
const newRecord = {
|
|
5925
|
+
_id: event.data.result.data.recordId,
|
|
5926
|
+
...event.data.__super.__super
|
|
5927
|
+
}
|
|
5928
|
+
const saveField = fieldConfig.reference_to_field || '_id';
|
|
5929
|
+
const saveFieldValue = newRecord[saveField];
|
|
5930
|
+
|
|
5931
|
+
if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
|
|
5932
|
+
|
|
5933
|
+
const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
|
|
5934
|
+
const baseSaveValue = {
|
|
5935
|
+
o: reference_to,
|
|
5936
|
+
ids: [saveFieldValue]
|
|
5937
|
+
};
|
|
5938
|
+
if(fieldValue && fieldValue.o){
|
|
5939
|
+
if(fieldValue.o === reference_to){
|
|
5940
|
+
saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;
|
|
5941
|
+
}else{
|
|
5942
|
+
saveValue = baseSaveValue;
|
|
5943
|
+
}
|
|
5944
|
+
}else{
|
|
5945
|
+
saveValue = baseSaveValue;
|
|
5946
|
+
}
|
|
5947
|
+
|
|
5948
|
+
}else{
|
|
5949
|
+
if(fieldConfig.multiple){
|
|
5950
|
+
// TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。
|
|
5951
|
+
const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
|
|
5952
|
+
saveValue = fieldValue.concat(saveFieldValue);
|
|
5953
|
+
}else{
|
|
5954
|
+
saveValue = saveFieldValue;
|
|
5955
|
+
}
|
|
5956
|
+
}
|
|
5957
|
+
|
|
5958
|
+
const ctx = ${JSON.stringify(ctx)};
|
|
5959
|
+
const componentId = ctx.defaults.formSchema.id ? 'service-'+ctx.defaults.formSchema.id : 'new-'+ctx.defaults.formSchema.objectApiName;
|
|
5960
|
+
doAction({
|
|
5961
|
+
actionType: 'setValue',
|
|
5962
|
+
componentId: componentId,
|
|
5963
|
+
args: {
|
|
5964
|
+
value: { [fieldConfig.name]: saveValue }
|
|
5965
|
+
}
|
|
5966
|
+
});
|
|
5967
|
+
`
|
|
5878
5968
|
}
|
|
5879
5969
|
]
|
|
5880
5970
|
};
|
|
@@ -6105,7 +6195,7 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
6105
6195
|
type: 'steedos-field-lookup',
|
|
6106
6196
|
field,
|
|
6107
6197
|
readonly,
|
|
6108
|
-
ctx
|
|
6198
|
+
ctx,
|
|
6109
6199
|
}
|
|
6110
6200
|
// return await lookupToAmisGroup(field, readonly, ctx);
|
|
6111
6201
|
}
|
|
@@ -6259,8 +6349,8 @@ async function getIdsPickerSchema(field, readonly, ctx){
|
|
|
6259
6349
|
/*
|
|
6260
6350
|
* @Author: baozhoutao@steedos.com
|
|
6261
6351
|
* @Date: 2023-01-13 17:27:54
|
|
6262
|
-
* @LastEditors:
|
|
6263
|
-
* @LastEditTime: 2023-
|
|
6352
|
+
* @LastEditors: liaodaxue
|
|
6353
|
+
* @LastEditTime: 2023-06-16 15:58:21
|
|
6264
6354
|
* @Description:
|
|
6265
6355
|
*/
|
|
6266
6356
|
|
|
@@ -6312,6 +6402,7 @@ const getHtmlFieldSchema = (field, readonly, ctx)=>{
|
|
|
6312
6402
|
}else {
|
|
6313
6403
|
return {
|
|
6314
6404
|
"type": "input-rich-text",
|
|
6405
|
+
"receiver": "${context.rootUrl}/s3/images",
|
|
6315
6406
|
"name": field.name
|
|
6316
6407
|
}
|
|
6317
6408
|
// return {
|
|
@@ -9498,6 +9589,8 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
9498
9589
|
};
|
|
9499
9590
|
if(formSchema.id){
|
|
9500
9591
|
amisSchema.id = `service-${formSchema.id}`;
|
|
9592
|
+
}else {
|
|
9593
|
+
amisSchema.id = `new-${objectSchema.name}`;
|
|
9501
9594
|
}
|
|
9502
9595
|
return amisSchema;
|
|
9503
9596
|
}
|