UNPKG

igi_orion_cignacmb

Version:

Censors words out of text

200 lines (172 loc) 7.76 kB
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;