美文网首页
layui 下载exal fetch 的使用方法

layui 下载exal fetch 的使用方法

作者: 糖醋里脊120625 | 来源:发表于2019-05-18 09:18 被阅读0次

    上一个页面打开页面传递蚕食

    function(e) {
                        if("detail_find" === e.event) {
                            layer.open({
                                  type: 2,
                                  title: '查看进度',
                                  shadeClose: true,
                                  shade: false,
                                  maxmin: true, //开启最大化最小化按钮
                                  area: ['100%', '100%'],
                                  content: 'list_current.html',
                                  success:function(layero, index){
                                     var iframe = window['layui-layer-iframe' + index];
                                     iframe.setdata(e.data);
                                  }
                                });
                        }  
                    });
    
    
    
    
    
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>留言板</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
        <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
        <link rel="stylesheet" href="../../layuiadmin/style/template.css" media="all">
    </head>
    <style type="text/css">
        .layui-col-md12{
            padding: 15px;
        }
        .layui-elem-quote{
            padding: 8px 5px;
        }
        .z_info{
            width: 100%;
            float: left;
            padding:0 20px;
        }
        .z_info_line{
            float: left;
            width: 100%;
            line-height: 20px;
            margin: 6px auto;
        }
        .z_info_line span{
            font-weight: bold;
        }
        .moneyall{
            font-size: 18px!important;
            color: #FF9800!important;
        }
        
        
        #steps {
            height: 150px;
            box-sizing: border-box;
            padding-left: 10px;
        }
        .steppart{
            position: absolute;
            top: -28px;
            left: -5px;
            z-index: 99999999;
            font-weight: bold;
        }
        .step-item {
            display: inline-block;
            line-height: 26px;
            position: relative;
            background: #ffffff;
            margin-top: 30px;
        }
        .step-item-tail {
            width: 100%;
            padding: 0 10px;
            position: absolute;
            left: 0;
            top: 13px;
        }
        .step-item-tail i {
            display: inline-block;
            width: 100%;
            height: 1px;
            vertical-align: top;
            background: #c2c2c2;
            position: relative;
        }
        .layui-elem-quote{
                border-left: 5px solid #1E9FFF!important;
        }
        .step-item-tail-done {
            background: #1E9FFF !important;
        }
        .step-item-head {
            position: relative;
            display: inline-block;
            height: 26px;
            width: 26px;
            text-align: center;
            vertical-align: top;
            color: #1E9FFF;
            border: 1px solid #1E9FFF;
            border-radius: 50%;
            background: #ffffff;
        }
        .step-item-head.step-item-head-active {
            background: #1E9FFF!important;
            border: 1px solid #1E9FFF!important;
            color: #ffffff!important;
        }
        .step-item-head.none{
            background: #aaaaaa;
            border: 1px solid #aaaaaa;
        }
        
        .step-item-main {
            background: #ffffff;
            display: block;
            position: absolute;
            height: 52px;
            width: 100%;
        }
        .step-item-main-title {
            font-weight: bolder;
            color: #aaaaaa;
        }
        .step-item-main-desc {
            color: #aaaaaa;
            height: 26px;
            width: 100%;
        }
        .tipsmoneytxt{
            color: #FF9800;
            font-size: 16px;
            font-weight: bold;
        }
        .txt_explian{
            margin-top: 20px;
        }
    </style>
    <body>
    
    
        <div class="layui-fluid layadmin-message-fluid">
            <div class="layui-main">
                <div class="layui-col-md12">
                    <div id="steps">
                        <div class="step-item" style="width: 32%;">
                            <div class="steppart">确认提交</div>
                            <div class="step-item-tail">
                                <i class="step-item-tail-done"></i>
                            </div>
                            <div class="step-item-head none" id="stepshead1">
                                <i class="layui-icon"></i>
                            </div>
                            <div class="step-item-main">
                                <div class="step-item-main-title" id="stepsname1">
                                    <span id="namespan"></span>提交
                                </div>
                                <div class="step-item-main-desc" id="stepstime1">
                                </div>
                            </div>
                        </div>
                        <div class="step-item" style="width: 32%;">
                            <div class="steppart">确认付款</div>
                            <div class="step-item-tail">
                                <i class="step-item-tail-done"></i>
                            </div>
                            <div class="step-item-head none" id="stepshead2">
                                <i class="layui-icon"></i>
                            </div>
                            <div class="step-item-main">
                                <div class="step-item-main-title" id="steppart2">
                                </div>
                                <div class="step-item-main-desc" id="stepstime2">
                                </div>
                            </div>
                        </div>
                        <div class="step-item" style="width: 32%;">
                            <div class="steppart" id="haserror">
                                已完成
                            </div>
                            <div class="step-item-head none" id="stepshead4">
                                <i class="layui-icon"></i>
                            </div>
                            <div class="step-item-main">
                                <div class="step-item-main-title" id="steppart4">
                                </div>
                                <div class="step-item-main-desc" id="stepstime4">
                                </div>
                            </div>
                        </div>
                    </div>
                    
                    
                    <blockquote class="layui-elem-quote layui-text">
                        佣金概览
                    </blockquote>
                    <div class="z_info">
                        <div class="z_info_line">
                            名称:<span id="name"></span>
                        </div>
                        <div class="z_info_line">
                            分类:<span id="companyname">休息休息分公司</span>
                        </div>
                        <div class="z_info_line">
                            应发总计:<span class="moneyall"><span id="commission"></span>元,共<span id="count1"></span>人,共<span id="count2"></span>笔</span>
                        </div>
                    </div>
                    <div class="layui-inline layui-card-body" style="margin: 10px 0px;">
                        <a type="button" class="layui-btn layui-btn-primary" data-type='Detailed' >明细下载</a>
                        <a type="button" class="layui-btn layui-btn-primary" data-type='eform_down' >电子确认单下载</a>
                    </div>
                    <blockquote class="layui-elem-quote layui-text">
                        打款凭证
                    </blockquote>
                    <div class="layui-card-body">
                        <div  class="layui-inline">
                            <span style="width: 800px!important;float: left; font-size: 16px;">
                                发放佣金:<span id="allyong"></span>元&nbsp;共<span id="allcount1"></span>笔;&nbsp;&nbsp;共<span id="allcount2"></span>人
                                <span class="tipsmoneytxt">使用余额<span id="yongjinyuer"></span>元,打款<span id="yongjindakuan"></span>元</span>
                            </span>
                            
                        </div>
    
                    </div>
                    <div class="layui-card-body">
                        <div  class="layui-inline">
                            <span style="width: 800px!important;float: left;font-size: 16px;">
                                服务费:<span id="fuwufei"></span>元;&nbsp;&nbsp;税费<span id="suifei"></span>元;&nbsp;&nbsp;共计<span id="allmoney"></span>元
                                <span class="tipsmoneytxt">使用余额<span id="fuwuyuer"></span>元,打款<span id="fuwudakuan"></span>元</span>
                            </span>
                            <!-- <a class="layui-btn layui-btn-primary" data-type='fuwu_down'>凭证下载</a> -->
                        </div>
                    </div>
                    <div class="layui-card-body">
                        <div  class="layui-inline">
                            <a class="layui-btn layui-btn-primary" data-type='yongjin_down' id="pingzheng_down">凭证下载</a>
                        </div>
                    </div>
                    <blockquote class="layui-elem-quote layui-text">
                        发放结果
                    </blockquote>
                    <div  class="layui-inline">
                        <div class="txt_explian" style="margin-left: 20px;">
                            请等待
                        </div>
                    </div>
                    <div  class="layui-inline">
                        <a class="layui-btn layui-btn-primary layui-hide" style="margin-left: 30px;" data-type='yichang_down' id="yichang_down">异常详细信息下载</a>
                    </div>
                    <div  class="layui-inline">
                        <a class="layui-btn layui-btn-primary layui-hide" style="margin-left: 30px;" data-type='fafang_down' id="fafang_down">佣金发放凭证</a>
                    </div>
                </div>
            </div>
        </div>
        </div>
        <script src="../../layuiadmin/layui/layui.js"></script>
        <script>
            var data
            function setdata(d) {
                data=d
            }
            var token;
          layui.config({
            base: '../../layuiadmin/' //静态资源所在路径
          }).extend({
            index: 'lib/index' //主入口模块
          }).use(['index','cookie'], function() {
            var $ = layui.$,
                layer = layui.layer,
                cookie=layui.cookie,
                token=cookie.get("token");
            
                $.ajax({
                        type: 'POST',
                        url: layui.setter.req_url + 'generalBackstage/showGrantProgressInfo?grantCommissionId='+data.grantid,
                        contentType: 'application/x-www-form-urlencoded',
                        headers:{
                        'token':token
                        },
                        dataType: 'json',
                        success: function(result) {
                            var jsondata = result.data.grantProgressInfo;
                            $('#namespan').html(jsondata.account);//名称
                            $('#name').html(jsondata.name);//名称
                            $('#companyname').html(jsondata.ename);//名称
                            $('#commission').html(jsondata.commission);//应发总计
                            $('#count1').html(jsondata.count);//共几笔,共几人
                            $('#count2').html(jsondata.count);//共几笔,共几人
                            $('#allyong').html(jsondata.commission);//共几笔,共几人
                            $('#allcount1').html(jsondata.count);//共几笔,共几人
                            $('#allcount2').html(jsondata.count);//共几笔,共几人
                            $('#yongjinyuer').html(jsondata.comusebalance);//佣金使用余额
                            $('#yongjindakuan').html(jsondata.compayamount);//佣金打款金额
                            $('#fuwuyuer').html(jsondata.serusebalance);//服务费和税费使用余额
                            $('#fuwudakuan').html(jsondata.serpayamount);//服务费和税费打款金额
                            $('#fuwufei').html(jsondata.servicefee);//服务费
                            $('#suifei').html(jsondata.taxfee);//税费
                            let total_money=Number(jsondata.servicefee) + Number(jsondata.taxfee)
                            $('#allmoney').html(total_money.toFixed(2));//总计多少钱
                            
                            if(jsondata.state ===2 || jsondata.state ===1){ //待确认付款
                                //时间更新
                                $('#stepstime1').html(jsondata.createtime);//创建时间
                                $('#steppart2').html("");//创建时间
                                //样式处理
                                $("#stepshead1").addClass("step-item-head-active");
                                $("#stepshead1 .layui-icon").addClass("layui-icon-ok");
                                //时间处理
                                $('#stepstime1').html(jsondata.createtime);//创建时间
                                $('#stepstime2').html(jsondata.confirmtime);//确认时间
                                
                                
                            }else if(jsondata.state ===3){
                                //样式处理
                                $("#stepshead1").addClass("step-item-head-active");
                                $("#stepshead2").addClass("step-item-head-active");
                                $("#stepshead1 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead2 .layui-icon").addClass("layui-icon-ok");
                                //时间处理
                                $('#stepstime1').html(jsondata.createtime);//创建时间 
                                $('#stepstime2').html(jsondata.confirmtime);//确认时间
                                
                            }else if(jsondata.state ===5){ //已完成
                                $('#steppart2').html("平台已确认");//创建时间
                                $('#steppart4').html("完成打款");//创建时间
                                //样式处理
                                $("#stepshead1").addClass("step-item-head-active");
                                $("#stepshead2").addClass("step-item-head-active");
                                $("#stepshead3").addClass("step-item-head-active");
                                $("#stepshead4").addClass("step-item-head-active");
                                $("#stepshead1 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead2 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead3 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead4 .layui-icon").addClass("layui-icon-ok");
                                //时间处理
                                $('#stepstime1').html(jsondata.createtime);//创建时间
                                $('#stepstime4').html(jsondata.finishtime);//确认时间
                                $('#stepstime2').html(jsondata.confirmtime);
                                $('#stepstime3').html("已完成处理");//确认时间
                                $('.txt_explian').html("已发放完成").addClass("layui-badge layui-btn-lg layui-bg-blue");
                                $('#fafang_down').removeClass("layui-hide");
                            }else if(jsondata.state ===6){ //有异常
                                $('#steppart2').html("平台已确认");//创建时间
                                $('#steppart4').html("平台提交异常");//创建时间
                                //样式处理
                                $("#stepshead1").addClass("step-item-head-active");
                                $("#stepshead2").addClass("step-item-head-active");
                                $("#stepshead3").addClass("step-item-head-active");
                                $("#stepshead4").addClass("step-item-head-active");
                                $("#stepshead1 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead2 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead3 .layui-icon").addClass("layui-icon-ok");
                                $("#stepshead4 .layui-icon").addClass("layui-icon-close");
                                $('#stepstime1').html(jsondata.createtime);//创建时间
                                $('#stepstime2').html(jsondata.confirmtime);//创建时间
                                $('#stepstime4').html(jsondata.finishtime);//确认时间
                                $('#stepstime3').html("已完成处理");//确认时间
                                $('#haserror').html("已完成,有异常").css("color","red");
                                $('.txt_explian').html("处理为异常单").addClass("layui-badge layui-btn-lg layui-bg-red");
                                $('#yichang_down').removeClass("layui-hide");
                            }
                        }
                    })
                
            //自定义事件
            if(data.totalamount==0){
                $("#pingzheng_down").addClass("layui-hide");
            }
            var active={
                yongjin_down: function() {
                            $.ajax({
                                url: layui.setter.req_url+"generalBackstage/downloadCommissionAndServiceFeeTaxVoucher",
                                type: 'post',
                                data:{
                                    grantCommissionId:data.grantid
                                },
                                headers:{
                                    'token':token
                                },
                                success: function(res) {
                                    if(res.code==200){
                                        if(res.data.commissionVoucher.length>0){
                                            downloadIamge(res.data.commissionVoucher[0],"佣金凭证.png");
                                        }else{
                                            layer.msg("暂无佣金凭证");
                                        }
                                        
                                        if(res.data.serviceFeeTaxVoucher.length>0){
                                            downloadIamge(res.data.serviceFeeTaxVoucher[0],"税费凭证.png")
                                        }else{
                                            layer.msg("暂无税费凭证");
                                        }
                                    }else{
                                        layer.msg(res.msg);
                                    }
                                }
                            });     
                },
                yichang_down:function(){
                    echang_down(token,data.grantid);
                },
                fafang_down:function(){
                    fafang_down(token,data.grantid);
                },
                Detailed:function(){
                    Detailed(token,data.grantid);
                },
                eform_down:function(){
                    eform_down(token,data.grantid);
                },
            };
            $('.layui-btn').on('click', function(){
              var type = $(this).data('type');
              active[type] ? active[type].call(this) : '';
            });
            
            
        });
        var forceDownload = function(blob, filename) {
            var a = document.createElement('a');
            a.download = filename;
            a.href = blob;
            a.click();
        };
        function Detailed(mytoken,id){
            var url=layui.setter.req_url +"generalBackstage/downloadCommissionDetails?grantCommissionId="+id;
            var filename="下载明细.xlsx";
            if (!filename) filename = url.split('\\').pop().split('/').pop();
                fetch(url, {
                    headers: new Headers({
                    "token":mytoken
                }),
                method: 'POST',
                mode: 'cors'
            })
            .then(response=>response.blob())
            .then(blob => {
                let blobUrl = window.URL.createObjectURL(blob);
                forceDownload(blobUrl, filename);
            })
            .catch(e => console.error(e));
        };
        function eform_down(mytoken,id){
            var url=layui.setter.req_url +"generalBackstage/downloadConfirmationSheet?grantCommissionId="+id;
            var filename="电子确认单下载.xlsx";
            if (!filename) filename = url.split('\\').pop().split('/').pop();
                fetch(url, {
                    headers: new Headers({
                    token:mytoken
                }),
                method: 'POST',
                mode: 'cors'
            })
            .then(response => response.blob())
            .then(blob => {
                let blobUrl = window.URL.createObjectURL(blob);
                forceDownload(blobUrl, filename);
            })
            .catch(e => console.error(e));
        };
            function echang_down(mytoken,id){
                //layer.msg("电子确认单下载");
                var url=layui.setter.req_url +"generalBackstage/downloadExceptionVoucher?grantCommissionId="+id;
                var filename="异常详细信息.xlsx";
                if (!filename) filename = url.split('\\').pop().split('/').pop();
                    fetch(url, {
                        headers: new Headers({
                        token:mytoken
                    }),
                    method: 'POST',
                    mode: 'cors'
                })
                .then(response => response.blob())
                .then(blob => {
                    let blobUrl = window.URL.createObjectURL(blob);
                    forceDownload(blobUrl, filename);
                })
                .catch(e => console.error(e));
            };
            function fafang_down(mytoken,id){
            //layer.msg("电子确认单下载");
            var url=layui.setter.req_url +"generalBackstage/downloadNoExceptionVoucher?grantCommissionId="+id;
            var filename="佣金发放凭证.xlsx";
            if (!filename) filename = url.split('\\').pop().split('/').pop();
                fetch(url, {
                    headers: new Headers({
                    token:mytoken
                }),
                method: 'POST',
                mode: 'cors'
            })
            .then(response => response.blob())
            .then(blob => {
                let blobUrl = window.URL.createObjectURL(blob);
                forceDownload(blobUrl, filename);
            })
            .catch(e => console.error(e));
        };
        function downloadIamge(imgsrc, name) {//下载图片地址和图片名
          let image = new Image();
          // 解决跨域 Canvas 污染问题
          image.setAttribute("crossOrigin", "anonymous");
          image.onload = function() {
            let canvas = document.createElement("canvas");
            canvas.width = image.width;
            canvas.height = image.height;
            let context = canvas.getContext("2d");
            context.drawImage(image, 0, 0, image.width, image.height);
            let url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
            let a = document.createElement("a"); // 生成一个a元素
            let event = new MouseEvent("click"); // 创建一个单击事件
            a.download = name || "photo"; // 设置图片名称
            a.href = url; // 将生成的URL设置为a.href属性
            a.dispatchEvent(event); // 触发a的单击事件
          };
          image.src = imgsrc;
        }
        
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:layui 下载exal fetch 的使用方法

          本文链接:https://www.haomeiwen.com/subject/umyzaqtx.html