fmui-base 2.2.95 → 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 CHANGED
@@ -3,6 +3,7 @@
3
3
  ---npm publish
4
4
 
5
5
  ## 更新日志
6
+ - 2.2.96:表单字段关联选人字段关联时可能会出现死循环问题修复
6
7
  - 2.2.95:表单字段关联只读字段必填不需要生效
7
8
  - 2.2.94:流程办理回调时的type不准确问题修复
8
9
  - 2.2.93:表单关联字段重构兼容老版本接口
package/lib/form/form.js CHANGED
@@ -2070,7 +2070,17 @@ var PageHome = function (_React$Component) {
2070
2070
  // this.props.reloadItemParam(itemNew,this.state.itemParam);
2071
2071
  // }
2072
2072
  if (itemParam.itemType == 'popuser') {
2073
- this.refs['selectMember_' + itemParam.key].initSelectData();
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
+ }
2074
2084
  }
2075
2085
  // 静默刷新时仍需同步 mainTblData.required,否则提交校验不生效
2076
2086
  if (silent && this.props.data) {
@@ -3067,6 +3077,21 @@ var PageHome = function (_React$Component) {
3067
3077
  value: function popuserChange(code, newValue, oldValue) {
3068
3078
  console.log("===popuserChange===");
3069
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
+ }
3070
3095
  var userId = "";
3071
3096
  for (var i = 0; i < newValue.length; i++) {
3072
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) {
@@ -1148,7 +1148,7 @@ var PageHome = function (_React$Component) {
1148
1148
 
1149
1149
  }, {
1150
1150
  key: 'refreshAllRelaFieldsByRelaMap',
1151
- value: function refreshAllRelaFieldsByRelaMap(data) {
1151
+ value: function refreshAllRelaFieldsByRelaMap(data, changedUniqueName) {
1152
1152
  var t = this;
1153
1153
  var relaFieldsMap = t.state.formRelaFieldMaps;
1154
1154
  if (!relaFieldsMap) {
@@ -1192,6 +1192,10 @@ var PageHome = function (_React$Component) {
1192
1192
  if (!rules || !rules.length || !t.refs[targetUniqueName]) {
1193
1193
  continue;
1194
1194
  }
1195
+ // 当前变更字段本身不是触发字段时,跳过自身刷新,避免 popuser 等组件重复 init
1196
+ if (changedUniqueName && targetUniqueName === changedUniqueName) {
1197
+ continue;
1198
+ }
1195
1199
  var fieldRef = t.refs[targetUniqueName];
1196
1200
  var skipEditMust = t.isRelaFieldSkipEditMust(targetUniqueName, fieldControll, fieldRef);
1197
1201
  var hideFlag = defaulthideFields.indexOf(targetUniqueName) != -1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.2.95",
3
+ "version": "2.2.96",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",