homepagePHP/app/Admin/View/default/News/index_extra.html

348 lines
11 KiB
HTML
Executable File

<style>
.daterangepicker.dropdown-menu {
margin-top: 55px;
}
.export-col {
float: left;
margin-left: 30px;
}
</style>
<style>
ul {
list-style: none;
padding-left: 0;
}
</style>
<script>
$('.show-export').on('click', function () {
$('#showExportModal').modal('show');
});
$(function () {
$('.autoBind').on('click', function () {
$('#auto_bind_modal').modal('show');
});
var pageSize = 500;
var loadData = [];
var queue;
var count;
var pageNum;
var currentPiece;
var isInit;
var lastLoaded;
var totalPiece;
var error = false;
var folderArr = [];
var zip;
var downloadPhoto = {};
$('.export_letter').on('click', function () {
varInit();
$('#myModalLabel').text('下载队列');
var query = getQueryData();
var selectIds = getSelectIds();
getLetterCount(query, selectIds);
if (totalPiece == 0) {
noData();
return false;
}
letterExport(query, selectIds);
initDownloadBar();
$('#comm-file-export-modal').modal('show').data('show', true);
showCloseBtn();
});
$('#cancel-download-queue').on('click', function () {
queue.close();
});
function getQueryData() {
var query = $('.builder .search-input').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/(^&)|(\+)/g, '');
return query;
}
function varInit() {
queue = null;
count = 0;
pageNum = 1;
currentPiece = 0;
lastLoaded = 0;
isInit = true;
totalPiece = 0;
loadData = [];
folderArr = [];
zip = new JSZip();
downloadPhoto = {};
}
function noData() {
showCloseBtn();
alert('暂无数据');
}
function showCloseBtn() {
$('#cancel-download-queue').removeClass('hidden');
$('#download-complete').addClass('hidden');
}
function getLetterCount(data, selectIds) {
var data = data + '&selectIds=' + selectIds;
$.ajax({
type: 'get',
async: false,
url: "{:U('admin/communication/getLetterCount')}",
data: data,
success: function (res) {
count = res;
totalPiece = Math.ceil(count / pageSize);
}
});
}
function letterExport(query, selectIds) {
var data = query + '&pageNum=' + pageNum + '&pageSize=' + pageSize + '&selectIds=' + selectIds;
$.ajax({
type: 'get',
async: false,
url: "{:U('admin/communication/letterExport')}",
data: data,
success: function (res) {
pageNum++;
if (count === 0 && pageNum == 1) {
noData();
return false;
}
currentPiece++;
getImageData(res);
queueInit();
},
fail: function () {
alert('下载失败');
}
});
}
function initDownloadBar() {
$('.progress-bar').css({
width: 0
});
$('.progrss-num').text('0%');
}
function queueInit() {
queue = new createjs.LoadQueue(true);
queue.loadManifest(loadData);
queue.on("complete", handleComplete, this);
queue.on("fileload", handleFileLoad, this);
queue.on("progress", handleProgress, this);
}
function getImageData(res) {
res.forEach(function (val) {
val.url.forEach(function (v) {
// v = '__PUBLIC__/img/index/btn-circle.png';
var loadDataItem = {
cid: val.cid,
id: val.id,
cname: val.cname,
vname: val.vname,
create_date: val.create_date,
src: v,
crossOrigin: true,
type: createjs.AbstractLoader.IMAGE
};
loadData.push(loadDataItem);
});
});
}
function handleProgress(a) {
//算法: 总模块的进度-1 + 当前模块进度的百分比
var loaded = (currentPiece - 1) / totalPiece * 100 + a.loaded * 100 / totalPiece;
loaded = parseInt(loaded);
$('.progress-bar').css({
width: loaded + '%'
});
$('.progrss-num').text(loaded + '%');
}
function handleFileLoad(e) {
appendFile2Zip(e.item);
}
function handleComplete() {
if (totalPiece > currentPiece) {
//继续下载
if ($('#comm-file-export-modal').data('show')) {
getDownloadData();
}
} else {
// //下载结束
createZip();
$('#cancel-download-queue').addClass('hidden');
$('#download-complete').removeClass('hidden');
}
}
function getPhotoOrder(fileName) {
if (typeof downloadPhoto[fileName] == 'number') {
++downloadPhoto[fileName];
} else {
downloadPhoto[fileName] = 1;
}
return downloadPhoto[fileName];
}
function appendFile2Zip(v) {
// loadData.forEach(function (v) {
var img = queue.getResult(v.id, true);
if (!img) {
error = true;
return false;
}
if (typeof v.ext != 'string') {
v.ext = '';
}
if (!v.ext) {
v.ext = 'jpg';
}
//创建文件夹
// folder = zip.folder(v.name + '_' + v.cid);
// folder.file(v.create_date + '_' + v.m[0],img, {blob: true});
var imgFileName = v.cid + '-' + v.cname + '-' + v.vname + '-' + v.create_date;
zip.file(imgFileName + '_' + getPhotoOrder(imgFileName) + '.' + v.ext.toLowerCase(), img);
// });
}
function createZip(zipName) {
if (typeof zipName != 'string') {
var zipName = 'download.zip';
}
if (zipName.lastIndexOf('zip') != zipName.length - 3) {
zipName = 'download.zip';
}
$('#myModalLabel').text('生成压缩包');
var $progressBar = $('.progress-bar'),
$progressNum = $('.progrss-num');
$progressBar.css({
transition: 'none',
width: '0%'
});
$progressNum.text('0%');
zip.generateAsync({type: "blob", streamFiles: true}, function (metadata) {
var loaded = metadata.percent.toFixed(2);
$progressBar.css({
width: loaded + '%'
});
$progressNum.text(loaded + '%');
})
.then(function (content) {
saveAs(content, zipName);
});
}
});
</script>
<script>
$('body').on('click', '.export_communication', function () {
var url = $(this).data('url');
var stream_rownum = $(this).data('streamrownum');
var filename = $(this).data('filename');
var query = $('.builder-list-box .search-input').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/(^&)|(\+)/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
var btn = this;
var title = $(this).text();
var opt = {
'url': url + '&ids=' + getSelectIds(),
'fileName': filename,
'before': function () {
$(btn).attr('disabled', 'true');
$(btn).text('导出中');
//$('.export_loading').show();
},
'reqType': 'POST',
'reqBody': $('#selectCol').serialize(),
'after': function () {
$(btn).removeAttr('disabled');
$(btn).text(title);
//$('.export_loading').hide();
},
'progress': function (progress) {
$(btn).text(progress);
}
}
var excel = new ExportExcel(opt);
if (parseInt(stream_rownum) > 0) {
excel.streamExport(stream_rownum);
} else {
excel.export();
}
});
$(function () {
var focusInputName;
$('.search-form input').on('focus', function () {
focusInputName = $(this).attr('name');
});
$('body').on('click','.daterangepicker .cancelBtn', function () {
$('.search-form input[name=' + focusInputName + ']').val('');
});
$('body').on('click','.daterangepicker .applyBtn', function () {
$('#search').trigger('click')
});
$('body').on('click','.daterangepicker .cancelBtn', function () {
$('#search').trigger('click')
});
});
</script>
<!-- <link rel="stylesheet" href="__PUBLIC__/libs/daterangepicker/daterangepicker-bs3.css">
<script type="text/javascript" src="__PUBLIC__/libs/daterangepicker/daterangepicker.js"></script>
<script type="text/javascript" src="__PUBLIC__/libs/daterangepicker/lang/zh-cn.js"></script>
<script type="text/javascript">
jQuery(document).ready(function ($) {
$('input[name=publish_date]').attr('readonly','readonly').daterangepicker({
format: 'YYYY/MM/DD',
applyClass : 'btn btn-primary btn-flat btn-sm',
cancelClass : 'btn btn-primary btn-flat btn-sm',
clearBtn: true,
timePicker : false,
timePicker12Hour : false,//是否使用12小时制来显示时间
timePickerIncrement : 1, //时间的增量,单位为分钟
autoUpdateInput : false,
locale: {
applyLabel: '应用',
cancelLabel: '重置',
fromLabel: '从',
toLabel: '到',
weekLabel: '周',
customRangeLabel: '自定义范围',
daysOfWeek: moment()._lang._weekdaysMin.slice(),
monthNames: moment()._lang._monthsShort.slice(),
firstDay: 0
}
});
});
</script> -->