'use strict'; /** * 变更令详细页js * * @author EllisRan. * @date 2018/11/22 * @version */ const is_numeric = (value) => { if (typeof(value) === 'object') { return false; } else { return !Number.isNaN(Number(value)) && value.toString().trim() !== ''; } }; $(document).ready(() => { //初始化所有附件列表 getAllList(); const cca = getLocalCache('change-checkbox-account-' + accountId); if (cca !== null && cca !== undefined) { $('#customCheck1').prop('checked', cca !== 'false'); } changeSpreadSheet.setColumnVisible(3,$('#customCheck1').is(':checked'), GC.Spread.Sheets.SheetArea.viewport); // 变更详情展示和隐藏 $('.change-detail-checkbox').on('click', function (e) { if($(e.target).is('label')){ return; } // // 设置用户项目本地记录展示和隐藏情况 setLocalCache('change-checkbox-account-'+ accountId, $(this).is(':checked')); changeSpreadSheet.setColumnVisible(3,$(this).is(':checked'), GC.Spread.Sheets.SheetArea.viewport); }); //tab change $('a[data-toggle="tab"]').on('shown.bs.tab', function () { const tab = $(this).data('tab'); if (tab === 'bgfujian') { $('#fujian_btn').show(); } else { $('#fujian_btn').hide(); } }); $('#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) { attData = data.concat(attData); // 重新生成List getAllList(); $('#addfujian').modal('hide'); // let html = ''; // let index = $('#attList tr').length + 1; // for (const fileInfo of data) { // html += ' ' + // `` + // '' + index + ' ' + // `${fileInfo.filename}${fileInfo.fileext}`+ // '' + fileInfo.in_time + '
' + fileInfo.filesize + ' ' + // ``+ // ( 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++; // }); // 删除到attData中 const att_index = attData.findIndex(function (item) { return item.id === parseInt(attid); }); attData.splice(att_index, 1); // 重新生成List if ($('#attList tr').length === 1) { getAllList(parseInt($('#currentPage').text()) - 1); } else { getAllList(parseInt($('#currentPage').text())); } }); }); // /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) { const tid = $('#tenderId').val(); const cid = $('#changeId').val(); $('#downloadZip').attr('href', `/tender/${tid}/change/${cid}/download/compresse-file?fileIds=${JSON.stringify(fileIds)}`); $('#downloadZip')[0].click(); } }); $.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(); changeSpread.refresh(); } }); // 切换页数 $('.page-select').on('click', function () { const totalPageNum = parseInt($('#totalPage').text()); const lastPageNum = parseInt($('#currentPage').text()); const status = $(this).attr('content'); if (status === 'pre' && lastPageNum > 1) { getAllList(lastPageNum-1); $('#showAttachment').hide(); $('#syfujian .check-all-file').prop('checked', false) } else if (status === 'next' && lastPageNum < totalPageNum) { getAllList(lastPageNum+1); $('#showAttachment').hide(); $('#syfujian .check-all-file').prop('checked', false) } }); }); function findDecimal(unit) { let value = precision.other.value; const changeUnits = precision; for (const d in changeUnits) { if (changeUnits[d].unit !== undefined && changeUnits[d].unit === unit) { value = changeUnits[d].value; break; } } return value; } // 生成附件列表 function getAllList(currPageNum = 1) { // 每页最多几个附件 const pageCount = 15; // 附件总数 const total = attData.length; // 总页数 const pageNum = Math.ceil(total/pageCount); $('#totalPage').text(pageNum); $('#currentPage').text(total === 0 ? 0 : currPageNum); // 当前页附件内容 const currPageAttData = attData.slice((currPageNum-1)*pageCount, currPageNum*pageCount); let html = ''; // '/tender/' + tender.id + '/measure/stage/' + stage.order + '/download/file/' + att.id for(const [index,att] of currPageAttData.entries()) { console.log(att.uid, accountId, auditStatus, Boolean(att.extra_upload)); html += ` ${index+1} ${att.filename}${att.fileext} ${moment(att.in_time * 1000).format('YYYY-MM-DD')}
${bytesToSize(att.filesize)} ` html += (att.uid === accountId && (auditStatus === 4 ? Boolean(att.extra_upload) : true)) ? `` : ''; html += ``; } $('#attList').html(html); $('#attList').on('click', 'tr', function() { $('#attList tr').removeClass('bg-light'); $(this).addClass('bg-light'); }) } function bytesToSize(bytes) { if (parseInt(bytes) === 0) return '0 B'; const k = 1024; const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); // return (bytes / Math.pow(k, i)) + ' ' + sizes[i]; return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]; }