fmui-base 2.3.28 → 2.3.30
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 +82 -6
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/form/form.js
CHANGED
|
@@ -367,6 +367,7 @@ var PageHome = function (_React$Component) {
|
|
|
367
367
|
var subTbl = data.subTbl; //子表
|
|
368
368
|
var readOnly = false;
|
|
369
369
|
var value = '';
|
|
370
|
+
var signPicSaveValue = null; //当前用户签名落库值(xxx_sinPic),与展示 URL 分离
|
|
370
371
|
var fuzhiFields = '';
|
|
371
372
|
console.log("loadComponet===");
|
|
372
373
|
if (key != "") {
|
|
@@ -707,12 +708,30 @@ var PageHome = function (_React$Component) {
|
|
|
707
708
|
value = form.defaultValue;
|
|
708
709
|
}
|
|
709
710
|
}
|
|
710
|
-
|
|
711
|
-
|
|
711
|
+
// 当前用户签名:展示用预览 URL,落库必须保留 xxx_sinPic(与 PC TextProcessor 一致)
|
|
712
|
+
if (itemParam.dataAttr && itemParam.dataAttr.dataSrc == '2' && itemParam.dataAttr.fromMacro && itemParam.dataAttr.fromMacro.value == 'currentUserSignPic') {
|
|
712
713
|
if (value) {
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
714
|
+
var rawSignVal = value + '';
|
|
715
|
+
var signFid = '';
|
|
716
|
+
if (rawSignVal.indexOf('_sinPic') > -1) {
|
|
717
|
+
signFid = rawSignVal.substring(0, rawSignVal.indexOf('_sinPic'));
|
|
718
|
+
signPicSaveValue = rawSignVal;
|
|
719
|
+
} else if (rawSignVal.indexOf('fid=') > -1) {
|
|
720
|
+
// 历史脏数据:曾把预览 URL 写进业务表,提交时纠正回 xxx_sinPic
|
|
721
|
+
var fidMatch = rawSignVal.match(/[?&]fid=([^&]+)/);
|
|
722
|
+
signFid = fidMatch ? decodeURIComponent(fidMatch[1]) : '';
|
|
723
|
+
if (signFid) {
|
|
724
|
+
signPicSaveValue = signFid + '_sinPic';
|
|
725
|
+
}
|
|
726
|
+
} else {
|
|
727
|
+
signFid = rawSignVal.split('_')[0];
|
|
728
|
+
if (signFid) {
|
|
729
|
+
signPicSaveValue = signFid + '_sinPic';
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
if (signFid) {
|
|
733
|
+
value = context + '/api/m/plugin/attachment/mobile/viewImage?token=' + token + '&fid=' + signFid;
|
|
734
|
+
}
|
|
716
735
|
}
|
|
717
736
|
}
|
|
718
737
|
var calculateExpList = data.calculateExpList; //计算公式列表
|
|
@@ -1129,6 +1148,14 @@ var PageHome = function (_React$Component) {
|
|
|
1129
1148
|
});
|
|
1130
1149
|
} else if (typeof value === 'number' && !isNaN(value)) {
|
|
1131
1150
|
// 接口偶发返回时间戳:保留数字供组件展示,提交值在下方 sync 时格式化
|
|
1151
|
+
} else if (dateFormatShow == 'zhDate' && value && typeof value === 'string' && /年/.test(value)) {
|
|
1152
|
+
// zhDate 兜底:只读回显/脏数据可能是「yyyy年MM月dd日」,勿当无效值清空
|
|
1153
|
+
var zhInitYmd = this.parseZhDateToYmd(value);
|
|
1154
|
+
if (zhInitYmd) {
|
|
1155
|
+
value = new Date(zhInitYmd.replace(/-/g, "/")).getTime();
|
|
1156
|
+
} else {
|
|
1157
|
+
value = null;
|
|
1158
|
+
}
|
|
1132
1159
|
} else if (value && typeof value === 'string' && value.length >= 10) {
|
|
1133
1160
|
value = value.substring(0, 19);
|
|
1134
1161
|
value = new Date(value.replace(/-/g, "/")).getTime();
|
|
@@ -1585,7 +1612,10 @@ var PageHome = function (_React$Component) {
|
|
|
1585
1612
|
}
|
|
1586
1613
|
if (itemType == 'text' || itemType == 'textarea' || itemType == 'datetime') {
|
|
1587
1614
|
var syncValue = value;
|
|
1588
|
-
|
|
1615
|
+
// 签名宏:提交/落库用 xxx_sinPic,不要写预览 URL(PC 端只认 _sinPic)
|
|
1616
|
+
if (signPicSaveValue) {
|
|
1617
|
+
syncValue = signPicSaveValue;
|
|
1618
|
+
} else if (itemType == 'datetime') {
|
|
1589
1619
|
syncValue = t.getDatetimeSaveValue(value, itemParam.dateFormat, itemParam.dateFormatShow);
|
|
1590
1620
|
}
|
|
1591
1621
|
for (var i = 0; i < data.mainTblData.length; i++) {
|
|
@@ -1593,6 +1623,16 @@ var PageHome = function (_React$Component) {
|
|
|
1593
1623
|
data.mainTblData[i].value = syncValue;
|
|
1594
1624
|
}
|
|
1595
1625
|
}
|
|
1626
|
+
if (data.relatedTbl && data.relatedTbl.length) {
|
|
1627
|
+
for (var ri = 0; ri < data.relatedTbl.length; ri++) {
|
|
1628
|
+
var relatedMainTblData = data.relatedTbl[ri].relatedMainTblData || [];
|
|
1629
|
+
for (var rj = 0; rj < relatedMainTblData.length; rj++) {
|
|
1630
|
+
if (relatedMainTblData[rj].key == itemParam.key) {
|
|
1631
|
+
relatedMainTblData[rj].value = syncValue;
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1596
1636
|
}
|
|
1597
1637
|
|
|
1598
1638
|
//项目开发扩展
|
|
@@ -2918,6 +2958,24 @@ var PageHome = function (_React$Component) {
|
|
|
2918
2958
|
return weekdays[dayIndex];
|
|
2919
2959
|
}
|
|
2920
2960
|
|
|
2961
|
+
// 中文日期「yyyy年MM月dd日」→「yyyy-MM-dd」(zhDate 只读回显用,落库禁止中文)
|
|
2962
|
+
|
|
2963
|
+
}, {
|
|
2964
|
+
key: 'parseZhDateToYmd',
|
|
2965
|
+
value: function parseZhDateToYmd(str) {
|
|
2966
|
+
if (str == null || str === '') {
|
|
2967
|
+
return '';
|
|
2968
|
+
}
|
|
2969
|
+
var m = String(str).trim().match(/^(\d{4})年(\d{1,2})月(\d{1,2})日/);
|
|
2970
|
+
if (!m) {
|
|
2971
|
+
return '';
|
|
2972
|
+
}
|
|
2973
|
+
var zy = m[1];
|
|
2974
|
+
var zm = m[2].length === 1 ? '0' + m[2] : m[2];
|
|
2975
|
+
var zd = m[3].length === 1 ? '0' + m[3] : m[3];
|
|
2976
|
+
return zy + '-' + zm + '-' + zd;
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2921
2979
|
// 时间字段提交值:统一格式化为字符串,避免 mainTblData 存入时间戳
|
|
2922
2980
|
|
|
2923
2981
|
}, {
|
|
@@ -2958,6 +3016,13 @@ var PageHome = function (_React$Component) {
|
|
|
2958
3016
|
return mPad + '-' + dPad;
|
|
2959
3017
|
}
|
|
2960
3018
|
}
|
|
3019
|
+
// zhDate:展示「xxxx年xx月xx日」,落库必须 yyyy-MM-dd(与 PC data-showtype=zhDate 一致)
|
|
3020
|
+
if (dateFormatShow === 'zhDate' && typeof raw === 'string') {
|
|
3021
|
+
var zhYmd = this.parseZhDateToYmd(raw);
|
|
3022
|
+
if (zhYmd) {
|
|
3023
|
+
return zhYmd;
|
|
3024
|
+
}
|
|
3025
|
+
}
|
|
2961
3026
|
if (typeof raw === 'string') {
|
|
2962
3027
|
if (raw.length >= 10 && raw.indexOf('-') >= 0) {
|
|
2963
3028
|
// 时分字段提交仍只需 HH:mm
|
|
@@ -2968,6 +3033,10 @@ var PageHome = function (_React$Component) {
|
|
|
2968
3033
|
if (dateFormatShow === 'MonthDay' || dateFormat === 'MD') {
|
|
2969
3034
|
return this.dateFormat(new Date(raw.replace(/-/g, '/')).getTime(), dateFormat, dateFormatShow) || '';
|
|
2970
3035
|
}
|
|
3036
|
+
// zhDate / 普通日期:取 yyyy-MM-dd
|
|
3037
|
+
if (dateFormatShow === 'zhDate' || dateFormat === 'YMD') {
|
|
3038
|
+
return raw.substring(0, 10);
|
|
3039
|
+
}
|
|
2971
3040
|
return raw.substring(0, 19);
|
|
2972
3041
|
}
|
|
2973
3042
|
if (/^\d+$/.test(raw)) {
|
|
@@ -2975,10 +3044,17 @@ var PageHome = function (_React$Component) {
|
|
|
2975
3044
|
}
|
|
2976
3045
|
}
|
|
2977
3046
|
if (typeof raw === 'number' && !isNaN(raw)) {
|
|
3047
|
+
// zhDate 落库不要中文展示串
|
|
3048
|
+
if (dateFormatShow === 'zhDate') {
|
|
3049
|
+
return this.dateFormat(raw, 'YMD') || '';
|
|
3050
|
+
}
|
|
2978
3051
|
return this.dateFormat(raw, dateFormat, dateFormatShow) || '';
|
|
2979
3052
|
}
|
|
2980
3053
|
var d = new Date(raw);
|
|
2981
3054
|
if (!isNaN(d.getTime())) {
|
|
3055
|
+
if (dateFormatShow === 'zhDate') {
|
|
3056
|
+
return this.dateFormat(d.getTime(), 'YMD') || '';
|
|
3057
|
+
}
|
|
2982
3058
|
return this.dateFormat(d.getTime(), dateFormat, dateFormatShow) || '';
|
|
2983
3059
|
}
|
|
2984
3060
|
return '';
|