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