{extend name="public/layout" /}
{block name="header"}
{/block}
{block name="body"}
<div class="layui-card">
    <div class="layui-card-header layui-card-header-auto layui-form">
        <div id="task-model-add" class="layui-form">
            <div class="layui-form-item active">
                <label class="layui-form-label" style="width: 140px;">任务类型</label>
                <div class="layui-input-block">
                    <input type="radio" lay-filter="task_type" name="task_type" value="1" title="导入处理" checked>
                    <input type="radio" lay-filter="task_type" name="task_type" value="2" title="导出处理">
                    <input type="radio" lay-filter="task_type" name="task_type" value="3" title="重复电话处理">
                    <input type="radio" lay-filter="task_type" name="task_type" value="4" title="重复车架处理">
                    <input type="radio" lay-filter="task_type" name="task_type" value="5" title="更新数据">
                </div>
            </div>
            <div class="layui-form-item task-param active" id="task-import">
                <label class="layui-form-label" style="width: 140px;">上传文件</label>
                <div class="layui-input-inline" style="width: 405px;">
                    <input type="text" name="original_filename" id="original_filename" class="layui-input" readonly>
                    <input type="hidden" name="filename" id="filename" autocomplete="off" class="layui-input">
                </div>
                <div class="layui-input-inline" style="width: 200px;">
                    <button type="button" class="layui-btn" id="upload">
                        <i class="layui-icon">&#xe67c;</i>上传CSV文件
                    </button>
                </div>
                <a href="/static/tpl.xlsx" download="车辆信息导入模板.xlsx" style="color: #009688;">[下载车辆信息导入模板]</a>
            </div>
            <div class="task-param" id="task-export" style="display: none;">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">初登日期</label>
                        <div class="layui-input-inline" style="width: 200px;">
                            <input type="text" name="export_date1" class="layui-input export-date1">
                        </div>
                        <div class="layui-form-mid">-</div>
                        <div class="layui-input-inline" style="width: 200px;">
                            <input type="text" name="export_date2" class="layui-input export-date2">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">保险日期</label>
                        <div class="layui-input-inline">
                            <input type="text" name="insurer_month1" class="layui-input" style="display: inline-block; width: 60px;"> 月
                            <input type="text" name="insurer_day1" class="layui-input" style="display: inline-block; width: 60px;"> 日
                        </div>
                        <div class="layui-form-mid">-</div>
                        <div class="layui-input-inline">
                            <input type="text" name="insurer_month2" class="layui-input" style="display: inline-block; width: 60px;"> 月
                            <input type="text" name="insurer_day2" class="layui-input" style="display: inline-block; width: 60px;"> 日
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">导出类型</label>
                        <div class="layui-input-inline" style="width: 520px;">
                            <input type="radio" lay-filter="export_type" name="export_type" value="bhx" class="layui-input" title="清洗" checked>
                            <input type="radio" lay-filter="export_type" name="export_type" value="failed" class="layui-input" title="清洗失败">
                            <input type="radio" lay-filter="export_type" name="export_type" value="bmc" class="layui-input" title="清洗成功至上传">
                            <input type="radio" lay-filter="export_type" name="export_type" value="success_bmc" class="layui-input" title="清洗成功再次清洗">
                            <!-- <input type="radio" lay-filter="export_type" name="export_type" value="failed_bmc" class="layui-input" title="导出清洗失败至上传">
                            <input type="radio" lay-filter="export_type" name="export_type" value="none_bmc" class="layui-input" title="导出未处理至上传">
                            -->
                       </div>
                    </div>
                    <div class="layui-inline" id="update_no" style="display: none;">
                        <label class="layui-form-label" style="width: 60px;">更新序号</label>
                        <div class="layui-input-inline" style="width: 210px;">
                            <input type="text" name="update_no" class="layui-input" value="">
                        </div>
                    </div>
                    <div class="layui-inline" id="sub_export_type">
                        <label class="layui-form-label" style="width: 60px;padding: 15px 15px 0 0;">导出字段</label>
                        <div class="layui-input-inline" style="width: 185px;">
                            <input type="checkbox" name="export_field[]" lay-filter="export_field" value="car_no" title="车牌">
                            <input type="checkbox" name="export_field[]" lay-filter="export_field" value="car_frame_no" title="车架" checked>
                        </div>
          	            <label class="layui-form-label" style="width: 60px;padding: 15px 15px 0 0;">保险日期</label>
                        <div class="layui-inline">
                            <div class="layui-input-inline" style="width:auto;">
                                <input type="text" name="insurer_date1" class="layui-input  export-date1" style="display: inline-block; width: 90px;">
                            </div>
                            <div class="layui-form-mid">-</div>
                            <div class="layui-input-inline" style="width:auto;">
                                <input type="text" name="insurer_date2" class="layui-input  export-date2" style="display: inline-block; width: 90px;">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">导出数量</label>
                        <div class="layui-input-inline">
                            <input type="text" name="export_limit" class="layui-input">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 100px;">导出文件名</label>
                        <div class="layui-input-inline" style="width: 450px;">
                            <input type="text" name="queue" id="queue-name" class="layui-input" style="display:inline-block; width: 325px;">
                            <button type="button" class="layui-btn" onclick="getExportName(event)">生成文件名</button>
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label">导出总计:</label>
                        <div class="layui-input-inline" style="width: 120px;">
                            <input type="text" name="num" id="count" class="layui-input" disabled>
                        </div>
                        <div class="layui-input-inline">
                            <button type="button" class="layui-btn" onclick="export_num(event)">获取总数</button>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">新车购置价</label>
                        <div class="layui-input-inline" style="width: auto;">
                            <input type="text" name="price1" class="layui-input" style="display: inline-block; width: 60px;"> 万
                        </div>
                        <div class="layui-form-mid">-</div>
                        <div class="layui-input-inline" style="width: auto;">
                            <input type="text" name="price2" class="layui-input" style="display: inline-block; width: 60px;"> 万
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">空电话检测</label>
                        <div class="layui-input-inline" style="width: 80px;">
                            <input type="checkbox" name="empty_phone_check" lay-skin="switch" lay-filter="empty_phone_check" value="yes" lay-text="开启|关闭" checked>
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">是否EXCEL</label>
                        <div class="layui-input-inline" style="width: 80px;">
                            <input type="checkbox" name="is_excel" lay-skin="switch" value="yes" lay-text="开启|关闭" checked>
                        </div>
                    </div>
                </div>
            </div>
            <div class="task-param" id="task-peer-phone" style="display: none;">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">个人电话重复次数</label>
                        <div class="layui-input-inline">
                            <input type="number" name="peer_phone_number" required lay-verify="required" class="layui-input">
                        </div>
                    </div>
                </div>
            </div>
            <div class="task-param" id="task-repeat_frame" style="display: none;">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="width: 140px;">初登日期</label>
                        <div class="layui-input-inline" style="width: 200px;">
                            <input type="text" name="export_date1" class="layui-input export-date1">
                        </div>
                        <div class="layui-form-mid">-</div>
                        <div class="layui-input-inline" style="width: 200px;">
                            <input type="text" name="export_date2" class="layui-input export-date2">
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-form-item" style="margin:24px 0 -15px;">
            <div class="layui-inline" style="float: left;position: relative;z-index: 999;">
                <label class="layui-form-label" style="width: 65px;"></label>
                <div class="layui-input-inline" style="width: 405px">
                    <input type="text" name="queue" id="queue" class="layui-input">
                </div>
                <div class="layui-input-inline" style="">
                    <button type="button" class="layui-btn" onclick="search(event)">查询</button>
                </div>
            </div>
            <div class="layui-input-block layui-text-right">
                <button type="button" class="layui-btn" onclick="task_add()">立即提交</button>
            </div>
        </div>
    </div>
    <div class="layui-card-body layui-form">
        <table class="layui-hide" id="task-info" lay-filter="task-info"></table>
    </div>
