You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
5.2 KiB
166 lines
5.2 KiB
const formatTime = date => {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
const hour = date.getHours()
|
|
const minute = date.getMinutes()
|
|
const second = date.getSeconds()
|
|
|
|
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
|
|
}
|
|
const formatDate = date => {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
return [year, month, day].map(formatNumber).join('-')
|
|
}
|
|
const formatNumber = n => {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
}
|
|
|
|
const formatRichText = html => {
|
|
let newContent= html.replace(/\<img/gi, '<img style="width:100%;height:auto;display:block;"');
|
|
return newContent
|
|
}
|
|
|
|
function cardHide(card) {
|
|
const reg = /^(.{10})(?:\d+)(.{2})$/;
|
|
const maskedIdCard = card.replace(reg, '$1******$2');
|
|
return maskedIdCard;
|
|
}
|
|
function withData(param) {
|
|
return Number(param) < 10 ? '0' + param : '' + param;
|
|
}
|
|
function getLoopArray(start, end) {
|
|
var start = Number(start) || 0;
|
|
var end = Number(end) || 1;
|
|
var array = [];
|
|
for (var i = start; i <= end; i++) {
|
|
array.push(withData(i));
|
|
}
|
|
return array;
|
|
}
|
|
|
|
function getMonthDay(year, nowMonth, sMonth, eMonth, sDay, eDay) {
|
|
var flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), array = null;
|
|
let month = nowMonth
|
|
console.log('arrayttttnowMonth', nowMonth)
|
|
switch (month) {
|
|
case '01':
|
|
case '03':
|
|
case '05':
|
|
case '07':
|
|
case '08':
|
|
case '10':
|
|
case '12':
|
|
// array = getLoopArray(1, 31)
|
|
if (sMonth == month && sMonth != eMonth) array = getLoopArray(sDay, 31)
|
|
else if (eMonth == month && sMonth != eMonth) array = getLoopArray(1, eDay)
|
|
else array = getLoopArray(sDay, eDay)
|
|
break;
|
|
case '04':
|
|
case '06':
|
|
case '09':
|
|
case '11':
|
|
// array = getLoopArray(1, 30)
|
|
if (sMonth == month && sMonth != eMonth) array = getLoopArray(sDay, 30)
|
|
else if (eMonth == month && sMonth != eMonth) array = getLoopArray(1, eDay)
|
|
else array = getLoopArray(sDay, eDay)
|
|
break;
|
|
case '02':
|
|
// array = flag ? getLoopArray(1, 29) : getLoopArray(1, 28)
|
|
let day = flag ? 29 : 28
|
|
if (sMonth == month && sMonth != eMonth) array = getLoopArray(sDay, day)
|
|
else if (eMonth == month && sMonth != eMonth) array = getLoopArray(1, eDay)
|
|
else array = getLoopArray(sDay, eDay)
|
|
break;
|
|
default:
|
|
array = '月份格式不正确,请重新输入!'
|
|
}
|
|
return array;
|
|
}
|
|
function getNewDateArry(dates) {
|
|
// 当前时间的处理
|
|
var newDate = dates ? new Date(dates) : new Date();
|
|
var year = withData(newDate.getFullYear()),
|
|
mont = withData(newDate.getMonth() + 1),
|
|
date = withData(newDate.getDate()),
|
|
hour = withData(newDate.getHours()),
|
|
minu = newDate.getMinutes() == 59 ? withData(newDate.getMinutes()) : withData(newDate.getMinutes() + 1)
|
|
// seco = withData(newDate.getSeconds());
|
|
|
|
// return [year, mont, date, hour, minu, seco];
|
|
return [year, mont, date, hour, minu];
|
|
}
|
|
function dateTimePicker(startYear, endYear, sMonth, eMonth, sDay, eDay, sHour, eHour, sMin, eMin, date) {
|
|
// 返回默认显示的数组和联动数组的声明
|
|
var dateTime = [], dateTimeArray = [[], [], [], [], []];
|
|
var start = startYear || 1978;
|
|
var end = endYear || 2100;
|
|
|
|
// 默认开始显示数据
|
|
var defaultDate = date ? [...date.split(' ')[0].split('-'), ...date.split(' ')[1].split(':')] : getNewDateArry();
|
|
// 处理联动列表数据
|
|
/*年月日 时分秒*/
|
|
dateTimeArray[0] = getLoopArray(start, end);
|
|
|
|
dateTimeArray[1] = getLoopArray(Number(sMonth), Number(eMonth));
|
|
// const _sMonth = sMonth < 10 ? '0' + sMonth : sMonth
|
|
// dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1]);
|
|
|
|
dateTimeArray[2] = getMonthDay(start, defaultDate[1], sMonth, eMonth, sDay, eDay);
|
|
if (sMonth == getNewDateArry()[1] && sDay == getNewDateArry()[2] && eMonth == getNewDateArry()[1] && eDay == getNewDateArry()[2]) {
|
|
dateTimeArray[3] = getLoopArray(sHour, getNewDateArry()[3]);
|
|
} else dateTimeArray[3] = getLoopArray(0, getNewDateArry()[3]);
|
|
|
|
dateTimeArray[4] = getLoopArray(0, getNewDateArry()[4]);
|
|
// dateTimeArray[5] = getLoopArray(0, 59);
|
|
console.log('dateTimeArray', dateTimeArray)
|
|
dateTimeArray.forEach((current, index) => {
|
|
console.log('dateTime', current.indexOf(defaultDate[index]))
|
|
dateTime.push(current.indexOf(defaultDate[index]));
|
|
});
|
|
|
|
return {
|
|
dateTimeArray: dateTimeArray,
|
|
dateTime: dateTime
|
|
}
|
|
}
|
|
function getLocation() {
|
|
return new Promise((reslove) => {
|
|
wx.getLocation({
|
|
type: "gcj02",
|
|
success(res) {
|
|
let lat = res.latitude;
|
|
let lng = res.longitude;
|
|
const { latitude, longitude } = res;
|
|
reslove({
|
|
msg: "success",
|
|
data: {
|
|
latitude,
|
|
longitude,
|
|
},
|
|
});
|
|
},
|
|
fail(err) {
|
|
reslove({
|
|
data: "",
|
|
msg: err.errMsg,
|
|
});
|
|
},
|
|
});
|
|
});
|
|
}
|
|
module.exports = {
|
|
cardHide: cardHide,
|
|
formatTime: formatTime,
|
|
formatRichText: formatRichText,
|
|
dateTimePicker: dateTimePicker,
|
|
getMonthDay: getMonthDay,
|
|
getNewDateArry,
|
|
getLoopArray,
|
|
getLocation,
|
|
formatDate
|
|
}
|
|
|