fmui-base 2.2.94 → 2.2.96
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 +59 -9
- package/lib/form/table.js +49 -7
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/form/form.js
CHANGED
|
@@ -1856,6 +1856,8 @@ var PageHome = function (_React$Component) {
|
|
|
1856
1856
|
var formRelaFieldMapsArray = formRelaFieldMaps[itemParam.uniqueName];
|
|
1857
1857
|
var fieldControll = this.props.fieldControll || {};
|
|
1858
1858
|
var defaulthideFields = [];
|
|
1859
|
+
var defaultshowFields = [];
|
|
1860
|
+
var defaultmustFields = [];
|
|
1859
1861
|
if (fieldControll.hiddenFields) {
|
|
1860
1862
|
fieldControll.hiddenFields.split(',').forEach(function (f) {
|
|
1861
1863
|
if (f) {
|
|
@@ -1863,9 +1865,25 @@ var PageHome = function (_React$Component) {
|
|
|
1863
1865
|
}
|
|
1864
1866
|
});
|
|
1865
1867
|
}
|
|
1868
|
+
if (fieldControll.showFields) {
|
|
1869
|
+
fieldControll.showFields.split(',').forEach(function (f) {
|
|
1870
|
+
if (f) {
|
|
1871
|
+
defaultshowFields.push(f);
|
|
1872
|
+
}
|
|
1873
|
+
});
|
|
1874
|
+
}
|
|
1875
|
+
if (fieldControll.mustFields) {
|
|
1876
|
+
fieldControll.mustFields.split(',').forEach(function (f) {
|
|
1877
|
+
if (f) {
|
|
1878
|
+
defaultmustFields.push(f);
|
|
1879
|
+
}
|
|
1880
|
+
});
|
|
1881
|
+
}
|
|
1866
1882
|
if (defaulthideFields.indexOf(itemParam.uniqueName) != -1) {
|
|
1867
1883
|
itemParam.isHidden = true;
|
|
1868
1884
|
}
|
|
1885
|
+
// 流程只读/必填或表单设计只读时,关联编辑/必填不生效
|
|
1886
|
+
var skipEditMust = defaultshowFields.indexOf(itemParam.uniqueName) != -1 || defaultmustFields.indexOf(itemParam.uniqueName) != -1 || itemParam.readOnly === true || this.props.form && this.props.form.readOnly === true;
|
|
1869
1887
|
|
|
1870
1888
|
formRelaFieldMapsArray.forEach(function (rule) {
|
|
1871
1889
|
var nowValue = this.getRelaTriggerFieldValue(rule, data, allForm);
|
|
@@ -1878,16 +1896,20 @@ var PageHome = function (_React$Component) {
|
|
|
1878
1896
|
itemParam.isHidden = false;
|
|
1879
1897
|
}
|
|
1880
1898
|
} else if (editType == 'must') {
|
|
1881
|
-
if (
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1899
|
+
if (!skipEditMust) {
|
|
1900
|
+
if (matched) {
|
|
1901
|
+
itemParam.required = true;
|
|
1902
|
+
} else {
|
|
1903
|
+
itemParam.required = false;
|
|
1904
|
+
}
|
|
1885
1905
|
}
|
|
1886
1906
|
} else if (editType == 'edit') {
|
|
1887
|
-
if (
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1907
|
+
if (!skipEditMust) {
|
|
1908
|
+
if (matched) {
|
|
1909
|
+
itemParam.readOnly = false;
|
|
1910
|
+
} else if (nowValue != '') {
|
|
1911
|
+
itemParam.readOnly = true;
|
|
1912
|
+
}
|
|
1891
1913
|
}
|
|
1892
1914
|
}
|
|
1893
1915
|
}.bind(this));
|
|
@@ -1895,6 +1917,9 @@ var PageHome = function (_React$Component) {
|
|
|
1895
1917
|
if (itemParam.isHidden) {
|
|
1896
1918
|
itemParam.required = false;
|
|
1897
1919
|
}
|
|
1920
|
+
if (skipEditMust) {
|
|
1921
|
+
itemParam.required = false;
|
|
1922
|
+
}
|
|
1898
1923
|
return itemParam;
|
|
1899
1924
|
}
|
|
1900
1925
|
|
|
@@ -2045,7 +2070,17 @@ var PageHome = function (_React$Component) {
|
|
|
2045
2070
|
// this.props.reloadItemParam(itemNew,this.state.itemParam);
|
|
2046
2071
|
// }
|
|
2047
2072
|
if (itemParam.itemType == 'popuser') {
|
|
2048
|
-
|
|
2073
|
+
// 静默关联刷新只改必填/隐藏,不重新 init,避免 initSelectData 触发 onChange 死循环
|
|
2074
|
+
var hasValueUpdate = false;
|
|
2075
|
+
for (var pi = 0; pi < itemNew.length; pi++) {
|
|
2076
|
+
if (itemNew[pi].key === 'value') {
|
|
2077
|
+
hasValueUpdate = true;
|
|
2078
|
+
break;
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
if (hasValueUpdate && !silent) {
|
|
2082
|
+
this.refs['selectMember_' + itemParam.key].initSelectData();
|
|
2083
|
+
}
|
|
2049
2084
|
}
|
|
2050
2085
|
// 静默刷新时仍需同步 mainTblData.required,否则提交校验不生效
|
|
2051
2086
|
if (silent && this.props.data) {
|
|
@@ -3042,6 +3077,21 @@ var PageHome = function (_React$Component) {
|
|
|
3042
3077
|
value: function popuserChange(code, newValue, oldValue) {
|
|
3043
3078
|
console.log("===popuserChange===");
|
|
3044
3079
|
var t = this;
|
|
3080
|
+
var normalizedNew = newValue;
|
|
3081
|
+
if (normalizedNew && normalizedNew.length == 0) {
|
|
3082
|
+
normalizedNew = "";
|
|
3083
|
+
} else if (normalizedNew) {
|
|
3084
|
+
normalizedNew = JSON.stringify(newValue);
|
|
3085
|
+
} else {
|
|
3086
|
+
normalizedNew = "";
|
|
3087
|
+
}
|
|
3088
|
+
var normalizedOld = oldValue;
|
|
3089
|
+
if (normalizedOld && typeof normalizedOld !== 'string') {
|
|
3090
|
+
normalizedOld = JSON.stringify(normalizedOld);
|
|
3091
|
+
}
|
|
3092
|
+
if (normalizedNew === normalizedOld) {
|
|
3093
|
+
return;
|
|
3094
|
+
}
|
|
3045
3095
|
var userId = "";
|
|
3046
3096
|
for (var i = 0; i < newValue.length; i++) {
|
|
3047
3097
|
if (newValue[i] && newValue[i].scopeType == 'user') {
|
package/lib/form/table.js
CHANGED
|
@@ -828,7 +828,7 @@ var PageHome = function (_React$Component) {
|
|
|
828
828
|
t._isRelaFieldRefreshing = true;
|
|
829
829
|
try {
|
|
830
830
|
if (!isSubTrigger) {
|
|
831
|
-
t.refreshAllRelaFieldsByRelaMap(data);
|
|
831
|
+
t.refreshAllRelaFieldsByRelaMap(data, itemParam.uniqueName);
|
|
832
832
|
} else if (formRelaFieldMaps) {
|
|
833
833
|
var formRelaFieldMapsObj = formRelaFieldMaps[itemParam.uniqueName];
|
|
834
834
|
if (formRelaFieldMapsObj && formRelaFieldMapsObj.length > 0) {
|
|
@@ -1098,6 +1098,42 @@ var PageHome = function (_React$Component) {
|
|
|
1098
1098
|
return triggerFieldVal == nowValue || nowValue.split(',').indexOf(triggerFieldVal) != -1;
|
|
1099
1099
|
}
|
|
1100
1100
|
|
|
1101
|
+
// 流程只读/必填或表单设计只读时,关联的编辑/必填不生效(与PC init-readonly-flag / init-notnull-flag 一致)
|
|
1102
|
+
|
|
1103
|
+
}, {
|
|
1104
|
+
key: 'isRelaFieldSkipEditMust',
|
|
1105
|
+
value: function isRelaFieldSkipEditMust(targetUniqueName, fieldControll, fieldRef) {
|
|
1106
|
+
fieldControll = fieldControll || {};
|
|
1107
|
+
var defaultshowFields = [];
|
|
1108
|
+
var defaultmustFields = [];
|
|
1109
|
+
if (fieldControll.showFields) {
|
|
1110
|
+
fieldControll.showFields.split(',').forEach(function (f) {
|
|
1111
|
+
if (f) {
|
|
1112
|
+
defaultshowFields.push(f);
|
|
1113
|
+
}
|
|
1114
|
+
});
|
|
1115
|
+
}
|
|
1116
|
+
if (fieldControll.mustFields) {
|
|
1117
|
+
fieldControll.mustFields.split(',').forEach(function (f) {
|
|
1118
|
+
if (f) {
|
|
1119
|
+
defaultmustFields.push(f);
|
|
1120
|
+
}
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
if (defaultshowFields.indexOf(targetUniqueName) != -1 || defaultmustFields.indexOf(targetUniqueName) != -1) {
|
|
1124
|
+
return true;
|
|
1125
|
+
}
|
|
1126
|
+
if (fieldRef) {
|
|
1127
|
+
if (fieldRef.props && fieldRef.props.form && fieldRef.props.form.readOnly === true) {
|
|
1128
|
+
return true;
|
|
1129
|
+
}
|
|
1130
|
+
if (fieldRef.state && fieldRef.state.itemParam && fieldRef.state.itemParam.readOnly === true) {
|
|
1131
|
+
return true;
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
return false;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1101
1137
|
// 静默刷新关联字段 UI,不触发 change 死循环
|
|
1102
1138
|
|
|
1103
1139
|
}, {
|
|
@@ -1112,7 +1148,7 @@ var PageHome = function (_React$Component) {
|
|
|
1112
1148
|
|
|
1113
1149
|
}, {
|
|
1114
1150
|
key: 'refreshAllRelaFieldsByRelaMap',
|
|
1115
|
-
value: function refreshAllRelaFieldsByRelaMap(data) {
|
|
1151
|
+
value: function refreshAllRelaFieldsByRelaMap(data, changedUniqueName) {
|
|
1116
1152
|
var t = this;
|
|
1117
1153
|
var relaFieldsMap = t.state.formRelaFieldMaps;
|
|
1118
1154
|
if (!relaFieldsMap) {
|
|
@@ -1156,6 +1192,12 @@ var PageHome = function (_React$Component) {
|
|
|
1156
1192
|
if (!rules || !rules.length || !t.refs[targetUniqueName]) {
|
|
1157
1193
|
continue;
|
|
1158
1194
|
}
|
|
1195
|
+
// 当前变更字段本身不是触发字段时,跳过自身刷新,避免 popuser 等组件重复 init
|
|
1196
|
+
if (changedUniqueName && targetUniqueName === changedUniqueName) {
|
|
1197
|
+
continue;
|
|
1198
|
+
}
|
|
1199
|
+
var fieldRef = t.refs[targetUniqueName];
|
|
1200
|
+
var skipEditMust = t.isRelaFieldSkipEditMust(targetUniqueName, fieldControll, fieldRef);
|
|
1159
1201
|
var hideFlag = defaulthideFields.indexOf(targetUniqueName) != -1;
|
|
1160
1202
|
var mustFlag = defaultmustFields.indexOf(targetUniqueName) != -1;
|
|
1161
1203
|
var editFlag = false;
|
|
@@ -1187,7 +1229,7 @@ var PageHome = function (_React$Component) {
|
|
|
1187
1229
|
isHidden = false;
|
|
1188
1230
|
}
|
|
1189
1231
|
} else if (editType == 'must') {
|
|
1190
|
-
if (matched && !hideFlag) {
|
|
1232
|
+
if (!skipEditMust && matched && !hideFlag) {
|
|
1191
1233
|
required = true;
|
|
1192
1234
|
mustFlag = true;
|
|
1193
1235
|
isHidden = false;
|
|
@@ -1195,10 +1237,10 @@ var PageHome = function (_React$Component) {
|
|
|
1195
1237
|
required = false;
|
|
1196
1238
|
}
|
|
1197
1239
|
} else if (editType == 'edit') {
|
|
1198
|
-
if (matched && defaultshowFields.indexOf(targetUniqueName) != -1) {
|
|
1240
|
+
if (!skipEditMust && matched && defaultshowFields.indexOf(targetUniqueName) != -1) {
|
|
1199
1241
|
readOnly = false;
|
|
1200
1242
|
editFlag = true;
|
|
1201
|
-
} else if (!editFlag && defaultshowFields.indexOf(targetUniqueName) != -1 && nowValue != '') {
|
|
1243
|
+
} else if (!skipEditMust && !editFlag && defaultshowFields.indexOf(targetUniqueName) != -1 && nowValue != '') {
|
|
1202
1244
|
readOnly = true;
|
|
1203
1245
|
}
|
|
1204
1246
|
}
|
|
@@ -1206,7 +1248,7 @@ var PageHome = function (_React$Component) {
|
|
|
1206
1248
|
if (isHidden) {
|
|
1207
1249
|
t.clearFieldDataValue(data, targetUniqueName);
|
|
1208
1250
|
}
|
|
1209
|
-
var finalRequired = isHidden ? false : required;
|
|
1251
|
+
var finalRequired = isHidden ? false : skipEditMust ? false : required;
|
|
1210
1252
|
t.syncRelaFieldMetaToData(data, targetUniqueName, { required: finalRequired });
|
|
1211
1253
|
var paramList = [];
|
|
1212
1254
|
if (isHidden) {
|
|
@@ -1429,7 +1471,7 @@ var PageHome = function (_React$Component) {
|
|
|
1429
1471
|
if (hideFlag) {
|
|
1430
1472
|
relaFieldMap["value"] = false;
|
|
1431
1473
|
}
|
|
1432
|
-
if (defaultshowFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaulthideFields.indexOf(relaFieldTblNameArrayItem) != -1) {
|
|
1474
|
+
if (defaultshowFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaulthideFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaultmustFields.indexOf(relaFieldTblNameArrayItem) != -1) {
|
|
1433
1475
|
relaFieldMap["value"] = false;
|
|
1434
1476
|
}
|
|
1435
1477
|
var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldTblName.split(",");
|