// --------------------- 工具方法 --------------------- // 打开 loading loadingIcon = function(msg) { layer.closeAll(); // 开始前先把所有弹窗关了 return layer.msg(msg, {icon: 16, shade: 0.3, time: 1000 * 20, skin: 'ajax-layer-load' }); }; // 隐藏 loading hideLoadingIcon = function() { layer.closeAll(); }; // --------------------- 渲染赞助者名单 --------------------- // 返回赞助者名单副本 function getCopyDonateList() { var arr = []; for (var i = 0; i < donateList.length; i++) { var item = donateList[i]; // 时间转时间戳,方便排序 item.dateT = new Date(item.date).getTime(); // 金额补 .0 item.moneyS = item.money + ''; if(item.moneyS.indexOf('.') == -1) { item.moneyS = item.moneyS + '.0'; } arr.push(item); } return arr; } // 返回赞助者名单副本,根据日期倒叙排列 function getCopyDonateListByDateSort() { var arr = getCopyDonateList(); arr.sort(function(a, b){ var value = b.dateT - a.dateT; if(value == 0) { value = -1; } return value; }) return arr; } // 返回赞助者名单副本,根据赞助金额倒叙排列 function getCopyDonateListByMoneySort() { var arr = getCopyDonateList(); arr.sort(function(a, b){ var value = b.money - a.money; if(value == 0) { value = b.dateT - a.dateT; } return value; }) return arr; } // console.log(getCopyDonateListByMoneySort()); // 赞助配置 var zzCfg = { curr: 1, // 当前页 size: 15, // 页大小 pageCount: 0, // 页总数 dataCount: 0, // 数据总数 sort: 1, // 排序方式(1=按照日期倒叙,2=按照金额倒叙) } // 将赞助者名单渲染到页面上 function renderDonateTable() { // 先清空旧数据 $('.zanzhu-table tbody').empty(); // 拼接 tr 字符串 var trArrStr = ''; var arr = zzCfg.sort == 1 ? getCopyDonateListByDateSort() : getCopyDonateListByMoneySort(); // 按照页参数进行遍历 let index = (zzCfg.curr - 1) * zzCfg.size; // 起始索引 let end = index + zzCfg.size; // 结束索引 if(end > arr.length) { end = arr.length; } zzCfg.pageCount = parseInt(arr.length / zzCfg.size); // 页总数 if(arr.length % zzCfg.size != 0) { zzCfg.pageCount++; } zzCfg.dataCount = arr.length; // 数据总数 // 开始拼接字符串 for (let i = index; i < end; i++) { // console.log(item); let item = arr[i]; let name = item.name; if(item.link) { name = '' + name + '' } var trStr = ` ${name} ¥ ${item.moneyS} ${item.msg} ${item.date} `; trArrStr += trStr; } // 渲染到 table 里 $('.zanzhu-table tbody').html(trArrStr); // 重置分页信息 const pageInfo = `第 ${zzCfg.curr}/${zzCfg.pageCount} 页(共${zzCfg.dataCount}位)`; $('.zz-pageInfo').text(pageInfo); } // 带动画的渲染 function renderDonateTable2() { // 模拟ajax的延时 loadingIcon('努力加载中...'); setTimeout(function() { hideLoadingIcon(); // 隐藏掉转圈圈 renderDonateTable(); }, 300); } // renderDonateTable(); // 上一页 function prevPageRDT(){ if(zzCfg.curr <= 1) { return layer.msg('达咩,不能再往前了'); } zzCfg.curr--; renderDonateTable2(); } // 下一页 function nextPageRDT(){ if(zzCfg.curr >= zzCfg.pageCount) { return layer.msg('嘿,到底了'); } zzCfg.curr++; renderDonateTable2(); } // 绑定事件:切换排序 function onZanzhuSortClick(){ $('.zanzhu-sort-btn').click(function(){ // 切换 class $('.zz-sort-native').removeClass('zz-sort-native'); $(this).addClass('zz-sort-native'); // 切换数据 zzCfg.curr = 1; // 重置为第1页 zzCfg.sort = parseInt($(this).attr('sort-value')); renderDonateTable2(); }) } onZanzhuSortClick(); // 读取 sa-token-donate 页数据为 json function readDataToJson() { var arr = []; var trList = $('.zanzhu-box table tbody tr'); for (let tr of trList) { var tdArr = $(tr).find('td'); var item = { name: $(tdArr[0]).text(), link: $(tdArr[0]).find('a').attr('href') || '', money: parseFloat($(tdArr[1]).text().replaceAll('¥', '')), msg: $(tdArr[2]).html(), date: $(tdArr[3]).text(), }; arr.push(item); } return arr; } function readDataToJsonStr() { var arr = readDataToJson(); var str = ''; for (let item of arr) { str = JSON.stringify(item) + ',' + str; } return str; }