/**费用计算器超类*/
var RateMap = function() {
this.rates = [];
this.initRate();
}
RateMap.prototype = {
rates:null,
/**查找费率记录*/
findRecord:function(con)
{
for (var i = 0; i < this.rates.length; i++)
{
var rate = this.rates[i];
var allMatch = true;
for (var key in con)
{
var match = false;
if (typeof con[key] == "function")
{
match = con[key].call(this, rate);
} else
{
match = (rate[key] == con[key]);
}
if (!match)
{
allMatch = false;
break;
}
}
if (allMatch)
{
return rate;
}
}
return null;
},
initRate:function() {
},
addRate:function(defaultConfig, configs) {
for (var i = 0; i < configs.length; i++)
{
var x = {};
Ext.apply(x, defaultConfig);
Ext.apply(x, configs[i]);
this.rates.push(x);
}
}
}
/**XX保险产品的费用计算器*/
var gwcc_sl_RateMap = Ext.extend(RateMap, {
/**计算费用*/
cal:function(con) {
//全年
if (con.year)
{
return this.findYear(con);
}
//30-90天
if (con.days > 30 && con.days < 90)
{
return this.periodFee(con);
}
//大于90天
if (con.days >= 90)
{
return this.find90DaysFee(con);
}
//1-30天之间
return this.findRecord({scope:con.scope,days:function(rate) {
return rate.start <= con.days && rate.end >= con.days;
}});
},
findYear:function(con) {
return this.findRecord({scope:con.scope,days:function(rate) {
return rate.year;
}})
},
periodFee:function(con) {
var pr = this.findRecord({scope:con.scope,days:function(rate) {
return rate.bigThan == 30;
}})
var lr = this.findRecord({scope:con.scope,days:function(rate) {
return rate.end == 30;
}});
var days = con.days - 30;
var periods = Math.floor(days / 7) + (days % 7 > 0 ? 1 : 0);
return {a:(lr.a + pr.a * periods),b:(lr.b + pr.b * periods),c:(lr.c + pr.c * periods)}
},
find90DaysFee:function(con) {
return this.findRecord({scope:con.scope,days:function(rate) {
return rate.bigThan == 90;
}})
},
/**初始化费率表*/
initRate:function() {
this.addRate({scope:"out"}, [{
start:1,end:5,a:158,b:87,c:53
},{
start:6,end:10,a:237,b:130,c:80
},{
start:11,end:15,a:317,b:173,c:106
},{
start:16,end:20,a:396,b:217,c:133
},{
start:21,end:25,a:495,b:271,c:166
},{
start:26,end:30,a:593,b:325,c:199
}]);
this.addRate({scope:"inout"}, [{
start:1,end:5,a:190,b:104,c:64
},{
start:6,end:10,a:285,b:156,c:96
},{
start:11,end:15,a:380,b:208,c:127
},{
start:16,end:20,a:475,b:260,c:159
},{
start:21,end:25,a:593,b:325,c:199
},{
start:26,end:30,a:712,b:390,c:239
}])
this.addRate({scope:"out"}, [{
year:true,a:1980,b:1080,c:660
}]);
this.addRate({scope:"inout"}, [{
year:true,a:2380,b:1300,c:790
}]);
this.addRate({scope:"out"}, [{
bigThan:90,a:989,b:542,c:332
}]);
this.addRate({scope:"inout"}, [{
bigThan:90,a:1187,b:650,c:398
}]);
this.addRate({scope:"out"}, [{
bigThan:30,a:40,b:22,c:13
}]);
this.addRate({scope:"inout"}, [{
bigThan:30,a:47,b:26,c:16
}]);
}
})
分享到:
相关推荐
一段js代码
笔者精选了近300段JavaScript代码和400种解决方案,覆盖了几乎所有的脚本处理模块,最大程度地帮助读者学习、实践JavaScript的各个方面,让读者成为一个有代码实践、有思想品质、有技术深度的JavaScript高手。...
在描述中提到的"一个JS代码一个JS代码"可能是在强调连续的代码片段或逻辑单元,这在实际编程中非常常见,每个代码段执行特定的任务。例如,我们可能会有一个用于处理用户输入的函数,另一个用于更新UI状态的函数。 ...
标题 "处理ajax返回的js代码" 涉及的核心知识点是使用Ajax技术动态获取并执行JavaScript代码。Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...
这段浪漫代码是通过HTML、CSS和JavaScript编写的,通过结合这三种前端技术,我们创建了一个令人心动的情人节表白页面。包含了逐行打印文字、变色效果和玫瑰花的飘落等特效。它能够营造出浪漫的氛围,并用创意的方式...
`example-inline.php`可能包含一段内联的JavaScript代码,通过调用`JavaScriptPacker`的函数进行加密。而`example-file.php`可能是读取一个外部JS文件,然后对其进行加密处理。这些示例代码可以帮助初学者快速理解和...
### 一段JS小代码,计算距春节还有多少天 #### 背景介绍 随着互联网技术的发展,前端开发越来越受到重视。JavaScript(简称JS)作为前端开发的核心语言之一,在网页动态效果、用户交互等方面发挥着重要作用。对于...
通过以上步骤,我们可以实现一个简单的JS手机端活动弹窗,确保每天只弹出一次。这个功能在很多网站和应用中都有应用,能够提升用户体验。记得在实际开发中,还需要考虑跨域问题、兼容性及异常处理等细节。
"页面代码高亮度显示JS代码"是一个专门用于在网页上实现这一功能的JavaScript库。这种库通常会通过解析代码的语法结构,为不同的语言元素(如关键字、变量、字符串等)赋予不同的颜色或样式,从而提升代码的可读性。...
JS脚本注入是一种常见的网页攻击手法,通过注入恶意脚本来控制网页的行为。在这个实例中,我们将展示如何使用JS脚本注入来突破网页本地脚本验证方法,跳过验证码,并自动批量查询信息。 网页JS脚本注入的基本理论是...
在JavaScript编程中,动态插入脚本是一种常见的技术,用于在页面加载后或者根据某些条件按需加载外部的JavaScript文件。这种技术在处理大型应用、优化页面性能或实现异步加载时非常有用。本文将详细介绍如何让动态...
一段JavaScript是如何执行的js事件循环异步任务异步任务队列测试代码结果调试执行结果 js事件循环 当我们执行一行js代码时,如果是同步任务,就把它直接放到执行栈里面去执行,如果是异步任务,会把它放到一个异步的任务...
"JS代码混淆软件"是一个小巧而实用的工具,它可以帮助开发者快速地对JavaScript代码进行混淆。以下是一些常见的JS代码混淆工具: 1. UglifyJS:一个流行的JavaScript压缩和混淆工具,可以删除未使用的变量、函数,...
1. **说明.htm**:这是一个HTML文件,很可能包含了关于如何使用这段代码的详细说明,包括可能的HTML结构、CSS样式以及JavaScript代码的使用方法。用户可以通过打开这个文件来理解代码的工作原理和部署步骤。 2. **...
本压缩包“js右侧悬浮在线客服代码.zip”显然包含了一段用于创建网页右侧悬浮的在线客服功能的JavaScript代码。这种功能常见于许多网站,为用户提供即时帮助和咨询服务。 首先,我们需要了解JavaScript如何实现悬浮...
`loadUrl()`通常用于加载整个网页或者执行一段JS代码,例如: ```java webView.loadUrl("javascript:myJSFunction()"); ``` `evaluateJavascript()`则更高效,它会直接返回JavaScript表达式的执行结果,适合进行...
这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...
基于实用、实践、前瞻性、学习的原则,笔者精选了近300段JavaScript代码和400种解决方案,覆盖了几乎所有的脚本处理模块,最大程度地帮助读者学习、实践JavaScript的各个方面,让读者成为一个有代码实践、有思想品质...
HTML 背景轮播 JS 代码是一段可以插入 HTML 页面的 JavaScript 代码,用于实现背景图片轮播效果。这段代码可以直接嵌入 HTML 代码的最后面,以实现页面背景图片的轮播功能。 知识点 1: JavaScript 变量声明 在这段...
在"很精彩的一段JS"这个主题中,我们可以深入探讨JavaScript的核心概念以及如何利用JS进行高效编程。 首先,JavaScript的基础包括变量、数据类型、操作符、控制结构、函数等。变量是存储值的容器,JS支持六大数据...