计算税收在线工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | <!DOCTYPE html> <html ng-app= "myApp" > <head> <meta charset= "UTF-8" > <title>Angularjs service</title> <link rel= "stylesheet" href= "lib/bootstrap-3.3.7/dist/css/bootstrap.css" > <style> .zh-input { width: 90px; display: inline-block; } .zh-tab { margin-bottom: 10px; } .zh-shou-yi { font-size: 29px; } .mgl10 { margin-left: 10px; } .ftwbold { font-weight: bold; font-size: 17px; } </style> </head> <body style= "margin: 20px" > <div ng-controller= "myController" > <ul class = "nav nav-tabs zh-tab" > <li role= "presentation" ng-click= "tabChange('singleInvest')" ng- class = "{'active': showType === 'singleInvest'}" > <a href= "#" >计算</a> </li> </ul> <label class = "ftwbold" >起征点:</label> <input type= "text" class = "form-control zh-input" ng-model= "qiZhengDian" ><br> <label class = "ftwbold" >Tup:</label>{{tup}}<br> <label class = "ftwbold" >年终奖:</label> <input type= "text" class = "form-control zh-input" ng-model= "nianZhongJiang" > <br> <label class = "ftwbold" >年终奖和Tup纳税:</label>{{nianZhongJiangNaShui}}<br> <label class = "ftwbold" >总计扣税:</label>{{totalTax}}<br> <form ng-show= "showType === 'singleInvest'" > <div class = "form-group" ng-repeat= "item in money track by $index" > <label class = "ftwbold" >{{$index + 1}}月:</label> <label class = "mgl10" >gongzi</label> <input type= "text" class = "form-control zh-input" ng-model= "item.common" > <label class = "mgl10" >其它</label> <input type= "text" class = "form-control zh-input" ng-model= "item.other" > <label class = "mgl10" >WuXianYiJin</label> <input type= "text" class = "form-control zh-input" ng-model= "item.wuXianYiJin" > <label class = "mgl10" >本月附加扣除</label> <input type= "text" class = "form-control zh-input" ng-model= "item.fuJiaKouChu" > <label class = "mgl10" >benyue jiao shui:</label>{{item.tax}} <label class = "mgl10" >累计JiaoShui:</label>{{item.leiJiJiaoShui}} <label class = "mgl10" >累计YingNaShuiEDu:</label>{{item.leiJiYingNaShui}} </div> </form> </div> </body> <script type= "text/javascript" src= "./lib/jquery.js" ></script> <script type= "text/javascript" src= "./lib/angular.js" ></script> <script type= "text/javascript" src= "./lib/bootstrap-3.3.7/dist/js/bootstrap.js" ></script> <script type= "text/javascript" > var myApp = angular.module( "myApp" , []); myApp.controller( "myController" , [ "$scope" , "$filter" , function ($scope, $filter) { $scope.qiZhengDian = 5000; $scope.nianZhongJiang = 180000; $scope.tup = 63000; $scope.nianZhongJiangNaShui = 0; $scope.$watch( 'nianZhongJiang' , function (newVal) { var shiJiTotal = parseInt($scope.nianZhongJiang, 10) + $scope.tup - $scope.money[4].other; $scope.nianZhongJiangNaShui = shiJiTotal * getShuiLv(shiJiTotal) - getJiangJinSuSuanKouChu(shiJiTotal); $scope.totalTax = $scope.nianZhongJiangNaShui + $scope.money[11].leiJiJiaoShui; }); $scope.money = []; var salaryModel; for ( var i = 0; i < 12; i++) { salaryModel = { common : 25300, // 基本工资 other: 0, // 其它收入 fuJiaKouChu: 4000, // 本月附加扣除数量 tax: 0, // 本月缴税数量 leiJiJiaoShui: 0, // 本年到当月累计缴税 leiJiYingNaShui: 0, // 本年到当月累计应缴税额度 wuXianYiJin: 2437, // 本月五险一金 }; $scope.money.push(salaryModel); } initMoney(); // 当年有特殊情况的可以在这初始化,避免刷新后要不停的输入 function initMoney() { $scope.money[0].fuJiaKouChu = 3000; $scope.money[1].fuJiaKouChu = 3000; $scope.money[2].fuJiaKouChu = 3000; $scope.money[1].other = 21262; // 上一年月末加班+专项激励3000 $scope.money[2].other = 500; // 总裁奖500 } $scope.$watch( 'money' , function (newVal) { console.log( 'watch money' ); for ( var i = 0; i < 12; i++) { var item = $scope.money[i]; item.dangYueYingNaShui = item.common + parseInt(item.other) - item.wuXianYiJin - $scope.qiZhengDian - item.fuJiaKouChu; if (i === 0) { item.leiJiYingNaShui = parseInt(item.dangYueYingNaShui, 10); item.tax = parseInt( item.leiJiYingNaShui * getShuiLv(item.leiJiYingNaShui) - getSuSuanKouChu(item.leiJiYingNaShui), 10 ); item.leiJiJiaoShui = item.tax } else { item.leiJiYingNaShui = parseInt(item.dangYueYingNaShui + $scope.money[i - 1].leiJiYingNaShui, 10); item.tax = parseInt( item.leiJiYingNaShui * getShuiLv(item.leiJiYingNaShui) - getSuSuanKouChu(item.leiJiYingNaShui) - $scope.money[i - 1].leiJiJiaoShui, 10 ); item.leiJiJiaoShui = item.tax + $scope.money[i - 1].leiJiJiaoShui; } } var shiJiTotal = parseInt($scope.nianZhongJiang, 10) + $scope.tup - $scope.money[4].other; $scope.nianZhongJiangNaShui = shiJiTotal * getShuiLv(shiJiTotal) - getJiangJinSuSuanKouChu(shiJiTotal); $scope.totalTax = $scope.nianZhongJiangNaShui + $scope.money[11].leiJiJiaoShui; }, true ); function getShuiLv(leiJiYingNaShui) { if (leiJiYingNaShui <= 36000) { return 0.03; } else if (leiJiYingNaShui > 36000 && leiJiYingNaShui <= 144000) { return 0.1; } else if (leiJiYingNaShui > 144000 && leiJiYingNaShui <= 300000) { return 0.2; } else if (leiJiYingNaShui > 300000 && leiJiYingNaShui <= 420000) { return 0.25; } else if (leiJiYingNaShui > 420000 && leiJiYingNaShui <= 660000) { return 0.30; } else if (leiJiYingNaShui > 660000 && leiJiYingNaShui <= 960000) { return 0.35; } else if (leiJiYingNaShui > 960000 && leiJiYingNaShui) { return 0.45; } } function getSuSuanKouChu(leiJiYingNaShui) { if (leiJiYingNaShui <= 36000) { return 0; } else if (leiJiYingNaShui > 36000 && leiJiYingNaShui <= 144000) { return 2520; } else if (leiJiYingNaShui > 144000 && leiJiYingNaShui <= 300000) { return 16920; } else if (leiJiYingNaShui > 300000 && leiJiYingNaShui <= 420000) { return 31920; } else if (leiJiYingNaShui > 420000 && leiJiYingNaShui <= 660000) { return 52920; } else if (leiJiYingNaShui > 660000 && leiJiYingNaShui <= 960000) { return 85920; } else if (leiJiYingNaShui > 960000 && leiJiYingNaShui) { return 181920; } } function getJiangJinSuSuanKouChu(leiJiYingNaShui) { if (leiJiYingNaShui <= 36000) { return 0; } else if (leiJiYingNaShui > 36000 && leiJiYingNaShui <= 144000) { return 210; } else if (leiJiYingNaShui > 144000 && leiJiYingNaShui <= 300000) { return 1410; } else if (leiJiYingNaShui > 300000 && leiJiYingNaShui <= 420000) { return 2660; } else if (leiJiYingNaShui > 420000 && leiJiYingNaShui <= 660000) { return 4410; } else if (leiJiYingNaShui > 660000 && leiJiYingNaShui <= 960000) { return 7160; } else if (leiJiYingNaShui > 960000 && leiJiYingNaShui) { return 15160; } } $scope.showType = 'singleInvest' ; $scope.tabChange = function (type) { $scope.showType = type; } }]); </script> </html> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~