@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.
@@ -3682,8 +3682,8 @@ function getComparableAmisVersion() {
3682
3682
  /*
3683
3683
  * @Author: baozhoutao@steedos.com
3684
3684
  * @Date: 2022-05-23 09:53:08
3685
- * @LastEditors: baozhoutao@steedos.com
3686
- * @LastEditTime: 2024-11-17 13:10:08
3685
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
3686
+ * @LastEditTime: 2025-04-08 10:55:41
3687
3687
  * @Description:
3688
3688
  */
3689
3689
 
@@ -3837,9 +3837,10 @@ function getRelatedFieldTpl(field, ctx){
3837
3837
  const href = Router$1.getObjectDetailPath({
3838
3838
  formFactor: ctx.formFactor, appId: "${appId}", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`
3839
3839
  });
3840
- if(ctx.isRelated && window.innerWidth >= 768){
3840
+ if (window.innerWidth >= 768) { //(ctx.isRelated || isObjectListview) && window.innerWidth >= 768
3841
+ // 相关表字段,包括列表视图、对象表格组件中的lookup/master_detail字段,在PC端显示时,点击字段值,不跳转到详情页而是右侧弹出drawer
3841
3842
  labelTpl = `<a href="${href}" ${linkTarget} onclick="return false;">${labelTpl}</a>`;
3842
- }else {
3843
+ } else {
3843
3844
  labelTpl = `<a href="${href}" ${linkTarget}>${labelTpl}</a>`;
3844
3845
  }
3845
3846
 
@@ -4637,6 +4638,7 @@ var frontend_download$1 = "Download";
4637
4638
  var frontend_form_save$1 = "Save";
4638
4639
  var frontend_form_save_and_new$1 = "Save and New";
4639
4640
  var frontend_form_cancel$1 = "Cancel";
4641
+ var frontend_form_reset$1 = "Reset";
4640
4642
  var frontend_form_new$1 = "New";
4641
4643
  var frontend_form_edit$1 = "Edit";
4642
4644
  var frontend_form_preview$1 = "Preview";
@@ -4655,7 +4657,7 @@ var frontend_display_type_is_split$1 = "Split View";
4655
4657
  var frontend_display_as$1 = "Displayed as";
4656
4658
  var frontend_record_sum$1 = "items";
4657
4659
  var frontend_button_reload_tooltip$1 = "Refresh";
4658
- var frontend_button_search_tooltip$1 = "Advanced Search";
4660
+ var frontend_button_search_tooltip$1 = "Filter";
4659
4661
  var frontend_fields_filter_button_search$1 = "Search";
4660
4662
  var frontend_fields_filter_button_settings$1 = "Set search options";
4661
4663
  var frontend_button_listview_control_tooltip$1 = "List View Controls";
@@ -4727,6 +4729,7 @@ var en_us = {
4727
4729
  frontend_form_save: frontend_form_save$1,
4728
4730
  frontend_form_save_and_new: frontend_form_save_and_new$1,
4729
4731
  frontend_form_cancel: frontend_form_cancel$1,
4732
+ frontend_form_reset: frontend_form_reset$1,
4730
4733
  frontend_form_new: frontend_form_new$1,
4731
4734
  frontend_form_edit: frontend_form_edit$1,
4732
4735
  frontend_form_preview: frontend_form_preview$1,
@@ -4818,6 +4821,7 @@ var frontend_download = "下载";
4818
4821
  var frontend_form_save = "保存";
4819
4822
  var frontend_form_save_and_new = "保存并新建";
4820
4823
  var frontend_form_cancel = "取消";
4824
+ var frontend_form_reset = "重置";
4821
4825
  var frontend_form_new = "新建";
4822
4826
  var frontend_form_edit = "编辑";
4823
4827
  var frontend_form_preview = "预览";
@@ -4836,7 +4840,7 @@ var frontend_display_type_is_split = "分栏视图";
4836
4840
  var frontend_display_as = "显示为";
4837
4841
  var frontend_record_sum = "个项目";
4838
4842
  var frontend_button_reload_tooltip = "刷新";
4839
- var frontend_button_search_tooltip = "高级搜索";
4843
+ var frontend_button_search_tooltip = "筛选";
4840
4844
  var frontend_fields_filter_button_search = "搜索";
4841
4845
  var frontend_fields_filter_button_settings = "选择搜索项";
4842
4846
  var frontend_button_listview_control_tooltip = "列表视图控制";
@@ -4909,6 +4913,7 @@ var zh_cn = {
4909
4913
  frontend_form_save: frontend_form_save,
4910
4914
  frontend_form_save_and_new: frontend_form_save_and_new,
4911
4915
  frontend_form_cancel: frontend_form_cancel,
4916
+ frontend_form_reset: frontend_form_reset,
4912
4917
  frontend_form_new: frontend_form_new,
4913
4918
  frontend_form_edit: frontend_form_edit,
4914
4919
  frontend_form_preview: frontend_form_preview,
@@ -5076,7 +5081,12 @@ async function getQuickEditSchema(object, columnField, options){
5076
5081
  if (field.disabled) {
5077
5082
  quickEditSchema = false;
5078
5083
  } else {
5079
- var fieldSchema = await convertSFieldToAmisField(field, false, _$1.omit(options, 'buttons'));
5084
+ var fieldCtx = Object.assign({}, _$1.omit(options, 'buttons'), {
5085
+ defaults: Object.assign({}, options.defaults, {
5086
+ formSchema: quickEditSchema
5087
+ })
5088
+ });
5089
+ var fieldSchema = await convertSFieldToAmisField(field, false, fieldCtx);
5080
5090
  //存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary
5081
5091
  if (!!fieldSchema) {
5082
5092
  quickEditSchema.body.push(fieldSchema);
@@ -5509,14 +5519,19 @@ function getFieldWidth(width){
5509
5519
  }
5510
5520
 
5511
5521
  async function getColumnItemOnClick(field, options){
5512
- const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor });
5522
+ let objectApiName = options.objectName;
5523
+ if(!(field.is_name || field.name === options.labelFieldName)){
5524
+ objectApiName = field.reference_to;
5525
+ }
5526
+ const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: objectApiName, formFactor: options.formFactor });
5513
5527
  const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
5514
5528
  "recordId": `\${${options.idFieldName}}`,
5515
5529
  "data": {
5516
5530
  ...recordPage.schema.data,
5517
5531
  "_inDrawer": true, // 用于判断是否在抽屉中
5518
5532
  "recordLoaded": false, // 重置数据加载状态
5519
- "recordId": `\${${options.idFieldName}}`//审批微页面依赖了作用域中的recordId
5533
+ "recordId": `\${${options.idFieldName}}`,//审批微页面依赖了作用域中的recordId
5534
+ "_tableObjectName": options.objectName
5520
5535
  }
5521
5536
  }) : {
5522
5537
  "type": "steedos-record-detail",
@@ -5527,12 +5542,16 @@ async function getColumnItemOnClick(field, options){
5527
5542
  "data": {
5528
5543
  "_inDrawer": true, // 用于判断是否在抽屉中
5529
5544
  "recordLoaded": false, // 重置数据加载状态
5545
+ "_tableObjectName": options.objectName
5530
5546
  }
5531
5547
  };
5532
5548
 
5533
5549
  if(!(field.is_name || field.name === options.labelFieldName)){
5534
5550
  drawerRecordDetailSchema.objectApiName = field.reference_to;
5535
5551
  drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
5552
+ // if (recordPage){
5553
+ // drawerRecordDetailSchema.data.recordId = `\${_display.${field.name}.value}`
5554
+ // }
5536
5555
  }
5537
5556
  return {
5538
5557
  "click": {
@@ -5682,6 +5701,33 @@ async function getTableColumns$1(object, fields, options){
5682
5701
  static: true,
5683
5702
  }, fieldAmis, {name: field.name});
5684
5703
  }
5704
+ else if(field.type === 'lookup' || field.type === 'master_detail'){
5705
+ columnItem = Object.assign({}, {
5706
+ type: "static-wrapper",
5707
+ name: field.name,
5708
+ label: field.label,
5709
+ sortable: field.sortable,
5710
+ width: getFieldWidth(field.width),
5711
+ toggled: field.toggled,
5712
+ className,
5713
+ size: "none",
5714
+ inputClassName: "inline",
5715
+ body: {
5716
+ type: "steedos-field",
5717
+ static: true,
5718
+ tableObjectName: options.objectName,
5719
+ config: {
5720
+ type: "lookup",
5721
+ reference_to: field.reference_to,
5722
+ name: field.name,
5723
+ is_name: field.is_name,
5724
+ label: null,
5725
+ multiple: field.multiple,
5726
+ amis: Object.assign({}, fieldAmis, { label: null })
5727
+ }
5728
+ }
5729
+ }, fieldAmis, {name: field.name});
5730
+ }
5685
5731
  else {
5686
5732
  const tpl = await getFieldTpl(field, options);
5687
5733
  let type = 'static-text';
@@ -5730,10 +5776,20 @@ async function getTableColumns$1(object, fields, options){
5730
5776
  columnItem.defaultColor = null;
5731
5777
  }
5732
5778
 
5733
- if(window.innerWidth >= 768 && ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _$1.isString(field.reference_to) && field.multiple != true)) && options.isRelated){
5779
+ let needClickEvent = false;
5780
+ // if (options.isRelated){
5781
+ // // 子表列表上,Lookup字段和名称字段都需要点击事件
5782
+ // needClickEvent = ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true));
5783
+ // }
5784
+ // else {// if (isObjectListview)
5785
+ // // 列表视图、对象表格中,Lookup字段需要点击事件
5786
+ // needClickEvent = (field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true;
5787
+ // }
5788
+ // lookup字段走steedos-field组件了,所以这里只需要判断子表名称字段才额外加点击事件弹出右侧详情
5789
+ needClickEvent = options.isRelated && (field.is_name || field.name === options.labelFieldName);
5790
+ if(window.innerWidth >= 768 && needClickEvent){
5734
5791
  columnItem.onEvent = await getColumnItemOnClick(field, options);
5735
5792
  }
5736
-
5737
5793
  }
5738
5794
  }
5739
5795
  if(columnItem){
@@ -8085,9 +8141,9 @@ const getSchema$5 = async (uiSchema, ctx) => {
8085
8141
  "body": [
8086
8142
  {
8087
8143
  "type": "button",
8144
+ "level": "primary",
8088
8145
  "label": instance.t('frontend_form_new'),
8089
8146
  "id": "u:standard_new",
8090
- "level": "default",
8091
8147
  "onEvent": {
8092
8148
  "click": {
8093
8149
  "weight": 0,
@@ -8288,8 +8344,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
8288
8344
  /*
8289
8345
  * @Author: 殷亮辉 yinlianghui@hotoa.com
8290
8346
  * @Date: 2023-03-22 09:31:21
8291
- * @LastEditors: baozhoutao@steedos.com
8292
- * @LastEditTime: 2024-02-18 16:06:21
8347
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
8348
+ * @LastEditTime: 2025-04-07 16:02:53
8293
8349
  */
8294
8350
  const getSchema$3 = (uiSchema)=>{
8295
8351
  return {
@@ -8349,6 +8405,17 @@ const getSchema$3 = (uiSchema)=>{
8349
8405
  "_isRelated": "${_isRelated}"
8350
8406
  },
8351
8407
  "expression": `\${_master.objectName != '${uiSchema.name}' && _master.objectName}`
8408
+ },
8409
+ // 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,删除记录后刷新列表
8410
+ {
8411
+ "actionType": "broadcast",
8412
+ "args": {
8413
+ "eventName": "@data.changed.${_tableObjectName}"
8414
+ },
8415
+ "data": {
8416
+ "objectName": "${_tableObjectName}"
8417
+ },
8418
+ "expression": `\${_tableObjectName != '${uiSchema.name}' && _tableObjectName}`
8352
8419
  }
8353
8420
  ]
8354
8421
  }
@@ -9263,7 +9330,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
9263
9330
  const formSchema = {
9264
9331
  "type": "service",
9265
9332
  "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
9266
- "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",
9333
+ "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",
9267
9334
  "style":{
9268
9335
  "max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
9269
9336
  },
@@ -9498,6 +9565,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9498
9565
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
9499
9566
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
9500
9567
  `;
9568
+ /**
9569
+ 给lookup字段配置filter_form_data时可以配置为amis变量,也可以配置为事态key-value键值对象值:
9570
+ ```
9571
+ "filter_form_data": "${selectedPublicGroupFilterFormData|toJson}"
9572
+ ```
9573
+ or
9574
+ ```
9575
+ "filter_form_data": {
9576
+ "public_group_ids": [
9577
+ "67addbef39f9a4503789b38d"
9578
+ ]
9579
+ }
9580
+ ```
9581
+ */
9582
+ const filterFormValues = ctx.filter_form_data;
9501
9583
  const dataProviderInited = `
9502
9584
  const searchableFields = ${JSON.stringify(searchableFields)};
9503
9585
  const autoOpenFilter = ${autoOpenFilter};
@@ -9535,6 +9617,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9535
9617
  }
9536
9618
  setData({ filterFormSearchableFields: defaultSearchableFields });
9537
9619
  if(isLookup){
9620
+ let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
9621
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
9622
+ if (isAmisFormula){
9623
+ filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
9624
+ }
9625
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
9626
+ let fields = data.uiSchema && data.uiSchema.fields;
9627
+ filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
9628
+ setData({ ...filterFormValues });
9629
+ }
9538
9630
  // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
9539
9631
  setData({ showFieldsFilter: autoOpenFilter });
9540
9632
  }
@@ -9691,6 +9783,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9691
9783
  "body": [
9692
9784
  {
9693
9785
  "type": "button",
9786
+ "level": "primary",
9694
9787
  "id": btnSearchId,
9695
9788
  "label": instance.t('frontend_fields_filter_button_search'),
9696
9789
  "icon": "fa fa-search",
@@ -9708,7 +9801,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9708
9801
  },
9709
9802
  {
9710
9803
  "type": "button",
9711
- "label": instance.t('frontend_form_cancel'),
9804
+ "label": instance.t('frontend_form_reset'),
9712
9805
  "name": "btn_filter_form_cancel",
9713
9806
  // "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
9714
9807
  "onEvent": {
@@ -9798,7 +9891,6 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9798
9891
  "className": "steedos-amis-form"
9799
9892
  }
9800
9893
  ],
9801
- "id": "u:ca99fa9fe1b1",
9802
9894
  "actions": [
9803
9895
  {
9804
9896
  "type": "button",
@@ -9826,13 +9918,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9826
9918
  "actionType": "custom",
9827
9919
  "script": onSearchableFieldsChangeScript
9828
9920
  },
9829
- {
9830
- "actionType": "click",
9831
- "componentId": btnSearchId,
9832
- "args": {
9833
- "__from_fields_filter_settings_confirm": true
9834
- }
9835
- },
9921
+ // 自动触发搜索事件会造成bug,应该是升级amis到6.4造成的,见:https://github.com/steedos/steedos-platform/issues/7121
9922
+ // 变更搜索项后,用户一般会点击搜索按钮,所以这里不自动触发搜索事件
9923
+ // {
9924
+ // "actionType": "click",
9925
+ // "componentId": btnSearchId,
9926
+ // "args": {
9927
+ // "__from_fields_filter_settings_confirm": true
9928
+ // }
9929
+ // },
9836
9930
  {
9837
9931
  "componentId": "",
9838
9932
  "args": {},
@@ -9863,12 +9957,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
9863
9957
  ]
9864
9958
  }
9865
9959
  },
9866
- "id": "u:b96d84868a5a",
9867
9960
  "level": "link"
9868
9961
  }
9869
9962
  ],
9870
9963
  "size": "xs",
9871
- "className": "space-x-4"
9964
+ "className": "space-x-2"
9872
9965
  },
9873
9966
  "size": "xs",
9874
9967
  "className": "slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"
@@ -10572,7 +10665,6 @@ function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {
10572
10665
  "id": "u:ce9e3fcc411a"
10573
10666
  }
10574
10667
  ],
10575
- "className": "steedos-overflow-visible-dialog",
10576
10668
  "showCloseButton": true,
10577
10669
  "showErrorMsg": true,
10578
10670
  "showLoading": true,
@@ -10814,7 +10906,7 @@ function getObjectListHeader(objectSchema, listViewName, ctx) {
10814
10906
  let headerSchema = [{
10815
10907
  "type": "wrapper",
10816
10908
  "body": body,
10817
- "className": `p-3 m-4 shadow rounded bg-white`
10909
+ "className": `px-3 pt-3 pb-0 m-1 bg-white`
10818
10910
  }];
10819
10911
  // console.log(`getObjectListHeader`, objectSchema, listViewName, ctx)
10820
10912
  return headerSchema;
@@ -11562,7 +11654,6 @@ const getSetListviewFiltersButtonSchema = ()=>{
11562
11654
  }
11563
11655
  }
11564
11656
  ],
11565
- "className": "steedos-overflow-visible-dialog",
11566
11657
  "showCloseButton": true,
11567
11658
  "showErrorMsg": true,
11568
11659
  "showLoading": true,
@@ -12196,7 +12287,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
12196
12287
  return {
12197
12288
  "type": "tooltip-wrapper",
12198
12289
  "id": "steedos_crud_toolbar_quick_search",
12199
- "align": "left",
12290
+ "align": "right",
12200
12291
  "title": "",
12201
12292
  "content": "可搜索字段:" + searchableFieldsLabel.join(","),
12202
12293
  "placement": "bottom",
@@ -12210,6 +12301,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
12210
12301
  "name": keywordsSearchBoxName,
12211
12302
  "placeholder": "快捷搜索",
12212
12303
  "value": crudKeywords,
12304
+ "mini": true,
12213
12305
  "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
12214
12306
  "clearAndSubmit": true,
12215
12307
  "searchImediately": false,
@@ -12258,7 +12350,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12258
12350
  if(!hiddenCount){
12259
12351
  toolbarCount = {
12260
12352
  "type": "tpl",
12261
- "align": "right",
12353
+ "align": "left",
12262
12354
  "className": "text-gray-500 mr-2",
12263
12355
  "tpl": "${count} " + instance.t('frontend_record_sum')
12264
12356
  };
@@ -12342,7 +12434,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12342
12434
  "animation": true,
12343
12435
  "visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
12344
12436
  },
12345
- "align": "left",
12437
+ "align": "right",
12346
12438
  "className": "bg-white p-2 rounded text-gray-500",
12347
12439
  "onEvent": {
12348
12440
  "click": {
@@ -12364,27 +12456,27 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12364
12456
  // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
12365
12457
  let toolbars = [];
12366
12458
  if(formFactor === 'SMALL'){
12367
- if(toolbarCount){
12368
- toolbars.push(toolbarCount);
12369
- }
12370
- toolbars.push(toolbarReloadButton);
12371
- toolbars.push(toolbarDisplayAsButton);
12459
+ // if(toolbarCount){
12460
+ // toolbars.push(toolbarCount);
12461
+ // }
12462
+ // toolbars.push(toolbarReloadButton);
12463
+ toolbars.push(toolbarDQuickSearchBox);
12372
12464
  if(toolbarFilter){
12373
12465
  toolbars.push(toolbarFilter);
12374
12466
  }
12375
- toolbars.push(toolbarDQuickSearchBox);
12467
+ toolbars.push(toolbarDisplayAsButton);
12376
12468
  return [
12377
12469
  // "bulkActions",
12378
12470
  ...(headerToolbarItems || []),
12379
12471
  ...toolbars,
12380
12472
  ]
12381
12473
  }else {
12474
+ toolbars.push(toolbarDQuickSearchBox);
12382
12475
  toolbars.push(toolbarReloadButton);
12383
12476
  toolbars.push(toolbarDisplayAsButton);
12384
12477
  if(mainObject?.permissions?.allowCreateListViews){
12385
12478
  toolbars.push(getSettingListviewToolbarButtonSchema());
12386
12479
  }
12387
- toolbars.push(toolbarDQuickSearchBox);
12388
12480
  if(toolbarFilter){
12389
12481
  toolbars.push(toolbarFilter);
12390
12482
  }
@@ -13064,6 +13156,17 @@ async function getObjectForm(objectSchema, ctx){
13064
13156
  },
13065
13157
  "expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
13066
13158
  },
13159
+ // 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,修改记录后刷新列表
13160
+ {
13161
+ "actionType": "broadcast",
13162
+ "args": {
13163
+ "eventName": "@data.changed.${_tableObjectName}"
13164
+ },
13165
+ "data": {
13166
+ "objectName": "${_tableObjectName}"
13167
+ },
13168
+ "expression": `\${_tableObjectName != '${objectSchema.name}' && _tableObjectName}`
13169
+ },
13067
13170
  ...submitSuccActions,
13068
13171
  // {
13069
13172
  // "actionType": "custom",
@@ -13666,7 +13769,7 @@ async function getObjectRelatedListsMiniSchema(objectApiName){
13666
13769
  * @Author: baozhoutao@steedos.com
13667
13770
  * @Date: 2022-07-05 15:55:39
13668
13771
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
13669
- * @LastEditTime: 2025-05-20 19:29:36
13772
+ * @LastEditTime: 2025-06-17 20:18:18
13670
13773
  * @Description:
13671
13774
  */
13672
13775
 
@@ -14022,12 +14125,13 @@ async function getListSchema(
14022
14125
  "filtersFunction": listview_filters,
14023
14126
  "sort": sort,
14024
14127
  "ctx": ctx,
14025
- "requestAdaptor": listView.requestAdaptor || ctx.requestAdaptor,
14026
- "adaptor": listView.adaptor || ctx.adaptor,
14128
+ "requestAdaptor": ctx.requestAdaptor || listView.requestAdaptor,
14129
+ "adaptor": ctx.adaptor || listView.adaptor,
14027
14130
  "headerToolbarItems": ctx.headerToolbarItems,
14028
14131
  "filterVisible": ctx.filterVisible,
14029
14132
  "rowClassNameExpr": ctx.rowClassNameExpr,
14030
- "crudDataFilter": ctx.crudDataFilter,
14133
+ "crud": ctx.crud || listView.crud,
14134
+ "crudDataFilter": ctx.crudDataFilter || listView.crudDataFilter ,
14031
14135
  "onCrudDataFilter": ctx.onCrudDataFilter
14032
14136
  };
14033
14137
  // console.log(`getListSchema===>`,amisSchema)
@@ -14192,7 +14296,8 @@ async function getRecordDetailHeaderSchema(objectName,recordId, options){
14192
14296
  }
14193
14297
 
14194
14298
  async function getRecordDetailSchema(objectName, appId, props = {}){
14195
- const uiSchema = await getUISchema(objectName);
14299
+ const uiSchema = await getUISchema(objectName);
14300
+
14196
14301
  const relatedLists = await getObjectRelatedList(objectName);
14197
14302
  const detailed = {
14198
14303
  "title": instance.t('frontend_record_detail_tab_detailed'),
@@ -14233,6 +14338,21 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
14233
14338
  if(relatedLists.length){
14234
14339
  content.tabs.push(related);
14235
14340
  }
14341
+ const contents = [content];
14342
+ if (uiSchema.enable_chatter && window.BuilderLiveblocks) {
14343
+ const chatter = {
14344
+ "type": "rooms-provider",
14345
+ "baseUrl": "${context.rootUrl}",
14346
+ "body": [
14347
+ {
14348
+ "type": "rooms-comments",
14349
+ "className": "flex flex-col gap-3 m-4",
14350
+ "roomId": "objects:${objectName}:${recordId}",
14351
+ }
14352
+ ]
14353
+ };
14354
+ contents.push(chatter);
14355
+ }
14236
14356
  // content.tabs = reverse(content.tabs)
14237
14357
  if(content.tabs.length == 1){
14238
14358
  content.className += " steedos-record-tabs--single";
@@ -14252,7 +14372,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
14252
14372
  "showBackButton": props.showBackButton,
14253
14373
  _reloadKey: props._reloadKey
14254
14374
  },
14255
- content
14375
+ ...contents,
14256
14376
  ],
14257
14377
  "objectApiName": "${objectName}",
14258
14378
  "recordId": "${recordId}",
@@ -15036,14 +15156,42 @@ function getLookupSapceUserTreeSchema(isMobile){
15036
15156
  {
15037
15157
  "actionType": "custom",
15038
15158
  "script": `
15159
+ console.log("lookup-tree-event.data:",event.data);
15160
+ console.log("lookup-tree-event.data.value.label:",event.data.value.label);
15161
+ console.log("lookup-tree-event.data.value.value:",event.data.value.value);
15039
15162
  const scope = event.context.scoped;
15040
- var filterFormValues={
15163
+ var treeFilterFormValues={
15041
15164
  "__searchable__organizations_parents":event.data.value.value
15042
15165
  }
15043
- var listView = scope.parent.getComponents().find(function(n){
15044
- return n.props.type === "crud";
15166
+ // var listView = scope.parent.getComponents().find(function(n){
15167
+ // return n.props.type === "crud";
15168
+ // });
15169
+ // listView.handleFilterSubmit(Object.assign({}, filterFormValues));
15170
+ let __lookupField = event.data.__lookupField;
15171
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
15172
+ var filterForm = scope.getComponents().find(function(n){
15173
+ return n.props.type === "form";
15045
15174
  });
15046
- listView.handleFilterSubmit(Object.assign({}, filterFormValues));
15175
+ let filterFormValues = filterForm.getData();
15176
+ filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
15177
+ const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
15178
+ Object.assign(changedFilterFormValues, treeFilterFormValues);
15179
+ // 同步__changedFilterFormValues中的值
15180
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
15181
+ if(__lookupField){
15182
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
15183
+ if(__lookupField.reference_to_field){
15184
+ lookupTag += "__" + __lookupField.reference_to_field;
15185
+ }
15186
+ __changedFilterFormValuesKey += lookupTag;
15187
+ }
15188
+ if(crud){
15189
+ let crudData = crud.getData();
15190
+ crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
15191
+ crud.setData(crudData);
15192
+ }
15193
+ filterForm.setData(treeFilterFormValues);
15194
+ filterForm.handleFormSubmit(event);
15047
15195
  `
15048
15196
  },
15049
15197
  {
@@ -15261,6 +15409,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15261
15409
  // field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
15262
15410
  let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
15263
15411
 
15412
+ const filterFormValues = field.filter_form_data;
15264
15413
  source.requestAdaptor = `
15265
15414
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
15266
15415
  let __lookupField = api.data.$self.__lookupField;
@@ -15303,7 +15452,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
15303
15452
  }
15304
15453
  }
15305
15454
 
15306
- var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];
15455
+ let filterFormValues = {};
15456
+ if (selfData.op !== 'loadOptions'){
15457
+ filterFormValues = ${_$1.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
15458
+ const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
15459
+ if (isAmisFormula){
15460
+ filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
15461
+ }
15462
+ if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
15463
+ let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;
15464
+ filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
15465
+ }
15466
+ }
15467
+
15468
+ var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
15307
15469
 
15308
15470
  if(searchableFilter.length > 0){
15309
15471
  if(filters.length > 0 ){
@@ -15493,7 +15655,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15493
15655
  return payload;
15494
15656
  `;
15495
15657
  }
15496
- let top = 20;
15658
+ let top = 500;
15497
15659
 
15498
15660
  if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){
15499
15661
  top = 1000;
@@ -15543,7 +15705,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
15543
15705
  keywordsSearchBoxName,
15544
15706
  searchable_fields: field.searchable_fields,
15545
15707
  auto_open_filter: field.auto_open_filter,
15546
- show_left_filter: field.show_left_filter
15708
+ show_left_filter: field.show_left_filter,
15709
+ filter_form_data: field.filter_form_data
15547
15710
  });
15548
15711
  }
15549
15712
  pickerSchema.data = Object.assign({}, pickerSchema.data, {
@@ -15577,7 +15740,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
15577
15740
  {
15578
15741
  "actionType": "custom",
15579
15742
  "script": `
15580
- const masterRecord = event.data._master && event.data._master.record;
15743
+ // lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,
15744
+ // 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期
15745
+ const masterRecord = context.props.data;//event.data._master && event.data._master.record;
15581
15746
  const fieldConfig = ${JSON.stringify(field)};
15582
15747
  let reference_to = fieldConfig.reference_to;
15583
15748
  let saveValue;
@@ -15587,7 +15752,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
15587
15752
  }
15588
15753
  const saveField = fieldConfig.reference_to_field || '_id';
15589
15754
  const saveFieldValue = newRecord[saveField];
15590
-
15591
15755
  if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
15592
15756
 
15593
15757
  const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
@@ -15607,8 +15771,10 @@ async function lookupToAmisPicker(field, readonly, ctx){
15607
15771
 
15608
15772
  }else{
15609
15773
  if(fieldConfig.multiple){
15610
- // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。
15611
- const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
15774
+ // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
15775
+ // 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录
15776
+ // 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。
15777
+ const fieldValue = context.context.component.props.store.toJSON().selectedItems
15612
15778
  saveValue = fieldValue.concat(saveFieldValue);
15613
15779
  }else{
15614
15780
  saveValue = saveFieldValue;
@@ -15616,7 +15782,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
15616
15782
  }
15617
15783
 
15618
15784
  const ctx = ${JSON.stringify(ctx)};
15619
- const componentId = ctx.defaults.formSchema.id;
15785
+ const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;
15620
15786
  doAction({
15621
15787
  actionType: 'setValue',
15622
15788
  componentId: componentId,
@@ -16043,6 +16209,10 @@ async function lookupToAmis(field, readonly, ctx){
16043
16209
  }
16044
16210
  let amisSchema;
16045
16211
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
16212
+ if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
16213
+ // 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
16214
+ enableEnhancedLookup = false;
16215
+ }
16046
16216
  if(enableEnhancedLookup == true){
16047
16217
  amisSchema = await lookupToAmisPicker(field, readonly, ctx);
16048
16218
  }else if(refObject.enable_tree) {
@@ -17174,7 +17344,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
17174
17344
  return convertData
17175
17345
  }
17176
17346
  // if(ctx.mode === 'edit'){
17177
- let convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17347
+ let convertDataResult;
17348
+ if(convertData.type == "steedos-field"){
17349
+ // 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
17350
+ // 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
17351
+ // 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
17352
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
17353
+ }
17354
+ else {
17355
+ convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
17356
+ }
17178
17357
  // 只读时file字段的外层control层若存在name,内部each组件存在问题
17179
17358
  if(readonly && field.type == "file") {
17180
17359
  convertDataResult.name = "";
@@ -25153,7 +25332,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
25153
25332
  _reloadKey: _reloadKey,
25154
25333
  data: _data,
25155
25334
  style: style,
25156
- className: "".concat(className, " sm:bg-[#FAFAFA] h-full steedos-object-listview ").concat(displayAs === 'split' ? 'sm:border-r' : 'sm:border-r'),
25335
+ className: "".concat(className, " h-full steedos-object-listview ").concat(displayAs === 'split' ? 'sm:border-r' : 'sm:bg-gray-50'),
25157
25336
  body: [{
25158
25337
  "type": "wrapper",
25159
25338
  "size": "none",
@@ -25171,13 +25350,13 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
25171
25350
  "className": sideSchema ? "flex-1 focus:outline-none lg:order-last w-96 h-full" : 'w-full h-full',
25172
25351
  "body": {
25173
25352
  type: "wrapper",
25174
- className: "p-0 m-0 steedos-object-listview-content-wrapper h-full flex flex-col",
25353
+ className: "p-0 bg-white steedos-object-listview-content-wrapper flex flex-col ".concat(displayAs === 'split' ? '' : 'm-4 shadow rounded'),
25175
25354
  body: __spreadArray(__spreadArray([], __read(headerSchema), false), [
25176
25355
  {
25177
25356
  "type": "service",
25178
25357
  "id": "service_schema_api_" + objectApiName,
25179
25358
  _reloadKey: _reloadKey,
25180
- "className": " steedos-object-listview-content grow px-3 py-1 m-4 mt-0 shadow rounded bg-white",
25359
+ "className": " steedos-object-listview-content grow bg-white ".concat(displayAs === 'split' ? 'p-0 m-0' : 'px-3 py-0 m-1'),
25181
25360
  "schemaApi": {
25182
25361
  // 这里url上加objectApiName属性是因为设计器中切换对象时不会变更列表视图界面,不可以用objectName=${objectName}使用作用域中objectName变量是因为设计器那边不会监听识别data变化来render组件
25183
25362
  "url": "${context.rootUrl}/graphql?objectName=" + objectApiName + "&listName=${listName}&display=${display}&rebuildOn=" + rebuildOn + _reloadKey,
@@ -26280,7 +26459,7 @@ var getNotificationBadgeButton = function () {
26280
26459
  {
26281
26460
  "type": "panel",
26282
26461
  "title": instance.t('frontend_notifications'),
26283
- "className": "steedos-header-toolbar-notifications-panel " + (isMobile ? "" : "min-w-[300px] max-w-md"),
26462
+ "className": "steedos-header-toolbar-notifications-panel border-0 shadow-none " + (isMobile ? "" : "min-w-[460px] max-w-md"),
26284
26463
  "body": [
26285
26464
  {
26286
26465
  "type": "each",
@@ -26441,6 +26620,7 @@ var getNotificationBadgeButton = function () {
26441
26620
  "className": "slds-button_icon slds-global-header__icon"
26442
26621
  }
26443
26622
  ],
26623
+ "size": "small",
26444
26624
  "count": "${unReadCount}"
26445
26625
  },
26446
26626
  ],
@@ -26498,6 +26678,20 @@ var getNotificationBadgeButton = function () {
26498
26678
  "open": false
26499
26679
  };
26500
26680
  };
26681
+ var getHeaderButtons = function () {
26682
+ if (window['BuilderLiveblocks']) {
26683
+ return [{
26684
+ type: 'rooms-provider',
26685
+ baseUrl: '',
26686
+ body: {
26687
+ type: 'rooms-inbox-popover',
26688
+ },
26689
+ }];
26690
+ }
26691
+ else {
26692
+ return [];
26693
+ }
26694
+ };
26501
26695
  var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0, void 0, function () {
26502
26696
  var _a, className, data, _b, logoutScript, _c, customButtons, avatarSrc;
26503
26697
  var _d, _e;
@@ -26512,7 +26706,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
26512
26706
  "id": "u:9c3d279be31a",
26513
26707
  "className": "steedos-global-header-toolbar leading-3\t".concat(className),
26514
26708
  "size": "xs",
26515
- "body": __spreadArray(__spreadArray([], __read(customButtons), false), [
26709
+ "body": __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(customButtons), false), [
26516
26710
  {
26517
26711
  "type": "button",
26518
26712
  "hiddenOn": "${window:innerWidth < 768 || (window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem)}",
@@ -26649,7 +26843,8 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
26649
26843
  }
26650
26844
  ]
26651
26845
  },
26652
- getNotificationBadgeButton(),
26846
+ getNotificationBadgeButton()
26847
+ ], false), __read(getHeaderButtons()), false), [
26653
26848
  {
26654
26849
  "type": "steedos-dropdown",
26655
26850
  "placement": "bottomRight",
@@ -26905,7 +27100,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
26905
27100
  {
26906
27101
  "type": "steedos-global-header-toolbar",
26907
27102
  "label": "Global Header",
26908
- className: 'flex flex-nowrap gap-x-3 items-center',
27103
+ className: 'flex flex-nowrap gap-x-4 items-center',
26909
27104
  logoutScript: "window.signOut();",
26910
27105
  customButtons: customButtons
26911
27106
  }
@@ -26960,7 +27155,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
26960
27155
  body: [
26961
27156
  {
26962
27157
  type: "wrapper",
26963
- 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',
27158
+ 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',
26964
27159
  visibleOn: '${!!appId}',
26965
27160
  body: [
26966
27161
  {
@@ -27066,24 +27261,34 @@ function getAmisStaticFieldType(type, data_type, options) {
27066
27261
  }
27067
27262
  function getLookupLinkOnClick(field, options) {
27068
27263
  return __awaiter(this, void 0, void 0, function () {
27069
- var recordPage, drawerRecordDetailSchema;
27264
+ var recordPage, objectName, recordId, drawerRecordDetailSchema;
27070
27265
  return __generator(this, function (_a) {
27071
27266
  switch (_a.label) {
27072
27267
  case 0: return [4 /*yield*/, getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor })];
27073
27268
  case 1:
27074
27269
  recordPage = _a.sent();
27270
+ objectName = "${objectName}";
27271
+ recordId = "${value}";
27272
+ if (options.tableObjectName && field.is_name) {
27273
+ // 如果Lookup字段上配置了is_name,且是在表格(即tableObjectName有值,包括列表视图和子表)中
27274
+ // 则点击弹出的详细页面是表格行记录指向的记录详细页面,此时打开的详细页面对象是表格所属对象,_id是表格行记录的_id值
27275
+ // tableObjectName 没有值时说明lookup字段可能是在记录详细页面表单等地方,此时打开的详细页面lookup字段值指向的记录
27276
+ objectName = options.tableObjectName;
27277
+ recordId = "${_id}";
27278
+ }
27075
27279
  drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
27076
- "recordId": "${value}",
27077
- "data": __assign$2(__assign$2({}, recordPage.schema.data), { "_inDrawer": true, "recordLoaded": false })
27280
+ "recordId": recordId,
27281
+ "data": __assign$2(__assign$2({}, recordPage.schema.data), { "_inDrawer": true, "recordLoaded": false, "_tableObjectName": options.tableObjectName })
27078
27282
  }) : {
27079
27283
  "type": "steedos-record-detail",
27080
- "objectApiName": "${objectName}",
27081
- "recordId": "${value}",
27284
+ "objectApiName": objectName,
27285
+ "recordId": recordId,
27082
27286
  "showBackButton": false,
27083
27287
  "showButtons": true,
27084
27288
  "data": {
27085
27289
  "_inDrawer": true,
27086
- "recordLoaded": false, // 重置数据加载状态
27290
+ "recordLoaded": false,
27291
+ "_tableObjectName": options.tableObjectName
27087
27292
  }
27088
27293
  };
27089
27294
  return [2 /*return*/, {
@@ -27134,7 +27339,7 @@ function generateRandomString$1(length) {
27134
27339
  return sampleSize(characters, length).join('');
27135
27340
  }
27136
27341
  var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void 0, function () {
27137
- 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;
27342
+ 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;
27138
27343
  var _p, _q, _r, _s, _t, _u, _v, _w, _x, e_1, _y;
27139
27344
  var _z, _0, _1, _2, _3, _4, _5;
27140
27345
  return __generator(this, function (_6) {
@@ -27173,7 +27378,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27173
27378
  props.config.name = "f".concat(generateRandomString$1(5));
27174
27379
  }
27175
27380
  steedosField = null;
27176
- 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;
27381
+ 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;
27177
27382
  _c = props.data || {}, appId = _c.appId, formFactor = _c.formFactor;
27178
27383
  editorClassName = "";
27179
27384
  if (props.$$editor) {
@@ -27330,7 +27535,8 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27330
27535
  case 4: return [4 /*yield*/, getLookupLinkOnClick(steedosField, {
27331
27536
  appId: appId,
27332
27537
  objectName: referenceTo_1,
27333
- formFactor: formFactor
27538
+ formFactor: formFactor,
27539
+ tableObjectName: tableObjectName
27334
27540
  })];
27335
27541
  case 5:
27336
27542
  _g = _6.sent();
@@ -27343,17 +27549,18 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
27343
27549
  _s),
27344
27550
  _r)
27345
27551
  ],
27346
- _q), {
27552
+ _q), (!!!tableObjectName ? {
27347
27553
  type: 'static',
27348
27554
  tpl: '-',
27349
27555
  className: "".concat(fieldBaseProps.className || '', " text-muted !border-b-0"),
27350
27556
  hiddenOn: "${_display.".concat(steedosField.name, "}"),
27351
- },
27352
- {
27353
- type: 'tpl',
27354
- tpl: "<span class='antd-TplField antd-Form-description'><span>".concat(steedosField.description, "</span></span>"),
27355
- hidden: isEmpty(steedosField.description) ? true : false
27356
- }],
27557
+ } : null),
27558
+ (steedosField.description ?
27559
+ {
27560
+ type: 'tpl',
27561
+ tpl: "<span class='antd-TplField antd-Form-description'><span>".concat(steedosField.description, "</span></span>"),
27562
+ hidden: isEmpty(steedosField.description) ? true : false
27563
+ } : null)],
27357
27564
  _p)]));
27358
27565
  return [3 /*break*/, 13];
27359
27566
  case 7: return [4 /*yield*/, env.fetcher(source, props.data)];
@@ -28434,7 +28641,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
28434
28641
  });
28435
28642
  }); };
28436
28643
 
28437
- 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]=useState(!0);var o=()=>{r(!1);};return has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{r(!0);},close:o}),React__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.createElement(newFunctionComponent(o),e);createRoot(t).render(e);},Modal=assign(newComponentRender("modal",Modal$1),{info:Modal$1.info,success:Modal$1.success,error:Modal$1.error,warning:Modal$1.warning,confirm:Modal$1.confirm}),Drawer=newComponentRender("drawer",Drawer$1),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),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):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.createElement(t,e)}},render=function(e,t,r,o){e=withModalWrap(e),e=React.createElement(e,__assign({},t));return ReactDOM.render(e,r)};const safeRunFunction=(t,r,o,n)=>{try{let e=[];return isNil(r)||(e=isArray$3(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})`)),isFunction$4(r)&&(r=safeRunFunction(r,[],null,{name:e.name})),_$1.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||isString(r)?"number"===n&&isString(r)?r=Number(r):"boolean"===n&&isString(r)&&(r="true"===r.toLowerCase()||"1"===r):r=String(r));break;case"number":isString(r)&&(r=Number(r));break;case"boolean":isString(r)?r="true"===r.toLowerCase()||"1"===r:isBoolean(r)||(r=!1);break;case"time":if(isDate(r))return moment(r).format("1970-01-01THH:mm:00.000[Z]");case"date":if(isDate(r))return moment(r).format("YYYY-MM-DDT00:00:00.000[Z]");case"datetime":if(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:message,notification:notification,components:{Button:Button,Space: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=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 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.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.isString(t)?s.push([e,"contains",t]):(_$1.isArray(t)||_$1.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.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);
28644
+ 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]=useState(!0);var n=()=>{r(!1);};return has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{r(!0);},close:n}),React__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.createElement(newFunctionComponent(n),e);createRoot(t).render(e);},Modal=assign(newComponentRender("modal",Modal$1),{info:Modal$1.info,success:Modal$1.success,error:Modal$1.error,warning:Modal$1.warning,confirm:Modal$1.confirm}),Drawer=newComponentRender("drawer",Drawer$1),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),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):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.createElement(t,e)}},render=function(e,t,r,n){e=withModalWrap(e),e=React.createElement(e,__assign({},t));return ReactDOM.render(e,r)};const safeRunFunction=(t,r,n,o)=>{try{let e=[];return isNil(r)||(e=isArray$3(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})`)),isFunction$4(r)&&(r=safeRunFunction(r,[],null,{name:e.name})),_$1.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||isString(r)?"number"===o&&isString(r)?r=Number(r):"boolean"===o&&isString(r)&&(r="true"===r.toLowerCase()||"1"===r):r=String(r));break;case"number":isString(r)&&(r=Number(r));break;case"boolean":isString(r)?r="true"===r.toLowerCase()||"1"===r:isBoolean(r)||(r=!1);break;case"time":if(isDate(r))return moment(r).format("1970-01-01THH:mm:00.000[Z]");case"date":if(isDate(r))return moment(r).format("YYYY-MM-DDT00:00:00.000[Z]");case"datetime":if(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:message,notification:notification,components:{Button:Button,Space: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=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 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.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.isString(t)?s.push([e,"contains",t]):(_$1.isArray(t)||_$1.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.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);
28438
28645
 
28439
28646
  var index_esm = /*#__PURE__*/Object.freeze({
28440
28647
  __proto__: null,