fmui-base 2.3.39 → 2.3.41
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/common/formValidUtil.js +127 -0
- package/lib/form/form.js +2 -1
- package/lib/form_info/formInfo.js +13 -0
- package/lib/process_info/processInfo.js +10 -28
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkCompareRegular = checkCompareRegular;
|
|
7
|
+
exports.isDateTimeValue = isDateTimeValue;
|
|
8
|
+
/**
|
|
9
|
+
* 表单校验工具(与 PC form.runtime.util.api.js compare 逻辑对齐)
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
function isDateTimeLikeValue(value) {
|
|
13
|
+
if (value === null || value === undefined || value === '') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return (/^\d{4}-\d{1,2}-\d{1,2}/.test(String(value).trim())
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function shouldParseAsDateTime(itemType, inputFormat, fieldType, value) {
|
|
21
|
+
if (itemType === 'datetime' || itemType === 'datetimeStep') {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (fieldType === 'date' || inputFormat === 'date') {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return isDateTimeLikeValue(value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function parseCompareValue(value, meta) {
|
|
31
|
+
if (value === null || value === undefined || value === '') {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
var itemType = meta && meta.itemType;
|
|
35
|
+
var inputFormat = meta && meta.inputFormat;
|
|
36
|
+
var fieldType = meta && meta.fieldType;
|
|
37
|
+
if (shouldParseAsDateTime(itemType, inputFormat, fieldType, value)) {
|
|
38
|
+
var time = new Date(String(value).replace(/-/g, '/')).getTime();
|
|
39
|
+
return isNaN(time) ? 0 : time;
|
|
40
|
+
}
|
|
41
|
+
var num = parseFloat(value);
|
|
42
|
+
if (!isNaN(num) && String(value).trim() !== '') {
|
|
43
|
+
return num;
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function getFieldMeta(saveItem, key, mainTblData, index) {
|
|
49
|
+
var row = mainTblData[index] || {};
|
|
50
|
+
var formItem = null;
|
|
51
|
+
if (saveItem && saveItem.length) {
|
|
52
|
+
for (var i = 0; i < saveItem.length; i++) {
|
|
53
|
+
if (saveItem[i].itemCode === key) {
|
|
54
|
+
formItem = saveItem[i];
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
itemType: row.itemType || formItem && formItem.itemType,
|
|
61
|
+
inputFormat: row.inputFormat || formItem && formItem.inputFormat,
|
|
62
|
+
fieldType: row.fieldType || formItem && formItem.fieldType
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function resolveOtherCompareValue(otherId, mainTblName, mainTblData, saveItem) {
|
|
67
|
+
if (!otherId) {
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
if (otherId.indexOf('+') > -1) {
|
|
71
|
+
var plusArr = otherId.split('+');
|
|
72
|
+
var leftVal = resolveOtherCompareValue(plusArr[0], mainTblName, mainTblData, saveItem);
|
|
73
|
+
return eval(leftVal + '+' + plusArr[1]);
|
|
74
|
+
}
|
|
75
|
+
if (otherId.indexOf('-') > -1 && otherId.indexOf('_') > -1) {
|
|
76
|
+
var minusParts = otherId.split('-');
|
|
77
|
+
if (minusParts.length === 2 && /^\d+(\.\d+)?$/.test(minusParts[1])) {
|
|
78
|
+
var baseVal = resolveOtherCompareValue(minusParts[0], mainTblName, mainTblData, saveItem);
|
|
79
|
+
return eval(baseVal + '-' + minusParts[1]);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (otherId.indexOf('*') > -1) {
|
|
83
|
+
var mulArr = otherId.split('*');
|
|
84
|
+
var mulLeft = resolveOtherCompareValue(mulArr[0], mainTblName, mainTblData, saveItem);
|
|
85
|
+
return eval(mulLeft + '*' + mulArr[1]);
|
|
86
|
+
}
|
|
87
|
+
if (otherId.indexOf('/') > -1) {
|
|
88
|
+
var divArr = otherId.split('/');
|
|
89
|
+
var divLeft = resolveOtherCompareValue(divArr[0], mainTblName, mainTblData, saveItem);
|
|
90
|
+
return eval(divLeft + '/' + divArr[1]);
|
|
91
|
+
}
|
|
92
|
+
for (var f = 0; f < mainTblData.length; f++) {
|
|
93
|
+
if (mainTblName + '_' + mainTblData[f].key === otherId) {
|
|
94
|
+
return parseCompareValue(mainTblData[f].value, getFieldMeta(saveItem, mainTblData[f].key, mainTblData, f));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* compare|>|表名_字段名 字段比较校验,失败返回提示,成功返回空字符串
|
|
102
|
+
*/
|
|
103
|
+
function checkCompareRegular(regular, tips, currentValue, currentMeta, mainTblName, mainTblData, saveItem) {
|
|
104
|
+
if (!regular || regular.indexOf('compare') === -1) {
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
107
|
+
var regularArr = regular.split('|');
|
|
108
|
+
if (regularArr.length < 3 || !regularArr[1] || !regularArr[2]) {
|
|
109
|
+
return '';
|
|
110
|
+
}
|
|
111
|
+
var compareMark = regularArr[1];
|
|
112
|
+
var otherUniqueName = regularArr[2];
|
|
113
|
+
var thisValue = parseCompareValue(currentValue, currentMeta);
|
|
114
|
+
var otherValue = resolveOtherCompareValue(otherUniqueName, mainTblName, mainTblData, saveItem);
|
|
115
|
+
try {
|
|
116
|
+
if (eval(thisValue + compareMark + otherValue)) {
|
|
117
|
+
return tips || '';
|
|
118
|
+
}
|
|
119
|
+
} catch (e) {
|
|
120
|
+
return tips || '';
|
|
121
|
+
}
|
|
122
|
+
return '';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function isDateTimeValue(value, meta) {
|
|
126
|
+
return shouldParseAsDateTime(meta && meta.itemType, meta && meta.inputFormat, meta && meta.fieldType, value);
|
|
127
|
+
}
|
package/lib/form/form.js
CHANGED
|
@@ -2368,6 +2368,7 @@ var PageHome = function (_React$Component) {
|
|
|
2368
2368
|
mainTblData[i].inputFormat = itemParam.inputFormat;
|
|
2369
2369
|
mainTblData[i].fieldType = itemParam.fieldType;
|
|
2370
2370
|
mainTblData[i].decimalPlace = itemParam.decimalPlace;
|
|
2371
|
+
mainTblData[i].itemType = itemParam.itemType;
|
|
2371
2372
|
// if(item.showValue){
|
|
2372
2373
|
// value = item.showValue;
|
|
2373
2374
|
// item.showValue = null;
|
|
@@ -4405,7 +4406,7 @@ var PageHome = function (_React$Component) {
|
|
|
4405
4406
|
)
|
|
4406
4407
|
)
|
|
4407
4408
|
),
|
|
4408
|
-
_react2.default.createElement('div', { className: 't-FBH t-PL16 t-fw', dangerouslySetInnerHTML: { __html: t.state.itemParam.value } }),
|
|
4409
|
+
_react2.default.createElement('div', { className: 't-FBH t-PL16 t-fw ueditor-content', dangerouslySetInnerHTML: { __html: t.state.itemParam.value } }),
|
|
4409
4410
|
t.state.itemParam.isVerifySing == "1" ? _react2.default.createElement('i', { className: 'iconfont icon-checked t-PT10', style: { color: 'green' } }) : t.state.itemParam.isVerifySing == "2" ? _react2.default.createElement('i', { className: 'iconfont icon-close t-PT10', style: { color: 'red' } }) : ""
|
|
4410
4411
|
) : _react2.default.createElement(
|
|
4411
4412
|
'div',
|
|
@@ -78,6 +78,8 @@ var _table2 = _interopRequireDefault(_table);
|
|
|
78
78
|
|
|
79
79
|
var _filterEmptySubTblRows = require('../form/filterEmptySubTblRows');
|
|
80
80
|
|
|
81
|
+
var _formValidUtil = require('../common/formValidUtil');
|
|
82
|
+
|
|
81
83
|
var _FlowChart = require('./FlowChart');
|
|
82
84
|
|
|
83
85
|
var _FlowChart2 = _interopRequireDefault(_FlowChart);
|
|
@@ -1091,6 +1093,7 @@ var PageHome = function (_React$Component) {
|
|
|
1091
1093
|
key: 'checkRegularSubmit',
|
|
1092
1094
|
value: function checkRegularSubmit(saveTable, saveItem) {
|
|
1093
1095
|
var mainTblData = saveTable.mainTblData;
|
|
1096
|
+
var mainTblName = saveTable.mainTblName || '';
|
|
1094
1097
|
var subTbl = saveTable.subTbl;
|
|
1095
1098
|
for (var i = 0; i < mainTblData.length; i++) {
|
|
1096
1099
|
var key = mainTblData[i].key;
|
|
@@ -1110,6 +1113,16 @@ var PageHome = function (_React$Component) {
|
|
|
1110
1113
|
if (!s.test(value)) {
|
|
1111
1114
|
return saveItem[j].itemTitle + ':' + tips;
|
|
1112
1115
|
}
|
|
1116
|
+
} else if (regular.indexOf('compare') != -1) {
|
|
1117
|
+
var currentMeta = {
|
|
1118
|
+
itemType: mainTblData[i].itemType || saveItem[j].itemType,
|
|
1119
|
+
inputFormat: mainTblData[i].inputFormat || saveItem[j].inputFormat,
|
|
1120
|
+
fieldType: mainTblData[i].fieldType || saveItem[j].fieldType
|
|
1121
|
+
};
|
|
1122
|
+
var compareMsg = (0, _formValidUtil.checkCompareRegular)(regular, tips, value, currentMeta, mainTblName, mainTblData, saveItem);
|
|
1123
|
+
if (compareMsg) {
|
|
1124
|
+
return saveItem[j].itemTitle + ':' + compareMsg;
|
|
1125
|
+
}
|
|
1113
1126
|
} else {
|
|
1114
1127
|
var extRegex = /^(.+?)(\d+)-(\d+)$/; //判断是否为 *1-2或n1-2等默认属性的形式
|
|
1115
1128
|
var mac = regular.match(extRegex),
|
|
@@ -90,6 +90,8 @@ var _formExtHelper = require('../form/formExtHelper');
|
|
|
90
90
|
|
|
91
91
|
var _filterEmptySubTblRows = require('../form/filterEmptySubTblRows');
|
|
92
92
|
|
|
93
|
+
var _formValidUtil = require('../common/formValidUtil');
|
|
94
|
+
|
|
93
95
|
var _FlowChart = require('./FlowChart');
|
|
94
96
|
|
|
95
97
|
var _FlowChart2 = _interopRequireDefault(_FlowChart);
|
|
@@ -2079,34 +2081,14 @@ var PageHome = function (_React$Component) {
|
|
|
2079
2081
|
return saveItem[j].itemTitle + ':' + tips;
|
|
2080
2082
|
}
|
|
2081
2083
|
} else if (regular.indexOf('compare') != -1) {
|
|
2082
|
-
var
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
if (value != '') {
|
|
2092
|
-
if (mainTblData[i].itemType == 'datetime') {
|
|
2093
|
-
thisValue = new Date(value).getTime();
|
|
2094
|
-
} else {
|
|
2095
|
-
thisValue = value;
|
|
2096
|
-
}
|
|
2097
|
-
}
|
|
2098
|
-
if (mainTblData[f].value != '') {
|
|
2099
|
-
if (mainTblData[f].itemType == 'datetime') {
|
|
2100
|
-
otherValue = new Date(mainTblData[f].value).getTime();
|
|
2101
|
-
} else {
|
|
2102
|
-
otherValue = mainTblData[f].value;
|
|
2103
|
-
}
|
|
2104
|
-
}
|
|
2105
|
-
}
|
|
2106
|
-
}
|
|
2107
|
-
if (eval(thisValue + compareMark + otherValue)) {
|
|
2108
|
-
return saveItem[j].itemTitle + ':' + tips;
|
|
2109
|
-
}
|
|
2084
|
+
var currentMeta = {
|
|
2085
|
+
itemType: mainTblData[i].itemType || saveItem[j].itemType,
|
|
2086
|
+
inputFormat: mainTblData[i].inputFormat || saveItem[j].inputFormat,
|
|
2087
|
+
fieldType: mainTblData[i].fieldType || saveItem[j].fieldType
|
|
2088
|
+
};
|
|
2089
|
+
var compareMsg = (0, _formValidUtil.checkCompareRegular)(regular, tips, value, currentMeta, mainTblName, mainTblData, saveItem);
|
|
2090
|
+
if (compareMsg) {
|
|
2091
|
+
return saveItem[j].itemTitle + ':' + compareMsg;
|
|
2110
2092
|
}
|
|
2111
2093
|
} else {
|
|
2112
2094
|
var extRegex = /^(.+?)(\d+)-(\d+)$/; //判断是否为 *1-2或n1-2等默认属性的形式
|