@steedos-widgets/amis-lib 3.6.2-beta.2 → 3.6.2-beta.3
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 +141 -44
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +141 -44
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +51 -12
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/api.d.ts +1 -0
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -3426,6 +3426,18 @@ function getBatchDelete(objectName){
|
|
|
3426
3426
|
return {
|
|
3427
3427
|
method: 'post',
|
|
3428
3428
|
url: getApi$2(),
|
|
3429
|
+
adaptor: `
|
|
3430
|
+
if(payload.errors){
|
|
3431
|
+
payload.data.deleteErrorMessage = [];
|
|
3432
|
+
payload.errors.forEach(function(error){
|
|
3433
|
+
let errorRecord = error.path.map(function (item) {
|
|
3434
|
+
return item.split('delete__')[1].to_float() + 1;
|
|
3435
|
+
}).toString();
|
|
3436
|
+
payload.data.deleteErrorMessage.push("第" + errorRecord + "条记录删除出现异常,报错信息为(" + (window.t ? window.t(error.message) : error.message) + ")");
|
|
3437
|
+
})
|
|
3438
|
+
}
|
|
3439
|
+
return payload;
|
|
3440
|
+
`,
|
|
3429
3441
|
requestAdaptor: `
|
|
3430
3442
|
var ids = api.data.ids.split(",");
|
|
3431
3443
|
var deleteArray = [];
|
|
@@ -8144,7 +8156,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
|
|
|
8144
8156
|
else {
|
|
8145
8157
|
if(options && options.isRelated){
|
|
8146
8158
|
return [
|
|
8147
|
-
"statistics",
|
|
8148
8159
|
{
|
|
8149
8160
|
"type": "pagination",
|
|
8150
8161
|
"maxButtons": 10,
|
|
@@ -8157,7 +8168,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
|
|
|
8157
8168
|
const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);
|
|
8158
8169
|
const is_lookup = options.isLookup;
|
|
8159
8170
|
const commonConfig = [
|
|
8160
|
-
"statistics",
|
|
8161
8171
|
{
|
|
8162
8172
|
"type": "pagination",
|
|
8163
8173
|
"maxButtons": 10,
|
|
@@ -8276,6 +8286,29 @@ function getBulkActions(objectSchema){
|
|
|
8276
8286
|
"className": "hidden",
|
|
8277
8287
|
"id": "batchDelete",
|
|
8278
8288
|
"api": getBatchDelete(objectSchema.name),
|
|
8289
|
+
"feedback": {
|
|
8290
|
+
"title": "删除警告",
|
|
8291
|
+
"visibleOn": "${deleteErrorMessage}",
|
|
8292
|
+
"body": [
|
|
8293
|
+
{
|
|
8294
|
+
"type": "each",
|
|
8295
|
+
"name": "deleteErrorMessage",
|
|
8296
|
+
"items": {
|
|
8297
|
+
"type": "alert",
|
|
8298
|
+
"body": "${item}",
|
|
8299
|
+
"level": "danger",
|
|
8300
|
+
"className": "mb-3"
|
|
8301
|
+
}
|
|
8302
|
+
}
|
|
8303
|
+
],
|
|
8304
|
+
"actions": [
|
|
8305
|
+
{
|
|
8306
|
+
"type": "button",
|
|
8307
|
+
"actionType": "close",
|
|
8308
|
+
"label": "关闭"
|
|
8309
|
+
}
|
|
8310
|
+
]
|
|
8311
|
+
}
|
|
8279
8312
|
}
|
|
8280
8313
|
// {
|
|
8281
8314
|
// "label": "批量修改",
|
|
@@ -12728,8 +12761,8 @@ async function getFormBody(permissionFields, formFields, ctx){
|
|
|
12728
12761
|
/*
|
|
12729
12762
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
12730
12763
|
* @Date: 2023-11-15 09:50:22
|
|
12731
|
-
* @LastEditors:
|
|
12732
|
-
* @LastEditTime: 2024-01-
|
|
12764
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
12765
|
+
* @LastEditTime: 2024-01-12 14:51:00
|
|
12733
12766
|
*/
|
|
12734
12767
|
|
|
12735
12768
|
/**
|
|
@@ -12878,7 +12911,12 @@ function getFormPagination(props, mode) {
|
|
|
12878
12911
|
let currentIndex = event.data.index;
|
|
12879
12912
|
// 翻页到下一页之前需要先把当前页改动的内容保存到中间变量__tableItems中
|
|
12880
12913
|
let currentFormValues = scope.getComponentById(__formId).getValues();
|
|
12881
|
-
|
|
12914
|
+
if(event.data.parent){
|
|
12915
|
+
fieldValue[event.data.__parentIndex].children[currentIndex] = currentFormValues;
|
|
12916
|
+
}
|
|
12917
|
+
else{
|
|
12918
|
+
fieldValue[currentIndex] = currentFormValues;
|
|
12919
|
+
}
|
|
12882
12920
|
// 翻页到下一页前需要同时把改动的内容保存到最终正式的表单字段中,所以额外给正式表单字段执行一次setValue
|
|
12883
12921
|
doAction({
|
|
12884
12922
|
"componentId": "${props.id}",
|
|
@@ -12945,7 +12983,8 @@ function getFormPagination(props, mode) {
|
|
|
12945
12983
|
},
|
|
12946
12984
|
{
|
|
12947
12985
|
"type": "tpl",
|
|
12948
|
-
|
|
12986
|
+
// 这里用__super.parent,加__super是为了防止当前记录有字段名为parent的重名变量
|
|
12987
|
+
"tpl": "${__page}/${__super.parent ? __tableItems[__parentIndex]['children'].length : __tableItems.length}"
|
|
12949
12988
|
},
|
|
12950
12989
|
{
|
|
12951
12990
|
"type": "button",
|
|
@@ -12953,7 +12992,9 @@ function getFormPagination(props, mode) {
|
|
|
12953
12992
|
"icon": `fa fa-angle-right`,
|
|
12954
12993
|
"level": "link",
|
|
12955
12994
|
"pageChangeDirection": "next",
|
|
12956
|
-
"disabledOn": showPagination ? "${__page >= __tableItems.length}" : "true",
|
|
12995
|
+
// "disabledOn": showPagination ? "${__page >= __tableItems.length}" : "true",
|
|
12996
|
+
// 这里用__super.parent,加__super是为了防止当前记录有字段名为parent的重名变量
|
|
12997
|
+
"disabledOn": showPagination ? "${__page >= (__super.parent ? __tableItems[__parentIndex]['children'].length : __tableItems.length)}" : "true",
|
|
12957
12998
|
"size": "sm",
|
|
12958
12999
|
"id": buttonNextId,
|
|
12959
13000
|
"onEvent": {
|
|
@@ -12986,7 +13027,7 @@ function getFormPaginationWrapper(props, form, mode) {
|
|
|
12986
13027
|
"data": {
|
|
12987
13028
|
// 这里加__super前缀是因为__parentForm变量(即主表单)中可能会正好有名为index的字段
|
|
12988
13029
|
// 比如“对象字段”对象options字段是一个子表字段,但是主表(即“对象字段”对象)中正好有一个名为index的字段
|
|
12989
|
-
"&": "${__tableItems[__super.index]}"
|
|
13030
|
+
"&": "${__super.parent ? __tableItems[__parentIndex]['children'][__super.index] : __tableItems[__super.index]}"
|
|
12990
13031
|
}
|
|
12991
13032
|
});
|
|
12992
13033
|
let formBody = [
|
|
@@ -13009,6 +13050,10 @@ function getFormPaginationWrapper(props, form, mode) {
|
|
|
13009
13050
|
}
|
|
13010
13051
|
];
|
|
13011
13052
|
let onServiceInitedScript = `
|
|
13053
|
+
if(event.data.parent){
|
|
13054
|
+
// 如果是子行,即在节点嵌套情况下,当前节点如果是children属性下的子节点时,则算出其所属父行的索引值
|
|
13055
|
+
event.data.__parentIndex = _.findIndex(event.data.__tableItems, {_id: event.data.parent._id});
|
|
13056
|
+
}
|
|
13012
13057
|
// 以下脚本是为了解决有时弹出编辑表单时,表单中的值比最后一次编辑保存的值会延迟一拍。
|
|
13013
13058
|
// 比如:inlineEditMode模式时,用户在表格单元格中直接修改数据,然后弹出的表单form中并没有包含单元格中修改的内容
|
|
13014
13059
|
// 另外有的地方在非inlineEditMode模式时也会有这种延迟一拍问题,比如对象字段中下拉框类型字段的”选择项“属性
|
|
@@ -13064,6 +13109,7 @@ function getFormPaginationWrapper(props, form, mode) {
|
|
|
13064
13109
|
// "body": formBody,
|
|
13065
13110
|
"data": {
|
|
13066
13111
|
"__page": "${index + 1}",
|
|
13112
|
+
"__parentIndex": null,//兼容节点嵌套情况,即节点中有children属性时,这里记录当前节点所属上层节点index,只支持向上找一层,不支持多层
|
|
13067
13113
|
// "__total": `\${${props.name}.length}`,
|
|
13068
13114
|
// "__total": "${__tableItems.length}",
|
|
13069
13115
|
// "__paginationServiceId": serviceId,
|
|
@@ -13111,7 +13157,17 @@ async function getForm(props, mode = "edit", formId) {
|
|
|
13111
13157
|
let fieldValue = event.data.__tableItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.__tableItems,直接变更其值即可改变表单中的值
|
|
13112
13158
|
//这里加__super.__super前缀是因为__parentForm变量(即主表单)中可能会正好有名为index的字段
|
|
13113
13159
|
// 比如“对象字段”对象options字段是一个子表字段,但是主表(即“对象字段”对象)中正好有一个名为index的字段
|
|
13114
|
-
fieldValue[event.data.__super.__super.index] = JSON.parse(JSON.stringify(event.data));
|
|
13160
|
+
// fieldValue[event.data.__super.__super.index] = JSON.parse(JSON.stringify(event.data));
|
|
13161
|
+
var currentIndex = event.data.__super.__super.index;
|
|
13162
|
+
var currentFormValues = JSON.parse(JSON.stringify(event.data));
|
|
13163
|
+
var parent = event.data.__super.__super.parent;
|
|
13164
|
+
var __parentIndex = event.data.__super.__super.__parentIndex;
|
|
13165
|
+
if(parent){
|
|
13166
|
+
fieldValue[__parentIndex].children[currentIndex] = currentFormValues;
|
|
13167
|
+
}
|
|
13168
|
+
else{
|
|
13169
|
+
fieldValue[currentIndex] = currentFormValues;
|
|
13170
|
+
}
|
|
13115
13171
|
doAction({
|
|
13116
13172
|
"componentId": "${props.id}",
|
|
13117
13173
|
"actionType": "setValue",
|
|
@@ -13251,7 +13307,14 @@ async function getButtonActions(props, mode) {
|
|
|
13251
13307
|
let scope = event.context.scoped;
|
|
13252
13308
|
let fieldValue = event.data.__tableItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.__tableItems,直接变更其值即可改变表单中的值
|
|
13253
13309
|
// 新建一条空白行并保存到子表组件
|
|
13254
|
-
|
|
13310
|
+
var parent = event.data.__super.parent;
|
|
13311
|
+
var __parentIndex = parent && _.findIndex(fieldValue, {_id: parent._id});
|
|
13312
|
+
if(parent){
|
|
13313
|
+
fieldValue[__parentIndex].children.push({});
|
|
13314
|
+
}
|
|
13315
|
+
else{
|
|
13316
|
+
fieldValue.push({});
|
|
13317
|
+
}
|
|
13255
13318
|
doAction({
|
|
13256
13319
|
"componentId": "${props.id}",
|
|
13257
13320
|
"actionType": "setValue",
|
|
@@ -13263,7 +13326,13 @@ async function getButtonActions(props, mode) {
|
|
|
13263
13326
|
let __paginationServiceId = "${formPaginationId}";
|
|
13264
13327
|
let __paginationData = scope.getComponentById(__paginationServiceId).getData();
|
|
13265
13328
|
event.data.index = __paginationData.index;
|
|
13266
|
-
|
|
13329
|
+
if(parent){
|
|
13330
|
+
event.data.__page = fieldValue[__parentIndex].children.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13331
|
+
event.data.__parentIndex = __parentIndex; //执行下面的翻页按钮事件中依赖了__parentIndex值
|
|
13332
|
+
}
|
|
13333
|
+
else{
|
|
13334
|
+
event.data.__page = fieldValue.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13335
|
+
}
|
|
13267
13336
|
// 触发翻页按钮事件,实现保存当前页数据并跳转到最后一行
|
|
13268
13337
|
scope.getComponentById(buttonNextId).props.dispatchEvent("click", event.data);
|
|
13269
13338
|
`;
|
|
@@ -13274,7 +13343,15 @@ async function getButtonActions(props, mode) {
|
|
|
13274
13343
|
let newItem = scope.getComponentById(__formId).getValues();//这里不可以用event.data,因为其拿到的是弹出表单时的初始值,不是用户实时填写的数据
|
|
13275
13344
|
let fieldValue = event.data.__tableItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.__tableItems,直接变更其值即可改变表单中的值
|
|
13276
13345
|
// 复制当前页数据到新建行并保存到子表组件
|
|
13277
|
-
fieldValue.push(newItem);
|
|
13346
|
+
// fieldValue.push(newItem);
|
|
13347
|
+
var parent = event.data.__super.parent;
|
|
13348
|
+
var __parentIndex = parent && _.findIndex(fieldValue, {_id: parent._id});
|
|
13349
|
+
if(parent){
|
|
13350
|
+
fieldValue[__parentIndex].children.push(newItem);
|
|
13351
|
+
}
|
|
13352
|
+
else{
|
|
13353
|
+
fieldValue.push(newItem);
|
|
13354
|
+
}
|
|
13278
13355
|
doAction({
|
|
13279
13356
|
"componentId": "${props.id}",
|
|
13280
13357
|
"actionType": "setValue",
|
|
@@ -13286,7 +13363,14 @@ async function getButtonActions(props, mode) {
|
|
|
13286
13363
|
let __paginationServiceId = "${formPaginationId}";
|
|
13287
13364
|
let __paginationData = scope.getComponentById(__paginationServiceId).getData();
|
|
13288
13365
|
event.data.index = __paginationData.index;
|
|
13289
|
-
event.data.__page = fieldValue.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13366
|
+
// event.data.__page = fieldValue.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13367
|
+
if(parent){
|
|
13368
|
+
event.data.__page = fieldValue[__parentIndex].children.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13369
|
+
event.data.__parentIndex = __parentIndex; //执行下面的翻页按钮事件中依赖了__parentIndex值
|
|
13370
|
+
}
|
|
13371
|
+
else{
|
|
13372
|
+
event.data.__page = fieldValue.length - 1;//这里不可以用Object.assign否则,event.data中上层作用域数据会丢失
|
|
13373
|
+
}
|
|
13290
13374
|
// 触发翻页按钮事件,实现保存当前页数据并跳转到最后一行
|
|
13291
13375
|
scope.getComponentById(buttonNextId).props.dispatchEvent("click", event.data);
|
|
13292
13376
|
`;
|
|
@@ -13362,7 +13446,8 @@ async function getButtonActions(props, mode) {
|
|
|
13362
13446
|
"_master": "${_master}",
|
|
13363
13447
|
"global": "${global}",
|
|
13364
13448
|
"uiSchema": "${uiSchema}",
|
|
13365
|
-
"index": "${index}"
|
|
13449
|
+
"index": "${index}",//amis组件自带行索引,在节点嵌套情况下,当前节点如果是children属性下的子节点时,这里的index是当前节点在children中的索引,而不是外层父节点的index
|
|
13450
|
+
"parent": "${parent}",//amis组件自带父节点数据域数据,即节点嵌套情况下,当前节点为某个节点(比如A节点)的children属性下的子节点时,当前节点的父节点(即A节点)的数据域数据
|
|
13366
13451
|
// "__tableItems": `\${${props.name}}`
|
|
13367
13452
|
// 为了解决"弹出的dialog窗口中子表组件会影响页面布局界面中父作用域字段值",比如设计字段布局微页面中的设置分组功能,弹出的就是子表dialog
|
|
13368
13453
|
// 所以这里使用json|toJson转一次,断掉event.data.__tableItems与上层任用域中props.name的联系
|
|
@@ -13390,35 +13475,39 @@ async function getButtonActions(props, mode) {
|
|
|
13390
13475
|
Object.assign(actionShowEditDialog.dialog, props.dialog);
|
|
13391
13476
|
}
|
|
13392
13477
|
if (mode == "new") {
|
|
13393
|
-
`
|
|
13394
|
-
|
|
13395
|
-
|
|
13396
|
-
|
|
13397
|
-
|
|
13398
|
-
|
|
13399
|
-
|
|
13400
|
-
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
13404
|
-
|
|
13405
|
-
|
|
13406
|
-
|
|
13407
|
-
|
|
13408
|
-
|
|
13409
|
-
|
|
13410
|
-
|
|
13411
|
-
|
|
13412
|
-
|
|
13413
|
-
|
|
13414
|
-
|
|
13415
|
-
|
|
13416
|
-
|
|
13417
|
-
|
|
13418
|
-
|
|
13419
|
-
|
|
13420
|
-
|
|
13421
|
-
`;
|
|
13478
|
+
// let onNewLineScript = `
|
|
13479
|
+
// let newItem = {};
|
|
13480
|
+
// if(event.data["${props.name}"]){
|
|
13481
|
+
// // let fieldValue = event.data.__tableItems;
|
|
13482
|
+
// // 这里不用__tableItems是因为新建的时候没有翻页,里面没有也不需要走__tableItems变量
|
|
13483
|
+
// // let fieldValue = _.clone(event.data["${props.name}"]);
|
|
13484
|
+
// let fieldValue = event.data["${props.name}"];
|
|
13485
|
+
// fieldValue.push(newItem);
|
|
13486
|
+
// doAction({
|
|
13487
|
+
// "componentId": "${props.id}",
|
|
13488
|
+
// "actionType": "setValue",
|
|
13489
|
+
// "args": {
|
|
13490
|
+
// "value": fieldValue
|
|
13491
|
+
// }
|
|
13492
|
+
// });
|
|
13493
|
+
// event.data.index = fieldValue.length - 1;
|
|
13494
|
+
// }
|
|
13495
|
+
// else{
|
|
13496
|
+
// // 这里不可以执行event.data["${props.name}"]=[newItem],数据域会断掉
|
|
13497
|
+
// doAction({
|
|
13498
|
+
// "componentId": "${props.id}",
|
|
13499
|
+
// "actionType": "setValue",
|
|
13500
|
+
// "args": {
|
|
13501
|
+
// "value": [newItem]
|
|
13502
|
+
// }
|
|
13503
|
+
// });
|
|
13504
|
+
// event.data.index = 1;
|
|
13505
|
+
// }
|
|
13506
|
+
// `;
|
|
13507
|
+
// let actionNewLine = {
|
|
13508
|
+
// "actionType": "custom",
|
|
13509
|
+
// "script": onNewLineScript
|
|
13510
|
+
// };
|
|
13422
13511
|
// 新增行时不需要在弹出编辑表单前先加一行,因为会在编辑表单所在service初始化时判断到是新增就自动增加一行,因为这里拿不到event.data.__tableItems,也无法变更其值
|
|
13423
13512
|
// actions = [actionNewLine, actionShowEditDialog];
|
|
13424
13513
|
actions = [actionShowEditDialog];
|
|
@@ -13477,7 +13566,15 @@ async function getButtonActions(props, mode) {
|
|
|
13477
13566
|
// 这里不可以用event.data["${props.name}"]因为amis input talbe有一层单独的作用域,其值会延迟一拍
|
|
13478
13567
|
// 这里_.clone是因为字段设计布局设置分组这种弹出窗口中的子表组件,直接删除后,点取消无法还原
|
|
13479
13568
|
let lastestFieldValue = _.clone(wrapperServiceData["${props.name}"]);
|
|
13480
|
-
|
|
13569
|
+
var currentIndex = event.data.index;
|
|
13570
|
+
var parent = event.data.__super.parent;
|
|
13571
|
+
var __parentIndex = parent && _.findIndex(lastestFieldValue, {_id: parent._id});
|
|
13572
|
+
if(parent){
|
|
13573
|
+
lastestFieldValue[__parentIndex].children.splice(currentIndex, 1);
|
|
13574
|
+
}
|
|
13575
|
+
else{
|
|
13576
|
+
lastestFieldValue.splice(currentIndex, 1);
|
|
13577
|
+
}
|
|
13481
13578
|
doAction({
|
|
13482
13579
|
"componentId": "${props.id}",
|
|
13483
13580
|
"actionType": "setValue",
|