mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-04-05 17:37:53 +08:00
184 lines
4.3 KiB
JavaScript
184 lines
4.3 KiB
JavaScript
|
||
// --------------------- 工具方法 ---------------------
|
||
|
||
// 打开 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 = '<a href="' + item.link + '" target="_blank">' + name + '</a>'
|
||
}
|
||
var trStr = `
|
||
<tr>
|
||
<td class="zanzhu-name">${name}</td>
|
||
<td class="zanzhu-money">¥ ${item.moneyS}</td>
|
||
<td>${item.msg}</td>
|
||
<td>${item.date}</td>
|
||
</tr>
|
||
`;
|
||
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();
|
||
}
|
||
|
||
// 切换排序
|
||
$('.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();
|
||
})
|
||
|
||
|
||
// 读取 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;
|
||
}
|
||
|