@steedos-widgets/amis-lib 1.3.20 → 1.3.21
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 +162 -74
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +162 -74
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +53 -39
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/input_table.d.ts +10 -2
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -1065,7 +1065,7 @@ var config = {
|
|
|
1065
1065
|
* @Author: baozhoutao@steedos.com
|
|
1066
1066
|
* @Date: 2022-10-28 14:52:55
|
|
1067
1067
|
* @LastEditors: liaodaxue
|
|
1068
|
-
* @LastEditTime: 2023-
|
|
1068
|
+
* @LastEditTime: 2023-12-14 12:01:22
|
|
1069
1069
|
* @Description:
|
|
1070
1070
|
*/
|
|
1071
1071
|
|
|
@@ -1082,6 +1082,7 @@ const AmisFormInputs = [
|
|
|
1082
1082
|
'percent',
|
|
1083
1083
|
'password',
|
|
1084
1084
|
'url',
|
|
1085
|
+
"color",
|
|
1085
1086
|
'email'
|
|
1086
1087
|
];
|
|
1087
1088
|
|
|
@@ -1094,7 +1095,7 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
1094
1095
|
}
|
|
1095
1096
|
return type;
|
|
1096
1097
|
}
|
|
1097
|
-
if(___namespace.includes(['text','image'], type)){
|
|
1098
|
+
if(___namespace.includes(['text','image','color'], type)){
|
|
1098
1099
|
if('text' === type && options && options.amis && options.amis.tpl){
|
|
1099
1100
|
return 'static';
|
|
1100
1101
|
}
|
|
@@ -1228,6 +1229,7 @@ var frontend_form_please_select$1 = "Please select";
|
|
|
1228
1229
|
var frontend_form_confirm$1 = "Confirm";
|
|
1229
1230
|
var frontend_form_delete$1 = "Delete";
|
|
1230
1231
|
var frontend_form_view$1 = "view";
|
|
1232
|
+
var frontend_form_details$1 = "details";
|
|
1231
1233
|
var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
|
|
1232
1234
|
var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
|
|
1233
1235
|
var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
|
|
@@ -1314,6 +1316,7 @@ var en_us = {
|
|
|
1314
1316
|
frontend_form_confirm: frontend_form_confirm$1,
|
|
1315
1317
|
frontend_form_delete: frontend_form_delete$1,
|
|
1316
1318
|
frontend_form_view: frontend_form_view$1,
|
|
1319
|
+
frontend_form_details: frontend_form_details$1,
|
|
1317
1320
|
frontend_delete_confirm_text: frontend_delete_confirm_text$1,
|
|
1318
1321
|
frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
|
|
1319
1322
|
frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
|
|
@@ -1401,6 +1404,7 @@ var frontend_form_please_select = "请选择";
|
|
|
1401
1404
|
var frontend_form_confirm = "确认";
|
|
1402
1405
|
var frontend_form_delete = "删除";
|
|
1403
1406
|
var frontend_form_view = "查看";
|
|
1407
|
+
var frontend_form_details = "详情";
|
|
1404
1408
|
var frontend_delete_confirm_text = "确定要删除此项目?";
|
|
1405
1409
|
var frontend_delete_many_selected_required = "请选择要删除的项";
|
|
1406
1410
|
var frontend_delete_many_confirm_text = "确定要删除吗?";
|
|
@@ -1488,6 +1492,7 @@ var zh_cn = {
|
|
|
1488
1492
|
frontend_form_confirm: frontend_form_confirm,
|
|
1489
1493
|
frontend_form_delete: frontend_form_delete,
|
|
1490
1494
|
frontend_form_view: frontend_form_view,
|
|
1495
|
+
frontend_form_details: frontend_form_details,
|
|
1491
1496
|
frontend_delete_confirm_text: frontend_delete_confirm_text,
|
|
1492
1497
|
frontend_delete_many_selected_required: frontend_delete_many_selected_required,
|
|
1493
1498
|
frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
|
|
@@ -2162,6 +2167,11 @@ async function getTableColumns(fields, options){
|
|
|
2162
2167
|
options: field.type === 'html' ? {html: true} : null
|
|
2163
2168
|
// toggled: true
|
|
2164
2169
|
}, field.amis, {name: field.name});
|
|
2170
|
+
|
|
2171
|
+
if(field.type === 'color'){
|
|
2172
|
+
columnItem.type = 'color';
|
|
2173
|
+
columnItem.defaultColor = null;
|
|
2174
|
+
}
|
|
2165
2175
|
}
|
|
2166
2176
|
}
|
|
2167
2177
|
if(columnItem){
|
|
@@ -4849,8 +4859,8 @@ const getSchema$2 = (uiSchema) => {
|
|
|
4849
4859
|
/*
|
|
4850
4860
|
* @Author: baozhoutao@steedos.com
|
|
4851
4861
|
* @Date: 2022-11-07 17:00:38
|
|
4852
|
-
* @LastEditors:
|
|
4853
|
-
* @LastEditTime: 2023-
|
|
4862
|
+
* @LastEditors: liaodaxue
|
|
4863
|
+
* @LastEditTime: 2023-12-13 10:09:05
|
|
4854
4864
|
* @Description:
|
|
4855
4865
|
*/
|
|
4856
4866
|
|
|
@@ -4861,7 +4871,7 @@ const getSchema$1 = (uiSchema)=>{
|
|
|
4861
4871
|
"body": [
|
|
4862
4872
|
{
|
|
4863
4873
|
"type": "button",
|
|
4864
|
-
"label": i18next__default["default"].t('
|
|
4874
|
+
"label": i18next__default["default"].t('frontend_form_details'),
|
|
4865
4875
|
"className": "border-none",
|
|
4866
4876
|
"onEvent": {
|
|
4867
4877
|
"click": {
|
|
@@ -11542,6 +11552,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
11542
11552
|
}
|
|
11543
11553
|
}
|
|
11544
11554
|
|
|
11555
|
+
break;
|
|
11556
|
+
case 'color':
|
|
11557
|
+
convertData = {
|
|
11558
|
+
type: getAmisStaticFieldType('color', readonly),
|
|
11559
|
+
name: field.name,
|
|
11560
|
+
label: field.label
|
|
11561
|
+
};
|
|
11562
|
+
if(readonly){
|
|
11563
|
+
convertData.defaultColor = null;
|
|
11564
|
+
}
|
|
11545
11565
|
break;
|
|
11546
11566
|
case 'boolean':
|
|
11547
11567
|
convertData = {
|
|
@@ -12396,7 +12416,7 @@ async function getFormBody(permissionFields, formFields, ctx){
|
|
|
12396
12416
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
12397
12417
|
* @Date: 2023-11-15 09:50:22
|
|
12398
12418
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
12399
|
-
* @LastEditTime: 2023-12-
|
|
12419
|
+
* @LastEditTime: 2023-12-16 16:39:49
|
|
12400
12420
|
*/
|
|
12401
12421
|
|
|
12402
12422
|
/**
|
|
@@ -12492,24 +12512,24 @@ async function getInputTableColumns(props) {
|
|
|
12492
12512
|
function getFormPagination(props) {
|
|
12493
12513
|
let onPageChangeScript = `
|
|
12494
12514
|
let scope = event.context.scoped;
|
|
12495
|
-
let
|
|
12496
|
-
let
|
|
12497
|
-
let
|
|
12498
|
-
let fieldValue = event.data.
|
|
12515
|
+
let __paginationServiceId = event.data.__paginationServiceId;
|
|
12516
|
+
let __wrapperServiceId = event.data.__wrapperServiceId;
|
|
12517
|
+
let __formId = event.data.__formId;
|
|
12518
|
+
let fieldValue = event.data.__changedItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.changedItems,直接变更其值即可改变表单中的值
|
|
12499
12519
|
let pageChangeDirection = context.props.pageChangeDirection;
|
|
12500
|
-
let currentPage = event.data.
|
|
12520
|
+
let currentPage = event.data.__page;
|
|
12501
12521
|
let currentIndex = event.data.index;
|
|
12502
12522
|
|
|
12503
12523
|
// 翻页到下一页之前需要先把当前页改动的内容保存到中间变量changedItems中
|
|
12504
|
-
let currentFormValues = scope.getComponentById(
|
|
12524
|
+
let currentFormValues = scope.getComponentById(__formId).getValues();
|
|
12505
12525
|
fieldValue[currentIndex] = currentFormValues;
|
|
12506
12526
|
// // 因为翻页form中用的是event.data.changedItems中的数据,所以不需要像下面这样doAction setValue变更中间变量changedItems值
|
|
12507
12527
|
// doAction({
|
|
12508
|
-
// "componentId":
|
|
12528
|
+
// "componentId": __wrapperServiceId,
|
|
12509
12529
|
// "actionType": "setValue",
|
|
12510
12530
|
// "args": {
|
|
12511
12531
|
// "value": {
|
|
12512
|
-
// "
|
|
12532
|
+
// "__changedItems": fieldValue
|
|
12513
12533
|
// }
|
|
12514
12534
|
// }
|
|
12515
12535
|
// });
|
|
@@ -12532,13 +12552,13 @@ function getFormPagination(props) {
|
|
|
12532
12552
|
targetPage = currentPage - 1;
|
|
12533
12553
|
}
|
|
12534
12554
|
let targetIndex = targetPage - 1;//input-table组件行索引,从0开始的索引
|
|
12535
|
-
// let targetFormData =
|
|
12555
|
+
// let targetFormData = __changedItems[targetIndex];
|
|
12536
12556
|
doAction({
|
|
12537
12557
|
"actionType": "setValue",
|
|
12538
|
-
"componentId":
|
|
12558
|
+
"componentId": __paginationServiceId,
|
|
12539
12559
|
"args": {
|
|
12540
12560
|
"value": {
|
|
12541
|
-
"
|
|
12561
|
+
"__page": targetPage,
|
|
12542
12562
|
"index": targetIndex
|
|
12543
12563
|
}
|
|
12544
12564
|
}
|
|
@@ -12546,7 +12566,7 @@ function getFormPagination(props) {
|
|
|
12546
12566
|
// 这里不用进一步把表单内容setValue到form中,是因为编辑表单中schemaApi监听了行索引index的变化,其值变化时会重新build整个form
|
|
12547
12567
|
// doAction({
|
|
12548
12568
|
// "actionType": "setValue",
|
|
12549
|
-
// "componentId":
|
|
12569
|
+
// "componentId": __formId,
|
|
12550
12570
|
// "args": {
|
|
12551
12571
|
// "value": targetFormData
|
|
12552
12572
|
// },
|
|
@@ -12563,7 +12583,7 @@ function getFormPagination(props) {
|
|
|
12563
12583
|
"icon": `fa fa-angle-left`,
|
|
12564
12584
|
"level": "link",
|
|
12565
12585
|
"pageChangeDirection": "prev",
|
|
12566
|
-
"disabledOn": "${
|
|
12586
|
+
"disabledOn": "${__page <= 1}",
|
|
12567
12587
|
"size": "sm",
|
|
12568
12588
|
"onEvent": {
|
|
12569
12589
|
"click": {
|
|
@@ -12578,7 +12598,7 @@ function getFormPagination(props) {
|
|
|
12578
12598
|
},
|
|
12579
12599
|
{
|
|
12580
12600
|
"type": "tpl",
|
|
12581
|
-
"tpl": "${
|
|
12601
|
+
"tpl": "${__page}/${__total}"
|
|
12582
12602
|
},
|
|
12583
12603
|
{
|
|
12584
12604
|
"type": "button",
|
|
@@ -12586,7 +12606,7 @@ function getFormPagination(props) {
|
|
|
12586
12606
|
"icon": `fa fa-angle-right`,
|
|
12587
12607
|
"level": "link",
|
|
12588
12608
|
"pageChangeDirection": "next",
|
|
12589
|
-
"disabledOn": "${
|
|
12609
|
+
"disabledOn": "${__page >= __total}",
|
|
12590
12610
|
"size": "sm",
|
|
12591
12611
|
"onEvent": {
|
|
12592
12612
|
"click": {
|
|
@@ -12607,10 +12627,23 @@ function getFormPagination(props) {
|
|
|
12607
12627
|
* 传入formSchema输出带翻页容器的wrapper
|
|
12608
12628
|
* @param {*} props input-table组件props
|
|
12609
12629
|
* @param {*} form formSchema
|
|
12630
|
+
* @param {*} mode edit/readonly
|
|
12610
12631
|
* @returns 带翻页容器的wrapper
|
|
12611
12632
|
*/
|
|
12612
|
-
function getFormPaginationWrapper(props, form) {
|
|
12633
|
+
function getFormPaginationWrapper(props, form, mode) {
|
|
12613
12634
|
let serviceId = `service_popup_pagination_wrapper__${props.id}`;
|
|
12635
|
+
// 这里加__super前缀是因为__parentForm变量(即主表单)中可能会正好有名为index的字段
|
|
12636
|
+
// 比如“对象字段”对象options字段是一个子表字段,但是主表(即“对象字段”对象)中正好有一个名为index的字段
|
|
12637
|
+
// 只读的时候不可以走中间变量__changedItems,比如工作流规则详细页面修改了子表字段”时间触发器“值后,在只读界面点击查看按钮弹出的表单中__changedItems值是修改前的值
|
|
12638
|
+
let formValues = mode === "readonly" ? `\${${props.name}[__super.index]}` : "${__changedItems[__super.index]}";
|
|
12639
|
+
// 这时用__readonlyItemsLength是因为`\${${props.name}.length}`拿不到值
|
|
12640
|
+
let totalValue = mode === "readonly" ? "${__readonlyItemsLength}" : "${__changedItems.length}";
|
|
12641
|
+
let innerForm = Object.assign({}, form, {
|
|
12642
|
+
"data": {
|
|
12643
|
+
// "&": "${__changedItems[__super.index]}"
|
|
12644
|
+
"&": formValues,
|
|
12645
|
+
}
|
|
12646
|
+
});
|
|
12614
12647
|
let formBody = [
|
|
12615
12648
|
{
|
|
12616
12649
|
"type": "wrapper",
|
|
@@ -12620,14 +12653,15 @@ function getFormPaginationWrapper(props, form) {
|
|
|
12620
12653
|
getFormPagination(props)
|
|
12621
12654
|
]
|
|
12622
12655
|
},
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
"
|
|
12656
|
+
{
|
|
12657
|
+
"type": "service",
|
|
12658
|
+
"body": [
|
|
12659
|
+
innerForm
|
|
12660
|
+
],
|
|
12626
12661
|
"data": {
|
|
12627
|
-
|
|
12628
|
-
"&": "${changedItems[index]}"
|
|
12662
|
+
"&": "${__parentForm}"
|
|
12629
12663
|
}
|
|
12630
|
-
}
|
|
12664
|
+
}
|
|
12631
12665
|
];
|
|
12632
12666
|
let onServiceInitedScript = `
|
|
12633
12667
|
// 以下脚本在inlineEditMode模式时才有必要执行(不过执行了也没有坏处,纯粹是没必要),是为了解决:
|
|
@@ -12639,13 +12673,13 @@ function getFormPaginationWrapper(props, form) {
|
|
|
12639
12673
|
return;
|
|
12640
12674
|
}
|
|
12641
12675
|
let scope = event.context.scoped;
|
|
12642
|
-
let
|
|
12643
|
-
let wrapperService = scope.getComponentById(
|
|
12676
|
+
let __wrapperServiceId = event.data.__wrapperServiceId;
|
|
12677
|
+
let wrapperService = scope.getComponentById(__wrapperServiceId);
|
|
12644
12678
|
let wrapperServiceData = wrapperService.getData();
|
|
12645
12679
|
let lastestFieldValue = wrapperServiceData["${props.name}"];//这里不可以用event.data["${props.name}"]因为amis input talbe有一层单独的作用域,其值会延迟一拍
|
|
12646
|
-
//不可以直接像event.data.
|
|
12647
|
-
event.data.
|
|
12648
|
-
event.data.
|
|
12680
|
+
//不可以直接像event.data.__changedItems = originalFieldValue; 这样整个赋值,否则作用域会断
|
|
12681
|
+
event.data.__changedItems.forEach(function(n,i){
|
|
12682
|
+
event.data.__changedItems[i] = lastestFieldValue[i];
|
|
12649
12683
|
});
|
|
12650
12684
|
`;
|
|
12651
12685
|
let schema = {
|
|
@@ -12668,11 +12702,11 @@ function getFormPaginationWrapper(props, form) {
|
|
|
12668
12702
|
},
|
|
12669
12703
|
// "body": formBody,
|
|
12670
12704
|
"data": {
|
|
12671
|
-
"
|
|
12672
|
-
// "
|
|
12673
|
-
"
|
|
12674
|
-
"
|
|
12675
|
-
"
|
|
12705
|
+
"__page": "${index + 1}",
|
|
12706
|
+
// "__total": `\${${props.name}.length}`,
|
|
12707
|
+
"__total": totalValue,
|
|
12708
|
+
"__paginationServiceId": serviceId,
|
|
12709
|
+
"__formId": form.id
|
|
12676
12710
|
},
|
|
12677
12711
|
"onEvent": {
|
|
12678
12712
|
"init": {
|
|
@@ -12704,13 +12738,17 @@ async function getForm(props, mode = "edit") {
|
|
|
12704
12738
|
"mode": "normal",
|
|
12705
12739
|
"body": body,
|
|
12706
12740
|
"wrapWithPanel": false,
|
|
12741
|
+
"canAccessSuperData": false,
|
|
12707
12742
|
"className": "steedos-object-form steedos-amis-form"
|
|
12708
12743
|
};
|
|
12709
12744
|
if (mode === "edit") {
|
|
12710
12745
|
let onEditItemSubmitScript = `
|
|
12711
12746
|
// let fieldValue = _.cloneDeep(event.data["${props.name}"]);
|
|
12712
|
-
let fieldValue = event.data.
|
|
12713
|
-
|
|
12747
|
+
let fieldValue = event.data.__changedItems;//这里不可以_.cloneDeep,因为翻页form中用的是event.data.changedItems,直接变更其值即可改变表单中的值
|
|
12748
|
+
|
|
12749
|
+
//这里加__super.__super前缀是因为__parentForm变量(即主表单)中可能会正好有名为index的字段
|
|
12750
|
+
// 比如“对象字段”对象options字段是一个子表字段,但是主表(即“对象字段”对象)中正好有一个名为index的字段
|
|
12751
|
+
fieldValue[event.data.__super.__super.index] = JSON.parse(JSON.stringify(event.data));
|
|
12714
12752
|
doAction({
|
|
12715
12753
|
"componentId": "${props.id}",
|
|
12716
12754
|
"actionType": "setValue",
|
|
@@ -12720,11 +12758,11 @@ async function getForm(props, mode = "edit") {
|
|
|
12720
12758
|
});
|
|
12721
12759
|
// // 因为翻页form中用的是event.data.changedItems中的数据,所以不需要像下面这样doAction setValue变更中间变量changedItems值
|
|
12722
12760
|
// doAction({
|
|
12723
|
-
// "componentId": event.data.
|
|
12761
|
+
// "componentId": event.data.__wrapperServiceId,
|
|
12724
12762
|
// "actionType": "setValue",
|
|
12725
12763
|
// "args": {
|
|
12726
12764
|
// "value": {
|
|
12727
|
-
// "
|
|
12765
|
+
// "__changedItems": fieldValue
|
|
12728
12766
|
// }
|
|
12729
12767
|
// }
|
|
12730
12768
|
// });
|
|
@@ -12756,10 +12794,10 @@ async function getForm(props, mode = "edit") {
|
|
|
12756
12794
|
else if (mode === "new") {
|
|
12757
12795
|
let onNewItemSubmitScript = `
|
|
12758
12796
|
// let fieldValue = _.cloneDeep(event.data["${props.name}"]);
|
|
12759
|
-
if(!event.data.
|
|
12760
|
-
event.data.
|
|
12797
|
+
if(!event.data.__changedItems){
|
|
12798
|
+
event.data.__changedItems = [];
|
|
12761
12799
|
}
|
|
12762
|
-
let fieldValue = event.data.
|
|
12800
|
+
let fieldValue = event.data.__changedItems;
|
|
12763
12801
|
fieldValue.push(JSON.parse(JSON.stringify(event.data)));
|
|
12764
12802
|
doAction({
|
|
12765
12803
|
"componentId": "${props.id}",
|
|
@@ -12770,11 +12808,11 @@ async function getForm(props, mode = "edit") {
|
|
|
12770
12808
|
});
|
|
12771
12809
|
// // 因为翻页form中用的是event.data.changedItems中的数据,所以不需要像下面这样doAction setValue变更中间变量changedItems值
|
|
12772
12810
|
// doAction({
|
|
12773
|
-
// "componentId": event.data.
|
|
12811
|
+
// "componentId": event.data.__wrapperServiceId,
|
|
12774
12812
|
// "actionType": "setValue",
|
|
12775
12813
|
// "args": {
|
|
12776
12814
|
// "value": {
|
|
12777
|
-
// "
|
|
12815
|
+
// "__changedItems": fieldValue
|
|
12778
12816
|
// }
|
|
12779
12817
|
// }
|
|
12780
12818
|
// });
|
|
@@ -12804,7 +12842,7 @@ async function getForm(props, mode = "edit") {
|
|
|
12804
12842
|
});
|
|
12805
12843
|
}
|
|
12806
12844
|
if (mode === "edit" || mode === "readonly") {
|
|
12807
|
-
schema = getFormPaginationWrapper(props, schema);
|
|
12845
|
+
schema = getFormPaginationWrapper(props, schema, mode);
|
|
12808
12846
|
}
|
|
12809
12847
|
return schema;
|
|
12810
12848
|
}
|
|
@@ -12843,21 +12881,21 @@ async function getButtonNew(props) {
|
|
|
12843
12881
|
async function getButtonEdit(props, showAsInlineEditMode) {
|
|
12844
12882
|
let onCancelScript = `
|
|
12845
12883
|
let scope = event.context.scoped;
|
|
12846
|
-
let
|
|
12847
|
-
let wrapperService = scope.getComponentById(
|
|
12884
|
+
let __wrapperServiceId = event.data.__wrapperServiceId;
|
|
12885
|
+
let wrapperService = scope.getComponentById(__wrapperServiceId);
|
|
12848
12886
|
let wrapperServiceData = wrapperService.getData();
|
|
12849
12887
|
let originalFieldValue = wrapperServiceData["${props.name}"];//这里不可以用event.data["${props.name}"]因为amis input talbe有一层单独的作用域,其值会延迟一拍
|
|
12850
|
-
//不可以直接像event.data.
|
|
12851
|
-
event.data.
|
|
12852
|
-
event.data.
|
|
12888
|
+
//不可以直接像event.data.__changedItems = originalFieldValue; 这样整个赋值,否则作用域会断,造成无法还原
|
|
12889
|
+
event.data.__changedItems.forEach(function(n,i){
|
|
12890
|
+
event.data.__changedItems[i] = originalFieldValue[i];
|
|
12853
12891
|
});
|
|
12854
12892
|
// 因为翻页form中用的是event.data.changedItems中的数据,所以像下面这样doAction setValue无法实现还原
|
|
12855
12893
|
// doAction({
|
|
12856
|
-
// "componentId":
|
|
12894
|
+
// "componentId": __wrapperServiceId,
|
|
12857
12895
|
// "actionType": "setValue",
|
|
12858
12896
|
// "args": {
|
|
12859
12897
|
// "value": {
|
|
12860
|
-
// "
|
|
12898
|
+
// "__changedItems": originalFieldValue
|
|
12861
12899
|
// }
|
|
12862
12900
|
// }
|
|
12863
12901
|
// });
|
|
@@ -12888,13 +12926,15 @@ async function getButtonEdit(props, showAsInlineEditMode) {
|
|
|
12888
12926
|
// 这里必须加data数据映射,否则翻页功能中取changedItems值时会乱,比如翻页编辑后会把上一页中没改过的字段值带过去
|
|
12889
12927
|
// 额外把华炎魔方主表记录ObjectForm中的字段值从record变量中映射到子表form中,因为子表lookup字段filtersFunction中可能依赖了主表记录中的字段值,比如“工作流规则”对象“时间触发器”字段中的“日期字段”字段
|
|
12890
12928
|
// 额外把global、uiSchema也映射过去,有可能要用,后续需要用到其他变更可以这里加映射
|
|
12891
|
-
"&": "${record || {}}",
|
|
12929
|
+
// "&": "${record || {}}",
|
|
12930
|
+
// 换成从__super来映射上级表单数据是因为对象列表视图界面中每行下拉菜单中的编辑按钮弹出的表单中的子表所在作用域中没有record变量
|
|
12931
|
+
// 映射到中间变量__parentForm而不是直接用&展开映射是为了避免表单中字段名与作用域中变量重名
|
|
12932
|
+
"__parentForm": "${__super.__super || {}}",
|
|
12892
12933
|
"global": "${global}",
|
|
12893
12934
|
"uiSchema": "${uiSchema}",
|
|
12894
|
-
"grid": "${grid}",
|
|
12895
12935
|
"index": "${index}",
|
|
12896
|
-
"
|
|
12897
|
-
"
|
|
12936
|
+
"__changedItems": "${__changedItems}",
|
|
12937
|
+
"__wrapperServiceId": "${__wrapperServiceId}"
|
|
12898
12938
|
},
|
|
12899
12939
|
"onEvent": {
|
|
12900
12940
|
"cancel": {
|
|
@@ -12942,11 +12982,14 @@ async function getButtonView(props) {
|
|
|
12942
12982
|
// 这里必须加data数据映射,否则翻页功能中取changedItems值时会乱,比如翻页编辑后会把上一页中没改过的字段值带过去
|
|
12943
12983
|
// 额外把华炎魔方主表记录ObjectForm中的字段值从formData变量中映射到子表form中,因为子表lookup字段filtersFunction中可能依赖了主表记录中的字段值,比如“工作流规则”对象“时间触发器”字段中的“日期字段”字段
|
|
12944
12984
|
// global、uiSchema等常用变量本来就在formData变量已经存在了,无需另外映射
|
|
12945
|
-
"&": "${formData || {}}",
|
|
12946
|
-
|
|
12985
|
+
// "&": "${formData || {}}",
|
|
12986
|
+
// 换成从__super来映射上级表单数据是因为对象列表视图界面中每行下拉菜单中的编辑按钮弹出的表单中的子表所在作用域中没有formData变量
|
|
12987
|
+
// 映射到中间变量__parentForm而不是直接用&展开映射是为了避免表单中字段名与作用域中变量重名
|
|
12988
|
+
"__parentForm": "${__super.__super || {}}",
|
|
12947
12989
|
"index": "${index}",
|
|
12948
|
-
"
|
|
12949
|
-
"
|
|
12990
|
+
"__changedItems": "${__changedItems}",
|
|
12991
|
+
"__wrapperServiceId": "${__wrapperServiceId}",
|
|
12992
|
+
"__readonlyItemsLength": `\${${props.name}.length}`
|
|
12950
12993
|
}
|
|
12951
12994
|
}
|
|
12952
12995
|
}
|
|
@@ -12959,10 +13002,10 @@ async function getButtonView(props) {
|
|
|
12959
13002
|
function getButtonDelete(props) {
|
|
12960
13003
|
let onDeleteItemScript = `
|
|
12961
13004
|
// let fieldValue = _.cloneDeep(event.data["${props.name}"]);
|
|
12962
|
-
if(!event.data.
|
|
12963
|
-
event.data.
|
|
13005
|
+
if(!event.data.__changedItems){
|
|
13006
|
+
event.data.__changedItems = [];
|
|
12964
13007
|
}
|
|
12965
|
-
let fieldValue = event.data.
|
|
13008
|
+
let fieldValue = event.data.__changedItems;
|
|
12966
13009
|
// fieldValue.push(JSON.parse(JSON.stringify(event.data)));
|
|
12967
13010
|
fieldValue.splice(event.data.index, 1)
|
|
12968
13011
|
doAction({
|
|
@@ -12974,11 +13017,11 @@ function getButtonDelete(props) {
|
|
|
12974
13017
|
});
|
|
12975
13018
|
// // 因为翻页form中用的是event.data.changedItems中的数据,所以不需要像下面这样doAction setValue变更中间变量changedItems值
|
|
12976
13019
|
// doAction({
|
|
12977
|
-
// "componentId": event.data.
|
|
13020
|
+
// "componentId": event.data.__wrapperServiceId,
|
|
12978
13021
|
// "actionType": "setValue",
|
|
12979
13022
|
// "args": {
|
|
12980
13023
|
// "value": {
|
|
12981
|
-
// "
|
|
13024
|
+
// "__changedItems": fieldValue
|
|
12982
13025
|
// }
|
|
12983
13026
|
// }
|
|
12984
13027
|
// });
|
|
@@ -13059,7 +13102,7 @@ const getAmisInputTableSchema = async (props) => {
|
|
|
13059
13102
|
"id": props.id,
|
|
13060
13103
|
"columns": await getInputTableColumns(props),
|
|
13061
13104
|
// "needConfirm": false, //不可以配置为false,否则,单元格都是可编辑状态,且很多static类型无法正常显示,比如static-mapping
|
|
13062
|
-
"strictMode":
|
|
13105
|
+
"strictMode": props.strictMode,
|
|
13063
13106
|
"showTableAddBtn": false,
|
|
13064
13107
|
"showFooterAddBtn": false,
|
|
13065
13108
|
"className": props.tableClassName
|
|
@@ -13077,7 +13120,31 @@ const getAmisInputTableSchema = async (props) => {
|
|
|
13077
13120
|
}
|
|
13078
13121
|
let dataProviderInited = `
|
|
13079
13122
|
// 单独维护一份中间变量changedItems,因为原变量在input-table组件有单独的作用域,翻页功能中无法维护此作用域中的行记录值
|
|
13080
|
-
setData({
|
|
13123
|
+
setData({ __changedItems: _.cloneDeep(data["${props.name}"]) || []});
|
|
13124
|
+
`;
|
|
13125
|
+
let onInitScript = `
|
|
13126
|
+
// 上面dataProviderInited中setData有时不生效,没有成功给service组件设置__changedItems变量值
|
|
13127
|
+
// 比如设计字段布局界面中的设置分组功能就因为__changedItems变量值不存在而报错,应该是因为把steedos-input-table组件单独放到弹出窗口中会有这个问题
|
|
13128
|
+
// 所以额外在service init事件中手动设置一次__changedItems值
|
|
13129
|
+
let __wrapperServiceId = event.data.__wrapperServiceId;
|
|
13130
|
+
let fieldValue = _.cloneDeep(event.data["${props.name}"]) || [];
|
|
13131
|
+
doAction({
|
|
13132
|
+
"componentId": __wrapperServiceId,
|
|
13133
|
+
"actionType": "setValue",
|
|
13134
|
+
"args": {
|
|
13135
|
+
"value": {
|
|
13136
|
+
"__changedItems": fieldValue
|
|
13137
|
+
}
|
|
13138
|
+
}
|
|
13139
|
+
});
|
|
13140
|
+
// 下面的doAction好像不是必须的
|
|
13141
|
+
// doAction({
|
|
13142
|
+
// "componentId": "${props.id}",
|
|
13143
|
+
// "actionType": "setValue",
|
|
13144
|
+
// "args": {
|
|
13145
|
+
// "value": fieldValue
|
|
13146
|
+
// }
|
|
13147
|
+
// });
|
|
13081
13148
|
`;
|
|
13082
13149
|
let schema = {
|
|
13083
13150
|
"type": "service",
|
|
@@ -13087,10 +13154,20 @@ const getAmisInputTableSchema = async (props) => {
|
|
|
13087
13154
|
"className": props.className,
|
|
13088
13155
|
"id": serviceId,
|
|
13089
13156
|
"data": {
|
|
13090
|
-
"
|
|
13157
|
+
"__wrapperServiceId": serviceId
|
|
13091
13158
|
},
|
|
13092
13159
|
"dataProvider": {
|
|
13093
13160
|
"inited": dataProviderInited
|
|
13161
|
+
},
|
|
13162
|
+
"onEvent": {
|
|
13163
|
+
"init": {
|
|
13164
|
+
"actions": [
|
|
13165
|
+
{
|
|
13166
|
+
"actionType": "custom",
|
|
13167
|
+
"script": onInitScript
|
|
13168
|
+
}
|
|
13169
|
+
]
|
|
13170
|
+
}
|
|
13094
13171
|
}
|
|
13095
13172
|
};
|
|
13096
13173
|
let footerToolbar = _$1.clone(props.footerToolbar || []); //这里不clone的话,会造成死循环,应该是因为props属性变更会让组件重新渲染
|
|
@@ -13105,9 +13182,20 @@ const getAmisInputTableSchema = async (props) => {
|
|
|
13105
13182
|
"body": footerToolbar
|
|
13106
13183
|
});
|
|
13107
13184
|
}
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
|
|
13185
|
+
let amis = props["input-table"] || props.amis;//额外支持"input-table"代替amis属性,是因为在字段yml文件中用amis作为key不好理解
|
|
13186
|
+
if (amis) {
|
|
13187
|
+
// 支持配置amis属性重写或添加最终生成的input-table中任何属性。
|
|
13188
|
+
delete amis.id;//如果steedos-input-table组件配置了amis.id属性,会造成新建编辑行功能不生效
|
|
13189
|
+
Object.assign(schema.body[0], amis);
|
|
13190
|
+
}
|
|
13191
|
+
const isAnyFieldHasDependOn = (props.fields || []).find(function (item) {
|
|
13192
|
+
return item.depend_on;
|
|
13193
|
+
});
|
|
13194
|
+
if(isAnyFieldHasDependOn){
|
|
13195
|
+
// 有任意一个子字段有depend_on属性时,强制设置禁用静态模式
|
|
13196
|
+
Object.assign(schema.body[0], {
|
|
13197
|
+
strictMode: false
|
|
13198
|
+
});
|
|
13111
13199
|
}
|
|
13112
13200
|
// console.log("===schema===", schema);
|
|
13113
13201
|
return schema;
|