tsp-component
Version:
提供多端和react版本的UI组件
283 lines (282 loc) • 10.5 kB
JavaScript
export function getDaysInMonth(year, month, type) {
var thirtyOneDays = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
var thirty = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
var twentyNine = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29];
var twentyEight = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28];
switch (month) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
if (type === 'object') {
return thirtyOneDays.map(function (value) {
return { value: value, label: value };
});
}
return thirtyOneDays;
case 1:
if (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)) {
if (type === 'object') {
return twentyNine.map(function (value) {
return { value: value, label: value };
});
}
return twentyNine;
}
if (type === 'object') {
return twentyEight.map(function (value) {
return { value: value, label: value };
});
}
return twentyEight;
case 3:
case 5:
case 8:
case 10:
if (type === 'object') {
return thirty.map(function (value) {
{
return { value: value, label: value };
}
});
}
return thirty;
default: break;
}
}
export function zellerFormula(year, month, day) {
var yearString = year.toString();
var m = month + 1;
var d = day;
if (m < 3) {
m += 12;
yearString = (year - 1).toString();
}
var c = parseInt(yearString.substr(0, 2));
var y = parseInt(yearString.substr(2, 3));
var result = parseInt((y + y / 4).toString()) + parseInt((c / 4).toString()) - 2 * c + parseInt((26 * (m + 1) / 10).toString()) + d - 1;
return (result % 7 + 7) % 7;
}
export function createYearArray(startYear, endYear, type) {
var temp = [];
var i = startYear;
for (i; i <= endYear; i++) {
if (type === 'object') {
temp.push({ value: i, label: i });
}
else {
temp.push(i);
}
}
return temp;
}
export function createMonthArray(type) {
var temp = [];
var i = 0;
for (i; i < 12; i++) {
if (type === 'object') {
temp.push({ value: i, label: i });
}
else {
temp.push(i);
}
}
return temp;
}
export function createHoursArray(type) {
var temp = [];
var i = 0;
for (i; i < 24; i++) {
if (type === 'object') {
temp.push({ value: i, label: i });
}
else {
temp.push(i);
}
}
return temp;
}
export function createMinutesAndSecondsArray(type) {
var temp = [];
var i = 0;
for (i; i < 60; i++) {
if (type === 'object') {
temp.push({ value: i, label: i });
}
else {
temp.push(i);
}
}
return temp;
}
export function getDefaultValue(timestamp, type) {
var date = timestamp ? new Date(timestamp) : new Date();
var year = valueFormat(date.getFullYear(), 'string');
var month = valueFormat(date.getMonth() + 1, 'string');
var day = valueFormat(date.getDate(), 'string');
var hour = valueFormat(date.getHours(), 'string');
var min = valueFormat(date.getMinutes(), 'string');
var sec = valueFormat(date.getSeconds(), 'string');
if (type === 'string') {
return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec;
}
else {
return [{
value: year
}, {
value: month
}, {
value: day
}, {
value: hour
}, {
value: min
}, {
value: sec
}];
}
}
export function valueFormat(value, type, unit) {
var result;
var label;
if (value < 10) {
result = '0' + value;
}
else {
result = value.toString();
}
label = unit ? result + unit : result;
if (type === 'object') {
return { value: result, label: label };
}
else {
return label;
}
}
export function getTodayDate(mode, type) {
var date = new Date();
var year = valueFormat(date.getFullYear(), 'string');
var month = valueFormat(date.getMonth() + 1, 'string');
var day = valueFormat(date.getDate(), 'string');
var hour = valueFormat(date.getHours(), 'string');
var minute = valueFormat(date.getMinutes(), 'string');
switch (mode) {
case 'yy-MM': return type === 'string' ? year + "-" + month : [year, month];
case 'yy-MM-dd': return type === 'string' ? year + "-" + month + "-" + day : [year, month, day];
case 'yy-MM-dd HH:mm': return type === 'string' ? year + "-" + month + "-" + day + " " + hour + ":" + minute : [year, month, day, hour, minute];
default: return [year, month, day];
}
}
export function arrayFormatDateString(value, mode) {
switch (mode) {
case 'yy-MM':
case 'yy-MM-dd':
return value.join('-');
case 'yy-MM-dd HH:mm':
return value.slice(0, 3).join('-') + ' ' + value.slice(3).join(':');
default: break;
}
}
export function dateStringFormatArray(value, mode) {
switch (mode) {
case 'yy-MM':
case 'yy-MM-dd':
return value.split('-');
case 'yy-MM-dd HH:mm':
return value.substr(0, 10).split('-').concat(value.substr(11).split(':'));
default: break;
}
}
export function dateStrignFormatDatePickerValue(dateString, mode) {
return dateStringFormatArray(dateString, mode).map(function (value) {
return { value: value };
});
}
export function isDayInDateRange(range, startStr, endStr) {
var date = new Date(startStr);
var time = date.getTime();
var dateRange;
switch (range) {
case 'today':
case 'yesterday': return startStr === getDateStrByDateRange(range).startDate.str;
case 'month':
var todayStr = getDateStrByDateRange('today').startDate.str;
return startStr.substr(0, 7) === todayStr.substr(0, 7);
case 'prevWeek':
dateRange = getDateStrByDateRange('prevWeek');
return startStr === dateRange.startDate.str && endStr === dateRange.endDate.str;
case 'prevMonth':
dateRange = getDateStrByDateRange('prevMonth');
return startStr === dateRange.startDate.str && endStr === dateRange.endDate.str;
default:
dateRange = getDateStrByDateRange(range);
var startTime = dateRange.startDate.time;
var endTime = dateRange.todayDate.time;
return time >= startTime && time <= endTime && time !== endTime;
}
}
export function getDateStrByDateRange(range) {
var todayDate = new Date();
var todayWeek = todayDate.getDay();
var todayYear = todayDate.getFullYear().toString();
var todayMonth = valueFormat((todayDate.getMonth() + 1).toString(), 'string');
var todayDay = valueFormat(todayDate.getDate().toString(), 'string');
todayDate = new Date(todayYear + "-" + todayMonth + "-" + todayDay);
var todayTime = todayDate.getTime();
var _a = [undefined, undefined], startDate = _a[0], endDate = _a[1];
if (typeof range === 'string') {
switch (range) {
case 'today':
startDate = todayDate;
endDate = todayDate;
break;
case 'yesterday':
startDate = new Date(todayTime - 3600 * 24 * 1000);
endDate = startDate;
break;
case 'week':
startDate = new Date(todayTime - 3600 * 24 * 1000 * (todayWeek - 1));
endDate = todayDate;
break;
case 'month':
startDate = new Date(todayYear + "-" + todayMonth + "-01");
endDate = todayDate;
break;
case 'prevWeek':
var startTimeStamp = todayTime - 3600 * 24 * 1000 * todayWeek - 3600 * 24 * 1000 * 6;
startDate = new Date(startTimeStamp);
endDate = new Date(startTimeStamp + 3600 * 24 * 1000 * 6);
break;
case 'prevMonth':
startDate = new Date(parseInt(todayYear), parseInt(todayMonth) - 2);
endDate = new Date(parseInt(todayYear), parseInt(todayMonth) - 1, 0);
break;
default: break;
}
}
else {
startDate = new Date(todayTime - 3600 * 24 * 1000 * (range - 1));
endDate = todayDate;
}
var startYear = startDate.getFullYear().toString();
var startMonth = valueFormat((startDate.getMonth() + 1).toString(), 'string');
var startDay = valueFormat(startDate.getDate().toString(), 'string');
var startTime = startDate.getTime();
var endYear = endDate.getFullYear().toString();
var endMonth = valueFormat((endDate.getMonth() + 1).toString(), 'string');
var endDay = valueFormat(endDate.getDate().toString(), 'string');
var endTime = endDate.getTime();
return {
startDate: { str: startYear + "-" + startMonth + "-" + startDay, time: startTime },
endDate: { str: endYear + "-" + endMonth + "-" + endDay, time: endTime },
todayDate: { str: todayYear + "-" + todayMonth + "-" + todayDay, time: todayTime },
};
}
export function timestampToHour(timestamp) {
var hour = parseInt((timestamp / 3600000).toString());
var minus = parseInt(((timestamp - 3600000 * hour) / 60000).toString());
return [hour, minus];
}