@steedos-widgets/amis-lib 1.2.3 → 1.2.6-beta.10
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 +204 -178
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +205 -179
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +204 -178
- 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
|
],
|
|
@@ -4527,13 +4533,16 @@ setTimeout(()=>{
|
|
|
4527
4533
|
var sort = orderBy + ' ' + orderDir;
|
|
4528
4534
|
sort = orderBy ? sort : "${sort}";
|
|
4529
4535
|
var allowSearchFields = ${JSON.stringify(searchableFields)};
|
|
4536
|
+
let fieldValue;
|
|
4530
4537
|
if(api.data.$term){
|
|
4531
4538
|
filters = [["name", "contains", "'+ api.data.$term +'"]];
|
|
4532
4539
|
}else if(selfData.op === 'loadOptions' && selfData.value){
|
|
4533
4540
|
if(selfData.value?.indexOf(',') > 0){
|
|
4534
|
-
|
|
4541
|
+
fieldValue = selfData.value.split(',');
|
|
4542
|
+
filters = [["${referenceTo.valueField.name}", "=", fieldValue]];
|
|
4535
4543
|
}else{
|
|
4536
|
-
|
|
4544
|
+
fieldValue = selfData.value;
|
|
4545
|
+
filters = [["${referenceTo.valueField.name}", "=", fieldValue]];
|
|
4537
4546
|
}
|
|
4538
4547
|
}
|
|
4539
4548
|
|
|
@@ -4587,6 +4596,9 @@ setTimeout(()=>{
|
|
|
4587
4596
|
if(enable_tree){
|
|
4588
4597
|
pageSize = 10000;
|
|
4589
4598
|
}
|
|
4599
|
+
if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){
|
|
4600
|
+
pageSize = fieldValue.length;
|
|
4601
|
+
}
|
|
4590
4602
|
api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
|
|
4591
4603
|
return api;
|
|
4592
4604
|
`;
|
|
@@ -4687,13 +4699,9 @@ setTimeout(()=>{
|
|
|
4687
4699
|
//TODO: 等待放大镜bug修复,if会去掉,始终显示放大镜
|
|
4688
4700
|
if(referenceTo.objectName != "space_users" || field.reference_to_field != "user"){
|
|
4689
4701
|
if (ctx.filterVisible !== false) {
|
|
4690
|
-
let filterLoopCount = ctx.filterLoopCount || 0;
|
|
4691
|
-
filterLoopCount++;
|
|
4692
|
-
// 可以传入filterVisible为false防止死循环
|
|
4693
4702
|
pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
|
|
4694
4703
|
isLookup: true,
|
|
4695
|
-
...ctx
|
|
4696
|
-
filterLoopCount,
|
|
4704
|
+
...ctx
|
|
4697
4705
|
});
|
|
4698
4706
|
}
|
|
4699
4707
|
}
|
|
@@ -5672,7 +5680,7 @@ setTimeout(()=>{
|
|
|
5672
5680
|
columnsTogglable: false,
|
|
5673
5681
|
strictMode:false,
|
|
5674
5682
|
affixHeader: false, // 是否固定表头, 不固定表头, 否则form有y轴滚动条时, 表头会跟随滚动条滚动.
|
|
5675
|
-
|
|
5683
|
+
needConfirm: false,
|
|
5676
5684
|
editable: !readonly,
|
|
5677
5685
|
addable: !readonly,
|
|
5678
5686
|
removable: !readonly,
|
|
@@ -5751,6 +5759,14 @@ setTimeout(()=>{
|
|
|
5751
5759
|
convertData.visibleOn = `${field.visible_on.replace(/formData./g, 'data.')}`;
|
|
5752
5760
|
}
|
|
5753
5761
|
}
|
|
5762
|
+
|
|
5763
|
+
if(___namespace.isString(baseData.required)){
|
|
5764
|
+
if(baseData.required.startsWith("{{")){
|
|
5765
|
+
baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;
|
|
5766
|
+
delete baseData.required;
|
|
5767
|
+
}
|
|
5768
|
+
}
|
|
5769
|
+
|
|
5754
5770
|
if(convertData.type === 'group'){
|
|
5755
5771
|
convertData.body[0] = Object.assign({}, baseData, convertData.body[0], { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});
|
|
5756
5772
|
return convertData
|
|
@@ -5765,8 +5781,9 @@ setTimeout(()=>{
|
|
|
5765
5781
|
}
|
|
5766
5782
|
|
|
5767
5783
|
async function getFieldSearchable(perField, permissionFields, ctx){
|
|
5768
|
-
|
|
5769
|
-
|
|
5784
|
+
if(!ctx){
|
|
5785
|
+
ctx = {};
|
|
5786
|
+
}
|
|
5770
5787
|
let field = perField;
|
|
5771
5788
|
if(field.type === 'grid'){
|
|
5772
5789
|
field = await getGridFieldSubFields(perField, permissionFields);
|
|
@@ -5827,14 +5844,17 @@ setTimeout(()=>{
|
|
|
5827
5844
|
_field.multiple = true;
|
|
5828
5845
|
_field.is_wide = false;
|
|
5829
5846
|
_field.defaultValue = undefined;
|
|
5830
|
-
|
|
5831
|
-
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, filterVisible: filterLoopCount < maxFilterLoopCount}));
|
|
5847
|
+
const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true}));
|
|
5832
5848
|
if(amisField){
|
|
5833
5849
|
return amisField;
|
|
5834
5850
|
}
|
|
5835
5851
|
}
|
|
5836
5852
|
}
|
|
5837
5853
|
|
|
5854
|
+
if(typeof window != 'undefined'){
|
|
5855
|
+
window.getFieldSearchable = getFieldSearchable;
|
|
5856
|
+
}
|
|
5857
|
+
|
|
5838
5858
|
var index = /*#__PURE__*/Object.freeze({
|
|
5839
5859
|
__proto__: null,
|
|
5840
5860
|
OMIT_FIELDS: OMIT_FIELDS,
|
|
@@ -6014,12 +6034,12 @@ setTimeout(()=>{
|
|
|
6014
6034
|
});
|
|
6015
6035
|
}
|
|
6016
6036
|
}else{
|
|
6017
|
-
data[item] = {
|
|
6037
|
+
data[item] = [{
|
|
6018
6038
|
value: fileFieldValue,
|
|
6019
6039
|
name: fileFieldDisplayValue.name,
|
|
6020
6040
|
url: fileFieldDisplayValue.url + "?download=true",
|
|
6021
6041
|
state: "uploaded"
|
|
6022
|
-
};
|
|
6042
|
+
}];
|
|
6023
6043
|
}
|
|
6024
6044
|
}
|
|
6025
6045
|
})
|
|
@@ -6095,12 +6115,12 @@ setTimeout(()=>{
|
|
|
6095
6115
|
if(uiSchema.form){
|
|
6096
6116
|
try{
|
|
6097
6117
|
var objectFormConfig = JSON.parse(uiSchema.form);
|
|
6098
|
-
|
|
6099
|
-
if(
|
|
6100
|
-
|
|
6118
|
+
var formInitialValuesFun = objectFormConfig.initialValues;
|
|
6119
|
+
if(formInitialValuesFun){
|
|
6120
|
+
formInitialValuesFun = new Function("return " + formInitialValuesFun)();
|
|
6101
6121
|
}
|
|
6102
|
-
if(typeof
|
|
6103
|
-
initialValues =
|
|
6122
|
+
if(typeof formInitialValuesFun === "function"){
|
|
6123
|
+
initialValues = formInitialValuesFun.apply({doc: defaultValues || {} , global: api.body.global})
|
|
6104
6124
|
}
|
|
6105
6125
|
}
|
|
6106
6126
|
catch(ex){
|
|
@@ -6117,12 +6137,15 @@ setTimeout(()=>{
|
|
|
6117
6137
|
}
|
|
6118
6138
|
// data下的变量需要在保存接口(getSaveApi)中被删除。
|
|
6119
6139
|
payload.data = {
|
|
6120
|
-
initialValues
|
|
6121
|
-
editFormInited: true
|
|
6140
|
+
...initialValues
|
|
6122
6141
|
}
|
|
6123
6142
|
${options.initApiAdaptor || ''}
|
|
6124
6143
|
return payload;
|
|
6125
6144
|
`,
|
|
6145
|
+
responseData: {
|
|
6146
|
+
initialValues: "$$",
|
|
6147
|
+
editFormInited: true
|
|
6148
|
+
},
|
|
6126
6149
|
data: data,
|
|
6127
6150
|
headers: {
|
|
6128
6151
|
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -6529,6 +6552,8 @@ setTimeout(()=>{
|
|
|
6529
6552
|
},
|
|
6530
6553
|
labelAlign,
|
|
6531
6554
|
persistData: false,
|
|
6555
|
+
resetAfterSubmit: true,
|
|
6556
|
+
preventEnterSubmit: true,
|
|
6532
6557
|
promptPageLeave: true,
|
|
6533
6558
|
canAccessSuperData: false,
|
|
6534
6559
|
name: `form_edit_${recordId}`,
|
|
@@ -6566,10 +6591,14 @@ setTimeout(()=>{
|
|
|
6566
6591
|
},
|
|
6567
6592
|
"expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
|
|
6568
6593
|
},
|
|
6569
|
-
{
|
|
6570
|
-
|
|
6571
|
-
|
|
6572
|
-
}
|
|
6594
|
+
// {
|
|
6595
|
+
// "actionType": "custom",
|
|
6596
|
+
// "script": "debugger;"
|
|
6597
|
+
// },
|
|
6598
|
+
// {
|
|
6599
|
+
// "args": {},
|
|
6600
|
+
// "actionType": "closeDialog"
|
|
6601
|
+
// }
|
|
6573
6602
|
]
|
|
6574
6603
|
}
|
|
6575
6604
|
}
|
|
@@ -6737,6 +6766,13 @@ setTimeout(()=>{
|
|
|
6737
6766
|
}else if(field.type === 'html'){
|
|
6738
6767
|
type = 'markdown';
|
|
6739
6768
|
}
|
|
6769
|
+
let className = "";
|
|
6770
|
+
if(field.type === 'textarea'){
|
|
6771
|
+
className = 'min-w-56';
|
|
6772
|
+
}
|
|
6773
|
+
if(field.wrap === false){
|
|
6774
|
+
className += " whitespace-nowrap";
|
|
6775
|
+
}
|
|
6740
6776
|
if(!field.hidden && !field.extra){
|
|
6741
6777
|
columns.push(Object.assign({}, {
|
|
6742
6778
|
name: field.name,
|
|
@@ -6747,7 +6783,7 @@ setTimeout(()=>{
|
|
|
6747
6783
|
type: type,
|
|
6748
6784
|
tpl: tpl,
|
|
6749
6785
|
toggled: field.toggled,
|
|
6750
|
-
className
|
|
6786
|
+
className,
|
|
6751
6787
|
html: field.type === 'html' ? true : null
|
|
6752
6788
|
// toggled: true
|
|
6753
6789
|
}, field.amis, {name: field.name}));
|
|
@@ -7087,13 +7123,17 @@ setTimeout(()=>{
|
|
|
7087
7123
|
}
|
|
7088
7124
|
|
|
7089
7125
|
api.data.$term = "$term";
|
|
7126
|
+
api.data.term = "$term";
|
|
7090
7127
|
api.data.$self = "$$";
|
|
7128
|
+
api.data.self = "$$";
|
|
7091
7129
|
api.data.filter = "$filter";
|
|
7092
7130
|
api.data.loaded = "${loaded}";
|
|
7093
7131
|
api.data.listViewId = "${listViewId}";
|
|
7094
7132
|
api.requestAdaptor = `
|
|
7095
7133
|
// selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.
|
|
7096
7134
|
let selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
7135
|
+
// 保留一份初始data,以供自定义发送适配器中获取原始数据。
|
|
7136
|
+
const data = _.cloneDeep(api.data);
|
|
7097
7137
|
try{
|
|
7098
7138
|
// TODO: 不应该直接在这里取localStorage,应该从外面传入
|
|
7099
7139
|
const listViewId = api.data.listViewId;
|
|
@@ -7239,7 +7279,6 @@ setTimeout(()=>{
|
|
|
7239
7279
|
if(_.isEmpty(filters)){
|
|
7240
7280
|
filters = userFilters;
|
|
7241
7281
|
}else{
|
|
7242
|
-
filters.push('and');
|
|
7243
7282
|
filters.push(userFilters)
|
|
7244
7283
|
}
|
|
7245
7284
|
}
|
|
@@ -7277,29 +7316,9 @@ setTimeout(()=>{
|
|
|
7277
7316
|
})
|
|
7278
7317
|
|
|
7279
7318
|
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;
|
|
7319
|
+
const records = payload.data.rows || [];
|
|
7320
|
+
const getTreeOptions = SteedosUI.getTreeOptions
|
|
7321
|
+
payload.data.rows = getTreeOptions(records,{"valueField":"_id"});
|
|
7303
7322
|
}
|
|
7304
7323
|
|
|
7305
7324
|
|
|
@@ -7687,7 +7706,6 @@ setTimeout(()=>{
|
|
|
7687
7706
|
// ObjectForm会认作用域下的变量值
|
|
7688
7707
|
// TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值
|
|
7689
7708
|
// TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件
|
|
7690
|
-
event.data = doc;
|
|
7691
7709
|
const title = "新建 ${objectSchema.label}";
|
|
7692
7710
|
doAction(
|
|
7693
7711
|
{
|
|
@@ -7700,6 +7718,7 @@ setTimeout(()=>{
|
|
|
7700
7718
|
"type": "steedos-object-form",
|
|
7701
7719
|
"objectApiName": "\${objectName}",
|
|
7702
7720
|
"mode": "edit",
|
|
7721
|
+
"defaultData": doc,
|
|
7703
7722
|
"onEvent": {
|
|
7704
7723
|
"submitSucc": {
|
|
7705
7724
|
"weight": 0,
|
|
@@ -7992,7 +8011,7 @@ setTimeout(()=>{
|
|
|
7992
8011
|
* @Author: baozhoutao@steedos.com
|
|
7993
8012
|
* @Date: 2022-07-05 15:55:39
|
|
7994
8013
|
* @LastEditors: Please set LastEditors
|
|
7995
|
-
* @LastEditTime: 2023-04-11
|
|
8014
|
+
* @LastEditTime: 2023-04-20 11:43:14
|
|
7996
8015
|
* @Description:
|
|
7997
8016
|
*/
|
|
7998
8017
|
|
|
@@ -8089,10 +8108,12 @@ setTimeout(()=>{
|
|
|
8089
8108
|
mainRelated[arr[0]] = arr[1];
|
|
8090
8109
|
}
|
|
8091
8110
|
}else {
|
|
8092
|
-
const details = mainObjectUiSchema.details || [];
|
|
8111
|
+
const details = _$1.union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];
|
|
8093
8112
|
for (const detail of details) {
|
|
8094
8113
|
const arr = detail.split(".");
|
|
8095
|
-
mainRelated
|
|
8114
|
+
if(!_$1.has(mainRelated,arr[0])){
|
|
8115
|
+
mainRelated[arr[0]] = arr[1];
|
|
8116
|
+
}
|
|
8096
8117
|
}
|
|
8097
8118
|
}
|
|
8098
8119
|
}
|
|
@@ -8297,13 +8318,17 @@ setTimeout(()=>{
|
|
|
8297
8318
|
delete ctx.globalFilter;
|
|
8298
8319
|
|
|
8299
8320
|
const adaptor = `
|
|
8300
|
-
|
|
8301
|
-
if(
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8321
|
+
try{
|
|
8322
|
+
if(setDataToComponentId){
|
|
8323
|
+
if(payload.data.count){
|
|
8324
|
+
setTimeout(function(){
|
|
8325
|
+
window.$("." + setDataToComponentId + " .antd-Crud").removeClass("hidden");
|
|
8326
|
+
}, 10);
|
|
8327
|
+
}
|
|
8328
|
+
};
|
|
8329
|
+
}catch(e){
|
|
8330
|
+
console.log(e);
|
|
8331
|
+
}
|
|
8307
8332
|
`;
|
|
8308
8333
|
const amisSchema = {
|
|
8309
8334
|
"type": "steedos-object-table",
|
|
@@ -8314,7 +8339,8 @@ setTimeout(()=>{
|
|
|
8314
8339
|
"filtersFunction": filtersFunction,
|
|
8315
8340
|
"sort": listViewSort,
|
|
8316
8341
|
"filterVisible": false,
|
|
8317
|
-
|
|
8342
|
+
"requestAdaptor": ctx.requestAdaptor,
|
|
8343
|
+
"adaptor": adaptor + ctx.adaptor || '',
|
|
8318
8344
|
"ctx": ctx
|
|
8319
8345
|
};
|
|
8320
8346
|
// console.log(`getRelatedListSchema amisSchema`, amisSchema);
|