@steedos-widgets/amis-lib 1.2.3-beta.1 → 1.2.5
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 +184 -170
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +185 -171
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +184 -170
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/api.d.ts +4 -0
- package/dist/types/lib/converter/amis/fields_filter.d.ts +29 -23
- package/dist/types/lib/converter/amis/header.d.ts +13 -14
- package/dist/types/lib/converter/amis/index.d.ts +4 -0
- package/dist/types/lib/converter/amis/toolbar.d.ts +13 -14
- package/dist/types/lib/objects.d.ts +4 -0
- package/dist/types/lib/objectsRelated.d.ts +2 -0
- package/dist/types/lib/page_init.d.ts +4 -0
- package/dist/types/schema/standard_new.amis.d.ts +22 -0
- package/dist/types/standard/button.d.ts +22 -0
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -361,7 +361,7 @@ const getSteedosAuth = () => {
|
|
|
361
361
|
* @Author: baozhoutao@steedos.com
|
|
362
362
|
* @Date: 2022-08-16 17:02:08
|
|
363
363
|
* @LastEditors: baozhoutao@steedos.com
|
|
364
|
-
* @LastEditTime: 2023-04-
|
|
364
|
+
* @LastEditTime: 2023-04-19 15:25:50
|
|
365
365
|
* @Description:
|
|
366
366
|
*/
|
|
367
367
|
|
|
@@ -373,7 +373,7 @@ const Router = {
|
|
|
373
373
|
return urlSearch.get('display')
|
|
374
374
|
}
|
|
375
375
|
// const key = `tab.${tab_id}.display`;
|
|
376
|
-
const key = `
|
|
376
|
+
const key = `page_display`;
|
|
377
377
|
const value = localStorage.getItem(key);
|
|
378
378
|
return value ? value : 'grid'
|
|
379
379
|
},
|
|
@@ -1395,8 +1395,8 @@ var config = {
|
|
|
1395
1395
|
/*
|
|
1396
1396
|
* @Author: baozhoutao@steedos.com
|
|
1397
1397
|
* @Date: 2022-11-01 15:51:00
|
|
1398
|
-
* @LastEditors:
|
|
1399
|
-
* @LastEditTime: 2023-04-
|
|
1398
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
1399
|
+
* @LastEditTime: 2023-04-19 20:26:27
|
|
1400
1400
|
* @Description:
|
|
1401
1401
|
*/
|
|
1402
1402
|
|
|
@@ -1506,7 +1506,27 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
1506
1506
|
"id": "u:e11347411d2d",
|
|
1507
1507
|
"closeOnEsc": false,
|
|
1508
1508
|
"closeOnOutside": false,
|
|
1509
|
-
"size": "lg"
|
|
1509
|
+
"size": "lg",
|
|
1510
|
+
"actions": [
|
|
1511
|
+
{
|
|
1512
|
+
type: 'button',
|
|
1513
|
+
actionType: 'cancel',
|
|
1514
|
+
label: "取消"
|
|
1515
|
+
},
|
|
1516
|
+
{
|
|
1517
|
+
type: 'button',
|
|
1518
|
+
label: "保存并新建",
|
|
1519
|
+
actionType: 'confirm',
|
|
1520
|
+
close: false,
|
|
1521
|
+
id: "confirmAndNew"
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
type: 'button',
|
|
1525
|
+
actionType: 'confirm',
|
|
1526
|
+
label: "保存",
|
|
1527
|
+
primary: true
|
|
1528
|
+
},
|
|
1529
|
+
]
|
|
1510
1530
|
}
|
|
1511
1531
|
}
|
|
1512
1532
|
]
|
|
@@ -2408,96 +2428,97 @@ async function getObjectFieldsFilterButtonSchema(objectSchema) {
|
|
|
2408
2428
|
}
|
|
2409
2429
|
}
|
|
2410
2430
|
|
|
2411
|
-
async function getObjectFieldsFilterFormSchema(
|
|
2412
|
-
|
|
2431
|
+
async function getObjectFieldsFilterFormSchema(ctx) {
|
|
2432
|
+
|
|
2433
|
+
if (!ctx) {
|
|
2413
2434
|
ctx = {};
|
|
2414
2435
|
}
|
|
2415
|
-
const
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2436
|
+
const formSchema = {
|
|
2437
|
+
"type": "service",
|
|
2438
|
+
"visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
2439
|
+
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2" : "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",
|
|
2440
|
+
"schemaApi": {
|
|
2441
|
+
method: 'post',
|
|
2442
|
+
url: `\${context.rootUrl}/graphql?reload=\${filterFormSearchableFields|join}`,
|
|
2443
|
+
data: {
|
|
2444
|
+
$self: "$$",
|
|
2445
|
+
query: "{\n data: objects(filters: [[\"_id\",\"=\",null]],top: 1, skip: 0){_id}\n }"
|
|
2446
|
+
},
|
|
2447
|
+
requestAdaptor: `
|
|
2448
|
+
return {
|
|
2449
|
+
...api,
|
|
2450
|
+
data: {
|
|
2451
|
+
query: api.data.query
|
|
2452
|
+
}
|
|
2453
|
+
};
|
|
2454
|
+
`,
|
|
2455
|
+
adaptor: `
|
|
2456
|
+
if(payload.errors){
|
|
2457
|
+
payload.status = 2;
|
|
2458
|
+
payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;
|
|
2459
|
+
}
|
|
2460
|
+
const selfData = api.body.$self;
|
|
2461
|
+
const filterFormSearchableFields = selfData.filterFormSearchableFields;
|
|
2462
|
+
const uiSchema = selfData.uiSchema;
|
|
2463
|
+
const fields = uiSchema.fields;
|
|
2464
|
+
const searchableFields = [];
|
|
2465
|
+
|
|
2466
|
+
const resolveAll = function(values){
|
|
2467
|
+
payload.data = {
|
|
2468
|
+
"body": values
|
|
2469
|
+
};
|
|
2470
|
+
return payload;
|
|
2471
|
+
}
|
|
2472
|
+
|
|
2473
|
+
const rejectAll = function(){
|
|
2474
|
+
console.warn("run function getFieldSearchable failed.");
|
|
2475
|
+
}
|
|
2476
|
+
|
|
2477
|
+
return Promise.all(filterFormSearchableFields.map(function (item) {
|
|
2478
|
+
const field = _.clone(fields[item]);
|
|
2479
|
+
if (
|
|
2480
|
+
!_.includes(
|
|
2481
|
+
[
|
|
2482
|
+
"grid",
|
|
2483
|
+
"avatar",
|
|
2484
|
+
"image",
|
|
2485
|
+
"object",
|
|
2486
|
+
"[object]",
|
|
2487
|
+
"[Object]",
|
|
2488
|
+
"[grid]",
|
|
2489
|
+
"[text]",
|
|
2490
|
+
"audio",
|
|
2491
|
+
"file",
|
|
2492
|
+
],
|
|
2493
|
+
field.type
|
|
2494
|
+
)
|
|
2495
|
+
) {
|
|
2496
|
+
delete field.defaultValue;
|
|
2497
|
+
delete field.required;
|
|
2498
|
+
delete field.is_wide;
|
|
2499
|
+
delete field.readonly;
|
|
2500
|
+
delete field.hidden;
|
|
2501
|
+
delete field.omit;
|
|
2502
|
+
var ctx = ${JSON.stringify(ctx)};
|
|
2503
|
+
const amisField = window.getFieldSearchable(field, fields, ctx);
|
|
2504
|
+
return amisField;
|
|
2505
|
+
}
|
|
2506
|
+
})).then(resolveAll, rejectAll);
|
|
2507
|
+
`,
|
|
2508
|
+
headers: {
|
|
2509
|
+
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
2443
2510
|
}
|
|
2444
2511
|
}
|
|
2445
|
-
}
|
|
2446
|
-
_$1.map(body, "name");
|
|
2447
|
-
if(ctx.enableSearchableFieldsVisibleOn){
|
|
2448
|
-
body.forEach(function(fieldItem){
|
|
2449
|
-
fieldItem.visibleOn = `this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${fieldItem.fieldName}") > -1`;
|
|
2450
|
-
// fieldItem.clearValueOnHidden = true;//这个属性会把form字段值删除,但是点击搜索时crud还是把值给传递到过滤条件(api.requestAdaptor的data.$self)中了,应该是crud的bug
|
|
2451
|
-
});
|
|
2452
|
-
}
|
|
2453
|
-
|
|
2454
|
-
// const onBroadcastSearchableFieldsChangeScript = `
|
|
2455
|
-
// const data = event.data;
|
|
2456
|
-
// const listViewId = data.listViewId;
|
|
2457
|
-
// const searchableFields = data.fields;
|
|
2458
|
-
// const preSearchableFields = data.__super.__super.fields;
|
|
2459
|
-
// const removedFields = _.difference(preSearchableFields, searchableFields);
|
|
2460
|
-
// const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
|
|
2461
|
-
// let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
|
|
2462
|
-
// if(localListViewProps){
|
|
2463
|
-
// // 当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。
|
|
2464
|
-
// localListViewProps = JSON.parse(localListViewProps);
|
|
2465
|
-
// let removedKeys = [];
|
|
2466
|
-
// _.each(localListViewProps, function(n,k){
|
|
2467
|
-
// // __searchable__开头的不在searchableFields范围则清除其值
|
|
2468
|
-
// let isRemoved = !!removedFields.find(function(fieldName){
|
|
2469
|
-
// return new RegExp("__searchable__\.*" + fieldName + "$").test(k);
|
|
2470
|
-
// });
|
|
2471
|
-
// if(isRemoved){
|
|
2472
|
-
// removedKeys.push(k);
|
|
2473
|
-
// }
|
|
2474
|
-
// });
|
|
2475
|
-
// const removedValues = {};
|
|
2476
|
-
// removedKeys.forEach(function(key){
|
|
2477
|
-
// delete localListViewProps[key];
|
|
2478
|
-
// removedValues[key] = "";
|
|
2479
|
-
// });
|
|
2480
|
-
// doAction({
|
|
2481
|
-
// actionType: 'setValue',
|
|
2482
|
-
// args: {
|
|
2483
|
-
// value: removedValues
|
|
2484
|
-
// }
|
|
2485
|
-
// });
|
|
2486
|
-
// localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
|
|
2487
|
-
// }
|
|
2488
|
-
// `;
|
|
2512
|
+
};
|
|
2489
2513
|
|
|
2490
|
-
return
|
|
2514
|
+
return formSchema;
|
|
2491
2515
|
}
|
|
2492
2516
|
|
|
2493
|
-
async function getObjectFieldsFilterBarSchema(objectSchema,
|
|
2494
|
-
|
|
2495
|
-
if(!ctx){
|
|
2517
|
+
async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
2518
|
+
if (!ctx) {
|
|
2496
2519
|
ctx = {};
|
|
2497
2520
|
}
|
|
2498
|
-
const filterFormSchema = await getObjectFieldsFilterFormSchema(
|
|
2499
|
-
enableSearchableFieldsVisibleOn: true
|
|
2500
|
-
}, ctx));
|
|
2521
|
+
const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
|
|
2501
2522
|
const onSearchScript = `
|
|
2502
2523
|
const scope = event.context.scoped;
|
|
2503
2524
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
@@ -2530,18 +2551,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, fields, ctx) {
|
|
|
2530
2551
|
searchableFieldsStoreKey += listViewId;
|
|
2531
2552
|
}
|
|
2532
2553
|
let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);
|
|
2533
|
-
if(
|
|
2554
|
+
if(defaultSearchableFields){
|
|
2555
|
+
defaultSearchableFields = defaultSearchableFields.split(",");
|
|
2556
|
+
}
|
|
2557
|
+
if(_.isEmpty(defaultSearchableFields) && data.uiSchema){
|
|
2534
2558
|
let listView = data.uiSchema.list_views[data.listName];
|
|
2535
|
-
|
|
2536
|
-
if(
|
|
2537
|
-
defaultSearchableFields = _.map(
|
|
2559
|
+
const sFields = listView && listView.searchable_fields;
|
|
2560
|
+
if(sFields && sFields.length){
|
|
2561
|
+
defaultSearchableFields = _.map(sFields, 'field');
|
|
2538
2562
|
}
|
|
2539
2563
|
}
|
|
2540
2564
|
if(_.isEmpty(defaultSearchableFields) && data.uiSchema){
|
|
2541
2565
|
defaultSearchableFields = _.map(
|
|
2542
|
-
_.filter(_.values(data.uiSchema.fields), (field) => {
|
|
2566
|
+
_.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {
|
|
2543
2567
|
return field.searchable;
|
|
2544
|
-
}),
|
|
2568
|
+
}), "sort_no"),
|
|
2545
2569
|
"name"
|
|
2546
2570
|
);
|
|
2547
2571
|
}
|
|
@@ -2679,7 +2703,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, fields, ctx) {
|
|
|
2679
2703
|
// "filterFormValues": {"__searchable__name": "xxx"},//搜索项表单值
|
|
2680
2704
|
// "listViewId": "${listViewId}"
|
|
2681
2705
|
},
|
|
2682
|
-
"id": `service_listview_filter_form_${objectSchema.name}`,
|
|
2706
|
+
// "id": `service_listview_filter_form_${objectSchema.name}`,
|
|
2683
2707
|
"dataProvider": {
|
|
2684
2708
|
"inited": dataProviderInited
|
|
2685
2709
|
},
|
|
@@ -2687,15 +2711,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, fields, ctx) {
|
|
|
2687
2711
|
"type": "wrapper",
|
|
2688
2712
|
"body": {
|
|
2689
2713
|
"type": "wrapper",
|
|
2690
|
-
"body": [{
|
|
2691
|
-
"type": "wrapper",
|
|
2692
|
-
"body": [
|
|
2693
|
-
filterFormSchema
|
|
2694
|
-
],
|
|
2695
|
-
"size": "xs",
|
|
2696
|
-
"visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
2697
|
-
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2": "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2"
|
|
2698
|
-
}, {
|
|
2714
|
+
"body": [filterFormSchema, {
|
|
2699
2715
|
"type": "wrapper",
|
|
2700
2716
|
"body": {
|
|
2701
2717
|
"type": "wrapper",
|
|
@@ -3054,16 +3070,7 @@ async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {
|
|
|
3054
3070
|
* @returns amisSchema
|
|
3055
3071
|
*/
|
|
3056
3072
|
async function getObjectListHeaderFieldsFilterBar(objectSchema, listViewName, ctx) {
|
|
3057
|
-
const
|
|
3058
|
-
const fields = _$1.sortBy(
|
|
3059
|
-
_$1.compact(
|
|
3060
|
-
_$1.map(searchableFields, (fieldName) => {
|
|
3061
|
-
return objectSchema.fields[fieldName];
|
|
3062
|
-
})
|
|
3063
|
-
),
|
|
3064
|
-
"sort_no"
|
|
3065
|
-
);
|
|
3066
|
-
const fieldsFilterBarSchema = await getObjectFieldsFilterBarSchema(objectSchema, fields, ctx);
|
|
3073
|
+
const fieldsFilterBarSchema = await getObjectFieldsFilterBarSchema(objectSchema, ctx);
|
|
3067
3074
|
return fieldsFilterBarSchema;
|
|
3068
3075
|
}
|
|
3069
3076
|
|
|
@@ -3842,12 +3849,11 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
3842
3849
|
"objectApiName": "object_listviews",
|
|
3843
3850
|
"recordId": "${recordId}",
|
|
3844
3851
|
"mode": "edit",
|
|
3845
|
-
"initApiAdaptor": "",
|
|
3846
3852
|
"fields": [
|
|
3847
3853
|
"filters"
|
|
3848
3854
|
],
|
|
3849
3855
|
"initApiRequestAdaptor": "",
|
|
3850
|
-
"initApiAdaptor": "const recordId_tmp = api.body.recordId;\nlet data_tmp;\nif (recordId_tmp) {\n data_tmp = payload.data
|
|
3856
|
+
"initApiAdaptor": "const recordId_tmp = api.body.recordId;\nlet data_tmp;\nif (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n\n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n}\nfor (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n}\npayload.data = Object.assign(payload.data, data_tmp);\ndelete payload.extensions;",
|
|
3851
3857
|
"apiRequestAdaptor": "const recordId = api.body.recordId;\nif (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n} else {\n formData.filters = formData._filters_function || null;\n}\n\ndelete formData._filters_type_controller;\ndelete formData._filters_conditions;\ndelete formData._filters_function;\n// 字符串拼接(不支持ES6``语法)\nquery = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\nif (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n};\n__saveData = JSON.stringify(JSON.stringify(formData));\napi.data = { query: query.replace('{__saveData}', __saveData) };\n",
|
|
3852
3858
|
"fieldsExtend": "{\"filters\": {\n \"visible_on\": \"true\",\n \"amis\": {\n \"type\": \"condition-builder\",\n \"label\": \"条件组件\",\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${objectName}\",\n \"dataType\": \"json\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n}",
|
|
3853
3859
|
"onEvent": {
|
|
@@ -3907,7 +3913,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
3907
3913
|
"recordId": "${recordId}",
|
|
3908
3914
|
"mode": "edit",
|
|
3909
3915
|
"fieldsExtend": "{\n \"columns\": {\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n },\n \"mobile_columns\": {\n \"group\": \"手机端\",\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n}",
|
|
3910
|
-
"initApiAdaptor": "const recordId_tmp = api.body.recordId;\nlet columns_tmp = {}, mobile_columns_tmp = {};\nif (recordId_tmp) {\n columns_tmp = payload.data.
|
|
3916
|
+
"initApiAdaptor": "const recordId_tmp = api.body.recordId;\nlet columns_tmp = {}, mobile_columns_tmp = {};\nif (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n}\npayload.data.columns = columns_tmp;\npayload.data.mobile_columns = mobile_columns_tmp;\n\ndelete payload.extensions;\nreturn payload;",
|
|
3911
3917
|
"apiRequestAdaptor": "const formData_tmp = api.body.$;\nconst objectName_tmp = api.body.objectName;\nconst recordId_tmp = api.body.recordId;\n\nif (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns?.split(',');\n}\nif (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');\n}\n\n// 数据格式转换\nformData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n});\nformData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n});\n\n// 字符串拼接(不支持ES6语法)\nlet query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\nif (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n};\ndelete formData_tmp._id;\nlet __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\napi.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n\nreturn api;",
|
|
3912
3918
|
"fields": [
|
|
3913
3919
|
"columns",
|
|
@@ -3989,7 +3995,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
|
|
|
3989
3995
|
}
|
|
3990
3996
|
},
|
|
3991
3997
|
"fieldsExtend": "{\n \"sort\": {\n \"amis\": {\n \"type\": \"tabs-transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/sortFields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n}",
|
|
3992
|
-
"initApiAdaptor": "let sort;\nif (recordId) {\n sort = payload.data.
|
|
3998
|
+
"initApiAdaptor": "let sort;\nif (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n}\npayload.data.sort = sort;\ndelete payload.extensions;",
|
|
3993
3999
|
"apiRequestAdaptor": "const recordId = api.body.recordId;\n//数据格式转换\nif (typeof formData.sort == 'string') {\n formData.sort = formData.sort?.split(',');\n}\nformData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n});\nif (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n}\n__saveData = JSON.stringify(JSON.stringify(formData));\napi.data = { query: query.replace('{__saveData}', __saveData) };\n"
|
|
3994
4000
|
}
|
|
3995
4001
|
],
|
|
@@ -4688,13 +4694,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
4688
4694
|
//TODO: 等待放大镜bug修复,if会去掉,始终显示放大镜
|
|
4689
4695
|
if(referenceTo.objectName != "space_users" || field.reference_to_field != "user"){
|
|
4690
4696
|
if (ctx.filterVisible !== false) {
|
|
4691
|
-
let filterLoopCount = ctx.filterLoopCount || 0;
|
|
4692
|
-
filterLoopCount++;
|
|
4693
|
-
// 可以传入filterVisible为false防止死循环
|
|
4694
4697
|
pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
|
|
4695
4698
|
isLookup: true,
|
|
4696
|
-
...ctx
|
|
4697
|
-
filterLoopCount,
|
|
4699
|
+
...ctx
|
|
4698
4700
|
});
|
|
4699
4701
|
}
|
|
4700
4702
|
}
|
|
@@ -5752,6 +5754,14 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
5752
5754
|
convertData.visibleOn = `${field.visible_on.replace(/formData./g, 'data.')}`;
|
|
5753
5755
|
}
|
|
5754
5756
|
}
|
|
5757
|
+
|
|
5758
|
+
if(___namespace.isString(baseData.required)){
|
|
5759
|
+
if(baseData.required.startsWith("{{")){
|
|
5760
|
+
baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;
|
|
5761
|
+
delete baseData.required;
|
|
5762
|
+
}
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5755
5765
|
if(convertData.type === 'group'){
|
|
5756
5766
|
convertData.body[0] = Object.assign({}, baseData, convertData.body[0], { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});
|
|
5757
5767
|
return convertData
|
|
@@ -5766,8 +5776,9 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
5766
5776
|
}
|
|
5767
5777
|
|
|
5768
5778
|
async function getFieldSearchable(perField, permissionFields, ctx){
|
|
5769
|
-
|
|
5770
|
-
|
|
5779
|
+
if(!ctx){
|
|
5780
|
+
ctx = {};
|
|
5781
|
+
}
|
|
5771
5782
|
let field = perField;
|
|
5772
5783
|
if(field.type === 'grid'){
|
|
5773
5784
|
field = await getGridFieldSubFields(perField, permissionFields);
|
|
@@ -5828,14 +5839,17 @@ async function getFieldSearchable(perField, permissionFields, ctx){
|
|
|
5828
5839
|
_field.multiple = true;
|
|
5829
5840
|
_field.is_wide = false;
|
|
5830
5841
|
_field.defaultValue = undefined;
|
|
5831
|
-
|
|
5832
|
-
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, filterVisible: filterLoopCount < maxFilterLoopCount}));
|
|
5842
|
+
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true}));
|
|
5833
5843
|
if(amisField){
|
|
5834
5844
|
return amisField;
|
|
5835
5845
|
}
|
|
5836
5846
|
}
|
|
5837
5847
|
}
|
|
5838
5848
|
|
|
5849
|
+
if(typeof window != 'undefined'){
|
|
5850
|
+
window.getFieldSearchable = getFieldSearchable;
|
|
5851
|
+
}
|
|
5852
|
+
|
|
5839
5853
|
var index = /*#__PURE__*/Object.freeze({
|
|
5840
5854
|
__proto__: null,
|
|
5841
5855
|
OMIT_FIELDS: OMIT_FIELDS,
|
|
@@ -6096,12 +6110,12 @@ async function getEditFormInitApi(object, recordId, fields, options){
|
|
|
6096
6110
|
if(uiSchema.form){
|
|
6097
6111
|
try{
|
|
6098
6112
|
var objectFormConfig = JSON.parse(uiSchema.form);
|
|
6099
|
-
|
|
6100
|
-
if(
|
|
6101
|
-
|
|
6113
|
+
var formInitialValuesFun = objectFormConfig.initialValues;
|
|
6114
|
+
if(formInitialValuesFun){
|
|
6115
|
+
formInitialValuesFun = new Function("return " + formInitialValuesFun)();
|
|
6102
6116
|
}
|
|
6103
|
-
if(typeof
|
|
6104
|
-
initialValues =
|
|
6117
|
+
if(typeof formInitialValuesFun === "function"){
|
|
6118
|
+
initialValues = formInitialValuesFun.apply({doc: defaultValues || {} , global: api.body.global})
|
|
6105
6119
|
}
|
|
6106
6120
|
}
|
|
6107
6121
|
catch(ex){
|
|
@@ -6118,12 +6132,15 @@ async function getEditFormInitApi(object, recordId, fields, options){
|
|
|
6118
6132
|
}
|
|
6119
6133
|
// data下的变量需要在保存接口(getSaveApi)中被删除。
|
|
6120
6134
|
payload.data = {
|
|
6121
|
-
initialValues
|
|
6122
|
-
editFormInited: true
|
|
6135
|
+
...initialValues
|
|
6123
6136
|
}
|
|
6124
6137
|
${options.initApiAdaptor || ''}
|
|
6125
6138
|
return payload;
|
|
6126
6139
|
`,
|
|
6140
|
+
responseData: {
|
|
6141
|
+
initialValues: "$$",
|
|
6142
|
+
editFormInited: true
|
|
6143
|
+
},
|
|
6127
6144
|
data: data,
|
|
6128
6145
|
headers: {
|
|
6129
6146
|
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -6530,6 +6547,8 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
6530
6547
|
},
|
|
6531
6548
|
labelAlign,
|
|
6532
6549
|
persistData: false,
|
|
6550
|
+
resetAfterSubmit: true,
|
|
6551
|
+
preventEnterSubmit: true,
|
|
6533
6552
|
promptPageLeave: true,
|
|
6534
6553
|
canAccessSuperData: false,
|
|
6535
6554
|
name: `form_edit_${recordId}`,
|
|
@@ -6567,10 +6586,14 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
6567
6586
|
},
|
|
6568
6587
|
"expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
|
|
6569
6588
|
},
|
|
6570
|
-
{
|
|
6571
|
-
|
|
6572
|
-
|
|
6573
|
-
}
|
|
6589
|
+
// {
|
|
6590
|
+
// "actionType": "custom",
|
|
6591
|
+
// "script": "debugger;"
|
|
6592
|
+
// },
|
|
6593
|
+
// {
|
|
6594
|
+
// "args": {},
|
|
6595
|
+
// "actionType": "closeDialog"
|
|
6596
|
+
// }
|
|
6574
6597
|
]
|
|
6575
6598
|
}
|
|
6576
6599
|
}
|
|
@@ -7088,13 +7111,17 @@ async function getTableApi(mainObject, fields, options){
|
|
|
7088
7111
|
}
|
|
7089
7112
|
|
|
7090
7113
|
api.data.$term = "$term";
|
|
7114
|
+
api.data.term = "$term";
|
|
7091
7115
|
api.data.$self = "$$";
|
|
7116
|
+
api.data.self = "$$";
|
|
7092
7117
|
api.data.filter = "$filter";
|
|
7093
7118
|
api.data.loaded = "${loaded}";
|
|
7094
7119
|
api.data.listViewId = "${listViewId}";
|
|
7095
7120
|
api.requestAdaptor = `
|
|
7096
7121
|
// selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.
|
|
7097
7122
|
let selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
7123
|
+
// 保留一份初始data,以供自定义发送适配器中获取原始数据。
|
|
7124
|
+
const data = _.cloneDeep(api.data);
|
|
7098
7125
|
try{
|
|
7099
7126
|
// TODO: 不应该直接在这里取localStorage,应该从外面传入
|
|
7100
7127
|
const listViewId = api.data.listViewId;
|
|
@@ -7278,29 +7305,9 @@ async function getTableApi(mainObject, fields, options){
|
|
|
7278
7305
|
})
|
|
7279
7306
|
|
|
7280
7307
|
if(enable_tree){
|
|
7281
|
-
const records = payload.data.rows;
|
|
7282
|
-
const
|
|
7283
|
-
|
|
7284
|
-
if(!childrenIds){
|
|
7285
|
-
return;
|
|
7286
|
-
}
|
|
7287
|
-
const children = _.filter(records, (record)=>{
|
|
7288
|
-
return _.includes(childrenIds, record._id)
|
|
7289
|
-
});
|
|
7290
|
-
_.each(children, (item)=>{
|
|
7291
|
-
if(item.children){
|
|
7292
|
-
item.children = getChildren(records, item.children)
|
|
7293
|
-
}
|
|
7294
|
-
})
|
|
7295
|
-
return children;
|
|
7296
|
-
}
|
|
7297
|
-
|
|
7298
|
-
_.each(records, (record)=>{
|
|
7299
|
-
if(!record.parent){
|
|
7300
|
-
treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));
|
|
7301
|
-
}
|
|
7302
|
-
});
|
|
7303
|
-
payload.data.rows = treeRecords;
|
|
7308
|
+
const records = payload.data.rows || [];
|
|
7309
|
+
const getTreeOptions = SteedosUI.getTreeOptions
|
|
7310
|
+
payload.data.rows = getTreeOptions(records,{"valueField":"_id"});
|
|
7304
7311
|
}
|
|
7305
7312
|
|
|
7306
7313
|
|
|
@@ -7993,7 +8000,7 @@ const getRecordPermissions = async (objectName, recordId)=>{
|
|
|
7993
8000
|
* @Author: baozhoutao@steedos.com
|
|
7994
8001
|
* @Date: 2022-07-05 15:55:39
|
|
7995
8002
|
* @LastEditors: Please set LastEditors
|
|
7996
|
-
* @LastEditTime: 2023-04-11
|
|
8003
|
+
* @LastEditTime: 2023-04-20 11:43:14
|
|
7997
8004
|
* @Description:
|
|
7998
8005
|
*/
|
|
7999
8006
|
|
|
@@ -8090,10 +8097,12 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
8090
8097
|
mainRelated[arr[0]] = arr[1];
|
|
8091
8098
|
}
|
|
8092
8099
|
}else {
|
|
8093
|
-
const details = mainObjectUiSchema.details || [];
|
|
8100
|
+
const details = _$1.union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];
|
|
8094
8101
|
for (const detail of details) {
|
|
8095
8102
|
const arr = detail.split(".");
|
|
8096
|
-
mainRelated
|
|
8103
|
+
if(!_$1.has(mainRelated,arr[0])){
|
|
8104
|
+
mainRelated[arr[0]] = arr[1];
|
|
8105
|
+
}
|
|
8097
8106
|
}
|
|
8098
8107
|
}
|
|
8099
8108
|
}
|
|
@@ -8298,13 +8307,17 @@ async function getRelatedListSchema(
|
|
|
8298
8307
|
delete ctx.globalFilter;
|
|
8299
8308
|
|
|
8300
8309
|
const adaptor = `
|
|
8301
|
-
|
|
8302
|
-
if(
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8307
|
-
|
|
8310
|
+
try{
|
|
8311
|
+
if(setDataToComponentId){
|
|
8312
|
+
if(payload.data.count){
|
|
8313
|
+
setTimeout(function(){
|
|
8314
|
+
window.$("." + setDataToComponentId + " .antd-Crud").removeClass("hidden");
|
|
8315
|
+
}, 10);
|
|
8316
|
+
}
|
|
8317
|
+
};
|
|
8318
|
+
}catch(e){
|
|
8319
|
+
console.log(e);
|
|
8320
|
+
}
|
|
8308
8321
|
`;
|
|
8309
8322
|
const amisSchema = {
|
|
8310
8323
|
"type": "steedos-object-table",
|
|
@@ -8315,7 +8328,8 @@ async function getRelatedListSchema(
|
|
|
8315
8328
|
"filtersFunction": filtersFunction,
|
|
8316
8329
|
"sort": listViewSort,
|
|
8317
8330
|
"filterVisible": false,
|
|
8318
|
-
|
|
8331
|
+
"requestAdaptor": ctx.requestAdaptor,
|
|
8332
|
+
"adaptor": adaptor + ctx.adaptor || '',
|
|
8319
8333
|
"ctx": ctx
|
|
8320
8334
|
};
|
|
8321
8335
|
// console.log(`getRelatedListSchema amisSchema`, amisSchema);
|