'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')) { if (table) { table.destroy(); } table = $('.table-list').removeAttr('width').DataTable(billsTable); if (!$('.change-detail-checkbox').is(':checked')) { const column = table.column(3); column.visible(!column.visible()); } $('#bills').removeClass('first-bill-pane'); } }); $('#add-bj').on('click', 'input[type="checkbox"]', function () { const isCheck = $(this).prop('checked') if (isCheck) { $('#add-bj input[type="checkbox"]').each(function () { $(this).prop('checked', false) }) $(this).prop('checked', true) } }) $('#bg-copy').click(function() { const cid = $('#add-bj input:checked').data('id') postData(window.location.pathname + '/copy', cid, function () { window.location.reload() }) }) // 上传附件 $('#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); } if (auditList.findIndex(item => item.uid === parseInt(accountId)) === -1) { return toastr.error('暂无权限上传!') } postDataWithFile(window.location.pathname + '/file/upload', formData, function (data) { $('#addfujian').modal('hide'); let html = ''; let index = $('#attList tr').length + 1; for (const fileInfo of data) { html += ' ' + `` + '' + index + ' ' + `${fileInfo.filename}${fileInfo.fileext}`+ '' + fileInfo.filesize + ' ' + '' + fileInfo.in_time + ' ' + ``+ ( auditStatus === 4 ? fileInfo.extra_upload ? `` : '' : ` `)+ ``+ // ' ' + ''; ++index; } $('#attList').append(html); }, function () { }); $('#upload-file').val(''); }); // 删除附件 $('body').on('click', '.delete-file', function () { let attid = $(this).data('attid'); let self = $(this); const data = {id: attid}; postData(window.location.pathname + '/file/delete', data, function (result) { self.parents('tr').remove(); // 重新排序 let newsort = 1; $('#attList tr').each(function(){ $(this).children('td').eq(1).text(newsort); newsort++; }); }); }); // /change/download/file/ $('#attList').on('click', '.file-atn', function() { const id = $(this).attr('f-id') postData(`/change/download/file/${id}`, {}, (data) => { const { filepath } = data $('#file-upload').attr('href', filepath) $('#file-upload')[0].click() }) }) $('#attList').on('click', '.check-file', function() { const checkedList = $('#attList').find('input:checked') const childs = $('#attList').children().length const checkBox = $('#check-all-file') if (checkedList.length === childs) { checkBox.prop("checked", true) } else { checkBox.prop("checked", false) } }) $('#check-all-file').click(function() { const isCheck = $(this).is(':checked') $('#attList').children().each(function() { $(this).find('input:checkbox').prop("checked", isCheck) }) }); $('#bach-download').click(function() { const fileIds = [] $( '#attList .check-file:checked').each(function() { const fileId = $(this).attr('file-id') fileId && fileIds.push(fileId) }) if (fileIds.length) { if (fileIds.length > 10) { return toastr.warning(`最大允许10个文件(当前${fileIds.length}个)`); } const tid = $('#tenderId').val(); const cid = $('#changeId').val(); toastr.success('正在进行压缩文件...', '', { timeOut: 0, extendedTimeOut: 0}); $(this).attr('disabled', "true"); const btn = $(this); postCompressFile(`/tender/${tid}/change/${cid}/download/compresse-file`, {fileIds}, function(result) { toastr.clear(); toastr.success('压缩文件成功'); btn.removeAttr('disabled'); const href = window.URL.createObjectURL(result); $('#zipDown').attr('href', href); $('#zipDown').attr('download', `${tenderName}-工程变更-${changeName}-附件.zip`); $("#zipDown")[0].click(); }, () => { btn.removeAttr('disabled'); toastr.clear(); toastr.error('批量下载失败'); }); // $('#downloadZip').attr('href', `/tender/${tid}/change/${cid}/download/compresse-file?fileIds=${JSON.stringify(fileIds)}`); // $('#downloadZip')[0].click(); } }); // const cca = getLocalCache('change-checkbox-account-' + accountId); if (cca !== null && cca !== undefined) { $('#customCheck1').prop('checked', cca !== 'false'); } // 变更详情展示和隐藏 $('.change-detail-checkbox').on('click', function (e) { if($(e.target).is('label')){ return; } let column = table.column(3); // 设置用户项目本地记录展示和隐藏情况 setLocalCache('change-checkbox-account-'+ accountId, $(this).is(':checked')); column.visible(!column.visible()); }) // 重新审批获取手机验证码 // 获取验证码 let isPosting = false; $("#get-code").click(function() { if (isPosting) { return false; } const btn = $(this); $.ajax({ url: '/profile/code?_csrf_j=' + csrf, type: 'post', data: { mobile: authMobile, type: 'shenpi' }, dataTye: 'json', error: function() { isPosting = false; }, beforeSend: function() { isPosting = true; }, success: function(response) { isPosting = false; if (response.err === 0) { codeSuccess(btn); $("input[name='code']").removeAttr('readonly'); $("#re-shenpi-btn").removeAttr('disabled'); } else { toast(response.msg, 'error'); } } }); }); }); /** * 获取成功后的操作 * * @param {Object} btn - 点击的按钮 * @return {void} */ function codeSuccess(btn) { let counter = 60; btn.addClass('disabled').text('重新获取 ' + counter + 'S'); btn.parent().siblings('input').removeAttr('readonly').attr('placeholder', '输入短信中的6位验证码'); const bindBtn = $("#bind-btn"); bindBtn.removeClass('btn-secondary disabled').addClass('btn-primary'); const countDown = setInterval(function() { const countString = counter - 1 <= 0 ? '' : ' ' + (counter - 1) + 'S'; // 倒数结束后 if (countString === '') { clearInterval(countDown); btn.removeClass('disabled'); } const text = '重新获取' + countString; btn.text(text); counter -= 1; }, 1000); }