@steedos-widgets/amis-lib 1.2.0-beta.0 → 1.2.0-beta.1
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/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +173 -162
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +173 -162
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +176 -165
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/lookup.d.ts +1 -0
- package/dist/types/lib/converter/amis/header.d.ts +4 -21
- package/dist/types/lib/converter/amis/index.d.ts +0 -3
- package/dist/types/lib/objects.d.ts +6 -29
- package/dist/types/lib/objectsRelated.d.ts +4 -12
- package/dist/types/schema/standard_delete.amis.d.ts +0 -6
- package/dist/types/schema/standard_new.amis.d.ts +3 -0
- package/dist/types/standard/button.d.ts +3 -6
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _$1 = require('lodash');
|
|
6
|
-
var isPlainObject = require('lodash/isPlainObject');
|
|
7
6
|
var amisLib = require('@steedos-widgets/amis-lib');
|
|
7
|
+
var isPlainObject = require('lodash/isPlainObject');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
10
|
|
|
@@ -679,11 +679,7 @@ function getRecordPermissionsTemplate(){
|
|
|
679
679
|
}
|
|
680
680
|
|
|
681
681
|
async function getFindOneQuery$1(object, recordId, fields, options){
|
|
682
|
-
let queryOptions = ""
|
|
683
|
-
|
|
684
|
-
if(recordId){
|
|
685
|
-
queryOptions = `(filters:["${object.idFieldName}", "=", "${recordId}"])`;
|
|
686
|
-
}
|
|
682
|
+
let queryOptions = `(filters:["${object.idFieldName}", "=", "\${recordId}"])`;
|
|
687
683
|
let alias = "data";
|
|
688
684
|
if(options){
|
|
689
685
|
if(options.alias){
|
|
@@ -1392,8 +1388,8 @@ var config = {
|
|
|
1392
1388
|
/*
|
|
1393
1389
|
* @Author: baozhoutao@steedos.com
|
|
1394
1390
|
* @Date: 2022-11-01 15:51:00
|
|
1395
|
-
* @LastEditors:
|
|
1396
|
-
* @LastEditTime: 2023-
|
|
1391
|
+
* @LastEditors: Please set LastEditors
|
|
1392
|
+
* @LastEditTime: 2023-04-08 12:05:19
|
|
1397
1393
|
* @Description:
|
|
1398
1394
|
*/
|
|
1399
1395
|
|
|
@@ -1411,6 +1407,32 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
1411
1407
|
if (payload && payload.schema) {
|
|
1412
1408
|
formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;
|
|
1413
1409
|
}
|
|
1410
|
+
|
|
1411
|
+
const _master = api.body._master;
|
|
1412
|
+
if(_master && _master._isRelated){
|
|
1413
|
+
const relatedKey = _master.relatedKey;
|
|
1414
|
+
const masterObjectName = _master.objectName;
|
|
1415
|
+
const recordId = _master.recordId;
|
|
1416
|
+
const fields = ${JSON.stringify(uiSchema.fields)};
|
|
1417
|
+
const relatedField = fields[relatedKey];
|
|
1418
|
+
let defaultData = {};
|
|
1419
|
+
let relatedKeyValue;
|
|
1420
|
+
if(!_.isString(relatedField.reference_to)){
|
|
1421
|
+
relatedKeyValue = { o: masterObjectName, ids: [recordId] };
|
|
1422
|
+
}else if (relatedField.multiple) {
|
|
1423
|
+
relatedKeyValue = [recordId];
|
|
1424
|
+
} else {
|
|
1425
|
+
relatedKeyValue = recordId;
|
|
1426
|
+
}
|
|
1427
|
+
defaultData[relatedKey]=relatedKeyValue;
|
|
1428
|
+
if(payload.schema){
|
|
1429
|
+
// 表单微页面第一层要求是page
|
|
1430
|
+
formSchema.data.defaultData = defaultData;
|
|
1431
|
+
}else{
|
|
1432
|
+
formSchema.defaultData = defaultData;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1414
1436
|
return {
|
|
1415
1437
|
data: formSchema
|
|
1416
1438
|
};
|
|
@@ -1434,6 +1456,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
1434
1456
|
"data": {
|
|
1435
1457
|
"$master": "$$",
|
|
1436
1458
|
"_master": "${_master}",
|
|
1459
|
+
"_master._isRelated": "${_isRelated}",
|
|
1460
|
+
"_master.relatedKey": "${relatedKey}",
|
|
1437
1461
|
"defaultData": "${defaultData}",
|
|
1438
1462
|
"appId": "${appId}",
|
|
1439
1463
|
"objectName": "${objectName}",
|
|
@@ -1452,7 +1476,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
1452
1476
|
"messages": {},
|
|
1453
1477
|
"schemaApi": {
|
|
1454
1478
|
"data": {
|
|
1455
|
-
"isLookup": "${isLookup}"
|
|
1479
|
+
"isLookup": "${isLookup}",
|
|
1480
|
+
"_master": "${_master}"
|
|
1456
1481
|
},
|
|
1457
1482
|
"url": "${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",
|
|
1458
1483
|
"method": "get",
|
|
@@ -1575,8 +1600,8 @@ const getSchema$3 = async (uiSchema, ctx) => {
|
|
|
1575
1600
|
/*
|
|
1576
1601
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
1577
1602
|
* @Date: 2023-03-22 09:31:21
|
|
1578
|
-
* @LastEditors:
|
|
1579
|
-
* @LastEditTime: 2023-
|
|
1603
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
1604
|
+
* @LastEditTime: 2023-04-06 16:04:20
|
|
1580
1605
|
*/
|
|
1581
1606
|
const getSchema$2 = (uiSchema)=>{
|
|
1582
1607
|
return {
|
|
@@ -1606,15 +1631,11 @@ const getSchema$2 = (uiSchema)=>{
|
|
|
1606
1631
|
},
|
|
1607
1632
|
"adaptor": `
|
|
1608
1633
|
if(payload.errors){
|
|
1609
|
-
|
|
1610
|
-
|
|
1634
|
+
payload.status = 2;
|
|
1635
|
+
payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;
|
|
1611
1636
|
}
|
|
1612
1637
|
return payload;
|
|
1613
1638
|
`,
|
|
1614
|
-
},
|
|
1615
|
-
"messages": {
|
|
1616
|
-
"success": "删除成功",
|
|
1617
|
-
"failed": "删除失败"
|
|
1618
1639
|
}
|
|
1619
1640
|
},
|
|
1620
1641
|
"actionType": "ajax"
|
|
@@ -1977,7 +1998,7 @@ const StandardButtons = {
|
|
|
1977
1998
|
getStandardNew: async (uiSchema, ctx)=>{
|
|
1978
1999
|
return {
|
|
1979
2000
|
type: 'amis_button',
|
|
1980
|
-
amis_schema: await getSchema$4()
|
|
2001
|
+
amis_schema: await getSchema$4(uiSchema)
|
|
1981
2002
|
}
|
|
1982
2003
|
},
|
|
1983
2004
|
getStandardEdit: async (uiSchema, ctx)=>{
|
|
@@ -2061,7 +2082,7 @@ function getButtonVisibleOn$1(button){
|
|
|
2061
2082
|
if(visible.trim().startsWith('function')){
|
|
2062
2083
|
return `${visible}.apply({
|
|
2063
2084
|
object: uiSchema
|
|
2064
|
-
}, [objectName, _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data])`
|
|
2085
|
+
}, [objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data])`
|
|
2065
2086
|
}
|
|
2066
2087
|
return visible;
|
|
2067
2088
|
}
|
|
@@ -3191,9 +3212,8 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
|
|
|
3191
3212
|
|
|
3192
3213
|
let body = [
|
|
3193
3214
|
{
|
|
3194
|
-
"type": "
|
|
3195
|
-
"
|
|
3196
|
-
data: { "&":"$$", objectName: name, _id: recordId, recordPermissions: "${record.recordPermissions}", uiSchema: objectSchema},
|
|
3215
|
+
"type": "wrapper",
|
|
3216
|
+
"className": "p-0",
|
|
3197
3217
|
"body": [
|
|
3198
3218
|
{
|
|
3199
3219
|
"type": "grid",
|
|
@@ -3201,14 +3221,14 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
|
|
|
3201
3221
|
"className": "flex justify-between"
|
|
3202
3222
|
}
|
|
3203
3223
|
],
|
|
3204
|
-
"messages": {},
|
|
3205
3224
|
"hiddenOn": "${recordLoaded != true}"
|
|
3206
3225
|
}
|
|
3207
3226
|
];
|
|
3208
3227
|
|
|
3209
3228
|
if(showRecordTitle){
|
|
3210
3229
|
body.push({
|
|
3211
|
-
"type": "
|
|
3230
|
+
"type": "wrapper",
|
|
3231
|
+
"className": "p-0",
|
|
3212
3232
|
"body": [
|
|
3213
3233
|
{
|
|
3214
3234
|
"type": "grid",
|
|
@@ -3216,16 +3236,15 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
|
|
|
3216
3236
|
"className": "flex justify-between"
|
|
3217
3237
|
}
|
|
3218
3238
|
],
|
|
3219
|
-
"messages": {},
|
|
3220
3239
|
"hiddenOn": "${recordLoaded == true}"
|
|
3221
3240
|
});
|
|
3222
3241
|
}
|
|
3223
3242
|
|
|
3224
3243
|
return {
|
|
3225
3244
|
type: 'service',
|
|
3226
|
-
|
|
3245
|
+
id: `page_readonly_${name}_header`,
|
|
3227
3246
|
name: `page`,
|
|
3228
|
-
data: {
|
|
3247
|
+
data: { objectName: name, _id: recordId, recordPermissions: objectSchema.permissions, uiSchema: objectSchema, record: "${record}" },
|
|
3229
3248
|
body: body,
|
|
3230
3249
|
className: ''
|
|
3231
3250
|
}
|
|
@@ -3280,7 +3299,7 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
|
|
|
3280
3299
|
"body": [
|
|
3281
3300
|
{
|
|
3282
3301
|
"type": "tpl",
|
|
3283
|
-
"tpl": `<a class="text-black text-base font-bold" href="/app/\${appId}/\${
|
|
3302
|
+
"tpl": `<a class="text-black text-base font-bold" href="/app/\${appId}/\${_master.objectName}/\${_master.recordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${relatedLabel}(\${$count})</a>`,
|
|
3284
3303
|
"inline": false,
|
|
3285
3304
|
"wrapperComponent": "",
|
|
3286
3305
|
"className": "",
|
|
@@ -3321,17 +3340,22 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
|
|
|
3321
3340
|
async function getObjectRelatedListHeader(objectSchema, recordId, relatedObjectName) {
|
|
3322
3341
|
}
|
|
3323
3342
|
|
|
3324
|
-
const getDisplayAsButton = function(showDisplayAs){
|
|
3343
|
+
const getDisplayAsButton = function(objectName, showDisplayAs){
|
|
3344
|
+
let displayAs = amisLib.Router.getTabDisplayAs(objectName);
|
|
3325
3345
|
let buttons = [
|
|
3326
3346
|
{
|
|
3327
3347
|
"type": "button",
|
|
3328
3348
|
"label": "表格",
|
|
3329
|
-
"onClick": "
|
|
3349
|
+
"onClick": "let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
|
|
3350
|
+
"rightIcon": displayAs != 'split' ? "fa fa-check" : null,
|
|
3351
|
+
"rightIconClassName": "m-l-sm"
|
|
3330
3352
|
},
|
|
3331
3353
|
{
|
|
3332
3354
|
"type": "button",
|
|
3333
3355
|
"label": "分栏视图",
|
|
3334
|
-
"onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);"
|
|
3356
|
+
"onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
|
|
3357
|
+
"rightIcon": displayAs === 'split' ? "fa fa-check" : null,
|
|
3358
|
+
"rightIconClassName": "m-l-sm"
|
|
3335
3359
|
}
|
|
3336
3360
|
];
|
|
3337
3361
|
return {
|
|
@@ -3473,7 +3497,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
3473
3497
|
}
|
|
3474
3498
|
}
|
|
3475
3499
|
},
|
|
3476
|
-
showDisplayAs? getDisplayAsButton() : {}
|
|
3500
|
+
showDisplayAs? getDisplayAsButton(mainObject?.name) : {}
|
|
3477
3501
|
]
|
|
3478
3502
|
}else {
|
|
3479
3503
|
return [
|
|
@@ -3554,7 +3578,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
3554
3578
|
}
|
|
3555
3579
|
}
|
|
3556
3580
|
},
|
|
3557
|
-
showDisplayAs? getDisplayAsButton() : {}
|
|
3581
|
+
showDisplayAs? getDisplayAsButton(showDisplayAs) : {}
|
|
3558
3582
|
// {
|
|
3559
3583
|
// "type": "search-box",
|
|
3560
3584
|
// "align": "right",
|
|
@@ -3844,13 +3868,14 @@ function getLookupSapceUserTreeSchema(){
|
|
|
3844
3868
|
"headers": {
|
|
3845
3869
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
3846
3870
|
},
|
|
3847
|
-
"adaptor": " const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n
|
|
3871
|
+
"adaptor": "if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",
|
|
3848
3872
|
"requestAdaptor": "\n ",
|
|
3849
3873
|
"data": {
|
|
3850
3874
|
"query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
|
|
3851
3875
|
},
|
|
3852
3876
|
"messages": {
|
|
3853
|
-
}
|
|
3877
|
+
},
|
|
3878
|
+
"cache": 300000
|
|
3854
3879
|
},
|
|
3855
3880
|
"onEvent": {
|
|
3856
3881
|
"change": {
|
|
@@ -4241,20 +4266,20 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
4241
4266
|
|
|
4242
4267
|
if(referenceTo){
|
|
4243
4268
|
// 字段值单独走一个请求合并到source的同一个GraphQL接口中
|
|
4244
|
-
const defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null,
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4269
|
+
const defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null, [
|
|
4270
|
+
Object.assign({}, referenceTo.labelField, {alias: 'label'}),
|
|
4271
|
+
Object.assign({}, referenceTo.valueField, {alias: 'value'})
|
|
4272
|
+
], {
|
|
4248
4273
|
alias: "defaultValueOptions",
|
|
4249
4274
|
filters: "{__options_filters}",
|
|
4250
4275
|
count: false
|
|
4251
4276
|
});
|
|
4252
4277
|
apiInfo = await getApi$1({
|
|
4253
4278
|
name: referenceTo.objectName
|
|
4254
|
-
}, null,
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4279
|
+
}, null, [
|
|
4280
|
+
Object.assign({}, referenceTo.labelField, {alias: 'label'}),
|
|
4281
|
+
Object.assign({}, referenceTo.valueField, {alias: 'value'})
|
|
4282
|
+
], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: "{__sort}"`, moreQueries: [defaultValueOptionsQueryData.query]});
|
|
4258
4283
|
|
|
4259
4284
|
apiInfo.adaptor = `
|
|
4260
4285
|
const data = payload.data;
|
|
@@ -5415,8 +5440,9 @@ function getReadonlyFormAdaptor(fields){
|
|
|
5415
5440
|
async function getReadonlyFormInitApi(object, recordId, fields, options){
|
|
5416
5441
|
return {
|
|
5417
5442
|
method: "post",
|
|
5418
|
-
url: getApi$2()+"
|
|
5443
|
+
url: getApi$2()+"&recordId=${recordId}",
|
|
5419
5444
|
cache: API_CACHE,
|
|
5445
|
+
// requestAdaptor: "console.log('getReadonlyFormInitApi requestAdaptor', api);return api;",
|
|
5420
5446
|
adaptor: getReadonlyFormAdaptor(fields),
|
|
5421
5447
|
data: await getFindOneQuery$1(object, recordId, fields, options),
|
|
5422
5448
|
headers: {
|
|
@@ -5523,6 +5549,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
|
|
|
5523
5549
|
data.global = "${global}";
|
|
5524
5550
|
data.context = "${context}";
|
|
5525
5551
|
data.defaultData = "${defaultData}";
|
|
5552
|
+
|
|
5526
5553
|
return {
|
|
5527
5554
|
method: "post",
|
|
5528
5555
|
url: getApi$2(),
|
|
@@ -5891,7 +5918,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
5891
5918
|
keepItemSelectionOnPageChange: true,
|
|
5892
5919
|
api: await getTableApi(objectSchema, fields, options),
|
|
5893
5920
|
hiddenOn: options.tableHiddenOn,
|
|
5894
|
-
autoFillHeight: true,
|
|
5921
|
+
autoFillHeight: options.isRelated ? false : true,
|
|
5895
5922
|
className: `flex-auto ${crudClassName || ""}`,
|
|
5896
5923
|
crudClassName: crudClassName,
|
|
5897
5924
|
},
|
|
@@ -5934,11 +5961,11 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
5934
5961
|
id: `service_${id}`,
|
|
5935
5962
|
name: `page`,
|
|
5936
5963
|
data: {
|
|
5937
|
-
objectName: objectSchema.name,
|
|
5938
|
-
_id: null,
|
|
5964
|
+
// objectName: objectSchema.name,
|
|
5965
|
+
// _id: null,
|
|
5939
5966
|
recordPermissions: objectSchema.permissions,
|
|
5940
5967
|
uiSchema: objectSchema,
|
|
5941
|
-
loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
|
|
5968
|
+
// loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
|
|
5942
5969
|
},
|
|
5943
5970
|
body: body
|
|
5944
5971
|
}
|
|
@@ -6051,6 +6078,10 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
6051
6078
|
"objectName": "${_master.objectName}"
|
|
6052
6079
|
},
|
|
6053
6080
|
"expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
|
|
6081
|
+
},
|
|
6082
|
+
{
|
|
6083
|
+
"args": {},
|
|
6084
|
+
"actionType": "closeDialog"
|
|
6054
6085
|
}
|
|
6055
6086
|
]
|
|
6056
6087
|
}
|
|
@@ -6397,7 +6428,7 @@ function getButtonVisibleOn(button){
|
|
|
6397
6428
|
// return 'false';
|
|
6398
6429
|
// }
|
|
6399
6430
|
if(visible.trim().startsWith('function')){
|
|
6400
|
-
return `${visible}(objectName, _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`
|
|
6431
|
+
return `${visible}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`
|
|
6401
6432
|
}
|
|
6402
6433
|
return visible;
|
|
6403
6434
|
}
|
|
@@ -6562,6 +6593,11 @@ async function getTableApi(mainObject, fields, options){
|
|
|
6562
6593
|
|
|
6563
6594
|
let valueField = mainObject.key_field || '_id';
|
|
6564
6595
|
const api = await getApi(mainObject, null, fields, {count: options.queryCount, alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"`});
|
|
6596
|
+
|
|
6597
|
+
if(options.isRelated){
|
|
6598
|
+
api.url += "&recordId=${recordId}";
|
|
6599
|
+
}
|
|
6600
|
+
|
|
6565
6601
|
api.data.$term = "$term";
|
|
6566
6602
|
api.data.$self = "$$";
|
|
6567
6603
|
api.data.filter = "$filter";
|
|
@@ -6681,11 +6717,36 @@ async function getTableApi(mainObject, fields, options){
|
|
|
6681
6717
|
if(!_.isEmpty(systemFilters)){
|
|
6682
6718
|
filters = systemFilters;
|
|
6683
6719
|
};
|
|
6684
|
-
|
|
6685
6720
|
if(api.data.$self.additionalFilters){
|
|
6686
6721
|
userFilters.push(api.data.$self.additionalFilters)
|
|
6687
6722
|
}
|
|
6688
6723
|
|
|
6724
|
+
if(api.data.$self._isRelated){
|
|
6725
|
+
const self = api.data.$self;
|
|
6726
|
+
const relatedKey = self.relatedKey;
|
|
6727
|
+
const recordId = self.recordId;
|
|
6728
|
+
const refField = self.uiSchema.fields[relatedKey];
|
|
6729
|
+
const masterRecord = self._master.record;
|
|
6730
|
+
const masterObjectName = self._master.objectName;
|
|
6731
|
+
let relatedValue = recordId;
|
|
6732
|
+
if(refField.reference_to_field && refField.reference_to_field != '_id'){
|
|
6733
|
+
relatedValue = masterRecord[refField.reference_to_field]
|
|
6734
|
+
}
|
|
6735
|
+
let relatedFilters;
|
|
6736
|
+
if (
|
|
6737
|
+
refField._reference_to ||
|
|
6738
|
+
(refField.reference_to && !_.isString(refField.reference_to))
|
|
6739
|
+
) {
|
|
6740
|
+
relatedFilters = [
|
|
6741
|
+
[relatedKey + "/o", "=", masterObjectName],
|
|
6742
|
+
[relatedKey + "/ids", "=", relatedValue],
|
|
6743
|
+
];
|
|
6744
|
+
} else {
|
|
6745
|
+
relatedFilters = [relatedKey, "=", relatedValue];
|
|
6746
|
+
}
|
|
6747
|
+
userFilters.push(relatedFilters)
|
|
6748
|
+
}
|
|
6749
|
+
|
|
6689
6750
|
if(!_.isEmpty(userFilters)){
|
|
6690
6751
|
if(_.isEmpty(filters)){
|
|
6691
6752
|
filters = userFilters;
|
|
@@ -6808,7 +6869,7 @@ async function getApi(object, recordId, fields, options){
|
|
|
6808
6869
|
const data = await getFindQuery(object, recordId, fields, options);
|
|
6809
6870
|
return {
|
|
6810
6871
|
method: "post",
|
|
6811
|
-
url: getApi$2(),
|
|
6872
|
+
url: getApi$2(), // + "&recordId=${recordId}"
|
|
6812
6873
|
data: data,
|
|
6813
6874
|
headers: {
|
|
6814
6875
|
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -7442,8 +7503,8 @@ const getRecordPermissions = async (objectName, recordId)=>{
|
|
|
7442
7503
|
/*
|
|
7443
7504
|
* @Author: baozhoutao@steedos.com
|
|
7444
7505
|
* @Date: 2022-07-05 15:55:39
|
|
7445
|
-
* @LastEditors:
|
|
7446
|
-
* @LastEditTime: 2023-
|
|
7506
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
7507
|
+
* @LastEditTime: 2023-04-08 18:14:55
|
|
7447
7508
|
* @Description:
|
|
7448
7509
|
*/
|
|
7449
7510
|
|
|
@@ -7515,7 +7576,7 @@ async function getObjectRelatedList(
|
|
|
7515
7576
|
|
|
7516
7577
|
// 获取单个相关表
|
|
7517
7578
|
async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObjectName, relatedKey, ctx){
|
|
7518
|
-
let { top, perPage,
|
|
7579
|
+
let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on } = ctx;
|
|
7519
7580
|
// console.log('getRecordDetailRelatedListSchema==>',objectName,recordId,relatedObjectName)
|
|
7520
7581
|
const relatedObjectUiSchema = await getUISchema(relatedObjectName);
|
|
7521
7582
|
if(!relatedObjectUiSchema){
|
|
@@ -7550,6 +7611,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
7550
7611
|
relatedKey = mainRelated[relatedObjectName];
|
|
7551
7612
|
}
|
|
7552
7613
|
let globalFilter = null;
|
|
7614
|
+
// TODO: refField变量去掉,写到amis运行时脚本中,uiSchema.fields[relatedKey];可以取到
|
|
7553
7615
|
const refField = await getField(relatedObjectName, relatedKey);
|
|
7554
7616
|
|
|
7555
7617
|
if(!refField){
|
|
@@ -7565,23 +7627,23 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
7565
7627
|
}
|
|
7566
7628
|
}
|
|
7567
7629
|
|
|
7568
|
-
let relatedValue = recordId;
|
|
7569
|
-
if(refField.reference_to_field && refField.reference_to_field != '_id'){
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
}
|
|
7630
|
+
let relatedValue = "${recordId}";
|
|
7631
|
+
// if(refField.reference_to_field && refField.reference_to_field != '_id'){
|
|
7632
|
+
// const masterRecord = await getRecord(objectName, recordId, [refField.reference_to_field]);
|
|
7633
|
+
// relatedValue = masterRecord[refField.reference_to_field]
|
|
7634
|
+
// }
|
|
7573
7635
|
|
|
7574
|
-
if (
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
) {
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
} else {
|
|
7583
|
-
|
|
7584
|
-
}
|
|
7636
|
+
// if (
|
|
7637
|
+
// refField._reference_to ||
|
|
7638
|
+
// (refField.reference_to && !isString(refField.reference_to))
|
|
7639
|
+
// ) {
|
|
7640
|
+
// globalFilter = [
|
|
7641
|
+
// [`${relatedKey}/o`, "=", objectName],
|
|
7642
|
+
// [`${relatedKey}/ids`, "=", relatedValue],
|
|
7643
|
+
// ];
|
|
7644
|
+
// } else {
|
|
7645
|
+
// globalFilter = [`${relatedKey}`, "=", relatedValue];
|
|
7646
|
+
// }
|
|
7585
7647
|
const recordRelatedListHeader = await getObjectRecordDetailRelatedListHeader(relatedObjectUiSchema, relatedLabel);
|
|
7586
7648
|
const componentId = `steedos-record-related-list-${relatedObjectName}`;
|
|
7587
7649
|
const options = {
|
|
@@ -7606,9 +7668,9 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
7606
7668
|
top: top,
|
|
7607
7669
|
perPage: perPage,
|
|
7608
7670
|
setDataToComponentId: componentId,
|
|
7609
|
-
tableHiddenOn: hiddenEmptyTable ? "this.$count === 0" : null,
|
|
7671
|
+
// tableHiddenOn: hiddenEmptyTable ? "this.$count === 0" : null,
|
|
7610
7672
|
appId: appId,
|
|
7611
|
-
crudClassName: 'border-t border-slate-300',
|
|
7673
|
+
crudClassName: 'border-t border-slate-300 hidden',
|
|
7612
7674
|
...ctx
|
|
7613
7675
|
};
|
|
7614
7676
|
const amisSchema= (await getRelatedListSchema(relatedObjectName, 'all', options)).amisSchema;
|
|
@@ -7620,15 +7682,9 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
7620
7682
|
amisSchema: {
|
|
7621
7683
|
type: "service",
|
|
7622
7684
|
id: componentId,
|
|
7623
|
-
className: `steedos-record-related-list rounded border border-slate-300 bg-gray-100 mb-4 ${className}`,
|
|
7685
|
+
className: `steedos-record-related-list ${componentId} rounded border border-slate-300 bg-gray-100 mb-4 ${className}`,
|
|
7624
7686
|
data: {
|
|
7625
|
-
"&": "$$",
|
|
7626
|
-
appId: "${appId}",
|
|
7627
|
-
app_id: "${appId}",
|
|
7628
|
-
masterObjectName: objectName,
|
|
7629
|
-
masterRecordId: "${recordId}",
|
|
7630
7687
|
relatedKey: relatedKey,
|
|
7631
|
-
objectName: relatedObjectName,
|
|
7632
7688
|
listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
|
|
7633
7689
|
_isRelated: true
|
|
7634
7690
|
},
|
|
@@ -7636,12 +7692,6 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
7636
7692
|
{
|
|
7637
7693
|
...amisSchema,
|
|
7638
7694
|
data: {
|
|
7639
|
-
"&": "$$",
|
|
7640
|
-
appId: "${appId}",
|
|
7641
|
-
app_id: "${appId}",
|
|
7642
|
-
relatedKey: relatedKey,
|
|
7643
|
-
objectName: "${objectName}",
|
|
7644
|
-
recordId: "${masterRecordId}",
|
|
7645
7695
|
defaultData: {
|
|
7646
7696
|
...{[relatedKey]: getRelatedFieldValue(objectName, relatedValue, relatedObjectUiSchema, relatedKey)}
|
|
7647
7697
|
}
|
|
@@ -7685,13 +7735,13 @@ function getDefaultRelatedListProps(uiSchema, listName, ctx) {
|
|
|
7685
7735
|
columns = getListViewColumns(listView, ctx.formFactor);
|
|
7686
7736
|
sort = getListViewSort(listView);
|
|
7687
7737
|
filter = getListViewFilter(listView);
|
|
7688
|
-
if(
|
|
7689
|
-
|
|
7690
|
-
|
|
7691
|
-
}else if(ctx.globalFilter && (!filter || !filter.length)){
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
}
|
|
7738
|
+
// if(isArray(ctx.globalFilter) && ctx.globalFilter.length && isArray(filter) && filter.length){
|
|
7739
|
+
// // 都有值
|
|
7740
|
+
// filter = [ctx.globalFilter, 'and', filter]
|
|
7741
|
+
// }else if(ctx.globalFilter && (!filter || !filter.length)){
|
|
7742
|
+
// // globalFilter有值,filter无值
|
|
7743
|
+
// filter = ctx.globalFilter;
|
|
7744
|
+
// }
|
|
7695
7745
|
filtersFunction = listView && listView._filters;
|
|
7696
7746
|
}else {
|
|
7697
7747
|
const isNameField = _$1.find(
|
|
@@ -7701,9 +7751,9 @@ function getDefaultRelatedListProps(uiSchema, listName, ctx) {
|
|
|
7701
7751
|
}
|
|
7702
7752
|
);
|
|
7703
7753
|
columns = isNameField ? [isNameField.name] : ['name'];
|
|
7704
|
-
if(ctx.globalFilter){
|
|
7705
|
-
|
|
7706
|
-
}
|
|
7754
|
+
// if(ctx.globalFilter){
|
|
7755
|
+
// filter = ctx.globalFilter;
|
|
7756
|
+
// }
|
|
7707
7757
|
}
|
|
7708
7758
|
|
|
7709
7759
|
return {
|
|
@@ -7727,7 +7777,7 @@ function getRelatedListProps(uiSchema, listViewName, ctx) {
|
|
|
7727
7777
|
return {
|
|
7728
7778
|
columns: ctx.columns,
|
|
7729
7779
|
sort,
|
|
7730
|
-
filter: ctx.globalFilter,
|
|
7780
|
+
// filter: ctx.globalFilter,
|
|
7731
7781
|
filtersFunction: filtersFunction
|
|
7732
7782
|
}
|
|
7733
7783
|
} else {
|
|
@@ -7766,6 +7816,16 @@ async function getRelatedListSchema(
|
|
|
7766
7816
|
delete ctx.filters;
|
|
7767
7817
|
|
|
7768
7818
|
delete ctx.globalFilter;
|
|
7819
|
+
|
|
7820
|
+
const adaptor = `
|
|
7821
|
+
if(setDataToComponentId){
|
|
7822
|
+
if(payload.data.count){
|
|
7823
|
+
setTimeout(function(){
|
|
7824
|
+
window.$("." + setDataToComponentId + " .antd-Crud").removeClass("hidden");
|
|
7825
|
+
}, 10);
|
|
7826
|
+
}
|
|
7827
|
+
};
|
|
7828
|
+
`;
|
|
7769
7829
|
const amisSchema = {
|
|
7770
7830
|
"type": "steedos-object-table",
|
|
7771
7831
|
"objectApiName": objectName,
|
|
@@ -7774,6 +7834,8 @@ async function getRelatedListSchema(
|
|
|
7774
7834
|
"filters": listviewFilter,
|
|
7775
7835
|
"filtersFunction": filtersFunction,
|
|
7776
7836
|
"sort": listViewSort,
|
|
7837
|
+
"filterVisible": false,
|
|
7838
|
+
adaptor,
|
|
7777
7839
|
"ctx": ctx
|
|
7778
7840
|
};
|
|
7779
7841
|
// console.log(`getRelatedListSchema amisSchema`, amisSchema);
|
|
@@ -7786,8 +7848,8 @@ async function getRelatedListSchema(
|
|
|
7786
7848
|
/*
|
|
7787
7849
|
* @Author: baozhoutao@steedos.com
|
|
7788
7850
|
* @Date: 2022-07-05 15:55:39
|
|
7789
|
-
* @LastEditors:
|
|
7790
|
-
* @LastEditTime: 2023-
|
|
7851
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
7852
|
+
* @LastEditTime: 2023-04-08 17:31:57
|
|
7791
7853
|
* @Description:
|
|
7792
7854
|
*/
|
|
7793
7855
|
|
|
@@ -7959,14 +8021,14 @@ async function getField(objectName, fieldName) {
|
|
|
7959
8021
|
async function getFormSchema(objectName, ctx) {
|
|
7960
8022
|
const uiSchema = await getUISchema(objectName);
|
|
7961
8023
|
const amisSchema = await getObjectForm(uiSchema, ctx);
|
|
7962
|
-
|
|
8024
|
+
console.log(`getFormSchema====>`, amisSchema);
|
|
7963
8025
|
return {
|
|
7964
8026
|
uiSchema,
|
|
7965
8027
|
amisSchema,
|
|
7966
8028
|
};
|
|
7967
8029
|
}
|
|
7968
8030
|
|
|
7969
|
-
// 获取只读页面
|
|
8031
|
+
// 获取只读页面 recordId 已废弃, 函数签名保持不变, 但recordId变量不可再使用, 请使用运行时的${recordId}
|
|
7970
8032
|
async function getViewSchema(objectName, recordId, ctx) {
|
|
7971
8033
|
const uiSchema = await getUISchema(objectName);
|
|
7972
8034
|
const amisSchema = await getObjectDetail(uiSchema, recordId, ctx);
|
|
@@ -8151,6 +8213,7 @@ async function getTableSchema(
|
|
|
8151
8213
|
headerToolbarItems: ctx.headerToolbarItems,
|
|
8152
8214
|
buttons: await getListViewItemButtons(uiSchema, ctx)
|
|
8153
8215
|
});
|
|
8216
|
+
// console.log('getTableSchema====>amisSchema', amisSchema)
|
|
8154
8217
|
return {
|
|
8155
8218
|
uiSchema,
|
|
8156
8219
|
amisSchema,
|
|
@@ -8249,15 +8312,8 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
8249
8312
|
"data": {
|
|
8250
8313
|
"name": `\${event.data.record.${uiSchema?.NAME_FIELD_KEY || 'name'}}`,
|
|
8251
8314
|
"record": `\${event.data.record}`,
|
|
8252
|
-
"
|
|
8253
|
-
|
|
8254
|
-
},
|
|
8255
|
-
{
|
|
8256
|
-
"actionType": "reload",
|
|
8257
|
-
"componentId": `page_readonly_${objectName}_header`, //刷新标题, 详细页面header service 嵌套太多, 导致仅刷新第一层service无法更新recordName
|
|
8258
|
-
"data": {
|
|
8259
|
-
"name": `\${event.data.record.${uiSchema?.NAME_FIELD_KEY || 'name'}}`,
|
|
8260
|
-
"record": `\${event.data.record}`,
|
|
8315
|
+
"_id": "\${event.data.record._id}",
|
|
8316
|
+
"recordId": "\${event.data.record._id}",
|
|
8261
8317
|
"recordLoaded": true,
|
|
8262
8318
|
}
|
|
8263
8319
|
}
|
|
@@ -8267,10 +8323,10 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
8267
8323
|
},
|
|
8268
8324
|
content
|
|
8269
8325
|
],
|
|
8270
|
-
data: {
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
},
|
|
8326
|
+
// data: {
|
|
8327
|
+
// "_master.objectName": "${objectName}",
|
|
8328
|
+
// "_master.recordId": "${recordId}"
|
|
8329
|
+
// },
|
|
8274
8330
|
onEvent: {
|
|
8275
8331
|
"recordLoaded": {
|
|
8276
8332
|
"actions": [
|
|
@@ -8278,10 +8334,10 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
8278
8334
|
"actionType": "reload",
|
|
8279
8335
|
"data": {
|
|
8280
8336
|
"name": `\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,
|
|
8281
|
-
"_master.record": `\${record}`,
|
|
8282
|
-
// 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId
|
|
8283
|
-
"_master.objectName": "${objectName}",
|
|
8284
|
-
"_master.recordId": "${recordId}"
|
|
8337
|
+
// "_master.record": `\${record}`,
|
|
8338
|
+
// // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId
|
|
8339
|
+
// "_master.objectName": "${objectName}",
|
|
8340
|
+
// "_master.recordId": "${recordId}"
|
|
8285
8341
|
}
|
|
8286
8342
|
}
|
|
8287
8343
|
]
|
|
@@ -8292,51 +8348,6 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
8292
8348
|
}
|
|
8293
8349
|
}
|
|
8294
8350
|
|
|
8295
|
-
// export async function getRecordDetailRelatedListSchema(objectName,recordId,relatedObjectName){
|
|
8296
|
-
// // console.log('b==>',objectName,recordId,relatedObjectName)
|
|
8297
|
-
// const relatedObjectUiSchema = await getUISchema(relatedObjectName);
|
|
8298
|
-
// const { list_views, label , icon, fields } = relatedObjectUiSchema;
|
|
8299
|
-
// const firstListViewName = keys(list_views)[0];
|
|
8300
|
-
// const relatedKey = findKey(fields, function(field) {
|
|
8301
|
-
// return ["lookup","master_detail"].indexOf(field.type) > -1 && field.reference_to === objectName;
|
|
8302
|
-
// });
|
|
8303
|
-
// const globalFilter = [relatedKey,'=',recordId];
|
|
8304
|
-
// const recordRelatedListHeader = await getObjectRecordDetailRelatedListHeader(relatedObjectUiSchema);
|
|
8305
|
-
// const options = {
|
|
8306
|
-
// globalFilter,
|
|
8307
|
-
// defaults: {
|
|
8308
|
-
// listSchema: { headerToolbar:[],columnsTogglable:false },
|
|
8309
|
-
// headerSchema: recordRelatedListHeader
|
|
8310
|
-
// },
|
|
8311
|
-
// showHeader: true
|
|
8312
|
-
// }
|
|
8313
|
-
// const amisSchema= (await getListSchema(null, relatedObjectName, firstListViewName, options)).amisSchema;
|
|
8314
|
-
// return {
|
|
8315
|
-
// uiSchema: relatedObjectUiSchema,
|
|
8316
|
-
// amisSchema: {
|
|
8317
|
-
// type: "service",
|
|
8318
|
-
// data: {
|
|
8319
|
-
// masterObjectName: objectName,
|
|
8320
|
-
// masterRecordId: "${recordId}",
|
|
8321
|
-
// relatedKey: relatedKey,
|
|
8322
|
-
// objectName: relatedObjectName,
|
|
8323
|
-
// listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
|
|
8324
|
-
// },
|
|
8325
|
-
// body:[
|
|
8326
|
-
// {
|
|
8327
|
-
// ...amisSchema,
|
|
8328
|
-
// data: {
|
|
8329
|
-
// filter: ["${relatedKey}", "=", "${masterRecordId}"],
|
|
8330
|
-
// objectName: "${objectName}",
|
|
8331
|
-
// recordId: "${masterRecordId}",
|
|
8332
|
-
// ...{[relatedKey]: getRelatedFieldValue(objectName, "${recordId}", relatedSchema.uiSchema, relatedKey)}
|
|
8333
|
-
// }
|
|
8334
|
-
// }
|
|
8335
|
-
// ]
|
|
8336
|
-
// }
|
|
8337
|
-
// };
|
|
8338
|
-
// }
|
|
8339
|
-
|
|
8340
8351
|
|
|
8341
8352
|
// 获取单个相关表
|
|
8342
8353
|
async function getObjectRelated(
|