fmui-base 2.3.25 → 2.3.27
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/comment_list/List.js +26 -210
- package/lib/comment_list/List.less +2 -40
- package/lib/form/form.js +164 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/comment_list/List.js
CHANGED
|
@@ -23,6 +23,10 @@ var _db = require('../db/db');
|
|
|
23
23
|
|
|
24
24
|
var _db2 = _interopRequireDefault(_db);
|
|
25
25
|
|
|
26
|
+
var _upload = require('../upload/upload');
|
|
27
|
+
|
|
28
|
+
var _upload2 = _interopRequireDefault(_upload);
|
|
29
|
+
|
|
26
30
|
require('whatwg-fetch');
|
|
27
31
|
|
|
28
32
|
require('es6-promise');
|
|
@@ -31,8 +35,6 @@ require('./List.less');
|
|
|
31
35
|
|
|
32
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
37
|
|
|
34
|
-
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
|
35
|
-
|
|
36
38
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
37
39
|
|
|
38
40
|
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
@@ -51,27 +53,9 @@ var PageHome = function (_React$Component) {
|
|
|
51
53
|
|
|
52
54
|
var _this = _possibleConstructorReturn(this, (PageHome.__proto__ || Object.getPrototypeOf(PageHome)).call(this, props));
|
|
53
55
|
|
|
54
|
-
var setting = getSysAttachSetting();
|
|
55
|
-
|
|
56
|
-
//预览类型,view:永中预览,download:下载
|
|
57
|
-
var viewType = 'view';
|
|
58
|
-
|
|
59
|
-
if (setting.sysAttachmentView == 0) {
|
|
60
|
-
//如果设置中预览关闭则默认下载
|
|
61
|
-
viewType = "download";
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// let startUserName = decodeURI(this.props.params.startUserName);//创建人用户
|
|
65
|
-
// let startUserGroupName = decodeURI(this.props.params.startUserGroupName);//创建人组织
|
|
66
|
-
//let startUserId = this.props.params.startUserId;
|
|
67
|
-
var token = document.getElementById('token').value;
|
|
68
56
|
_this.state = {
|
|
69
|
-
// attachId:props.attachId,
|
|
70
57
|
loadImg: _variables2.default.loadImg + "&fid=",
|
|
71
|
-
|
|
72
|
-
// queryUrl: context + '/api/m/plugin/attachment/mobile/getAttachmentByIds?token='+token+'&ids=',
|
|
73
|
-
commentList: [],
|
|
74
|
-
viewType: viewType
|
|
58
|
+
commentList: props.list || []
|
|
75
59
|
};
|
|
76
60
|
|
|
77
61
|
return _this;
|
|
@@ -81,13 +65,10 @@ var PageHome = function (_React$Component) {
|
|
|
81
65
|
key: 'componentDidMount',
|
|
82
66
|
value: function componentDidMount() {
|
|
83
67
|
var t = this;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}, function () {
|
|
89
|
-
t.casigin();
|
|
90
|
-
});
|
|
68
|
+
t.setState({
|
|
69
|
+
commentList: t.props.list || []
|
|
70
|
+
}, function () {
|
|
71
|
+
t.casigin();
|
|
91
72
|
});
|
|
92
73
|
}
|
|
93
74
|
|
|
@@ -168,149 +149,15 @@ var PageHome = function (_React$Component) {
|
|
|
168
149
|
}
|
|
169
150
|
}
|
|
170
151
|
|
|
171
|
-
|
|
152
|
+
/** 批示意见 attachId 多为 | 分隔,Upload 组件 initIds 用逗号 */
|
|
172
153
|
|
|
173
154
|
}, {
|
|
174
|
-
key: '
|
|
175
|
-
value: function () {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
179
|
-
while (1) {
|
|
180
|
-
switch (_context.prev = _context.next) {
|
|
181
|
-
case 0:
|
|
182
|
-
t = this;
|
|
183
|
-
context = document.getElementById("context").value;
|
|
184
|
-
url = context + '/api/m/plugin/attachment/mobile/getAttachmentByIds?token=' + token + '&ids=';
|
|
185
|
-
commentList = this.props.list;
|
|
186
|
-
attachIds = "";
|
|
187
|
-
|
|
188
|
-
if (!commentList || typeof commentList == 'undefined' || commentList.length == 0) {
|
|
189
|
-
commentList = [];
|
|
190
|
-
}
|
|
191
|
-
// var attachMap = {};
|
|
192
|
-
commentList.map(function (item) {
|
|
193
|
-
// var commentId = item.id;
|
|
194
|
-
var attachId = item.attachId;
|
|
195
|
-
if (attachId) {
|
|
196
|
-
attachId = attachId.replaceAll("|", ",");
|
|
197
|
-
attachIds = attachIds + "," + attachId;
|
|
198
|
-
// attachMap[commentId] = attachId;
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
if (!attachIds) {
|
|
203
|
-
_context.next = 14;
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
attachIds = attachIds.substring(1);
|
|
208
|
-
_context.next = 11;
|
|
209
|
-
return t.promises(url + attachIds).then(function (e) {
|
|
210
|
-
commentList.map(function (item) {
|
|
211
|
-
// var commentId = item.id;
|
|
212
|
-
var attachId = item.attachId;
|
|
213
|
-
if (attachId) {
|
|
214
|
-
var fileList = [];
|
|
215
|
-
var attachArray = attachId.split("|");
|
|
216
|
-
attachArray.map(function (attachItem) {
|
|
217
|
-
for (var i = 0; i < e.length; i++) {
|
|
218
|
-
if (attachItem == e[i].id) {
|
|
219
|
-
fileList.push(e[i]);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
item.fileList = fileList;
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
case 11:
|
|
229
|
-
sucess(commentList);
|
|
230
|
-
_context.next = 15;
|
|
231
|
-
break;
|
|
232
|
-
|
|
233
|
-
case 14:
|
|
234
|
-
sucess(commentList);
|
|
235
|
-
|
|
236
|
-
case 15:
|
|
237
|
-
case 'end':
|
|
238
|
-
return _context.stop();
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}, _callee, this);
|
|
242
|
-
}));
|
|
243
|
-
|
|
244
|
-
function initData(_x, _x2) {
|
|
245
|
-
return _ref.apply(this, arguments);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return initData;
|
|
249
|
-
}()
|
|
250
|
-
}, {
|
|
251
|
-
key: 'promises',
|
|
252
|
-
value: function promises(url) {
|
|
253
|
-
return new Promise(function (resolve, reject) {
|
|
254
|
-
try {
|
|
255
|
-
fetch(url, {
|
|
256
|
-
method: "POST",
|
|
257
|
-
headers: {
|
|
258
|
-
'Content-Type': 'application/x-www-form-urlencoded'
|
|
259
|
-
}
|
|
260
|
-
}).then(function (res) {
|
|
261
|
-
if (res.ok) {
|
|
262
|
-
res.json().then(function (obj) {
|
|
263
|
-
var objList = obj.data;
|
|
264
|
-
resolve(objList);
|
|
265
|
-
});
|
|
266
|
-
} else if (res.status == 401) {
|
|
267
|
-
// To do with res
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
} catch (e) {
|
|
271
|
-
console.log(e);
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
//预览
|
|
277
|
-
|
|
278
|
-
}, {
|
|
279
|
-
key: 'view',
|
|
280
|
-
value: function view(file) {
|
|
281
|
-
var id = file.id;
|
|
282
|
-
if (this.state.viewType == 'view') {
|
|
283
|
-
var fileExt = file.fileExt;
|
|
284
|
-
downloadFile(id, 'android', fileExt);
|
|
285
|
-
} else {
|
|
286
|
-
downloadFile(id);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
//下载批示意见附件
|
|
291
|
-
|
|
292
|
-
}, {
|
|
293
|
-
key: 'downloadAttach',
|
|
294
|
-
value: function downloadAttach(file, e) {
|
|
295
|
-
if (e && e.stopPropagation) {
|
|
296
|
-
e.stopPropagation();
|
|
297
|
-
}
|
|
298
|
-
if (e && e.preventDefault) {
|
|
299
|
-
e.preventDefault();
|
|
300
|
-
}
|
|
301
|
-
// 公众号不支持下载
|
|
302
|
-
if (getLoginUserInfo().thirdMenuType == 'WeChat') {
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
var id = file.id;
|
|
306
|
-
var fileExt = file.fileExt;
|
|
307
|
-
if (typeof downloadFile === 'function') {
|
|
308
|
-
try {
|
|
309
|
-
downloadFile(id, 'download', fileExt);
|
|
310
|
-
} catch (err) {
|
|
311
|
-
downloadFile(id);
|
|
312
|
-
}
|
|
155
|
+
key: 'getAttachInitIds',
|
|
156
|
+
value: function getAttachInitIds(attachId) {
|
|
157
|
+
if (!attachId) {
|
|
158
|
+
return '';
|
|
313
159
|
}
|
|
160
|
+
return String(attachId).replace(/\|/g, ',');
|
|
314
161
|
}
|
|
315
162
|
}, {
|
|
316
163
|
key: 'getCommentSign',
|
|
@@ -404,49 +251,18 @@ var PageHome = function (_React$Component) {
|
|
|
404
251
|
{ className: 't-PR16' },
|
|
405
252
|
_react2.default.createElement('img', { width: '100%', height: '128', src: t.state.loadImg + item.fullMessage })
|
|
406
253
|
),
|
|
407
|
-
_react2.default.createElement(
|
|
254
|
+
item.attachId ? _react2.default.createElement(
|
|
408
255
|
'div',
|
|
409
|
-
{ className: 'comment-attach-list' },
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
return Math.round(b * 100) / 100 + 'MB';
|
|
421
|
-
}
|
|
422
|
-
var showDownload = getLoginUserInfo().thirdMenuType != 'WeChat';
|
|
423
|
-
return _react2.default.createElement(
|
|
424
|
-
'div',
|
|
425
|
-
{ className: 't-FBH comment-attach-item', key: i },
|
|
426
|
-
_react2.default.createElement(
|
|
427
|
-
'div',
|
|
428
|
-
{ className: 'dd-t-border t-P6 t-MB10 t-FB1', onClick: t.view.bind(t, item2) },
|
|
429
|
-
_react2.default.createElement('i', { className: 'iconfont icon-file t-FC9 t-FL t-MR6' }),
|
|
430
|
-
_react2.default.createElement(
|
|
431
|
-
'div',
|
|
432
|
-
{ className: 'dd-t-list-text-content' },
|
|
433
|
-
_react2.default.createElement(
|
|
434
|
-
'div',
|
|
435
|
-
{ className: 't-list-title comment-attach-name t-LH1_4' },
|
|
436
|
-
typeof item2.fileDisplayName == 'undefined' ? item2.name : item2.fileDisplayName
|
|
437
|
-
),
|
|
438
|
-
_react2.default.createElement(
|
|
439
|
-
'div',
|
|
440
|
-
{ className: 'dd-t-list-time t-FBAC' },
|
|
441
|
-
calculate(typeof item2.fileSize == 'undefined' ? item2.size : item2.fileSize)
|
|
442
|
-
)
|
|
443
|
-
)
|
|
444
|
-
),
|
|
445
|
-
_react2.default.createElement('i', { className: showDownload ? 'iconfont icon-download1 comment-attach-download' : 't-DN',
|
|
446
|
-
onClick: t.downloadAttach.bind(t, item2) })
|
|
447
|
-
);
|
|
448
|
-
}) : ""
|
|
449
|
-
),
|
|
256
|
+
{ className: 'comment-attach-list t-PR16' },
|
|
257
|
+
_react2.default.createElement(_upload2.default, {
|
|
258
|
+
key: 'comment_attach_' + item.id,
|
|
259
|
+
required: false,
|
|
260
|
+
canAdd: false,
|
|
261
|
+
canDel: false,
|
|
262
|
+
canDownload: true,
|
|
263
|
+
initIds: t.getAttachInitIds(item.attachId)
|
|
264
|
+
})
|
|
265
|
+
) : null,
|
|
450
266
|
_react2.default.createElement(
|
|
451
267
|
Box,
|
|
452
268
|
{ vAlign: 'start', hAlign: 'end', id: 'commentSign-' + item.id, className: 't-FBH t-PR16' },
|
|
@@ -5,45 +5,7 @@
|
|
|
5
5
|
padding-right:0px;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
/*
|
|
8
|
+
/* 批示意见附件复用 Upload 组件样式,仅保留容器间距 */
|
|
9
9
|
.comment-attach-list {
|
|
10
|
-
|
|
11
|
-
align-items: flex-start;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.comment-attach-name,
|
|
15
|
-
.t-list-title.comment-attach-name {
|
|
16
|
-
display: block !important;
|
|
17
|
-
white-space: normal !important;
|
|
18
|
-
word-break: break-all !important;
|
|
19
|
-
overflow-wrap: break-word !important;
|
|
20
|
-
word-wrap: break-word !important;
|
|
21
|
-
overflow: visible !important;
|
|
22
|
-
text-overflow: clip !important;
|
|
23
|
-
-webkit-line-clamp: unset !important;
|
|
24
|
-
line-clamp: unset !important;
|
|
25
|
-
-webkit-box-orient: horizontal !important;
|
|
26
|
-
max-width: 100%;
|
|
27
|
-
line-height: 1.4;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.dd-t-list-text-content {
|
|
31
|
-
min-width: 0;
|
|
32
|
-
overflow: visible;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* 与表单附件下载按钮保持一致:普通图标,无蓝色圆底 */
|
|
36
|
-
.comment-attach-download {
|
|
37
|
-
flex-shrink: 0;
|
|
38
|
-
margin-right: 5px;
|
|
39
|
-
margin-top: 8px;
|
|
40
|
-
font-size: 16px;
|
|
41
|
-
background: transparent;
|
|
42
|
-
color: inherit;
|
|
43
|
-
width: auto;
|
|
44
|
-
height: auto;
|
|
45
|
-
line-height: inherit;
|
|
46
|
-
border-radius: 0;
|
|
47
|
-
text-align: center;
|
|
48
|
-
}
|
|
10
|
+
margin-top: 4px;
|
|
49
11
|
}
|
package/lib/form/form.js
CHANGED
|
@@ -1016,6 +1016,17 @@ var PageHome = function (_React$Component) {
|
|
|
1016
1016
|
dateFormat = "YM";
|
|
1017
1017
|
} else if (dateDisplayFormat == "MonthDay") {
|
|
1018
1018
|
dateFormat = "MD";
|
|
1019
|
+
// 月日兜底:接口常为 MM-DD;先拼当年再转时间戳,避免被下方长度判断清空
|
|
1020
|
+
if (value && typeof value === 'string') {
|
|
1021
|
+
var mdVal = value.trim();
|
|
1022
|
+
if (/^\d{1,2}-\d{1,2}$/.test(mdVal)) {
|
|
1023
|
+
var mdPartsInit = mdVal.split('-');
|
|
1024
|
+
var mmInit = mdPartsInit[0].length === 1 ? '0' + mdPartsInit[0] : mdPartsInit[0];
|
|
1025
|
+
var ddInit = mdPartsInit[1].length === 1 ? '0' + mdPartsInit[1] : mdPartsInit[1];
|
|
1026
|
+
value = year + "-" + mmInit + "-" + ddInit;
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
dateFormatShow = "MonthDay";
|
|
1019
1030
|
} else if (dateDisplayFormat == "Year") {
|
|
1020
1031
|
dateFormat = "Y";
|
|
1021
1032
|
} else if (dateDisplayFormat == "ODate") {
|
|
@@ -1125,6 +1136,12 @@ var PageHome = function (_React$Component) {
|
|
|
1125
1136
|
value = new Date(value).getTime();
|
|
1126
1137
|
} else if (value && typeof value === 'string' && value.length == 7 && dateFormat == "YM") {
|
|
1127
1138
|
value = new Date(value).getTime();
|
|
1139
|
+
} else if ((dateFormat == "MD" || dateFormatShow == "MonthDay") && value && typeof value === 'string' && /^\d{1,2}-\d{1,2}$/.test(value.trim())) {
|
|
1140
|
+
// 月日兜底:仍为 MM-DD 时拼当前年再转时间戳,避免被清空(只读不回显)
|
|
1141
|
+
var mdFallback = value.trim().split('-');
|
|
1142
|
+
var mmFallback = mdFallback[0].length === 1 ? '0' + mdFallback[0] : mdFallback[0];
|
|
1143
|
+
var ddFallback = mdFallback[1].length === 1 ? '0' + mdFallback[1] : mdFallback[1];
|
|
1144
|
+
value = new Date((year + "-" + mmFallback + "-" + ddFallback).replace(/-/g, "/")).getTime();
|
|
1128
1145
|
} else if (dateFormatShow == 'HourMin' && value && typeof value === 'string' && /^\d{1,2}:\d{2}(:\d{2})?$/.test(value.trim())) {
|
|
1129
1146
|
// 时分兜底:仍为 HH:mm 时拼当前日期再转时间戳,避免被清空
|
|
1130
1147
|
var hmFallback = value.trim().split(':');
|
|
@@ -1143,6 +1160,9 @@ var PageHome = function (_React$Component) {
|
|
|
1143
1160
|
if (readOnly == true) {
|
|
1144
1161
|
var dateStr = this.dateFormat(value, dateFormat, dateFormatShow);
|
|
1145
1162
|
value = dateStr;
|
|
1163
|
+
} else if (dateFormatShow === 'MonthDay' || dateFormat === 'MD') {
|
|
1164
|
+
// 编辑态:界面显示 MM-DD,选择器仍用带年的时间戳
|
|
1165
|
+
itemParam.monthDayShow = value ? this.dateFormat(value, dateFormat, dateFormatShow) || '' : '';
|
|
1146
1166
|
}
|
|
1147
1167
|
if (fuzhiFields && fuzhiFields.split(",").indexOf(itemParam.uniqueName) != -1 && form.defaultValue && form.defaultValue != null) {
|
|
1148
1168
|
value = form.defaultValue;
|
|
@@ -2928,12 +2948,26 @@ var PageHome = function (_React$Component) {
|
|
|
2928
2948
|
return h + ':' + p[1];
|
|
2929
2949
|
}
|
|
2930
2950
|
}
|
|
2951
|
+
// 月日:只读回显已是 MM-DD,new Date('MM-DD') 无效会导致提交值被清空
|
|
2952
|
+
if ((dateFormatShow === 'MonthDay' || dateFormat === 'MD') && typeof raw === 'string') {
|
|
2953
|
+
var mdStr = raw.trim();
|
|
2954
|
+
if (/^\d{1,2}-\d{1,2}$/.test(mdStr)) {
|
|
2955
|
+
var mp = mdStr.split('-');
|
|
2956
|
+
var mPad = mp[0].length === 1 ? '0' + mp[0] : mp[0];
|
|
2957
|
+
var dPad = mp[1].length === 1 ? '0' + mp[1] : mp[1];
|
|
2958
|
+
return mPad + '-' + dPad;
|
|
2959
|
+
}
|
|
2960
|
+
}
|
|
2931
2961
|
if (typeof raw === 'string') {
|
|
2932
2962
|
if (raw.length >= 10 && raw.indexOf('-') >= 0) {
|
|
2933
2963
|
// 时分字段提交仍只需 HH:mm
|
|
2934
2964
|
if (dateFormatShow === 'HourMin') {
|
|
2935
2965
|
return this.dateFormat(new Date(raw.replace(/-/g, '/')).getTime(), dateFormat, dateFormatShow) || '';
|
|
2936
2966
|
}
|
|
2967
|
+
// 月日字段提交仍只需 MM-DD
|
|
2968
|
+
if (dateFormatShow === 'MonthDay' || dateFormat === 'MD') {
|
|
2969
|
+
return this.dateFormat(new Date(raw.replace(/-/g, '/')).getTime(), dateFormat, dateFormatShow) || '';
|
|
2970
|
+
}
|
|
2937
2971
|
return raw.substring(0, 19);
|
|
2938
2972
|
}
|
|
2939
2973
|
if (/^\d+$/.test(raw)) {
|
|
@@ -2961,6 +2995,13 @@ var PageHome = function (_React$Component) {
|
|
|
2961
2995
|
var itemParam = this.state.itemParam;
|
|
2962
2996
|
var dateFormat = itemParam.dateFormat;
|
|
2963
2997
|
var dateFormatShow = itemParam.dateFormatShow;
|
|
2998
|
+
// salt 在仅 M/D 列时会产出 NaN,直接忽略无效确认,避免把已有值清空
|
|
2999
|
+
if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && (value.value == null || value.value === '' || isNaN(value.value))) {
|
|
3000
|
+
return;
|
|
3001
|
+
}
|
|
3002
|
+
if (typeof value === 'number' && isNaN(value)) {
|
|
3003
|
+
return;
|
|
3004
|
+
}
|
|
2964
3005
|
var dateStr = '';
|
|
2965
3006
|
if (dateFormat == "DateInterval") {
|
|
2966
3007
|
if (value && value.startDate && value.endDate) {
|
|
@@ -2975,12 +3016,25 @@ var PageHome = function (_React$Component) {
|
|
|
2975
3016
|
pickerVal.value = new Date(dateStr.replace(/-/g, "/")).getTime();
|
|
2976
3017
|
} else if (typeof pickerVal.value === 'string' && /^\d+$/.test(pickerVal.value)) {
|
|
2977
3018
|
pickerVal.value = parseInt(pickerVal.value, 10);
|
|
3019
|
+
} else if (dateStr && (dateFormatShow === 'MonthDay' || dateFormat === 'MD') && /^\d{1,2}-\d{1,2}$/.test(String(dateStr).trim())) {
|
|
3020
|
+
// 月日选择后展示值为 MM-DD,拼当年再回填时间戳给组件
|
|
3021
|
+
var mdPick = String(dateStr).trim().split('-');
|
|
3022
|
+
var mmPick = mdPick[0].length === 1 ? '0' + mdPick[0] : mdPick[0];
|
|
3023
|
+
var ddPick = mdPick[1].length === 1 ? '0' + mdPick[1] : mdPick[1];
|
|
3024
|
+
var tsMd = new Date(new Date().getFullYear() + '/' + mmPick + '/' + ddPick).getTime();
|
|
3025
|
+
if (!isNaN(tsMd)) {
|
|
3026
|
+
pickerVal.value = tsMd;
|
|
3027
|
+
}
|
|
2978
3028
|
} else if (dateStr && (typeof pickerVal.value !== 'number' || isNaN(pickerVal.value))) {
|
|
2979
3029
|
var ts = new Date(dateStr.replace(/-/g, '/')).getTime();
|
|
2980
3030
|
if (!isNaN(ts)) {
|
|
2981
3031
|
pickerVal.value = ts;
|
|
2982
3032
|
}
|
|
2983
3033
|
}
|
|
3034
|
+
// 月日:组件展示用时间戳,文案用 MM-DD
|
|
3035
|
+
if (dateFormatShow === 'MonthDay' || dateFormat === 'MD') {
|
|
3036
|
+
itemParam.monthDayShow = dateStr;
|
|
3037
|
+
}
|
|
2984
3038
|
value = pickerVal;
|
|
2985
3039
|
}
|
|
2986
3040
|
|
|
@@ -3180,6 +3234,70 @@ var PageHome = function (_React$Component) {
|
|
|
3180
3234
|
}
|
|
3181
3235
|
}
|
|
3182
3236
|
|
|
3237
|
+
// 月日展示:统一为 MM-DD
|
|
3238
|
+
|
|
3239
|
+
}, {
|
|
3240
|
+
key: 'formatMonthDayDisplay',
|
|
3241
|
+
value: function formatMonthDayDisplay(value) {
|
|
3242
|
+
if (value == null || value === '') {
|
|
3243
|
+
return '';
|
|
3244
|
+
}
|
|
3245
|
+
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.value != null) {
|
|
3246
|
+
value = value.value;
|
|
3247
|
+
}
|
|
3248
|
+
if (typeof value === 'string') {
|
|
3249
|
+
var s = value.trim();
|
|
3250
|
+
if (/^\d{1,2}-\d{1,2}$/.test(s)) {
|
|
3251
|
+
var p = s.split('-');
|
|
3252
|
+
return (p[0].length === 1 ? '0' + p[0] : p[0]) + '-' + (p[1].length === 1 ? '0' + p[1] : p[1]);
|
|
3253
|
+
}
|
|
3254
|
+
if (s.length >= 10) {
|
|
3255
|
+
var tsFromStr = new Date(s.replace(/-/g, '/')).getTime();
|
|
3256
|
+
if (!isNaN(tsFromStr)) {
|
|
3257
|
+
return this.dateFormat(tsFromStr, 'MD') || '';
|
|
3258
|
+
}
|
|
3259
|
+
}
|
|
3260
|
+
return '';
|
|
3261
|
+
}
|
|
3262
|
+
if (typeof value === 'number' && !isNaN(value)) {
|
|
3263
|
+
return this.dateFormat(value, 'MD') || '';
|
|
3264
|
+
}
|
|
3265
|
+
return '';
|
|
3266
|
+
}
|
|
3267
|
+
|
|
3268
|
+
// 月日选择器内部值:保证是有效时间戳(salt 需带年)
|
|
3269
|
+
|
|
3270
|
+
}, {
|
|
3271
|
+
key: 'getMonthDayPickerValue',
|
|
3272
|
+
value: function getMonthDayPickerValue(value) {
|
|
3273
|
+
if (value == null || value === '') {
|
|
3274
|
+
return new Date().getTime();
|
|
3275
|
+
}
|
|
3276
|
+
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.value != null) {
|
|
3277
|
+
value = value.value;
|
|
3278
|
+
}
|
|
3279
|
+
if (typeof value === 'number' && !isNaN(value)) {
|
|
3280
|
+
return value;
|
|
3281
|
+
}
|
|
3282
|
+
if (typeof value === 'string') {
|
|
3283
|
+
var s = value.trim();
|
|
3284
|
+
if (/^\d{1,2}-\d{1,2}$/.test(s)) {
|
|
3285
|
+
var p = s.split('-');
|
|
3286
|
+
var mm = p[0].length === 1 ? '0' + p[0] : p[0];
|
|
3287
|
+
var dd = p[1].length === 1 ? '0' + p[1] : p[1];
|
|
3288
|
+
var ts = new Date(new Date().getFullYear() + '/' + mm + '/' + dd).getTime();
|
|
3289
|
+
return isNaN(ts) ? new Date().getTime() : ts;
|
|
3290
|
+
}
|
|
3291
|
+
if (s.length >= 10) {
|
|
3292
|
+
var ts2 = new Date(s.replace(/-/g, '/')).getTime();
|
|
3293
|
+
if (!isNaN(ts2)) {
|
|
3294
|
+
return ts2;
|
|
3295
|
+
}
|
|
3296
|
+
}
|
|
3297
|
+
}
|
|
3298
|
+
return new Date().getTime();
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3183
3301
|
//附件、图片
|
|
3184
3302
|
|
|
3185
3303
|
}, {
|
|
@@ -4425,7 +4543,52 @@ var PageHome = function (_React$Component) {
|
|
|
4425
4543
|
icon: _react2.default.createElement(_AngleRight2.default, { width: 26, fill: '#BCBCBC', onClick: t.handleCalendarFieldFill.bind(t, t.state.prefixName + "_" + t.state.itemParam.key, t.state.itemParam.value) })
|
|
4426
4544
|
// formatter: 'yyyy.MM.dd',
|
|
4427
4545
|
, onOk: t.handleChangeDate.bind(t, t.state.itemParam.key)
|
|
4428
|
-
}) : _react2.default.createElement(
|
|
4546
|
+
}) : t.state.itemParam.dateFormat === 'MD' || t.state.itemParam.dateFormatShow === 'MonthDay' ? _react2.default.createElement(
|
|
4547
|
+
HBox,
|
|
4548
|
+
{ className: isSubFormMultiCol ? "t-field-box t-FBAC t-W100" : "t-field-box t-FBAC t-W100" },
|
|
4549
|
+
_react2.default.createElement(
|
|
4550
|
+
'div',
|
|
4551
|
+
{ className: t.state.itemParam.required ? "t-field-layout-h-label required" : "t-field-layout-h-label" },
|
|
4552
|
+
t.state.itemParam.title
|
|
4553
|
+
),
|
|
4554
|
+
_react2.default.createElement(
|
|
4555
|
+
HBox,
|
|
4556
|
+
{ flex: '1', onClick: function onClick() {
|
|
4557
|
+
t.showSlot('md_' + t.state.itemParam.key);
|
|
4558
|
+
}, className: 't-FBAC' },
|
|
4559
|
+
_react2.default.createElement(
|
|
4560
|
+
Box,
|
|
4561
|
+
{ flex: '1' },
|
|
4562
|
+
_react2.default.createElement(
|
|
4563
|
+
'span',
|
|
4564
|
+
{ className: 't-FL' },
|
|
4565
|
+
t.state.itemParam.monthDayShow || t.formatMonthDayDisplay(t.state.itemParam.value) || ''
|
|
4566
|
+
),
|
|
4567
|
+
!(t.state.itemParam.monthDayShow || t.formatMonthDayDisplay(t.state.itemParam.value)) ? _react2.default.createElement(
|
|
4568
|
+
'span',
|
|
4569
|
+
{ className: 't-datetime-field-placeholder', style: { color: '#ccc' } },
|
|
4570
|
+
t.state.itemParam.placeholder || '请选择'
|
|
4571
|
+
) : null
|
|
4572
|
+
),
|
|
4573
|
+
_react2.default.createElement(
|
|
4574
|
+
Box,
|
|
4575
|
+
{ className: 't-FBAC t-field-icon' },
|
|
4576
|
+
_react2.default.createElement(_AngleRight2.default, { width: 26, fill: '#BCBCBC' }),
|
|
4577
|
+
_react2.default.createElement(_Datetime2.default, {
|
|
4578
|
+
locale: 'zh-cn',
|
|
4579
|
+
slotRef: function slotRef(s) {
|
|
4580
|
+
return t['md_' + t.state.itemParam.key] = s;
|
|
4581
|
+
},
|
|
4582
|
+
title: t.state.itemParam.title || '月日选择',
|
|
4583
|
+
value: t.getMonthDayPickerValue(t.state.itemParam.value),
|
|
4584
|
+
columns: _Datetime2.default.YMD,
|
|
4585
|
+
minDate: t.state.itemParam.minDate ? t.state.itemParam.minDate : new Date(1900, 0, 1).getTime(),
|
|
4586
|
+
maxDate: t.state.itemParam.maxDate ? t.state.itemParam.maxDate : new Date(2051, 0, 1).getTime() - 1,
|
|
4587
|
+
onConfirm: t.handleChangeDate.bind(t, t.state.itemParam.key)
|
|
4588
|
+
})
|
|
4589
|
+
)
|
|
4590
|
+
)
|
|
4591
|
+
) : _react2.default.createElement(_DatetimeField2.default, {
|
|
4429
4592
|
className: 't-W100',
|
|
4430
4593
|
layout: subFormFieldLayout,
|
|
4431
4594
|
multiLine: isSubFormMultiCol,
|