fmui-base 2.3.4 → 2.3.6
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/README.md +2 -0
- package/lib/db/db.js +29 -0
- package/lib/db/variables.js +4 -1
- package/lib/form/table.js +314 -309
- package/lib/process_info/processInfo.js +299 -2
- package/lib/process_info/processInfo.less +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/db/db.js
CHANGED
|
@@ -1111,6 +1111,35 @@ context.create('FlowModuleAPI', {
|
|
|
1111
1111
|
// content: <Loading />
|
|
1112
1112
|
// });
|
|
1113
1113
|
}
|
|
1114
|
+
},
|
|
1115
|
+
getUserSetInfo: {
|
|
1116
|
+
mockUrl: 'query/getUserSetInfo.json',
|
|
1117
|
+
url: _variables2.default.URLS.getUserSetInfo,
|
|
1118
|
+
method: 'GET',
|
|
1119
|
+
header: {
|
|
1120
|
+
Authorization: 'Bearer ' + getLoginUserInfo().token
|
|
1121
|
+
},
|
|
1122
|
+
willFetch: function willFetch() {}
|
|
1123
|
+
},
|
|
1124
|
+
orgSwitch: {
|
|
1125
|
+
mockUrl: 'query/orgSwitch.json',
|
|
1126
|
+
url: _variables2.default.URLS.orgSwitch,
|
|
1127
|
+
method: 'POST',
|
|
1128
|
+
postDataFomat: 'FORM',
|
|
1129
|
+
header: {
|
|
1130
|
+
Authorization: 'Bearer ' + getLoginUserInfo().token
|
|
1131
|
+
},
|
|
1132
|
+
willFetch: function willFetch() {}
|
|
1133
|
+
},
|
|
1134
|
+
updateStartUserOrg: {
|
|
1135
|
+
mockUrl: 'query/updateStartUserOrg.json',
|
|
1136
|
+
url: _variables2.default.URLS.updateStartUserOrg,
|
|
1137
|
+
method: 'POST',
|
|
1138
|
+
postDataFomat: 'FORM',
|
|
1139
|
+
header: {
|
|
1140
|
+
Authorization: 'Bearer ' + getLoginUserInfo().token
|
|
1141
|
+
},
|
|
1142
|
+
willFetch: function willFetch() {}
|
|
1114
1143
|
}
|
|
1115
1144
|
|
|
1116
1145
|
});
|
package/lib/db/variables.js
CHANGED
|
@@ -140,7 +140,10 @@ exports.default = {
|
|
|
140
140
|
getProcessListByCodes: approveUrlPrefix + "getProcessListByCodes" + '?', //获取可发起的子流程
|
|
141
141
|
getRelaObjByRelaId: approveUrlPrefix + "getRelaObjByRelaId" + '?', //获取相关对象
|
|
142
142
|
getUrgencyEnum: approveUrlPrefix + "getUrgencyEnum" + '?', //获取枚举
|
|
143
|
-
getSysSettingByMark: approveUrlPrefix + "getSysSettingByMark" + '?' //获取系统设置
|
|
143
|
+
getSysSettingByMark: approveUrlPrefix + "getSysSettingByMark" + '?', //获取系统设置
|
|
144
|
+
getUserSetInfo: urlBasicPrefix + 'setting/userinfo/getUserSetInfo' + '?', //获取用户组织信息
|
|
145
|
+
orgSwitch: urlBasicPrefix + 'front/personal/orgSwitch' + '?', //切换组织
|
|
146
|
+
updateStartUserOrg: approveUrlPrefix + 'updateStartUserOrg' + '?' //更新发起人组织
|
|
144
147
|
},
|
|
145
148
|
nodataIcon: context + "/mobile/fmui/images/noData.png",
|
|
146
149
|
loadingIcon: context + "/mobile/fmui/images/loading.gif",
|
package/lib/form/table.js
CHANGED
|
@@ -165,6 +165,72 @@ function buildFormRelaFieldMapsByRelaField(triggerFieldsMap) {
|
|
|
165
165
|
return relaFieldsMap;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
+
// 构建联动下拉选项(对齐 PC:从联动结果 + 已保存 multiItemsLinkField 取显示文本)
|
|
169
|
+
function buildLinkageSelectOptions(contentValue, relateItemParam, fieldDataItem) {
|
|
170
|
+
var selectOptions = [];
|
|
171
|
+
var lookupSources = [];
|
|
172
|
+
if (relateItemParam) {
|
|
173
|
+
if (relateItemParam.selectOptions) {
|
|
174
|
+
lookupSources.push(relateItemParam.selectOptions);
|
|
175
|
+
}
|
|
176
|
+
if (relateItemParam.selectItem) {
|
|
177
|
+
lookupSources.push(relateItemParam.selectItem);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (fieldDataItem && fieldDataItem.multiItemsLinkField) {
|
|
181
|
+
lookupSources.push(fieldDataItem.multiItemsLinkField);
|
|
182
|
+
}
|
|
183
|
+
for (var c = 0; c < contentValue.length; c++) {
|
|
184
|
+
var val = contentValue[c];
|
|
185
|
+
var option = { value: val, text: val };
|
|
186
|
+
for (var s = 0; s < lookupSources.length; s++) {
|
|
187
|
+
var src = lookupSources[s];
|
|
188
|
+
if (!src) {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
for (var i = 0; i < src.length; i++) {
|
|
192
|
+
var item = src[i];
|
|
193
|
+
if (item && item.value == val) {
|
|
194
|
+
option.text = item.text || item.name || val;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
selectOptions.push(option);
|
|
200
|
+
}
|
|
201
|
+
return selectOptions;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// 联动下拉赋值:编辑打开时优先保留已保存值(对齐 PC real-value 逻辑)
|
|
205
|
+
function resolveLinkageSelectValue(containUniqueFlag, savedValue, candidateValue, formItem, fieldKey) {
|
|
206
|
+
var tva = candidateValue || '';
|
|
207
|
+
if (containUniqueFlag === true) {
|
|
208
|
+
return tva;
|
|
209
|
+
}
|
|
210
|
+
if (savedValue != null && savedValue !== '') {
|
|
211
|
+
var available = tva ? String(tva).split(',') : [];
|
|
212
|
+
var savedArr = String(savedValue).split(',');
|
|
213
|
+
var matched = savedArr.filter(function (v) {
|
|
214
|
+
return available.indexOf(v) > -1;
|
|
215
|
+
});
|
|
216
|
+
if (matched.length > 0) {
|
|
217
|
+
return matched.join(',');
|
|
218
|
+
}
|
|
219
|
+
if (available.length === 1) {
|
|
220
|
+
return available[0];
|
|
221
|
+
}
|
|
222
|
+
return savedValue;
|
|
223
|
+
}
|
|
224
|
+
if (formItem && fieldKey) {
|
|
225
|
+
for (var f = 0; f < formItem.length; f++) {
|
|
226
|
+
if (formItem[f].itemCode == fieldKey && formItem[f].value == tva) {
|
|
227
|
+
return tva;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return '';
|
|
232
|
+
}
|
|
233
|
+
|
|
168
234
|
var PageHome = function (_React$Component) {
|
|
169
235
|
_inherits(PageHome, _React$Component);
|
|
170
236
|
|
|
@@ -350,6 +416,7 @@ var PageHome = function (_React$Component) {
|
|
|
350
416
|
// "relaTblName" : "cs_test"
|
|
351
417
|
// } ]
|
|
352
418
|
// }
|
|
419
|
+
_this._isFormInitialLoading = true;
|
|
353
420
|
return _this;
|
|
354
421
|
}
|
|
355
422
|
|
|
@@ -357,17 +424,53 @@ var PageHome = function (_React$Component) {
|
|
|
357
424
|
key: 'componentDidMount',
|
|
358
425
|
value: function componentDidMount() {
|
|
359
426
|
var t = this;
|
|
427
|
+
// 等子字段 loadComponet 完成后再统一刷新关联/联动,避免打开编辑页时清空已保存值
|
|
428
|
+
setTimeout(function () {
|
|
429
|
+
t.initFormLinkageAndRelaFields();
|
|
430
|
+
}, 500);
|
|
431
|
+
}
|
|
360
432
|
|
|
361
|
-
|
|
362
|
-
// let commentList = this.props.commentList;
|
|
363
|
-
// let formData = this.props.formData;
|
|
433
|
+
// 编辑/查看打开后:刷新字段关联规则,并按触发条件回填联动字段(保留已保存值)
|
|
364
434
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
435
|
+
}, {
|
|
436
|
+
key: 'initFormLinkageAndRelaFields',
|
|
437
|
+
value: function initFormLinkageAndRelaFields() {
|
|
438
|
+
var t = this;
|
|
439
|
+
var data = t.props.data;
|
|
440
|
+
if (!data) {
|
|
441
|
+
t._isFormInitialLoading = false;
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
t._isRelaFieldRefreshing = true;
|
|
445
|
+
try {
|
|
446
|
+
t.reloadFormRelaField({ initFlag: true });
|
|
447
|
+
} finally {
|
|
448
|
+
t._isRelaFieldRefreshing = false;
|
|
449
|
+
}
|
|
450
|
+
var linkFields = data.linkFields;
|
|
451
|
+
if (linkFields && linkFields.length > 0) {
|
|
452
|
+
var processed = {};
|
|
453
|
+
var formItem = data.formItem || [];
|
|
454
|
+
for (var i = 0; i < linkFields.length; i++) {
|
|
455
|
+
var formField = linkFields[i].formField;
|
|
456
|
+
if (!formField || processed[formField]) {
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
processed[formField] = true;
|
|
460
|
+
for (var j = 0; j < formItem.length; j++) {
|
|
461
|
+
if (formField.indexOf(formItem[j].fieldId) > -1) {
|
|
462
|
+
t.processLinkFieldsUpdate(data, {
|
|
463
|
+
fieldId: formItem[j].fieldId,
|
|
464
|
+
key: formItem[j].itemCode,
|
|
465
|
+
uniqueName: data.mainTblName + '_' + formItem[j].itemCode,
|
|
466
|
+
itemType: formItem[j].itemType
|
|
467
|
+
}, undefined, { initFlag: true });
|
|
468
|
+
break;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
t._isFormInitialLoading = false;
|
|
371
474
|
}
|
|
372
475
|
}, {
|
|
373
476
|
key: 'reloadItemParam',
|
|
@@ -529,308 +632,20 @@ var PageHome = function (_React$Component) {
|
|
|
529
632
|
|
|
530
633
|
var fieldId = itemParam.fieldId;
|
|
531
634
|
var linkFields = data.linkFields;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
for (var i = 0; i < linkFields.length; i++) {
|
|
535
|
-
var formField = linkFields[i].formField;
|
|
536
|
-
if (formField != null && formField != '') {
|
|
537
|
-
var ffid = formField.split(",");
|
|
538
|
-
var conditionArrayJSON = [];
|
|
539
|
-
if (formField.indexOf(fieldId) != -1) {
|
|
540
|
-
for (var j = 0; j < ffid.length; j++) {
|
|
541
|
-
var linkFormKey = "";
|
|
542
|
-
var linkFormTableKey = "";
|
|
543
|
-
var isSub = false;
|
|
544
|
-
for (var f = 0; f < formItem.length; f++) {
|
|
545
|
-
if (ffid[j] == formItem[f].fieldId) {
|
|
546
|
-
linkFormKey = formItem[f].itemCode;
|
|
547
|
-
linkFormTableKey = mainTblName;
|
|
548
|
-
continue;
|
|
549
|
-
} else if (formItem[f].itemType == 'detail') {
|
|
550
|
-
for (var g = 0; g < formItem[f].children.length; g++) {
|
|
551
|
-
if (ffid[j] == formItem[f].children[g].fieldId) {
|
|
552
|
-
linkFormKey = formItem[f].children[g].itemCode;
|
|
553
|
-
linkFormTableKey = formItem[f].itemCode;
|
|
554
|
-
isSub = true;
|
|
555
|
-
continue;
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
if (linkFormKey) {
|
|
561
|
-
var selectValue = "";
|
|
562
|
-
var isSelect = false;
|
|
563
|
-
if (isSub) {
|
|
564
|
-
for (var l = 0; l < subTbl.length; l++) {
|
|
565
|
-
if (subTbl[l].subTblName == linkFormTableKey) {
|
|
566
|
-
for (var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++) {
|
|
567
|
-
if (subTbl[l].subTblData[subTblNo][g].key == linkFormKey) {
|
|
568
|
-
var option = {};
|
|
569
|
-
option.value = subTbl[l].subTblData[subTblNo][g].value;
|
|
570
|
-
option.formField = ffid[j];
|
|
571
|
-
conditionArrayJSON.push(option);
|
|
572
|
-
continue;
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
} else {
|
|
578
|
-
for (var k = 0; k < mainTblData.length; k++) {
|
|
579
|
-
if (linkFormTableKey + "_" + linkFormKey == mainTblName + "_" + mainTblData[k].key) {
|
|
580
|
-
var option = {};
|
|
581
|
-
selectValue = mainTblData[k].value;
|
|
582
|
-
option.value = mainTblData[k].value;
|
|
583
|
-
option.formField = ffid[j];
|
|
584
|
-
conditionArrayJSON.push(option);
|
|
585
|
-
isSelect = true;
|
|
586
|
-
continue;
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
|
-
if (conditionArrayJSON.length > 0) {
|
|
594
|
-
_db2.default.FlowModuleAPI.getLinkFieldValueMap({
|
|
595
|
-
triggerFormFields: formField,
|
|
596
|
-
formId: data.formId,
|
|
597
|
-
conditionArrayJSON: JSON.stringify(conditionArrayJSON)
|
|
598
|
-
}).then(function (content) {
|
|
599
|
-
if (content) {
|
|
600
|
-
var containUniqueFlag = content['containUniqueFlag'];
|
|
601
|
-
var content = content['map'];
|
|
602
|
-
for (var key in content) {
|
|
603
|
-
var contentValue = content[key];
|
|
604
|
-
|
|
605
|
-
var tolinkFormKey = "";
|
|
606
|
-
var tolinkFormType = "";
|
|
607
|
-
var tolinkFormTableKey = "";
|
|
608
|
-
var toisSub = false;
|
|
609
|
-
for (var f = 0; f < formItem.length; f++) {
|
|
610
|
-
if (key == formItem[f].fieldId) {
|
|
611
|
-
tolinkFormKey = formItem[f].itemCode;
|
|
612
|
-
tolinkFormType = formItem[f].itemType;
|
|
613
|
-
tolinkFormTableKey = mainTblName;
|
|
614
|
-
} else if (formItem[f].itemType == 'detail') {
|
|
615
|
-
for (var g = 0; g < formItem[f].children.length; g++) {
|
|
616
|
-
if (key == formItem[f].children[g].fieldId) {
|
|
617
|
-
tolinkFormKey = formItem[f].children[g].itemCode;
|
|
618
|
-
tolinkFormType = formItem[f].children[g].itemType;
|
|
619
|
-
tolinkFormTableKey = formItem[f].itemCode;
|
|
620
|
-
toisSub = true;
|
|
621
|
-
continue;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
if (tolinkFormKey) {
|
|
627
|
-
if (!toisSub) {
|
|
628
|
-
for (var m = 0; m < mainTblData.length; m++) {
|
|
629
|
-
if (tolinkFormKey == mainTblData[m].key) {
|
|
630
|
-
var relateItemParam = t.refs[mainTblName + "_" + mainTblData[m].key].getItemParam();
|
|
631
|
-
if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
632
|
-
var textValue = '';
|
|
633
|
-
var valueMap = {};
|
|
634
|
-
valueMap.key = 'value';
|
|
635
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
636
|
-
textValue = textValue + "," + contentValue[c];
|
|
637
|
-
}
|
|
638
|
-
valueMap.value = textValue.substring(1);
|
|
639
|
-
|
|
640
|
-
t.refs[mainTblName + "_" + mainTblData[m].key].reloadItemParam([valueMap]);
|
|
641
|
-
mainTblData[m].value = textValue.substring(1);
|
|
642
|
-
} else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
643
|
-
var textValue = '';
|
|
644
|
-
var resultMap = {};
|
|
645
|
-
resultMap.key = 'selectOptions';
|
|
646
|
-
|
|
647
|
-
var selectOptions = [];
|
|
648
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
649
|
-
textValue = textValue + "," + contentValue[c];
|
|
650
|
-
var option = {};
|
|
651
|
-
relateItemParam.selectItem.map(function (selectItemObj) {
|
|
652
|
-
if (selectItemObj.value == contentValue[c]) {
|
|
653
|
-
option.value = contentValue[c];
|
|
654
|
-
option.text = selectItemObj.text;
|
|
655
|
-
selectOptions.push(option);
|
|
656
|
-
}
|
|
657
|
-
});
|
|
658
|
-
}
|
|
659
|
-
resultMap.value = selectOptions;
|
|
660
|
-
|
|
661
|
-
var valueMap1 = {};
|
|
662
|
-
valueMap1.key = 'value';
|
|
663
|
-
valueMap1.value = "";
|
|
664
|
-
mainTblData[m].value = "";
|
|
665
|
-
var tva = textValue.substring(1);
|
|
666
|
-
if (containUniqueFlag == true) {
|
|
667
|
-
valueMap1.value = tva;
|
|
668
|
-
mainTblData[m].value = tva;
|
|
669
|
-
} else {
|
|
670
|
-
for (var f = 0; f < formItem.length; f++) {
|
|
671
|
-
if (formItem[f].itemCode == mainTblData[m].key && formItem[f].value == tva) {
|
|
672
|
-
valueMap1.value = tva;
|
|
673
|
-
mainTblData[m].value = tva;
|
|
674
|
-
break;
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
t.refs[mainTblName + "_" + mainTblData[m].key].reloadItemParam([resultMap, valueMap1]);
|
|
679
|
-
}
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
} else {
|
|
683
|
-
if (isSub) {
|
|
684
|
-
for (var l = 0; l < subTbl.length; l++) {
|
|
685
|
-
if (subTbl[l].subTblName == tolinkFormTableKey) {
|
|
686
|
-
for (var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++) {
|
|
687
|
-
if (subTbl[l].subTblData[subTblNo][g].key == tolinkFormKey) {
|
|
688
|
-
var relateItemParam = t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].getItemParam();
|
|
689
|
-
if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
690
|
-
var textValue = '';
|
|
691
|
-
var valueMap = {};
|
|
692
|
-
valueMap.key = 'value';
|
|
693
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
694
|
-
textValue = textValue + "," + contentValue[c];
|
|
695
|
-
}
|
|
696
|
-
valueMap.value = textValue.substring(1);
|
|
697
|
-
|
|
698
|
-
t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].reloadItemParam([valueMap]);
|
|
699
|
-
subTbl[l].subTblData[subTblNo][g].value = textValue.substring(1);
|
|
700
|
-
} else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
701
|
-
var textValue = '';
|
|
702
|
-
var resultMap = {};
|
|
703
|
-
resultMap.key = 'selectOptions';
|
|
704
|
-
|
|
705
|
-
var selectOptions = [];
|
|
706
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
707
|
-
textValue = textValue + "," + contentValue[c];
|
|
708
|
-
var option = {};
|
|
709
|
-
relateItemParam.selectItem.map(function (selectItemObj) {
|
|
710
|
-
if (selectItemObj.value == contentValue[c]) {
|
|
711
|
-
option.value = contentValue[c];
|
|
712
|
-
option.text = selectItemObj.text;
|
|
713
|
-
selectOptions.push(option);
|
|
714
|
-
}
|
|
715
|
-
});
|
|
716
|
-
}
|
|
717
|
-
resultMap.value = selectOptions;
|
|
718
|
-
|
|
719
|
-
var valueMap1 = {};
|
|
720
|
-
valueMap1.key = 'value';
|
|
721
|
-
valueMap1.value = "";
|
|
722
|
-
subTbl[l].subTblData[subTblNo][g].value = "";
|
|
723
|
-
var tva = textValue.substring(1);
|
|
724
|
-
if (containUniqueFlag == true) {
|
|
725
|
-
valueMap1.value = tva;
|
|
726
|
-
subTbl[l].subTblData[subTblNo][g].value = tva;
|
|
727
|
-
} else {
|
|
728
|
-
for (var f = 0; f < formItem.length; f++) {
|
|
729
|
-
if (formItem[f].itemType == 'detail' && formItem[f].itemCode == tolinkFormTableKey) {
|
|
730
|
-
for (var h = 0; h < formItem[f].children.length; h++) {
|
|
731
|
-
if (formItem[f].children[h].itemCode == subTbl[l].subTblData[subTblNo][g].key && formItem[f].children[h].value == tva) {
|
|
732
|
-
valueMap1.value = tva;
|
|
733
|
-
subTbl[l].subTblData[subTblNo][g].value = tva;
|
|
734
|
-
break;
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].reloadItemParam([resultMap, valueMap1]);
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
}
|
|
746
|
-
} else {
|
|
747
|
-
for (var l = 0; l < subTbl.length; l++) {
|
|
748
|
-
if (subTbl[l].subTblName == tolinkFormTableKey) {
|
|
749
|
-
for (var o = 0; o < subTbl[l].subTblData.length; o++) {
|
|
750
|
-
for (var g = 0; g < subTbl[l].subTblData[o].length; g++) {
|
|
751
|
-
if (tolinkFormKey == subTbl[l].subTblData[o][g].key) {
|
|
752
|
-
var relateItemParam = t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].getItemParam();
|
|
753
|
-
if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
754
|
-
var textValue = '';
|
|
755
|
-
var valueMap = {};
|
|
756
|
-
valueMap.key = 'value';
|
|
757
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
758
|
-
textValue = textValue + "," + contentValue[c];
|
|
759
|
-
}
|
|
760
|
-
valueMap.value = textValue.substring(1);
|
|
761
|
-
|
|
762
|
-
t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].reloadItemParam([valueMap]);
|
|
763
|
-
subTbl[l].subTblData[o][g].value = textValue.substring(1);
|
|
764
|
-
} else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
765
|
-
var textValue = '';
|
|
766
|
-
var resultMap = {};
|
|
767
|
-
resultMap.key = 'selectOptions';
|
|
768
|
-
|
|
769
|
-
var selectOptions = [];
|
|
770
|
-
for (var c = 0; c < contentValue.length; c++) {
|
|
771
|
-
textValue = textValue + "," + contentValue[c];
|
|
772
|
-
var option = {};
|
|
773
|
-
relateItemParam.selectItem.map(function (selectItemObj) {
|
|
774
|
-
if (selectItemObj.value == contentValue[c]) {
|
|
775
|
-
option.value = contentValue[c];
|
|
776
|
-
option.text = selectItemObj.text;
|
|
777
|
-
selectOptions.push(option);
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
}
|
|
781
|
-
resultMap.value = selectOptions;
|
|
782
|
-
|
|
783
|
-
var valueMap1 = {};
|
|
784
|
-
valueMap1.key = 'value';
|
|
785
|
-
valueMap1.value = "";
|
|
786
|
-
subTbl[l].subTblData[o][g].value = "";
|
|
787
|
-
var tva = textValue.substring(1);
|
|
788
|
-
if (containUniqueFlag == true) {
|
|
789
|
-
valueMap1.value = tva;
|
|
790
|
-
subTbl[l].subTblData[o][g].value = tva;
|
|
791
|
-
} else {
|
|
792
|
-
for (var f = 0; f < formItem.length; f++) {
|
|
793
|
-
if (formItem[f].itemType == 'detail' && formItem[f].itemCode == tolinkFormTableKey) {
|
|
794
|
-
for (var h = 0; h < formItem[f].children.length; h++) {
|
|
795
|
-
if (formItem[f].children[h].itemCode == subTbl[l].subTblData[o][g].key && formItem[f].children[h].value == tva) {
|
|
796
|
-
valueMap1.value = tva;
|
|
797
|
-
subTbl[l].subTblData[o][g].value = tva;
|
|
798
|
-
break;
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].reloadItemParam([resultMap, valueMap1]);
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
}
|
|
816
|
-
}).catch(function (error) {
|
|
817
|
-
console.error(error);
|
|
818
|
-
});
|
|
819
|
-
}
|
|
820
|
-
}
|
|
821
|
-
}
|
|
635
|
+
if (!t._isFormInitialLoading && linkFields && linkFields != null) {
|
|
636
|
+
t.processLinkFieldsUpdate(data, itemParam, subTblNo, { initFlag: false });
|
|
822
637
|
}
|
|
823
638
|
|
|
824
639
|
//关联字段刷新(silent 模式,不向上触发 onChange)
|
|
825
640
|
var hasRelaFieldsMap = t.state.formRelaFieldMaps && Object.keys(t.state.formRelaFieldMaps).length > 0;
|
|
826
|
-
if (hasRelaFieldsMap) {
|
|
641
|
+
if (!t._isFormInitialLoading && hasRelaFieldsMap) {
|
|
827
642
|
t._isRelaFieldRefreshing = true;
|
|
828
643
|
try {
|
|
829
644
|
t.refreshAllRelaFieldsByRelaMap(data, itemParam.uniqueName, subTblNo);
|
|
830
645
|
} finally {
|
|
831
646
|
t._isRelaFieldRefreshing = false;
|
|
832
647
|
}
|
|
833
|
-
} else if (formRelaFieldMaps) {
|
|
648
|
+
} else if (!t._isFormInitialLoading && formRelaFieldMaps) {
|
|
834
649
|
var formRelaFieldMapsObj = formRelaFieldMaps[itemParam.uniqueName];
|
|
835
650
|
if (formRelaFieldMapsObj && formRelaFieldMapsObj.length > 0) {
|
|
836
651
|
t._isRelaFieldRefreshing = true;
|
|
@@ -898,17 +713,206 @@ var PageHome = function (_React$Component) {
|
|
|
898
713
|
}
|
|
899
714
|
}
|
|
900
715
|
|
|
716
|
+
// 字段联动:触发字段变更或编辑页打开时回填联动目标(initFlag=true 时保留已保存文本/下拉值)
|
|
717
|
+
|
|
718
|
+
}, {
|
|
719
|
+
key: 'processLinkFieldsUpdate',
|
|
720
|
+
value: function processLinkFieldsUpdate(data, itemParam, subTblNo, options) {
|
|
721
|
+
var t = this;
|
|
722
|
+
var initFlag = options && options.initFlag === true;
|
|
723
|
+
var linkFields = data.linkFields;
|
|
724
|
+
var formItem = data.formItem;
|
|
725
|
+
var mainTblData = data.mainTblData;
|
|
726
|
+
var mainTblName = data.mainTblName;
|
|
727
|
+
var subTbl = data.subTbl;
|
|
728
|
+
var fieldId = itemParam.fieldId;
|
|
729
|
+
if (!linkFields || !fieldId) {
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
for (var i = 0; i < linkFields.length; i++) {
|
|
733
|
+
var formField = linkFields[i].formField;
|
|
734
|
+
if (!formField || formField.indexOf(fieldId) == -1) {
|
|
735
|
+
continue;
|
|
736
|
+
}
|
|
737
|
+
var ffid = formField.split(",");
|
|
738
|
+
var conditionArrayJSON = [];
|
|
739
|
+
for (var j = 0; j < ffid.length; j++) {
|
|
740
|
+
var linkFormKey = "";
|
|
741
|
+
var linkFormTableKey = "";
|
|
742
|
+
var isSubTrigger = false;
|
|
743
|
+
for (var f = 0; f < formItem.length; f++) {
|
|
744
|
+
if (ffid[j] == formItem[f].fieldId) {
|
|
745
|
+
linkFormKey = formItem[f].itemCode;
|
|
746
|
+
linkFormTableKey = mainTblName;
|
|
747
|
+
} else if (formItem[f].itemType == 'detail') {
|
|
748
|
+
for (var g = 0; g < formItem[f].children.length; g++) {
|
|
749
|
+
if (ffid[j] == formItem[f].children[g].fieldId) {
|
|
750
|
+
linkFormKey = formItem[f].children[g].itemCode;
|
|
751
|
+
linkFormTableKey = formItem[f].itemCode;
|
|
752
|
+
isSubTrigger = true;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
if (!linkFormKey) {
|
|
758
|
+
continue;
|
|
759
|
+
}
|
|
760
|
+
if (isSubTrigger && typeof subTblNo != 'undefined') {
|
|
761
|
+
for (var l = 0; l < subTbl.length; l++) {
|
|
762
|
+
if (subTbl[l].subTblName == linkFormTableKey && subTbl[l].subTblData[subTblNo]) {
|
|
763
|
+
for (var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++) {
|
|
764
|
+
if (subTbl[l].subTblData[subTblNo][g].key == linkFormKey) {
|
|
765
|
+
conditionArrayJSON.push({
|
|
766
|
+
value: subTbl[l].subTblData[subTblNo][g].value,
|
|
767
|
+
formField: ffid[j]
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
} else {
|
|
774
|
+
for (var k = 0; k < mainTblData.length; k++) {
|
|
775
|
+
if (linkFormTableKey + "_" + linkFormKey == mainTblName + "_" + mainTblData[k].key) {
|
|
776
|
+
conditionArrayJSON.push({
|
|
777
|
+
value: mainTblData[k].value,
|
|
778
|
+
formField: ffid[j]
|
|
779
|
+
});
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
if (conditionArrayJSON.length === 0) {
|
|
785
|
+
continue;
|
|
786
|
+
}
|
|
787
|
+
_db2.default.FlowModuleAPI.getLinkFieldValueMap({
|
|
788
|
+
triggerFormFields: formField,
|
|
789
|
+
formId: data.formId,
|
|
790
|
+
conditionArrayJSON: JSON.stringify(conditionArrayJSON)
|
|
791
|
+
}).then(function (content) {
|
|
792
|
+
if (!content) {
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
var containUniqueFlag = content['containUniqueFlag'];
|
|
796
|
+
var resultMap = content['map'] || {};
|
|
797
|
+
for (var key in resultMap) {
|
|
798
|
+
var contentValue = resultMap[key];
|
|
799
|
+
t.applyLinkageFieldResult(data, key, contentValue, containUniqueFlag, formItem, mainTblData, mainTblName, subTbl, subTblNo, initFlag);
|
|
800
|
+
}
|
|
801
|
+
}).catch(function (error) {
|
|
802
|
+
console.error(error);
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
}, {
|
|
807
|
+
key: 'applyLinkageFieldResult',
|
|
808
|
+
value: function applyLinkageFieldResult(data, targetFieldId, contentValue, containUniqueFlag, formItem, mainTblData, mainTblName, subTbl, subTblNo, initFlag) {
|
|
809
|
+
var t = this;
|
|
810
|
+
var tolinkFormKey = "";
|
|
811
|
+
var tolinkFormType = "";
|
|
812
|
+
var tolinkFormTableKey = "";
|
|
813
|
+
var toisSub = false;
|
|
814
|
+
for (var f = 0; f < formItem.length; f++) {
|
|
815
|
+
if (targetFieldId == formItem[f].fieldId) {
|
|
816
|
+
tolinkFormKey = formItem[f].itemCode;
|
|
817
|
+
tolinkFormType = formItem[f].itemType;
|
|
818
|
+
tolinkFormTableKey = mainTblName;
|
|
819
|
+
} else if (formItem[f].itemType == 'detail') {
|
|
820
|
+
for (var g = 0; g < formItem[f].children.length; g++) {
|
|
821
|
+
if (targetFieldId == formItem[f].children[g].fieldId) {
|
|
822
|
+
tolinkFormKey = formItem[f].children[g].itemCode;
|
|
823
|
+
tolinkFormType = formItem[f].children[g].itemType;
|
|
824
|
+
tolinkFormTableKey = formItem[f].itemCode;
|
|
825
|
+
toisSub = true;
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
if (!tolinkFormKey) {
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
var applyToField = function applyToField(fieldDataItem, fieldRef) {
|
|
834
|
+
if (!fieldRef || !fieldDataItem) {
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
var relateItemParam = fieldRef.getItemParam ? fieldRef.getItemParam() : {};
|
|
838
|
+
if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
839
|
+
if (initFlag && fieldDataItem.value != null && fieldDataItem.value !== '') {
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
var textValue = '';
|
|
843
|
+
for (var c = 0; c < contentValue.length; c++) {
|
|
844
|
+
textValue = textValue + "," + contentValue[c];
|
|
845
|
+
}
|
|
846
|
+
var valueMap = { key: 'value', value: textValue.substring(1) };
|
|
847
|
+
fieldRef.reloadItemParam([valueMap]);
|
|
848
|
+
fieldDataItem.value = valueMap.value;
|
|
849
|
+
} else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
|
|
850
|
+
var textValue = '';
|
|
851
|
+
for (var c2 = 0; c2 < contentValue.length; c2++) {
|
|
852
|
+
textValue = textValue + "," + contentValue[c2];
|
|
853
|
+
}
|
|
854
|
+
var tva = textValue.substring(1);
|
|
855
|
+
var selectOptions = buildLinkageSelectOptions(contentValue, relateItemParam, fieldDataItem);
|
|
856
|
+
var resolvedValue = resolveLinkageSelectValue(containUniqueFlag, fieldDataItem.value, tva, formItem, fieldDataItem.key);
|
|
857
|
+
fieldRef.reloadItemParam([{ key: 'selectOptions', value: selectOptions }, { key: 'value', value: resolvedValue }]);
|
|
858
|
+
fieldDataItem.value = resolvedValue;
|
|
859
|
+
if (fieldDataItem.multiItemsLinkField == null && selectOptions.length > 0) {
|
|
860
|
+
fieldDataItem.multiItemsLinkField = selectOptions.map(function (opt) {
|
|
861
|
+
return { value: opt.value, name: opt.text };
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
};
|
|
866
|
+
if (!toisSub) {
|
|
867
|
+
for (var m = 0; m < mainTblData.length; m++) {
|
|
868
|
+
if (tolinkFormKey == mainTblData[m].key) {
|
|
869
|
+
applyToField(mainTblData[m], t.refs[mainTblName + "_" + mainTblData[m].key]);
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
} else if (typeof subTblNo != 'undefined') {
|
|
873
|
+
for (var l = 0; l < subTbl.length; l++) {
|
|
874
|
+
if (subTbl[l].subTblName == tolinkFormTableKey && subTbl[l].subTblData[subTblNo]) {
|
|
875
|
+
for (var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++) {
|
|
876
|
+
if (subTbl[l].subTblData[subTblNo][g].key == tolinkFormKey) {
|
|
877
|
+
var subRef = t.refs["sub_" + tolinkFormTableKey];
|
|
878
|
+
if (subRef && subRef.refs) {
|
|
879
|
+
applyToField(subTbl[l].subTblData[subTblNo][g], subRef.refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo]);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
} else {
|
|
886
|
+
for (var l2 = 0; l2 < subTbl.length; l2++) {
|
|
887
|
+
if (subTbl[l2].subTblName != tolinkFormTableKey) {
|
|
888
|
+
continue;
|
|
889
|
+
}
|
|
890
|
+
for (var o = 0; o < subTbl[l2].subTblData.length; o++) {
|
|
891
|
+
for (var g2 = 0; g2 < subTbl[l2].subTblData[o].length; g2++) {
|
|
892
|
+
if (tolinkFormKey == subTbl[l2].subTblData[o][g2].key) {
|
|
893
|
+
var subRef2 = t.refs["sub_" + tolinkFormTableKey];
|
|
894
|
+
if (subRef2 && subRef2.refs) {
|
|
895
|
+
applyToField(subTbl[l2].subTblData[o][g2], subRef2.refs[tolinkFormTableKey + "_" + subTbl[l2].subTblData[o][g2].key + "_" + o]);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
|
|
901
904
|
//重新加载关联字段
|
|
902
905
|
|
|
903
906
|
}, {
|
|
904
907
|
key: 'reloadFormRelaField',
|
|
905
|
-
value: function reloadFormRelaField() {
|
|
908
|
+
value: function reloadFormRelaField(options) {
|
|
906
909
|
var t = this;
|
|
907
910
|
var data = t.props.data;
|
|
911
|
+
var initFlag = options && options.initFlag === true;
|
|
908
912
|
t._isRelaFieldRefreshing = true;
|
|
909
913
|
try {
|
|
910
914
|
if (t.state.formRelaFieldMaps && Object.keys(t.state.formRelaFieldMaps).length > 0) {
|
|
911
|
-
t.refreshAllRelaFieldsByRelaMap(data);
|
|
915
|
+
t.refreshAllRelaFieldsByRelaMap(data, null, undefined, { initFlag: initFlag });
|
|
912
916
|
} else if (formRelaFieldMaps) {
|
|
913
917
|
var _iteratorNormalCompletion2 = true;
|
|
914
918
|
var _didIteratorError2 = false;
|
|
@@ -1250,8 +1254,9 @@ var PageHome = function (_React$Component) {
|
|
|
1250
1254
|
|
|
1251
1255
|
}, {
|
|
1252
1256
|
key: 'applyRelaRulesToTarget',
|
|
1253
|
-
value: function applyRelaRulesToTarget(targetUniqueName, rules, data, contextRowIndex, changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields) {
|
|
1257
|
+
value: function applyRelaRulesToTarget(targetUniqueName, rules, data, contextRowIndex, changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields, options) {
|
|
1254
1258
|
var t = this;
|
|
1259
|
+
var initFlag = options && options.initFlag === true;
|
|
1255
1260
|
if (changedUniqueName && targetUniqueName === changedUniqueName) {
|
|
1256
1261
|
if (typeof changedSubTblNo === 'undefined' || changedSubTblNo === contextRowIndex) {
|
|
1257
1262
|
return;
|
|
@@ -1318,14 +1323,14 @@ var PageHome = function (_React$Component) {
|
|
|
1318
1323
|
}
|
|
1319
1324
|
}
|
|
1320
1325
|
}
|
|
1321
|
-
if (isHidden) {
|
|
1326
|
+
if (isHidden && !initFlag) {
|
|
1322
1327
|
t.clearFieldDataValue(data, targetUniqueName, contextRowIndex);
|
|
1323
1328
|
}
|
|
1324
1329
|
var finalRequired = isHidden ? false : skipEditMust ? baseline.required : required;
|
|
1325
1330
|
var finalReadOnly = skipEditMust ? baseline.readOnly : readOnly;
|
|
1326
1331
|
t.syncRelaFieldMetaToData(data, targetUniqueName, { required: finalRequired }, contextRowIndex);
|
|
1327
1332
|
var paramList = [];
|
|
1328
|
-
if (isHidden) {
|
|
1333
|
+
if (isHidden && !initFlag) {
|
|
1329
1334
|
paramList.push({ key: "value", value: "" });
|
|
1330
1335
|
paramList.push({ key: "required", value: false });
|
|
1331
1336
|
} else if (required !== baseline.required || !isHidden) {
|
|
@@ -1341,7 +1346,7 @@ var PageHome = function (_React$Component) {
|
|
|
1341
1346
|
|
|
1342
1347
|
}, {
|
|
1343
1348
|
key: 'refreshAllRelaFieldsByRelaMap',
|
|
1344
|
-
value: function refreshAllRelaFieldsByRelaMap(data, changedUniqueName, changedSubTblNo) {
|
|
1349
|
+
value: function refreshAllRelaFieldsByRelaMap(data, changedUniqueName, changedSubTblNo, options) {
|
|
1345
1350
|
var t = this;
|
|
1346
1351
|
var relaFieldsMap = t.state.formRelaFieldMaps;
|
|
1347
1352
|
if (!relaFieldsMap) {
|
|
@@ -1390,12 +1395,12 @@ var PageHome = function (_React$Component) {
|
|
|
1390
1395
|
// 子表触发只刷新当前行;主表触发刷新子表所有行
|
|
1391
1396
|
var subRowIndexes = t.getSubRelaRefreshRowIndexes(targetSubTblName, data, typeof changedSubTblNo !== 'undefined' ? changedSubTblNo : undefined);
|
|
1392
1397
|
for (var sri = 0; sri < subRowIndexes.length; sri++) {
|
|
1393
|
-
t.applyRelaRulesToTarget(targetUniqueName, rules, data, subRowIndexes[sri], changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields);
|
|
1398
|
+
t.applyRelaRulesToTarget(targetUniqueName, rules, data, subRowIndexes[sri], changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields, options);
|
|
1394
1399
|
}
|
|
1395
1400
|
} else {
|
|
1396
1401
|
// 主表字段:子表触发时用触发行号读取子表触发值
|
|
1397
1402
|
var mainContextRow = typeof changedSubTblNo !== 'undefined' ? changedSubTblNo : undefined;
|
|
1398
|
-
t.applyRelaRulesToTarget(targetUniqueName, rules, data, mainContextRow, changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields);
|
|
1403
|
+
t.applyRelaRulesToTarget(targetUniqueName, rules, data, mainContextRow, changedUniqueName, changedSubTblNo, fieldControll, defaulthideFields, defaultmustFields, defaultshowFields, options);
|
|
1399
1404
|
}
|
|
1400
1405
|
}
|
|
1401
1406
|
} catch (err) {
|
|
@@ -137,6 +137,33 @@ function isSysTransferCommentRequired() {
|
|
|
137
137
|
return getSysSettingByMark('approveTransferComment') == '1';
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
/** 组织切换相关接口不可用(如后台未部署、404) */
|
|
141
|
+
function isApproveOrgApiUnavailableError(err) {
|
|
142
|
+
if (!err) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
var code = err.status || err.statusCode || err.code;
|
|
146
|
+
if (code == 404 || code == '404') {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
if (err.error) {
|
|
150
|
+
code = err.error.errorCode || err.error.code || err.error.status;
|
|
151
|
+
if (code == 404 || code == '404') {
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
var msg = '';
|
|
156
|
+
if (err.error && err.error.errorMsg) {
|
|
157
|
+
msg = err.error.errorMsg;
|
|
158
|
+
} else if (err.message) {
|
|
159
|
+
msg = err.message;
|
|
160
|
+
} else if (typeof err === 'string') {
|
|
161
|
+
msg = err;
|
|
162
|
+
}
|
|
163
|
+
msg = (msg || '').toLowerCase();
|
|
164
|
+
return msg.indexOf('404') >= 0 || msg.indexOf('not found') >= 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
140
167
|
var isCaReload = false;
|
|
141
168
|
window.addEventListener('pageshow', function () {
|
|
142
169
|
console.log("isCaReload===" + isCaReload);
|
|
@@ -487,7 +514,7 @@ var PageHome = function (_React$Component) {
|
|
|
487
514
|
selectProcessCode: '', //选中的子流程
|
|
488
515
|
subProcessType: '', //子流程类型 0串行 1并行
|
|
489
516
|
urgencyList: [], //紧急程度列表
|
|
490
|
-
urgency: '' }, _defineProperty(_param, 'urgent', ''), _defineProperty(_param, 'backInitiatorEndFlow', '0'), _defineProperty(_param, 'oauthWindowURL', ''), _defineProperty(_param, 'signDataId', ''), _defineProperty(_param, 'isCaUser', '0'), _defineProperty(_param, 'caFirm', ''), _defineProperty(_param, 'caESignatureName', ''), _defineProperty(_param, 'caFormSign', ''), _defineProperty(_param, 'addlotsReturn', ''), _defineProperty(_param, 'inscriptionShow', ''), _param);
|
|
517
|
+
urgency: '' }, _defineProperty(_param, 'urgent', ''), _defineProperty(_param, 'backInitiatorEndFlow', '0'), _defineProperty(_param, 'oauthWindowURL', ''), _defineProperty(_param, 'signDataId', ''), _defineProperty(_param, 'isCaUser', '0'), _defineProperty(_param, 'caFirm', ''), _defineProperty(_param, 'caESignatureName', ''), _defineProperty(_param, 'caFormSign', ''), _defineProperty(_param, 'addlotsReturn', ''), _defineProperty(_param, 'inscriptionShow', ''), _defineProperty(_param, 'showOrgSwitcher', false), _defineProperty(_param, 'approveOrgOptions', []), _defineProperty(_param, 'approveOrgSelectValue', {}), _defineProperty(_param, 'approveCurOrgId', ''), _defineProperty(_param, 'startUserOrgId', ''), _defineProperty(_param, 'taskAssignOrgId', ''), _defineProperty(_param, 'approveOrgApiUnavailable', false), _param);
|
|
491
518
|
FlowCommon = require('pages/flow_common/' + module).default ? require('pages/flow_common/' + module).default : require('pages/flow_common/' + module);
|
|
492
519
|
|
|
493
520
|
//处理特有参数
|
|
@@ -1517,8 +1544,11 @@ var PageHome = function (_React$Component) {
|
|
|
1517
1544
|
caESignatureName: caESignatureName,
|
|
1518
1545
|
caFormSign: caFormSign,
|
|
1519
1546
|
addlotsReturn: addlotsReturn,
|
|
1520
|
-
inscriptionShow: inscriptionShow
|
|
1547
|
+
inscriptionShow: inscriptionShow,
|
|
1548
|
+
startUserOrgId: content.startUserOrgId || content.startUserGroupId || '',
|
|
1549
|
+
taskAssignOrgId: content.taskAssignOrgId || ''
|
|
1521
1550
|
}, function () {
|
|
1551
|
+
t.initApproveOrgSwitcher();
|
|
1522
1552
|
t.refs["selectMember_circulate"].initSelectData();
|
|
1523
1553
|
t.refs["selectMember_circulate1"].initSelectData();
|
|
1524
1554
|
|
|
@@ -7538,6 +7568,256 @@ var PageHome = function (_React$Component) {
|
|
|
7538
7568
|
sendShortMessage: newremindStyle
|
|
7539
7569
|
});
|
|
7540
7570
|
}
|
|
7571
|
+
}, {
|
|
7572
|
+
key: 'hideApproveOrgSwitcherSilently',
|
|
7573
|
+
value: function hideApproveOrgSwitcherSilently() {
|
|
7574
|
+
this.setState({
|
|
7575
|
+
showOrgSwitcher: false,
|
|
7576
|
+
approveOrgOptions: [],
|
|
7577
|
+
approveOrgSelectValue: {},
|
|
7578
|
+
approveCurOrgId: '',
|
|
7579
|
+
approveOrgApiUnavailable: true
|
|
7580
|
+
});
|
|
7581
|
+
}
|
|
7582
|
+
}, {
|
|
7583
|
+
key: 'isApproveOrgSwitcherScene',
|
|
7584
|
+
value: function isApproveOrgSwitcherScene() {
|
|
7585
|
+
var permissionCode = this.state.permissionCode;
|
|
7586
|
+
return permissionCode == 'pending' || permissionCode == 'start' || permissionCode == 'draft';
|
|
7587
|
+
}
|
|
7588
|
+
}, {
|
|
7589
|
+
key: 'isApproveStartOrgUpdateScene',
|
|
7590
|
+
value: function isApproveStartOrgUpdateScene() {
|
|
7591
|
+
var permissionCode = this.state.permissionCode;
|
|
7592
|
+
return permissionCode == 'start' || permissionCode == 'draft' || this.state.isStart == true;
|
|
7593
|
+
}
|
|
7594
|
+
}, {
|
|
7595
|
+
key: 'resolveApproveOrgTargetId',
|
|
7596
|
+
value: function resolveApproveOrgTargetId(orgList, curOrgId, preferredOrgId, fallbackOrgId) {
|
|
7597
|
+
if (preferredOrgId) {
|
|
7598
|
+
for (var i = 0; i < orgList.length; i++) {
|
|
7599
|
+
if (orgList[i].id == preferredOrgId) {
|
|
7600
|
+
return preferredOrgId;
|
|
7601
|
+
}
|
|
7602
|
+
}
|
|
7603
|
+
}
|
|
7604
|
+
if (fallbackOrgId) {
|
|
7605
|
+
for (var i = 0; i < orgList.length; i++) {
|
|
7606
|
+
if (orgList[i].id == fallbackOrgId) {
|
|
7607
|
+
return fallbackOrgId;
|
|
7608
|
+
}
|
|
7609
|
+
}
|
|
7610
|
+
}
|
|
7611
|
+
return curOrgId;
|
|
7612
|
+
}
|
|
7613
|
+
}, {
|
|
7614
|
+
key: 'buildApproveOrgOption',
|
|
7615
|
+
value: function buildApproveOrgOption(org) {
|
|
7616
|
+
var orgName = org.name || org.orgNamePath || org.orgName || '';
|
|
7617
|
+
return {
|
|
7618
|
+
text: orgName,
|
|
7619
|
+
value: org.id
|
|
7620
|
+
};
|
|
7621
|
+
}
|
|
7622
|
+
}, {
|
|
7623
|
+
key: 'renderApproveOrgSwitcher',
|
|
7624
|
+
value: function renderApproveOrgSwitcher(orgList, selectedOrgId) {
|
|
7625
|
+
if (!orgList || orgList.length <= 1) {
|
|
7626
|
+
this.setState({
|
|
7627
|
+
showOrgSwitcher: false,
|
|
7628
|
+
approveOrgOptions: [],
|
|
7629
|
+
approveOrgSelectValue: {},
|
|
7630
|
+
approveCurOrgId: ''
|
|
7631
|
+
});
|
|
7632
|
+
return;
|
|
7633
|
+
}
|
|
7634
|
+
var options = [];
|
|
7635
|
+
var selectValue = {};
|
|
7636
|
+
for (var i = 0; i < orgList.length; i++) {
|
|
7637
|
+
var option = this.buildApproveOrgOption(orgList[i]);
|
|
7638
|
+
options.push(option);
|
|
7639
|
+
if (orgList[i].id == selectedOrgId) {
|
|
7640
|
+
selectValue = option;
|
|
7641
|
+
}
|
|
7642
|
+
}
|
|
7643
|
+
if (!selectValue.value && options.length > 0) {
|
|
7644
|
+
selectValue = options[0];
|
|
7645
|
+
selectedOrgId = selectValue.value;
|
|
7646
|
+
}
|
|
7647
|
+
this.setState({
|
|
7648
|
+
showOrgSwitcher: true,
|
|
7649
|
+
approveOrgOptions: options,
|
|
7650
|
+
approveOrgSelectValue: selectValue,
|
|
7651
|
+
approveCurOrgId: selectedOrgId || ''
|
|
7652
|
+
});
|
|
7653
|
+
}
|
|
7654
|
+
}, {
|
|
7655
|
+
key: 'initApproveOrgSwitcher',
|
|
7656
|
+
value: function initApproveOrgSwitcher() {
|
|
7657
|
+
var t = this;
|
|
7658
|
+
if (!t.isApproveOrgSwitcherScene() || t.state.approveOrgApiUnavailable) {
|
|
7659
|
+
return;
|
|
7660
|
+
}
|
|
7661
|
+
if (!window.approveOrgSwitcherSeq) {
|
|
7662
|
+
window.approveOrgSwitcherSeq = 0;
|
|
7663
|
+
}
|
|
7664
|
+
window.approveOrgSwitcherSeq++;
|
|
7665
|
+
var currentSeq = window.approveOrgSwitcherSeq;
|
|
7666
|
+
var autoSwitchKey = t.state.taskId || t.state.processInstanceId || '';
|
|
7667
|
+
if (!window.approveOrgAutoSwitchedMap) {
|
|
7668
|
+
window.approveOrgAutoSwitchedMap = {};
|
|
7669
|
+
}
|
|
7670
|
+
_db2.default.FlowModuleAPI.getUserSetInfo({}).then(function (userInfo) {
|
|
7671
|
+
if (currentSeq != window.approveOrgSwitcherSeq || t.state.approveOrgApiUnavailable) {
|
|
7672
|
+
return;
|
|
7673
|
+
}
|
|
7674
|
+
if (!userInfo) {
|
|
7675
|
+
t.hideApproveOrgSwitcherSilently();
|
|
7676
|
+
return;
|
|
7677
|
+
}
|
|
7678
|
+
if (userInfo.content && !userInfo.orgList) {
|
|
7679
|
+
userInfo = userInfo.content;
|
|
7680
|
+
}
|
|
7681
|
+
var orgList = userInfo.orgList || [];
|
|
7682
|
+
if (!orgList || orgList.length <= 1) {
|
|
7683
|
+
t.setState({ showOrgSwitcher: false });
|
|
7684
|
+
return;
|
|
7685
|
+
}
|
|
7686
|
+
var curOrgId = userInfo.curOrgId || '';
|
|
7687
|
+
var targetOrgId = t.resolveApproveOrgTargetId(orgList, curOrgId, t.state.taskAssignOrgId, t.state.startUserOrgId);
|
|
7688
|
+
if (targetOrgId && targetOrgId != curOrgId && !window.approveOrgAutoSwitchedMap[autoSwitchKey]) {
|
|
7689
|
+
t.switchApproveOrg(targetOrgId, function () {
|
|
7690
|
+
if (currentSeq != window.approveOrgSwitcherSeq) {
|
|
7691
|
+
return;
|
|
7692
|
+
}
|
|
7693
|
+
window.approveOrgAutoSwitchedMap[autoSwitchKey] = true;
|
|
7694
|
+
t.renderApproveOrgSwitcher(orgList, targetOrgId);
|
|
7695
|
+
}, function () {
|
|
7696
|
+
if (currentSeq != window.approveOrgSwitcherSeq) {
|
|
7697
|
+
return;
|
|
7698
|
+
}
|
|
7699
|
+
t.hideApproveOrgSwitcherSilently();
|
|
7700
|
+
}, { silent: true });
|
|
7701
|
+
return;
|
|
7702
|
+
}
|
|
7703
|
+
t.renderApproveOrgSwitcher(orgList, targetOrgId || curOrgId);
|
|
7704
|
+
}).catch(function (err) {
|
|
7705
|
+
if (currentSeq == window.approveOrgSwitcherSeq) {
|
|
7706
|
+
t.hideApproveOrgSwitcherSilently();
|
|
7707
|
+
}
|
|
7708
|
+
});
|
|
7709
|
+
}
|
|
7710
|
+
}, {
|
|
7711
|
+
key: 'handleApproveOrgSelect',
|
|
7712
|
+
value: function handleApproveOrgSelect(value) {
|
|
7713
|
+
var t = this;
|
|
7714
|
+
if (t.state.approveOrgApiUnavailable) {
|
|
7715
|
+
return;
|
|
7716
|
+
}
|
|
7717
|
+
if (!value || !value.value) {
|
|
7718
|
+
return;
|
|
7719
|
+
}
|
|
7720
|
+
var newOrgId = value.value;
|
|
7721
|
+
if (newOrgId == t.state.approveCurOrgId) {
|
|
7722
|
+
return;
|
|
7723
|
+
}
|
|
7724
|
+
var prevOrgId = t.state.approveCurOrgId;
|
|
7725
|
+
var prevSelectValue = t.state.approveOrgSelectValue;
|
|
7726
|
+
t.switchApproveOrg(newOrgId, function () {
|
|
7727
|
+
t.setState({
|
|
7728
|
+
approveCurOrgId: newOrgId,
|
|
7729
|
+
approveOrgSelectValue: value,
|
|
7730
|
+
startUserOrgId: t.isApproveStartOrgUpdateScene() ? newOrgId : t.state.startUserOrgId
|
|
7731
|
+
});
|
|
7732
|
+
}, function () {
|
|
7733
|
+
t.setState({
|
|
7734
|
+
approveCurOrgId: prevOrgId,
|
|
7735
|
+
approveOrgSelectValue: prevSelectValue
|
|
7736
|
+
});
|
|
7737
|
+
});
|
|
7738
|
+
}
|
|
7739
|
+
}, {
|
|
7740
|
+
key: 'switchApproveOrg',
|
|
7741
|
+
value: function switchApproveOrg(orgId, callback, failCallback, options) {
|
|
7742
|
+
var t = this;
|
|
7743
|
+
options = options || {};
|
|
7744
|
+
var silent = options.silent === true;
|
|
7745
|
+
var handleOrgApiError = function handleOrgApiError(err) {
|
|
7746
|
+
if (silent || isApproveOrgApiUnavailableError(err)) {
|
|
7747
|
+
t.hideApproveOrgSwitcherSilently();
|
|
7748
|
+
if (typeof failCallback === 'function') {
|
|
7749
|
+
failCallback();
|
|
7750
|
+
}
|
|
7751
|
+
return;
|
|
7752
|
+
}
|
|
7753
|
+
var errMsg = '组织切换失败';
|
|
7754
|
+
if (err && err.error && err.error.errorMsg) {
|
|
7755
|
+
errMsg = err.error.errorMsg;
|
|
7756
|
+
} else if (err && err.message) {
|
|
7757
|
+
errMsg = err.message;
|
|
7758
|
+
}
|
|
7759
|
+
_Toast2.default.show({
|
|
7760
|
+
type: 'error',
|
|
7761
|
+
content: errMsg
|
|
7762
|
+
});
|
|
7763
|
+
if (typeof failCallback === 'function') {
|
|
7764
|
+
failCallback();
|
|
7765
|
+
}
|
|
7766
|
+
};
|
|
7767
|
+
var afterOrgSwitchSuccess = function afterOrgSwitchSuccess() {
|
|
7768
|
+
if (t.isApproveStartOrgUpdateScene()) {
|
|
7769
|
+
var processInstanceId = t.state.processInstanceId || '';
|
|
7770
|
+
if (!processInstanceId) {
|
|
7771
|
+
if (typeof callback === 'function') {
|
|
7772
|
+
callback();
|
|
7773
|
+
}
|
|
7774
|
+
return;
|
|
7775
|
+
}
|
|
7776
|
+
_db2.default.FlowModuleAPI.updateStartUserOrg({
|
|
7777
|
+
processInstanceId: processInstanceId,
|
|
7778
|
+
orgId: orgId,
|
|
7779
|
+
userId: getLoginUserInfo().userId
|
|
7780
|
+
}).then(function () {
|
|
7781
|
+
if (typeof callback === 'function') {
|
|
7782
|
+
callback();
|
|
7783
|
+
}
|
|
7784
|
+
}).catch(function (err) {
|
|
7785
|
+
if (silent || isApproveOrgApiUnavailableError(err)) {
|
|
7786
|
+
t.hideApproveOrgSwitcherSilently();
|
|
7787
|
+
if (typeof callback === 'function') {
|
|
7788
|
+
callback();
|
|
7789
|
+
}
|
|
7790
|
+
return;
|
|
7791
|
+
}
|
|
7792
|
+
var errMsg = '更新发起人组织失败';
|
|
7793
|
+
if (err && err.error && err.error.errorMsg) {
|
|
7794
|
+
errMsg = err.error.errorMsg;
|
|
7795
|
+
} else if (err && err.message) {
|
|
7796
|
+
errMsg = err.message;
|
|
7797
|
+
}
|
|
7798
|
+
_Toast2.default.show({
|
|
7799
|
+
type: 'error',
|
|
7800
|
+
content: errMsg
|
|
7801
|
+
});
|
|
7802
|
+
if (typeof failCallback === 'function') {
|
|
7803
|
+
failCallback();
|
|
7804
|
+
}
|
|
7805
|
+
});
|
|
7806
|
+
return;
|
|
7807
|
+
}
|
|
7808
|
+
if (typeof callback === 'function') {
|
|
7809
|
+
callback();
|
|
7810
|
+
}
|
|
7811
|
+
};
|
|
7812
|
+
_db2.default.FlowModuleAPI.orgSwitch({
|
|
7813
|
+
curOrgIdRadios: orgId,
|
|
7814
|
+
curOrgId: orgId
|
|
7815
|
+
}).then(function () {
|
|
7816
|
+
afterOrgSwitchSuccess();
|
|
7817
|
+
}).catch(function (err) {
|
|
7818
|
+
handleOrgApiError(err);
|
|
7819
|
+
});
|
|
7820
|
+
}
|
|
7541
7821
|
}, {
|
|
7542
7822
|
key: 'changeUrgencyList',
|
|
7543
7823
|
value: function changeUrgencyList(value) {
|
|
@@ -7842,6 +8122,23 @@ var PageHome = function (_React$Component) {
|
|
|
7842
8122
|
)
|
|
7843
8123
|
)
|
|
7844
8124
|
),
|
|
8125
|
+
_react2.default.createElement(
|
|
8126
|
+
'div',
|
|
8127
|
+
{ className: this.state.showOrgSwitcher ? 'approve-org-switch-wrap' : 't-DN' },
|
|
8128
|
+
_react2.default.createElement(
|
|
8129
|
+
_Group2.default.List,
|
|
8130
|
+
null,
|
|
8131
|
+
_react2.default.createElement(_SelectField2.default, {
|
|
8132
|
+
label: '\u5F53\u524D\u7EC4\u7EC7',
|
|
8133
|
+
readOnly: false,
|
|
8134
|
+
options: this.state.approveOrgOptions,
|
|
8135
|
+
placeholder: '\u8BF7\u9009\u62E9',
|
|
8136
|
+
onSelect: this.handleApproveOrgSelect.bind(this),
|
|
8137
|
+
value: this.state.approveOrgSelectValue,
|
|
8138
|
+
multiLine: true
|
|
8139
|
+
})
|
|
8140
|
+
)
|
|
8141
|
+
),
|
|
7845
8142
|
_react2.default.createElement(
|
|
7846
8143
|
_Tab2.default,
|
|
7847
8144
|
{ activeKey: this.state.activeItemIndex == null ? '0' : this.state.activeItemIndex, onChange: this.handleChange.bind(this) },
|