@steedos-widgets/amis-object 3.6.2-beta.3 → 3.6.2-beta.5

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.
@@ -5240,11 +5240,12 @@ async function getTableColumns$1(fields, options){
5240
5240
  //增加quickEdit属性,实现快速编辑
5241
5241
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
5242
5242
  let className = "";
5243
- if(field.wrap != true){
5244
- className += " whitespace-nowrap ";
5245
- }else {
5246
- className += " break-all ";
5247
- }
5243
+ //crud内默认换行
5244
+ // if(field.wrap != true){
5245
+ // className += " whitespace-nowrap "
5246
+ // }else{
5247
+ // className += " break-words "
5248
+ // }
5248
5249
  let columnItem;
5249
5250
  if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
5250
5251
  const previewFileScript = `
@@ -5679,7 +5680,8 @@ async function getTableOperation(ctx){
5679
5680
  label: " ",
5680
5681
  fixed: 'right',
5681
5682
  labelClassName: 'text-center',
5682
- className: 'text-center steedos-listview-operation w-10',
5683
+ //TODO:目前3.6.3-patch.3版本中对于动态classname处理存在问题,简单处理固定列问题,等待amis解决crud的columns不支持动态classname的问题
5684
+ className: 'text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right',
5683
5685
  buttons: [
5684
5686
  {
5685
5687
  "type": "steedos-dropdown-button",
@@ -6312,12 +6314,21 @@ function getReadonlyFormAdaptor(object, fields, options){
6312
6314
  }
6313
6315
  payload.data = data;
6314
6316
  payload.data.__objectName = "${object.name}";
6315
- payload.data.__record = record;
6317
+ payload.data.record = record;
6318
+
6319
+ payload.data.name = record.${object.NAME_FIELD_KEY || 'name'};
6320
+ payload.data._master = {
6321
+ record: record,
6322
+ objectName: "${object.name}",
6323
+ recordId: record._id
6324
+ }
6316
6325
  window.postMessage(Object.assign({type: "record.loaded"}, {record: record}), "*")
6317
6326
  }
6318
6327
  if(payload.errors){
6319
6328
  payload.status = 2;
6320
6329
  payload.msg = payload.errors[0].message;
6330
+ }else{
6331
+ payload.data.recordLoaded = true;
6321
6332
  }
6322
6333
  ${options && options.initApiAdaptor || ''}
6323
6334
  return payload;
@@ -8294,7 +8305,7 @@ const StandardButtons = {
8294
8305
  }
8295
8306
  };
8296
8307
 
8297
- const getGlobalData$1 = () => {
8308
+ const getGlobalData = () => {
8298
8309
  return {
8299
8310
  now: new Date(),
8300
8311
  };
@@ -8353,7 +8364,7 @@ const getButtonVisible = (button, ctx) => {
8353
8364
  button._visible,
8354
8365
  props.record,
8355
8366
  "#",
8356
- getGlobalData$1(),
8367
+ getGlobalData(),
8357
8368
  props.userSession
8358
8369
  );
8359
8370
  };
@@ -9731,6 +9742,48 @@ function getObjectListHeader$1(objectSchema, listViewName, ctx) {
9731
9742
  return headerSchema;
9732
9743
  }
9733
9744
 
9745
+ function getBackButtonSchema(){
9746
+ return {
9747
+ "type": "service",
9748
+ "onEvent": {
9749
+ "@history_paths.changed": {
9750
+ "actions": [
9751
+ {
9752
+ "actionType": "reload",
9753
+ // amis 3.6需要传入data来触发下面的window:historyPaths重新计算,此问题随机偶发,加上data后正常
9754
+ "data": {
9755
+ }
9756
+ }
9757
+ ]
9758
+ }
9759
+ },
9760
+ "body":[{
9761
+ "type": "button",
9762
+ "visibleOn": "${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}",
9763
+ "className":"flex mr-4",
9764
+ "onEvent": {
9765
+ "click": {
9766
+ "actions": [
9767
+ {
9768
+ "actionType": "custom",
9769
+ "script": "window.goBack()"
9770
+ }
9771
+ ]
9772
+ }
9773
+ },
9774
+ "body": [
9775
+ {
9776
+ "type": "steedos-icon",
9777
+ "category": "utility",
9778
+ "name": "back",
9779
+ "colorVariant": "default",
9780
+ "className": "slds-button_icon slds-global-header__icon w-4"
9781
+ }
9782
+ ]
9783
+ }]
9784
+ }
9785
+ }
9786
+
9734
9787
  /**
9735
9788
  * 记录详细界面顶部头amisSchema,也是标题面板组件的amisSchema
9736
9789
  * @param {*} objectSchema 对象UISchema
@@ -9739,11 +9792,21 @@ function getObjectListHeader$1(objectSchema, listViewName, ctx) {
9739
9792
  * @returns amisSchema
9740
9793
  */
9741
9794
  async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
9795
+ // console.log(`getObjectRecordDetailHeader====>`, options)
9742
9796
  const { showRecordTitle = true } = options || {};
9743
9797
  // console.log('getObjectRecordDetailHeader==>', objectSchema, recordId)
9744
9798
  const { name, label, icon, NAME_FIELD_KEY } = objectSchema;
9745
9799
 
9746
- let amisButtonsSchema = getObjectDetailButtonsSchemas(objectSchema, recordId, options);
9800
+ let amisButtonsSchema = [];
9801
+ if(options.showButtons != false){
9802
+ amisButtonsSchema = getObjectDetailButtonsSchemas(objectSchema, recordId, options);
9803
+ }
9804
+
9805
+ let backButtonsSchema = null;
9806
+
9807
+ if(options.showBackButton != false){
9808
+ backButtonsSchema = getBackButtonSchema();
9809
+ }
9747
9810
 
9748
9811
  // console.log(`getObjectRecordDetailHeader==>`, amisButtonsSchema)
9749
9812
 
@@ -9758,45 +9821,9 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
9758
9821
  "type": "grid",
9759
9822
  "columns": [
9760
9823
  {
9761
- "body": [{
9762
- "type": "service",
9763
- "onEvent": {
9764
- "@history_paths.changed": {
9765
- "actions": [
9766
- {
9767
- "actionType": "reload",
9768
- // amis 3.6需要传入data来触发下面的window:historyPaths重新计算,此问题随机偶发,加上data后正常
9769
- "data": {
9770
- }
9771
- }
9772
- ]
9773
- }
9774
- },
9775
- "body":[{
9776
- "type": "button",
9777
- "visibleOn": "${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}",
9778
- "className":"flex mr-4",
9779
- "onEvent": {
9780
- "click": {
9781
- "actions": [
9782
- {
9783
- "actionType": "custom",
9784
- "script": "window.goBack()"
9785
- }
9786
- ]
9787
- }
9788
- },
9789
- "body": [
9790
- {
9791
- "type": "steedos-icon",
9792
- "category": "utility",
9793
- "name": "back",
9794
- "colorVariant": "default",
9795
- "className": "slds-button_icon slds-global-header__icon w-4"
9796
- }
9797
- ]
9798
- }]
9799
- },{
9824
+ "body": [
9825
+ backButtonsSchema
9826
+ ,{
9800
9827
  "type": "tpl",
9801
9828
  "className": "block",
9802
9829
  // "tpl": `<img class='slds-icon slds-icon_container slds-icon-standard-${standardIcon}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg'>`
@@ -9846,7 +9873,7 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
9846
9873
  let body = [
9847
9874
  {
9848
9875
  "type": "wrapper",
9849
- "className": "p-0",
9876
+ "className": "p-4",
9850
9877
  "body": [
9851
9878
  {
9852
9879
  "type": "grid",
@@ -9861,7 +9888,7 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
9861
9888
  if(showRecordTitle){
9862
9889
  body.push({
9863
9890
  "type": "wrapper",
9864
- "className": "p-0",
9891
+ "className": "p-4",
9865
9892
  "body": [
9866
9893
  {
9867
9894
  "type": "grid",
@@ -9873,6 +9900,34 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
9873
9900
  });
9874
9901
  }
9875
9902
 
9903
+ let max = 10;
9904
+ if(options.formFactor === 'SMALL'){
9905
+ max = 4;
9906
+ }
9907
+
9908
+ if(objectSchema.compactLayouts){
9909
+ const details = [];
9910
+ _.each(_.slice(_.difference(objectSchema.compactLayouts, [objectSchema.NAME_FIELD_KEY]), 0, max), (fieldName)=>{
9911
+ const field = objectSchema.fields[fieldName];
9912
+ if(field){
9913
+ details.push({
9914
+ type: 'steedos-field',
9915
+ static: true,
9916
+ config: field,
9917
+ });
9918
+ }
9919
+ });
9920
+
9921
+ body.push({
9922
+ "type": "form",
9923
+ "className": "p-4 pb-0 bg-white compact-layouts",
9924
+ "wrapWithPanel": false,
9925
+ "actions": [],
9926
+ "body": details,
9927
+ "hiddenOn": "${recordLoaded != true}"
9928
+ });
9929
+ }
9930
+
9876
9931
  return {
9877
9932
  type: 'service',
9878
9933
  id: `page_readonly_${name}_header`,
@@ -11288,7 +11343,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
11288
11343
  // ]
11289
11344
  if(options.displayAs === 'split'){
11290
11345
  return [
11291
- "switch-per-page",
11346
+ {
11347
+ "type": "switch-per-page",
11348
+ "visibleOn": "${count >= 20}"
11349
+ },
11292
11350
  {
11293
11351
  "type": "pagination",
11294
11352
  "maxButtons": 5,
@@ -11332,7 +11390,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
11332
11390
  if (no_pagination && is_lookup) {
11333
11391
  return commonConfig;
11334
11392
  } else {
11335
- return ["switch-per-page", ...commonConfig];
11393
+ return [{
11394
+ "type": "switch-per-page",
11395
+ "visibleOn": "${count >= 20}"
11396
+ }, ...commonConfig];
11336
11397
  }
11337
11398
  }
11338
11399
  }
@@ -11694,7 +11755,7 @@ async function getObjectCRUD(objectSchema, fields, options){
11694
11755
 
11695
11756
  if(body.columns && options.formFactor != 'SMALL'){
11696
11757
  //将_display放入crud的columns的倒数第二列中(最后一列会影响固定列),可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
11697
- body.columns.splice(body.columns.length - 1, 0, {name: '_display',type: 'static', width: 32, placeholder: "",id: objectSchema.name + "_display_${_index}", className: "hidden"});
11758
+ body.columns.splice(body.columns.length -1 , 0, {name: '_display',type: 'static', width: 1, placeholder: "",id: objectSchema.name + "_display_${_index}", tpl: "${}"});
11698
11759
  }
11699
11760
 
11700
11761
  if (defaults) {
@@ -11752,11 +11813,6 @@ async function getObjectCRUD(objectSchema, fields, options){
11752
11813
  }
11753
11814
  }
11754
11815
 
11755
- const getGlobalData = (mode)=>{
11756
- const user = getSteedosAuth();
11757
- return {mode: mode, user: user, spaceId: user.spaceId, userId: user.userId}
11758
- };
11759
-
11760
11816
  const getFormFields$1 = (objectSchema, formProps)=>{
11761
11817
  /**
11762
11818
  * fieldsExtend: 重写字段定义
@@ -11918,8 +11974,7 @@ async function getObjectDetail(objectSchema, recordId, ctx){
11918
11974
  type: 'service',
11919
11975
  name: `page_readonly_${recordId}`,
11920
11976
  id: serviceId,
11921
- data: {global: getGlobalData('read'), context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},
11922
- api: await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx),
11977
+ // api: await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx),
11923
11978
  body: [
11924
11979
  {
11925
11980
  "type": "wrapper", //form 的 hiddenOn 会导致 form onEvent 异常, 使用wrapper包裹一次form,并在wrapper上控制显隐
@@ -11945,60 +12000,41 @@ async function getObjectDetail(objectSchema, recordId, ctx){
11945
12000
  ),
11946
12001
  className: 'steedos-amis-form bg-white',
11947
12002
  actions: [], // 不显示表单默认的提交按钮
11948
- onEvent: {
11949
- [`@data.changed.${objectSchema.name}`]: { // 由于amis service 组件的 onEvent 存在bug ,此处借助form来刷新 上层 service https://github.com/baidu/amis/issues/6294
11950
- "actions": [
11951
- {
11952
- "actionType": "reload",
11953
- "componentId": serviceId,
11954
- "expression": "this.__deletedRecord != true"
11955
- },
11956
- {
11957
- // "args": {
11958
- // "url": "/app/${appId}/${objectName}/grid/${side_listview_id}",
11959
- // "blank": false
11960
- // },
11961
- "actionType": "custom",
11962
- "script": "window.goBack()",
11963
- "expression": "this.__deletedRecord === true"
11964
- }
11965
- ]
11966
- }
11967
- }
11968
12003
  },
11969
12004
  }
11970
12005
  ],
11971
- onEvent: {
11972
- "fetchInited": {
11973
- "weight": 0,
11974
- "actions": [
11975
- {
11976
- actionType: 'broadcast',
11977
- eventName: "recordLoaded",
11978
- args: {
11979
- eventName: "recordLoaded"
11980
- },
11981
- data: {
11982
- objectName: "${event.data.__objectName}",
11983
- record: "${event.data.__record}"
11984
- },
11985
- expression: "${event.data.__response.error != true}"
11986
- },
11987
- {
11988
- "actionType": "setValue",
11989
- "args": {
11990
- value: {
11991
- "recordLoaded": true,
11992
- }
11993
- },
11994
- expression: "${event.data.__response.error != true}"
11995
- }
11996
- ]
11997
- }
11998
- }
12006
+ // onEvent: {
12007
+ // "fetchInited": {
12008
+ // "weight": 0,
12009
+ // "actions": [
12010
+ // {
12011
+ // actionType: 'broadcast',
12012
+ // eventName: "recordLoaded",
12013
+ // args: {
12014
+ // eventName: "recordLoaded"
12015
+ // },
12016
+ // data: {
12017
+ // objectName: "${event.data.__objectName}",
12018
+ // record: "${event.data.__record}"
12019
+ // },
12020
+ // expression: "${event.data.__response.error != true}"
12021
+ // },
12022
+ // {
12023
+ // "actionType": "setValue",
12024
+ // "args": {
12025
+ // value: {
12026
+ // "recordLoaded": true,
12027
+ // }
12028
+ // },
12029
+ // expression: "${event.data.__response.error != true}"
12030
+ // }
12031
+ // ]
12032
+ // }
12033
+ // }
11999
12034
  };
12000
12035
 
12001
12036
  amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });
12037
+ // console.log('getObjectDetail=====>', amisSchema);
12002
12038
  return amisSchema;
12003
12039
  }
12004
12040
 
@@ -12078,8 +12114,8 @@ const getRecordPermissions = async (objectName, recordId)=>{
12078
12114
  /*
12079
12115
  * @Author: baozhoutao@steedos.com
12080
12116
  * @Date: 2022-07-05 15:55:39
12081
- * @LastEditors: liaodaxue
12082
- * @LastEditTime: 2023-11-14 15:55:32
12117
+ * @LastEditors: baozhoutao@steedos.com
12118
+ * @LastEditTime: 2024-01-15 10:34:46
12083
12119
  * @Description:
12084
12120
  */
12085
12121
 
@@ -12459,11 +12495,44 @@ async function getRelatedListSchema(
12459
12495
  };
12460
12496
  }
12461
12497
 
12498
+ async function getObjectRelatedListsMiniSchema(objectApiName){
12499
+ const relatedLists = await getObjectRelatedList(objectApiName);
12500
+
12501
+ const relatedListsMiniSchema = [];
12502
+
12503
+ for (const relatedList of relatedLists) {
12504
+ relatedListsMiniSchema.push(
12505
+ {
12506
+ type: 'steedos-record-detail-list-mini',
12507
+ objectApiName: objectApiName,
12508
+ // recordId: recordId,
12509
+ formFactor: formFactor,
12510
+ relatedObjectApiName: relatedList.object_name,
12511
+ foreign_key: relatedList.foreign_key,
12512
+ relatedKey: relatedList.foreign_key,
12513
+ columns: relatedList.columns,
12514
+ sort: relatedList.sort,
12515
+ filters: relatedList.filters,
12516
+ visible_on: relatedList.visible_on,
12517
+ perPage: relatedList.page_size || perPage,
12518
+ hiddenEmptyTable: true,
12519
+ relatedLabel: relatedList.label
12520
+ }
12521
+ );
12522
+ }
12523
+
12524
+ return {
12525
+ type: 'wrapper',
12526
+ className: "steedos-record-detail-related-lists-mini",
12527
+ body: relatedListsMiniSchema
12528
+ }
12529
+ }
12530
+
12462
12531
  /*
12463
12532
  * @Author: baozhoutao@steedos.com
12464
12533
  * @Date: 2022-07-05 15:55:39
12465
- * @LastEditors: liaodaxue
12466
- * @LastEditTime: 2023-10-20 11:38:25
12534
+ * @LastEditors: baozhoutao@steedos.com
12535
+ * @LastEditTime: 2024-01-15 15:50:40
12467
12536
  * @Description:
12468
12537
  */
12469
12538
 
@@ -12635,7 +12704,7 @@ async function getField(objectName, fieldName) {
12635
12704
  async function getFormSchema(objectName, ctx) {
12636
12705
  const uiSchema = await getUISchema(objectName);
12637
12706
  const amisSchema = await getObjectForm(uiSchema, ctx);
12638
- console.log(`getFormSchema====>`, amisSchema);
12707
+ // console.log(`getFormSchema====>`, amisSchema)
12639
12708
  return {
12640
12709
  uiSchema,
12641
12710
  amisSchema,
@@ -12993,61 +13062,95 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
12993
13062
  if(relatedLists.length){
12994
13063
  content.tabs.push(related);
12995
13064
  }
13065
+ content.tabs = _$1.reverse(content.tabs);
12996
13066
  return {
12997
13067
  uiSchema,
12998
13068
  amisSchema: {
12999
- "type": "service",
13069
+ "type": "steedos-record-service",
13000
13070
  "body": [
13001
13071
  {
13002
13072
  "type": "steedos-record-detail-header",
13003
13073
  "label": "标题面板",
13004
13074
  "objectApiName": "${objectName}",
13005
13075
  "recordId": "${recordId}",
13006
- "id": "u:48d2c28eb755"
13076
+ "id": "u:48d2c28eb755",
13077
+ "showButtons": props.showButtons,
13078
+ "showBackButton": props.showBackButton,
13007
13079
  },
13008
13080
  content
13009
13081
  ],
13010
- data: {
13011
- "_master.objectName": "${objectName}",
13012
- "_master.recordId": "${recordId}"
13013
- },
13014
- onEvent: {
13015
- "recordLoaded": {
13016
- "actions": [
13017
- {
13018
- "actionType": "reload",
13019
- "data": {
13020
- "name": `\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,
13021
- "_master.record": `\${record}`,
13022
- // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId
13023
- "_master.objectName": "${objectName}",
13024
- "_master.recordId": "${recordId}"
13025
- }
13026
- }
13027
- ]
13028
- },
13029
- ...props.onEvent
13030
- },
13082
+ "objectApiName": "${objectName}",
13083
+ "recordId": "${recordId}",
13084
+ onEvent: props.onEvent,
13031
13085
  }
