fmui-base 2.0.25 → 2.0.27
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/form/form.js +28 -0
- package/lib/form/table.js +23 -17
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/form/form.js
CHANGED
|
@@ -625,6 +625,9 @@ var PageHome = function (_React$Component) {
|
|
|
625
625
|
var calculateExp = form.calculateExp; //计算公式
|
|
626
626
|
if (calculateExp) {
|
|
627
627
|
var fieldArray = this.getFieldArray(calculateExp);
|
|
628
|
+
if (!value) {
|
|
629
|
+
value = this.dealwithCalculate(calculateExp, fieldArray, form, allForm);
|
|
630
|
+
}
|
|
628
631
|
for (var i = 0; i < fieldArray.length; i++) {
|
|
629
632
|
var calculateExpValue;
|
|
630
633
|
if (calculateExpList) {
|
|
@@ -1379,6 +1382,31 @@ var PageHome = function (_React$Component) {
|
|
|
1379
1382
|
}
|
|
1380
1383
|
}
|
|
1381
1384
|
|
|
1385
|
+
//处理计算
|
|
1386
|
+
|
|
1387
|
+
}, {
|
|
1388
|
+
key: 'dealwithCalculate',
|
|
1389
|
+
value: function dealwithCalculate(calculateExp, fieldArray, formItem, allForm) {
|
|
1390
|
+
for (var j = 0; j < fieldArray.length; j++) {
|
|
1391
|
+
var fieldArrayItem = fieldArray[j];
|
|
1392
|
+
var fieldArrayItemValue = "";
|
|
1393
|
+
for (var i = 0; i < allForm.item.length; i++) {
|
|
1394
|
+
if (fieldArrayItem == allForm.item[i].uniqueName) {
|
|
1395
|
+
fieldArrayItemValue = allForm.item[i].defaultValue;
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
calculateExp = calculateExp.replace(new RegExp("\\[" + fieldArrayItem + "\\]", "g"), "(" + fieldArrayItemValue + ")");
|
|
1399
|
+
}
|
|
1400
|
+
calculateExp = calculateExp.replace(new RegExp("rmb\\(", "g"), 'calculate.rmb(');
|
|
1401
|
+
var res = "";
|
|
1402
|
+
try {
|
|
1403
|
+
res = eval(calculateExp);
|
|
1404
|
+
} catch (e) {
|
|
1405
|
+
res = '';
|
|
1406
|
+
}
|
|
1407
|
+
return res;
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1382
1410
|
//级联关联字段初始化
|
|
1383
1411
|
|
|
1384
1412
|
}, {
|
package/lib/form/table.js
CHANGED
|
@@ -994,15 +994,17 @@ var PageHome = function (_React$Component) {
|
|
|
994
994
|
decimalPlace = item.decimalPlace;
|
|
995
995
|
}
|
|
996
996
|
});
|
|
997
|
-
if (
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
if (fieldArray.length == 0) {
|
|
1001
|
-
var aDP = this.getActualDecimalPlace(exp);
|
|
1002
|
-
res = res.toFixed(aDP) + '';
|
|
997
|
+
if (exp.indexOf("differHalfDate") < 0) {
|
|
998
|
+
if (fieldType == 'int' || fieldType == 'float') {
|
|
999
|
+
res = Number(res).toFixed(decimalPlace) + '';
|
|
1003
1000
|
} else {
|
|
1004
|
-
|
|
1005
|
-
|
|
1001
|
+
if (fieldArray.length == 0) {
|
|
1002
|
+
var aDP = this.getActualDecimalPlace(exp);
|
|
1003
|
+
res = res.toFixed(aDP) + '';
|
|
1004
|
+
} else {
|
|
1005
|
+
var maxDP = this.getMaxDecimalPlace(fieldItemArray); //获取参与计算的字段中 最长的小数位
|
|
1006
|
+
res = res.toFixed(maxDP) + '';
|
|
1007
|
+
}
|
|
1006
1008
|
}
|
|
1007
1009
|
}
|
|
1008
1010
|
}
|
|
@@ -1074,7 +1076,8 @@ var PageHome = function (_React$Component) {
|
|
|
1074
1076
|
//当为时间时且有differDate或者differHour函数
|
|
1075
1077
|
var differDateRegExp = new RegExp("differDate\\(", "g");
|
|
1076
1078
|
var differHourRegExp = new RegExp("differHour\\(", "g");
|
|
1077
|
-
|
|
1079
|
+
var differHalfDateRegExp = new RegExp("differHalfDate\\(", "g");
|
|
1080
|
+
if (exp.match(differDateRegExp) || exp.match(differHourRegExp) || exp.match(differHalfDateRegExp)) {
|
|
1078
1081
|
//当有differDate函数
|
|
1079
1082
|
if (typeof filedItemValue == 'undefined' || filedItemValue == "" || filedItemValue == null) {
|
|
1080
1083
|
//filedItemValue = 0;
|
|
@@ -1107,6 +1110,7 @@ var PageHome = function (_React$Component) {
|
|
|
1107
1110
|
exp = exp.replace(new RegExp("rmb\\(", "g"), 'calculate.rmb(');
|
|
1108
1111
|
exp = exp.replace(new RegExp("differDate\\(", "g"), 'calculate.differDate(');
|
|
1109
1112
|
exp = exp.replace(new RegExp("differHour\\(", "g"), 'calculate.differHour(');
|
|
1113
|
+
exp = exp.replace(new RegExp("differHalfDate\\(", "g"), 'calculate.differHalfDate(');
|
|
1110
1114
|
try {
|
|
1111
1115
|
var res = eval(exp);
|
|
1112
1116
|
} catch (e) {
|
|
@@ -1137,15 +1141,17 @@ var PageHome = function (_React$Component) {
|
|
|
1137
1141
|
}
|
|
1138
1142
|
});
|
|
1139
1143
|
|
|
1140
|
-
if (
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
if (fieldArray.length == 0) {
|
|
1144
|
-
var aDP = getActualDecimalPlace(exp);
|
|
1145
|
-
res = res.toFixed(aDP) + '';
|
|
1144
|
+
if (exp.indexOf("differHalfDate") < 0) {
|
|
1145
|
+
if (fieldType == 'int' || fieldType == 'float') {
|
|
1146
|
+
res = Number(res).toFixed(decimalPlace) + '';
|
|
1146
1147
|
} else {
|
|
1147
|
-
|
|
1148
|
-
|
|
1148
|
+
if (fieldArray.length == 0) {
|
|
1149
|
+
var aDP = getActualDecimalPlace(exp);
|
|
1150
|
+
res = res.toFixed(aDP) + '';
|
|
1151
|
+
} else {
|
|
1152
|
+
var maxDP = getMaxDecimalPlace(fieldItemArray); //获取参与计算的字段中 最长的小数位
|
|
1153
|
+
res = res.toFixed(maxDP) + '';
|
|
1154
|
+
}
|
|
1149
1155
|
}
|
|
1150
1156
|
}
|
|
1151
1157
|
}
|