PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

怎么使用JS处理账单

php中世界最好的语言
php中世界最好的语言 原创
2018-03-19 16:33:08 1609浏览

这次给大家带来怎么使用JS处理账单,使用JS处理账单的注意事项有哪些,下面就是实战案例,一起来看一下。

    
        nbsp;html>
        
        
            <meta>
            <title>账单打印</title>
        
         
        <p>
                    <span>Ι  </span>收据打印
                    <a>返回账单列表</a>
                    <a>打印</a>
        </p>
            <p>
            </p><p></p>
            <p>
                </p>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
收      据
20171211交款单位NO:
名称单位数量单价金额备注
合计人民币(大写)                             XXXXXXX                         
主管会计收款人
  白1 (存根) 黄 (收据) 绿 (记账) 蓝 (提货) 红 (核对) 白2 (确认)                                                                       第#                                                                          共##                             
                                               <script>/static/assets/global/plugins/jquery.min.js" type="text/javascript"></script>         <script>/static/js/public.js" type="text/javascript"></script>         <script>/static/plug-in/ng/angular.min.js" type="text/javascript"></script>         <script>/static/plug-in/lodop/LodopFuncs.js" type="text/javascript"></script>         <script>        var app = angular.module(&#39;myApp&#39;, []);         app.controller(&#39;myCtrl&#39;, function($scope, $http) {            // var $scope = $scope;             inputId = window.location.href.split(&#39;?&#39;)[1].split(&#39;&&#39;)[0].split(&#39;=&#39;)[1];            //请求接口             ajaxJson(&#39;GET&#39;, webroot + &#39;/bill/printList?ids=&#39; + inputId, &#39;&#39;, function(err, rsp) {                if (rsp.code == 200) {                     console.log(&#39;rsp&#39;,rsp.result);                     $scope.aa = rsp.result;                     $scope.data = rsp.result[0];                     $scope.paymentDate = $scope.data.paymentDate.split(&#39;-&#39;);                     $scope.customer = $scope.data.customer;                     $scope.code = $scope.data.code;                    // $scope.total = $scope.data.total;                     $scope.total = 10000.99;                    // $scope.items = $scope.data.items;                      $scope.items = [{                         money: 10.01,                         remark: &#39;备注1&#39;,                         name: &#39;01&#39;                     }, {                         money: 1000000.99,                         remark: &#39;备注2&#39;,                         name: &#39;02&#39;                     }, {                         money: 1000.00,                         remark: &#39;备注3&#39;,                         name: &#39;03&#39;                     }];                       $scope.$apply();                     $(&#39;.time_year&#39;).text($scope.paymentDate[0]);                     $(&#39;.time_month&#39;).text($scope.paymentDate[1]);                     $(&#39;.time_day&#39;).text($scope.paymentDate[2]);                     $(&#39;.customer&#39;).text($scope.customer);                     $(&#39;.code&#39;).text($scope.code);                     $(&#39;.total&#39;).text($scope.total);                                        //数据行数                     var itemLen = $scope.items.length;                    //迭代行数                     var rowNum = itemLen + (4-itemLen%4) ;                    //console.log(rowNum);                     for(var i = 0; i < rowNum; i++){                        if(i<=itemLen){                             _addBzRow($scope.items[i]);                         }else{                             _addBzRow(null);                         }                     }                    function _addBzRow(obj){                        var innerHtml ;                        if(null==obj){                             innerHtml = &#39;<tr class="t_money_tr_">&#39;+                             &#39;<td class="td_name_0" style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td style="text-align: center;"> &#39;+                             &#39;<td class="td_remark_0" style="text-align: center;"> &#39;+                                   &#39;&#39;;                         }else{                            var mhtml = getMoneyHtml(obj.money) ;                             innerHtml = &#39;<tr class="t_money_tr_">&#39;+                                             &#39;<td class="td_name_0" style="text-align: center;">&#39;+obj.name+&#39;&#39;+                                             &#39;<td style="text-align: center;"> &#39;+                                             &#39;<td style="text-align: center;"> &#39;+                                             &#39;<td style="text-align: center;"> &#39;+                                                                                         //---------------                                             mhtml +                                              //-------------------------                                                                                          &#39;<td class="td_remark_0" style="text-align: center;"> &#39;+                                                   &#39;&#39;;                         }                         $(&#39;#tbodyList&#39;).append(innerHtml);                     }                                         // function getMoneyHtml(m){                     //     // 1089.00-->¥1089.00                     //     var money = m.toString();                      //     if(money.indexOf(".")==-1){//整数                     //         money+".00";                     //     }                     //     money = "¥" + money ;                     //     var arr = new Array();                     //     for(var i = 0;i<money.length;i++){                     //         var cm = money.charAt(i) ;                     //         if(cm == &#39;.&#39;){                     //             continue ;                     //         }                     //         arr.push(cm);                     //     }                     //     //money=[&#39;¥&#39;,&#39;1&#39;,&#39;0&#39;,&#39;8&#39;,&#39;9&#39;,&#39;0&#39;,&#39;0&#39;]                     //     var mhtml = &#39;&#39; ;                     //     var temp = arr.length , j = 0 ;                     //     for(var i = 9 ; i>0; i--){                     //         if(temp<i){                     //             mhtml = mhtml + &#39;<td class="hunbit_0" style="text-align: center;"> &#39; ;                     //         }else{                     //             mhtml = mhtml + &#39;<td class="hunbit_0" style="text-align: center;">&#39; + arr[j] + &#39;&#39; ;                     //             j++;                     //         }                     //     }                     //     return mhtml ;                     // }                     /*小写金额填入处理*/                     function getMoneyHtml(m){                        var m = m.toString();                        if(m.indexOf(".") == -1){//整数补齐小数位数为00                             m = m + ".00";                         }                        var money = m.split(&#39;.&#39;);                        var money_1 = &#39;¥&#39;+money[0];//整数部分                         if(Number(money[0]) >= 1000000){ //大于一百万不显示¥                             var money_1 = money[0];                         }                        var money1_arr = money_1.split(&#39;&#39;)//转换成数组                         var mhtml = &#39;&#39; ;                        var temp = money1_arr.length , j = 0 ;                        // 整数部分                         for(var i = 7;i>0;i--){                            if(temp < i){                                 mhtml = mhtml + &#39;<td class="hunbit_0" style="text-align: center;"> &#39; ;                             }else{                                 mhtml = mhtml + &#39;<td class="hunbit_0" style="text-align: center;">&#39; + money1_arr[j] + &#39;&#39; ;                                 j++;                             }                         }                        //小数部分                         if(m.toString().indexOf(".") != -1){                            var money_2 = money[1];                            var money2_arr = money_2.split(&#39;&#39;);                            var temp2 = money2_arr.length ;                            for(var i = 0;i < 2; i++){                                  mhtml = mhtml + &#39;<td class="hunbit_0" style="text-align: center;">&#39; + money2_arr[i] + &#39;&#39; ;                             }                         }                        return mhtml;                     }                                       //处理大写金额                     var DNum = {                        &#39;1&#39;: &#39;壹&#39;,                        &#39;2&#39;: &#39;贰&#39;,                        &#39;3&#39;: &#39;叁&#39;,                        &#39;4&#39;: &#39;肆&#39;,                        &#39;5&#39;: &#39;伍&#39;,                        &#39;6&#39;: &#39;陆&#39;,                        &#39;7&#39;: &#39;柒&#39;,                        &#39;8&#39;: &#39;捌&#39;,                        &#39;9&#39;: &#39;玖&#39;,                        &#39;0&#39;: &#39;零&#39;                     }                    //取出各个位数的值                     var total = $scope.total.toString();                    var totalArr = total.split(&#39;.&#39;);                    var totalArr1 = totalArr[0];                    var text_unit = totalArr1[totalArr1.length - 1];                    var text_decade = totalArr1[totalArr1.length - 2];                    var text_hunders = totalArr1[totalArr1.length - 3];                    var text_kilbit = totalArr1[totalArr1.length - 4];                    var text_myriabit = totalArr1[totalArr1.length - 5];                    var text_debit = totalArr1[totalArr1.length - 6];                    var text_hunbit = totalArr1[totalArr1.length - 7];                    //赋值                     $(&#39;.num_text_hunbit&#39;).text(DNum[text_hunbit]);                     $(&#39;.num_text_debit&#39;).text(DNum[text_debit]);                     $(&#39;.num_text_myriabit&#39;).text(DNum[text_myriabit]);                     $(&#39;.num_text_kilbit&#39;).text(DNum[text_kilbit]);                     $(&#39;.num_text_hunders&#39;).text(DNum[text_hunders]);                     $(&#39;.num_text_decade&#39;).text(DNum[text_decade]);                     $(&#39;.num_text_unit&#39;).text(DNum[text_unit]);                    if(total.indexOf(".") != -1){                        var totalArr2 = totalArr[1].split(&#39;&#39;);                        var text_unitone = totalArr2[0];                        var text_unittwo = totalArr2[1];                         $(&#39;.num_text_unitone&#39;).text(DNum[text_unitone]);                         $(&#39;.num_text_unittwo&#39;).text(DNum[text_unittwo]);                     }                  } else {                     console.log(rsp.message);                 }             });         });        //大写金额转换         function smalltoBIG(n) {            var fraction = [&#39;角&#39;, &#39;分&#39;];            var digit = [&#39;零&#39;, &#39;壹&#39;, &#39;贰&#39;, &#39;叁&#39;, &#39;肆&#39;, &#39;伍&#39;, &#39;陆&#39;, &#39;柒&#39;, &#39;捌&#39;, &#39;玖&#39;];            var unit = [                 [&#39;元&#39;, &#39;万&#39;, &#39;亿&#39;],                 [&#39;&#39;, &#39;拾&#39;, &#39;佰&#39;, &#39;仟&#39;]             ];            var head = n < 0 ? &#39;欠&#39; : &#39;&#39;;             n = Math.abs(n);            var s = &#39;&#39;;            for (var i = 0; i < fraction.length; i++) {                 s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, &#39;&#39;);             }             s = s || &#39;整&#39;;             n = Math.floor(n);            for (var i = 0; i < unit[0].length && n > 0; i++) {                var p = &#39;&#39;;                for (var j = 0; j < unit[1].length && n > 0; j++) {                     p = digit[n % 10] + unit[1][j] + p;                     n = Math.floor(n / 10);                 }                 s = p.replace(/(零.)*零$/, &#39;&#39;).replace(/^$/, &#39;零&#39;) + unit[0][i] + s;             }            return head + s.replace(/(零.)*零元/, &#39;元&#39;).replace(/(零.)+/g, &#39;零&#39;).replace(/^整$/, &#39;零元整&#39;);         }        // 打印         var global_Html = "";        // function printme() {         //     global_Html = document.body.innerHTML;         //     //调用打印接口,记录打印操作         //     ajaxJson(&#39;GET&#39;, webroot + &#39;/bill/printLog?ids=&#39; + inputId, &#39;&#39;, function(err, rsp){         //         if (rsp.code == 200) {         //             document.body.innerHTML = document.getElementById(&#39;pPrint&#39;).innerHTML;         //             window.print();         //         } else {         //             console.log(rsp.message);         //         }         //     });         //     window.setTimeout(function() {         //         document.body.innerHTML = global_Html;         //     }, 30);         // }         // 不请求接口         function printme() {             global_Html = document.body.innerHTML;             document.body.innerHTML = document.getElementById(&#39;pPrint&#39;).innerHTML;             window.print();             window.setTimeout(function() {                 document.body.innerHTML = global_Html;             }, 30);         }        //返回账单列表         function _back() {            var url = webroot + &#39;/bill/index&#39;;             window.location.href = url;         }                 //打印         function printData(){            var LODOP=getLodop();                                LODOP.PRINT_INIT("打印账单收据");             LODOP.SET_PRINT_PAGESIZE(1,"25cm","15cm","LodopCustomPage")            var strStyle="<style> table,td,th {border-width: 1px;border-style: solid;border-collapse: collapse}"             LODOP.ADD_PRINT_TABLE(128,"2%","90%","2.5cm", strStyle + document.getElementById("p2").innerHTML);             LODOP.SET_PRINT_STYLEA(0,"Vorient",1);                                  LODOP.ADD_PRINT_HTM(26,"2%","90%","1cm",document.getElementById("p1").innerHTML);             LODOP.SET_PRINT_STYLEA(0,"ItemType",1);             LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1);                                               LODOP.PREVIEW();             };             </script>         

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue指令的使用

JavaScript之优化DOM

JS闭包的使用

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。