Toggle navigation
工资收入、五险一金、个人所得税走势图
By
smartcone
2017-06-14 07:30:06
脚本
16
21
作品使用的第三方脚本
数据管理
上传数据
支持小于 5M 任意格式(csv, xlsx, json, xml, ...)的数据文件
上传后可以通过生成的文件链接异步获取托管的数据。
历史数据
0 条
无历史数据
代码修改记录
信息提示
保存作品
对当前截图不满意?你还可以
上传本地截图
重新截图
作品名称
作品描述
标签
geo
grid
legend
markLine
markPoint
bar
effectScatter
line
lines
map
timeline
title
toolbox
tooltip
visualMap
作品默认版本
最新
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
20:11:45
图表已生成
整理代码
刷新
代码
//-----------------------------dn:可进行参数设置------------------------------ var bFixedIn = false; // 固定社保基数标志:false不固定,true固定 var bFixedHouse = false; // 固定公积金基数标志:false不固定,true固定 var fFixedInBase = 13768; // 固定的社保基数 var fFixedHouseBase = 12000; // 固定的公积金基数 // var fExemptionPoint = 3500; // 免税起点 var fExemptionPoint = 5000; // 2018新政免税起点 // 五险一金个人比例 var fRateInEnd = 0.08; // 养老 8% var fRateInMed = 0.02; // 医疗 2% var fRateInUnEmp = 0.002; // 失业 0.2% var fRateInInjuery = 0; // 工伤 var fRateInMate = 0; // 生育 var fRateInHouse = 0.12; // 公积金 // 北京2016年上、下限 // var fInEndMin = 2834; // 养老保险下限 // var fInEndMax = 21258; // 养老保险上限 // var fInMedMin = 4252; // 医疗保险下限 // var fInMedMax = fInEndMax; // 医疗保险上限 // var fInHouseMin = 412.8 / 2; // 公积金下限 // var fInHouseMax = 5101.92 / 2; // 公积金上限 // 北京2017年上、下限 var fInEndMin = 3387; // 养老保险下限 var fInEndMax = 25401; // 养老保险上限 var fInMedMin = 5080; // 医疗保险下限 var fInMedMax = fInEndMax; // 医疗保险上限 var fInHouseMin = 2120*0.24 / 2; // 公积金下限 var fInHouseMax = 6096 / 2; // 公积金上限 //-----------------------------up:可进行参数设置------------------------------ // 计算人个交五险一金 function funcCalc5In(fIncome) { var fSum = 0; // 养老 var fInEndTmp = fIncome < fInEndMin ? fInEndMin : (fIncome > fInEndMax ? fInEndMax : fIncome); fSum += fInEndTmp * fRateInEnd; // 医疗 var fInMedTmp = fIncome < fInMedMin ? fInMedMin : (fIncome > fInMedMax ? fInMedMax : fIncome); fSum += fInMedTmp * fRateInMed; // 失业 var fInUnEmpTmp = fIncome < fInEndMin ? fInEndMin : (fIncome > fInEndMax ? fInEndMax : fIncome); fSum += fInUnEmpTmp * fRateInUnEmp; // 工伤 var fInInjueryTmp = fIncome < fInMedMin ? fInMedMin : (fIncome > fInMedMax ? fInMedMax : fIncome); fSum += fInInjueryTmp * fRateInInjuery; // 生育 var fInMateTmp = fIncome < fInMedMin ? fInMedMin : (fIncome > fInMedMax ? fInMedMax : fIncome); fSum += fInMateTmp * fRateInMate; return fSum; } // 计算公积金 function funcCalcHouse(fIncome) { // 公积金 var fInHouseTmp = fIncome * fRateInHouse; fInHouseTmp = fInHouseTmp < fInHouseMin ? fInHouseMin : (fInHouseTmp > fInHouseMax ? fInHouseMax : fInHouseTmp); return fInHouseTmp; } // // 计算税 // function funcCalcTax(fIncome, f5In, fExemptionPoint) { // var iRet = 0; // var strRank = ''; // var fVal = fIncome - f5In - fExemptionPoint; // if (fVal <= 0) { // iRet = 0; // strRank = '不用交税'; // } // else if (fVal <= 1500){ // iRet = fVal * 0.03; // strRank = '(0, 1500]'; // } // else if (fVal <= 4500) { // iRet = fVal * 0.1 - 105; // strRank = '(1500, 4500]'; // } // else if (fVal <= 9000) { // iRet = fVal * 0.2 - 555; // strRank = '(4500, 9000]'; // } // else if (fVal <= 35000) { // iRet = fVal * 0.25 - 1005; // strRank = '(9000, 35000]'; // } // else if (fVal <= 55000) { // iRet = fVal * 0.3 - 2755; // strRank = '(35000, 55000]'; // } // else if (fVal <= 80000) { // iRet = fVal * 0.35 - 5505; // strRank = '(55000, 80000]'; // } // else { // iRet = fVal * 0.45 - 13505; // strRank = '土豪'; // } // var objTmp = {}; // objTmp.val = iRet; // objTmp.rank = strRank; // return objTmp; // } // 计算税 2018.10 function funcCalcTax(fIncome, f5In, fExemptionPoint) { var iRet = 0; var strRank = ''; var fVal = fIncome - f5In - fExemptionPoint; if (fVal <= 0) { iRet = 0; strRank = '不用交税'; } else if (fVal <= 3000){ iRet = fVal * 0.03; strRank = '(0, 3000]'; } else if (fVal <= 12000) { iRet = fVal * 0.1 - 210; strRank = '(3000, 12000]'; } else if (fVal <= 25000) { iRet = fVal * 0.2 - 1410; strRank = '(12000, 25000]'; } else if (fVal <= 35000) { iRet = fVal * 0.25 - 2660; strRank = '(25000, 35000]'; } else if (fVal <= 55000) { iRet = fVal * 0.3 - 4410; strRank = '(35000, 55000]'; } else if (fVal <= 80000) { iRet = fVal * 0.35 - 7160; strRank = '(55000, 80000]'; } else { iRet = fVal * 0.45 - 15160; strRank = '土豪'; } var objTmp = {}; objTmp.val = iRet; objTmp.rank = strRank; return objTmp; } var aryIncomeX = []; var aryIncomeYTax = []; var aryIncomeY = []; var aryIncomeYRankDesc = []; var aryIncomeY5In = []; var aryIncomeYHouse = []; var fIncomeLeft = 5000; var fIncomeRight = 100000; for (var i = fIncomeLeft; i <= fIncomeRight; i += 100) { if (i > 50000) { i += 900; } aryIncomeX.push(i); var f5In = funcCalc5In(bFixedIn ? fFixedInBase : i); //.toFixed(2); var fHousePerson = funcCalcHouse(bFixedHouse ? fFixedHouseBase : i); //.toFixed(2); var f5In_House = f5In + fHousePerson; var objVal_Rank = funcCalcTax(i, f5In_House, fExemptionPoint); var fTax = Math.ceil(objVal_Rank.val); aryIncomeYTax.push(fTax); aryIncomeY.push(i - fTax - f5In_House); aryIncomeY5In.push(f5In); aryIncomeYHouse.push(fHousePerson); aryIncomeYRankDesc.push(objVal_Rank.rank); } option = { title: { text: '北京个税(社保2017基): 起征点: ' + fExemptionPoint }, tooltip: { trigger: 'axis', formatter: function(params) { var iIndex = params[0].dataIndex; var aryHtml = []; // 收入 aryHtml.push('收入:' + aryIncomeX[iIndex] + '
'); // 五险 aryHtml.push('五险:' + aryIncomeY5In[iIndex].toFixed(2) + '
'); // 公积金 aryHtml.push('公积金:' + aryIncomeYHouse[iIndex].toFixed(2) + '
'); // 五险+公积金 aryHtml.push('五险+公积金:' + (aryIncomeY5In[iIndex] + aryIncomeYHouse[iIndex]).toFixed(2) + '
'); // 个税 aryHtml.push('个税:' + aryIncomeYTax[iIndex].toFixed(2) + '
'); // 个税等级 aryHtml.push('个税等级:' + aryIncomeYRankDesc[iIndex] + '
'); // 五险+公积金+个税 aryHtml.push('五险+公积金+个税:' + (aryIncomeY5In[iIndex] + aryIncomeYHouse[iIndex] + aryIncomeYTax[iIndex]).toFixed(2) + '
'); // 税后收入 aryHtml.push('税后收入:' + aryIncomeY[iIndex].toFixed(2) + '
'); // +公积金税后收入 aryHtml.push('+公积金税后收入:' + (aryIncomeY[iIndex] + aryIncomeYHouse[iIndex] * 2).toFixed(2) + '
'); // 年收入 aryHtml.push('年收入:' + (aryIncomeX[iIndex] * 12).toFixed(2) + '
'); // 税后年收入 aryHtml.push('税后年收入:' + (aryIncomeY[iIndex] * 12).toFixed(2) + '
'); // +公积金税后年收入 aryHtml.push('+公积金税后年收入:' + ((aryIncomeY[iIndex] + aryIncomeYHouse[iIndex] * 2) * 12).toFixed(2) + '
'); // 年缴税 aryHtml.push('年缴税:' + (aryIncomeYTax[iIndex] * 12).toFixed(2) + '
'); return aryHtml.join(''); } }, xAxis: { data: aryIncomeX }, yAxis: [ { type: 'value', scale: true, name: 'tax', //max: 20000, min: 0 }, { type: 'value', scale: true, name: 'income', max: fIncomeRight, min: 0, splitLine: { show: false } } ], legend: { right: 20, data: ['tax', 'income'] }, dataZoom: [{ start: 0, end: 100 }, { type: 'inside' }], series: [{ name: 'tax', type: 'line', yAxisIndex: 0, data: aryIncomeYTax } , { name: 'income', type: 'line', yAxisIndex: 1, data: aryIncomeY } ] };