@steedos-widgets/amis-object 1.2.18 → 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.
@@ -1,2 +1,3 @@
1
1
  import './AmisObjectForm.less';
2
+ import './AmisObjectFormMobile.less';
2
3
  export declare const AmisObjectForm: (props: any) => Promise<any>;
@@ -543,6 +543,10 @@ body {
543
543
  .w-8 {
544
544
  width: 2rem
545
545
  }
546
+ .w-fit {
547
+ width: -moz-fit-content;
548
+ width: fit-content
549
+ }
546
550
  .\!min-w-\[160px\] {
547
551
  min-width: 160px !important
548
552
  }
@@ -558,6 +562,9 @@ body {
558
562
  .min-w-\[388px\] {
559
563
  min-width: 388px
560
564
  }
565
+ .max-w-\[360px\] {
566
+ max-width: 360px
567
+ }
561
568
  .max-w-md {
562
569
  max-width: 28rem
563
570
  }
@@ -1248,6 +1255,41 @@ body {
1248
1255
  }
1249
1256
  }
1250
1257
 
1258
+ @media (max-width: 767px) {
1259
+ .steedos-amis-form.antd-Form {
1260
+ /* start ======== 移动端给部分input加边框,并使输入框上下居中*/
1261
+ /* =========end */
1262
+ }
1263
+ .steedos-amis-form.antd-Form .antd-Form-item .antd-Form-control > .antd-TextControl-input,
1264
+ .steedos-amis-form.antd-Form .antd-Form-item div.antd-TextareaControl {
1265
+ border: var(--Form-input-borderWidth) solid var(--Form-input-borderColor);
1266
+ border-radius: var(--Form-input-borderRadius);
1267
+ }
1268
+ .steedos-amis-form.antd-Form .antd-Form-item .antd-Form-control > .antd-TextControl-input:hover,
1269
+ .steedos-amis-form.antd-Form .antd-Form-item div.antd-TextareaControl:hover {
1270
+ border: var(--Form-input-borderWidth) solid var(--Form-input-borderColor);
1271
+ border-radius: var(--Form-input-borderRadius);
1272
+ }
1273
+ .steedos-amis-form.antd-Form .antd-Form-item .antd-TextControl.is-focused > .antd-TextControl-input,
1274
+ .steedos-amis-form.antd-Form .antd-Form-item div.is-focused.antd-TextareaControl {
1275
+ border-color: var(--input-default-active-top-border-color) var(--input-default-active-right-border-color) var(--input-default-active-bottom-border-color) var(--input-default-active-left-border-color);
1276
+ border-style: var(--input-default-active-top-border-style) var(--input-default-active-right-border-style) var(--input-default-active-bottom-border-style) var(--input-default-active-left-border-style);
1277
+ border-width: var(--input-default-active-top-border-width) var(--input-default-active-right-border-width) var(--input-default-active-bottom-border-width) var(--input-default-active-left-border-width);
1278
+ }
1279
+ .steedos-amis-form.antd-Form .antd-Form-item .antd-TextControl.is-focused > .antd-TextControl-input:hover,
1280
+ .steedos-amis-form.antd-Form .antd-Form-item div.is-focused.antd-TextareaControl:hover {
1281
+ border: var(--Form-input-borderWidth) solid var(--Form-input-borderColor);
1282
+ border-radius: var(--Form-input-borderRadius);
1283
+ }
1284
+ .steedos-amis-form.antd-Form .antd-Form-item input {
1285
+ height: 100%;
1286
+ }
1287
+ .steedos-amis-form.antd-Form .antd-Form-item {
1288
+ margin-top: 0;
1289
+ align-items: center;
1290
+ }
1291
+ }
1292
+
1251
1293
  @media (min-width: 767px) {
1252
1294
  .steedos-object-table .antd-Field-quickEditBtn {
1253
1295
  display: none;
@@ -5602,15 +5602,15 @@ const getSchema$6 = async (uiSchema, ctx) => {
5602
5602
  let filename = uiSchema.label + "-" + list_views[list_views_name].label;
5603
5603
 
5604
5604
  url_tmp = api.url.split('?')[0];
5605
- api.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;
5605
+ api.url = url_tmp + "?$select=" + encodeURIComponent(select.toString()) + "&filename=" + encodeURIComponent(filename);
5606
5606
 
5607
5607
  // 判断sort 和 filters
5608
5608
  if (sort.length > 0) {
5609
- api.url += "&$orderby=" + order;
5609
+ api.url += "&$orderby=" + encodeURIComponent(order);
5610
5610
  }
5611
5611
  let filters = list_views[list_views_name].filters;
5612
5612
  if (filters && filters.length > 0) {
5613
- api.url = api.url + "&filters=" + JSON.stringify(filters);
5613
+ api.url = api.url + "&filters=" + encodeURIComponent(JSON.stringify(filters));
5614
5614
  }
5615
5615
  return api;
5616
5616
  `;
@@ -6396,28 +6396,42 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6396
6396
  // }
6397
6397
  // }
6398
6398
  // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
6399
-
6400
- let isMobile = Steedos.isMobile();
6401
- if(isMobile){
6402
- // 手机端点击搜索的时候自动收起搜索栏
6403
- let resizeWindow = function(){
6404
- //触发amis crud 高度重算
6405
- setTimeout(()=>{
6406
- window.dispatchEvent(new Event("resize"))
6407
- }, 500);
6408
- }
6409
- const filterService = filterForm.context.getComponents().find(function(n){
6410
- return n.props.type === "service";
6411
- });
6412
- filterService.setData({showFieldsFilter: false});
6413
- resizeWindow();
6414
- // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
6415
- let filterFormValues = event.data;
6416
- let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
6417
- let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
6418
- let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
6419
- crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});
6399
+ // 点击搜索的时候自动收起搜索栏
6400
+ let resizeWindow = function(){
6401
+ //触发amis crud 高度重算
6402
+ setTimeout(()=>{
6403
+ window.dispatchEvent(new Event("resize"))
6404
+ }, 500);
6405
+ }
6406
+ const filterService = filterForm.context.getComponents().find(function(n){
6407
+ return n.props.type === "service";
6408
+ });
6409
+ let showFieldsFilter = false;
6410
+ const isMobile = window.innerWidth < 768;
6411
+ if(event.data.__from_fields_filter_settings_confirm){
6412
+ // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏
6413
+ showFieldsFilter = true;
6414
+ }
6415
+ else if(isMobile){
6416
+ // 如果是手机端,点击搜索后自动关闭搜索栏
6417
+ showFieldsFilter = false;
6418
+ }
6419
+ else if(event.data.displayAs === "split") {
6420
+ // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏
6421
+ showFieldsFilter = false;
6420
6422
  }
6423
+ else if(window.innerHeight >= 1200){
6424
+ // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏
6425
+ showFieldsFilter = true;
6426
+ }
6427
+ filterService.setData({showFieldsFilter});
6428
+ resizeWindow();
6429
+ // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
6430
+ let filterFormValues = event.data;
6431
+ let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
6432
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
6433
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
6434
+ crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
6421
6435
  `;
6422
6436
  const onCancelScript = `
6423
6437
  const scope = event.context.scoped;
@@ -6456,12 +6470,9 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6456
6470
  setTimeout(()=>{
6457
6471
  window.dispatchEvent(new Event("resize"))
6458
6472
  }, 100);
6459
- let isMobile = Steedos.isMobile();
6460
- if(isMobile){
6461
- // 手机端移除搜索按钮上的红点
6462
- let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
6463
- crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
6464
- }
6473
+ // 移除搜索按钮上的红点
6474
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
6475
+ crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
6465
6476
  `;
6466
6477
  const dataProviderInited = `
6467
6478
  const objectName = data.objectName;
@@ -6514,17 +6525,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6514
6525
  || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))
6515
6526
  || (_.isString(n) && n.length === 0);
6516
6527
  });
6517
- // 有过滤条件时自动展开搜索栏
6528
+ // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏
6518
6529
  if(!_.isEmpty(omitedEmptyFormValue)){
6519
- let isMobile = Steedos.isMobile();
6520
- if(isMobile){
6521
- // 手机端不展开,只显示搜索按钮上的红点
6522
- let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
6523
- crudService && crudService.setData({isFieldsFilterEmpty: false});
6524
- }
6525
- else{
6526
- setData({ showFieldsFilter: true });
6527
- }
6530
+ let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
6531
+ crudService && crudService.setData({isFieldsFilterEmpty: false});
6532
+ // setData({ showFieldsFilter: true });//自动展开搜索栏
6528
6533
  }
6529
6534
  }
6530
6535
  }
@@ -6790,7 +6795,10 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6790
6795
  },
6791
6796
  {
6792
6797
  "actionType": "click",
6793
- "componentId": btnSearchId
6798
+ "componentId": btnSearchId,
6799
+ "args": {
6800
+ "__from_fields_filter_settings_confirm": true
6801
+ }
6794
6802
  },
6795
6803
  {
6796
6804
  "componentId": "",
@@ -7289,97 +7297,6 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
7289
7297
  async function getObjectRelatedListHeader(objectSchema, recordId, relatedObjectName) {
7290
7298
  }
7291
7299
 
7292
- const getExportExcelToolbarButtonSchema = ()=>{
7293
- return {
7294
- "type": "button",
7295
- "icon": "fa fa-download",
7296
- "align": "right",
7297
- "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
7298
- "tooltipPlacement": "bottom",
7299
- "visibleOn": "${!isLookup && global.user.is_space_admin}",
7300
- "tooltip": instance.t('frontend_export_excel'),
7301
- "onEvent": {
7302
- "click": {
7303
- "weight": 0,
7304
- "actions": [
7305
- {
7306
- "args": {
7307
- "api": {
7308
- "url": "${context.rootUrl}/api/record/export/${objectName}",
7309
- "method": "get",
7310
- "messages": {},
7311
- "requestAdaptor": `${requestAdaptor$1()}`,
7312
- "data": {
7313
- "uiSchema": "${uiSchema}",
7314
- "listName": "${listName}"
7315
- },
7316
- "headers": {
7317
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
7318
- }
7319
- }
7320
- },
7321
- "actionType": "download"
7322
- }
7323
- ]
7324
- }
7325
- }
7326
- }
7327
- };
7328
-
7329
- function requestAdaptor$1(){
7330
- return `
7331
- // 获取列表视图的属性
7332
- let uiSchema = api.body.uiSchema;
7333
- let list_views = uiSchema.list_views;
7334
- let list_views_name = api.body.listName;
7335
- let col = list_views[list_views_name].columns;
7336
- let sort_test = list_views[list_views_name].sort;
7337
-
7338
- // 获取下载字段
7339
- let select = [];
7340
- _.each(col, (col) => {
7341
- if (col.field == undefined)
7342
- select.push(col);
7343
- else select.push(col.field);
7344
- });
7345
-
7346
- // 获取排序字段
7347
-
7348
- let sort = [];
7349
- _.forEach(sort_test, (sortField) => {
7350
- if (sortField.field_name == undefined)
7351
- sort.push(sortField);
7352
- else sort.push([sortField.field_name, sortField.order]);
7353
- })
7354
-
7355
- let orders = [];
7356
- _.map(sort, (value) => {
7357
- let order_tmp = [];
7358
- if (value[1] == "desc")
7359
- order_tmp = value[0] + ' desc';
7360
- else
7361
- order_tmp = value[0];
7362
- orders.push(order_tmp);
7363
- });
7364
- let order = orders.join(',');
7365
-
7366
- let filename = uiSchema.label + "-" + list_views[list_views_name].label;
7367
-
7368
- url_tmp = api.url.split('?')[0];
7369
- api.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;
7370
-
7371
- // 判断sort 和 filters
7372
- if (sort.length > 0) {
7373
- api.url += "&$orderby=" + order;
7374
- }
7375
- let filters = list_views[list_views_name].filters;
7376
- if (filters && filters.length > 0) {
7377
- api.url = api.url + "&filters=" + JSON.stringify(filters);
7378
- }
7379
- return api;
7380
- `
7381
- }
7382
-
7383
7300
  const getNewListviewButtonSchema = ()=>{
7384
7301
  return {
7385
7302
  "type": "button",
@@ -7413,7 +7330,8 @@ const getNewListviewButtonSchema = ()=>{
7413
7330
  "name":"",
7414
7331
  "label":"",
7415
7332
  "filters":"",
7416
- "shared":false
7333
+ "shared":false,
7334
+ "object_name": "${targetObjectName}",
7417
7335
  },
7418
7336
  "fieldsExtend": fieldsExtend$4(),
7419
7337
  "fields": fields$1(),
@@ -7460,13 +7378,11 @@ function fields$1(){
7460
7378
  "object_name",
7461
7379
  "filter_scope",
7462
7380
  "show_count",
7463
- "columns.$.field",
7464
- "columns.$.width",
7465
- "sort.$.field_name",
7466
- "sort.$.order",
7381
+ "columns",
7382
+ "sort",
7467
7383
  "filters",
7468
- "mobile_columns.$.field",
7469
- "searchable_fields.$.field",
7384
+ "mobile_columns",
7385
+ "searchable_fields",
7470
7386
  "is_system",
7471
7387
  "shared"
7472
7388
  ]
@@ -7479,7 +7395,8 @@ function fieldsExtend$4(){
7479
7395
  },
7480
7396
  "name": {
7481
7397
  "amis": {
7482
- "hidden": true
7398
+ "hidden": true,
7399
+ "required": false
7483
7400
  }
7484
7401
  },
7485
7402
  "object_name": {
@@ -7489,37 +7406,56 @@ function fieldsExtend$4(){
7489
7406
  },
7490
7407
  "filter_scope": {
7491
7408
  "amis": {
7492
- "hidden": true
7409
+ "hidden": true,
7410
+ "required": false
7493
7411
  }
7494
7412
  },
7495
7413
  "columns": {
7496
7414
  "amis": {
7497
- "hidden": true
7415
+ "hidden": true,
7416
+ "required": false
7417
+ }
7418
+ },
7419
+ "mobile_columns":{
7420
+ "amis": {
7421
+ "hidden": true,
7422
+ "required": false
7423
+ }
7424
+ },
7425
+ "searchable_fields":{
7426
+ "amis": {
7427
+ "hidden": true,
7428
+ "required": false
7498
7429
  }
7499
7430
  },
7500
7431
  "filter_fields": {
7501
7432
  "amis": {
7502
- "hidden": true
7433
+ "hidden": true,
7434
+ "required": false
7503
7435
  }
7504
7436
  },
7505
7437
  "scrolling_mode": {
7506
7438
  "amis": {
7507
- "hidden": true
7439
+ "hidden": true,
7440
+ "required": false
7508
7441
  }
7509
7442
  },
7510
7443
  "sort": {
7511
7444
  "amis": {
7512
- "hidden": true
7445
+ "hidden": true,
7446
+ "required": false
7513
7447
  }
7514
7448
  },
7515
7449
  "show_count": {
7516
7450
  "amis": {
7517
- "hidden": true
7451
+ "hidden": true,
7452
+ "required": false
7518
7453
  }
7519
7454
  },
7520
7455
  "type": {
7521
7456
  "amis": {
7522
- "hidden": true
7457
+ "hidden": true,
7458
+ "required": false
7523
7459
  }
7524
7460
  },
7525
7461
  "shared": {
@@ -8342,36 +8278,38 @@ const filterForm = scope.getComponents().find(function(n){
8342
8278
  const filterService = filterForm.context.getComponents().find(function(n){
8343
8279
  return n.props.type === "service";
8344
8280
  });
8345
- // filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
8281
+ let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
8282
+ filterService.setData({showFieldsFilter: toShowFieldsFilter});
8346
8283
  let resizeWindow = function(){
8347
8284
  //触发amis crud 高度重算
8348
8285
  setTimeout(()=>{
8349
8286
  window.dispatchEvent(new Event("resize"))
8350
8287
  }, 500);
8351
8288
  }
8352
- let isMobile = Steedos.isMobile();
8353
- if(filterService.props.data.showFieldsFilter){
8354
- if(isMobile){
8355
- // 手机上只能通过取消按钮来关闭搜索栏
8356
- return;
8357
- }
8358
- let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
8359
- direction: "down",
8360
- name: "btn_filter_form_cancel"
8361
- });
8362
- buttonCancel.props.dispatchEvent('click', {}).then(function(){
8363
- resizeWindow();
8364
- });
8365
- }
8366
- else{
8367
- filterService.setData({showFieldsFilter: true});
8368
- resizeWindow();
8369
- if(isMobile){
8370
- // 手机端在显示搜索栏时隐藏刷新按钮
8371
- let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
8372
- crudService && crudService.setData({showFieldsFilter: true});
8373
- }
8374
- }
8289
+ resizeWindow();
8290
+ // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
8291
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
8292
+ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8293
+ // if(filterService.props.data.showFieldsFilter){
8294
+ // if(isMobile){
8295
+ // // 手机上只能通过取消按钮来关闭搜索栏
8296
+ // return;
8297
+ // }
8298
+ // let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
8299
+ // direction: "down",
8300
+ // name: "btn_filter_form_cancel"
8301
+ // });
8302
+ // buttonCancel.props.dispatchEvent('click', {}).then(function(){
8303
+ // resizeWindow();
8304
+ // });
8305
+ // }
8306
+ // else{
8307
+ // if(isMobile){
8308
+ // // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
8309
+ // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
8310
+ // crudService && crudService.setData({showFieldsFilter: true});
8311
+ // }
8312
+ // }
8375
8313
  `;
8376
8314
 
8377
8315
 
@@ -8417,7 +8355,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
8417
8355
  },
8418
8356
  },
8419
8357
  filterVisible ? {
8420
- "label": "",
8358
+ "label": instance.t('frontend_button_search_tooltip'),
8421
8359
  "icon": "fa fa-search",
8422
8360
  "type": "button",
8423
8361
  "tooltip": instance.t('frontend_button_search_tooltip'),
@@ -8469,13 +8407,24 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
8469
8407
  "tooltipPlacement": "bottom",
8470
8408
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500"
8471
8409
  },
8472
- getExportExcelToolbarButtonSchema(),
8410
+ // getExportExcelToolbarButtonSchema(),
8411
+ getSettingListviewToolbarButtonSchema(),
8412
+ getDisplayAsButton(showDisplayAs),
8473
8413
  filterVisible ? {
8474
- "label": "",
8414
+ "label": instance.t('frontend_button_search_tooltip'),
8475
8415
  "icon": "fa fa-search",
8476
8416
  "tooltip": instance.t('frontend_button_search_tooltip'),
8477
8417
  "tooltipPlacement": "bottom",
8478
8418
  "type": "button",
8419
+ "badge": {
8420
+ "offset": [
8421
+ -5,
8422
+ 1
8423
+ ],
8424
+ "size":8,
8425
+ "animation": true,
8426
+ "visibleOn": "${isFieldsFilterEmpty == false}"
8427
+ },
8479
8428
  "align": "right",
8480
8429
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
8481
8430
  "onEvent": {
@@ -8488,9 +8437,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
8488
8437
  ]
8489
8438
  }
8490
8439
  }
8491
- } : {},
8492
- getSettingListviewToolbarButtonSchema(),
8493
- getDisplayAsButton(showDisplayAs)
8440
+ } : {}
8494
8441
  // {
