| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 | $(function () {    autoFlashHeight();    $('#add-transfer-btn').on('click', function () {        if ($('#transfer-date').val() === '') {            toastr.error('请选择日期');            return false;        }        $('#add-transfer-form').submit();    });    $('body').on('click', '#transfer-list .del-transfer-btn', function () {        const trid = $(this).data('id');        deleteAfterHint(function () {            postData(window.location.pathname + '/update', {postType: 'del-transfer', postData: { node: trid }}, function (result) {                window.location.reload();            })        }, '确认删除该资金划拨并移除所有附件?');    });    $('body').on('click', '.open-transfer-files', function () {        const trid = $(this).attr('data-trid');        if (!trid) {            toastr.error('获取资金划拨信息失败');            return;        }        const trInfo = _.find(transferList, { id: parseInt(trid) });        if (!trInfo) {            toastr.error('获取资金划拨信息失败');            return;        }        if (trInfo.uid === user_id || financialPermission.transfer_file) {            $('#transfer-file .upload-permission').show();        } else {            $('#transfer-file .upload-permission').hide();        }        $('#transfer-file').modal('show');        $('#transfer-file input[name="trid"]').val(trid);        openFinancialTransferFiles(trInfo);    });    // 上传附件    $('#transfer-file input[type="file"]').change(function () {        const files = Array.from(this.files);        const valiData = files.map(v => {            const ext = v.name.substring(v.name.lastIndexOf('.') + 1)            return {                size: v.size,                ext            }        });        const trid = $('#transfer-file input[name="trid"]').val();        const trInfo = _.find(transferList, { id: parseInt(trid) });        if (!trInfo) {            toastr.warning('不存在该资金划拨');            $('#transfer-file input[type="file"]').val('');            return;        }        if (validateFiles(valiData)) {            if (files.length) {                const formData = new FormData()                files.forEach(file => {                    formData.append('name', file.name)                    formData.append('size', file.size)                    formData.append('file', file)                })                postDataWithFile('/financial/' + spid + '/transfer/' + trInfo.id + '/file/upload', formData, function (result) {                    trInfo.files = result;                    openFinancialTransferFiles(trInfo);                    $('#transfer-list tr[data-id="' + trInfo.id + '"] .file-num').text(trInfo.files.length ? trInfo.files.length : '');                });            }        }        $('#transfer-file input[type="file"]').val('');    });    $('body').on('click', '#transfer-file .file-del', function () {        const trid = $('#transfer-file input[name="trid"]').val();        const trInfo = _.find(transferList, { id: parseInt(trid) });        if (!trInfo) {            toastr.warning('不存在该资金划拨');            return;        }        const fid = $(this).data('id');        deleteAfterHint(function () {            postData('/financial/' + spid + '/transfer/' + trInfo.id + '/file/delete', { id: fid }, function (result) {                trInfo.files = result;                openFinancialTransferFiles(trInfo);                $('#transfer-list tr[data-id="' + trInfo.id + '"] .file-num').text(trInfo.files.length ? trInfo.files.length : '');            });        }, '确认删除该文件?');    });    function openFinancialTransferFiles(trInfo, _this = '#transfer-file table tbody') {        const files = trInfo.files;        let filesHtml = '';        const newFiles = files.map(file => {            let showDel = false;            if (file.uid === user_id) {                showDel = true            }            return {...file, showDel}        })        newFiles.forEach((file, idx) => {            filesHtml += `<tr class="text-center">                                        <td>${idx + 1}</td><td class="text-left"><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td>                                        <td>                                            <div class="btn-group-table">                                                ${file.viewpath ? `<a href="${file.viewpath}" target="_blank" class="mr-1"><i class="fa fa-eye fa-fw"></i></a>` : ''}                                                <a href="/financial/${spid}/transfer/${trInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>                                                ${file.showDel ? `<a href="javascript: void(0);" class="text-danger file-del mr-1" data-id="${file.id}"><i class="fa fa-trash-o fa-fw text-danger"></i></a>` : ''}                                            </div>                                        </td>                                    </tr>`;        });        $(_this).html(filesHtml);    }    $('body').on('click', '#transfer-list .edit-remark', function () {        const trid = $(this).data('id');        const trInfo = _.find(transferList, { id: trid });        if (!trInfo) {            toastr.error('获取资金划拨信息失败');            return;        }        $('#edit-remark-modal .transfer-time').text(trInfo.t_time);        $('#edit-remark-modal').modal('show');        $('#edit-remark-modal input[name="ftid"]').val(trid);        $('#edit-remark-modal textarea[name="remark"]').val(trInfo.remark);    });    $('#save-remark-btn').click(function () {        const data = {            id: parseInt($('#edit-remark-modal input[name="ftid"]').val()),            remark: $('#edit-remark-modal textarea[name="remark"]').val(),        }        const trInfo = _.find(transferList, { id: data.id });        if (!trInfo) {            toastr.error('获取资金划拨信息失败');            return;        }        postData(window.location.pathname + '/update', {postType: 'save-transfer', postData: data}, function (result) {            trInfo.remark = data.remark;            $('#edit-remark-modal').modal('hide');            $('#transfer-list tr[data-id="' + trInfo.id + '"] .show-remark').html(trInfo.remark);        });    });    $.subMenu({        menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',        toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',        key: 'menu.1.0.0',        miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',        callback: function (info) {            if (info.mini) {                $('.panel-title').addClass('fluid');                $('#sub-menu').removeClass('panel-sidebar');            } else {                $('.panel-title').removeClass('fluid');                $('#sub-menu').addClass('panel-sidebar');            }            autoFlashHeight();        }    });})/** * 校验文件大小、格式 * @param {Array} files 文件数组 */function validateFiles(files) {    if (files.length > 10) {        toastr.error('至多同时上传10个文件');        return false    }    return files.every(file => {        if (file.size > 1024 * 1024 * 30) {            toastr.error('文件大小限制为30MB');            return false        }        if (whiteList.indexOf('.' + file.ext.toLowerCase()) === -1) {            toastr.error('请上传正确的格式文件');            return false        }        return true    })}
 |