fmui-base 2.2.89 → 2.2.90

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.90:表单时间字段偶发保存成时间戳
6
7
  - 2.2.89:表单子表支持一行多列显示,并支持扩展
7
8
  - 2.2.88:表单关联字段重构
8
9
  - 2.2.87:选人组件添加隐藏页签,增加业务建模表单组件
package/lib/form/form.js CHANGED
@@ -7,6 +7,8 @@ exports.default = undefined;
7
7
 
8
8
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
9
9
 
10
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
11
+
10
12
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
11
13
 
12
14
  var _react = require('react');
@@ -1101,12 +1103,14 @@ var PageHome = function (_React$Component) {
1101
1103
  item.value = dateStr;
1102
1104
  }
1103
1105
  });
1104
- } else if (value && value.length >= 10) {
1106
+ } else if (typeof value === 'number' && !isNaN(value)) {
1107
+ // 接口偶发返回时间戳:保留数字供组件展示,提交值在下方 sync 时格式化
1108
+ } else if (value && typeof value === 'string' && value.length >= 10) {
1105
1109
  value = value.substring(0, 19);
1106
1110
  value = new Date(value.replace(/-/g, "/")).getTime();
1107
- } else if (value && value.length == 4 && dateFormat == "Y") {
1111
+ } else if (value && typeof value === 'string' && value.length == 4 && dateFormat == "Y") {
1108
1112
  value = new Date(value).getTime();
1109
- } else if (value && value.length == 7 && dateFormat == "YM") {
1113
+ } else if (value && typeof value === 'string' && value.length == 7 && dateFormat == "YM") {
1110
1114
  value = new Date(value).getTime();
1111
1115
  } else {
1112
1116
  for (var i = 0; i < mainTblData.length; i++) {
@@ -1504,9 +1508,13 @@ var PageHome = function (_React$Component) {
1504
1508
  itemType = itemParam.itemType;
1505
1509
  }
1506
1510
  if (itemType == 'text' || itemType == 'textarea' || itemType == 'datetime') {
1511
+ var syncValue = value;
1512
+ if (itemType == 'datetime') {
1513
+ syncValue = t.getDatetimeSaveValue(value, itemParam.dateFormat, itemParam.dateFormatShow);
1514
+ }
1507
1515
  for (var i = 0; i < data.mainTblData.length; i++) {
1508
1516
  if (itemParam.key == data.mainTblData[i].key) {
1509
- data.mainTblData[i].value = value;
1517
+ data.mainTblData[i].value = syncValue;
1510
1518
  }
1511
1519
  }
1512
1520
  }
@@ -2008,6 +2016,12 @@ var PageHome = function (_React$Component) {
2008
2016
  selectText = selectText.substring(0, selectText.length - 1);
2009
2017
  }
2010
2018
  checkboxValueHas = true;
2019
+ } else if (itemParam.itemType == 'datetime') {
2020
+ itemParam[key] = itemNew[i].value;
2021
+ if (this.props.data) {
2022
+ var saveVal = this.getDatetimeSaveValue(itemNew[i].value, itemParam.dateFormat, itemParam.dateFormatShow);
2023
+ this.editData(itemParam.key, saveVal, this.props.data);
2024
+ }
2011
2025
  } else {
2012
2026
  itemParam[key] = itemNew[i].value;
2013
2027
  }
@@ -2684,6 +2698,45 @@ var PageHome = function (_React$Component) {
2684
2698
  return weekdays[dayIndex];
2685
2699
  }
2686
2700
 
2701
+ // 时间字段提交值:统一格式化为字符串,避免 mainTblData 存入时间戳
2702
+
2703
+ }, {
2704
+ key: 'getDatetimeSaveValue',
2705
+ value: function getDatetimeSaveValue(value, dateFormat, dateFormatShow) {
2706
+ if (value == null || value === '') {
2707
+ return '';
2708
+ }
2709
+ if (dateFormat === 'DateInterval') {
2710
+ if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.startDate != null && value.endDate != null) {
2711
+ return this.dateFormat(value, dateFormat, dateFormatShow) || '';
2712
+ }
2713
+ if (typeof value === 'string' && value.indexOf(' - ') >= 0) {
2714
+ return value;
2715
+ }
2716
+ return '';
2717
+ }
2718
+ var raw = value;
2719
+ if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value != null && value.value != null) {
2720
+ raw = value.value;
2721
+ }
2722
+ if (typeof raw === 'string') {
2723
+ if (raw.length >= 10 && raw.indexOf('-') >= 0) {
2724
+ return raw.substring(0, 19);
2725
+ }
2726
+ if (/^\d+$/.test(raw)) {
2727
+ raw = parseInt(raw, 10);
2728
+ }
2729
+ }
2730
+ if (typeof raw === 'number' && !isNaN(raw)) {
2731
+ return this.dateFormat(raw, dateFormat, dateFormatShow) || '';
2732
+ }
2733
+ var d = new Date(raw);
2734
+ if (!isNaN(d.getTime())) {
2735
+ return this.dateFormat(d.getTime(), dateFormat, dateFormatShow) || '';
2736
+ }
2737
+ return '';
2738
+ }
2739
+
2687
2740
  //时间
