var week = ['日', '一', '二', '三', '四', '五', '六']
// 判断手机号
function IsTelPhoneNumber(Tel) {
if (!(/^1\d{10}$/.test(Tel))) {
return false;
}
return true
}
// 计算孕周
function calculateGestationalWeeks(time) {
if (time == 0) {
return 0
}
var current = new Date()
return parseInt((current.getTime() - time) / (60 * 60 * 24 * 7 * 1000))
}
function calculateGestationalWeeksNum(currentTime, time) {
if (time == 0) {
return 0
}
var timestamp = new Date(currentTime).getTime();
return parseInt((timestamp - time * 1000) / (60 * 60 * 24 * 7 * 1000))
}
// 计算孕周-天
function calculateGestationalWeekDay(time) {
if (time == 0) {
return 0
}
var current = new Date()
return parseInt((current.getTime() - time) / (60 * 60 * 24 * 1000)) % 7
}
// 计算2天的时间间隔
function calculateTimeInterval(before, later) {
var laterDate = new Date(later)
var beforeDate = new Date(before)
// 去掉多余的时分秒
laterDate = new Date(laterDate.getFullYear(), laterDate.getMonth(), laterDate.getDate())
beforeDate = new Date(beforeDate.getFullYear(), beforeDate.getMonth(), beforeDate.getDate())
var timestamp = laterDate.getTime() - beforeDate.getTime()
return parseInt(timestamp / (60 * 60 * 24 * 1000))
}
// 获取危机颜色值 传入危急值
function getRiskColorWithLevel(level) {
// 健康 轻度 中度 重度 严重
var color = ''
if (level & 8) {
return '#d888d3'
}
if (level & 4) {
return '#f67a65'
}
if (level & 1) {
return '#ff975f'
}
if (level & 2) {
return '#ffc55f'
}
if (level & 16) {
return '#4ec18f'
}
return ''
}
// 首页获取危机颜色值与图片 传入危急值
function healthRating_getRiskInfo(highRisk) {
var level = parseInt(highRisk)
var highRiskLevel = [ // 高危等级颜色
{
name: '重度风险',
color: 'page3_-image_zhongdu_r_n@3x.png'
}, {
name: '中度风险',
color: 'page3_-image_zhongdu_o_n@3x.png'
}, {
name: '轻度风险',
color: 'page3_-image_qingdu_y_n@3x.png'
}, {
name: '严重风险',
color: 'page3_-image_yanzhong_p_n@3x.png'
}, {
name: '健康',
color: 'page3_-image_jiankang_g_n@3x.png'
}
]
// 健康 轻度 中度 重度 严重
if (level & 8) {
return highRiskLevel[3]
}
if (level & 4) {
return highRiskLevel[0]
}
if (level & 1) {
return highRiskLevel[1]
}
if (level & 2) {
return highRiskLevel[2]
}
if (level & 16) {
return highRiskLevel[4]
}
return highRiskLevel[4]
}
function home_getRiskInfo(level) {
var color = [{
image: '../../source/imageSource/page1_yunqi_green_Image@3x.png',
color: '#43bf67'
}, {
image: '../../source/imageSource/page1_yunqi_yellow_Image_n@3x.png',
color: '#ffb42e'
}, {
image: '../../source/imageSource/page1_yunqi_orange_Image_n@3x.png',
color: '#ff7f29'
}, {
image: '../../source/imageSource/page1_yunqi_red_Image_n@3x.png',
color: '#ff6969'
}, {
image: '../../source/imageSource/page1_yunqi_purple_Image_n@3x.png',
color: '#c65dbc'
}]
// 健康 轻度 中度 重度 严重
if (level & 8) {
return color[4]
}
if (level & 4) {
return color[3]
}
if (level & 1) {
return color[2]
}
if (level & 2) {
return color[1]
}
if (level & 16) {
return color[0]
}
return color[0]
}
function DateAdd(interval, number, date) {
/*
* 功能:实现Script的DateAdd功能.
* 参数:interval,字符串表达式,表示要添加的时间间隔.
* 参数:number,数值表达式,表示要添加的时间间隔的个数.
* 参数:date,时间对象.
* 返回:新的时间对象.
* var now = new Date();
* var newDate = DateAdd( "d ",5,now);
*--------------- DateAdd(interval,number,date) -----------------
*/
switch (interval) {
case "y ":
{
date.setFullYear(date.getFullYear() + number);
return date;
break;
}
case "q ":
{
date.setMonth(date.getMonth() + number * 3);
return date;
break;
}
case "m ":
{
date.setMonth(date.getMonth() + number);
return date;
break;
}
case "w ":
{
date.setDate(date.getDate() + number * 7);
return date;
break;
}
case "d ":
{
date.setDate(date.getDate() + number);
return date;
break;
}
case "h ":
{
date.setHours(date.getHours() + number);
return date;
break;
}
case "m ":
{
date.setMinutes(date.getMinutes() + number);
return date;
break;
}
case "s ":
{
date.setSeconds(date.getSeconds() + number);
return date;
break;
}
default:
{
date.setDate(date.getDate() + number);
return date;
break;
}
}
}
function getMonthAllDayWithDate(date) {
//d.getMonth()+1代表下个月,月份索引从0开始,即当前月为6月时,getMonth()返回值为5,创建日期时同理
//此处构造的日期为下个月的第0天,天数索引从1开始,第0天即代表上个月的最后一天
var days = []
var curMonthDays = new Date(date.getFullYear(), (date.getMonth() + 1), 0).getDate()
for (var i = 1; i <= curMonthDays; i++) {
days.push(new Date(date.getFullYear(), date.getMonth(), i))
}
return days
}
// 保留一位小数
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x * 100) / 100;
return f;
}
// 获取最近一周
function getLatestWeek() {
var weekList = []
var today = new Date()
// 倒序
for (var i = 6; i >= 0; i--) {
var day = new Date(today.getFullYear(), today.getMonth(), today.getDate() - i)
var dayInfo = {}
// dayInfo.year = day.getFullYear()
// dayInfo.month = day.getMonth() + 1
dayInfo.date = day.getDay()
// if(dayInfo.date == 0){
// dayInfo.date = '日'
// }
if (i == 0) {
weekList.push('今天')
} else {
weekList.push('周' + week[dayInfo.date])
}
}
return weekList;
}
function getLatestMonth() {
var list = []
var today = new Date()
// 倒序
for (var i = 31; i >= 0; i--) {
var day = new Date(today.getFullYear(), today.getMonth(), today.getDate() - i)
var dayInfo = {}
dayInfo.year = day.getFullYear()
dayInfo.month = day.getMonth() + 1
dayInfo.day = day.getDate()
list.push(dayInfo)
}
return list;
}
/**
* 检查身份证合法
* @param str_idCard sex为human man
* @returns {boolean}
*/
function checkIdCard(str_idCard, sex) {
str_idCard = str_idCard || String(this);
var check = function() {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var lngProduct = 0;
var intCheckDigit;
var intStrLen = str_idCard.length;
var idNumber = str_idCard;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (var i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6, 14);
if (!/^[0-9]{8}$/.test(date8)) {
return false;
}
var year, month, day;
year = date8.substring(0, 4);
month = date8.substring(4, 6);
day = date8.substring(6, 8);
var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year < 1700 || year > 2500) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
// calculate the sum of the products
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
//length is 15
else {
var date6 = idNumber.substring(6, 12);
if (!/^[0-9]{6}$/.test(date6)) {
return false;
}
var month, day, year;
year = date6.substring(0, 2);
month = date6.substring(2, 4);
day = date6.substring(4, 6);
if (!/^\d{2}$/.test(year)) return false;
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
}
return true;
}
if (str_idCard && check(str_idCard)) {
if (undefined != sex) {
var sexStr = undefined,
tmp = 0;
if (15 == str_idCard.length) {
tmp = str_idCard.substring(str_idCard.length - 1, str_idCard.length);
} else if (18 == str_idCard.length) {
tmp = str_idCard.substr(str_idCard.length - 2, 1);
}
if (0 == tmp % 2) {
sexStr = 'woman';
} else {
sexStr = 'man';
}
if (sex != sexStr) return false;
}
return true;
}
return false;
}
/**
* 计算预产期
* @param str_idCard sex为human man
* @returns {boolean}
*/
function clacYCQ(date) {
var date = new Date(date);
var tmp = date.getDate();
date.setDate(1);
date.setMonth(date.getMonth() + 9);
var date2 = new Date(date.getTime());
date2.setMonth(date2.getMonth() + 1);
date2.setDate(0);
if (date2.getDate() > tmp) {
date.setDate(tmp + 7);
} else {
date.setDate(date2.getDate());
date.setDate(date.getDate() + 7);
}
return date;
}
/**
* 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
**/
function isNumber(val) {
var self = this
// isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
if (val === "" || val == null) {
return false;
}
var startChar = val.substring(0, 1)
var encChar = val.substring(val.length - 1, val.length)
if (startChar == "." || encChar == ".") {
return false;
} else {
if (!isNaN(val)) {
return true;
} else {
return false;
}
}
}
/**
* 检查身份证合法
* @param str_idCard sex为human man
* @returns {boolean}
*/
/*function checkIdCard(str_idCard, sex) {
str_idCard = str_idCard || String(this);
var check = function() {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var lngProduct = 0;
var intCheckDigit;
var intStrLen = str_idCard.length;
var idNumber = str_idCard;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (var i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6, 14);
if (!/^[0-9]{8}$/.test(date8)) {
return false;
}
var year, month, day;
year = date8.substring(0, 4);
month = date8.substring(4, 6);
day = date8.substring(6, 8);
var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year < 1700 || year > 2500) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
// calculate the sum of the products
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
//length is 15
else {
var date6 = idNumber.substring(6, 12);
if (!/^[0-9]{6}$/.test(date6)) {
return false;
}
var month, day, year;
year = date6.substring(0, 2);
month = date6.substring(2, 4);
day = date6.substring(4, 6);
if (!/^\d{2}$/.test(year)) return false;
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
}
return true;
}
if (str_idCard && check(str_idCard)) {
if (undefined != sex) {
var sexStr = undefined,
tmp = 0;
if (15 == str_idCard.length) {
tmp = str_idCard.substring(str_idCard.length - 1, str_idCard.length);
} else if (18 == str_idCard.length) {
tmp = str_idCard.substr(str_idCard.length - 2, 1);
}
if (0 == tmp % 2) {
sexStr = 'woman';
} else {
sexStr = 'man';
}
if (sex != sexStr) return false;
}
return true;
}
return false;
}*/
module.exports = {
IsTelPhoneNumber: IsTelPhoneNumber,
calculateGestationalWeeks: calculateGestationalWeeks,
calculateGestationalWeeksNum: calculateGestationalWeeksNum,
calculateTimeInterval: calculateTimeInterval,
getRiskColorWithLevel: getRiskColorWithLevel,
calculateGestationalWeekDay: calculateGestationalWeekDay,
home_getRiskInfo: home_getRiskInfo,
healthRating_getRiskInfo: healthRating_getRiskInfo,
DateAdd: DateAdd,
toDecimal: toDecimal,
getMonthAllDayWithDate: getMonthAllDayWithDate,
getLatestWeek: getLatestWeek,
getLatestMonth: getLatestMonth,
checkIdCard: checkIdCard,
isNumber: isNumber,
clacYCQ: clacYCQ
}