</div>
{/block}
{block name="script"}
<!--Core Javascript -->
<script type="text/html" id="table-bar">
    {{#
        var payload = JSON.parse(d.payload);
        var export_date1 = payload['data']['params']['export_date1'];
        var export_date2 = payload['data']['params']['export_date2'];
        var ext = d.remark.split('.')[1];
    }}
    {{#  if(d.type == 2){ }}
        {{#  if(payload['data']['params']['export_limit'] > 0){ }}
            {{#
                var arrParam = [];
                var exportUrlParam = '';
                exportUrlParam += 'export_date1=' + export_date1 + '&';
                exportUrlParam += 'export_date2=' + export_date2 + '&';
                exportUrlParam += 'insurer_month1=' + payload['data']['params']['insurer_month1'] + '&';
                exportUrlParam += 'insurer_day1=' + payload['data']['params']['insurer_day1'] + '&';
                exportUrlParam += 'insurer_month2=' + payload['data']['params']['insurer_month2'] + '&';
                exportUrlParam += 'insurer_day2=' + payload['data']['params']['insurer_day2'] + '&';
                exportUrlParam += 'is_export_' + payload['data']['params']['export_type'] + '=' + d.id;
            }}
            <a class="layui-btn layui-btn-xs" href="/index/index.html?{{exportUrlParam}}">查看</a>
        {{#  } }}
        {{#  if(d.download_times > 0){ }}
            <buton class="layui-btn layui-btn-xs" onclick="layer.confirm('已下载过,是否继续',function(index){layer.close(index);window.open('{:url(\'task/download\')}?id={{d.id}}');window.location.reload();});">下载文件</buton>
        {{#  }else { }}
            <buton class="layui-btn layui-btn-xs" onclick="window.open('{:url(\'task/download\')}?id={{d.id}}');window.location.reload();">下载文件</buton>
        {{#  } }}
    {{#  }else if(d.type == 3){ }}
        <a class="layui-btn layui-btn-xs" href="/index/index.html?is_check_peer_phone={{d.id}}">查看</a>
        {{#  if(d.info_num > 0){ }}
            <button type="button" class="layui-btn layui-btn-xs" onclick="task_create(2,{{d.id}})">导出</button>
            <button type="button" class="layui-btn layui-btn-xs layui-btn-danger" onclick="task_create(6,{{d.id}})">清除重复</button>
        {{#  } }}
    {{#  }else if(d.type == 4){ }}
        <a class="layui-btn layui-btn-xs" href="/index/index.html?is_check_repeat_frame={{d.id}}">查看</a>
        {{#  if(d.info_num > 0){ }}
            <button type="button" class="layui-btn layui-btn-xs" onclick="task_create(2,{{d.id}})">导出</button>
            <button type="button" class="layui-btn layui-btn-xs layui-btn-danger" onclick="task_create(7,{{d.id}})">删除重复</button>
        {{#  } }}
    {{#  }else if(d.type == 5){ }}
        <a class="layui-btn layui-btn-xs" href="/index/index.html?is_update_bhx={{d.id}}">查看</a>
    {{#  }else if(d.type == 7){ }}
        <a class="layui-btn layui-btn-xs" href="/index/index.html?is_delete_frame={{d.id}}">查看</a>
    {{#  }else if(d.type == 1){ }}
        <a class="layui-btn layui-btn-xs" href="/index/index.html?source={{d.id}}">查看</a>
    {{#  } }}
</script>
<script type="text/html" id="process-tpl">
    <div class="layui-progress layui-progress-big" lay-filter="process-{{d.id}}" lay-showPercent="yes">
        <div class="layui-progress-bar layui-bg-green" lay-percent="{{d.process}}%"></div>
    </div>
</script>
<script>
    layui.form.on('radio(task_type)', function(data){
        $('#task-model-add').find('.task-param').removeClass('active').hide();
        switch (+data.value) {
            case 1:
                $('#task-import').addClass('active').show();
                break;
            case 2:
                $('#task-export').addClass('active').show();
                break;
            case 3:
                $('#task-peer-phone').addClass('active').show();
                break;
            case 4:
                // $('#task-repeat_frame').addClass('active').show();
                break;
            case 5:
                $('#task-import').addClass('active').show();
                break;
        }
    });

    layui.form.on('radio(export_type)', function(data){
        if(['bmc','failed_bmc','none_bmc'].indexOf(data.value) != -1){
            $('#sub_export_type').hide();
            $('#sub_export_type').find(':input').attr('disabled',true);
        }else {
            $('#sub_export_type').show();
            $('#sub_export_type').find(':input').removeAttr('disabled');
        }

        if(data.value == 'bmc'){
            $('#update_no').show();
            $('#update_no').find(':input').removeAttr('disabled');
        } else {
            $('#update_no').hide();
            $('#update_no').find(':input').attr('disabled',true);
        }
    });

    var tableIns = layui.table.render({
        id: 'taskInfo',
        elem: '#task-info',
        title:'车辆信息',
        url: '{:url("/task/taskInfo/")}', //数据接口
        page: true, //开启分页
        limit: 20,
        loading: true,
        cols: [[ //表头
            // {type: 'checkbox', fixed: 'left'},
            {field: 'id', title: '序号', fixed: 'left', width: 100},
            {field: 'type_txt', title: '任务名称', sort: true, width: 400},
            {field: 'process', title: '处理进度', templet: '#process-tpl'},
            {field: 'remark', title: '任务结果', sort: true},
            {field: 'create_timestamp', title: '创建时间', sort: true, width: 200},
            {field: 'status', title: '任务状态', sort: true, width: 100},
            {field: 'download_times', title: '下载次数', sort: true, width: 100},
            {fixed: 'right', width: 240, align:'center', toolbar: '#table-bar'}
        ]],
        done: function (res, curr, count) {
            layui.element.render();
            var timer = setInterval(function(){
                $.get('{:url("task/process")}', function (ret) {
                    if(!ret.data || ret.data.length == 0 ){
                        clearInterval(timer);
                        delete timer;
                    }else {
                        $.each(ret.data,function(i,d){
                            d.process = d.process > 100 ? 100 : d.process;
                            layui.element.progress('process-' + d.id, +d.process + '%');
                            if(d.process >= 100){
                                layui.table.reload('taskInfo');
                            }
                        })
                    }
                });
            },3000)
        }
    });

    //监听行工具事件
    layui.table.on('tool(task-info)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
        var data = obj.data, //获得当前行数据
            layEvent = obj.event; //获得 lay-event 对应的值
        if(layEvent === 'detail'){
            layer.confirm('确定要清楚此项手机吗', function(index){
                layer.close(index);
                index = layer.load();
                $.post('{:url("index/clearPhone")}', {id: data.id}, function (res) {
                    layer.close(index);
                    layer.msg(res.msg,function () {
                        layui.table.reload('taskInfo');
                    });
                })
            });
        }
    });

    layui.upload.render({
        elem: '#upload', //绑定元素
        accept: 'file',
        url: '{:url("task/upload")}', //上传接口
        data: {
            task_type: function () {
                return $("input[name='task_type']:checked").val();
            }
        },
        done: function (res) {
            if (res.code == -1) {
                $('#lock-screen').css('display', 'flex');
            } else if (res.code == 0) {
                layer.alert(res.msg);
            } else if (res.code == 1) {
                $('#original_filename').val(res.original_filename);
                $('#filename').val(res.filename);
                return true;
            }
        },
        error: function (res) {
            //请求异常回调
            layer.alert(res.msg);
        }
    });

    $(function(){
        $('.export-date1,.export-date2').each(function (i, d) {
            layui.laydate.render({
                elem: d,
            });
        });
    });

    function export_num(){
        if($('[name="export_date1"]').val() == '' && $('[name="export_date1"]').val() == ''){
            layer.msg('请先填写初登日期');
            return false;
        }
        $.post('{:url("task/exportNum")}', $('#task-export').find(':input').serialize(), function (ret) {
            layer.msg(ret['msg']);
            $('#count').val(ret.data);
        });
    }

    function task_create(type,id = 0){
        $.post('{:url("task/save")}', {task_type: type,source_id: id}, function (ret) {
            layer.msg(ret['msg'],function(){
                layui.table.reload('taskInfo');
            });
        });
    }

    function task_add() {
        var task_type = $('[name="task_type"]:checked').val();
        if (task_type == 5 || task_type == 2) {
            var name = task_type == 5 ? $('#original_filename').val() : $('#queue-name').val();
            var type = task_type == 5 ? 'update' : 'export';
            $.get('{:url("task/checkIsExistName")}?name=' + name + '&type=' + type, function (ret) {
                if (ret.code == 1) {
                    layer.confirm(ret.msg, function (index) {
                        layer.close(index);
                        submitForm();
                    });
                }else if (ret.code == 0) {
                    layer.alert(ret.msg);
                }else if (ret.code == 2) {
                    submitForm();
                }
            });
        }else {
            submitForm();
        }
    }

    function submitForm(){
        $.post('{:url("task/save")}', $('#task-model-add').find('.active :input').serialize(), function (ret) {
            if(ret.code == 0){
                layer.alert(ret.msg);
            }else {
                layer.msg(ret['msg'],function(){
                    layui.table.reload('taskInfo');
                });
            }
        });
    }

    function search(event){
        tableIns.reload({
            page: {
                curr: 1 //重新从第 1 页开始
            },
            where: {queue: $('#queue').val()},
        }, 'data');
    }

    function getExportName(event) {
        var target = event.target;
        $.get('{:url("task/exportName")}', $('#task-export').find(':input').serialize(), function (ret) {
            if(ret.code == 0){
                layer.alert(ret.msg);
            }else {
                $(target).prev('input[name="queue"]').val(ret.name);
            }
        });
    }
</script>
{/block}