提交
This commit is contained in:
169
甲情_甲意/miniprogram/node_modules/antd-mini/less/DatePicker/util.js
generated
vendored
Normal file
169
甲情_甲意/miniprogram/node_modules/antd-mini/less/DatePicker/util.js
generated
vendored
Normal file
@ -0,0 +1,169 @@
|
||||
import { __spreadArray } from "tslib";
|
||||
import dayjs from 'dayjs';
|
||||
function getArray(start, end, format) {
|
||||
var res = [];
|
||||
for (var i = 0; i < end - start + 1; i++) {
|
||||
res.push({ label: format(start + i), value: start + i });
|
||||
}
|
||||
return res;
|
||||
}
|
||||
var precisionLengthRecord = {
|
||||
year: 1,
|
||||
month: 2,
|
||||
day: 3,
|
||||
hour: 4,
|
||||
minute: 5,
|
||||
second: 6,
|
||||
};
|
||||
function getYears(min, max, format) {
|
||||
return getArray(min.year(), max.year(), format.bind(this, 'year'));
|
||||
}
|
||||
function getMonths(min, max, currentPicker, format) {
|
||||
var start = 1;
|
||||
var end = 12;
|
||||
if (currentPicker
|
||||
.clone()
|
||||
.set('month', start - 1)
|
||||
.isBefore(min)) {
|
||||
start = min.month() + 1;
|
||||
}
|
||||
if (currentPicker
|
||||
.clone()
|
||||
.set('month', end - 1)
|
||||
.isAfter(max)) {
|
||||
end = max.month() + 1;
|
||||
}
|
||||
return getArray(start, end, format.bind(this, 'month'));
|
||||
}
|
||||
function getDates(min, max, currentPicker, format) {
|
||||
var start = 1;
|
||||
var end = currentPicker.daysInMonth();
|
||||
if (currentPicker.clone().set('date', start).isBefore(min)) {
|
||||
start = min.date();
|
||||
}
|
||||
if (currentPicker.clone().set('date', end).isAfter(max)) {
|
||||
end = max.date();
|
||||
}
|
||||
return getArray(start, end, format.bind(this, 'day'));
|
||||
}
|
||||
function getHours(min, max, currentPicker, format) {
|
||||
var start = 0;
|
||||
var end = 23;
|
||||
if (currentPicker.clone().set('hour', start).isBefore(min)) {
|
||||
start = min.hour();
|
||||
}
|
||||
if (currentPicker.clone().set('hour', end).isAfter(max)) {
|
||||
end = max.hour();
|
||||
}
|
||||
return getArray(start, end, format.bind(this, 'hour'));
|
||||
}
|
||||
function getMinutes(min, max, currentPicker, format) {
|
||||
var start = 0;
|
||||
var end = 59;
|
||||
if (currentPicker.clone().set('minute', start).isBefore(min)) {
|
||||
start = min.minute();
|
||||
}
|
||||
if (currentPicker.clone().set('minute', end).isAfter(max)) {
|
||||
end = max.minute();
|
||||
}
|
||||
return getArray(start, end, format.bind(this, 'minute'));
|
||||
}
|
||||
function getSeconds(min, max, currentPicker, format) {
|
||||
var start = 0;
|
||||
var end = 59;
|
||||
if (currentPicker.clone().set('second', start).isBefore(min)) {
|
||||
start = min.second();
|
||||
}
|
||||
if (currentPicker.clone().set('second', end).isAfter(max)) {
|
||||
end = max.second();
|
||||
}
|
||||
return getArray(start, end, format.bind(this, 'second'));
|
||||
}
|
||||
export function getRangeData(precision, min, max, currentPickerDay, format) {
|
||||
var data = [];
|
||||
var len = precisionLengthRecord[precision];
|
||||
if (!len)
|
||||
return [];
|
||||
for (var i = 0; i < len; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
data.push(getYears(min, max, format));
|
||||
break;
|
||||
case 1:
|
||||
data.push(getMonths(min, max, currentPickerDay, format));
|
||||
break;
|
||||
case 2:
|
||||
data.push(getDates(min, max, currentPickerDay, format));
|
||||
break;
|
||||
case 3:
|
||||
data.push(getHours(min, max, currentPickerDay, format));
|
||||
break;
|
||||
case 4:
|
||||
data.push(getMinutes(min, max, currentPickerDay, format));
|
||||
break;
|
||||
case 5:
|
||||
data.push(getSeconds(min, max, currentPickerDay, format));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* 选中的值转换为时间类型,主要处理month从0开始的情况
|
||||
* @param value
|
||||
* @returns
|
||||
*/
|
||||
export function getDateByValue(value) {
|
||||
//@ts-ignore
|
||||
return new (Date.bind.apply(Date, __spreadArray([void 0], value.map(function (v, i) { return String(i === 1 ? v - 1 : v); }), false)))();
|
||||
}
|
||||
/**
|
||||
* date转换为value数组
|
||||
* @param value
|
||||
* @returns
|
||||
*/
|
||||
export function getValueByDate(date, precision) {
|
||||
var fields = [
|
||||
'getFullYear',
|
||||
'getMonth',
|
||||
'getDate',
|
||||
'getHours',
|
||||
'getMinutes',
|
||||
'getSeconds',
|
||||
];
|
||||
var value = [];
|
||||
if (!date)
|
||||
return value;
|
||||
for (var i = 0; i < precisionLengthRecord[precision]; i++) {
|
||||
value.push(date[fields[i]]());
|
||||
if (i === 1) {
|
||||
value[1] = value[1] + 1;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
/**
|
||||
* 是否有效日期,主要处理月份对应可选日期,避免当前时间日期超出当月最后一天
|
||||
* @param value
|
||||
*/
|
||||
export function getValidValue(value) {
|
||||
if (value.length > 2) {
|
||||
var maxDate = new Date(value[0], value[1], 0).getDate();
|
||||
if (value[2] > maxDate) {
|
||||
value = value.slice();
|
||||
value[2] = maxDate;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
/**
|
||||
* 比较两个date是否是同一时间
|
||||
* @param date1
|
||||
* @param date2
|
||||
*/
|
||||
export function isEqualDate(date1, date2) {
|
||||
if (date1 instanceof Date && date2 instanceof Date) {
|
||||
return dayjs(date1).isSame(date2);
|
||||
}
|
||||
return date1 === date2;
|
||||
}
|
Reference in New Issue
Block a user