13032
13086
  }
13033
13087
  }
13034
13088
 
13035
13089
  async function getRecordServiceSchema(objectName, appId, props = {}) {
13036
13090
  const uiSchema = await getUISchema(objectName);
13091
+ const fields = _$1__default["default"].values(uiSchema.fields);
13037
13092
  return {
13038
13093
  uiSchema,
13039
13094
  amisSchema: {
13040
13095
  "type": "service",
13041
- "body": [],
13096
+ className: 'steedos-record-service p-0 md:p-2',
13097
+ api: await getReadonlyFormInitApi(uiSchema, props.recordId, fields, props),
13098
+ "body": {
13099
+ "type": "wrapper",
13100
+ "className": "p-0 m-0",
13101
+ "body": [],
13102
+ "hiddenOn": "${recordLoaded != true}"
13103
+ },
13042
13104
  data: {
13043
13105
  "_master.objectName": "${objectName}",
13044
- "_master.recordId": "${recordId}"
13106
+ "_master.recordId": "${recordId}",
13107
+ ...(props.data || {})
13045
13108
  },
13046
13109
  "style": {
13047
- "padding": "var(--Page-body-padding)",
13110
+ // "padding": "var(--Page-body-padding)",
13048
13111
  ...props.style
13049
13112
  },
13050
13113
  onEvent: {
13114
+ [`@data.changed.${objectName}`]: {
13115
+ "actions": [
13116
+ {
13117
+ "actionType": "reload",
13118
+ "expression": "this.__deletedRecord != true"
13119
+ },
13120
+ {
13121
+ "actionType": "custom",
13122
+ "script": "window.goBack()",
13123
+ "expression": "this.__deletedRecord === true"
13124
+ }
13125
+ ]
13126
+ },
13127
+ // 如果定义了fetchInited,则无法接收到广播事件@data.changed
13128
+ // "fetchInited": {
13129
+ // "weight": 0,
13130
+ // "actions": [
13131
+ // // {
13132
+ // // actionType: 'broadcast',
13133
+ // // eventName: "recordLoaded",
13134
+ // // args: {
13135
+ // // eventName: "recordLoaded"
13136
+ // // },
13137
+ // // data: {
13138
+ // // objectName: "${event.data.__objectName}",
13139
+ // // record: "${event.data.__record}"
13140
+ // // },
13141
+ // // expression: "${event.data.__response.error != true}"
13142
+ // // },
13143
+ // {
13144
+ // "actionType": "setValue",
13145
+ // "args": {
13146
+ // value: {
13147
+ // "recordLoaded": true,
13148
+ // }
13149
+ // },
13150
+ // expression: "${event.data.__response.error != true}"
13151
+ // }
13152
+ // ]
13153
+ // },
13051
13154
  "recordLoaded": {
13052
13155
  "actions": [
13053
13156
  {
@@ -13068,6 +13171,45 @@ async function getRecordServiceSchema(objectName, appId, props = {}) {
13068
13171
  }
13069
13172
  }
13070
13173
 
13174
+ async function getRecordDetailMiniSchema(objectName, appId, props = {}){
13175
+ const uiSchema = await getUISchema(objectName);
13176
+ const fields = _$1__default["default"].values(uiSchema.fields);
13177
+
13178
+ props.initApiAdaptor = 'payload.data=Object.assign({}, payload.data, payload.data.record); payload.data._finished=true; console.log("payload data is ====>", payload)';
13179
+
13180
+ // TODO 处理相关表
13181
+ // getObjectRelatedListsMiniSchema
13182
+
13183
+ return {
13184
+ type: "form",
13185
+ wrapWithPanel: false,
13186
+ actions: [],
13187
+ initApi: await getReadonlyFormInitApi(uiSchema, props.recordId, fields, props),
13188
+ body: {
13189
+ "type": "wrapper",
13190
+ "className": "p-0 m-0",
13191
+ "body": [
13192
+ {
13193
+ "type": "steedos-record-detail-header",
13194
+ "showButtons": false,
13195
+ "showBackButton": false,
13196
+ "objectApiName": "${objectName}",
13197
+ "recordId": "${recordId}",
13198
+ },
13199
+ // {
13200
+ // "type": "steedos-object-related-lists",
13201
+ // "label": "相关列表",
13202
+ // "objectApiName": "${objectName}",
13203
+ // "staticRecordId": "${recordId}",
13204
+ // formFactor: "SMALL",
13205
+ // appId: appId
13206
+ // }
13207
+ ],
13208
+ "hiddenOn": "${_finished != true}"
13209
+ }
13210
+ }
13211
+ }
13212
+
13071
13213
  // 获取单个相关表
13072
13214
  async function getObjectRelated(
13073
13215
  {appName,
@@ -14215,7 +14357,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
14215
14357
  labelField: referenceTo.labelField.name,
14216
14358
  valueField: referenceTo.valueField.name,
14217
14359
  // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。
14218
- disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,
14360
+ disabledOn: `${readonly}`,
14361
+ hiddenOn: `( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,
14219
14362
  modalMode: 'dialog', //TODO 设置 dialog 或者 drawer,用来配置弹出方式
14220
14363
  source: source,
14221
14364
  size: "lg",
@@ -14459,9 +14602,15 @@ async function lookupToAmis(field, readonly, ctx){
14459
14602
  // console.log(`lookupToAmis====`, field, readonly, ctx)
14460
14603
  if(readonly){
14461
14604
  return {
14462
- type: getAmisStaticFieldType$1('picker', readonly),
14463
- tpl: getRelatedFieldTpl(field, ctx)
14605
+ type: 'steedos-field',
14606
+ config: field,
14607
+ static: true
14464
14608
  }
14609
+
14610
+ // return {
14611
+ // type: Field.getAmisStaticFieldType('picker', readonly),
14612
+ // tpl: Tpl.getRelatedFieldTpl(field, ctx)
14613
+ // }
14465
14614
  }
14466
14615
  if(field.reference_to && !_$1__namespace.isString(field.reference_to) && !readonly){
14467
14616
  return {
@@ -15454,11 +15603,9 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
15454
15603
  if(field.subFields){
15455
15604
  convertData = {
15456
15605
  type: 'steedos-input-table',
15457
- showIndex: true,
15458
15606
  editable: !readonly,
15459
15607
  addable: !readonly,
15460
15608
  removable: !readonly,
15461
- draggable: !readonly,
15462
15609
  fields: [],
15463
15610
  amis:{
15464
15611
  columnsTogglable: false
@@ -15916,7 +16063,7 @@ async function getFormBody(permissionFields, formFields, ctx){
15916
16063
  * @Author: 殷亮辉 yinlianghui@hotoa.com
15917
16064
  * @Date: 2023-11-15 09:50:22
15918
16065
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
15919
- * @LastEditTime: 2024-01-12 14:51:00
16066
+ * @LastEditTime: 2024-01-15 17:50:02
15920
16067
  */
15921
16068
 
15922
16069
  /**
@@ -16065,8 +16212,15 @@ function getFormPagination(props, mode) {
16065
16212
  let currentIndex = event.data.index;
16066
16213
  // 翻页到下一页之前需要先把当前页改动的内容保存到中间变量__tableItems中
16067
16214
  let currentFormValues = scope.getComponentById(__formId).getValues();
16068
- if(event.data.parent){
16069
- fieldValue[event.data.__parentIndex].children[currentIndex] = currentFormValues;
16215
+ var parent = event.data.parent;
16216
+ var __parentIndex = event.data.__parentIndex;
16217
+ if(parent){
16218
+ fieldValue[__parentIndex].children[currentIndex] = currentFormValues;
16219
+ // 重写父节点,并且改变其某个属性以让子节点修改的内容回显到界面上
16220
+ fieldValue[__parentIndex] = Object.assign({}, fieldValue[__parentIndex], {
16221
+ children: fieldValue[__parentIndex].children,
16222
+ __fix_rerender_after_children_modified_tag: new Date().getTime()
16223
+ });
16070
16224
  }
16071
16225
  else{
16072
16226
  fieldValue[currentIndex] = currentFormValues;
@@ -16204,9 +16358,14 @@ function getFormPaginationWrapper(props, form, mode) {
16204
16358
  }
16205
16359
  ];
16206
16360
  let onServiceInitedScript = `
16207
- if(event.data.parent){
16361
+ var parent = event.data.parent;
16362
+ var fieldValue = event.data.__tableItems;
16363
+ if(parent){
16208
16364
  // 如果是子行,即在节点嵌套情况下,当前节点如果是children属性下的子节点时,则算出其所属父行的索引值
16209
- event.data.__parentIndex = _.findIndex(event.data.__tableItems, {_id: event.data.parent._id});
16365
+ var primaryKey = "${props.primaryKey}";
16366
+ event.data.__parentIndex = _.findIndex(fieldValue, function(item){
16367
+ return item[primaryKey] == parent[primaryKey];
16368
+ });
16210
16369
  }
16211
16370
  // 以下脚本是为了解决有时弹出编辑表单时,表单中的值比最后一次编辑保存的值会延迟一拍。
16212
16371
  // 比如:inlineEditMode模式时,用户在表格单元格中直接修改数据,然后弹出的表单form中并没有包含单元格中修改的内容
@@ -16318,6 +16477,11 @@ async function getForm(props, mode = "edit", formId) {
16318
16477
  var __parentIndex = event.data.__super.__super.__parentIndex;
16319
16478
  if(parent){
16320
16479
  fieldValue[__parentIndex].children[currentIndex] = currentFormValues;
16480
+ // 重写父节点,并且改变其某个属性以让子节点修改的内容回显到界面上
16481
+ fieldValue[__parentIndex] = Object.assign({}, fieldValue[__parentIndex], {
16482
+ children: fieldValue[__parentIndex].children,
16483
+ __fix_rerender_after_children_modified_tag: new Date().getTime()
16484
+ });
16321
16485
  }
16322
16486
  else{
16323
16487
  fieldValue[currentIndex] = currentFormValues;
@@ -16462,9 +16626,13 @@ async function getButtonActions(props, mode) {
16462
16626
  let fieldValue = event.data.__tableItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.__tableItems,直接变更其值即可改变表单中的值
16463
16627
  // 新建一条空白行并保存到子表组件
16464
16628
  var parent = event.data.__super.parent;
16465
- var __parentIndex = parent && _.findIndex(fieldValue, {_id: parent._id});
16629
+ var primaryKey = "${props.primaryKey}";
16630
+ var __parentIndex = parent && _.findIndex(fieldValue, function(item){
16631
+ return item[primaryKey] == parent[primaryKey];
16632
+ });
16466
16633
  if(parent){
16467
16634
  fieldValue[__parentIndex].children.push({});
16635
+ // 这里实测不需要fieldValue[__parentIndex] = ... 来重写整个父行让子表回显,所以没加相关代码
16468
16636
  }
16469
16637
  else{
16470
16638
  fieldValue.push({});
@@ -16499,9 +16667,13 @@ async function getButtonActions(props, mode) {
16499
16667
  // 复制当前页数据到新建行并保存到子表组件
16500
16668
  // fieldValue.push(newItem);
16501
16669
  var parent = event.data.__super.parent;
16502
- var __parentIndex = parent && _.findIndex(fieldValue, {_id: parent._id});
16670
+ var primaryKey = "${props.primaryKey}";
16671
+ var __parentIndex = parent && _.findIndex(fieldValue, function(item){
16672
+ return item[primaryKey] == parent[primaryKey];
16673
+ });
16503
16674
  if(parent){
16504
16675
  fieldValue[__parentIndex].children.push(newItem);
16676
+ // 这里实测不需要fieldValue[__parentIndex] = ... 来重写整个父行让子表回显,所以没加相关代码
16505
16677
  }
16506
16678
  else{
16507
16679
  fieldValue.push(newItem);
@@ -16517,7 +16689,6 @@ async function getButtonActions(props, mode) {
16517
16689
  let __paginationServiceId = "${formPaginationId}";
16518
16690
  let __paginationData = scope.getComponentById(__paginationServiceId).getData();
16519
16691
  event.data.index = __paginationData.index;
16520
- // event.data.__page = fieldValue.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
16521
16692
  if(parent){
16522
16693
  event.data.__page = fieldValue[__parentIndex].children.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
16523
16694
  event.data.__parentIndex = __parentIndex; //执行下面的翻页按钮事件中依赖了__parentIndex值
@@ -16601,13 +16772,15 @@ async function getButtonActions(props, mode) {
16601
16772
  "global": "${global}",
16602
16773
  "uiSchema": "${uiSchema}",
16603
16774
  "index": "${index}",//amis组件自带行索引,在节点嵌套情况下,当前节点如果是children属性下的子节点时,这里的index是当前节点在children中的索引,而不是外层父节点的index
16604
- "parent": "${parent}",//amis组件自带父节点数据域数据,即节点嵌套情况下,当前节点为某个节点(比如A节点)的children属性下的子节点时,当前节点的父节点(即A节点)的数据域数据
16775
+ "parent": "${__super.parent}",//amis组件自带父节点数据域数据,即节点嵌套情况下,当前节点为某个节点(比如A节点)的children属性下的子节点时,当前节点的父节点(即A节点)的数据域数据
16605
16776
  // "__tableItems": `\${${props.name}}`
16606
16777
  // 为了解决"弹出的dialog窗口中子表组件会影响页面布局界面中父作用域字段值",比如设计字段布局微页面中的设置分组功能,弹出的就是子表dialog
16607
16778
  // 所以这里使用json|toJson转一次,断掉event.data.__tableItems与上层任用域中props.name的联系
16608
16779
  // "__tableItems": `\${${props.name}|json|toJson}`
16609
- "__tableItems": `\${(${props.name} || [])|json|toJson}`
16610
- },
16780
+ // 在节点嵌套情况下,当前节点正好是带children属性的节点的话,这里弹出的dialog映射到的会是children数组,这是amis目前的规则,
16781
+ // 所以这里加判断有children时,用__super.__super让映射到正确的作用域层,如果不加,则__tableItems取到的会是children数组,而不是整个子表组件的值
16782
+ "__tableItems": `\${((children ? __super.__super.${props.name} : __super.${props.name}) || [])|json|toJson}`
16783
+ },
16611
16784
  "actions": dialogButtons,
16612
16785
  "onEvent": {
16613
16786
  "confirm": {
@@ -16696,15 +16869,17 @@ async function getButtonActions(props, mode) {
16696
16869
  // 映射到中间变量__parentForm而不是直接用&展开映射是为了避免表单中字段名与作用域中变量重名
16697
16870
  // "__parentForm": "${__super.__super || {}}",
16698
16871
  "__parentForm": parentFormData,
16872
+ "_master": "${_master}",
16699
16873
  "global": "${global}",
16700
16874
  "uiSchema": "${uiSchema}",
16701
16875
  "index": "${index}",
16876
+ "parent": "${__super.parent}",//amis组件自带父节点数据域数据,即节点嵌套情况下,当前节点为某个节点(比如A节点)的children属性下的子节点时,当前节点的父节点(即A节点)的数据域数据
16702
16877
  // "__tableItems": `\${${props.name}}`
16703
16878
  // 为了解决"弹出的dialog窗口中子表组件会影响页面布局界面中父作用域字段值",比如设计字段布局微页面中的设置分组功能,弹出的就是子表dialog
16704
16879
  // 所以这里使用json|toJson转一次,断掉event.data.__tableItems与上层任用域中props.name的联系
16705
16880
  // "__tableItems": `\${${props.name}|json|toJson}`
16706
- "__tableItems": `\${(${props.name} || [])|json|toJson}`
16707
- },
16881
+ "__tableItems": `\${((__super.parent ? __super.__super.${props.name} : __super.${props.name}) || [])|json|toJson}`
16882
+ },
16708
16883
  }
16709
16884
  }
16710
16885
  ];
@@ -16722,9 +16897,17 @@ async function getButtonActions(props, mode) {
16722
16897
  let lastestFieldValue = _.clone(wrapperServiceData["${props.name}"]);
16723
16898
  var currentIndex = event.data.index;
16724
16899
  var parent = event.data.__super.parent;
16725
- var __parentIndex = parent && _.findIndex(lastestFieldValue, {_id: parent._id});
16900
+ var primaryKey = "${props.primaryKey}";
16901
+ var __parentIndex = parent && _.findIndex(lastestFieldValue, function(item){
16902
+ return item[primaryKey] == parent[primaryKey];
16903
+ });
16726
16904
  if(parent){
16727
16905
  lastestFieldValue[__parentIndex].children.splice(currentIndex, 1);
16906
+ // 重写父节点,并且改变其某个属性以让子节点修改的内容回显到界面上
16907
+ lastestFieldValue[__parentIndex] = Object.assign({}, lastestFieldValue[__parentIndex], {
16908
+ children: lastestFieldValue[__parentIndex].children,
16909
+ __fix_rerender_after_children_modified_tag: new Date().getTime()
16910
+ });
16728
16911
  }
16729
16912
  else{
16730
16913
  lastestFieldValue.splice(currentIndex, 1);
@@ -16814,6 +16997,9 @@ const getAmisInputTableSchema = async (props) => {
16814
16997
  if (!props.id) {
16815
16998
  props.id = "steedos_input_table_" + props.name + "_" + Math.random().toString(36).substr(2, 9);
16816
16999
  }
17000
+ if (!props.primaryKey) {
17001
+ props.primaryKey = "_id";
17002
+ }
16817
17003
  let serviceId = getComponentId("table_service", props.id);
16818
17004
  let buttonsForColumnOperations = [];
16819
17005
  let inlineEditMode = props.inlineEditMode;
@@ -16864,7 +17050,13 @@ const getAmisInputTableSchema = async (props) => {
16864
17050
  "strictMode": props.strictMode,
16865
17051
  "showTableAddBtn": false,
16866
17052
  "showFooterAddBtn": false,
16867
- "className": props.tableClassName
17053
+ "className": props.tableClassName,
17054
+ "pipeOut": (value, data) => {
17055
+ return (value || []).map(function(item){
17056
+ delete item.__fix_rerender_after_children_modified_tag;
17057
+ return item;
17058
+ });
17059
+ }
16868
17060
  };
16869
17061
  if (buttonsForColumnOperations.length) {
16870
17062
  inputTableSchema.columns.push({
@@ -19654,9 +19846,11 @@ var index_esm$1 = /*#__PURE__*/Object.freeze({
19654
19846
  getObjectRelatedList: getObjectRelatedList,
19655
19847
  getObjectRelatedListButtons: getObjectRelatedListButtons,
19656
19848
  getObjectRelatedListHeader: getObjectRelatedListHeader,
19849
+ getObjectRelatedListsMiniSchema: getObjectRelatedListsMiniSchema,
19657
19850
  getPage: getPage,
19658
19851
  getRecord: getRecord,
19659
19852
  getRecordDetailHeaderSchema: getRecordDetailHeaderSchema,
19853
+ getRecordDetailMiniSchema: getRecordDetailMiniSchema,
19660
19854
  getRecordDetailRelatedListSchema: getRecordDetailRelatedListSchema,
19661
19855
  getRecordDetailSchema: getRecordDetailSchema,
19662
19856
  getRecordPageInitSchema: getRecordPageInitSchema,
@@ -19838,7 +20032,7 @@ var AmisObjectFieldLookup = function (props) {
19838
20032
  };
19839
20033
 
19840
20034
  var AmisObjectButton = function (props) {
19841
- // console.log(`AmisObjectButton`, props)
20035
+ // console.log(`AmisObjectButton=====》`, props)
19842
20036
  var objectName = props.objectName, name = props.name, data = props.data, render = props.render, className = props.className, listViewId = props.listViewId;
19843
20037
  var _a = __read(React.useState(), 2), button = _a[0], setButton = _a[1];
19844
20038
  var _b = __read(React.useState(), 2), uiSchema = _b[0], setUiSchema = _b[1];
@@ -20199,7 +20393,8 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
20199
20393
  formData.recordId = props.recordId;
20200
20394
  }
20201
20395
  amisSchema.className = "steedos-object-form ".concat(className);
20202
- amisSchema.data = Object.assign(amisSchema.data, formData, { global: globalData, uiSchema: uiSchema });
20396
+ // console.log('AmisObjectForm amisSchema======>', amisSchema)
20397
+ amisSchema.data = Object.assign({}, amisSchema.data || {}, formData, { global: globalData, uiSchema: uiSchema });
20203
20398
  if (_$1.has(props, 'objectApiName')) {
20204
20399
  amisSchema.data.objectName = objectApiName;
20205
20400
  }
@@ -20546,11 +20741,11 @@ var AmisObjectCalendar = function (props) { return __awaiter(void 0, void 0, voi
20546
20741
  }); };
20547
20742
 
20548
20743
  var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20549
- var _a, className, schemaFilter, objectUiSchema, defaultOnEvent, recordId, _b, onEvent, _c, showRecordTitle, objectApiName, schema, config, schemaFilterFun, _config, e_1;
20744
+ var _a, className, schemaFilter, showButtons, showBackButton, objectUiSchema, defaultOnEvent, recordId, _b, onEvent, _c, showRecordTitle, objectApiName, schema, config, schemaFilterFun, _config, e_1;
20550
20745
  return __generator(this, function (_d) {
20551
20746
  switch (_d.label) {
20552
20747
  case 0:
20553
- _a = props.className, className = _a === void 0 ? 'sm:sticky top-0 z-10 bg-gray-100 border-b sm:rounded sm:border border-gray-300 p-4' : _a, schemaFilter = props.schemaFilter;
20748
+ _a = props.className, className = _a === void 0 ? 'sm:sticky top-0 z-10 bg-gray-100 border-b sm:rounded sm:border border-gray-300 p-0' : _a, schemaFilter = props.schemaFilter, showButtons = props.showButtons, showBackButton = props.showBackButton;
20554
20749
  return [4 /*yield*/, getUISchema(props.objectApiName || "space_users", false)];
20555
20750
  case 1:
20556
20751
  objectUiSchema = _d.sent();
@@ -20573,7 +20768,7 @@ var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0,
20573
20768
  };
20574
20769
  props.$schema, recordId = props.recordId, _b = props.onEvent, onEvent = _b === void 0 ? defaultOnEvent : _b, _c = props.showRecordTitle, showRecordTitle = _c === void 0 ? true : _c;
20575
20770
  objectApiName = props.objectApiName || "space_users";
20576
- return [4 /*yield*/, getRecordDetailHeaderSchema(objectApiName, recordId, { showRecordTitle: showRecordTitle, formFactor: props.data.formFactor })];
20771
+ return [4 /*yield*/, getRecordDetailHeaderSchema(objectApiName, recordId, { showRecordTitle: showRecordTitle, formFactor: props.data.formFactor, showButtons: showButtons, showBackButton: showBackButton })];
20577
20772
  case 2:
20578
20773
  schema = (_d.sent()).amisSchema;
20579
20774
  schema.className = className;
@@ -20592,18 +20787,20 @@ var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0,
20592
20787
  e_1 = _d.sent();
20593
20788
  console.warn(e_1);
20594
20789
  return [3 /*break*/, 6];
20595
- case 6: return [2 /*return*/, config];
20790
+ case 6:
20791
+ // console.log(`AmisRecordDetailHeader==>`, config)
20792
+ return [2 /*return*/, config];
20596
20793
  }
20597
20794
  });
20598
20795
  }); };
20599
20796
 
20600
20797
  var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20601
- var className, $schema, appId, _a, objectApiName, body, schema;
20798
+ var className, $schema, appId, _a, objectApiName, body, showButtons, showBackButton, schema;
20602
20799
  return __generator(this, function (_b) {
20603
20800
  switch (_b.label) {
20604
20801
  case 0:
20605
- className = props.className, $schema = props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, props.recordId, props.onEvent, props.defaultData, body = props.body;
20606
- return [4 /*yield*/, getRecordDetailSchema(objectApiName, appId)];
20802
+ className = props.className, $schema = props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, props.recordId, props.onEvent, props.defaultData, body = props.body, showButtons = props.showButtons, showBackButton = props.showBackButton;
20803
+ return [4 /*yield*/, getRecordDetailSchema(objectApiName, appId, { showButtons: showButtons, showBackButton: showBackButton })];
20607
20804
  case 1:
20608
20805
  schema = (_b.sent()).amisSchema;
20609
20806
  // 在非记录页组件下全局作用域下无recordId,会导致表单接口sendOn始终为false,无法发起请求。
@@ -20613,8 +20810,17 @@ var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void
20613
20810
  // }
20614
20811
  // schema.data = Object.assign({}, schema.data, recordDetailData);
20615
20812
  if (_$1.has(props, "recordId") && $schema.recordId !== "${recordId}") {
20813
+ if (!schema.data) {
20814
+ schema.data = {};
20815
+ }
20616
20816
  schema.data.recordId = props.recordId;
20617
20817
  }
20818
+ if (_$1.has(props, "objectApiName") && props.objectApiName && $schema.objectApiName !== "${objectName}") {
20819
+ if (!schema.data) {
20820
+ schema.data = {};
20821
+ }
20822
+ schema.data.objectName = props.objectApiName;
20823
+ }
20618
20824
  schema.className = className;
20619
20825
  if (body) {
20620
20826
  schema.body = body;
@@ -20628,21 +20834,31 @@ var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void
20628
20834
  /*
20629
20835
  * @Author: baozhoutao@steedos.com
20630
20836
  * @Date: 2022-12-08 10:32:17
20631
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
20632
- * @LastEditTime: 2023-04-14 11:30:21
20837
+ * @LastEditors: baozhoutao@steedos.com
20838
+ * @LastEditTime: 2024-01-15 15:52:55
20633
20839
  * @Description:
20634
20840
  */
20635
20841
  var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20636
- var className, _a, objectApiName, body, style, schema;
20842
+ var className, $schema, appId, _a, objectApiName, body, style, recordId, options, schema;
20637
20843
  return __generator(this, function (_b) {
20638
20844
  switch (_b.label) {
20639
20845
  case 0:
20640
- className = props.className, props.$schema, props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, props.recordId, props.fields, body = props.body, style = props.style;
20641
- return [4 /*yield*/, getRecordServiceSchema(objectApiName)];
20846
+ className = props.className, $schema = props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, props.fields, body = props.body, style = props.style, props.onEvent, recordId = props.recordId;
20847
+ if (_$1.has($schema.data, "recordId") && $schema.data.recordId !== "${recordId}") {
20848
+ recordId = $schema.data.recordId;
20849
+ }
20850
+ if (_$1.has($schema.data, "objectName") && $schema.data.objectName !== "${objectName}") {
20851
+ objectApiName = $schema.data.objectName;
20852
+ }
20853
+ options = { onEvent: $schema.onEvent, data: $schema.data, recordId: recordId };
20854
+ if (props.$$editor) {
20855
+ options.isEditor = true;
20856
+ }
20857
+ return [4 /*yield*/, getRecordServiceSchema(objectApiName, appId, options)];
20642
20858
  case 1:
20643
20859
  schema = (_b.sent()).amisSchema;
20644
20860
  if (body) {
20645
- schema.body = body;
20861
+ schema.body.body = body;
20646
20862
  }
20647
20863
  if (className) {
20648
20864
  schema.className = className;
@@ -20650,6 +20866,7 @@ var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void
20650
20866
  if (style) {
20651
20867
  Object.assign(schema.style, style);
20652
20868
  }
20869
+ // console.log(`AmisRecordService====schema==>`, schema)
20653
20870
  return [2 /*return*/, schema];
20654
20871
  }
20655
20872
  });
@@ -20706,7 +20923,7 @@ var AmisRecordDetailRelatedList = function (props) { return __awaiter(void 0, vo
20706
20923
  }); };
20707
20924
 
20708
20925
  var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20709
- var $schema, objectApiName, recordId, _a, perPage, relatedLists, staticRecordId;
20926
+ var $schema, objectApiName, recordId, _a, perPage, formFactor, relatedLists, staticRecordId;
20710
20927
  return __generator(this, function (_b) {
20711
20928
  switch (_b.label) {
20712
20929
  case 0:
@@ -20721,7 +20938,10 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
20721
20938
  "className": "mb-3"
20722
20939
  }];
20723
20940
  }
20724
- props.formFactor;
20941
+ formFactor = props.formFactor;
20942
+ if (!formFactor) {
20943
+ formFactor = window.innerWidth < 768 ? 'SMALL' : 'LARGE';
20944
+ }
20725
20945
  return [4 /*yield*/, getObjectRelatedList(objectApiName)];
20726
20946
  case 1:
20727
20947
  relatedLists = _b.sent();
@@ -20734,11 +20954,12 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
20734
20954
  "className": "mb-3"
20735
20955
  }];
20736
20956
  }
20737
- staticRecordId = '';
20957
+ staticRecordId = props.staticRecordId;
20738
20958
  // 在设计器中的设计状态,当上层有recordId具体值,相关表组件的$schema.recordId的默认值就是 "${recordId}"; 会导致获取不到 _master, 进而导致组件显示不了数据。
20739
20959
  if (_$1.has(props, "recordId") && ($schema.recordId !== "${recordId}" || (props.$$editor && props.recordId !== "${recordId}"))) {
20740
20960
  staticRecordId = recordId;
20741
20961
  }
20962
+ // console.log('relatedLists======>', relatedLists, staticRecordId)
20742
20963
  return [2 /*return*/, {
20743
20964
  type: 'service',
20744
20965
  className: "steedos-record-detail-related-lists",
@@ -20747,6 +20968,7 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
20747
20968
  type: 'steedos-object-related-listview',
20748
20969
  objectApiName: objectApiName,
20749
20970
  // recordId: recordId,
20971
+ formFactor: formFactor,
20750
20972
  relatedObjectApiName: item.object_name,
20751
20973
  foreign_key: item.foreign_key,
20752
20974
  relatedKey: item.foreign_key,
@@ -20761,6 +20983,7 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
20761
20983
  if (staticRecordId) {
20762
20984
  relatedList.recordId = staticRecordId;
20763
20985
  }
20986
+ // console.log('relatedList=====>', relatedList)
20764
20987
  return relatedList;
20765
20988
  })
20766
20989
  }];
@@ -21924,14 +22147,14 @@ function getAmisStaticFieldType(type, data_type, options) {
21924
22147
  return type;
21925
22148
  }
21926
22149
  var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void 0, function () {
21927
- var steedosField, field, _a, readonly, _b, ctx, config, fStatic, env, inInputTable, defaultSource, source, fieldBaseProps, tpl_1, res, valueOptions, fieldValue_1, reference_to_field_1, schema, fieldSchema, fieldValue, hasImageOrFile_1, fieldHtml_1, schema, tableFields, _c, _d, subField, subFieldName, fieldAmis, schema, error_1;
21928
- var e_1, _e;
21929
- var _f, _g, _h, _j, _k;
21930
- return __generator(this, function (_l) {
21931
- switch (_l.label) {
22150
+ var steedosField, field, _a, readonly, _b, ctx, config, fStatic, env, inInputTable, className, defaultSource, source, fieldBaseProps, referenceTo_1, fieldRefObject, disPlayValue, res, valueOptions_1, fieldValue, values, disPlayValue_1, schema, fieldSchema, fieldValue, hasImageOrFile_1, fieldHtml_1, schema, tableFields, _c, _d, subField, subFieldName, fieldAmis, schema, error_1;
22151
+ var _e, e_1, _f;
22152
+ var _g, _h, _j, _k, _l;
22153
+ return __generator(this, function (_m) {
22154
+ switch (_m.label) {
21932
22155
  case 0:
21933
22156
  steedosField = null;
21934
- field = props.field, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.ctx, ctx = _b === void 0 ? {} : _b, config = props.config, props.$schema, fStatic = props.static, env = props.env, inInputTable = props.inInputTable;
22157
+ field = props.field, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.ctx, ctx = _b === void 0 ? {} : _b, config = props.config, props.$schema, fStatic = props.static, env = props.env, inInputTable = props.inInputTable, className = props.className;
21935
22158
  // console.log(`AmisSteedosField`, props)
21936
22159
  // if($schema.config && isString($schema.config)){
21937
22160
  // $schema.config = JSON.parse($schema.config)
@@ -21959,14 +22182,14 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
21959
22182
  // 字段配置为只读,强制走fStatic模式,加上_display判断是为了不影响历史代码,比如直接在ObjectForm中调用steedos-field组件
21960
22183
  fStatic = true;
21961
22184
  }
21962
- _l.label = 1;
22185
+ _m.label = 1;
21963
22186
  case 1:
21964
- _l.trys.push([1, 21, , 22]);
21965
- if (!(fStatic && (steedosField.type === 'lookup' || steedosField.type === 'master_detail'))) return [3 /*break*/, 5];
22187
+ _m.trys.push([1, 23, , 24]);
22188
+ if (!(fStatic && (steedosField.type === 'lookup' || steedosField.type === 'master_detail'))) return [3 /*break*/, 7];
21966
22189
  defaultSource = {
21967
22190
  "method": "post",
21968
22191
  "url": "${context.rootUrl}/graphql",
21969
- "requestAdaptor": "\n var steedosField = ".concat(JSON.stringify(steedosField), ";\n var objectName, filters, valueFieldKey, labelFieldKey;\n if(_.isString(steedosField.reference_to)){\n // reference_to\u4E3A\u5355\u9009\n const referenceTo = getReferenceToSync(steedosField);\n const referenceToField = steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = _.get(api.data, steedosField.name);\n if(_.isString(value)){\n value = [value]\n }\n filters = [referenceToField, \"in\", value || []];\n if(objectName == \"object_fields\" || objectName == \"object_actions\"){\n //\u5BF9\u8C61\u4E3Aobject_fields\u65F6\uFF0C\u5FC5\u987B\u52A0\u4E0Aobject\u7684\u8FC7\u6EE4\u6761\u4EF6\n const filtersFunction = ").concat(steedosField.filtersFunction || steedosField._filtersFunction, ";\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data);\n if(_filters && _filters.length > 0){\n filters = [filters,_filters]\n }\n }\n }\n }else{\n // reference_to\u4E3A\u591A\u9009\n const _steedosField = {\n ...steedosField,\n reference_to: api.data[steedosField.name].o\n }\n const referenceTo = getReferenceToSync(_steedosField);\n const referenceToField = _steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[_steedosField.name] && api.data[_steedosField.name].ids;\n filters = [referenceToField, \"in\", value || []];\n }\n api.data = {\n query: '{options:' + objectName + '(filters: ' + JSON.stringify(filters) + '){label: ' + labelFieldKey + ',value: ' + valueFieldKey + '}}'\n }\n return api;\n "),
22192
+ "requestAdaptor": "\n var steedosField = ".concat(JSON.stringify(steedosField), ";\n // console.log('defaultSource====>steedosField', steedosField);\n var objectName, filters, valueFieldKey, labelFieldKey;\n if(_.isString(steedosField.reference_to)){\n // reference_to\u4E3A\u5355\u9009\n const referenceTo = getReferenceToSync(steedosField);\n const referenceToField = steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = _.get(api.data, steedosField.name);\n if(_.isString(value)){\n value = [value]\n }\n filters = [referenceToField, \"in\", value || []];\n if(objectName == \"object_fields\" || objectName == \"object_actions\"){\n //\u5BF9\u8C61\u4E3Aobject_fields\u65F6\uFF0C\u5FC5\u987B\u52A0\u4E0Aobject\u7684\u8FC7\u6EE4\u6761\u4EF6\n const filtersFunction = ").concat(steedosField.filtersFunction || steedosField._filtersFunction, ";\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data);\n if(_filters && _filters.length > 0){\n filters = [filters,_filters]\n }\n }\n }\n }else{\n // reference_to\u4E3A\u591A\u9009\n const _steedosField = {\n ...steedosField,\n reference_to: api.data[steedosField.name].o\n }\n const referenceTo = getReferenceToSync(_steedosField);\n const referenceToField = _steedosField.reference_to_field || '_id';\n\n objectName = referenceTo.objectName\n valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n let value = api.data[_steedosField.name] && api.data[_steedosField.name].ids;\n filters = [referenceToField, \"in\", value || []];\n }\n\n // \u989D\u5916\u8FD4\u56DE_id\u5B57\u6BB5\n api.data = {\n query: '{options:' + objectName + '(filters: ' + JSON.stringify(filters) + '){label: ' + labelFieldKey + ',value: ' + valueFieldKey + ', _id}}'\n }\n return api;\n "),
21970
22193
  "trackExpression": "${" + steedosField.name + "}",
21971
22194
  "cache": 3000
21972
22195
  };
@@ -21983,50 +22206,165 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
21983
22206
  defaultSource.adaptor = "\n var options = ".concat(JSON.stringify(steedosField.options), "\n if(api.body.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.body.$term.toLowerCase()) > -1;\n });\n }\n if(!payload.data){\n payload.data = {};\n }\n payload.data.options = options;\n return payload;\n ");
21984
22207
  }
21985
22208
  }
21986
- source = ((_f = steedosField.amis) === null || _f === void 0 ? void 0 : _f.source) || ((_g = steedosField.amis) === null || _g === void 0 ? void 0 : _g.autoComplete) || defaultSource;
22209
+ source = ((_g = steedosField.amis) === null || _g === void 0 ? void 0 : _g.source) || ((_h = steedosField.amis) === null || _h === void 0 ? void 0 : _h.autoComplete) || defaultSource;
21987
22210
  fieldBaseProps = {
21988
22211
  multiple: steedosField.multiple,
21989
22212
  name: steedosField.name,
21990
22213
  label: steedosField.label,
21991
22214
  static: true,
21992
- className: (_h = steedosField.amis) === null || _h === void 0 ? void 0 : _h.className
22215
+ className: "".concat(className || '', " ").concat(((_j = steedosField.amis) === null || _j === void 0 ? void 0 : _j.className) || '')
21993
22216
  };
21994
22217
  if (!inInputTable) return [3 /*break*/, 2];
21995
22218
  fieldBaseProps = Object.assign({}, fieldBaseProps, { type: 'select', source: source });
21996
- return [3 /*break*/, 4];
22219
+ return [3 /*break*/, 6];
21997
22220
  case 2:
21998
- tpl_1 = '';
21999
- return [4 /*yield*/, env.fetcher(source, props.data)];
22221
+ referenceTo_1 = steedosField.reference_to;
22222
+ steedosField.reference_to_field;
22223
+ if (referenceTo_1 === 'users') {
22224
+ referenceTo_1 = 'space_users';
22225
+ }
22226
+ return [4 /*yield*/, getUISchema(referenceTo_1)];
22000
22227
  case 3:
22001
- res = _l.sent();
22002
- valueOptions = ((_j = res === null || res === void 0 ? void 0 : res.data) === null || _j === void 0 ? void 0 : _j.options) || [];
22003
- fieldValue_1 = (_k = props.data) === null || _k === void 0 ? void 0 : _k[steedosField.name];
22004
- if (fieldValue_1 && fieldValue_1.length && valueOptions && valueOptions.length) {
22005
- reference_to_field_1 = steedosField.reference_to_field;
22006
- _$1.forEach(valueOptions, function (item, index) {
22007
- var label = item.label, value = item.value;
22008
- if (fieldValue_1.indexOf(value) > -1) {
22009
- // 因为lookup、master_detail字段配置了reference_to_field != _id的情况下,source中返回的值不能当作链接的后缀值,所以移除字段链接。
22010
- var optionTpl = "<a href=\"/app/-/".concat(steedosField.reference_to, "/view/").concat(value, "\" >").concat(label, "</a>");
22011
- if (reference_to_field_1 && reference_to_field_1 != '_id') {
22012
- optionTpl = "".concat(label);
22013
- }
22014
- tpl_1 += tpl_1 ? ',' + optionTpl : optionTpl;
22228
+ fieldRefObject = _m.sent();
22229
+ if (!(props.data._display && _$1.has(props.data._display, steedosField.name))) return [3 /*break*/, 4];
22230
+ disPlayValue = props.data._display[steedosField.name];
22231
+ if (disPlayValue) {
22232
+ if (!_$1.isArray(disPlayValue) && _$1.isObject(disPlayValue)) {
22233
+ disPlayValue = [disPlayValue];
22234
+ }
22235
+ fieldBaseProps = Object.assign({}, fieldBaseProps, {
22236
+ type: 'control',
22237
+ name: null,
22238
+ body: {
22239
+ type: 'wrapper',
22240
+ className: "steedos-field-lookup-wrapper p-0",
22241
+ "wrapWithPanel": false,
22242
+ "actions": [],
22243
+ body: [
22244
+ {
22245
+ type: 'each',
22246
+ className: "steedos-field-lookup-each flex flex-wrap gap-2",
22247
+ source: "${_display.".concat(steedosField.name, "|asArray}"),
22248
+ items: {
22249
+ type: 'static',
22250
+ className: 'm-0',
22251
+ tpl: "<a href=\"/app/-/${objectName}/view/${value}\" target=\"_blank\">${label}</a>",
22252
+ popOver: fieldRefObject.compactLayouts ? {
22253
+ "trigger": "hover",
22254
+ "className": "steedos-record-detail-popover",
22255
+ "position": "left-bottom",
22256
+ "showIcon": false,
22257
+ "title": false,
22258
+ "offset": {
22259
+ "top": 0,
22260
+ "left": 20
22261
+ },
22262
+ "body": [
22263
+ {
22264
+ "type": "steedos-record-mini",
22265
+ "objectApiName": "${objectName}",
22266
+ "recordId": "${value}",
22267
+ "showButtons": false,
22268
+ "showBackButton": false,
22269
+ "data": {
22270
+ "objectName": "${objectName}",
22271
+ "recordId": "${value}"
22272
+ }
22273
+ }
22274
+ ]
22275
+ } : null
22276
+ }
22277
+ }
22278
+ ]
22015
22279
  }
22016
22280
  });
22017
22281
  }
22018
- fieldBaseProps = Object.assign({}, fieldBaseProps, { type: 'static', tpl: tpl_1 });
22019
- _l.label = 4;
22020
- case 4:
22282
+ else {
22283
+ fieldBaseProps = Object.assign({}, fieldBaseProps, { type: 'static', tpl: '-', className: "".concat(fieldBaseProps.className || '', " text-muted") });
22284
+ }
22285
+ return [3 /*break*/, 6];
22286
+ case 4: return [4 /*yield*/, env.fetcher(source, props.data)];
22287
+ case 5:
22288
+ res = _m.sent();
22289
+ valueOptions_1 = ((_k = res === null || res === void 0 ? void 0 : res.data) === null || _k === void 0 ? void 0 : _k.options) || [];
22290
+ fieldValue = (_l = props.data) === null || _l === void 0 ? void 0 : _l[steedosField.name];
22291
+ values = fieldValue;
22292
+ if (_$1.isString(values)) {
22293
+ values = [values];
22294
+ }
22295
+ if (values && values.length > 0) {
22296
+ disPlayValue_1 = [];
22297
+ _$1.each(values, function (value) {
22298
+ var option = valueOptions_1.find(function (item) { return item.value === value; });
22299
+ if (option) {
22300
+ disPlayValue_1.push({
22301
+ objectName: referenceTo_1,
22302
+ value: option._id || option.value,
22303
+ label: option.label
22304
+ });
22305
+ }
22306
+ });
22307
+ fieldBaseProps = Object.assign({}, fieldBaseProps, { type: 'control', name: null, body: {
22308
+ type: 'form',
22309
+ className: "steedos-field-lookup-wrapper p-0",
22310
+ "wrapWithPanel": false,
22311
+ "actions": [],
22312
+ data: (_e = {},
22313
+ _e[steedosField.name] = disPlayValue_1,
22314
+ _e),
22315
+ body: [
22316
+ {
22317
+ type: 'each',
22318
+ className: "steedos-field-lookup-each flex flex-wrap gap-2",
22319
+ source: "${".concat(steedosField.name, "}"),
22320
+ items: {
22321
+ type: 'static',
22322
+ className: 'm-0',
22323
+ tpl: "<a href=\"/app/-/${objectName}/view/${value}\" target=\"_blank\">${label}</a>",
22324
+ popOver: fieldRefObject.compactLayouts ? {
22325
+ "trigger": "hover",
22326
+ "className": "steedos-record-detail-popover",
22327
+ "position": "left-bottom",
22328
+ "showIcon": false,
22329
+ "title": false,
22330
+ "offset": {
22331
+ "top": 0,
22332
+ "left": 20
22333
+ },
22334
+ "body": [
22335
+ {
22336
+ "type": "steedos-record-mini",
22337
+ "objectApiName": "${objectName}",
22338
+ "recordId": "${value}",
22339
+ "showButtons": false,
22340
+ "showBackButton": false,
22341
+ "data": {
22342
+ "objectName": "${objectName}",
22343
+ "recordId": "${value}"
22344
+ }
22345
+ }
22346
+ ]
22347
+ } : null
22348
+ }
22349
+ }
22350
+ ]
22351
+ } });
22352
+ }
22353
+ else {
22354
+ fieldBaseProps = Object.assign({}, fieldBaseProps, { type: 'static', tpl: '-', className: "".concat(fieldBaseProps.className || '', " text-muted") });
22355
+ }
22356
+ _m.label = 6;
22357
+ case 6:
22021
22358
  schema = Object.assign({}, fieldBaseProps, _$1.pick(steedosField.amis || {}, ['className', 'inline', 'label', 'labelAlign', 'name', 'labelRemark', 'description', 'placeholder', 'staticClassName', 'staticLabelClassName', 'staticInputClassName', 'staticSchema']));
22022
22359
  schema.placeholder = "";
22360
+ // console.log(`steedos field [lookup] schema:`, schema)
22023
22361
  return [2 /*return*/, schema];
22024
- case 5:
22025
- if (!fStatic) return [3 /*break*/, 18];
22026
- if (!props.data.hasOwnProperty("_display")) return [3 /*break*/, 7];
22362
+ case 7:
22363
+ if (!fStatic) return [3 /*break*/, 20];
22364
+ if (!props.data.hasOwnProperty("_display")) return [3 /*break*/, 9];
22027
22365
  return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
22028
- case 6:
22029
- fieldSchema = _l.sent();
22366
+ case 8:
22367
+ fieldSchema = _m.sent();
22030
22368
  if (steedosField.type === 'file' && fieldSchema.disabled) {
22031
22369
  fieldValue = fieldSchema.value;
22032
22370
  if (fieldValue && fieldValue.length) {
@@ -22062,52 +22400,52 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
22062
22400
  }
22063
22401
  }
22064
22402
  return [2 /*return*/, fieldSchema];
22065
- case 7:
22403
+ case 9:
22066
22404
  schema = Object.assign({}, steedosField, {
22067
22405
  type: getAmisStaticFieldType(steedosField.type, steedosField.data_type, steedosField),
22068
22406
  static: true,
22069
22407
  label: steedosField.label
22070
22408
  });
22071
- if (!(steedosField.type === "time")) return [3 /*break*/, 8];
22409
+ if (!(steedosField.type === "time")) return [3 /*break*/, 10];
22072
22410
  Object.assign(schema, {
22073
22411
  inputFormat: 'HH:mm',
22074
22412
  timeFormat: 'HH:mm',
22075
22413
  format: '1970-01-01THH:mm:00.000[Z]',
22076
22414
  });
22077
- return [3 /*break*/, 17];
22078
- case 8:
22079
- if (!(steedosField.type === "percent")) return [3 /*break*/, 9];
22415
+ return [3 /*break*/, 19];
22416
+ case 10:
22417
+ if (!(steedosField.type === "percent")) return [3 /*break*/, 11];
22080
22418
  Object.assign(schema, {
22081
22419
  "percent": steedosField.scale ? steedosField.scale : true
22082
22420
  });
22083
- return [3 /*break*/, 17];
22084
- case 9:
22085
- if (!(steedosField.type === "password")) return [3 /*break*/, 10];
22421
+ return [3 /*break*/, 19];
22422
+ case 11:
22423
+ if (!(steedosField.type === "password")) return [3 /*break*/, 12];
22086
22424
  Object.assign(schema, {
22087
22425
  "revealPassword": false //没生效,需要用样式隐藏
22088
22426
  });
22089
- return [3 /*break*/, 17];
22090
- case 10:
22091
- if (!(steedosField.type === "select")) return [3 /*break*/, 11];
22427
+ return [3 /*break*/, 19];
22428
+ case 12:
22429
+ if (!(steedosField.type === "select")) return [3 /*break*/, 13];
22092
22430
  Object.assign(schema, {
22093
22431
  "placeholder": ""
22094
22432
  });
22095
- return [3 /*break*/, 17];
22096
- case 11:
22097
- if (!(steedosField.type === "color")) return [3 /*break*/, 12];
22433
+ return [3 /*break*/, 19];
22434
+ case 13:
22435
+ if (!(steedosField.type === "color")) return [3 /*break*/, 14];
22098
22436
  Object.assign(schema, {
22099
22437
  "defaultColor": null
22100
22438
  });
22101
- return [3 /*break*/, 17];
22102
- case 12:
22103
- if (!(steedosField.type === "number")) return [3 /*break*/, 13];
22439
+ return [3 /*break*/, 19];
22440
+ case 14:
22441
+ if (!(steedosField.type === "number")) return [3 /*break*/, 15];
22104
22442
  // amis input-number和number组件中的precision表示小数位数,并不是魔方平台的精度概念,要转换下,否则小数点后会显示很多的0
22105
22443
  Object.assign(schema, {
22106
22444
  "precision": steedosField.scale || 0
22107
22445
  });
22108
- return [3 /*break*/, 17];
22109
- case 13:
22110
- if (!(steedosField.type === "table")) return [3 /*break*/, 14];
22446
+ return [3 /*break*/, 19];
22447
+ case 15:
22448
+ if (!(steedosField.type === "table")) return [3 /*break*/, 16];
22111
22449
  if (steedosField.subFields) {
22112
22450
  tableFields = [];
22113
22451
  try {
@@ -22123,7 +22461,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
22123
22461
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
22124
22462
  finally {
22125
22463
  try {
22126
- if (_d && !_d.done && (_e = _c.return)) _e.call(_c);
22464
+ if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
22127
22465
  }
22128
22466
  finally { if (e_1) throw e_1.error; }
22129
22467
  }
@@ -22140,9 +22478,9 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
22140
22478
  }
22141
22479
  });
22142
22480
  }
22143
- return [3 /*break*/, 17];
22144
- case 14:
22145
- if (!(steedosField.type === "image")) return [3 /*break*/, 15];
22481
+ return [3 /*break*/, 19];
22482
+ case 16:
22483
+ if (!(steedosField.type === "image")) return [3 /*break*/, 17];
22146
22484
  Object.assign(schema, {
22147
22485
  enlargeAble: true,
22148
22486
  showToolbar: true,
@@ -22173,18 +22511,18 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
22173
22511
  return value;
22174
22512
  }
22175
22513
  });
22176
- return [3 /*break*/, 17];
22177
- case 15:
22178
- if (!(steedosField.type === "file")) return [3 /*break*/, 17];
22514
+ return [3 /*break*/, 19];
22515
+ case 17:
22516
+ if (!(steedosField.type === "file")) return [3 /*break*/, 19];
22179
22517
  return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
22180
- case 16:
22518
+ case 18:
22181
22519
  // 附件static模式先保持原来的逻辑,依赖_display,审批王中相关功能在creator中
22182
22520
  // convertSFieldToAmisField中会合并steedosField.amis,所以也不需要再次合并steedosField.amis,直接return就好
22183
- return [2 /*return*/, _l.sent()];
22184
- case 17:
22521
+ return [2 /*return*/, _m.sent()];
22522
+ case 19:
22185
22523
  Object.assign(schema, steedosField.amis || {});
22186
22524
  return [2 /*return*/, schema];
22187
- case 18:
22525
+ case 20:
22188
22526
  fieldAmis = steedosField.amis || {};
22189
22527
  if (!props.data.hasOwnProperty("_display")) {
22190
22528
  // 有_display时保持原来的逻辑不变,不走以下新的逻辑,审批王中会特意传入_display以跳过后面新加的代码
@@ -22242,16 +22580,16 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
22242
22580
  }
22243
22581
  }
22244
22582
  return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
22245
- case 19:
22246
- schema = _l.sent();
22583
+ case 21:
22584
+ schema = _m.sent();
22247
22585
  // console.log(`AmisSteedosField return schema`, schema)
22248
22586
  return [2 /*return*/, schema];
22249
- case 20: return [3 /*break*/, 22];
22250
- case 21:
22251
- error_1 = _l.sent();
22587
+ case 22: return [3 /*break*/, 24];
22588
+ case 23:
22589
+ error_1 = _m.sent();
22252
22590
  console.log("error", error_1);
22253
- return [3 /*break*/, 22];
22254
- case 22: return [2 /*return*/, null];
22591
+ return [3 /*break*/, 24];
22592
+ case 24: return [2 /*return*/, null];
22255
22593
  }
22256
22594
  });
22257
22595
  }); };
@@ -22494,7 +22832,7 @@ var AmisInputTable = function (props) { return __awaiter(void 0, void 0, void 0,
22494
22832
  return __generator(this, function (_a) {
22495
22833
  switch (_a.label) {
22496
22834
  case 0:
22497
- props.$schema, props.fields, props.name, props.id, props.data, props.columns, props.amis, props.className, props.tableClassName, props.headerToolbar, props.footerToolbar, props.inlineEditMode, props.strictMode, props.dialog;
22835
+ props.$schema, props.fields, props.name, props.id, props.data, props.columns, props.amis, props.className, props.tableClassName, props.headerToolbar, props.footerToolbar, props.inlineEditMode, props.strictMode, props.dialog, props.primaryKey;
22498
22836
  return [4 /*yield*/, getAmisInputTableSchema(props)];
22499
22837
  case 1:
22500
22838
  amisSchema = _a.sent();
@@ -22504,6 +22842,46 @@ var AmisInputTable = function (props) { return __awaiter(void 0, void 0, void 0,
22504
22842
  });
22505
22843
  }); };
22506
22844
 
22845
+ var AmisRecordDetailMini = function (props) { return __awaiter(void 0, void 0, void 0, function () {
22846
+ var $schema, appId, _a, objectApiName, recordId, schemaData, options, schema;
22847
+ return __generator(this, function (_b) {
22848
+ switch (_b.label) {
22849
+ case 0:
22850
+ props.className, $schema = props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, props.fields, props.body, props.style, props.onEvent, recordId = props.recordId;
22851
+ schemaData = {};
22852
+ if (_$1.has(props.data, "recordId") && props.data.recordId !== "${recordId}") {
22853
+ recordId = props.data.recordId;
22854
+ schemaData.recordId = recordId;
22855
+ }
22856
+ if (_$1.has(props.data, "value")) {
22857
+ recordId = props.data.value;
22858
+ schemaData.recordId = recordId;
22859
+ }
22860
+ if (_$1.has(props.data, "objectName") && props.data.objectName !== "${objectName}") {
22861
+ objectApiName = props.data.objectName;
22862
+ schemaData.objectName = objectApiName;
22863
+ }
22864
+ options = {
22865
+ onEvent: $schema.onEvent,
22866
+ data: $schema.data,
22867
+ recordId: recordId
22868
+ };
22869
+ if (props.$$editor) {
22870
+ options.isEditor = true;
22871
+ }
22872
+ console.log("AmisRecordDetailMini==2=>", objectApiName, options);
22873
+ return [4 /*yield*/, getRecordDetailMiniSchema(objectApiName, appId, options)];
22874
+ case 1:
22875
+ schema = _b.sent();
22876
+ if (!_$1.isEmpty(schemaData)) {
22877
+ schema.data = schemaData;
22878
+ }
22879
+ // console.log(`AmisRecordDetailMini===>`, schema)
22880
+ return [2 /*return*/, schema];
22881
+ }
22882
+ });
22883
+ }); };
22884
+
22507
22885
  var PageListView = function (props) { return __awaiter(void 0, void 0, void 0, function () {
22508
22886
  var formFactor, appId, objectApiName, display, data, _display, page, listSchema;
22509
22887
  return __generator(this, function (_b) {
@@ -22584,7 +22962,7 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
22584
22962
  "type": "steedos-record-detail",
22585
22963
  // "recordId": "${recordId}",
22586
22964
  "objectApiName": "${objectName}",
22587
- className: "sm:m-3",
22965
+ // className: "sm:m-3",
22588
22966
  appId: appId,
22589
22967
  }
22590
22968
  ],
@@ -22710,6 +23088,7 @@ exports.AmisObjectTable = AmisObjectTable;
22710
23088
  exports.AmisProvider = AmisProvider;
22711
23089
  exports.AmisRecordDetail = AmisRecordDetail;
22712
23090
  exports.AmisRecordDetailHeader = AmisRecordDetailHeader;
23091
+ exports.AmisRecordDetailMini = AmisRecordDetailMini;
22713
23092
  exports.AmisRecordDetailRelatedList = AmisRecordDetailRelatedList;
22714
23093
  exports.AmisRecordDetailRelatedLists = AmisRecordDetailRelatedLists;
22715
23094
  exports.AmisRecordService = AmisRecordService;