8495
8442
  // "type": "search-box",
8496
8443
  // "align": "right",
@@ -9120,6 +9067,58 @@ async function lookupToAmisPicker(field, readonly, ctx){
9120
9067
  "actions": [
9121
9068
  {
9122
9069
  "actionType": "reload"
9070
+ },
9071
+ {
9072
+ "actionType": "custom",
9073
+ "script": `
9074
+ const masterRecord = event.data._master?.record;
9075
+ const fieldConfig = ${JSON.stringify(field)};
9076
+ let reference_to = fieldConfig.reference_to;
9077
+ let saveValue;
9078
+ const newRecord = {
9079
+ _id: event.data.result.data.recordId,
9080
+ ...event.data.__super.__super
9081
+ }
9082
+ const saveField = fieldConfig.reference_to_field || '_id';
9083
+ const saveFieldValue = newRecord[saveField];
9084
+
9085
+ if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
9086
+
9087
+ const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
9088
+ const baseSaveValue = {
9089
+ o: reference_to,
9090
+ ids: [saveFieldValue]
9091
+ };
9092
+ if(fieldValue && fieldValue.o){
9093
+ if(fieldValue.o === reference_to){
9094
+ saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;
9095
+ }else{
9096
+ saveValue = baseSaveValue;
9097
+ }
9098
+ }else{
9099
+ saveValue = baseSaveValue;
9100
+ }
9101
+
9102
+ }else{
9103
+ if(fieldConfig.multiple){
9104
+ // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。
9105
+ const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
9106
+ saveValue = fieldValue.concat(saveFieldValue);
9107
+ }else{
9108
+ saveValue = saveFieldValue;
9109
+ }
9110
+ }
9111
+
9112
+ const ctx = ${JSON.stringify(ctx)};
9113
+ const componentId = ctx.defaults.formSchema.id ? 'service-'+ctx.defaults.formSchema.id : 'new-'+ctx.defaults.formSchema.objectApiName;
9114
+ doAction({
9115
+ actionType: 'setValue',
9116
+ componentId: componentId,
9117
+ args: {
9118
+ value: { [fieldConfig.name]: saveValue }
9119
+ }
9120
+ });
9121
+ `
9123
9122
  }
9124
9123
  ]
9125
9124
  };
