'use strict';

/**
 * 变更令详细页js
 *
 * @author EllisRan.
 * @date 2018/11/22
 * @version
 */

$.event.special.valuechange = {
    teardown: function (namespaces) {
        $(this).unbind('.valuechange');
    },

    handler: function (e) {
        $.event.special.valuechange.triggerChanged($(this));
    },

    add: function (obj) {
        $(this).on('keyup.valuechange cut.valuechange paste.valuechange input.valuechange', obj.selector, $.event.special.valuechange.handler)
    },

    triggerChanged: function (element) {
        var current = element[0].contentEditable === 'true' ? element.html() : element.val()
            , previous = typeof element.data('previous') === 'undefined' ? element[0].defaultValue : element.data('previous');
        if (current !== previous) {
            element.trigger('valuechange', [element.data('previous')]);
            element.data('previous', current);
        }
    }
};

$(document).ready(() => {
    // tab切换
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        const tab = $(this).attr('aria-controls');
        $('.show_title').hide();
        $('#'+ tab +'_title').show();
        if (tab === 'bills' && $('#bills').hasClass('first-bill-pane')) {
            table = $('.table-list').removeAttr('width').DataTable(billsTable);
            $('#bills').removeClass('first-bill-pane');
        }
    });

    // 上传附件
    $('#upload-file-btn').click(function () {
        const files = $('#upload-file')[0].files;
        const formData = new FormData();
        formData.append('cid', $('#changeId').val());
        formData.append('tid', $('#tenderId').val());
        for (const file of files) {
            if (file === undefined) {
                toastr.error('未选择上传文件！');
                return false;
            }
            const filesize = file.size;
            if (filesize > 30 * 1024 * 1024) {
                toastr.error('文件大小过大！');
                return false;
            }
            const fileext = '.' + file.name.toLowerCase().split('.').splice(-1)[0];
            if (whiteList.indexOf(fileext) === -1) {
                toastr.error('只能上传指定格式的附件！');
                return false;
            }
            formData.append('size', filesize);
            formData.append('file[]', file);
        }
        postDataWithFile('/change/upload/file', formData, function (data) {
            $('#addfujian').modal('hide');
            let html = '';
            let index = $('#attList tr').length + 1;
            for (const fileInfo of data) {
                html += '<tr> ' +
                    '<td>' + index + '</td> ' +
                    '<td><a href="/change/download/file/' + fileInfo.id + '">' + fileInfo.filename + fileInfo.fileext + '</a></td> ' +
                    '<td>' + fileInfo.filesize + '</td> ' +
                    '<td>' + fileInfo.in_time + '</td> ' +
                    '<td> <a class="btn btn-light btn-sm delete-file" data-attid="' + fileInfo.id + '"  title="删除附件"><span class="fa fa-trash text-danger"></span></a> </td> ' +
                    '</tr>';
                ++index;
            }
            $('#attList').append(html);
        }, function () {

        });
        $('#upload-file').val('');

    });

    // 删除附件
    $('body').on('click', '.delete-file', function () {
        let attid = $(this).data('attid');
        console.log(attid);
        let self = $(this);
        const data = {id: attid};
        postData('/change/delete/file', data, function (result) {
            self.parents('tr').remove();
            // 重新排序
            let newsort = 1;
            $('#attList tr').each(function(){
                $(this).children('td').eq(0).text(newsort);
                newsort++;
            });
        });
    });

    // 变更详情展示和隐藏
    $('.change-detail-checkbox').on('click', function (e) {
        if($(e.target).is('label')){
            return;
        }
        let column = table.column(3);
        column.visible(!column.visible());
    })
});
