fmui-base 2.3.14 → 2.3.16

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,8 @@
3
3
  ---npm publish
4
4
 
5
5
  ## 更新日志
6
+ - 2.3.16:选人组件:常用类型增加用户全选功能
7
+ - 2.3.15:时分字段保存丢失值,子表删除时页面空白
6
8
  - 2.3.14:表单切换组织增加开关
7
9
  - 2.3.13:子表字段带$时计算不生效,表单切换组织时,表单赋值的宏值实时更新
8
10
  - 2.3.12:门户首页grid常用应用部件增加扩展入口调整为页签(一网通办项目需求,临时版本)
package/lib/form/form.js CHANGED
@@ -993,8 +993,21 @@ var PageHome = function (_React$Component) {
993
993
 
994
994
  if (form.dataAttr && typeof form.dataAttr != "undefined") {
995
995
  var dateDisplayFormat = form.dataAttr.dateDisplayFormat;
996
- if (dateDisplayFormat == "STime" || dateFormat == "YMDHM") {
996
+ // 优先按 dateDisplayFormat 识别展示类型;勿用 form.dateFormat==YMDHM 抢先匹配,
997
+ // 否则时分(HourMin)进不了分支,HH:mm 会被下方当作无效值清空
998
+ if (dateDisplayFormat == "HourMin") {
997
999
  dateFormat = "YMDHM";
1000
+ if (value && typeof value === 'string') {
1001
+ var hm = value.trim();
1002
+ // HH:mm / H:mm / HH:mm:ss
1003
+ if (/^\d{1,2}:\d{2}(:\d{2})?$/.test(hm)) {
1004
+ var hmParts = hm.split(':');
1005
+ var hh = hmParts[0].length === 1 ? '0' + hmParts[0] : hmParts[0];
1006
+ var mm = hmParts[1];
1007
+ value = formattedDate + " " + hh + ":" + mm + ":00";
1008
+ }
1009
+ }
1010
+ dateFormatShow = "HourMin";
998
1011
  } else if (dateDisplayFormat == "YearMon") {
999
1012
  dateFormat = "YM";
1000
1013
  } else if (dateDisplayFormat == "MonthDay") {
@@ -1003,12 +1016,6 @@ var PageHome = function (_React$Component) {
1003
1016
  dateFormat = "Y";
1004
1017
  } else if (dateDisplayFormat == "ODate") {
1005
1018
  dateFormat = "YMD";
1006
- } else if (dateDisplayFormat == "HourMin") {
1007
- dateFormat = "YMDHM";
1008
- if (value && value.length == 5) {
1009
- value = formattedDate + " " + value + ":00";
1010
- }
1011
- dateFormatShow = "HourMin";
1012
1019
  } else if (dateDisplayFormat == "zhDate") {
1013
1020
  dateFormat = "YMD";
1014
1021
  dateFormatShow = "zhDate";
@@ -1021,6 +1028,8 @@ var PageHome = function (_React$Component) {
1021
1028
  } else if (dateDisplayFormat == "DateTimeInterval") {
1022
1029
  dateFormat = "DateInterval";
1023
1030
  dateFormatShow = "dayWithTime";
1031
+ } else if (dateDisplayFormat == "STime" || dateFormat == "YMDHM") {
1032
+ dateFormat = "YMDHM";
1024
1033
  } else {
1025
1034
  dateFormat = "YMDHM";
1026
1035
  }
@@ -1112,6 +1121,11 @@ var PageHome = function (_React$Component) {
1112
1121
  value = new Date(value).getTime();
1113
1122
  } else if (value && typeof value === 'string' && value.length == 7 && dateFormat == "YM") {
1114
1123
  value = new Date(value).getTime();
1124
+ } else if (dateFormatShow == 'HourMin' && value && typeof value === 'string' && /^\d{1,2}:\d{2}(:\d{2})?$/.test(value.trim())) {
1125
+ // 时分兜底:仍为 HH:mm 时拼当前日期再转时间戳,避免被清空
1126
+ var hmFallback = value.trim().split(':');
1127
+ var hhFallback = hmFallback[0].length === 1 ? '0' + hmFallback[0] : hmFallback[0];
1128
+ value = new Date((formattedDate + " " + hhFallback + ":" + hmFallback[1] + ":00").replace(/-/g, "/")).getTime();
1115
1129
  } else {
1116
1130
  for (var i = 0; i < mainTblData.length; i++) {
1117
1131
  if (itemParam.key == mainTblData[i].key) {
@@ -2069,26 +2083,32 @@ var PageHome = function (_React$Component) {
2069
2083
  }
2070
2084
  } else if (itemParam.itemType == 'checkbox') {
2071
2085
  var selectOptions = itemParam.selectOptions;
2072
- var valueHas = false; //判断传过来的值是否有匹配
2073
2086
  var value = itemNew[i].value;
2074
- var valueArray = value.split(",");
2075
- selectOptions.map(function (item1) {
2076
- var isHas = false;
2077
- valueArray.map(function (item2) {
2078
- if (item1.value == item2) {
2079
- item1.checked = true;
2080
- selectText += item1.text + ',';
2081
- isHas = true;
2087
+ // 子表删除后刷新时 value 可能为 undefined/null,直接 split 会报错
2088
+ var valueArray = value == null || value === '' ? [] : String(value).split(",");
2089
+ if (itemParam.isinput == '1') {
2090
+ // 多选可输入走 SelectInput,无 checkbox_ ref
2091
+ itemParam[key] = value == null ? '' : value;
2092
+ } else {
2093
+ selectOptions.map(function (item1) {
2094
+ var isHas = false;
2095
+ valueArray.map(function (item2) {
2096
+ if (item1.value == item2) {
2097
+ item1.checked = true;
2098
+ selectText += item1.text + ',';
2099
+ isHas = true;
2100
+ }
2101
+ });
2102
+ if (!isHas) {
2103
+ item1.checked = false;
2082
2104
  }
2083
2105
  });
2084
- if (!isHas) {
2085
- item1.checked = false;
2106
+ if (selectText != '') {
2107
+ selectText = selectText.substring(0, selectText.length - 1);
2086
2108
  }
2087
- });
2088
- if (selectText != '') {
2089
- selectText = selectText.substring(0, selectText.length - 1);
2109
+ itemParam[key] = value == null ? '' : value;
2110
+ checkboxValueHas = true;
2090
2111
  }
2091
- checkboxValueHas = true;
2092
2112
  } else if (itemParam.itemType == 'datetime') {
2093
2113
  itemParam[key] = itemNew[i].value;
2094
2114
  if (this.props.data) {
@@ -2114,9 +2134,12 @@ var PageHome = function (_React$Component) {
2114
2134
  itemParam: Object.assign({}, itemParam)
2115
2135
  }, function () {
2116
2136
  if (checkboxValueHas) {
2117
- this.refs["checkbox_" + itemParam.tableName + "_" + itemParam.key].setState({
2118
- selectedText: selectText
2119
- });
2137
+ var checkboxRef = this.refs["checkbox_" + itemParam.tableName + "_" + itemParam.key];
2138
+ if (checkboxRef && typeof checkboxRef.setState === 'function') {
2139
+ checkboxRef.setState({
2140
+ selectedText: selectText
2141
+ });
2142
+ }
2120
2143
  }
2121
2144
  // if(dataType=='sub'){
2122
2145
  // this.props.reloadItemParam(itemNew,this.state.itemParam);
@@ -2847,8 +2870,21 @@ var PageHome = function (_React$Component) {
2847
2870
  if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value != null && value.value != null) {
2848
2871
  raw = value.value;
2849
2872
  }
2873
+ // 时分:只读回显已是 HH:mm,new Date('HH:mm') 无效会导致提交值被清空
2874
+ if (dateFormatShow === 'HourMin' && typeof raw === 'string') {
2875
+ var hmStr = raw.trim();
2876
+ if (/^\d{1,2}:\d{2}(:\d{2})?$/.test(hmStr)) {
2877
+ var p = hmStr.split(':');
2878
+ var h = p[0].length === 1 ? '0' + p[0] : p[0];
2879
+ return h + ':' + p[1];
2880
+ }
2881
+ }
2850
2882
  if (typeof raw === 'string') {
2851
2883
  if (raw.length >= 10 && raw.indexOf('-') >= 0) {
2884
+ // 时分字段提交仍只需 HH:mm
2885
+ if (dateFormatShow === 'HourMin') {
2886
+ return this.dateFormat(new Date(raw.replace(/-/g, '/')).getTime(), dateFormat, dateFormatShow) || '';
2887
+ }
2852
2888
  return raw.substring(0, 19);
2853
2889
  }
2854
2890
  if (/^\d+$/.test(raw)) {
@@ -875,8 +875,11 @@ var PageHome = function (_React$Component) {
875
875
  for (var n = 0; n < tblData.length; n++) {
876
876
  var key = tblData[n].key;
877
877
  var value = tblData[n].value;
878
+ if (value == null) {
879
+ value = '';
880
+ }
878
881
  if (this.refs[tblName + '_' + key + '_' + m]) {
879
- this.refs[tblName + '_' + key + '_' + m].reloadItemParam([{ 'key': 'value', 'value': value }]);
882
+ this.refs[tblName + '_' + key + '_' + m].reloadItemParam([{ 'key': 'value', 'value': value }], { silent: true });
880
883
  }
881
884
  }
882
885
  }