@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.
- package/dist/amis-object.cjs.css +60 -68
- package/dist/amis-object.cjs.js +290 -83
- package/dist/amis-object.cjs.js.map +1 -1
- package/dist/amis-object.esm.css +60 -68
- package/dist/amis-object.esm.js +290 -83
- package/dist/amis-object.esm.js.map +1 -1
- package/dist/amis-object.umd.css +60 -68
- package/dist/amis-object.umd.js +109 -61
- package/dist/amis-object.umd.js.map +1 -1
- package/dist/assets.json +19 -19
- package/package.json +3 -3
package/dist/amis-object.esm.js
CHANGED
|
@@ -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:
|
|
3686
|
-
* @LastEditTime:
|
|
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 = "
|
|
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
|
|
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
|
-
|
|
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}}
|
|
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
|
-
|
|
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:
|
|
8292
|
-
* @LastEditTime:
|
|
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
|
|
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('
|
|
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
|
-
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
|
|
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-
|
|
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": `
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
-
|
|
12369
|
-
}
|
|
12370
|
-
toolbars.push(toolbarReloadButton);
|
|
12371
|
-
toolbars.push(
|
|
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(
|
|
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-
|
|
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":
|
|
14026
|
-
"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
|
-
"
|
|
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
|
-
|
|
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
|
|
15163
|
+
var treeFilterFormValues={
|
|
15041
15164
|
"__searchable__organizations_parents":event.data.value.value
|
|
15042
15165
|
}
|
|
15043
|
-
var listView = scope.parent.getComponents().find(function(n){
|
|
15044
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
//
|
|
15611
|
-
|
|
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
|
|
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, "
|
|
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
|
|
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
|
|
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-[
|
|
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-
|
|
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-
|
|
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":
|
|
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":
|
|
27081
|
-
"recordId":
|
|
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
|
-
|
|
27354
|
-
|
|
27355
|
-
|
|
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,
|