@steedos-widgets/amis-lib 1.2.19 → 1.2.26
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 +217 -115
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +217 -115
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +217 -115
- 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 +12 -2
- package/dist/types/lib/converter/amis/header.d.ts +9 -2
- package/dist/types/lib/converter/amis/toolbar.d.ts +9 -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.umd.js
CHANGED
|
@@ -360,7 +360,7 @@
|
|
|
360
360
|
* @Author: baozhoutao@steedos.com
|
|
361
361
|
* @Date: 2022-08-16 17:02:08
|
|
362
362
|
* @LastEditors: baozhoutao@steedos.com
|
|
363
|
-
* @LastEditTime: 2023-
|
|
363
|
+
* @LastEditTime: 2023-06-20 13:50:15
|
|
364
364
|
* @Description:
|
|
365
365
|
*/
|
|
366
366
|
|
|
@@ -371,14 +371,14 @@
|
|
|
371
371
|
if(urlSearch.has('display')){
|
|
372
372
|
return urlSearch.get('display')
|
|
373
373
|
}
|
|
374
|
-
|
|
375
|
-
const key = `page_display`;
|
|
374
|
+
const key = `tab_${tab_id}_display`;
|
|
375
|
+
// const key = `page_display`;
|
|
376
376
|
const value = localStorage.getItem(key);
|
|
377
377
|
return value ? value : 'grid'
|
|
378
378
|
},
|
|
379
379
|
|
|
380
380
|
setTabDisplayAs(tab_id, displayAs){
|
|
381
|
-
const key = `
|
|
381
|
+
const key = `tab_${tab_id}_display`;
|
|
382
382
|
localStorage.setItem(key, displayAs);
|
|
383
383
|
},
|
|
384
384
|
getAppPath({formFactor, appId}){
|
|
@@ -392,15 +392,10 @@
|
|
|
392
392
|
},
|
|
393
393
|
getObjectDetailPath(props){
|
|
394
394
|
const {formFactor, appId, objectName, recordId, listViewName, _templateType} = props;
|
|
395
|
-
// var urlParams = new URLSearchParams(window.location.search);
|
|
396
|
-
// if(objectName === 'instances'){
|
|
397
|
-
// return `/workflow/space/\${context.tenantId}/\${listName}/${recordId}`;
|
|
398
|
-
// }
|
|
399
|
-
const displayAs = Router.getTabDisplayAs(objectName); //urlParams.get("display") ||
|
|
400
395
|
if(_templateType === 'JavaScript'){
|
|
401
|
-
return `/app/${appId}/${objectName}/view/${recordId}?
|
|
396
|
+
return `/app/${appId}/${objectName}/view/${recordId}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`;
|
|
402
397
|
}
|
|
403
|
-
return `/app/${appId}/${objectName}/view/${recordId}?
|
|
398
|
+
return `/app/${appId}/${objectName}/view/${recordId}?side_object=\${objectName}&side_listview_id=\${listName}`;
|
|
404
399
|
},
|
|
405
400
|
getObjectRelatedViewPath({formFactor, appId, masterObjectName, masterRecordId, objectName, foreignKey}){
|
|
406
401
|
return `/app/${appId}/${masterObjectName}/${masterRecordId}/${objectName}/grid?related_field_name=${foreignKey}`;
|
|
@@ -3150,7 +3145,10 @@
|
|
|
3150
3145
|
const formSchema = {
|
|
3151
3146
|
"type": "service",
|
|
3152
3147
|
"visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
3153
|
-
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2" : "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",
|
|
3148
|
+
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",
|
|
3149
|
+
"style":{
|
|
3150
|
+
"max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
|
|
3151
|
+
},
|
|
3154
3152
|
"schemaApi": {
|
|
3155
3153
|
method: 'post',
|
|
3156
3154
|
url: `\${context.rootUrl}/graphql?reload=\${filterFormSearchableFields|join}`,
|
|
@@ -3239,28 +3237,42 @@
|
|
|
3239
3237
|
// }
|
|
3240
3238
|
// }
|
|
3241
3239
|
// listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
|
|
3242
|
-
|
|
3243
|
-
let
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
3262
|
-
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});
|
|
3240
|
+
// 点击搜索的时候自动收起搜索栏
|
|
3241
|
+
let resizeWindow = function(){
|
|
3242
|
+
//触发amis crud 高度重算
|
|
3243
|
+
setTimeout(()=>{
|
|
3244
|
+
window.dispatchEvent(new Event("resize"))
|
|
3245
|
+
}, 500);
|
|
3246
|
+
}
|
|
3247
|
+
const filterService = filterForm.context.getComponents().find(function(n){
|
|
3248
|
+
return n.props.type === "service";
|
|
3249
|
+
});
|
|
3250
|
+
let showFieldsFilter = false;
|
|
3251
|
+
const isMobile = window.innerWidth < 768;
|
|
3252
|
+
if(event.data.__from_fields_filter_settings_confirm){
|
|
3253
|
+
// 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏
|
|
3254
|
+
showFieldsFilter = true;
|
|
3255
|
+
}
|
|
3256
|
+
else if(isMobile){
|
|
3257
|
+
// 如果是手机端,点击搜索后自动关闭搜索栏
|
|
3258
|
+
showFieldsFilter = false;
|
|
3263
3259
|
}
|
|
3260
|
+
else if(event.data.displayAs === "split") {
|
|
3261
|
+
// PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏
|
|
3262
|
+
showFieldsFilter = false;
|
|
3263
|
+
}
|
|
3264
|
+
else if(window.innerHeight >= 1200){
|
|
3265
|
+
// 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏
|
|
3266
|
+
showFieldsFilter = true;
|
|
3267
|
+
}
|
|
3268
|
+
filterService.setData({showFieldsFilter});
|
|
3269
|
+
resizeWindow();
|
|
3270
|
+
// 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
|
|
3271
|
+
let filterFormValues = event.data;
|
|
3272
|
+
let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
|
|
3273
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
3274
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
3275
|
+
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
|
|
3264
3276
|
`;
|
|
3265
3277
|
const onCancelScript = `
|
|
3266
3278
|
const scope = event.context.scoped;
|
|
@@ -3299,12 +3311,9 @@
|
|
|
3299
3311
|
setTimeout(()=>{
|
|
3300
3312
|
window.dispatchEvent(new Event("resize"))
|
|
3301
3313
|
}, 100);
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
3306
|
-
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
3307
|
-
}
|
|
3314
|
+
// 移除搜索按钮上的红点
|
|
3315
|
+
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
3316
|
+
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
3308
3317
|
`;
|
|
3309
3318
|
const dataProviderInited = `
|
|
3310
3319
|
const objectName = data.objectName;
|
|
@@ -3357,17 +3366,11 @@
|
|
|
3357
3366
|
|| (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))
|
|
3358
3367
|
|| (_.isString(n) && n.length === 0);
|
|
3359
3368
|
});
|
|
3360
|
-
//
|
|
3369
|
+
// 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏
|
|
3361
3370
|
if(!_.isEmpty(omitedEmptyFormValue)){
|
|
3362
|
-
let
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
|
|
3366
|
-
crudService && crudService.setData({isFieldsFilterEmpty: false});
|
|
3367
|
-
}
|
|
3368
|
-
else{
|
|
3369
|
-
setData({ showFieldsFilter: true });
|
|
3370
|
-
}
|
|
3371
|
+
let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
|
|
3372
|
+
crudService && crudService.setData({isFieldsFilterEmpty: false});
|
|
3373
|
+
// setData({ showFieldsFilter: true });//自动展开搜索栏
|
|
3371
3374
|
}
|
|
3372
3375
|
}
|
|
3373
3376
|
}
|
|
@@ -3633,7 +3636,10 @@
|
|
|
3633
3636
|
},
|
|
3634
3637
|
{
|
|
3635
3638
|
"actionType": "click",
|
|
3636
|
-
"componentId": btnSearchId
|
|
3639
|
+
"componentId": btnSearchId,
|
|
3640
|
+
"args": {
|
|
3641
|
+
"__from_fields_filter_settings_confirm": true
|
|
3642
|
+
}
|
|
3637
3643
|
},
|
|
3638
3644
|
{
|
|
3639
3645
|
"componentId": "",
|
|
@@ -4165,7 +4171,8 @@
|
|
|
4165
4171
|
"name":"",
|
|
4166
4172
|
"label":"",
|
|
4167
4173
|
"filters":"",
|
|
4168
|
-
"shared":false
|
|
4174
|
+
"shared":false,
|
|
4175
|
+
"object_name": "${targetObjectName}",
|
|
4169
4176
|
},
|
|
4170
4177
|
"fieldsExtend": fieldsExtend$4(),
|
|
4171
4178
|
"fields": fields$1(),
|
|
@@ -4212,13 +4219,11 @@
|
|
|
4212
4219
|
"object_name",
|
|
4213
4220
|
"filter_scope",
|
|
4214
4221
|
"show_count",
|
|
4215
|
-
"columns
|
|
4216
|
-
"
|
|
4217
|
-
"sort.$.field_name",
|
|
4218
|
-
"sort.$.order",
|
|
4222
|
+
"columns",
|
|
4223
|
+
"sort",
|
|
4219
4224
|
"filters",
|
|
4220
|
-
"mobile_columns
|
|
4221
|
-
"searchable_fields
|
|
4225
|
+
"mobile_columns",
|
|
4226
|
+
"searchable_fields",
|
|
4222
4227
|
"is_system",
|
|
4223
4228
|
"shared"
|
|
4224
4229
|
]
|
|
@@ -4231,7 +4236,8 @@
|
|
|
4231
4236
|
},
|
|
4232
4237
|
"name": {
|
|
4233
4238
|
"amis": {
|
|
4234
|
-
"hidden": true
|
|
4239
|
+
"hidden": true,
|
|
4240
|
+
"required": false
|
|
4235
4241
|
}
|
|
4236
4242
|
},
|
|
4237
4243
|
"object_name": {
|
|
@@ -4241,37 +4247,56 @@
|
|
|
4241
4247
|
},
|
|
4242
4248
|
"filter_scope": {
|
|
4243
4249
|
"amis": {
|
|
4244
|
-
"hidden": true
|
|
4250
|
+
"hidden": true,
|
|
4251
|
+
"required": false
|
|
4245
4252
|
}
|
|
4246
4253
|
},
|
|
4247
4254
|
"columns": {
|
|
4248
4255
|
"amis": {
|
|
4249
|
-
"hidden": true
|
|
4256
|
+
"hidden": true,
|
|
4257
|
+
"required": false
|
|
4258
|
+
}
|
|
4259
|
+
},
|
|
4260
|
+
"mobile_columns":{
|
|
4261
|
+
"amis": {
|
|
4262
|
+
"hidden": true,
|
|
4263
|
+
"required": false
|
|
4264
|
+
}
|
|
4265
|
+
},
|
|
4266
|
+
"searchable_fields":{
|
|
4267
|
+
"amis": {
|
|
4268
|
+
"hidden": true,
|
|
4269
|
+
"required": false
|
|
4250
4270
|
}
|
|
4251
4271
|
},
|
|
4252
4272
|
"filter_fields": {
|
|
4253
4273
|
"amis": {
|
|
4254
|
-
"hidden": true
|
|
4274
|
+
"hidden": true,
|
|
4275
|
+
"required": false
|
|
4255
4276
|
}
|
|
4256
4277
|
},
|
|
4257
4278
|
"scrolling_mode": {
|
|
4258
4279
|
"amis": {
|
|
4259
|
-
"hidden": true
|
|
4280
|
+
"hidden": true,
|
|
4281
|
+
"required": false
|
|
4260
4282
|
}
|
|
4261
4283
|
},
|
|
4262
4284
|
"sort": {
|
|
4263
4285
|
"amis": {
|
|
4264
|
-
"hidden": true
|
|
4286
|
+
"hidden": true,
|
|
4287
|
+
"required": false
|
|
4265
4288
|
}
|
|
4266
4289
|
},
|
|
4267
4290
|
"show_count": {
|
|
4268
4291
|
"amis": {
|
|
4269
|
-
"hidden": true
|
|
4292
|
+
"hidden": true,
|
|
4293
|
+
"required": false
|
|
4270
4294
|
}
|
|
4271
4295
|
},
|
|
4272
4296
|
"type": {
|
|
4273
4297
|
"amis": {
|
|
4274
|
-
"hidden": true
|
|
4298
|
+
"hidden": true,
|
|
4299
|
+
"required": false
|
|
4275
4300
|
}
|
|
4276
4301
|
},
|
|
4277
4302
|
"shared": {
|
|
@@ -5056,14 +5081,14 @@
|
|
|
5056
5081
|
{
|
|
5057
5082
|
"type": "button",
|
|
5058
5083
|
"label": i18next__default["default"].t('frontend_display_type_is_table'),
|
|
5059
|
-
"onClick": "let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
|
|
5084
|
+
"onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
|
|
5060
5085
|
"rightIcon": displayAs != 'split' ? "fa fa-check" : null,
|
|
5061
5086
|
"rightIconClassName": "m-l-sm"
|
|
5062
5087
|
},
|
|
5063
5088
|
{
|
|
5064
5089
|
"type": "button",
|
|
5065
5090
|
"label": i18next__default["default"].t('frontend_display_type_is_split'),
|
|
5066
|
-
"onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
|
|
5091
|
+
"onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
|
|
5067
5092
|
"rightIcon": displayAs === 'split' ? "fa fa-check" : null,
|
|
5068
5093
|
"rightIconClassName": "m-l-sm"
|
|
5069
5094
|
}
|
|
@@ -5094,36 +5119,38 @@ const filterForm = scope.getComponents().find(function(n){
|
|
|
5094
5119
|
const filterService = filterForm.context.getComponents().find(function(n){
|
|
5095
5120
|
return n.props.type === "service";
|
|
5096
5121
|
});
|
|
5097
|
-
|
|
5122
|
+
let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
|
|
5123
|
+
filterService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
5098
5124
|
let resizeWindow = function(){
|
|
5099
5125
|
//触发amis crud 高度重算
|
|
5100
5126
|
setTimeout(()=>{
|
|
5101
5127
|
window.dispatchEvent(new Event("resize"))
|
|
5102
5128
|
}, 500);
|
|
5103
5129
|
}
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
|
|
5115
|
-
|
|
5116
|
-
|
|
5117
|
-
}
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
}
|
|
5130
|
+
resizeWindow();
|
|
5131
|
+
// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
5132
|
+
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5133
|
+
crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
5134
|
+
// if(filterService.props.data.showFieldsFilter){
|
|
5135
|
+
// if(isMobile){
|
|
5136
|
+
// // 手机上只能通过取消按钮来关闭搜索栏
|
|
5137
|
+
// return;
|
|
5138
|
+
// }
|
|
5139
|
+
// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
|
|
5140
|
+
// direction: "down",
|
|
5141
|
+
// name: "btn_filter_form_cancel"
|
|
5142
|
+
// });
|
|
5143
|
+
// buttonCancel.props.dispatchEvent('click', {}).then(function(){
|
|
5144
|
+
// resizeWindow();
|
|
5145
|
+
// });
|
|
5146
|
+
// }
|
|
5147
|
+
// else{
|
|
5148
|
+
// if(isMobile){
|
|
5149
|
+
// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
5150
|
+
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5151
|
+
// crudService && crudService.setData({showFieldsFilter: true});
|
|
5152
|
+
// }
|
|
5153
|
+
// }
|
|
5127
5154
|
`;
|
|
5128
5155
|
|
|
5129
5156
|
|
|
@@ -5169,7 +5196,7 @@ else{
|
|
|
5169
5196
|
},
|
|
5170
5197
|
},
|
|
5171
5198
|
filterVisible ? {
|
|
5172
|
-
"label": "",
|
|
5199
|
+
"label": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5173
5200
|
"icon": "fa fa-search",
|
|
5174
5201
|
"type": "button",
|
|
5175
5202
|
"tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
@@ -5222,12 +5249,23 @@ else{
|
|
|
5222
5249
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500"
|
|
5223
5250
|
},
|
|
5224
5251
|
// getExportExcelToolbarButtonSchema(),
|
|
5252
|
+
getSettingListviewToolbarButtonSchema(),
|
|
5253
|
+
getDisplayAsButton(mainObject?.name),
|
|
5225
5254
|
filterVisible ? {
|
|
5226
|
-
"label": "",
|
|
5255
|
+
"label": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5227
5256
|
"icon": "fa fa-search",
|
|
5228
5257
|
"tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
|
|
5229
5258
|
"tooltipPlacement": "bottom",
|
|
5230
5259
|
"type": "button",
|
|
5260
|
+
"badge": {
|
|
5261
|
+
"offset": [
|
|
5262
|
+
-5,
|
|
5263
|
+
1
|
|
5264
|
+
],
|
|
5265
|
+
"size":8,
|
|
5266
|
+
"animation": true,
|
|
5267
|
+
"visibleOn": "${isFieldsFilterEmpty == false}"
|
|
5268
|
+
},
|
|
5231
5269
|
"align": "right",
|
|
5232
5270
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
5233
5271
|
"onEvent": {
|
|
@@ -5240,9 +5278,7 @@ else{
|
|
|
5240
5278
|
]
|
|
5241
5279
|
}
|
|
5242
5280
|
}
|
|
5243
|
-
} : {}
|
|
5244
|
-
getSettingListviewToolbarButtonSchema(),
|
|
5245
|
-
getDisplayAsButton(showDisplayAs)
|
|
5281
|
+
} : {}
|
|
5246
5282
|
// {
|
|
5247
5283
|
// "type": "search-box",
|
|
5248
5284
|
// "align": "right",
|
|
@@ -5872,6 +5908,58 @@ else{
|
|
|
5872
5908
|
"actions": [
|
|
5873
5909
|
{
|
|
5874
5910
|
"actionType": "reload"
|
|
5911
|
+
},
|
|
5912
|
+
{
|
|
5913
|
+
"actionType": "custom",
|
|
5914
|
+
"script": `
|
|
5915
|
+
const masterRecord = event.data._master?.record;
|
|
5916
|
+
const fieldConfig = ${JSON.stringify(field)};
|
|
5917
|
+
let reference_to = fieldConfig.reference_to;
|
|
5918
|
+
let saveValue;
|
|
5919
|
+
const newRecord = {
|
|
5920
|
+
_id: event.data.result.data.recordId,
|
|
5921
|
+
...event.data.__super.__super
|
|
5922
|
+
}
|
|
5923
|
+
const saveField = fieldConfig.reference_to_field || '_id';
|
|
5924
|
+
const saveFieldValue = newRecord[saveField];
|
|
5925
|
+
|
|
5926
|
+
if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
|
|
5927
|
+
|
|
5928
|
+
const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
|
|
5929
|
+
const baseSaveValue = {
|
|
5930
|
+
o: reference_to,
|
|
5931
|
+
ids: [saveFieldValue]
|
|
5932
|
+
};
|
|
5933
|
+
if(fieldValue && fieldValue.o){
|
|
5934
|
+
if(fieldValue.o === reference_to){
|
|
5935
|
+
saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;
|
|
5936
|
+
}else{
|
|
5937
|
+
saveValue = baseSaveValue;
|
|
5938
|
+
}
|
|
5939
|
+
}else{
|
|
5940
|
+
saveValue = baseSaveValue;
|
|
5941
|
+
}
|
|
5942
|
+
|
|
5943
|
+
}else{
|
|
5944
|
+
if(fieldConfig.multiple){
|
|
5945
|
+
// TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。
|
|
5946
|
+
const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
|
|
5947
|
+
saveValue = fieldValue.concat(saveFieldValue);
|
|
5948
|
+
}else{
|
|
5949
|
+
saveValue = saveFieldValue;
|
|
5950
|
+
}
|
|
5951
|
+
}
|
|
5952
|
+
|
|
5953
|
+
const ctx = ${JSON.stringify(ctx)};
|
|
5954
|
+
const componentId = ctx.defaults.formSchema.id ? 'service-'+ctx.defaults.formSchema.id : 'new-'+ctx.defaults.formSchema.objectApiName;
|
|
5955
|
+
doAction({
|
|
5956
|
+
actionType: 'setValue',
|
|
5957
|
+
componentId: componentId,
|
|
5958
|
+
args: {
|
|
5959
|
+
value: { [fieldConfig.name]: saveValue }
|
|
5960
|
+
}
|
|
5961
|
+
});
|
|
5962
|
+
`
|
|
5875
5963
|
}
|
|
5876
5964
|
]
|
|
5877
5965
|
};
|
|
@@ -6102,7 +6190,7 @@ else{
|
|
|
6102
6190
|
type: 'steedos-field-lookup',
|
|
6103
6191
|
field,
|
|
6104
6192
|
readonly,
|
|
6105
|
-
ctx
|
|
6193
|
+
ctx,
|
|
6106
6194
|
}
|
|
6107
6195
|
// return await lookupToAmisGroup(field, readonly, ctx);
|
|
6108
6196
|
}
|
|
@@ -6256,8 +6344,8 @@ else{
|
|
|
6256
6344
|
/*
|
|
6257
6345
|
* @Author: baozhoutao@steedos.com
|
|
6258
6346
|
* @Date: 2023-01-13 17:27:54
|
|
6259
|
-
* @LastEditors:
|
|
6260
|
-
* @LastEditTime: 2023-
|
|
6347
|
+
* @LastEditors: liaodaxue
|
|
6348
|
+
* @LastEditTime: 2023-06-16 15:58:21
|
|
6261
6349
|
* @Description:
|
|
6262
6350
|
*/
|
|
6263
6351
|
|
|
@@ -6309,6 +6397,7 @@ else{
|
|
|
6309
6397
|
}else {
|
|
6310
6398
|
return {
|
|
6311
6399
|
"type": "input-rich-text",
|
|
6400
|
+
"receiver": "${context.rootUrl}/s3/images",
|
|
6312
6401
|
"name": field.name
|
|
6313
6402
|
}
|
|
6314
6403
|
// return {
|
|
@@ -7992,13 +8081,13 @@ else{
|
|
|
7992
8081
|
const masterRecord = self._master.record;
|
|
7993
8082
|
const masterObjectName = self._master.objectName;
|
|
7994
8083
|
let relatedValue = self._master.recordId;
|
|
7995
|
-
if(refField.reference_to_field && refField.reference_to_field != '_id'){
|
|
8084
|
+
if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){
|
|
7996
8085
|
relatedValue = masterRecord[refField.reference_to_field]
|
|
7997
8086
|
}
|
|
7998
8087
|
let relatedFilters;
|
|
7999
8088
|
if (
|
|
8000
|
-
refField._reference_to ||
|
|
8001
|
-
(refField.reference_to && !_.isString(refField.reference_to))
|
|
8089
|
+
refField && (refField._reference_to ||
|
|
8090
|
+
(refField.reference_to && !_.isString(refField.reference_to)))
|
|
8002
8091
|
) {
|
|
8003
8092
|
relatedFilters = [
|
|
8004
8093
|
[relatedKey + "/o", "=", masterObjectName],
|
|
@@ -8148,7 +8237,7 @@ else{
|
|
|
8148
8237
|
|
|
8149
8238
|
const API_CACHE = 100;
|
|
8150
8239
|
|
|
8151
|
-
function getReadonlyFormAdaptor(object, fields){
|
|
8240
|
+
function getReadonlyFormAdaptor(object, fields, options){
|
|
8152
8241
|
let scriptStr = '';
|
|
8153
8242
|
const selectFields = ___namespace.filter(fields, function(field){return field.name.indexOf('.') < 0 && ((field.type == 'select' && field.options) || ((field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to))});
|
|
8154
8243
|
const gridAndObjectFieldsName = ___namespace.map(___namespace.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type === 'object' || field.type === 'grid')}), 'name');
|
|
@@ -8188,9 +8277,16 @@ else{
|
|
|
8188
8277
|
|
|
8189
8278
|
return `
|
|
8190
8279
|
if(payload.data.data.length === 0){
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8280
|
+
var isEditor = !!${options && options.isEditor};
|
|
8281
|
+
if(isEditor){
|
|
8282
|
+
// 设计器中始终显示表单,有记录则显示第一条记录,没记录时显示为空表单
|
|
8283
|
+
payload.data.data = [{}];
|
|
8284
|
+
}
|
|
8285
|
+
else{
|
|
8286
|
+
return {
|
|
8287
|
+
status: 2,
|
|
8288
|
+
msg: "无法找到记录"
|
|
8289
|
+
}
|
|
8194
8290
|
}
|
|
8195
8291
|
}
|
|
8196
8292
|
if(payload.data.data){
|
|
@@ -8207,7 +8303,7 @@ else{
|
|
|
8207
8303
|
var record = _.cloneDeep(data);
|
|
8208
8304
|
try{
|
|
8209
8305
|
_.each(gridAndObjectFieldsName, function(name){
|
|
8210
|
-
data[name] = data._display[name];
|
|
8306
|
+
data[name] = data._display && data._display[name];
|
|
8211
8307
|
})
|
|
8212
8308
|
}catch(e){
|
|
8213
8309
|
console.error(e)
|
|
@@ -8228,10 +8324,10 @@ else{
|
|
|
8228
8324
|
async function getReadonlyFormInitApi(object, recordId, fields, options){
|
|
8229
8325
|
return {
|
|
8230
8326
|
method: "post",
|
|
8231
|
-
url: getApi$2()+"&recordId=${recordId}",
|
|
8327
|
+
url: getApi$2() + '&objectName=${objectName}' + "&recordId=${recordId}",
|
|
8232
8328
|
cache: API_CACHE,
|
|
8233
8329
|
// requestAdaptor: "console.log('getReadonlyFormInitApi requestAdaptor', api);return api;",
|
|
8234
|
-
adaptor: getReadonlyFormAdaptor(object, fields),
|
|
8330
|
+
adaptor: getReadonlyFormAdaptor(object, fields, options),
|
|
8235
8331
|
data: await getFindOneQuery$1(object, recordId, fields, options),
|
|
8236
8332
|
headers: {
|
|
8237
8333
|
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -9495,6 +9591,8 @@ else{
|
|
|
9495
9591
|
};
|
|
9496
9592
|
if(formSchema.id){
|
|
9497
9593
|
amisSchema.id = `service-${formSchema.id}`;
|
|
9594
|
+
}else {
|
|
9595
|
+
amisSchema.id = `new-${objectSchema.name}`;
|
|
9498
9596
|
}
|
|
9499
9597
|
return amisSchema;
|
|
9500
9598
|
}
|
|
@@ -9661,8 +9759,8 @@ else{
|
|
|
9661
9759
|
/*
|
|
9662
9760
|
* @Author: baozhoutao@steedos.com
|
|
9663
9761
|
* @Date: 2022-07-05 15:55:39
|
|
9664
|
-
* @LastEditors:
|
|
9665
|
-
* @LastEditTime: 2023-
|
|
9762
|
+
* @LastEditors: liaodaxue
|
|
9763
|
+
* @LastEditTime: 2023-06-20 14:05:50
|
|
9666
9764
|
* @Description:
|
|
9667
9765
|
*/
|
|
9668
9766
|
|
|
@@ -9705,10 +9803,11 @@ else{
|
|
|
9705
9803
|
if(!_$1.isEmpty(relatedLists)){
|
|
9706
9804
|
for (const relatedList of relatedLists) {
|
|
9707
9805
|
const arr = relatedList.related_field_fullname.split(".");
|
|
9806
|
+
const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
|
|
9708
9807
|
related.push({
|
|
9709
9808
|
masterObjectName: objectName,
|
|
9710
9809
|
object_name: arr[0],
|
|
9711
|
-
foreign_key
|
|
9810
|
+
foreign_key,
|
|
9712
9811
|
label: relatedList.label,
|
|
9713
9812
|
columns: relatedList.field_names,
|
|
9714
9813
|
sort: relatedList.sort,
|
|
@@ -9721,10 +9820,11 @@ else{
|
|
|
9721
9820
|
const details = [].concat(uiSchema.details || []);
|
|
9722
9821
|
for (const detail of details) {
|
|
9723
9822
|
const arr = detail.split(".");
|
|
9823
|
+
const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
|
|
9724
9824
|
related.push({
|
|
9725
9825
|
masterObjectName: objectName,
|
|
9726
9826
|
object_name: arr[0],
|
|
9727
|
-
foreign_key
|
|
9827
|
+
foreign_key
|
|
9728
9828
|
});
|
|
9729
9829
|
}
|
|
9730
9830
|
}
|
|
@@ -9756,14 +9856,16 @@ else{
|
|
|
9756
9856
|
if(!_$1.isEmpty(mainRelatedLists)){
|
|
9757
9857
|
for (const relatedList of mainRelatedLists) {
|
|
9758
9858
|
const arr = relatedList.related_field_fullname.split(".");
|
|
9759
|
-
|
|
9859
|
+
const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
|
|
9860
|
+
mainRelated[arr[0]] = foreign_key_value;
|
|
9760
9861
|
}
|
|
9761
9862
|
}else {
|
|
9762
9863
|
const details = _$1.union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];
|
|
9763
9864
|
for (const detail of details) {
|
|
9764
9865
|
const arr = detail.split(".");
|
|
9866
|
+
const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
|
|
9765
9867
|
if(!_$1.has(mainRelated,arr[0])){
|
|
9766
|
-
mainRelated[arr[0]] =
|
|
9868
|
+
mainRelated[arr[0]] = foreign_key_value;
|
|
9767
9869
|
}
|
|
9768
9870
|
}
|
|
9769
9871
|
}
|