fmui-base 2.2.94 → 2.2.95

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
@@ -3,6 +3,7 @@
3
3
  ---npm publish
4
4
 
5
5
  ## 更新日志
6
+ - 2.2.95:表单字段关联只读字段必填不需要生效
6
7
  - 2.2.94:流程办理回调时的type不准确问题修复
7
8
  - 2.2.93:表单关联字段重构兼容老版本接口
8
9
  - 2.2.92:选人组件页签用户改成组织
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 (matched) {
1882
- itemParam.required = true;
1883
- } else {
1884
- itemParam.required = false;
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 (matched) {
1888
- itemParam.readOnly = false;
1889
- } else if (nowValue != '') {
1890
- itemParam.readOnly = true;
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
 
package/lib/form/table.js CHANGED
@@ -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
  }, {
@@ -1156,6 +1192,8 @@ var PageHome = function (_React$Component) {
1156
1192
  if (!rules || !rules.length || !t.refs[targetUniqueName]) {
1157
1193
  continue;
1158
1194
  }
1195
+ var fieldRef = t.refs[targetUniqueName];
1196
+ var skipEditMust = t.isRelaFieldSkipEditMust(targetUniqueName, fieldControll, fieldRef);
1159
1197
  var hideFlag = defaulthideFields.indexOf(targetUniqueName) != -1;
1160
1198
  var mustFlag = defaultmustFields.indexOf(targetUniqueName) != -1;
1161
1199
  var editFlag = false;
@@ -1187,7 +1225,7 @@ var PageHome = function (_React$Component) {
1187
1225
  isHidden = false;
1188
1226
  }
1189
1227
  } else if (editType == 'must') {
1190
- if (matched && !hideFlag) {
1228
+ if (!skipEditMust && matched && !hideFlag) {
1191
1229
  required = true;
1192
1230
  mustFlag = true;
1193
1231
  isHidden = false;
@@ -1195,10 +1233,10 @@ var PageHome = function (_React$Component) {
1195
1233
  required = false;
1196
1234
  }
1197
1235
  } else if (editType == 'edit') {
1198
- if (matched && defaultshowFields.indexOf(targetUniqueName) != -1) {
1236
+ if (!skipEditMust && matched && defaultshowFields.indexOf(targetUniqueName) != -1) {
1199
1237
  readOnly = false;
1200
1238
  editFlag = true;
1201
- } else if (!editFlag && defaultshowFields.indexOf(targetUniqueName) != -1 && nowValue != '') {
1239
+ } else if (!skipEditMust && !editFlag && defaultshowFields.indexOf(targetUniqueName) != -1 && nowValue != '') {
1202
1240
  readOnly = true;
1203
1241
  }
1204
1242
  }
@@ -1206,7 +1244,7 @@ var PageHome = function (_React$Component) {
1206
1244
  if (isHidden) {
1207
1245
  t.clearFieldDataValue(data, targetUniqueName);
1208
1246
  }
1209
- var finalRequired = isHidden ? false : required;
1247
+ var finalRequired = isHidden ? false : skipEditMust ? false : required;
1210
1248
  t.syncRelaFieldMetaToData(data, targetUniqueName, { required: finalRequired });
1211
1249
  var paramList = [];
1212
1250
  if (isHidden) {
@@ -1429,7 +1467,7 @@ var PageHome = function (_React$Component) {
1429
1467
  if (hideFlag) {
1430
1468
  relaFieldMap["value"] = false;
1431
1469
  }
1432
- if (defaultshowFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaulthideFields.indexOf(relaFieldTblNameArrayItem) != -1) {
1470
+ if (defaultshowFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaulthideFields.indexOf(relaFieldTblNameArrayItem) != -1 || defaultmustFields.indexOf(relaFieldTblNameArrayItem) != -1) {
1433
1471
  relaFieldMap["value"] = false;
1434
1472
  }
1435
1473
  var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldTblName.split(",");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.2.94",
3
+ "version": "2.2.95",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",