'use strict'; /** * 材料调差 - 附件 * @author LanJianRong * @date 2020/06/30 * @version */ $(document).ready(function () { // 每页最多几个附件 const pageCount = 15; // 全局fileData初始化 let fileData = fileList || [] handleFileList(fileData) getAllList() $('#upload-file-ok').click(function () { const files = Array.from($('#upload-fujian-file')[0].files) const valiData = files.map(v => { const ext = v.name.substring(v.name.lastIndexOf('.') + 1) return { size: v.size, ext } }) if (validateFiles(valiData)) { if (files.length) { const formData = new FormData() files.forEach(file => { formData.append('file', file) formData.append('name', file.name) formData.append('size', file.size) }) postDataWithFile(window.location.pathname + '/upload', formData, function (result) { handleFileList(result) $('#addfujian').modal('hide'); if (!$('#file-list tr').length) { getAllList(); } else { const curPageNo = $('#file-pagination > li[class="page-item active"] > a').text() || 1 getAllList(parseInt(curPageNo)); } }); } } }) // 选择/未选所有期列表 $('#file-checkbox').click(function() { getAllList() }) // 删除附件 $('body').on('click', '.delete-file', function () { let attid = $(this).data('attid'); const data = {id: attid}; postData('/tender/measure/material/file/delete', data, function () { const idx = fileData.findIndex(file => file.id === parseInt(attid)) idx !== -1 && fileData.splice(idx, 1) const curPageNo = parseInt($('#file-pagination > li[class="page-item active"] > a').text()) || 1 if ($('#file-list tr').length === 1) { getAllList(curPageNo - 1); } else { getAllList(curPageNo); } // self.parents('tr').remove(); // // 重新排序 // let newsort = 1; // $('#file-list tr').each(function(){ // $(this).children('td').eq(0).text(newsort); // newsort++; // }); }); }); // 切换页数 $('#file-pagination').on('click', '.page-item a', function () { // 找到当前的pageNo const curPageNo = $('#file-pagination > li[class="page-item active"] > a').text() || 1 const btnType = $(this).attr('aria-label') const total = calcCount(); // btnType存在,说明点击的是前一个/后一个 // btnType不存在,点击的是页数 if (btnType) { if (btnType === 'Previous') { // 只有大于1时才处理 if (parseInt(curPageNo) !== 1) { getAllList(curPageNo - 1) } } else if(btnType === 'Next') { if (parseInt(curPageNo) !== Math.ceil(total/pageCount)) { getAllList(parseInt(curPageNo) + 1) } } else if(btnType === 'Start') { getAllList(1) } else { getAllList(Math.ceil(total/pageCount)) } } else { curPageNo !== $(this).text() && getAllList(parseInt($(this).text())) } }) // 生成所有附件列表 function getAllList(currPageNum = 1) { // 未选中checkbox,需要过滤出来当前期的数据 const filterFileData = fileData && fileData.filter(file => file.mid === parseInt(mid) && file.tid === parseInt(tid)) const total = calcCount(filterFileData); // 总页数 const pageNum = Math.ceil(total/pageCount); // 当前页附件内容 const currPageAttData = fileData && $('#file-checkbox').is(':checked') ? fileData.slice((currPageNum-1)*pageCount, currPageNum*pageCount) : filterFileData.map((v, index) => { return {...v, index } }).slice((currPageNum-1)*pageCount, currPageNum*pageCount); renderHtml(currPageAttData) // 渲染分页器 renderPagination(currPageNum, pageNum) } function renderPagination(pageNo, pageSize) { $('#file-pagination').empty() if (pageSize < 2) return const btnHtml = `