@steedos-widgets/amis-object 6.10.1-beta.31 → 6.10.1-beta.33

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.
@@ -3710,8 +3710,8 @@ function getComparableAmisVersion() {
3710
3710
  /*
3711
3711
  * @Author: baozhoutao@steedos.com
3712
3712
  * @Date: 2022-05-23 09:53:08
3713
- * @LastEditors: baozhoutao@steedos.com
3714
- * @LastEditTime: 2024-11-17 13:10:08
3713
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
3714
+ * @LastEditTime: 2025-04-08 10:55:41
3715
3715
  * @Description:
3716
3716
  */
3717
3717
 
@@ -3865,9 +3865,10 @@ function getRelatedFieldTpl(field, ctx){
3865
3865
  const href = Router$1.getObjectDetailPath({
3866
3866
  formFactor: ctx.formFactor, appId: "${appId}", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`
3867
3867
  });
3868
- if(ctx.isRelated && window.innerWidth >= 768){
3868
+ if (window.innerWidth >= 768) { //(ctx.isRelated || isObjectListview) && window.innerWidth >= 768
3869
+ // 相关表字段,包括列表视图、对象表格组件中的lookup/master_detail字段,在PC端显示时,点击字段值,不跳转到详情页而是右侧弹出drawer
3869
3870
  labelTpl = `<a href="${href}" ${linkTarget} onclick="return false;">${labelTpl}</a>`;
3870
- }else {
3871
+ } else {
3871
3872
  labelTpl = `<a href="${href}" ${linkTarget}>${labelTpl}</a>`;
3872
3873
  }
3873
3874
 
@@ -4665,6 +4666,7 @@ var frontend_download$1 = "Download";
4665
4666
  var frontend_form_save$1 = "Save";
4666
4667
  var frontend_form_save_and_new$1 = "Save and New";
4667
4668
  var frontend_form_cancel$1 = "Cancel";
4669
+ var frontend_form_reset$1 = "Reset";
4668
4670
  var frontend_form_new$1 = "New";
4669
4671
  var frontend_form_edit$1 = "Edit";
4670
4672
  var frontend_form_preview$1 = "Preview";
@@ -4683,7 +4685,7 @@ var frontend_display_type_is_split$1 = "Split View";
4683
4685
  var frontend_display_as$1 = "Displayed as";
4684
4686
  var frontend_record_sum$1 = "items";
4685
4687
  var frontend_button_reload_tooltip$1 = "Refresh";
4686
- var frontend_button_search_tooltip$1 = "Advanced Search";
4688
+ var frontend_button_search_tooltip$1 = "Filter";
4687
4689
  var frontend_fields_filter_button_search$1 = "Search";
4688
4690
  var frontend_fields_filter_button_settings$1 = "Set search options";
4689
4691
  var frontend_button_listview_control_tooltip$1 = "List View Controls";
@@ -4755,6 +4757,7 @@ var en_us = {
4755
4757
  frontend_form_save: frontend_form_save$1,
4756
4758
  frontend_form_save_and_new: frontend_form_save_and_new$1,
4757
4759
  frontend_form_cancel: frontend_form_cancel$1,
4760
+ frontend_form_reset: frontend_form_reset$1,
4758
4761
  frontend_form_new: frontend_form_new$1,
4759
4762
  frontend_form_edit: frontend_form_edit$1,
4760
4763
  frontend_form_preview: frontend_form_preview$1,
@@ -4846,6 +4849,7 @@ var frontend_download = "下载";
4846
4849
  var frontend_form_save = "保存";
4847
4850
  var frontend_form_save_and_new = "保存并新建";
4848
4851
  var frontend_form_cancel = "取消";
4852
+ var frontend_form_reset = "重置";
4849
4853
  var frontend_form_new = "新建";
4850
4854
  var frontend_form_edit = "编辑";
4851
4855
  var frontend_form_preview = "预览";
@@ -4864,7 +4868,7 @@ var frontend_display_type_is_split = "分栏视图";
4864
4868
  var frontend_display_as = "显示为";
4865
4869
  var frontend_record_sum = "个项目";
4866
4870
  var frontend_button_reload_tooltip = "刷新";
4867
- var frontend_button_search_tooltip = "高级搜索";
4871
+ var frontend_button_search_tooltip = "筛选";
4868
4872
  var frontend_fields_filter_button_search = "搜索";
4869
4873
  var frontend_fields_filter_button_settings = "选择搜索项";
4870
4874
  var frontend_button_listview_control_tooltip = "列表视图控制";
@@ -4937,6 +4941,7 @@ var zh_cn = {
4937
4941
  frontend_form_save: frontend_form_save,
4938
4942
  frontend_form_save_and_new: frontend_form_save_and_new,
4939
4943
  frontend_form_cancel: frontend_form_cancel,
4944
+ frontend_form_reset: frontend_form_reset,
4940
4945
  frontend_form_new: frontend_form_new,
4941
4946
  frontend_form_edit: frontend_form_edit,
4942
4947
  frontend_form_preview: frontend_form_preview,
@@ -5104,7 +5109,12 @@ async function getQuickEditSchema(object, columnField, options){
5104
5109
  if (field.disabled) {
5105
5110
  quickEditSchema = false;
5106
5111
  } else {
5107
- var fieldSchema = await convertSFieldToAmisField(field, false, _$1__namespace.omit(options, 'buttons'));
5112
+ var fieldCtx = Object.assign({}, _$1__namespace.omit(options, 'buttons'), {
5113
+ defaults: Object.assign({}, options.defaults, {
5114
+ formSchema: quickEditSchema
5115
+ })
5116
+ });
5117
+ var fieldSchema = await convertSFieldToAmisField(field, false, fieldCtx);
5108
5118
  //存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary
5109
5119
  if (!!fieldSchema) {
5110
5120
  quickEditSchema.body.push(fieldSchema);
@@ -5537,14 +5547,19 @@ function getFieldWidth(width){
5537
5547
  }
5538
5548
 
5539
5549
  async function getColumnItemOnClick(field, options){
5540
- const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor });
5550
+ let objectApiName = options.objectName;
5551
+ if(!(field.is_name || field.name === options.labelFieldName)){
5552
+ objectApiName = field.reference_to;
5553
+ }
5554
+ const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: objectApiName, formFactor: options.formFactor });
5541
5555
  const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
5542
5556
  "recordId": `\${${options.idFieldName}}`,
5543
5557
  "data": {
5544
5558
  ...recordPage.schema.data,
5545
5559
  "_inDrawer": true, // 用于判断是否在抽屉中
5546
5560
  "recordLoaded": false, // 重置数据加载状态
5547
- "recordId": `\${${options.idFieldName}}`//审批微页面依赖了作用域中的recordId
5561
+ "recordId": `\${${options.idFieldName}}`,//审批微页面依赖了作用域中的recordId
5562
+ "_tableObjectName": options.objectName
5548
5563
  }
5549
5564
  }) : {
5550
5565
  "type": "steedos-record-detail",
@@ -5555,12 +5570,16 @@ async function getColumnItemOnClick(field, options){
5555
5570
  "data": {
5556
5571
  "_inDrawer": true, // 用于判断是否在抽屉中
5557
5572
  "recordLoaded": false, // 重置数据加载状态
5573
+ "_tableObjectName": options.objectName
5558
5574
  }
5559
5575
  };
5560
5576
 
5561
5577
  if(!(field.is_name || field.name === options.labelFieldName)){
5562
5578
  drawerRecordDetailSchema.objectApiName = field.reference_to;
5563
5579
  drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
5580
+ // if (recordPage){
5581
+ // drawerRecordDetailSchema.data.recordId = `\${_display.${field.name}.value}`
5582
+ // }
5564
5583
  }
5565
5584
  return {
5566
5585
  "click": {
@@ -5710,6 +5729,33 @@ async function getTableColumns$1(object, fields, options){
5710
5729
  static: true,
5711
5730
  }, fieldAmis, {name: field.name});
5712
5731
  }
5732
+ else if(field.type === 'lookup' || field.type === 'master_detail'){
5733
+ columnItem = Object.assign({}, {
5734
+ type: "static-wrapper",
5735
+ name: field.name,
5736
+ label: field.label,
5737
+ sortable: field.sortable,
5738
+ width: getFieldWidth(field.width),
5739
+ toggled: field.toggled,
5740
+ className,
5741
+ size: "none",
5742
+ inputClassName: "inline",
5743
+ body: {
5744
+ type: "steedos-field",
5745
+ static: true,
5746
+ tableObjectName: options.objectName,
5747
+ config: {
5748
+ type: "lookup",
5749
+ reference_to: field.reference_to,
5750
+ name: field.name,
5751
+ is_name: field.is_name,
5752
+ label: null,
5753
+ multiple: field.multiple,
5754
+ amis: Object.assign({}, fieldAmis, { label: null })
5755
+ }
5756
+ }
5757
+ }, fieldAmis, {name: field.name});
5758
+ }
5713
5759
  else {
5714
5760
  const tpl = await getFieldTpl(field, options);
5715
5761
  let type = 'static-text';
@@ -5758,10 +5804,20 @@ async function getTableColumns$1(object, fields, options){
5758
5804
  columnItem.defaultColor = null;
5759
5805
  }
5760
5806
 
5761
- if(window.innerWidth >= 768 && ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _$1__namespace.isString(field.reference_to) && field.multiple != true)) && options.isRelated){
5807
+ let needClickEvent = false;
5808
+ // if (options.isRelated){
5809
+ // // 子表列表上,Lookup字段和名称字段都需要点击事件
5810
+ // needClickEvent = ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true));
5811
+ // }
5812
+ // else {// if (isObjectListview)
5813
+ // // 列表视图、对象表格中,Lookup字段需要点击事件
5814
+ // needClickEvent = (field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true;
5815
+ // }
5816
+ // lookup字段走steedos-field组件了,所以这里只需要判断子表名称字段才额外加点击事件弹出右侧详情
5817
+ needClickEvent = options.isRelated && (field.is_name || field.name === options.labelFieldName);
5818
+ if(window.innerWidth >= 768 && needClickEvent){
5762
5819
  columnItem.onEvent = await getColumnItemOnClick(field, options);
5763
5820
  }
5764
-
5765
5821
  }
5766
5822
  }
5767
5823
  if(columnItem){
@@ -8113,9 +8169,9 @@ const getSchema$5 = async (uiSchema, ctx) => {
8113
8169
  "body": [
8114
8170
  {
8115
8171
  "type": "button",
8172
+ "level": "primary",
8116
8173
  "label": instance.t('frontend_form_new'),
8117
8174
  "id": "u:standard_new",
8118
- "level": "default",
8119
8175
  "onEvent": {
8120
8176
  "click": {
8121
8177
  "weight": 0,
@@ -8316,8 +8372,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
8316
8372
  /*
8317
8373
  * @Author: 殷亮辉 yinlianghui@hotoa.com
8318
8374
  * @Date: 2023-03-22 09:31:21
8319
- * @LastEditors: baozhoutao@steedos.com
8320
- * @LastEditTime: 2024-02-18 16:06:21
8375
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
8376
+ * @LastEditTime: 2025-04-07 16:02:53
8321
8377
  */
8322
8378
  const getSchema$3 = (uiSchema)=>{
8323
8379
  return {
@@ -8377,6 +8433,17 @@ const getSchema$3 = (uiSchema)=>{
8377
8433
  "_isRelated": "${_isRelated}"
8378
8434
  },
8379
8435
  "expression": `\${_master.objectName != '${uiSchema.name}' && _master.objectName}`
8436
+ },
8437
+ // 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,删除记录后刷新列表
8438
+ {
8439
+ "actionType": "broadcast",
8440
+ "args": {
8441
+ "eventName": "@data.changed.${_tableObjectName}"
8442
+ },
8443
+ "data": {
8444
+ "objectName": "${_tableObjectName}"
8445
+ },
8446
+ "expression": `\${_tableObjectName != '${uiSchema.name}' && _tableObjectName}`
8380
8447
  }
8381
8448
  ]
8382
8449
  }
@@ -9291,7 +9358,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
9291
9358
  const formSchema = {
9292
9359
  "type": "service",
9293
9360
  "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
9294
- "className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 p-1",
9361
+ "className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 p-1",
9295
9362
  "style":{
9296
9363
  "max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
9297
9364
  },
@@ -9526,6 +9593,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9526
9593
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
9527
9594
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
9528
9595
  `;
9596
+ /**
9597
+ 给lookup字段配置filter_form_data时可以配置为amis变量,也可以配置为事态key-value键值对象值:
9598
+ ```
9599
+ "filter_form_data": "${selectedPublicGroupFilterFormData|toJson}"
9600
+ ```
9601
+ or
9602
+ ```
9603
+ "filter_form_data": {
9604
+ "public_group_ids": [
9605
+ "67addbef39f9a4503789b38d"
9606
+ ]
9607
+ }
9608
+ ```
9609
+ */
9610
+ const filterFormValues = ctx.filter_form_data;
9529
9611
  const dataProviderInited = `
9530
9612
  const searchableFields = ${JSON.stringify(searchableFields)};
9531
9613
  const autoOpenFilter = ${autoOpenFilter};
@@ -9563,6 +9645,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9563
9645
  }
9564
9646
  setData({ filterFormSearchableFields: defaultSearchableFields });
9565
9647
  if(isLookup){
9648
+ let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
9649
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
9650
+ if (isAmisFormula){
9651
+ filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
9652
+ }
9653
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
9654
+ let fields = data.uiSchema && data.uiSchema.fields;
9655
+ filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
9656
+ setData({ ...filterFormValues });
9657
+ }
9566
9658
  // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
9567
9659
  setData({ showFieldsFilter: autoOpenFilter });
9568
9660
  }
@@ -9719,6 +9811,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9719
9811
  "body": [
9720
9812
  {
9721
9813
  "type": "button",
9814
+ "level": "primary",
9722
9815
  "id": btnSearchId,
9723
9816
  "label": instance.t('frontend_fields_filter_button_search'),
9724
9817
  "icon": "fa fa-search",
@@ -9736,7 +9829,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9736
9829
  },
9737
9830
  {
9738
9831
  "type": "button",
9739
- "label": instance.t('frontend_form_cancel'),
9832
+ "label": instance.t('frontend_form_reset'),
9740
9833
  "name": "btn_filter_form_cancel",
9741
9834
  // "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
9742
9835
  "onEvent": {
@@ -9826,7 +9919,6 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9826
9919
  "className": "steedos-amis-form"
9827
9920
  }
9828
9921
  ],
9829
- "id": "u:ca99fa9fe1b1",
9830
9922
  "actions": [
9831
9923
  {
9832
9924
  "type": "button",
@@ -9854,13 +9946,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9854
9946
  "actionType": "custom",
9855
9947
  "script": onSearchableFieldsChangeScript
9856
9948
  },
9857
- {
9858
- "actionType": "click",
9859
- "componentId": btnSearchId,
9860
- "args": {
9861
- "__from_fields_filter_settings_confirm": true
9862
- }
9863
- },
9949
+ // 自动触发搜索事件会造成bug,应该是升级amis到6.4造成的,见:https://github.com/steedos/steedos-platform/issues/7121
9950
+ // 变更搜索项后,用户一般会点击搜索按钮,所以这里不自动触发搜索事件
9951
+ // {
9952
+ // "actionType": "click",
9953
+ // "componentId": btnSearchId,
9954
+ // "args": {
9955
+ // "__from_fields_filter_settings_confirm": true
9956
+ // }
9957
+ // },
9864
9958
  {
9865
9959
  "componentId": "",
9866
9960
  "args": {},
@@ -9891,12 +9985,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9891
9985
  ]
9892
9986
  }
9893
9987
  },
9894
- "id": "u:b96d84868a5a",
9895
9988
  "level": "link"
9896
9989
  }
9897
9990
  ],
9898
9991
  "size": "xs",
9899
- "className": "space-x-4"
9992
+ "className": "space-x-2"
9900
9993
  },
9901
9994
  "size": "xs",
9902
9995
  "className": "slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"
@@ -10600,7 +10693,6 @@ function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {
10600
10693
  "id": "u:ce9e3fcc411a"
10601
10694
  }
10602
10695
  ],
10603
- "className": "steedos-overflow-visible-dialog",
10604
10696
  "showCloseButton": true,
10605
10697
  "showErrorMsg": true,
10606
10698
  "showLoading": true,
@@ -10842,7 +10934,7 @@ function getObjectListHeader(objectSchema, listViewName, ctx) {
10842
10934
  let headerSchema = [{
10843
10935
  "type": "wrapper",
10844
10936
  "body": body,
10845
- "className": `p-3 m-4 shadow rounded bg-white`
10937
+ "className": `px-3 pt-3 pb-0 m-1 bg-white`
10846
10938
  }];
10847
10939
  // console.log(`getObjectListHeader`, objectSchema, listViewName, ctx)
10848
10940
  return headerSchema;
@@ -11590,7 +11682,6 @@ const getSetListviewFiltersButtonSchema = ()=>{
11590
11682
  }
11591
11683
  }
11592
11684
  ],
11593
- "className": "steedos-overflow-visible-dialog",
11594
11685
  "showCloseButton": true,
11595
11686
  "showErrorMsg": true,
11596
11687
  "showLoading": true,
@@ -12224,7 +12315,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
12224
12315
  return {
12225
12316
  "type": "tooltip-wrapper",
12226
12317
  "id": "steedos_crud_toolbar_quick_search",
12227
- "align": "left",
12318
+ "align": "right",
12228
12319
  "title": "",
12229
12320
  "content": "可搜索字段:" + searchableFieldsLabel.join(","),
12230
12321
  "placement": "bottom",
@@ -12238,6 +12329,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
12238
12329
  "name": keywordsSearchBoxName,
12239
12330
  "placeholder": "快捷搜索",
12240
12331
  "value": crudKeywords,
12332
+ "mini": true,
12241
12333
  "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
12242
12334
  "clearAndSubmit": true,
12243
12335
  "searchImediately": false,
@@ -12286,7 +12378,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12286
12378
  if(!hiddenCount){
12287
12379
  toolbarCount = {
12288
12380
  "type": "tpl",
12289
- "align": "right",
12381
+ "align": "left",
12290
12382
  "className": "text-gray-500 mr-2",
12291
12383
  "tpl": "${count} " + instance.t('frontend_record_sum')
12292
12384
  };
@@ -12370,7 +12462,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12370
12462
  "animation": true,
12371
12463
  "visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
12372
12464
  },
12373
- "align": "left",
12465
+ "align": "right",
12374
12466
  "className": "bg-white p-2 rounded text-gray-500",
12375
12467
  "onEvent": {
12376
12468
  "click": {
@@ -12392,27 +12484,27 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12392
12484
  // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
12393
12485
  let toolbars = [];
12394
12486
  if(formFactor === 'SMALL'){
12395
- if(toolbarCount){
12396
- toolbars.push(toolbarCount);
12397
- }
12398
- toolbars.push(toolbarReloadButton);
12399
- toolbars.push(toolbarDisplayAsButton);
12487
+ // if(toolbarCount){
12488
+ // toolbars.push(toolbarCount);
12489
+ // }
12490
+ // toolbars.push(toolbarReloadButton);
12491
+ toolbars.push(toolbarDQuickSearchBox);
12400
12492
  if(toolbarFilter){
12401
12493
  toolbars.push(toolbarFilter);
12402
12494
  }
12403
- toolbars.push(toolbarDQuickSearchBox);
12495
+ toolbars.push(toolbarDisplayAsButton);
12404
12496
  return [
12405
12497
  // "bulkActions",
12406
12498
  ...(headerToolbarItems || []),
12407
12499
  ...toolbars,
12408
12500
  ]
12409
12501
  }else {
12502
+ toolbars.push(toolbarDQuickSearchBox);
12410
12503
  toolbars.push(toolbarReloadButton);
12411
12504
  toolbars.push(toolbarDisplayAsButton);
12412
12505
  if(mainObject?.permissions?.allowCreateListViews){
12413
12506
  toolbars.push(getSettingListviewToolbarButtonSchema());
12414
12507
  }
12415
- toolbars.push(toolbarDQuickSearchBox);
12416
12508
  if(toolbarFilter){
12417
12509
  toolbars.push(toolbarFilter);
12418
12510
  }
@@ -13092,6 +13184,17 @@ async function getObjectForm(objectSchema, ctx){
13092
13184
  },
13093
13185
  "expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
13094
13186
  },
13187
+ // 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,修改记录后刷新列表
13188
+ {
13189
+ "actionType": "broadcast",
13190
+ "args": {
13191
+ "eventName": "@data.changed.${_tableObjectName}"
13192
+ },
13193
+ "data": {
13194
+ "objectName": "${_tableObjectName}"
13195
+ },
13196
+ "expression": `\${_tableObjectName != '${objectSchema.name}' && _tableObjectName}`
13197
+ },
13095
13198
  ...submitSuccActions,
13096
13199
  // {
13097
13200
  // "actionType": "custom",
@@ -13694,7 +13797,7 @@ async function getObjectRelatedListsMiniSchema(objectApiName){
13694
13797
  * @Author: baozhoutao@steedos.com
13695
13798
  * @Date: 2022-07-05 15:55:39
13696
13799
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
13697
- * @LastEditTime: 2025-05-20 19:29:36
13800
+ * @LastEditTime: 2025-06-17 20:18:18
13698
13801
  * @Description:
13699
13802
  */
13700
13803
 
@@ -14050,12 +14153,13 @@ async function getListSchema(
14050
14153
  "filtersFunction": listview_filters,
14051
14154
  "sort": sort,
14052
14155
  "ctx": ctx,
14053
- "requestAdaptor": listView.requestAdaptor || ctx.requestAdaptor,
14054
- "adaptor": listView.adaptor || ctx.adaptor,
14156
+ "requestAdaptor": ctx.requestAdaptor || listView.requestAdaptor,
14157
+ "adaptor": ctx.adaptor || listView.adaptor,
14055
14158
  "headerToolbarItems": ctx.headerToolbarItems,
14056
14159
  "filterVisible": ctx.filterVisible,
14057
14160
  "rowClassNameExpr": ctx.rowClassNameExpr,
14058
- "crudDataFilter": ctx.crudDataFilter,
14161
+ "crud": ctx.crud || listView.crud,
14162
+ "crudDataFilter": ctx.crudDataFilter || listView.crudDataFilter ,
14059
14163
  "onCrudDataFilter": ctx.onCrudDataFilter
14060
14164
  };
14061
14165
  // console.log(`getListSchema===>`,amisSchema)
@@ -14220,7 +14324,8 @@ async function getRecordDetailHeaderSchema(objectName,recordId, options){
14220
14324
  }
14221
14325
 
14222
14326
  async function getRecordDetailSchema(objectName, appId, props = {}){
14223
- const uiSchema = await getUISchema(objectName);
14327
+ const uiSchema = await getUISchema(objectName);
14328
+
14224
14329
  const relatedLists = await getObjectRelatedList(objectName);
14225
14330
  const detailed = {
14226
14331
  "title": instance.t('frontend_record_detail_tab_detailed'),
@@ -14261,6 +14366,21 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
14261
14366
  if(relatedLists.length){
14262
14367
  content.tabs.push(related);
14263
14368
  }
14369
+ const contents = [content];
14370
+ if (uiSchema.enable_chatter && window.BuilderLiveblocks) {
14371
+ const chatter = {
14372
+ "type": "rooms-provider",
14373
+ "baseUrl": "${context.rootUrl}",
14374
+ "body": [
14375
+ {
14376
+ "type": "rooms-comments",
14377
+ "className": "flex flex-col gap-3 m-4",
14378
+ "roomId": "objects:${objectName}:${recordId}",
14379
+ }
14380
+ ]
14381
+ };
14382
+ contents.push(chatter);
14383
+ }
14264
14384
  // content.tabs = reverse(content.tabs)
14265
14385
  if(content.tabs.length == 1){
14266
14386
  content.className += " steedos-record-tabs--single";
@@ -14280,7 +14400,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
14280
14400
  "showBackButton": props.showBackButton,
14281
14401
  _reloadKey: props._reloadKey
14282
14402
  },
14283
- content
14403
+ ...contents,
14284
14404
  ],
14285
14405
  "objectApiName": "${objectName}",
14286
14406
  "recordId": "${recordId}",
@@ -15064,14 +15184,42 @@ function getLookupSapceUserTreeSchema(isMobile){
15064
15184
  {
15065
15185
  "actionType": "custom",
15066
15186
  "script": `
15187
+ console.log("lookup-tree-event.data:",event.data);
15188
+ console.log("lookup-tree-event.data.value.label:",event.data.value.label);
15189
+ console.log("lookup-tree-event.data.value.value:",event.data.value.value);
15067
15190
  const scope = event.context.scoped;
15068
- var filterFormValues={
15191
+ var treeFilterFormValues={
15069
15192
  "__searchable__organizations_parents":event.data.value.value
15070
15193
  }
15071
- var listView = scope.parent.getComponents().find(function(n){
15072
- return n.props.type === "crud";
15194
+ // var listView = scope.parent.getComponents().find(function(n){
15195
+ // return n.props.type === "crud";
15196
+ // });
15197
+ // listView.handleFilterSubmit(Object.assign({}, filterFormValues));
15198
+ let __lookupField = event.data.__lookupField;
15199
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
15200
+ var filterForm = scope.getComponents().find(function(n){
15201
+ return n.props.type === "form";
15073
15202
  });
15074
- listView.handleFilterSubmit(Object.assign({}, filterFormValues));
15203
+ let filterFormValues = filterForm.getData();
15204
+ filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
15205
+ const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
15206
+ Object.assign(changedFilterFormValues, treeFilterFormValues);
15207
+ // 同步__changedFilterFormValues中的值
15208
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
15209
+ if(__lookupField){
15210
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
15211
+ if(__lookupField.reference_to_field){
15212
+ lookupTag += "__" + __lookupField.reference_to_field;
15213
+ }
15214
+ __changedFilterFormValuesKey += lookupTag;
15215
+ }
15216
+ if(crud){
15217
+ let crudData = crud.getData();
15218
+ crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
15219
+ crud.setData(crudData);
15220
+ }
15221
+ filterForm.setData(treeFilterFormValues);
15222
+ filterForm.handleFormSubmit(event);
15075
15223
  `
15076
15224
  },
15077
15225
  {
@@ -15289,6 +15437,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15289
15437
  // field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
15290
15438
  let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
15291
15439
 
15440
+ const filterFormValues = field.filter_form_data;
15292
15441
  source.requestAdaptor = `
15293
15442
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
15294
15443
  let __lookupField = api.data.$self.__lookupField;
@@ -15331,7 +15480,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
15331
15480
  }
15332
15481
  }
15333
15482
 
15334
- var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
15483
+ let filterFormValues = {};
15484
+ if (selfData.op !== 'loadOptions'){
15485
+ filterFormValues = ${_$1__namespace.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
15486
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
15487
+ if (isAmisFormula){
15488
+ filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
15489
+ }
15490
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
15491
+ let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;
15492
+ filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
15493
+ }
15494
+ }
15495
+
15496
+ var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
15335
15497
 
15336
15498
  if(searchableFilter.length > 0){
15337
15499
  if(filters.length > 0 ){
@@ -15521,7 +15683,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15521
15683
  return payload;
15522
15684
  `;
15523
15685
  }
15524
- let top = 20;
15686
+ let top = 500;
15525
15687
 
15526
15688
  if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){
15527
15689
  top = 1000;
@@ -15571,7 +15733,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
15571
15733
  keywordsSearchBoxName,
15572
15734
  searchable_fields: field.searchable_fields,
15573
15735
  auto_open_filter: field.auto_open_filter,
15574
- show_left_filter: field.show_left_filter
15736
+ show_left_filter: field.show_left_filter,
15737
+ filter_form_data: field.filter_form_data
15575
15738
  });
15576
15739
  }
15577
15740
  pickerSchema.data = Object.assign({}, pickerSchema.data, {
@@ -15605,7 +15768,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
15605
15768
  {
15606
15769
  "actionType": "custom",
15607
15770
  "script": `
15608
- const masterRecord = event.data._master && event.data._master.record;
15771
+ // lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,
15772
+ // 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期
15773
+ const masterRecord = context.props.data;//event.data._master && event.data._master.record;
15609
15774
  const fieldConfig = ${JSON.stringify(field)};
15610
15775
  let reference_to = fieldConfig.reference_to;
15611
15776
  let saveValue;
@@ -15615,7 +15780,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
15615
15780
  }
15616
15781
  const saveField = fieldConfig.reference_to_field || '_id';
15617
15782
  const saveFieldValue = newRecord[saveField];
15618
-
15619
15783
  if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
15620
15784
 
15621
15785
  const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
@@ -15635,8 +15799,10 @@ async function lookupToAmisPicker(field, readonly, ctx){
15635
15799
 
15636
15800
  }else{
15637
15801
  if(fieldConfig.multiple){
15638
- // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。
15639
- const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
15802
+ // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
15803
+ // 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录
15804
+ // 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。
15805
+ const fieldValue = context.context.component.props.store.toJSON().selectedItems
15640
15806
  saveValue = fieldValue.concat(saveFieldValue);
15641
15807
  }else{
15642
15808
  saveValue = saveFieldValue;
@@ -15644,7 +15810,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15644
15810
  }
15645
15811
 
15646
15812
  const ctx = ${JSON.stringify(ctx)};
15647
- const componentId = ctx.defaults.formSchema.id;
15813
+ const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;
15648
15814
  doAction({
15649
15815
  actionType: 'setValue',
15650
15816
  componentId: componentId,
@@ -16071,6 +16237,10 @@ async function lookupToAmis(field, readonly, ctx){
16071
16237
  }
16072
16238
  let amisSchema;
16073
16239
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
16240
+ if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
16241
+ // 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
16242
+ enableEnhancedLookup = false;
16243
+ }
16074
16244
  if(enableEnhancedLookup == true){
16075
16245
  amisSchema = await lookupToAmisPicker(field, readonly, ctx);
16076
16246
  }else if(refObject.enable_tree) {
@@ -17202,7 +17372,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
17202
17372
  return convertData
17203
17373
  }
17204
17374
  // if(ctx.mode === 'edit'){
17205
- let convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17375
+ let convertDataResult;
17376
+ if(convertData.type == "steedos-field"){
17377
+ // 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
17378
+ // 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
17379
+ // 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
17380
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
17381
+ }
17382
+ else {
17383
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17384
+ }
17206
17385
  // 只读时file字段的外层control层若存在name,内部each组件存在问题
17207
17386
  if(readonly && field.type == "file") {
17208
17387
  convertDataResult.name = "";
@@ -25181,7 +25360,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
25181
25360
  _reloadKey: _reloadKey,
25182
25361
  data: _data,
25183
25362
  style: style,
25184
- className: "".concat(className, " sm:bg-[#FAFAFA] h-full steedos-object-listview ").concat(displayAs === 'split' ? 'sm:border-r' : 'sm:border-r'),
25363
+ className: "".concat(className, " h-full steedos-object-listview ").concat(displayAs === 'split' ? 'sm:border-r' : 'sm:bg-gray-50'),
25185
25364
  body: [{
25186
25365
  "type": "wrapper",
25187
25366
  "size": "none",
@@ -25199,13 +25378,13 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
25199
25378
  "className": sideSchema ? "flex-1 focus:outline-none lg:order-last w-96 h-full" : 'w-full h-full',
25200
25379
  "body": {
25201
25380
  type: "wrapper",
25202
- className: "p-0 m-0 steedos-object-listview-content-wrapper h-full flex flex-col",
25381
+ className: "p-0 bg-white steedos-object-listview-content-wrapper flex flex-col ".concat(displayAs === 'split' ? '' : 'm-4 shadow rounded'),
25203
25382
  body: __spreadArray(__spreadArray([], __read(headerSchema), false), [
25204
25383
  {
25205
25384
  "type": "service",
25206
25385
  "id": "service_schema_api_" + objectApiName,
25207
25386
  _reloadKey: _reloadKey,
25208
- "className": " steedos-object-listview-content grow px-3 py-1 m-4 mt-0 shadow rounded bg-white",
25387
+ "className": " steedos-object-listview-content grow bg-white ".concat(displayAs === 'split' ? 'p-0 m-0' : 'px-3 py-0 m-1'),
25209
25388
  "schemaApi": {
25210
25389
  // 这里url上加objectApiName属性是因为设计器中切换对象时不会变更列表视图界面,不可以用objectName=${objectName}使用作用域中objectName变量是因为设计器那边不会监听识别data变化来render组件
25211
25390
  "url": "${context.rootUrl}/graphql?objectName=" + objectApiName + "&listName=${listName}&display=${display}&rebuildOn=" + rebuildOn + _reloadKey,
@@ -26308,7 +26487,7 @@ var getNotificationBadgeButton = function () {
26308
26487
  {
26309
26488
  "type": "panel",
26310
26489
  "title": instance.t('frontend_notifications'),
26311
- "className": "steedos-header-toolbar-notifications-panel " + (isMobile ? "" : "min-w-[300px] max-w-md"),
26490
+ "className": "steedos-header-toolbar-notifications-panel border-0 shadow-none " + (isMobile ? "" : "min-w-[460px] max-w-md"),
26312
26491
  "body": [
26313
26492
  {
26314
26493
  "type": "each",
@@ -26469,6 +26648,7 @@ var getNotificationBadgeButton = function () {
26469
26648
  "className": "slds-button_icon slds-global-header__icon"
26470
26649
  }
26471
26650
  ],
26651
+ "size": "small",
26472
26652
  "count": "${unReadCount}"
26473
26653
  },
26474
26654
  ],
@@ -26526,6 +26706,20 @@ var getNotificationBadgeButton = function () {
26526
26706
  "open": false
26527
26707
  };
26528
26708
  };
26709
+ var getHeaderButtons = function () {
26710
+ if (window['BuilderLiveblocks']) {
26711
+ return [{
26712
+ type: 'rooms-provider',
26713
+ baseUrl: '',
26714
+ body: {
26715
+ type: 'rooms-inbox-popover',
26716
+ },
26717
+ }];
26718
+ }
26719
+ else {
26720
+ return [];
26721
+ }
26722
+ };
26529
26723
  var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0, void 0, function () {
26530
26724
  var _a, className, data, _b, logoutScript, _c, customButtons, avatarSrc;
26531
26725
  var _d, _e;
@@ -26540,7 +26734,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
26540
26734
  "id": "u:9c3d279be31a",
26541
26735
  "className": "steedos-global-header-toolbar leading-3\t".concat(className),
26542
26736
  "size": "xs",
26543
- "body": __spreadArray(__spreadArray([], __read(customButtons), false), [
26737
+ "body": __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(customButtons), false), [
26544
26738
  {
26545
26739
  "type": "button",
26546
26740
  "hiddenOn": "${window:innerWidth < 768 || (window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem)}",
@@ -26677,7 +26871,8 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
26677
26871
  }
26678
26872
  ]
26679
26873
  },
26680
- getNotificationBadgeButton(),
26874
+ getNotificationBadgeButton()
26875
+ ], false), __read(getHeaderButtons()), false), [
26681
26876
  {
26682
26877
  "type": "steedos-dropdown",
26683
26878
  "placement": "bottomRight",
@@ -26933,7 +27128,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
26933
27128
  {
26934
27129
  "type": "steedos-global-header-toolbar",
26935
27130
  "label": "Global Header",
26936
- className: 'flex flex-nowrap gap-x-3 items-center',
27131
+ className: 'flex flex-nowrap gap-x-4 items-center',
26937
27132
  logoutScript: "window.signOut();",
26938
27133
  customButtons: customButtons
26939
27134
  }
@@ -26988,7 +27183,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
26988
27183
  body: [
26989
27184
  {
26990
27185
  type: "wrapper",
26991
- className: 'sidebar-wrapper px-0 pt-0 pb-16 fixed z-20 h-full h-fill ease-in-out duration-300 flex flex-col border-r overflow-y-auto bg-[#F0F0F0] border-gray-300 block -translate-x-0 sm:w-[220px] w-64',
27186
+ className: 'sidebar-wrapper px-0 pt-0 pb-16 fixed z-20 h-full h-fill ease-in-out duration-300 flex flex-col border-r overflow-y-auto bg-gray-100 border-gray-300 block -translate-x-0 sm:w-[220px] w-64',
26992
27187
  visibleOn: '${!!appId}',
26993
27188
  body: [
26994
27189
  {
@@ -27094,24 +27289,34 @@ function getAmisStaticFieldType(type, data_type, options) {
27094
27289
  }
27095
27290
  function getLookupLinkOnClick(field, options) {
27096
27291
  return __awaiter(this, void 0, void 0, function () {
27097
- var recordPage, drawerRecordDetailSchema;
27292
+ var recordPage, objectName, recordId, drawerRecordDetailSchema;
27098
27293
  return __generator(this, function (_a) {
27099
27294
  switch (_a.label) {
27100
27295
  case 0: return [4 /*yield*/, getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor })];
27101
27296
  case 1:
27102
27297
  recordPage = _a.sent();
27298
+ objectName = "${objectName}";
27299
+ recordId = "${value}";
27300
+ if (options.tableObjectName && field.is_name) {
27301
+ // 如果Lookup字段上配置了is_name,且是在表格(即tableObjectName有值,包括列表视图和子表)中
27302
+ // 则点击弹出的详细页面是表格行记录指向的记录详细页面,此时打开的详细页面对象是表格所属对象,_id是表格行记录的_id值
27303
+ // tableObjectName 没有值时说明lookup字段可能是在记录详细页面表单等地方,此时打开的详细页面lookup字段值指向的记录
27304
+ objectName = options.tableObjectName;
27305
+ recordId = "${_id}";
27306
+ }
27103
27307
  drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
27104
- "recordId": "${value}",
27105
- "data": __assign$2(__assign$2({}, recordPage.schema.data), { "_inDrawer": true, "recordLoaded": false })
27308
+ "recordId": recordId,
27309
+ "data": __assign$2(__assign$2({}, recordPage.schema.data), { "_inDrawer": true, "recordLoaded": false, "_tableObjectName": options.tableObjectName })
27106
27310
  }) : {
27107
27311
  "type": "steedos-record-detail",
27108
- "objectApiName": "${objectName}",
27109
- "recordId": "${value}",
27312
+ "objectApiName": objectName,
27313
+ "recordId": recordId,
27110
27314
  "showBackButton": false,
27111
27315
  "showButtons": true,
27112
27316
  "data": {
27113
27317
  "_inDrawer": true,
27114
- "recordLoaded": false, // 重置数据加载状态
27318
+ "recordLoaded": false,
27319
+ "_tableObjectName": options.tableObjectName
27115
27320
  }
27116
27321
  };
27117
27322
  return [2 /*return*/, {
@@ -27162,7 +27367,7 @@ function generateRandomString$1(length) {
27162
27367
  return _$1.sampleSize(characters, length).join('');
27163
27368
  }
27164
27369
  var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void 0, function () {
27165
- var steedosField, field, _a, readonly, _b, ctx, config, fStatic, env, inInputTable, className, _c, appId, formFactor, editorClassName, lookupATagClick, defaultSource, source, fieldBaseProps, referenceTo_1, fieldValue, fieldRefObject, _d, _e, _f, _g, res, valueOptions_1, fieldValue, values, disPlayValue_1, _h, _j, _k, _l, schema, fieldSchema, fieldValue, fieldHtml_1, schema, map, tableFields, _m, _o, subField, subFieldName, fieldAmis, schema, error_1;
27370
+ var steedosField, field, _a, readonly, _b, ctx, config, fStatic, env, inInputTable, className, tableObjectName, _c, appId, formFactor, editorClassName, lookupATagClick, defaultSource, source, fieldBaseProps, referenceTo_1, fieldValue, fieldRefObject, _d, _e, _f, _g, res, valueOptions_1, fieldValue, values, disPlayValue_1, _h, _j, _k, _l, schema, fieldSchema, fieldValue, fieldHtml_1, schema, map, tableFields, _m, _o, subField, subFieldName, fieldAmis, schema, error_1;
27166
27371
  var _p, _q, _r, _s, _t, _u, _v, _w, _x, e_1, _y;
27167
27372
  var _z, _0, _1, _2, _3, _4, _5;
27168
27373
  return __generator(this, function (_6) {
@@ -27201,7 +27406,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27201
27406
  props.config.name = "f".concat(generateRandomString$1(5));
27202
27407
  }
27203
27408
  steedosField = null;
27204
- 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;
27409
+ 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, tableObjectName = props.tableObjectName;
27205
27410
  _c = props.data || {}, appId = _c.appId, formFactor = _c.formFactor;
27206
27411
  editorClassName = "";
27207
27412
  if (props.$$editor) {
@@ -27358,7 +27563,8 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27358
27563
  case 4: return [4 /*yield*/, getLookupLinkOnClick(steedosField, {
27359
27564
  appId: appId,
27360
27565
  objectName: referenceTo_1,
27361
- formFactor: formFactor
27566
+ formFactor: formFactor,
27567
+ tableObjectName: tableObjectName
27362
27568
  })];
27363
27569
  case 5:
27364
27570
  _g = _6.sent();
@@ -27371,17 +27577,18 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27371
27577
  _s),
27372
27578
  _r)
27373
27579
  ],
27374
- _q), {
27580
+ _q), (!!!tableObjectName ? {
27375
27581
  type: 'static',
27376
27582
  tpl: '-',
27377
27583
  className: "".concat(fieldBaseProps.className || '', " text-muted !border-b-0"),
27378
27584
  hiddenOn: "${_display.".concat(steedosField.name, "}"),
27379
- },
27380
- {
27381
- type: 'tpl',
27382
- tpl: "<span class='antd-TplField antd-Form-description'><span>".concat(steedosField.description, "</span></span>"),
27383
- hidden: _$1.isEmpty(steedosField.description) ? true : false
27384
- }],
27585
+ } : null),
27586
+ (steedosField.description ?
27587
+ {
27588
+ type: 'tpl',
27589
+ tpl: "<span class='antd-TplField antd-Form-description'><span>".concat(steedosField.description, "</span></span>"),
27590
+ hidden: _$1.isEmpty(steedosField.description) ? true : false
27591
+ } : null)],
27385
27592
  _p)]));
27386
27593
  return [3 /*break*/, 13];
27387
27594
  case 7: return [4 /*yield*/, env.fetcher(source, props.data)];
@@ -28462,7 +28669,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
28462
28669
  });
28463
28670
  }); };
28464
28671
 
28465
- var __assign=function(){return (__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,r){return !1}},standard_new:{visible:function(e,t,r){return "cms_files"!==e&&"instances"!==e&&(r?r.allowCreate:void 0)}},standard_edit:{visible:function(e,t,r){if(r)return r.allowEdit}},standard_delete:{visible:function(e,t,r){if(r)return r.allowDelete}},standard_import_data:{visible:function(e,t,r){var o=this.object;if(r)return r.allowCreate&&o.hasImportTemplates}},standard_approve:{visible:function(e,t,r){return !1}},standard_view_instance:{visible:function(e,t,r){return !1}},standard_submit_for_approval:{visible:function(e,t,r){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,r){return !1}},standard_delete_many:{visible:function(e,t,r){return !RegExp("\\w+/view/\\w+").test(location.pathname)&&(r?r.allowDelete:void 0)}},standard_export_excel:{visible:function(e,t,r){return !1}}}}},authRequest=function(e,t){var a=null;e=Steedos.absoluteUrl(e);try{var r=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],o={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(t){if(r&&r.length)return r.forEach(function(e){return t.setRequestHeader(e.name,e.value)})},success:function(e){a=e;},error:function(e,t,r){var o,n;e.responseJSON&&e.responseJSON.error?(o=e.responseJSON.error,n=void(a={error:o}),n=o.reason||o.message||o,console.error(n)):console.error(e.responseJSON);}};return $.ajax(Object.assign({},o,t)),a}catch(e){console.error(e);}};function _extends(){return (_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,o=arguments[t];for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);}return e}).apply(this,arguments)}const newFunctionComponent=n=>e=>{const[t,r]=React.useState(!0);var o=()=>{r(!1);};return _$1.has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{r(!0);},close:o}),React__default["default"].createElement(n,_extends({visible:t,onCancel:o,onClose:o},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},e))},newComponentRender=(r,o)=>(e,t)=>{e.name||(e.name=r+"-"+(e.name||"default")),(t=t||document.getElementById(`steedos-${r}-root-`+e.name))||((t=document.createElement("div")).setAttribute("id",`steedos-${r}-root-`+e.name),document.body.appendChild(t));e=React__default["default"].createElement(newFunctionComponent(o),e);ReactDOM.createRoot(t).render(e);},Modal=_$1.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),_$1.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e);}),""+t.join(" ")},getFindOneQuery=(e,t,r)=>{e=e.replace(/\./g,"_");r=getGraphqlFieldsQuery(r);let o="";t=[`id: "${t}"`];return `{record:${e}__findOne${o=0<t.length?`(${t.join(",")})`:o}{${r}}}`},SObject={getRecord:async(e,t,r)=>{return (await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,r)})})).data.record},getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:r})=>{canSaveFilter(t),r.filters&&(r.filters=filtersToConditions(r.filters));},getVisibleFilter:(e,t)=>{return t||(canSaveFilter(e)?e.filters:void 0)},getQueryFilter:(e,t)=>{return canSaveFilter(e)?ListView.getVisibleFilter(e,t):_$1.isEmpty(t)?e.filters:[e.filters,"and",t]},getFirstListView:async e=>{e=await window.getUISchema(e);return _.first(_.sortBy(_.values(e.list_views),"sort_no"))}},Router={getAppPath({appId:e}){return "/app/"+e},getPagePath(){},getObjectListViewPath({appId:e,objectName:t,listViewName:r}){return `/app/${e}/${t}/grid/`+r},getObjectDetailPath({appId:e,objectName:t,recordId:r}){return `/app/${e}/${t}/view/`+r},getObjectRelatedViewPath({appId:e,masterObjectName:t,masterRecordId:r,objectName:o,foreignKey:n}){return `/app/${e}/${t}/${r}/${o}/grid?related_field_name=`+n}};var withModalWrap=function(t,e){return function(e){return React__namespace.createElement(t,e)}},render=function(e,t,r,o){e=withModalWrap(e),e=React__namespace.createElement(e,__assign({},t));return ReactDOM__default["default"].render(e,r)};const safeRunFunction=(t,r,o,n)=>{try{let e=[];return _$1.isNil(r)||(e=_$1.isArray(r)?r:[r]),t.bind(n||{})(...e)}catch(e){return console.log(e),o}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js);}}const isExpression=function(e){var t,r;return "string"==typeof e&&(t=/^{{(function.+)}}$/,r=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(r)))},getMoment=()=>window.amisRequire?window.amisRequire("moment"):window.moment||void 0,getGlobalNowData=()=>{var e=new Date,t=getMoment();let r=t().utc(),o=(r.set("hours",0),r.set("minutes",0),r.set("seconds",0),r.set("milliseconds",0),r=r.toDate(),t());return o.set("year",1970),o.set("month",0),o.set("date",1),o.set("hours",o.hours()+o.utcOffset()/60),o.set("seconds",0),o.set("milliseconds",0),o=o.toDate(),{now:e,today:r,timeNow:o}},parseSingleExpression=function(t,e,r,o){var n,a;if(o&&Object.assign(o,getGlobalNowData()),a=function(e,t){return "#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(e=void 0===e?{}:e,function(e){return "string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(r))||{},"string"!=typeof t)return t;n="__G_L_O_B_A_L__",e="\n return "+t.substring(2,t.length-2).replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,n)).replace(/\bglobal\b/g,JSON.stringify(o)).replace(new RegExp("\\b"+n+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(a));try{return Function(e)()}catch(e){return console.log(e,t,r),t}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,getGlobalNowData:getGlobalNowData,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(express,multiple)=>{const reg=/^\{\w+(\.*\w+)*\}$/,reg2=/^{{[\s\S]*}}$/;let result=express;if(reg.test(express)&&(result=-1<express.indexOf("userId")||-1<express.indexOf("spaceId")||-1<express.indexOf("user.")||-1<express.indexOf("now")||-1<express.indexOf("today")||-1<express.indexOf("timeNow")?`{${express}}`.replace("{{","{{global."):`{${express}}`.replace("{{","{{formData."),multiple&&(result=result.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),reg2.test(express)&&(-1<express.indexOf("function")||-1<express.indexOf("=>"))){let regex=/\{\{([\s\S]*)\}\}/,matches=regex.exec(express);if(matches&&1<matches.length){let functionCode=matches[1];result=eval("("+functionCode+")")();}}return result},getFieldDefaultValue=(e,t)=>{if(!e)return null;let r=e.defaultValue;e._defaultValue&&(r=safeEval(`(${e._defaultValue})`)),_$1.isFunction(r)&&(r=safeRunFunction(r,[],null,{name:e.name})),_$1__namespace.isString(r)&&(r=getCompatibleDefaultValueExpression(r,e.multiple));var o=isExpression(r);switch(o&&("date"===e.type?r=r.replace(/\bglobal.now\b/g,"global.today"):"time"===e.type&&(r=r.replace(/\bglobal.now\b/g,"global.timeNow")),r=parseSingleExpression(r,{},"#",t)),e.type){case"select":var n=e.data_type||"text";!r||o||e.multiple||("text"!==n||_$1.isString(r)?"number"===n&&_$1.isString(r)?r=Number(r):"boolean"===n&&_$1.isString(r)&&(r="true"===r.toLowerCase()||"1"===r):r=String(r));break;case"number":_$1.isString(r)&&(r=Number(r));break;case"boolean":_$1.isString(r)?r="true"===r.toLowerCase()||"1"===r:_$1.isBoolean(r)||(r=!1);break;case"time":if(_$1.isDate(r))return moment(r).format("1970-01-01THH:mm:00.000[Z]");case"date":if(_$1.isDate(r))return moment(r).format("YYYY-MM-DDT00:00:00.000[Z]");case"datetime":if(_$1.isDate(r))return moment(r).format("YYYY-MM-DDTHH:mm:00.000Z")}return r};function getTreeOptions(t,e){const n=e?.valueField||"value",r=(e?.labelField,e?.unfoldedNum||1),o=[],a=(e,t,r,o)=>{return e.children&&"object"==typeof e.children[0]?e.children:r?(e=_.filter(t,e=>_.includes(r,e[n])),_.each(e,e=>{1<=o?(e.unfolded=!0,e.children&&(e.children=a(e,t,e.children,o-1))):e.children&&(e.children=a(e,t,e.children,o));}),e):void 0};for(var s=t,i=0;i<s.length;i++)if(s[i].noParent=0,s[i].unfolded=!1,s[i].parent){let e=1;for(var l=0;l<s.length;l++)s[i].parent==s[l][n]&&(e=0);1==e&&(s[i].noParent=1);}else s[i].noParent=1;return _.each(t,e=>{1==e.noParent&&(1<=r?(e.unfolded=!0,o.push(Object.assign({},e,{children:a(e,t,e.children,r-1)}))):o.push(Object.assign({},e,{children:a(e,t,e.children,r)})));}),o}function getClosestAmisComponentByType(t,r,o){let n=(o=o||{}).name;var e=o.direction||"up";let a=t.getComponents().find(function(e){return e.props.type===r&&(!n||e.props.name===n)});if(a)return a;if("down"===e){if(t.children&&t.children.length){for(let e=0;e<t.children.length&&!(a=getClosestAmisComponentByType(t.children[e],r,o));e++);return a}}else if("up"===e&&t.parent)return getClosestAmisComponentByType(t.parent,r,o)}function isFilterFormValuesEmpty(e){let t=!0;var e=_.pickBy(e,function(e,t){return /^__searchable__/g.test(t)});return _.isEmpty(e)||(e=_.omitBy(e,function(e){return _.isNil(e)||_.isObject(e)&&_.isEmpty(e)||_.isArray(e)&&_.isEmpty(e.filter(function(e){return !_.isNil(e)}))||_.isString(e)&&0===e.length}),_.isEmpty(e)||(t=!1)),t}const SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef(e){return SteedosUI$1.refs[e]},router:{go:(e,t)=>{var r=window.FlowRouter;if(t)return r?r.go(t):window.open(t);r?r.reload():console.warn("暂不支持自动跳转",e);},reload:()=>{console.log("reload");}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:r})=>{switch(e){case"listview":return `amis-${t}-${r}-listview`;case"form":return `amis-${t}-${r}-form`;case"detail":return `amis-${t}-${r}-detail`;default:return `amis-${t}-${r}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue,getTreeOptions:getTreeOptions,getClosestAmisComponentByType:getClosestAmisComponentByType,isFilterFormValuesEmpty:isFilterFormValuesEmpty,getSearchFilter:e=>{var n=[];return _.each(e,(e,t)=>{var r,o;_.isEmpty(e)&&!_.isBoolean(e)||(_.startsWith(t,"__searchable__between__")?n.push([""+t.replace("__searchable__between__",""),"between",e]):_.startsWith(t,"__searchable__")&&(_.isString(e)?n.push([""+t.replace("__searchable__",""),"contains",e]):_.isObject(e)&&e.o?(o=[[(r=""+t.replace("__searchable__",""))+"/o","=",e.o]],e.ids.length&&o.push([r+"/ids","=",e.ids]),n.push(o)):n.push([""+t.replace("__searchable__",""),"=",e])));}),n},getKeywordsSearchFilter:(e,t)=>{const n=[];var a;return e&&t&&(a=e.split(/\s+/),a=_$1.compact(a),t.forEach(function(r,e){let o=[];1==a.length?o=[r,"contains",a[0]]:a.forEach(function(e,t){o.push([r,"contains",e]),t<a.length-1&&o.push("and");}),o.length&&(n.push(o),e<t.length-1&&n.push("or"));})),n},getFormulaVariables:(e,t=!0)=>{const r=[];return _$1.isEmpty(e)||(r.push({label:"表单字段",children:[]}),lodash.forEach(e,function(e){r[0].children.push({label:e.label,value:e.value});})),t&&r.push({label:"全局变量",children:[{label:"用户ID",value:"global['userId']"},{label:"工作区ID",value:"global['spaceId']"},{label:"用户",children:[{label:"姓名",value:"global['user']['name']"},{label:"邮件",value:"global['user']['email']"},{label:"语言",value:"global['user']['language']"},{label:"简档",value:"global['user']['profile']"},{label:"权限集",value:"global['user']['roles']"},{label:"主部门ID",value:"global['user']['organization']['_id']"},{label:"部门(含上级)",value:"global['user']['organizations_parents']"},{label:"主分部ID",value:"global['user']['company_id']"},{label:"分部(多选)",value:"global['user']['company_ids']"},{label:"人员ID",value:"global['user']['spaceUserId']"},{label:"是否是工作区管理员",value:"global['user']['is_space_admin']"}]}]}),r},traverseNestedArrayFormula:(t,r)=>{var o=window.amisRequire&&window.amisRequire("amis")||Amis;for(let e=0;e<t.length;e++)if(Array.isArray(t[e]))SteedosUI$1.traverseNestedArrayFormula(t[e],r);else if(/\$\{([^}]*)\}/.test(t[e]))try{t[e]=o.evaluate(t[e],r);}catch(e){console.error("运行过滤器公式时出现错误:",e);}}});var _STANDARD_SPRITE_IDS="account,account_info,action_list_component,actions_and_buttons,activation_target,activations,address,agent_home,agent_session,aggregation_policy,all,announcement,answer_best,answer_private,answer_public,apex,apex_plugin,app,approval,apps,apps_admin,article,asset_action,asset_action_source,asset_audit,asset_downtime_period,asset_object,asset_relationship,asset_state_period,asset_warranty,assigned_resource,assignment,attach,avatar,avatar_loading,bot,bot_training,branch_merge,brand,budget,budget_allocation,bundle_config,bundle_policy,business_hours,buyer_account,buyer_group,calculated_insights,calibration,call,call_coaching,call_history,campaign,campaign_members,cancel_checkout,canvas,capacity_plan,care_request_reviewer,carousel,case,case_change_status,case_comment,case_email,case_log_a_call,case_milestone,case_transcript,case_wrap_up,catalog,category,change_request,channel_program_history,channel_program_levels,channel_program_members,channel_programs,chart,checkout,choice,client,cms,coaching,code_playground,code_set,code_set_bundle,collection,collection_variable,connected_apps,constant,contact,contact_list,contact_request,contract,contract_line_item,contract_payment,coupon_codes,currency,currency_input,custom,custom_component_task,custom_notification,customer_360,customer_lifecycle_analytics,customer_portal_users,customers,dashboard,dashboard_component,dashboard_ea,data_integration_hub,data_mapping,data_model,data_streams,datadotcom,dataset,date_input,date_time,decision,default,delegated_account,device,discounts,display_rich_text,display_text,document,document_reference,drafts,duration_downscale,dynamic_record_choice,education,einstein_replies,email,email_chatter,employee,employee_asset,employee_contact,employee_job,employee_job_position,employee_organization,empty,endorsement,entitlement,entitlement_policy,entitlement_process,entitlement_template,entity,entity_milestone,environment_hub,event,events,expense,expense_report,expense_report_entry,feed,feedback,field_sales,file,filter,filter_criteria,filter_criteria_rule,first_non_empty,flow,folder,forecasts,form,formula,fulfillment_order,generic_loading,global_constant,goals,group_loading,groups,guidance_center,hierarchy,high_velocity_sales,historical_adherence,holiday_operating_hours,home,household,identifier,immunization,incident,individual,insights,instore_locations,investment_account,invocable_action,iot_context,iot_orchestrations,javascript_button,job_family,job_position,job_profile,kanban,key_dates,knowledge,lead,lead_insights,lead_list,letterhead,lightning_component,lightning_usage,link,list_email,live_chat,live_chat_visitor,location,location_permit,log_a_call,logging,loop,macros,maintenance_asset,maintenance_plan,maintenance_work_rule,marketing_actions,med_rec_recommendation,med_rec_statement_recommendation,medication,medication_dispense,medication_ingredient,medication_reconciliation,medication_statement,merge,messaging_conversation,messaging_session,messaging_user,metrics,multi_picklist,multi_select_checkbox,network_contract,news,note,number_input,observation_component,omni_supervisor,operating_hours,opportunity,opportunity_contact_role,opportunity_splits,orchestrator,order_item,orders,outcome,output,partner_fund_allocation,partner_fund_claim,partner_fund_request,partner_marketing_budget,partners,password,past_chat,patient_medication_dosage,payment_gateway,people,performance,person_account,person_language,person_name,photo,picklist_choice,picklist_type,planogram,poll,portal,portal_roles,portal_roles_and_subordinates,post,practitioner_role,price_book_entries,price_books,pricebook,pricing_workspace,problem,procedure,procedure_detail,process,process_exception,product,product_consumed,product_consumed_state,product_item,product_item_transaction,product_quantity_rules,product_request,product_request_line_item,product_required,product_service_campaign,product_service_campaign_item,product_transfer,product_transfer_state,product_warranty_term,product_workspace,products,promotion_segments,promotions,promotions_workspace,propagation_policy,proposition,qualifications,question_best,question_feed,queue,quick_text,quip,quip_sheet,quotes,radio_button,read_receipts,recent,recipe,record,record_create,record_delete,record_lookup,record_signature_task,record_update,recycle_bin,related_list,relationship,reply_text,report,report_type,resource_absence,resource_capacity,resource_preference,resource_skill,restriction_policy,return_order,return_order_line_item,reward,rtc_presence,sales_cadence,sales_cadence_target,sales_channel,sales_path,sales_value,salesforce_cms,scan_card,schedule_objective,scheduling_constraint,scheduling_policy,screen,search,section,segments,selling_model,serialized_product,serialized_product_transaction,service_appointment,service_appointment_capacity_usage,service_contract,service_crew,service_crew_member,service_report,service_request,service_request_detail,service_resource,service_territory,service_territory_location,service_territory_member,service_territory_policy,settings,shift,shift_pattern,shift_pattern_entry,shift_preference,shift_scheduling_operation,shift_template,shift_type,shipment,skill,skill_entity,skill_requirement,slack,slider,sms,snippet,snippets,sobject,sobject_collection,social,solution,sort,sort_policy,sossession,stage,stage_collection,steps,store,store_group,story,strategy,survey,swarm_request,swarm_session,system_and_global_variable,tableau,task,task2,team_member,template,text,text_template,textarea,textbox,thanks,thanks_loading,timesheet,timesheet_entry,timeslot,today,toggle,topic,topic2,tour,tour_check,trailhead,trailhead_alt,travel_mode,unified_health_score,unmatched,user,user_role,variable,variation_attribute_setup,variation_products,video,visit_templates,visits,visualforce_page,voice_call,waits,warranty_term,webcart,work_capacity_limit,work_capacity_usage,work_contract,work_forecast,work_order,work_order_item,work_plan,work_plan_rule,work_plan_template,work_plan_template_entry,work_queue,work_step,work_step_template,work_type,work_type_group,workforce_engagement";const sldsIcons={standard:_STANDARD_SPRITE_IDS.split(",")};var organizationsTree={getSearchableFields:function(e){var n=["text","textarea","autonumber","url","email"];var a=[],s=e.context.uiSchema;return s&&_$1__namespace.each(s.fields,function(e){var t,r,o;t=e,r=s.NAME_FIELD_KEY,(o=!1!==(o=t.searchable)&&t.name===r?!0:o)&&-1<n.indexOf(t.type)&&a.push(e.name);}),a},getApiRequestAdaptor:function(e,t,r){var o="__keywords",n=t.__lookupField;if((r=void 0===r?{}:r).isLookup){if("loadOptions"===t.op)return s=[["_id","=",t.value]],Object.assign({},e,{method:"post",url:"/graphql",data:{query:"{rows:organizations(filters: "+JSON.stringify(s)+', top: 5000, skip: 0, sort: "sort_no desc"){_id,fullname,name,sort_no,_display:_ui{sort_no},parent,children}}'}});n?o="__keywords_lookup__".concat(n.name.replace(/\./g,"_"),"__to__").concat(n.reference_to):(o="",console.error("lookup字段快速搜索异常,作用域中未找到变量__lookupField"));}var a,t=this.getSearchableFields(e),s=[],i=(r.isLookup&&(a=n.inFilterForm,(l=n.listviewFilter)&&l.length&&!a&&(s=l)),JSON.parse(JSON.stringify(e.context))),l=SteedosUI$1.getSearchFilter(i)||[],l=(0<l.length&&(s=0<s.length?[s,"and",l]:l),t&&t.forEach(function(e){var t=i[e];_$1__namespace.isString(t)?s.push([e,"contains",t]):(_$1__namespace.isArray(t)||_$1__namespace.isBoolean(t)||t)&&s.push([e,"=",t]);}),SteedosUI$1.getKeywordsSearchFilter(i[o],t)),n=(l&&0<l.length&&s.push(l),r.isLookup&&((o=n.filters)&&o.length&&(SteedosUI$1.traverseNestedArrayFormula(o,e.context),s.push(o)),a=n.inFilterForm,"string"==typeof(t=n.listviewFiltersFunction)&&(t=new Function("return ".concat(t))()),"string"==typeof(l=n.filtersFunction||n._filtersFunction)&&(l=new Function("return ".concat(l))()),t&&!a&&(r=t(s,e.context))&&r.length&&s.push(r),l&&!a&&(o=l(s,e.context))&&0<o.length&&s.push(o)),e.data={},0<s.length&&Object.assign(e.data,{filters:JSON.stringify(s)}),e.body&&e.body.queryFields);return n&&Object.assign(e.data,{fields:n}),e.body.$self&&(e.body.$self.context&&e.body.$self.context.rootUrl,e.url="/service/api/organizations/root"),e},getApiAdaptor:function(e,t,r,o,n){return (n=void 0===n?{}:n).isLookup&&"loadOptions"===o.op?(n=_$1__namespace.map(e.data.rows,function(e){return delete e.children,delete e.parent,e}),e.data.rows=n):(o=r.data&&r.data.filters,e.data=__assign(__assign({},e.data),{isFilter:!!o}),e.data.__rootQueryFields=r.data&&r.data.fields,(e.data.rows||[]).forEach(function(e){e.__rootQueryFields=r.data&&r.data.fields;})),e},getDeferApiRequestAdaptor:function(e,t,r){var o=[],n=JSON.parse(JSON.stringify(e.context))._id,n=(n&&(o=[["parent","=",n]]),t&&t.__rootQueryFields||"_id,fullname,name,sort_no,hidden,_display:_ui{sort_no,hidden},parent,children");return Object.assign({},e,{data:{query:"{rows:organizations(filters: "+JSON.stringify(o)+', top: 5000, skip: 0, sort: "sort_no desc"){'+n+"}}"}})},getDeferApiAdaptor:function(e,t,r,o,n){var a=e.data;return a.children||(a.rows=a.rows.map(function(e){return e.defer=!(!e.children||!e.children.length),delete e.children,e}),a.children=a.rows,delete a.rows,delete a.count),e}},getBuilderContext=function(){return "undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({resources:{sldsIcons:sldsIcons},organizationsTree:organizationsTree,getRootUrl:function(e){var t=getBuilderContext();return t.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return (e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e);}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,r=e.authToken;return t&&r?"Bearer ".concat(t,",").concat(r):null}catch(e){console.error(e);}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"!=typeof window&&(window.Steedos?window.Steedos=Object.assign(Steedos$1,window.Steedos):window.Steedos=Steedos$1),"undefined"!=typeof window&&(window.SteedosUI?window.SteedosUI=Object.assign(SteedosUI$1,window.SteedosUI):window.SteedosUI=SteedosUI$1);
28672
+ var __assign=function(){return (__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,r){return !1}},standard_new:{visible:function(e,t,r){return "cms_files"!==e&&"instances"!==e&&(r?r.allowCreate:void 0)}},standard_edit:{visible:function(e,t,r){if(r)return r.allowEdit}},standard_delete:{visible:function(e,t,r){if(r)return r.allowDelete}},standard_import_data:{visible:function(e,t,r){var n=this.object;if(r)return r.allowCreate&&n.hasImportTemplates}},standard_approve:{visible:function(e,t,r){return !1}},standard_view_instance:{visible:function(e,t,r){return !1}},standard_submit_for_approval:{visible:function(e,t,r){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,r){return !1}},standard_delete_many:{visible:function(e,t,r){return !RegExp("\\w+/view/\\w+").test(location.pathname)&&(r?r.allowDelete:void 0)}},standard_export_excel:{visible:function(e,t,r){return !1}}}}},authRequest=function(e,t){var a=null;e=Steedos.absoluteUrl(e);try{var r=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],n={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(t){if(r&&r.length)return r.forEach(function(e){return t.setRequestHeader(e.name,e.value)})},success:function(e){a=e;},error:function(e,t,r){var n,o;e.responseJSON&&e.responseJSON.error?(n=e.responseJSON.error,o=void(a={error:n}),o=n.reason||n.message||n,console.error(o)):console.error(e.responseJSON);}};return $.ajax(Object.assign({},n,t)),a}catch(e){console.error(e);}};function _extends(){return (_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);}return e}).apply(this,arguments)}const newFunctionComponent=o=>e=>{const[t,r]=React.useState(!0);var n=()=>{r(!1);};return _$1.has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{r(!0);},close:n}),React__default["default"].createElement(o,_extends({visible:t,onCancel:n,onClose:n},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},e))},newComponentRender=(r,n)=>(e,t)=>{e.name||(e.name=r+"-"+(e.name||"default")),(t=t||document.getElementById(`steedos-${r}-root-`+e.name))||((t=document.createElement("div")).setAttribute("id",`steedos-${r}-root-`+e.name),document.body.appendChild(t));e=React__default["default"].createElement(newFunctionComponent(n),e);ReactDOM.createRoot(t).render(e);},Modal=_$1.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),_$1.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e);}),""+t.join(" ")},getFindOneQuery=(e,t,r)=>{e=e.replace(/\./g,"_");r=getGraphqlFieldsQuery(r);let n="";t=[`id: "${t}"`];return `{record:${e}__findOne${n=0<t.length?`(${t.join(",")})`:n}{${r}}}`},SObject={getRecord:async(e,t,r)=>{return (await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,r)})})).data.record},getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:r})=>{canSaveFilter(t),r.filters&&(r.filters=filtersToConditions(r.filters));},getVisibleFilter:(e,t)=>{return t||(canSaveFilter(e)?e.filters:void 0)},getQueryFilter:(e,t)=>{return canSaveFilter(e)?ListView.getVisibleFilter(e,t):_$1.isEmpty(t)?e.filters:[e.filters,"and",t]},getFirstListView:async e=>{e=await window.getUISchema(e);return _.first(_.sortBy(_.values(e.list_views),"sort_no"))}},Router={getAppPath({appId:e}){return "/app/"+e},getPagePath(){},getObjectListViewPath({appId:e,objectName:t,listViewName:r}){return `/app/${e}/${t}/grid/`+r},getObjectDetailPath({appId:e,objectName:t,recordId:r}){return `/app/${e}/${t}/view/`+r},getObjectRelatedViewPath({appId:e,masterObjectName:t,masterRecordId:r,objectName:n,foreignKey:o}){return `/app/${e}/${t}/${r}/${n}/grid?related_field_name=`+o}};var withModalWrap=function(t,e){return function(e){return React__namespace.createElement(t,e)}},render=function(e,t,r,n){e=withModalWrap(e),e=React__namespace.createElement(e,__assign({},t));return ReactDOM__default["default"].render(e,r)};const safeRunFunction=(t,r,n,o)=>{try{let e=[];return _$1.isNil(r)||(e=_$1.isArray(r)?r:[r]),t.bind(o||{})(...e)}catch(e){return console.log(e),n}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js);}}const isExpression=function(e){var t,r;return "string"==typeof e&&(t=/^{{(function.+)}}$/,r=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(r)))},getMoment=()=>window.amisRequire?window.amisRequire("moment"):window.moment||void 0,getGlobalNowData=()=>{var e=new Date,t=getMoment();let r=t().utc(),n=(r.set("hours",0),r.set("minutes",0),r.set("seconds",0),r.set("milliseconds",0),r=r.toDate(),t());return n.set("year",1970),n.set("month",0),n.set("date",1),n.set("hours",n.hours()+n.utcOffset()/60),n.set("seconds",0),n.set("milliseconds",0),n=n.toDate(),{now:e,today:r,timeNow:n}},parseSingleExpression=function(t,e,r,n){var o,a;if(n&&Object.assign(n,getGlobalNowData()),a=function(e,t){return "#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(e=void 0===e?{}:e,function(e){return "string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(r))||{},"string"!=typeof t)return t;o="__G_L_O_B_A_L__",e="\n return "+t.substring(2,t.length-2).replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,o)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+o+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(a));try{return Function(e)()}catch(e){return console.log(e,t,r),t}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,getGlobalNowData:getGlobalNowData,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(express,multiple)=>{const reg=/^\{\w+(\.*\w+)*\}$/,reg2=/^{{[\s\S]*}}$/;let result=express;if(reg.test(express)&&(result=-1<express.indexOf("userId")||-1<express.indexOf("spaceId")||-1<express.indexOf("user.")||-1<express.indexOf("now")||-1<express.indexOf("today")||-1<express.indexOf("timeNow")?`{${express}}`.replace("{{","{{global."):`{${express}}`.replace("{{","{{formData."),multiple&&(result=result.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),reg2.test(express)&&(-1<express.indexOf("function")||-1<express.indexOf("=>"))){let regex=/\{\{([\s\S]*)\}\}/,matches=regex.exec(express);if(matches&&1<matches.length){let functionCode=matches[1];result=eval("("+functionCode+")")();}}return result},getFieldDefaultValue=(e,t)=>{if(!e)return null;let r=e.defaultValue;e._defaultValue&&(r=safeEval(`(${e._defaultValue})`)),_$1.isFunction(r)&&(r=safeRunFunction(r,[],null,{name:e.name})),_$1__namespace.isString(r)&&(r=getCompatibleDefaultValueExpression(r,e.multiple));var n=isExpression(r);switch(n&&("date"===e.type?r=r.replace(/\bglobal.now\b/g,"global.today"):"time"===e.type&&(r=r.replace(/\bglobal.now\b/g,"global.timeNow")),r=parseSingleExpression(r,{},"#",t)),e.type){case"select":var o=e.data_type||"text";!r||n||e.multiple||("text"!==o||_$1.isString(r)?"number"===o&&_$1.isString(r)?r=Number(r):"boolean"===o&&_$1.isString(r)&&(r="true"===r.toLowerCase()||"1"===r):r=String(r));break;case"number":_$1.isString(r)&&(r=Number(r));break;case"boolean":_$1.isString(r)?r="true"===r.toLowerCase()||"1"===r:_$1.isBoolean(r)||(r=!1);break;case"time":if(_$1.isDate(r))return moment(r).format("1970-01-01THH:mm:00.000[Z]");case"date":if(_$1.isDate(r))return moment(r).format("YYYY-MM-DDT00:00:00.000[Z]");case"datetime":if(_$1.isDate(r))return moment(r).format("YYYY-MM-DDTHH:mm:00.000Z")}return r};function getTreeOptions(t,e){const o=e?.valueField||"value",r=(e?.labelField,e?.unfoldedNum||1),n=[],a=(e,t,r,n)=>{return e.children&&"object"==typeof e.children[0]?e.children:r?(e=_.filter(t,e=>_.includes(r,e[o])),_.each(e,e=>{1<=n?(e.unfolded=!0,e.children&&(e.children=a(e,t,e.children,n-1))):e.children&&(e.children=a(e,t,e.children,n));}),e):void 0};for(var s=t,i=0;i<s.length;i++)if(s[i].noParent=0,s[i].unfolded=!1,s[i].parent){let e=1;for(var l=0;l<s.length;l++)s[i].parent==s[l][o]&&(e=0);1==e&&(s[i].noParent=1);}else s[i].noParent=1;return _.each(t,e=>{1==e.noParent&&(1<=r?(e.unfolded=!0,n.push(Object.assign({},e,{children:a(e,t,e.children,r-1)}))):n.push(Object.assign({},e,{children:a(e,t,e.children,r)})));}),n}function getClosestAmisComponentByType(t,r,n){let o=(n=n||{}).name;var e=n.direction||"up";let a=t.getComponents().find(function(e){return e.props.type===r&&(!o||e.props.name===o)});if(a)return a;if("down"===e){if(t.children&&t.children.length){for(let e=0;e<t.children.length&&!(a=getClosestAmisComponentByType(t.children[e],r,n));e++);return a}}else if("up"===e&&t.parent)return getClosestAmisComponentByType(t.parent,r,n)}function isFilterFormValuesEmpty(e){let t=!0;var e=_.pickBy(e,function(e,t){return /^__searchable__/g.test(t)});return _.isEmpty(e)||(e=_.omitBy(e,function(e){return _.isNil(e)||_.isObject(e)&&_.isEmpty(e)||_.isArray(e)&&_.isEmpty(e.filter(function(e){return !_.isNil(e)}))||_.isString(e)&&0===e.length}),_.isEmpty(e)||(t=!1)),t}const SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef(e){return SteedosUI$1.refs[e]},router:{go:(e,t)=>{var r=window.FlowRouter;if(t)return r?r.go(t):window.open(t);r?r.reload():console.warn("暂不支持自动跳转",e);},reload:()=>{console.log("reload");}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:r})=>{switch(e){case"listview":return `amis-${t}-${r}-listview`;case"form":return `amis-${t}-${r}-form`;case"detail":return `amis-${t}-${r}-detail`;default:return `amis-${t}-${r}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue,getTreeOptions:getTreeOptions,getClosestAmisComponentByType:getClosestAmisComponentByType,isFilterFormValuesEmpty:isFilterFormValuesEmpty,getSearchFilter:e=>{var o=[];return _.each(e,(e,t)=>{var r,n;_.isEmpty(e)&&!_.isBoolean(e)||(_.startsWith(t,"__searchable__between__")?o.push([""+t.replace("__searchable__between__",""),"between",e]):_.startsWith(t,"__searchable__")&&(_.isString(e)?o.push([""+t.replace("__searchable__",""),"contains",e]):_.isObject(e)&&e.o?(n=[[(r=""+t.replace("__searchable__",""))+"/o","=",e.o]],e.ids.length&&n.push([r+"/ids","=",e.ids]),o.push(n)):o.push([""+t.replace("__searchable__",""),"=",e])));}),o},getSearchFilterFormValues:(t,o)=>{if(!_.isObject(t)&&_.isEmpty(t))return t;{let e=t;return o&&(e=_.pickBy(t,function(e,t){return !!o[t]})),_.mapKeys(e,function(e,t){let r="__searchable__";var n;return !o||"number"!==(n=o[t]?.type)&&"currency"!==n&&"date"!==n&&"datetime"!==n&&"time"!==n||(r+="between__"),r+t})}},getKeywordsSearchFilter:(e,t)=>{const o=[];var a;return e&&t&&(a=e.split(/\s+/),a=_$1.compact(a),t.forEach(function(r,e){let n=[];1==a.length?n=[r,"contains",a[0]]:a.forEach(function(e,t){n.push([r,"contains",e]),t<a.length-1&&n.push("and");}),n.length&&(o.push(n),e<t.length-1&&o.push("or"));})),o},getFormulaVariables:(e,t=!0)=>{const r=[];return _$1.isEmpty(e)||(r.push({label:"表单字段",children:[]}),lodash.forEach(e,function(e){r[0].children.push({label:e.label,value:e.value});})),t&&r.push({label:"全局变量",children:[{label:"用户ID",value:"global['userId']"},{label:"工作区ID",value:"global['spaceId']"},{label:"用户",children:[{label:"姓名",value:"global['user']['name']"},{label:"邮件",value:"global['user']['email']"},{label:"语言",value:"global['user']['language']"},{label:"简档",value:"global['user']['profile']"},{label:"权限集",value:"global['user']['roles']"},{label:"主部门ID",value:"global['user']['organization']['_id']"},{label:"部门(含上级)",value:"global['user']['organizations_parents']"},{label:"主分部ID",value:"global['user']['company_id']"},{label:"分部(多选)",value:"global['user']['company_ids']"},{label:"人员ID",value:"global['user']['spaceUserId']"},{label:"是否是工作区管理员",value:"global['user']['is_space_admin']"}]}]}),r},traverseNestedArrayFormula:(t,r)=>{var n=window.amisRequire&&window.amisRequire("amis")||Amis;for(let e=0;e<t.length;e++)if(Array.isArray(t[e]))SteedosUI$1.traverseNestedArrayFormula(t[e],r);else if(/\$\{([^}]*)\}/.test(t[e]))try{t[e]=n.evaluate(t[e],r);}catch(e){console.error("运行过滤器公式时出现错误:",e);}}});var _STANDARD_SPRITE_IDS="account,account_info,action_list_component,actions_and_buttons,activation_target,activations,address,agent_home,agent_session,aggregation_policy,all,announcement,answer_best,answer_private,answer_public,apex,apex_plugin,app,approval,apps,apps_admin,article,asset_action,asset_action_source,asset_audit,asset_downtime_period,asset_object,asset_relationship,asset_state_period,asset_warranty,assigned_resource,assignment,attach,avatar,avatar_loading,bot,bot_training,branch_merge,brand,budget,budget_allocation,bundle_config,bundle_policy,business_hours,buyer_account,buyer_group,calculated_insights,calibration,call,call_coaching,call_history,campaign,campaign_members,cancel_checkout,canvas,capacity_plan,care_request_reviewer,carousel,case,case_change_status,case_comment,case_email,case_log_a_call,case_milestone,case_transcript,case_wrap_up,catalog,category,change_request,channel_program_history,channel_program_levels,channel_program_members,channel_programs,chart,checkout,choice,client,cms,coaching,code_playground,code_set,code_set_bundle,collection,collection_variable,connected_apps,constant,contact,contact_list,contact_request,contract,contract_line_item,contract_payment,coupon_codes,currency,currency_input,custom,custom_component_task,custom_notification,customer_360,customer_lifecycle_analytics,customer_portal_users,customers,dashboard,dashboard_component,dashboard_ea,data_integration_hub,data_mapping,data_model,data_streams,datadotcom,dataset,date_input,date_time,decision,default,delegated_account,device,discounts,display_rich_text,display_text,document,document_reference,drafts,duration_downscale,dynamic_record_choice,education,einstein_replies,email,email_chatter,employee,employee_asset,employee_contact,employee_job,employee_job_position,employee_organization,empty,endorsement,entitlement,entitlement_policy,entitlement_process,entitlement_template,entity,entity_milestone,environment_hub,event,events,expense,expense_report,expense_report_entry,feed,feedback,field_sales,file,filter,filter_criteria,filter_criteria_rule,first_non_empty,flow,folder,forecasts,form,formula,fulfillment_order,generic_loading,global_constant,goals,group_loading,groups,guidance_center,hierarchy,high_velocity_sales,historical_adherence,holiday_operating_hours,home,household,identifier,immunization,incident,individual,insights,instore_locations,investment_account,invocable_action,iot_context,iot_orchestrations,javascript_button,job_family,job_position,job_profile,kanban,key_dates,knowledge,lead,lead_insights,lead_list,letterhead,lightning_component,lightning_usage,link,list_email,live_chat,live_chat_visitor,location,location_permit,log_a_call,logging,loop,macros,maintenance_asset,maintenance_plan,maintenance_work_rule,marketing_actions,med_rec_recommendation,med_rec_statement_recommendation,medication,medication_dispense,medication_ingredient,medication_reconciliation,medication_statement,merge,messaging_conversation,messaging_session,messaging_user,metrics,multi_picklist,multi_select_checkbox,network_contract,news,note,number_input,observation_component,omni_supervisor,operating_hours,opportunity,opportunity_contact_role,opportunity_splits,orchestrator,order_item,orders,outcome,output,partner_fund_allocation,partner_fund_claim,partner_fund_request,partner_marketing_budget,partners,password,past_chat,patient_medication_dosage,payment_gateway,people,performance,person_account,person_language,person_name,photo,picklist_choice,picklist_type,planogram,poll,portal,portal_roles,portal_roles_and_subordinates,post,practitioner_role,price_book_entries,price_books,pricebook,pricing_workspace,problem,procedure,procedure_detail,process,process_exception,product,product_consumed,product_consumed_state,product_item,product_item_transaction,product_quantity_rules,product_request,product_request_line_item,product_required,product_service_campaign,product_service_campaign_item,product_transfer,product_transfer_state,product_warranty_term,product_workspace,products,promotion_segments,promotions,promotions_workspace,propagation_policy,proposition,qualifications,question_best,question_feed,queue,quick_text,quip,quip_sheet,quotes,radio_button,read_receipts,recent,recipe,record,record_create,record_delete,record_lookup,record_signature_task,record_update,recycle_bin,related_list,relationship,reply_text,report,report_type,resource_absence,resource_capacity,resource_preference,resource_skill,restriction_policy,return_order,return_order_line_item,reward,rtc_presence,sales_cadence,sales_cadence_target,sales_channel,sales_path,sales_value,salesforce_cms,scan_card,schedule_objective,scheduling_constraint,scheduling_policy,screen,search,section,segments,selling_model,serialized_product,serialized_product_transaction,service_appointment,service_appointment_capacity_usage,service_contract,service_crew,service_crew_member,service_report,service_request,service_request_detail,service_resource,service_territory,service_territory_location,service_territory_member,service_territory_policy,settings,shift,shift_pattern,shift_pattern_entry,shift_preference,shift_scheduling_operation,shift_template,shift_type,shipment,skill,skill_entity,skill_requirement,slack,slider,sms,snippet,snippets,sobject,sobject_collection,social,solution,sort,sort_policy,sossession,stage,stage_collection,steps,store,store_group,story,strategy,survey,swarm_request,swarm_session,system_and_global_variable,tableau,task,task2,team_member,template,text,text_template,textarea,textbox,thanks,thanks_loading,timesheet,timesheet_entry,timeslot,today,toggle,topic,topic2,tour,tour_check,trailhead,trailhead_alt,travel_mode,unified_health_score,unmatched,user,user_role,variable,variation_attribute_setup,variation_products,video,visit_templates,visits,visualforce_page,voice_call,waits,warranty_term,webcart,work_capacity_limit,work_capacity_usage,work_contract,work_forecast,work_order,work_order_item,work_plan,work_plan_rule,work_plan_template,work_plan_template_entry,work_queue,work_step,work_step_template,work_type,work_type_group,workforce_engagement";const sldsIcons={standard:_STANDARD_SPRITE_IDS.split(",")};var organizationsTree={getSearchableFields:function(e){var o=["text","textarea","autonumber","url","email"];var a=[],s=e.context.uiSchema;return s&&_$1__namespace.each(s.fields,function(e){var t,r,n;t=e,r=s.NAME_FIELD_KEY,(n=!1!==(n=t.searchable)&&t.name===r?!0:n)&&-1<o.indexOf(t.type)&&a.push(e.name);}),a},getApiRequestAdaptor:function(e,t,r){var n="__keywords",o=t.__lookupField;if((r=void 0===r?{}:r).isLookup){if("loadOptions"===t.op)return s=[["_id","=",t.value]],Object.assign({},e,{method:"post",url:"/graphql",data:{query:"{rows:organizations(filters: "+JSON.stringify(s)+', top: 5000, skip: 0, sort: "sort_no desc"){_id,fullname,name,sort_no,_display:_ui{sort_no},parent,children}}'}});o?n="__keywords_lookup__".concat(o.name.replace(/\./g,"_"),"__to__").concat(o.reference_to):(n="",console.error("lookup字段快速搜索异常,作用域中未找到变量__lookupField"));}var a,t=this.getSearchableFields(e),s=[],i=(r.isLookup&&(a=o.inFilterForm,(l=o.listviewFilter)&&l.length&&!a&&(s=l)),JSON.parse(JSON.stringify(e.context))),l=SteedosUI$1.getSearchFilter(i)||[],l=(0<l.length&&(s=0<s.length?[s,"and",l]:l),t&&t.forEach(function(e){var t=i[e];_$1__namespace.isString(t)?s.push([e,"contains",t]):(_$1__namespace.isArray(t)||_$1__namespace.isBoolean(t)||t)&&s.push([e,"=",t]);}),SteedosUI$1.getKeywordsSearchFilter(i[n],t)),o=(l&&0<l.length&&s.push(l),r.isLookup&&((n=o.filters)&&n.length&&(SteedosUI$1.traverseNestedArrayFormula(n,e.context),s.push(n)),a=o.inFilterForm,"string"==typeof(t=o.listviewFiltersFunction)&&(t=new Function("return ".concat(t))()),"string"==typeof(l=o.filtersFunction||o._filtersFunction)&&(l=new Function("return ".concat(l))()),t&&!a&&(r=t(s,e.context))&&r.length&&s.push(r),l&&!a&&(n=l(s,e.context))&&0<n.length&&s.push(n)),e.data={},0<s.length&&Object.assign(e.data,{filters:JSON.stringify(s)}),e.body&&e.body.queryFields);return o&&Object.assign(e.data,{fields:o}),e.body.$self&&(e.body.$self.context&&e.body.$self.context.rootUrl,e.url="/service/api/organizations/root"),e},getApiAdaptor:function(e,t,r,n,o){return (o=void 0===o?{}:o).isLookup&&"loadOptions"===n.op?(o=_$1__namespace.map(e.data.rows,function(e){return delete e.children,delete e.parent,e}),e.data.rows=o):(n=r.data&&r.data.filters,e.data=__assign(__assign({},e.data),{isFilter:!!n}),e.data.__rootQueryFields=r.data&&r.data.fields,(e.data.rows||[]).forEach(function(e){e.__rootQueryFields=r.data&&r.data.fields;})),e},getDeferApiRequestAdaptor:function(e,t,r){var n=[],o=JSON.parse(JSON.stringify(e.context))._id,o=(o&&(n=[["parent","=",o]]),t&&t.__rootQueryFields||"_id,fullname,name,sort_no,hidden,_display:_ui{sort_no,hidden},parent,children");return Object.assign({},e,{data:{query:"{rows:organizations(filters: "+JSON.stringify(n)+', top: 5000, skip: 0, sort: "sort_no desc"){'+o+"}}"}})},getDeferApiAdaptor:function(e,t,r,n,o){var a=e.data;return a.children||(a.rows=a.rows.map(function(e){return e.defer=!(!e.children||!e.children.length),delete e.children,e}),a.children=a.rows,delete a.rows,delete a.count),e}},getBuilderContext=function(){return "undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({resources:{sldsIcons:sldsIcons},organizationsTree:organizationsTree,getRootUrl:function(e){var t=getBuilderContext();return t.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return (e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e);}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,r=e.authToken;return t&&r?"Bearer ".concat(t,",").concat(r):null}catch(e){console.error(e);}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"!=typeof window&&(window.Steedos?window.Steedos=Object.assign(Steedos$1,window.Steedos):window.Steedos=Steedos$1),"undefined"!=typeof window&&(window.SteedosUI?window.SteedosUI=Object.assign(SteedosUI$1,window.SteedosUI):window.SteedosUI=SteedosUI$1);
28466
28673
 
28467
28674
  var index_esm = /*#__PURE__*/Object.freeze({
28468
28675
  __proto__: null,