@@ -9350,7 +9349,7 @@ async function lookupToAmis(field, readonly, ctx){
9350
9349
  type: 'steedos-field-lookup',
9351
9350
  field,
9352
9351
  readonly,
9353
- ctx: {},
9352
+ ctx,
9354
9353
  }
9355
9354
  // return await lookupToAmisGroup(field, readonly, ctx);
9356
9355
  }
@@ -9504,8 +9503,8 @@ async function getIdsPickerSchema(field, readonly, ctx){
9504
9503
  /*
9505
9504
  * @Author: baozhoutao@steedos.com
9506
9505
  * @Date: 2023-01-13 17:27:54
9507
- * @LastEditors: Please set LastEditors
9508
- * @LastEditTime: 2023-05-31 13:34:22
9506
+ * @LastEditors: liaodaxue
9507
+ * @LastEditTime: 2023-06-16 15:58:21
9509
9508
  * @Description:
9510
9509
  */
9511
9510
 
@@ -9557,6 +9556,7 @@ const getHtmlFieldSchema = (field, readonly, ctx)=>{
9557
9556
  }else {
9558
9557
  return {
9559
9558
  "type": "input-rich-text",
9559
+ "receiver": "${context.rootUrl}/s3/images",
9560
9560
  "name": field.name
9561
9561
  }
9562
9562
  // return {
@@ -10843,7 +10843,10 @@ async function getMobileTableColumns(fields, options){
10843
10843
  level: "link",
10844
10844
  actionType: "link",
10845
10845
  link: url,
10846
- innerClassName: "steedos-listview-item block text-gray-500",
10846
+ innerClassName: {
10847
+ "steedos-listview-item block text-gray-500":"true",
10848
+ "max-w-[360px]": "${display == 'split'}",
10849
+ },
10847
10850
  body: {
10848
10851
  "type": "wrapper",
10849
10852
  "body": columnLines,
@@ -12740,6 +12743,8 @@ async function getObjectForm(objectSchema, ctx){
12740
12743
  };
12741
12744
  if(formSchema.id){
12742
12745
  amisSchema.id = `service-${formSchema.id}`;
12746
+ }else {
12747
+ amisSchema.id = `new-${objectSchema.name}`;
12743
12748
  }
12744
12749
  return amisSchema;
12745
12750
  }
@@ -19087,7 +19092,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
19087
19092
  "type": "wrapper",
19088
19093
  "size": "none",
19089
19094
  "className": {
19090
- "p-0 flex-shrink-0 min-w-[388px] border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col": "${display == 'split'}",
19095
+ "p-0 flex-shrink-0 min-w-[388px] w-fit border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col": "${display == 'split'}",
19091
19096
  'h-full': "${display != 'split'}",
19092
19097
  },
19093
19098
  "body": {