fmui-base 2.3.60 → 2.3.61
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
CHANGED
|
@@ -244,7 +244,12 @@ function cloneAndFilterEmptySubTblRows(editFormData) {
|
|
|
244
244
|
try {
|
|
245
245
|
data = JSON.parse(JSON.stringify(editFormData));
|
|
246
246
|
} catch (e) {
|
|
247
|
-
|
|
247
|
+
// 深拷贝失败时仍做顶层清洗,避免新建把 formItem/optlock 原样提交
|
|
248
|
+
try {
|
|
249
|
+
data = Object.assign({}, editFormData);
|
|
250
|
+
} catch (e2) {
|
|
251
|
+
return slimFormDataForSubmit(editFormData);
|
|
252
|
+
}
|
|
248
253
|
}
|
|
249
254
|
var subTbl = data.subTbl || [];
|
|
250
255
|
for (var i = 0; i < subTbl.length; i++) {
|
|
@@ -1615,11 +1615,17 @@ var PageHome = function (_React$Component) {
|
|
|
1615
1615
|
t._pendingForceOptlock = null;
|
|
1616
1616
|
forceOptlock = true;
|
|
1617
1617
|
}
|
|
1618
|
-
// 无有效主表主键时不缓存 optlock
|
|
1619
|
-
|
|
1618
|
+
// 无有效主表主键时不缓存 optlock,避免发起/新建误传版本号。
|
|
1619
|
+
// 仅认 formData.dataId(提交真正用的主键);不要用 businessKey 单独保留版本号,否则会顶栏带 optlock、formData 无 dataId 被后端拦。
|
|
1620
|
+
if (!forceOptlock && !(0, _filterEmptySubTblRows.isValidFormDataId)(formData && formData.dataId)) {
|
|
1620
1621
|
var contentDataId = content && (content.dataId || content.businessKey);
|
|
1621
|
-
if (
|
|
1622
|
+
if ((0, _filterEmptySubTblRows.isValidFormDataId)(contentDataId)) {
|
|
1623
|
+
formData.dataId = contentDataId;
|
|
1624
|
+
} else {
|
|
1622
1625
|
resolvedOptlock = '';
|
|
1626
|
+
if (formData && formData.hasOwnProperty('optlock')) {
|
|
1627
|
+
delete formData.optlock;
|
|
1628
|
+
}
|
|
1623
1629
|
}
|
|
1624
1630
|
}
|
|
1625
1631
|
t.setState({
|
|
@@ -2720,12 +2726,12 @@ var PageHome = function (_React$Component) {
|
|
|
2720
2726
|
reminderContent: _this2.state.reminderContent,
|
|
2721
2727
|
processInstanceId: _this2.state.processInstanceId,
|
|
2722
2728
|
permissionCode: _this2.state.permissionCode
|
|
2723
|
-
|
|
2724
|
-
if (t.state.module === 'approve'
|
|
2725
|
-
|
|
2726
|
-
var optlockDataId = dataId || sendData && sendData.dataId || t.state.dataId;
|
|
2727
|
-
if ((0, _filterEmptySubTblRows.isValidFormDataId)(optlockDataId)) {
|
|
2729
|
+
// 仅当提交 formData 有真实主键时带 optlock(勿用 state.dataId 兜底,新建易误传)
|
|
2730
|
+
};if (t.state.module === 'approve') {
|
|
2731
|
+
if ((0, _filterEmptySubTblRows.isValidFormDataId)(sendData && sendData.dataId) && t.state.formDataOptlock !== '' && t.state.formDataOptlock != null) {
|
|
2728
2732
|
param.optlock = t.state.formDataOptlock;
|
|
2733
|
+
} else if (param.optlock !== undefined) {
|
|
2734
|
+
delete param.optlock;
|
|
2729
2735
|
}
|
|
2730
2736
|
}
|
|
2731
2737
|
var dealActionName = "";
|
|
@@ -5762,6 +5768,67 @@ var PageHome = function (_React$Component) {
|
|
|
5762
5768
|
_Toast2.default.show({ type: 'error', content: '刷新表单失败,请手动刷新页面' });
|
|
5763
5769
|
});
|
|
5764
5770
|
}
|
|
5771
|
+
|
|
5772
|
+
/**
|
|
5773
|
+
* sendFlow 提交前清洗 optlock:
|
|
5774
|
+
* - 以 formData.dataId 为准(再 slim 一次)
|
|
5775
|
+
* - 无有效主键时删除顶栏 optlock,并去掉 formData 内 optlock
|
|
5776
|
+
* - 勿用 state.dataId 兜底(新建场景易误传 0)
|
|
5777
|
+
*/
|
|
5778
|
+
|
|
5779
|
+
}, {
|
|
5780
|
+
key: 'sanitizeSendFlowOptlockParam',
|
|
5781
|
+
value: function sanitizeSendFlowOptlockParam(param) {
|
|
5782
|
+
var t = this;
|
|
5783
|
+
if (!param || t.state.module !== 'approve') {
|
|
5784
|
+
return;
|
|
5785
|
+
}
|
|
5786
|
+
var fd = null;
|
|
5787
|
+
try {
|
|
5788
|
+
if (param.formData) {
|
|
5789
|
+
fd = typeof param.formData === 'string' ? JSON.parse(param.formData) : param.formData;
|
|
5790
|
+
fd = (0, _filterEmptySubTblRows.cloneAndFilterEmptySubTblRows)(fd) || fd;
|
|
5791
|
+
}
|
|
5792
|
+
} catch (e1) {
|
|
5793
|
+
fd = null;
|
|
5794
|
+
}
|
|
5795
|
+
var payloadDataId = '';
|
|
5796
|
+
if (fd && (0, _filterEmptySubTblRows.isValidFormDataId)(fd.dataId)) {
|
|
5797
|
+
payloadDataId = fd.dataId;
|
|
5798
|
+
} else if ((0, _filterEmptySubTblRows.isValidFormDataId)(param.dataId)) {
|
|
5799
|
+
payloadDataId = param.dataId;
|
|
5800
|
+
}
|
|
5801
|
+
if (!(0, _filterEmptySubTblRows.isValidFormDataId)(payloadDataId)) {
|
|
5802
|
+
delete param.optlock;
|
|
5803
|
+
if (fd) {
|
|
5804
|
+
fd.dataId = '';
|
|
5805
|
+
if (fd.hasOwnProperty('optlock')) {
|
|
5806
|
+
delete fd.optlock;
|
|
5807
|
+
}
|
|
5808
|
+
try {
|
|
5809
|
+
param.formData = JSON.stringify(fd);
|
|
5810
|
+
} catch (e2) {}
|
|
5811
|
+
}
|
|
5812
|
+
return;
|
|
5813
|
+
}
|
|
5814
|
+
if (t.state.formDataOptlock !== '' && t.state.formDataOptlock != null && typeof t.state.formDataOptlock !== 'undefined') {
|
|
5815
|
+
param.optlock = t.state.formDataOptlock;
|
|
5816
|
+
if (fd) {
|
|
5817
|
+
fd.optlock = t.state.formDataOptlock;
|
|
5818
|
+
try {
|
|
5819
|
+
param.formData = JSON.stringify(fd);
|
|
5820
|
+
} catch (e3) {}
|
|
5821
|
+
}
|
|
5822
|
+
} else {
|
|
5823
|
+
delete param.optlock;
|
|
5824
|
+
if (fd && fd.hasOwnProperty('optlock')) {
|
|
5825
|
+
delete fd.optlock;
|
|
5826
|
+
try {
|
|
5827
|
+
param.formData = JSON.stringify(fd);
|
|
5828
|
+
} catch (e4) {}
|
|
5829
|
+
}
|
|
5830
|
+
}
|
|
5831
|
+
}
|
|
5765
5832
|
}, {
|
|
5766
5833
|
key: 'sendFlowFuc',
|
|
5767
5834
|
value: function sendFlowFuc(param) {
|
|
@@ -5828,23 +5895,8 @@ var PageHome = function (_React$Component) {
|
|
|
5828
5895
|
// param.commentbizSn=commentbizSn;
|
|
5829
5896
|
// }
|
|
5830
5897
|
param.commentbizSn = commentbizSn;
|
|
5831
|
-
|
|
5832
|
-
|
|
5833
|
-
var sendOptlockDataId = param.dataId || t.state.dataId;
|
|
5834
|
-
try {
|
|
5835
|
-
if ((!sendOptlockDataId || !(0, _filterEmptySubTblRows.isValidFormDataId)(sendOptlockDataId)) && param.formData) {
|
|
5836
|
-
var parsedFd = typeof param.formData === 'string' ? JSON.parse(param.formData) : param.formData;
|
|
5837
|
-
if (parsedFd && (0, _filterEmptySubTblRows.isValidFormDataId)(parsedFd.dataId)) {
|
|
5838
|
-
sendOptlockDataId = parsedFd.dataId;
|
|
5839
|
-
}
|
|
5840
|
-
}
|
|
5841
|
-
} catch (eOpt) {}
|
|
5842
|
-
if ((0, _filterEmptySubTblRows.isValidFormDataId)(sendOptlockDataId)) {
|
|
5843
|
-
param.optlock = t.state.formDataOptlock;
|
|
5844
|
-
} else if (param.optlock !== undefined) {
|
|
5845
|
-
delete param.optlock;
|
|
5846
|
-
}
|
|
5847
|
-
}
|
|
5898
|
+
// 提交前统一清洗:新建无主键绝不带 optlock(含 getNextActivity 残留)
|
|
5899
|
+
t.sanitizeSendFlowOptlockParam(param);
|
|
5848
5900
|
|
|
5849
5901
|
var db = _db2.default;
|
|
5850
5902
|
db.FlowModuleAPI.sendFlow(param).then(function (content) {
|