`
nihongye
  • 浏览: 102052 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一段美丽的js代码

阅读更多
/**费用计算器超类*/
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
        }]);
    }
})
分享到:
评论
1 楼 KKFC 2008-10-28  
不错  很好读

相关推荐

    一段js代码

    一段js代码

    超实用的JS代码段-源码.zip

    笔者精选了近300段JavaScript代码和400种解决方案,覆盖了几乎所有的脚本处理模块,最大程度地帮助读者学习、实践JavaScript的各个方面,让读者成为一个有代码实践、有思想品质、有技术深度的JavaScript高手。...

    一个JS代码一个JS代码

    在描述中提到的"一个JS代码一个JS代码"可能是在强调连续的代码片段或逻辑单元,这在实际编程中非常常见,每个代码段执行特定的任务。例如,我们可能会有一个用于处理用户输入的函数,另一个用于更新UI状态的函数。 ...

    处理ajax返回的js代码

    标题 "处理ajax返回的js代码" 涉及的核心知识点是使用Ajax技术动态获取并执行JavaScript代码。Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...

    520程序员前端表白代码,使用 HTML、CSS 和 JavaScript 编写一段浪漫的代码,用于表达爱意

    这段浪漫代码是通过HTML、CSS和JavaScript编写的,通过结合这三种前端技术,我们创建了一个令人心动的情人节表白页面。包含了逐行打印文字、变色效果和玫瑰花的飘落等特效。它能够营造出浪漫的氛围,并用创意的方式...

    js packer PHP版,加密js源代码文件

    `example-inline.php`可能包含一段内联的JavaScript代码,通过调用`JavaScriptPacker`的函数进行加密。而`example-file.php`可能是读取一个外部JS文件,然后对其进行加密处理。这些示例代码可以帮助初学者快速理解和...

    一段js小代码,计算距春节还有多少天.docx

    ### 一段JS小代码,计算距春节还有多少天 #### 背景介绍 随着互联网技术的发展,前端开发越来越受到重视。JavaScript(简称JS)作为前端开发的核心语言之一,在网页动态效果、用户交互等方面发挥着重要作用。对于...

    Js实现手机端活动弹窗一天只弹一次代码

    通过以上步骤,我们可以实现一个简单的JS手机端活动弹窗,确保每天只弹出一次。这个功能在很多网站和应用中都有应用,能够提升用户体验。记得在实际开发中,还需要考虑跨域问题、兼容性及异常处理等细节。

    页面代码高亮度显示JS代码

    "页面代码高亮度显示JS代码"是一个专门用于在网页上实现这一功能的JavaScript库。这种库通常会通过解析代码的语法结构,为不同的语言元素(如关键字、变量、字符串等)赋予不同的颜色或样式,从而提升代码的可读性。...

    网页js脚本注入,可执行任意代码。

    JS脚本注入是一种常见的网页攻击手法,通过注入恶意脚本来控制网页的行为。在这个实例中,我们将展示如何使用JS脚本注入来突破网页本地脚本验证方法,跳过验证码,并自动批量查询信息。 网页JS脚本注入的基本理论是...

    如何让动态插入的javascript脚本代码跑起来

    在JavaScript编程中,动态插入脚本是一种常见的技术,用于在页面加载后或者根据某些条件按需加载外部的JavaScript文件。这种技术在处理大型应用、优化页面性能或实现异步加载时非常有用。本文将详细介绍如何让动态...

    一段JavaScript代码是如何执行的

    一段JavaScript是如何执行的js事件循环异步任务异步任务队列测试代码结果调试执行结果 js事件循环 当我们执行一行js代码时,如果是同步任务,就把它直接放到执行栈里面去执行,如果是异步任务,会把它放到一个异步的任务...

    JS代码混淆软件(小巧实用)

    "JS代码混淆软件"是一个小巧而实用的工具,它可以帮助开发者快速地对JavaScript代码进行混淆。以下是一些常见的JS代码混淆工具: 1. UglifyJS:一个流行的JavaScript压缩和混淆工具,可以删除未使用的变量、函数,...

    JS在线答题选择结果代码.zip

    1. **说明.htm**:这是一个HTML文件,很可能包含了关于如何使用这段代码的详细说明,包括可能的HTML结构、CSS样式以及JavaScript代码的使用方法。用户可以通过打开这个文件来理解代码的工作原理和部署步骤。 2. **...

    js右侧悬浮在线客服代码.zip

    本压缩包“js右侧悬浮在线客服代码.zip”显然包含了一段用于创建网页右侧悬浮的在线客服功能的JavaScript代码。这种功能常见于许多网站,为用户提供即时帮助和咨询服务。 首先,我们需要了解JavaScript如何实现悬浮...

    android JS与java代码相互调用

    `loadUrl()`通常用于加载整个网页或者执行一段JS代码,例如: ```java webView.loadUrl("javascript:myJSFunction()"); ``` `evaluateJavascript()`则更高效,它会直接返回JavaScript表达式的执行结果,适合进行...

    超实用的JavaScript代码段.pdf

    这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...

    超实用的javascript代码段+源码

    基于实用、实践、前瞻性、学习的原则,笔者精选了近300段JavaScript代码和400种解决方案,覆盖了几乎所有的脚本处理模块,最大程度地帮助读者学习、实践JavaScript的各个方面,让读者成为一个有代码实践、有思想品质...

    html背景轮播js代码

    HTML 背景轮播 JS 代码是一段可以插入 HTML 页面的 JavaScript 代码,用于实现背景图片轮播效果。这段代码可以直接嵌入 HTML 代码的最后面,以实现页面背景图片的轮播功能。 知识点 1: JavaScript 变量声明 在这段...

    很精彩的一段JS

    在"很精彩的一段JS"这个主题中,我们可以深入探讨JavaScript的核心概念以及如何利用JS进行高效编程。 首先,JavaScript的基础包括变量、数据类型、操作符、控制结构、函数等。变量是存储值的容器,JS支持六大数据...

Global site tag (gtag.js) - Google Analytics