@steedos-widgets/amis-object 3.6.15 → 6.3.0-beta.11
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 +45 -3
- package/dist/amis-object.cjs.js +205 -115
- package/dist/amis-object.cjs.js.map +1 -1
- package/dist/amis-object.esm.css +45 -3
- package/dist/amis-object.esm.js +205 -115
- package/dist/amis-object.esm.js.map +1 -1
- package/dist/amis-object.umd.css +45 -3
- package/dist/amis-object.umd.js +103 -93
- package/dist/amis-object.umd.js.map +1 -1
- package/dist/assets.json +21 -21
- package/dist/meta.js +72 -29
- package/package.json +3 -3
package/dist/amis-object.esm.js
CHANGED
|
@@ -3723,10 +3723,23 @@ function getNameTpl(field, ctx){
|
|
|
3723
3723
|
if(ctx && ctx.isLookup){
|
|
3724
3724
|
linkTarget = "target='_blank'";
|
|
3725
3725
|
}
|
|
3726
|
+
let nameLabel = field.name;
|
|
3727
|
+
//若字段类型是lookup,则按照相关表tpl的label规则显示;若是其它类型,则显示_display或字段本身的值
|
|
3728
|
+
if (field.type == "lookup") {
|
|
3729
|
+
if(!field.reference_to && (field.optionsFunction || field._optionsFunction || field.options)){
|
|
3730
|
+
if(!field.isTableField){
|
|
3731
|
+
nameLabel = `\${${field.name}__label}`;
|
|
3732
|
+
}
|
|
3733
|
+
} else {
|
|
3734
|
+
nameLabel = `\${_display.${field.name}.label}`;
|
|
3735
|
+
}
|
|
3736
|
+
} else {
|
|
3737
|
+
nameLabel = `\${_display.${field.name} || ${field.name}}`;
|
|
3738
|
+
}
|
|
3726
3739
|
if(ctx.isRelated && window.innerWidth >= 768){
|
|
3727
|
-
return `<a href="${href}" ${linkTarget} onclick="return false;">\${${
|
|
3740
|
+
return `<a href="${href}" ${linkTarget} onclick="return false;">\${${nameLabel} | raw}</a>`
|
|
3728
3741
|
}else {
|
|
3729
|
-
return `<a href="${href}" ${linkTarget}>\${${
|
|
3742
|
+
return `<a href="${href}" ${linkTarget}>\${${nameLabel} | raw}</a>`
|
|
3730
3743
|
}
|
|
3731
3744
|
}
|
|
3732
3745
|
|
|
@@ -3851,7 +3864,7 @@ function getLocationTpl(field){
|
|
|
3851
3864
|
}
|
|
3852
3865
|
|
|
3853
3866
|
async function getFieldTpl (field, options){
|
|
3854
|
-
if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLookLabel){
|
|
3867
|
+
if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLookLabel && field.multiple !== true){
|
|
3855
3868
|
return getNameTpl(field, options)
|
|
3856
3869
|
}
|
|
3857
3870
|
switch (field.type) {
|
|
@@ -3892,7 +3905,7 @@ async function getFieldsTemplate(fields, display){
|
|
|
3892
3905
|
if(display != false){
|
|
3893
3906
|
display = true;
|
|
3894
3907
|
}
|
|
3895
|
-
let fieldsName = ['_id'];
|
|
3908
|
+
let fieldsName = ['_id', 'space'];
|
|
3896
3909
|
let displayFields = [];
|
|
3897
3910
|
let fieldsArr = [];
|
|
3898
3911
|
if(_$1.isArray(fields)){
|
|
@@ -4813,6 +4826,29 @@ instance
|
|
|
4813
4826
|
}
|
|
4814
4827
|
});
|
|
4815
4828
|
|
|
4829
|
+
/*
|
|
4830
|
+
* @Author: baozhoutao@steedos.com
|
|
4831
|
+
* @Date: 2022-07-13 15:18:03
|
|
4832
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
4833
|
+
* @LastEditTime: 2023-04-11 10:34:26
|
|
4834
|
+
* @Description:
|
|
4835
|
+
*/
|
|
4836
|
+
|
|
4837
|
+
async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){
|
|
4838
|
+
const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;
|
|
4839
|
+
const page = await fetchAPI(api);
|
|
4840
|
+
if (page && page.schema) {
|
|
4841
|
+
page.schema = JSON.parse(page.schema);
|
|
4842
|
+
if(page.schema.data){
|
|
4843
|
+
delete page.schema.data.recordId;
|
|
4844
|
+
delete page.schema.data.objectName;
|
|
4845
|
+
delete page.schema.data.context;
|
|
4846
|
+
delete page.schema.data.global;
|
|
4847
|
+
}
|
|
4848
|
+
return page;
|
|
4849
|
+
}
|
|
4850
|
+
}
|
|
4851
|
+
|
|
4816
4852
|
async function getQuickEditSchema(object, columnField, options){
|
|
4817
4853
|
let field = object.fields[columnField.name];
|
|
4818
4854
|
//判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑
|
|
@@ -5447,20 +5483,26 @@ async function getTableColumns$1(object, fields, options){
|
|
|
5447
5483
|
}
|
|
5448
5484
|
|
|
5449
5485
|
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){
|
|
5450
|
-
|
|
5451
|
-
const drawerRecordDetailSchema = {
|
|
5486
|
+
const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor });
|
|
5487
|
+
const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
|
|
5488
|
+
"recordId": `\${${options.idFieldName}}`,
|
|
5489
|
+
"data": {
|
|
5490
|
+
...recordPage.schema.data,
|
|
5491
|
+
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
5492
|
+
"recordLoaded": false, // 重置数据加载状态
|
|
5493
|
+
}
|
|
5494
|
+
}) : {
|
|
5452
5495
|
"type": "steedos-record-detail",
|
|
5453
5496
|
"objectApiName": "${objectName}",
|
|
5454
5497
|
"recordId": `\${${options.idFieldName}}`,
|
|
5455
5498
|
"showBackButton": false,
|
|
5456
5499
|
"showButtons": true,
|
|
5457
5500
|
"data": {
|
|
5458
|
-
|
|
5459
|
-
|
|
5501
|
+
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
5502
|
+
"recordLoaded": false, // 重置数据加载状态
|
|
5460
5503
|
}
|
|
5461
5504
|
};
|
|
5462
5505
|
|
|
5463
|
-
|
|
5464
5506
|
if(!(field.is_name || field.name === options.labelFieldName)){
|
|
5465
5507
|
drawerRecordDetailSchema.objectApiName = field.reference_to;
|
|
5466
5508
|
drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
|
|
@@ -5476,7 +5518,7 @@ async function getTableColumns$1(object, fields, options){
|
|
|
5476
5518
|
"title": " ",
|
|
5477
5519
|
"headerClassName": "hidden",
|
|
5478
5520
|
"size": "lg",
|
|
5479
|
-
"bodyClassName": "p-0 m-0",
|
|
5521
|
+
"bodyClassName": "p-0 m-0 bg-gray-100",
|
|
5480
5522
|
"closeOnEsc": true,
|
|
5481
5523
|
"closeOnOutside": true,
|
|
5482
5524
|
"resizable": true,
|
|
@@ -6412,6 +6454,19 @@ function getReadonlyFormAdaptor(object, fields, options){
|
|
|
6412
6454
|
// })
|
|
6413
6455
|
|
|
6414
6456
|
var fieldNames = _$1.map(fields, function(n){return n.name});
|
|
6457
|
+
var nameField = object.fields[object.NAME_FIELD_KEY];
|
|
6458
|
+
let nameLabel = nameField && nameField.name;
|
|
6459
|
+
if (nameField && nameField.type == "lookup") {
|
|
6460
|
+
if(!nameField.reference_to && (nameField.optionsFunction || nameField._optionsFunction || nameField.options)){
|
|
6461
|
+
if(!nameField.isTableField){
|
|
6462
|
+
nameLabel = `record.${nameField.name}__label`;
|
|
6463
|
+
}
|
|
6464
|
+
} else {
|
|
6465
|
+
nameLabel = `record._display.${nameField.name}.label`;
|
|
6466
|
+
}
|
|
6467
|
+
} else if (nameField){
|
|
6468
|
+
nameLabel = `record._display.${nameField.name} || record.${nameField.name}`;
|
|
6469
|
+
}
|
|
6415
6470
|
return `
|
|
6416
6471
|
if(payload.data.data.length === 0){
|
|
6417
6472
|
var isEditor = !!${options && options.isEditor};
|
|
@@ -6453,8 +6508,7 @@ function getReadonlyFormAdaptor(object, fields, options){
|
|
|
6453
6508
|
payload.data = data;
|
|
6454
6509
|
payload.data.__objectName = "${object.name}";
|
|
6455
6510
|
payload.data.record = record;
|
|
6456
|
-
|
|
6457
|
-
payload.data.NAME_FIELD_VALUE = record.${object.NAME_FIELD_KEY || 'name'};
|
|
6511
|
+
payload.data.NAME_FIELD_VALUE = ${nameLabel} || record.name;
|
|
6458
6512
|
payload.data._master = {
|
|
6459
6513
|
record: record,
|
|
6460
6514
|
objectName: "${object.name}",
|
|
@@ -7921,7 +7975,8 @@ const getSchema$5 = async (uiSchema, ctx) => {
|
|
|
7921
7975
|
type: 'button',
|
|
7922
7976
|
actionType: 'confirm',
|
|
7923
7977
|
label: instance.t('frontend_form_save'),
|
|
7924
|
-
primary: true
|
|
7978
|
+
primary: true,
|
|
7979
|
+
close: `object_actions_drawer_${uiSchema.name}`
|
|
7925
7980
|
},
|
|
7926
7981
|
]
|
|
7927
7982
|
}
|
|
@@ -7939,29 +7994,6 @@ const getSchema$5 = async (uiSchema, ctx) => {
|
|
|
7939
7994
|
}
|
|
7940
7995
|
};
|
|
7941
7996
|
|
|
7942
|
-
/*
|
|
7943
|
-
* @Author: baozhoutao@steedos.com
|
|
7944
|
-
* @Date: 2022-07-13 15:18:03
|
|
7945
|
-
* @LastEditors: baozhoutao@steedos.com
|
|
7946
|
-
* @LastEditTime: 2023-04-11 10:34:26
|
|
7947
|
-
* @Description:
|
|
7948
|
-
*/
|
|
7949
|
-
|
|
7950
|
-
async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){
|
|
7951
|
-
const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;
|
|
7952
|
-
const page = await fetchAPI(api);
|
|
7953
|
-
if (page && page.schema) {
|
|
7954
|
-
page.schema = JSON.parse(page.schema);
|
|
7955
|
-
if(page.schema.data){
|
|
7956
|
-
delete page.schema.data.recordId;
|
|
7957
|
-
delete page.schema.data.objectName;
|
|
7958
|
-
delete page.schema.data.context;
|
|
7959
|
-
delete page.schema.data.global;
|
|
7960
|
-
}
|
|
7961
|
-
return page;
|
|
7962
|
-
}
|
|
7963
|
-
}
|
|
7964
|
-
|
|
7965
7997
|
/*
|
|
7966
7998
|
* @Author: baozhoutao@steedos.com
|
|
7967
7999
|
* @Date: 2022-11-01 15:49:58
|
|
@@ -8040,6 +8072,20 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
8040
8072
|
]
|
|
8041
8073
|
}
|
|
8042
8074
|
},
|
|
8075
|
+
"actions": [
|
|
8076
|
+
{
|
|
8077
|
+
type: 'button',
|
|
8078
|
+
actionType: 'cancel',
|
|
8079
|
+
label: instance.t('frontend_form_cancel')
|
|
8080
|
+
},
|
|
8081
|
+
{
|
|
8082
|
+
type: 'button',
|
|
8083
|
+
actionType: 'confirm',
|
|
8084
|
+
label: instance.t('frontend_form_save'),
|
|
8085
|
+
primary: true,
|
|
8086
|
+
close: `object_actions_drawer_${uiSchema.name}`
|
|
8087
|
+
},
|
|
8088
|
+
]
|
|
8043
8089
|
},
|
|
8044
8090
|
},
|
|
8045
8091
|
],
|
|
@@ -8121,7 +8167,8 @@ const getSchema$3 = (uiSchema)=>{
|
|
|
8121
8167
|
}
|
|
8122
8168
|
]
|
|
8123
8169
|
}
|
|
8124
|
-
}
|
|
8170
|
+
},
|
|
8171
|
+
"close": `object_actions_drawer_${uiSchema.name}`
|
|
8125
8172
|
}
|
|
8126
8173
|
],
|
|
8127
8174
|
"regions": [
|
|
@@ -12056,10 +12103,6 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
12056
12103
|
}
|
|
12057
12104
|
}
|
|
12058
12105
|
`;
|
|
12059
|
-
let autoFillHeight = true;
|
|
12060
|
-
if(options.isRelated || window.innerWidth < 768){
|
|
12061
|
-
autoFillHeight = false;
|
|
12062
|
-
}
|
|
12063
12106
|
|
|
12064
12107
|
body = Object.assign({}, table, {
|
|
12065
12108
|
type: 'crud',
|
|
@@ -12070,7 +12113,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
12070
12113
|
keepItemSelectionOnPageChange: true,
|
|
12071
12114
|
api: await getTableApi(objectSchema, fields, options),
|
|
12072
12115
|
hiddenOn: options.tableHiddenOn,
|
|
12073
|
-
autoFillHeight
|
|
12116
|
+
// autoFillHeight,//autoFillHeight按amis规范默认为false,需要配置此属性时在各个组件层配置,比如列表视图组件那边传入此属性为true
|
|
12074
12117
|
className: `flex-auto ${crudClassName || ""}`,
|
|
12075
12118
|
// 这里不可以用动态className,因为它会把样式类加到.antd-Crud和.antd-Table.antd-Crud-body这两层div中,而子表列表中crudClassName中有hidden样式类会造成所有子表都不显示的bug
|
|
12076
12119
|
// className: {
|
|
@@ -12243,6 +12286,10 @@ async function getFormSchemaWithDataFilter(form, options = {}){
|
|
|
12243
12286
|
async function getObjectForm(objectSchema, ctx){
|
|
12244
12287
|
const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "horizontal", labelAlign, tabId, appId, defaults, submitSuccActions = [],
|
|
12245
12288
|
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
12289
|
+
//优先识别组件上的enableTabs属性,若不存在,则识别对象上定义的
|
|
12290
|
+
if (typeof ctx.enableTabs !== 'boolean') {
|
|
12291
|
+
ctx.enableTabs = objectSchema.enable_form_tabs;
|
|
12292
|
+
}
|
|
12246
12293
|
const fields = _$1__default.values(objectSchema.fields);
|
|
12247
12294
|
const formFields = getFormFields$1(objectSchema, ctx);
|
|
12248
12295
|
const formSchema = defaults && defaults.formSchema || {};
|
|
@@ -12336,7 +12383,7 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
12336
12383
|
|
|
12337
12384
|
async function getObjectDetail(objectSchema, recordId, ctx){
|
|
12338
12385
|
const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "horizontal", labelAlign,
|
|
12339
|
-
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
12386
|
+
formDataFilter, onFormDataFilter, amisData, env, enableInitApi } = ctx;
|
|
12340
12387
|
const fields = _$1__default.values(objectSchema.fields);
|
|
12341
12388
|
const formFields = getFormFields$1(objectSchema, ctx);
|
|
12342
12389
|
const serviceId = `service_detail_page`;
|
|
@@ -12403,6 +12450,16 @@ async function getObjectDetail(objectSchema, recordId, ctx){
|
|
|
12403
12450
|
// }
|
|
12404
12451
|
};
|
|
12405
12452
|
|
|
12453
|
+
if(enableInitApi){
|
|
12454
|
+
amisSchema.api = await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx);
|
|
12455
|
+
// 开启初始化api请求时,如果不把recordLoaded默认设置为false,recordLoaded值会取RecordServic组件中的recordLoaded值
|
|
12456
|
+
// 这会造成表单内steedos field组件lookup字段中props.data取到的是RecordServic组件
|
|
12457
|
+
amisSchema.data = {
|
|
12458
|
+
...amisSchema.data,
|
|
12459
|
+
recordLoaded: false
|
|
12460
|
+
};
|
|
12461
|
+
}
|
|
12462
|
+
|
|
12406
12463
|
amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });
|
|
12407
12464
|
// console.log('getObjectDetail=====>', amisSchema);
|
|
12408
12465
|
return amisSchema;
|
|
@@ -12894,7 +12951,7 @@ async function getObjectRelatedListsMiniSchema(objectApiName){
|
|
|
12894
12951
|
* @Author: baozhoutao@steedos.com
|
|
12895
12952
|
* @Date: 2022-07-05 15:55:39
|
|
12896
12953
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
12897
|
-
* @LastEditTime: 2024-
|
|
12954
|
+
* @LastEditTime: 2024-04-26 16:46:44
|
|
12898
12955
|
* @Description:
|
|
12899
12956
|
*/
|
|
12900
12957
|
|
|
@@ -13159,37 +13216,44 @@ async function getListSchema(
|
|
|
13159
13216
|
* 本次存储代码段
|
|
13160
13217
|
*/
|
|
13161
13218
|
try {
|
|
13162
|
-
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13169
|
-
|
|
13170
|
-
|
|
13171
|
-
|
|
13172
|
-
|
|
13173
|
-
|
|
13174
|
-
|
|
13175
|
-
|
|
13176
|
-
|
|
13177
|
-
|
|
13178
|
-
|
|
13179
|
-
|
|
13180
|
-
|
|
13181
|
-
|
|
13182
|
-
|
|
13183
|
-
|
|
13219
|
+
const listViewPropsStoreKey = location.pathname + "/crud";
|
|
13220
|
+
let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);
|
|
13221
|
+
/**
|
|
13222
|
+
* localListViewProps规范来自crud请求api中api.data.$self参数值的。
|
|
13223
|
+
* 比如:{"perPage":20,"page":1,"__searchable__name":"7","__searchable__between__n1__c":[null,null],"filter":[["name","contains","a"]]}
|
|
13224
|
+
* __searchable__...:顶部放大镜搜索条件
|
|
13225
|
+
* filter:右侧过滤器
|
|
13226
|
+
* perPage:每页条数
|
|
13227
|
+
* page:当前页码
|
|
13228
|
+
* orderBy:排序字段
|
|
13229
|
+
* orderDir:排序方向
|
|
13230
|
+
*/
|
|
13231
|
+
if (localListViewProps) {
|
|
13232
|
+
localListViewProps = JSON.parse(localListViewProps);
|
|
13233
|
+
// localListViewProps.perPage = 3;
|
|
13234
|
+
let listSchema = {};
|
|
13235
|
+
if (localListViewProps.orderBy) {
|
|
13236
|
+
listSchema.orderBy = localListViewProps.orderBy;
|
|
13237
|
+
}
|
|
13238
|
+
if (localListViewProps.orderDir) {
|
|
13239
|
+
listSchema.orderDir = localListViewProps.orderDir;
|
|
13240
|
+
}
|
|
13184
13241
|
|
|
13185
|
-
|
|
13186
|
-
|
|
13242
|
+
if (localListViewProps.perPage) {
|
|
13243
|
+
listSchema.perPage = localListViewProps.perPage;
|
|
13244
|
+
}
|
|
13245
|
+
defaults.listSchema = defaultsDeep$1({}, listSchema, defaults.listSchema || {});
|
|
13187
13246
|
}
|
|
13188
|
-
defaults.listSchema = defaultsDeep$1({}, listSchema, defaults.listSchema || {});
|
|
13189
|
-
}
|
|
13190
13247
|
}
|
|
13191
13248
|
catch (ex) {
|
|
13192
|
-
|
|
13249
|
+
console.error("本地存储中crud参数解析异常:", ex);
|
|
13250
|
+
}
|
|
13251
|
+
|
|
13252
|
+
if (window.innerWidth > 768) {
|
|
13253
|
+
// 列表视图组件PC端高度自动计算实现满屏效果,手机端不需要满屏效果,所以不用autofillheight,且允许重写微页面中重新组件autoFillHeight属性
|
|
13254
|
+
defaults.listSchema = defaultsDeep$1({}, defaults.listSchema || {}, {
|
|
13255
|
+
autoFillHeight: true
|
|
13256
|
+
});
|
|
13193
13257
|
}
|
|
13194
13258
|
|
|
13195
13259
|
ctx.defaults = defaults;
|
|
@@ -13239,15 +13303,15 @@ async function getListSchema(
|
|
|
13239
13303
|
async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
|
|
13240
13304
|
let fields = [];
|
|
13241
13305
|
for (const column of columns) {
|
|
13306
|
+
let columnField, fieldName, displayName, filedInfo, rfUiSchema, rfFieldInfo;
|
|
13242
13307
|
if (isString(column)) {
|
|
13243
|
-
let columnField;
|
|
13244
13308
|
if (column.indexOf('.') > 0) {
|
|
13245
|
-
|
|
13246
|
-
|
|
13247
|
-
|
|
13309
|
+
fieldName = column.split('.')[0];
|
|
13310
|
+
displayName = column.split('.')[1];
|
|
13311
|
+
filedInfo = uiSchema.fields[fieldName];
|
|
13248
13312
|
if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
|
|
13249
|
-
|
|
13250
|
-
|
|
13313
|
+
rfUiSchema = await getUISchema(filedInfo.reference_to);
|
|
13314
|
+
rfFieldInfo = rfUiSchema.fields[displayName];
|
|
13251
13315
|
columnField = Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx);
|
|
13252
13316
|
}else if(filedInfo && filedInfo.type === 'object'){
|
|
13253
13317
|
columnField = uiSchema.fields[column];
|
|
@@ -13271,14 +13335,13 @@ async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
|
|
|
13271
13335
|
}
|
|
13272
13336
|
|
|
13273
13337
|
} else if (isObject$1(column)) {
|
|
13274
|
-
let columnField;
|
|
13275
13338
|
if (column.field.indexOf('.') > 0) {
|
|
13276
|
-
|
|
13277
|
-
|
|
13278
|
-
|
|
13339
|
+
fieldName = column.field.split('.')[0];
|
|
13340
|
+
displayName = column.field.split('.')[1];
|
|
13341
|
+
filedInfo = uiSchema.fields[fieldName];
|
|
13279
13342
|
if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
|
|
13280
|
-
|
|
13281
|
-
|
|
13343
|
+
rfUiSchema = await getUISchema(filedInfo.reference_to);
|
|
13344
|
+
rfFieldInfo = rfUiSchema.fields[displayName];
|
|
13282
13345
|
columnField = Object.assign({}, rfFieldInfo, ctx,
|
|
13283
13346
|
{ name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },
|
|
13284
13347
|
{
|
|
@@ -13286,6 +13349,8 @@ async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
|
|
|
13286
13349
|
wrap: column.wrap // wrap = true 是没效果的
|
|
13287
13350
|
}
|
|
13288
13351
|
);
|
|
13352
|
+
} else if (filedInfo && filedInfo.type === 'object') {
|
|
13353
|
+
columnField = uiSchema.fields[column.field];
|
|
13289
13354
|
}
|
|
13290
13355
|
} else {
|
|
13291
13356
|
if (uiSchema.fields[column.field]) {
|
|
@@ -13420,7 +13485,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
13420
13485
|
};
|
|
13421
13486
|
const content = {
|
|
13422
13487
|
"type": "tabs",
|
|
13423
|
-
"className": "steedos-record-tabs bg-white p-4
|
|
13488
|
+
"className": "steedos-record-tabs bg-white p-4 m-2 border rounded",
|
|
13424
13489
|
"contentClassName": "bg-none",
|
|
13425
13490
|
"tabs": [
|
|
13426
13491
|
detailed
|
|
@@ -13496,6 +13561,10 @@ async function getRecordServiceSchema(objectName, appId, props = {}, body) {
|
|
|
13496
13561
|
data: {
|
|
13497
13562
|
"_master.objectName": "${objectName}",
|
|
13498
13563
|
"_master.recordId": "${recordId}",
|
|
13564
|
+
// 微页面设计器中用RecordServic组件包裹一个ObjectForm只读组件时,如果这里不把recordLoaded默认设置为false
|
|
13565
|
+
// recordLoaded值会取父作用域中已经被设置为true的值(比如父级有RecordServic组件,在加载完数据后,父作用域中recordLoaded值为true)
|
|
13566
|
+
// 这会造成表单内steedos field组件lookup字段中props.data取到的是父作用域中的数据
|
|
13567
|
+
"recordLoaded": false,
|
|
13499
13568
|
...(props.data || {})
|
|
13500
13569
|
},
|
|
13501
13570
|
"style": {
|
|
@@ -14384,7 +14453,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
14384
14453
|
});
|
|
14385
14454
|
|
|
14386
14455
|
// 把自动填充规则中依赖的字段也加到api请求中
|
|
14387
|
-
let autoFillMapping =
|
|
14456
|
+
let autoFillMapping = field.auto_fill_mapping;
|
|
14388
14457
|
if (autoFillMapping && autoFillMapping.length) {
|
|
14389
14458
|
autoFillMapping.forEach(function (item) {
|
|
14390
14459
|
if(!_$1.find(tableFields, function(f){
|
|
@@ -14534,7 +14603,11 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
14534
14603
|
// 如果当前元素不是数组,则处理该元素
|
|
14535
14604
|
// 下面正则用于匹配amis公式\${}
|
|
14536
14605
|
if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
|
|
14537
|
-
|
|
14606
|
+
try{
|
|
14607
|
+
arr[i] = currentAmis.evaluate(arr[i], api.context);
|
|
14608
|
+
}catch(ex){
|
|
14609
|
+
console.error("运行lookup过滤公式时出现错误:",ex);
|
|
14610
|
+
}
|
|
14538
14611
|
}
|
|
14539
14612
|
}
|
|
14540
14613
|
}
|
|
@@ -14856,7 +14929,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
14856
14929
|
];
|
|
14857
14930
|
|
|
14858
14931
|
// 把自动填充规则中依赖的字段也加到api请求中
|
|
14859
|
-
let autoFillMapping =
|
|
14932
|
+
let autoFillMapping = field.auto_fill_mapping;
|
|
14860
14933
|
if (autoFillMapping && autoFillMapping.length) {
|
|
14861
14934
|
autoFillMapping.forEach(function (item) {
|
|
14862
14935
|
queryFields.push(refObjectConfig.fields[item.from]);
|
|
@@ -14942,6 +15015,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
14942
15015
|
var fieldFilters = ${JSON.stringify(field.filters)};
|
|
14943
15016
|
var currentAmis = amisRequire('amis');
|
|
14944
15017
|
//递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析
|
|
15018
|
+
debugger;
|
|
14945
15019
|
function traverseNestedArray(arr) {
|
|
14946
15020
|
for (let i = 0; i < arr.length; i++) {
|
|
14947
15021
|
if (Array.isArray(arr[i])) {
|
|
@@ -14951,7 +15025,11 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
14951
15025
|
// 如果当前元素不是数组,则处理该元素
|
|
14952
15026
|
// 下面正则用于匹配amis公式\${}
|
|
14953
15027
|
if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
|
|
14954
|
-
|
|
15028
|
+
try{
|
|
15029
|
+
arr[i] = currentAmis.evaluate(arr[i], api.context);
|
|
15030
|
+
}catch(ex){
|
|
15031
|
+
console.error("运行lookup过滤公式时出现错误:",ex);
|
|
15032
|
+
}
|
|
14955
15033
|
}
|
|
14956
15034
|
}
|
|
14957
15035
|
}
|
|
@@ -15098,14 +15176,25 @@ async function getApi(object, recordId, fields, options){
|
|
|
15098
15176
|
}
|
|
15099
15177
|
|
|
15100
15178
|
async function getAutoFill(field, refObject) {
|
|
15101
|
-
let autoFillMapping =
|
|
15179
|
+
let autoFillMapping = field.auto_fill_mapping;
|
|
15102
15180
|
if (autoFillMapping && autoFillMapping.length) {
|
|
15103
15181
|
let fillMapping = {};
|
|
15182
|
+
if (field.multiple) {
|
|
15183
|
+
autoFillMapping.forEach(function (item) {
|
|
15184
|
+
//from的字段类型为lookup、master_detail、select时,需要保留数组格式;其他类型需要转变为字符串格式
|
|
15185
|
+
if (_$1.includes(["lookup","master_detail","select"], refObject.fields[item.from].type)) {
|
|
15186
|
+
fillMapping[item.to] = `\${items | pick:${item.from}}`;
|
|
15187
|
+
} else {
|
|
15188
|
+
fillMapping[item.to] = `\${items | pick:${item.from} | join}`;
|
|
15189
|
+
}
|
|
15190
|
+
});
|
|
15191
|
+
}else {
|
|
15192
|
+
autoFillMapping.forEach(function (item) {
|
|
15193
|
+
fillMapping[item.to] = `\${${item.from}}`;
|
|
15194
|
+
});
|
|
15195
|
+
}
|
|
15104
15196
|
// let fieldsForApi = [];
|
|
15105
|
-
|
|
15106
|
-
fillMapping[item.to] = `\${${item.from}}`;
|
|
15107
|
-
// fieldsForApi.push(item.from);
|
|
15108
|
-
});
|
|
15197
|
+
// fieldsForApi.push(item.from);
|
|
15109
15198
|
// let api = {
|
|
15110
15199
|
// // "url": "/amis/api/mock2/form/autoUpdate?browser=${browser}&version=${version}",
|
|
15111
15200
|
// "url": `/api/v1/${refObject.name}/\${${field.name}}?fields=${JSON.stringify(fieldsForApi)}`,
|
|
@@ -15207,7 +15296,7 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
15207
15296
|
amisSchema = _$1.defaultsDeep({}, pageAmisSchema, amisSchema);
|
|
15208
15297
|
}
|
|
15209
15298
|
}
|
|
15210
|
-
const autoFill = await getAutoFill(field);
|
|
15299
|
+
const autoFill = await getAutoFill(field, refObject);
|
|
15211
15300
|
if(autoFill){
|
|
15212
15301
|
amisSchema.autoFill = autoFill;
|
|
15213
15302
|
// 这里不配置initAutoFill值,按amis规则initAutoFill默认值为fillIfNotSet处理--需要amis sdk 版本 > 3.6.3-patch.6(不包括)版本
|
|
@@ -21471,11 +21560,11 @@ var SteedosSkeleton = function (props) {
|
|
|
21471
21560
|
};
|
|
21472
21561
|
|
|
21473
21562
|
var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0, function () {
|
|
21474
|
-
var $schema, recordId, defaultData, mode, _a, layout, labelAlign, appId, fieldsExtend, _b, excludedFields, _c, fields, _d, form, _e, className, initApiRequestAdaptor, initApiAdaptor, apiRequestAdaptor, apiAdaptor, enableTabs, tabsMode, submitSuccActions, data, formDataFilter, onFormDataFilter, env, objectApiName, schemaKeys, formSchema, defaults, options, globalData, amisSchema, uiSchema, allData, schema, schema, formData
|
|
21563
|
+
var $schema, recordId, defaultData, mode, _a, layout, labelAlign, appId, fieldsExtend, _b, excludedFields, _c, fields, _d, form, _e, className, enableInitApi, initApiRequestAdaptor, initApiAdaptor, apiRequestAdaptor, apiAdaptor, enableTabs, tabsMode, submitSuccActions, data, formDataFilter, onFormDataFilter, env, objectApiName, schemaKeys, formSchema, defaults, options, globalData, amisSchema, uiSchema, allData, schema, schema, formData;
|
|
21475
21564
|
return __generator(this, function (_f) {
|
|
21476
21565
|
switch (_f.label) {
|
|
21477
21566
|
case 0:
|
|
21478
|
-
$schema = props.$schema, recordId = props.recordId, defaultData = props.defaultData, mode = props.mode, _a = props.layout, layout = _a === void 0 ? "horizontal" : _a, labelAlign = props.labelAlign, appId = props.appId, fieldsExtend = props.fieldsExtend, _b = props.excludedFields, excludedFields = _b === void 0 ? null : _b, _c = props.fields, fields = _c === void 0 ? null : _c, _d = props.form, form = _d === void 0 ? {} : _d, _e = props.className, className = _e === void 0 ? "" : _e, initApiRequestAdaptor = props.initApiRequestAdaptor, initApiAdaptor = props.initApiAdaptor, apiRequestAdaptor = props.apiRequestAdaptor, apiAdaptor = props.apiAdaptor, enableTabs = props.enableTabs, tabsMode = props.tabsMode, submitSuccActions = props.submitSuccActions, data = props.data, formDataFilter = props.formDataFilter, onFormDataFilter = props.onFormDataFilter, env = props.env;
|
|
21567
|
+
$schema = props.$schema, recordId = props.recordId, defaultData = props.defaultData, mode = props.mode, _a = props.layout, layout = _a === void 0 ? "horizontal" : _a, labelAlign = props.labelAlign, appId = props.appId, fieldsExtend = props.fieldsExtend, _b = props.excludedFields, excludedFields = _b === void 0 ? null : _b, _c = props.fields, fields = _c === void 0 ? null : _c, _d = props.form, form = _d === void 0 ? {} : _d, _e = props.className, className = _e === void 0 ? "" : _e, enableInitApi = props.enableInitApi, initApiRequestAdaptor = props.initApiRequestAdaptor, initApiAdaptor = props.initApiAdaptor, apiRequestAdaptor = props.apiRequestAdaptor, apiAdaptor = props.apiAdaptor, enableTabs = props.enableTabs, tabsMode = props.tabsMode, submitSuccActions = props.submitSuccActions, data = props.data, formDataFilter = props.formDataFilter, onFormDataFilter = props.onFormDataFilter, env = props.env;
|
|
21479
21568
|
objectApiName = props.objectApiName || "space_users";
|
|
21480
21569
|
schemaKeys = difference(keys($schema), ["id", "form", "type", "mode", "layout", "defaultData", "formDataFilter", "onFormDataFilter", "env"]);
|
|
21481
21570
|
formSchema = pick(props, schemaKeys);
|
|
@@ -21531,6 +21620,7 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
|
|
|
21531
21620
|
options.isEditor = true;
|
|
21532
21621
|
}
|
|
21533
21622
|
return [4 /*yield*/, getViewSchema(objectApiName, recordId, Object.assign({}, options, {
|
|
21623
|
+
enableInitApi: enableInitApi,
|
|
21534
21624
|
initApiRequestAdaptor: initApiRequestAdaptor,
|
|
21535
21625
|
initApiAdaptor: initApiAdaptor,
|
|
21536
21626
|
enableTabs: enableTabs,
|
|
@@ -21560,16 +21650,6 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
|
|
|
21560
21650
|
if (has(props, 'objectApiName')) {
|
|
21561
21651
|
amisSchema.data.objectName = objectApiName;
|
|
21562
21652
|
}
|
|
21563
|
-
if (props.$$editor) {
|
|
21564
|
-
fieldsArray = fields || [];
|
|
21565
|
-
excludedFieldsArray = excludedFields || [];
|
|
21566
|
-
InitApiResendOn = fieldsArray.concat(excludedFieldsArray).join('');
|
|
21567
|
-
if (InitApiResendOn) {
|
|
21568
|
-
amisSchema.data.InitApiResendOn = InitApiResendOn;
|
|
21569
|
-
amisSchema.api.url += "&InitApiResendOn=${InitApiResendOn}";
|
|
21570
|
-
// amisSchema.api.InitApiResendOn = "${InitApiResendOn}"; 这种写法有bug,当多选几个显示的字段/排除的字段时,表单一直loding。
|
|
21571
|
-
}
|
|
21572
|
-
}
|
|
21573
21653
|
return [2 /*return*/, amisSchema];
|
|
21574
21654
|
}
|
|
21575
21655
|
});
|
|
@@ -21987,12 +22067,12 @@ var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void
|
|
|
21987
22067
|
/*
|
|
21988
22068
|
* @Author: baozhoutao@steedos.com
|
|
21989
22069
|
* @Date: 2022-12-08 10:32:17
|
|
21990
|
-
* @LastEditors:
|
|
21991
|
-
* @LastEditTime: 2024-
|
|
22070
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
22071
|
+
* @LastEditTime: 2024-04-25 19:21:15
|
|
21992
22072
|
* @Description:
|
|
21993
22073
|
*/
|
|
21994
22074
|
var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void 0, function () {
|
|
21995
|
-
var className, $schema, appId, _a, objectApiName, body, style, recordId, options, schema;
|
|
22075
|
+
var className, $schema, appId, _a, objectApiName, body, style, recordId, options, schema, formData;
|
|
21996
22076
|
return __generator(this, function (_b) {
|
|
21997
22077
|
switch (_b.label) {
|
|
21998
22078
|
case 0:
|
|
@@ -22019,6 +22099,14 @@ var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void
|
|
|
22019
22099
|
}
|
|
22020
22100
|
Object.assign(schema.style, style);
|
|
22021
22101
|
}
|
|
22102
|
+
formData = {};
|
|
22103
|
+
if (has(props, "recordId") && $schema.recordId !== "${recordId}") {
|
|
22104
|
+
formData.recordId = props.recordId;
|
|
22105
|
+
}
|
|
22106
|
+
schema.data = Object.assign({}, schema.data || {}, formData);
|
|
22107
|
+
if (has(props, 'objectApiName')) {
|
|
22108
|
+
schema.data.objectName = objectApiName;
|
|
22109
|
+
}
|
|
22022
22110
|
// console.log(`AmisRecordService====schema==>`, schema)
|
|
22023
22111
|
return [2 /*return*/, schema];
|
|
22024
22112
|
}
|
|
@@ -22604,7 +22692,7 @@ var AmisAppMenu = function (props) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
22604
22692
|
schemaApi: {
|
|
22605
22693
|
"method": "get",
|
|
22606
22694
|
"url": "${context.rootUrl}/service/api/apps/".concat(appId, "/menus"),
|
|
22607
|
-
"adaptor": "\n try {\n // console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"").concat(data.tabId, "\";\n if(stacked){\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 whitespace-normal leading-6 block -ml-px no-underline group flex items-center text-[14px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n })\n })\n } else {\n var tabGroup = _.find(tab_groups, {\"group_name\": groupName});\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": tabGroup && tabGroup.default_open != false,\n \"isGroup\": true,\n \"children\": _.sortBy(_.map(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 whitespace-normal leading-6 block -ml-px no-underline group flex items-center text-[14px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n }\n }),(tab) => {return tab.index})\n }) \n }\n });\n \n }else{\n _.each(payload.children, (tab)=>{\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 whitespace-normal leading-6 block -ml-px no-underline group flex items-center text-[14px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n });\n })\n }\n //\u4EE5\u4E0B\u4E3Anav\u7B2C\u4E00\u5C42\u6392\u5E8F\uFF0C\u5305\u62EC\u5206\u7EC4\u4E0E\u9009\u9879\u5361\n // let groupLength = ((payload.tab_groups && payload.tab_groups.length) || 0) + 1000;\n data.nav = _.sortBy(data.nav, function(tab){\n if(tab.isGroup){\n return _.findIndex(payload.tab_groups, function(group){\n return group.group_name === tab.label;\n });\n }else{\n // \u6CA1\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u6309index\u6392\u5217\u5728\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u524D\u65B9\n return (tab.index || 0) - 1000;\n }\n })\n payload.data = {\n \"type\":\"service\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": data.nav,\n \"keyvalues\": \"${ss:keyvalues}\"\n },\n \"id\": \"appMenuService\",\n \"onEvent\": {\n \"@data.changed.steedos_keyvalues\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"keyvalues\": \"${event.data.keyvalues}\"\n }\n }\n }\n ]\n }\n },\n \"body\":{\n \"type\": \"nav\",\n className: \"").concat(className, " text-black\",\n \"stacked\": ").concat(stacked, ",\n \"overflow\": ").concat(JSON.stringify(overflow), ",\n \"indentSize\": ").concat(indentSize, ",\n \"source\": \"${items}\",\n //\u5DE6\u5C42\u663E\u793A\u65F6\u5BA1\u6279\u5355\u663E\u793Abadge\u6570\u91CF\n \"itemBadge\": {\n \"mode\": \"text\",\n \"text\": \"").concat(badgeText, "\",\n \"visibleOn\": \"${id == 'instance_tasks'}\",\n \"overflowCount\": 99,\n \"style\": stacked?{\n \"right\": \"20%\",\n \"margin-right\": \"-23px\",\n \"height\": \"20px\",\n \"border-radius\": \"10px\",\n \"font-size\": \"16px\",\n \"line-height\": \"18px\",\n \"top\": \"50%\"\n }:{\n \"transform\": \"translate(calc(50% - 17px), calc(-50% + 10px))\",\n \"border-radius\": \"6.5px\",\n \"height\": \"15px\",\n \"line-height\": \"13px\",\n \"padding\": \"0px 4px\",\n \"font-size\": \"12px\"\n }\n },\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n };\n } catch (error) {\n console.log(`error`, error)\n }\n // console.log('payload===2==>', payload)\n return payload;\n "),
|
|
22695
|
+
"adaptor": "\n try {\n // console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"").concat(data.tabId, "\";\n if(stacked){\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='whitespace-normal leading-6 block no-underline group flex items-center text-[14px] rounded-md'><svg class=\"slds-icon_container slds-icon-standard-${ tab.iconClass } slds-icon !fill-white rounded-xl mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n })\n })\n } else {\n var tabGroup = _.find(tab_groups, {\"group_name\": groupName});\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": tabGroup && tabGroup.default_open != false,\n \"isGroup\": true,\n \"children\": _.sortBy(_.map(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='whitespace-normal leading-6 block no-underline group flex items-center text-[14px] rounded-md'><svg class=\"slds-icon_container slds-icon-standard-${ tab.iconClass } !fill-white slds-icon rounded-xl mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n }\n }),(tab) => {return tab.index})\n }) \n }\n });\n \n }else{\n _.each(payload.children, (tab)=>{\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='whitespace-normal leading-6 block no-underline group flex items-center text-[14px] rounded-md'><svg class=\"slds-icon_container slds-icon-standard-${ tab.iconClass } slds-icon !fill-white rounded-xl mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index\n // active: selectedId === tab.id,\n });\n })\n }\n //\u4EE5\u4E0B\u4E3Anav\u7B2C\u4E00\u5C42\u6392\u5E8F\uFF0C\u5305\u62EC\u5206\u7EC4\u4E0E\u9009\u9879\u5361\n // let groupLength = ((payload.tab_groups && payload.tab_groups.length) || 0) + 1000;\n data.nav = _.sortBy(data.nav, function(tab){\n if(tab.isGroup){\n return _.findIndex(payload.tab_groups, function(group){\n return group.group_name === tab.label;\n });\n }else{\n // \u6CA1\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u6309index\u6392\u5217\u5728\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u524D\u65B9\n return (tab.index || 0) - 1000;\n }\n })\n payload.data = {\n \"type\":\"service\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": data.nav,\n \"keyvalues\": \"${ss:keyvalues}\"\n },\n \"id\": \"appMenuService\",\n \"onEvent\": {\n \"@data.changed.steedos_keyvalues\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"keyvalues\": \"${event.data.keyvalues}\"\n }\n }\n }\n ]\n }\n },\n \"body\":{\n \"type\": \"nav\",\n \"searchable\": ").concat(stacked, ",\n \"searchConfig\": {\n \"placeholder\": \"\u641C\u7D22\u83DC\u5355\",\n \"matchFunc\": \"return link.searchKey && link.searchKey.indexOf(keyword)>=0;\"\n },\n className: \"").concat(className, " text-black steedos-app-menu ").concat(stacked ? 'stacked' : '', "\",\n \"stacked\": ").concat(stacked, ",\n \"overflow\": ").concat(JSON.stringify(overflow), ",\n \"indentSize\": ").concat(indentSize, ",\n \"source\": \"${items}\",\n //\u5DE6\u5C42\u663E\u793A\u65F6\u5BA1\u6279\u5355\u663E\u793Abadge\u6570\u91CF\n \"itemBadge\": {\n \"mode\": \"text\",\n \"text\": \"").concat(badgeText, "\",\n \"visibleOn\": \"${id == 'instance_tasks'}\",\n \"overflowCount\": 99,\n \"style\": stacked?{\n \"right\": \"20%\",\n \"margin-right\": \"-23px\",\n \"height\": \"20px\",\n \"border-radius\": \"10px\",\n \"font-size\": \"16px\",\n \"line-height\": \"18px\",\n \"top\": \"50%\"\n }:{\n \"transform\": \"translate(calc(50% - 17px), calc(-50% + 10px))\",\n \"border-radius\": \"6.5px\",\n \"height\": \"15px\",\n \"line-height\": \"13px\",\n \"padding\": \"0px 4px\",\n \"font-size\": \"12px\"\n }\n },\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n };\n } catch (error) {\n console.log(`error`, error)\n }\n // console.log('payload===2==>', payload)\n return payload;\n "),
|
|
22608
22696
|
"headers": {
|
|
22609
22697
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
22610
22698
|
}
|
|
@@ -23041,7 +23129,8 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
|
|
|
23041
23129
|
"color": "#FFFFFF"
|
|
23042
23130
|
},
|
|
23043
23131
|
},
|
|
23044
|
-
]
|
|
23132
|
+
],
|
|
23133
|
+
"xs": "auto"
|
|
23045
23134
|
},
|
|
23046
23135
|
{
|
|
23047
23136
|
"body": [
|
|
@@ -23057,7 +23146,8 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
|
|
|
23057
23146
|
"tpl": "${context.user.email}",
|
|
23058
23147
|
"inline": true,
|
|
23059
23148
|
},
|
|
23060
|
-
]
|
|
23149
|
+
],
|
|
23150
|
+
"columnClassName": "break-all"
|
|
23061
23151
|
}
|
|
23062
23152
|
]
|
|
23063
23153
|
},
|
|
@@ -23302,7 +23392,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
|
|
|
23302
23392
|
body: [
|
|
23303
23393
|
{
|
|
23304
23394
|
type: "wrapper",
|
|
23305
|
-
className: 'sidebar-wrapper px-0
|
|
23395
|
+
className: 'sidebar-wrapper px-0 py-3 pb-16 fixed z-20 h-full h-fill ease-in-out duration-300 flex flex-col border-r overflow-y-auto bg-gray-50 border-gray-200 block -translate-x-0 sm:w-[220px] w-64',
|
|
23306
23396
|
body: [
|
|
23307
23397
|
{
|
|
23308
23398
|
"type": "steedos-app-launcher",
|
|
@@ -23412,7 +23502,7 @@ var REFERENCE_VALUE_ITEM_ONCLICK = {
|
|
|
23412
23502
|
"title": " ",
|
|
23413
23503
|
"headerClassName": "hidden",
|
|
23414
23504
|
"size": "lg",
|
|
23415
|
-
"bodyClassName": "p-0 m-0",
|
|
23505
|
+
"bodyClassName": "p-0 m-0 bg-gray-100",
|
|
23416
23506
|
"closeOnEsc": true,
|
|
23417
23507
|
"closeOnOutside": true,
|
|
23418
23508
|
"resizable": true,
|
|
@@ -24350,7 +24440,7 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
|
|
|
24350
24440
|
recordPage = _a.sent();
|
|
24351
24441
|
recordSchema = recordPage ? recordPage.schema : {
|
|
24352
24442
|
"type": "wrapper",
|
|
24353
|
-
"className": "steedos-record-content overflow-y-auto p-0 m-0 flex-1 h-full",
|
|
24443
|
+
"className": "steedos-record-content overflow-y-auto p-0 m-0 flex-1 h-full bg-gray-100",
|
|
24354
24444
|
"name": "amis-".concat(appId, "-").concat(objectApiName, "-detail"),
|
|
24355
24445
|
"body": [
|
|
24356
24446
|
{
|