igi_orion_cignacmb
Version:
Censors words out of text
200 lines (172 loc) • 7.76 kB
JavaScript
var CentralWidget = require('./CentralWidget');
var date = $.extend({}, CentralWidget, { //这是一个类,用 new 关键字实例化放到vm的 form 上
type: 'date', //组件的类别,用于service层动态对比配置进行实例化
oneDay: 86400000, //组件允许选择的开始日期
start: "", //组件允许选择的开始日期
end: "",//组件允许选择的结束日期
age: '',
startDate: "",//用于计算年龄的日期参数
relationship: '',
relationshipConfig: { //产品允许的投保日期
"00": {
start: {type: 'Y', value: 70},
end: {type: 'Y', value: 0}
},
"01": {
start: {type: 'Y', value: 70},
end: {type: 'Y', value: 0}
},
"03": {
start: {type: 'Y', value: 70},
end: {type: 'Y', value: 0}
},
"02": {
start: {type: 'Y', value: 70},
end: {type: 'Y', value: 0}
},
"13": {
start: {type: 'Y', value: 70},
end: {type: 'Y', value: 0}
},
},
//身份证有效期次日fix
fixIdTypeExpDate: function () {
var that = this;
try {
that.end = "";
that.start = that.addDate(new Date(), 1);
} catch (e) {
avalon.log(e)
}
},
/**
* 用于根据与投保人关系、prd要求的配置,设置正确的开始及结束日期限制
* 使用前,请正确设置relationship 及 relationshipConfig
*/
pad2: function (n) {
return n < 10 ? '0' + n : n
},
generateTimeReqestNumber: function () {
var that = this;
var date = new Date();
date = date.getTime() + that.oneDay;
date = new Date(date);
return date.getFullYear().toString() + '/' + this.pad2(date.getMonth() + 1) + '/' + this.pad2(date.getDate())
},
fixStarEndDateByRelationship: function (effectiveDate, relationship) {
var that = this;
try {
avalon.log("relationshipConfig769769", effectiveDate, relationship, that.relationshipConfig)
var configForUser = that.relationshipConfig[relationship];
avalon.log('relationshipConfig22366', configForUser)
console.log(that.relationshipConfig);
if(!effectiveDate){
effectiveDate = that.generateTimeReqestNumber()
}
var result = that.calDate(effectiveDate, configForUser)
that.end = result.end;
that.start = result.start;
console.log('方案页出生日期选择范围end',relationship,that.end)
console.log('方案页出生日期选择范围start',relationship,that.start)
} catch (e) {
avalon.log(e)
}
},
validateBetween: function() {
if (!this.value) return false;
if (!this.start || !this.end) return true;
var startDateMill = new Date(this.start.replace(/-/g, "\/")).getTime();
var endDateMill = new Date(this.end.replace(/-/g, "\/")).getTime();
var valueDateMill = new Date(this.value.replace(/-/g, "\/")).getTime();
console.log('fixDateNotBeteenStartAndEnd()', this.start, this.end, this.value);
console.log('fixDateNotBeteenStartAndEnd()', startDateMill, endDateMill, valueDateMill);
return valueDateMill >= startDateMill && valueDateMill <= endDateMill;
},
/**
* 如果年龄不在可选范围内,则处理正确
*/
fixDateNotBeteenStartAndEnd: function (date) {
// function CompareDate(d1, d2) {
// return ((new Date(d1.replace(/-/g, "\/"))) > (new Date(d2.replace(/-/g, "\/"))));
// }
if (!this.validateBetween()) {
if(date){
this.value = date;
}else{
this.value = '1990-01-01';
}
}
},
calDate: function (effectiveDate, config) {
var that = this;
var result = {
start: "",
end: ""
};
avalon.log("config6654856", config)
try {
var oneDay = that.oneDay; //一天的毫秒数
var effectiveDateMS = new Date(effectiveDate).getTime();
console.log('计算出的日期限制:', effectiveDate);
//计算end
if (config.end.type == 'D') {
var time = effectiveDateMS - (oneDay * parseInt(config.end.value));
var yearToCompare = parseInt(new Date(time).getFullYear())
var monthToCompare = parseInt(new Date(time).getMonth() + 1)
var dateToCompare = parseInt(new Date(time).getDate())
result.end = yearToCompare + "-" + that.getFormatDate(monthToCompare) + '-' + that.getFormatDate(dateToCompare + 0);
} else if (config.end.type == 'Y') {
var yearToCompare = parseInt(new Date(effectiveDate).getFullYear())
var monthToCompare = parseInt(new Date(effectiveDate).getMonth() + 1)
var dateToCompare = parseInt(new Date(effectiveDate).getDate())
result.end = yearToCompare - parseInt(config.end.value) + "-" + that.getFormatDate(monthToCompare) + '-' + that.getFormatDate(dateToCompare + 0);
}
//计算start
if (config.start.type == 'D') {
var time = effectiveDateMS - (oneDay * parseInt(config.start.value));
var yearToCompare = parseInt(new Date(time).getFullYear())
var monthToCompare = parseInt(new Date(time).getMonth() + 1)
var dateToCompare = parseInt(new Date(time).getDate())
result.start = yearToCompare + "-" + that.getFormatDate(monthToCompare) + '-' + that.getFormatDate(dateToCompare + 0);
} else if (config.start.type == 'Y') {
var coreectDate = new Date(effectiveDateMS + oneDay) // + 1天
var yearToCompare = parseInt(coreectDate.getFullYear())
var monthToCompare = parseInt(coreectDate.getMonth() + 1)
var dateToCompare = parseInt(coreectDate.getDate())
result.start = yearToCompare - (parseInt(config.start.value) + 1) + "-" + that.getFormatDate(monthToCompare) + '-' + that.getFormatDate(dateToCompare);
}
var end_time = new Date(result.end).getTime()
var now_time = new Date()
if (end_time > now_time.getTime()) {
result.end = now_time.getFullYear() + '-' + that.getFormatDate(now_time.getMonth() + 1) + '-' + that.getFormatDate(now_time.getDate())
}
} catch (e) {
avalon.log(e)
}
console.log('计算出的日期限制:', result);
return result
},
addDate: function (date, days) {
var that = this;
if (days == undefined || days == '') {
days = 1;
}
var date = new Date(date);
date.setDate(date.getDate() + days);
var month = date.getMonth() + 1;
var day = date.getDate();
return date.getFullYear() + '-' + that.getFormatDate(month) + '-' + that.getFormatDate(day);
},
// 日期月份/天的显示,如果是1位数,则在前面加上'0'
getFormatDate: function (arg) {
if (arg == undefined || arg == '') {
return '';
}
var re = arg + '';
if (re.length < 2) {
re = '0' + re;
}
return re;
}
});
module.exports = date;