2688
2741
 
2689
2742
  }, {
@@ -2695,18 +2748,27 @@ var PageHome = function (_React$Component) {
2695
2748
  var itemParam = this.state.itemParam;
2696
2749
  var dateFormat = itemParam.dateFormat;
2697
2750
  var dateFormatShow = itemParam.dateFormatShow;
2751
+ var dateStr = '';
2698
2752
  if (dateFormat == "DateInterval") {
2699
- if (value.startDate && value.endDate) {
2700
- var dateStr = this.dateFormat(value, dateFormat, dateFormatShow);
2701
- data = this.editData(code, dateStr, data);
2753
+ if (value && value.startDate && value.endDate) {
2754
+ dateStr = t.getDatetimeSaveValue(value, dateFormat, dateFormatShow);
2755
+ data = t.editData(code, dateStr, data);
2702
2756
  }
2703
2757
  } else {
2704
- var dateStr = this.dateFormat(value.value, dateFormat);
2705
- if (dateFormat == "YMDT") {
2706
- //年月日,上下午修改数据
2707
- value.value = new Date(dateStr.replace(/-/g, "/")).getTime();
2758
+ var pickerVal = value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.value != null ? value : { value: value };
2759
+ dateStr = t.getDatetimeSaveValue(pickerVal, dateFormat, dateFormatShow);
2760
+ data = t.editData(code, dateStr, data);
2761
+ if (dateFormat == "YMDT" && dateStr) {
2762
+ pickerVal.value = new Date(dateStr.replace(/-/g, "/")).getTime();
2763
+ } else if (typeof pickerVal.value === 'string' && /^\d+$/.test(pickerVal.value)) {
2764
+ pickerVal.value = parseInt(pickerVal.value, 10);
2765
+ } else if (dateStr && (typeof pickerVal.value !== 'number' || isNaN(pickerVal.value))) {
2766
+ var ts = new Date(dateStr.replace(/-/g, '/')).getTime();
2767
+ if (!isNaN(ts)) {
2768
+ pickerVal.value = ts;
2769
+ }
2708
2770
  }
2709
- data = this.editData(code, dateStr, data);
2771
+ value = pickerVal;
2710
2772
  }
2711
2773
 
2712
2774
  itemParam.value = value;
@@ -2791,7 +2853,7 @@ var PageHome = function (_React$Component) {
2791
2853
  var itemParam = this.state.itemParam;
2792
2854
  var dateFormat = itemParam.dateFormat;
2793
2855
 
2794
- var dateStr = this.dateFormat(value.value, dateFormat);
2856
+ var dateStr = this.getDatetimeSaveValue(value, dateFormat);
2795
2857
  data = this.editData(code, dateStr, data);
2796
2858
  itemParam.value = value;
2797
2859
  itemParam.selectValue = dateStr;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.2.89",
3
+ "version": "2.2.90",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",