123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /*
- * @Author: Marte
- * @Date: 2017-09-26 14:33:29
- * @Last Modified by: Marte
- * @Last Modified time: 2017-10-12 11:40:26
- */
- 'use strict';
- var fdrCalculater = {
- // 限小数点前5位后5位
- "testPrice": function(val) {
- var reg = /^(?!0\d)\d{1,5}(\.\d{1,5})?$/;
- return reg.test(val);
- },
- /**
- * [商贷/公贷(等额本息还款)]
- * @param {[type]} _dksum [贷款总额]
- * @param {[type]} _dkrate [贷款利率]
- * @param {[type]} _dklimit [贷款期限]
- */
- "businessBx": function(_dksum, _dkrate, _dklimit) {
- var busmodelBx = new Object;
- // 等额本息还款:
- //贷款总额
- var _dedk = _dksum; //贷款总额
- // 每月还款:单位(元),精确到个位数;
- // 公式:每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
- var _bxsy = (_dedk * 10000) * (_dkrate * Math.pow((1 + _dkrate), _dklimit)) / (Math.pow((1 + _dkrate), _dklimit) - 1);
- busmodelBx.bxsy = _bxsy.toFixed(2);
- // 利息总额:单位(万元),精确到小数点后2位;
- // 公式:总利息=还款月数×每月月供额-贷款本金
- var _bxlx = (_dklimit * _bxsy) / 10000 - _dedk;
- busmodelBx.bxlx = _bxlx.toFixed(2);
- return busmodelBx;
- },
- /**
- * [商贷/公贷(等额本金还款)]
- * @param {[type]} _dksum [贷款总额]
- * @param {[type]} _dkrate [贷款利率]
- * @param {[type]} _dklimit [贷款期限]
- */
- "businessBj": function(_dksum, _dkrate, _dklimit) {
- var busmodelBj = new Object;
- var _dedk = _dksum; //贷款总额
- // 等额本金还款:
- // 首月还款=(贷款本金÷还款月数)+(贷款本金-已归还本金累计额)×月利率
- busmodelBj.bjsy = (((_dedk / _dklimit) + (_dedk - 0) * _dkrate) * 10000).toFixed(2);
- // 每月递减=贷款本金÷还款月数×月利率
- busmodelBj.monthcut = ((_dedk / _dklimit * _dkrate) * 10000).toFixed(2);
- // 利息总额=总贷款数×月利率×(还款次数+1)÷2
- busmodelBj.bjlx = (_dedk * _dkrate * (_dklimit + 1) / 2).toFixed(2);
- return busmodelBj;
- },
- /**
- * [税费计算]
- * @param {[type]} _type [购房性质类型 1首套房,2二套房]
- * @param {[type]} _sigprice [房屋单价]
- * @param {[type]} _sigarea [房屋类型]
- */
- "sfCount": function(_type, _sigprice, _sigarea) {
- var sfmodel = new Object;
- var _rate = 0;
- if (_sigarea <= 90) {
- _rate = 0.01;
- } else {
- if (_type == 1) {
- _rate = 0.015;
- } else if (_type == 2) {
- _rate = 0.02;
- }
- }
- //房屋总价:房屋单价*房屋面积;
- //契税:房屋总价*税率;
- var _houseSum = (Number(_sigprice) * Number(_sigarea) / 10000).toFixed(2);
- sfmodel.sumprice = _houseSum; //房屋总价
- sfmodel.sumtax = (_houseSum * 10000 * _rate).toFixed(2); //契税
- return sfmodel;
- },
- /**
- * [购房能力评估]
- * @param {[type]} _payment [现有首付金额]
- * @param {[type]} _pay [每月购房支出]
- * @param {[type]} _limittext [期望贷款年限文字]
- * @param {[type]} _limitnum [期望贷款年限数字]
- * @param {[type]} _area [期望购房面积]
- */
- "buyHouseAccess": function(_payment, _pay, _limittext, _limitnum, _area) {
- // 可贷款金额=月供*还款年限*商贷标准月利率
- var accessmodel = new Object;
- var _monthrate = 0.049 / 12; //月利率
- //可贷款金额
- // 每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
- var _mp = Math.pow((1 + _monthrate), _limitnum);
- var _dkprice = (((_mp - 1) * _pay) / (10000 * _monthrate * _mp)).toFixed(2);
- var _paysum = ((Number(_payment) + Number(_dkprice))).toFixed(2); //可购房总价(万元)
- var _sigprice = ((_paysum * 10000) / Number(_area)).toFixed(2); //(元)
- accessmodel.paysum = _paysum;
- accessmodel.housearea = _area;
- accessmodel.sigprice = _sigprice;
- accessmodel.limit = _limittext;
- return accessmodel;
- }
- };
|