Commit acf55d6b authored by GaiaXalter's avatar GaiaXalter 💬

fix:同步生产版本且修复单卡链接

parent cab5ce83
Pipeline #24358 failed with stages
in 6 seconds
...@@ -49,7 +49,7 @@ export default class Api { ...@@ -49,7 +49,7 @@ export default class Api {
} }
static getUserDueHistory(opt) { static getUserDueHistory(opt) {
return Vue.http.get(`${URL}/history`, { 'params': opt }); return Vue.http.get(`${URL}/history`, {'params': opt});
} }
static getDownloadUrls() { static getDownloadUrls() {
...@@ -67,72 +67,72 @@ export default class Api { ...@@ -67,72 +67,72 @@ export default class Api {
} }
static getDeckInfo(opt) { static getDeckInfo(opt) {
return Vue.http.get(`${URL}/deckinfo`, { 'params': opt }); return Vue.http.get(`${URL}/deckinfo`, {'params': opt});
} }
static saveDeck(opt) { static saveDeck(opt) {
const url = `${URL}/deckinfo` const url = `${URL}/deckinfo`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static saveDeckDemo(opt) { static saveDeckDemo(opt) {
const url = `${URL}/deckdemo` const url = `${URL}/deckdemo`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getReport(opt) { static getReport(opt) {
return Vue.http.get(`${URL}/report`, { 'params': opt }); return Vue.http.get(`${URL}/report`, {'params': opt});
} }
static getVoteList(opt) { static getVoteList(opt) {
return Vue.http.get(`${URL}/votes`, { 'params': opt }); return Vue.http.get(`${URL}/votes`, {'params': opt});
} }
static saveVote(opt) { static saveVote(opt) {
const url = `${URL}/votes` const url = `${URL}/votes`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static voteStatus(opt) { static voteStatus(opt) {
const url = `${URL}/voteStatus` const url = `${URL}/voteStatus`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getVote(opt) { static getVote(opt) {
return Vue.http.get(`${URL}/vote`, { 'params': opt }); return Vue.http.get(`${URL}/vote`, {'params': opt});
} }
static submitVote(opt) { static submitVote(opt) {
const url = `${URL}/submitVote` const url = `${URL}/submitVote`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static saveAds(opt) { static saveAds(opt) {
const url = `${URL}/ads` const url = `${URL}/ads`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getAdsList(opt) { static getAdsList(opt) {
return Vue.http.get(`${URL}/ads`, { 'params': opt }); return Vue.http.get(`${URL}/ads`, {'params': opt});
} }
static adsStatus(opt) { static adsStatus(opt) {
const url = `${URL}/adsStatus` const url = `${URL}/adsStatus`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getAd(opt) { static getAd(opt) {
return Vue.http.get(`${URL}/getAd`, { 'params': opt }); return Vue.http.get(`${URL}/getAd`, {'params': opt});
} }
static adClick(opt) { static adClick(opt) {
const url = `${URL}/adClick` const url = `${URL}/adClick`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static adImpl(opt) { static adImpl(opt) {
const url = `${URL}/adImpl` const url = `${URL}/adImpl`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getFirstWin(opt) { static getFirstWin(opt) {
...@@ -143,21 +143,26 @@ export default class Api { ...@@ -143,21 +143,26 @@ export default class Api {
static adSwitchChange(opt) { static adSwitchChange(opt) {
const url = `${URL}/adSwitchChange` const url = `${URL}/adSwitchChange`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static saveActivity(opt) { static saveActivity(opt) {
const url = `${URL}/activity` const url = `${URL}/activity`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static saveLabel(opt) { static saveLabel(opt) {
const url = `${URL}/label` const url = `${URL}/label`
return Vue.http.post(url, opt, { 'emulateJSON': true }); return Vue.http.post(url, opt, {'emulateJSON': true});
} }
static getLabel(opt) { static getLabel(opt) {
return Vue.http.get(`${URL}/label`, { 'params': {} }); return Vue.http.get(`${URL}/label`, {'params': {}});
} }
static getMonthlyHistory(opt) {
const url = `https://sapi.moecube.com:444/ygopro/arena/historyScore`;
return Vue.http.get(url, {params: opt});
}
// https://sapi.moecube.com:444/ygopro/arena/historyScore?username=id&season=yyyy-mm
} }
This diff is collapsed.
This diff is collapsed.
...@@ -150,74 +150,108 @@ ...@@ -150,74 +150,108 @@
} }
} }
function renderExpTable(tableData) { function renderArenaTable(tableData) {
tableData = tableData || []; tableData = tableData || [];
var lang = localStorage.getItem('lang') || 'cn'; var lang = localStorage.getItem('lang') || 'cn';
var rank = 1; var rank = 1;
var processData = tableData.map(function(d) { var processData = tableData.map(function (d) {
return [rank++, d.username, parseInt(d.exp), d.entertain_win, d.entertain_lose]; let ratio = 0
if (d.athletic_all > 0) {
ratio = (d.athletic_win / d.athletic_all * 100).toFixed(2)
}
var iconSrc = 'https://sapi.moecube.com:444/avatar/avatar/' + d.username + '/100/pic.png';
return [rank++, iconSrc, String(d.username), parseInt(d.pt), d.athletic_win, d.athletic_lose, ratio + "%"];
}); });
var table = $('#exp_table').DataTable({ var table = $('#pt_table').DataTable({
"autoWidth": false,
data: processData, data: processData,
pageLength: 25, pageLength: 25,
order: [ order: [
[0, "asc"] [0, "asc"]
], ],
"ordering": true, "ordering": true,
columns: [{ columns: [
title: tb_language[lang].rank {
title: tb_language[lang].rank,
}, },
{ {
title: tb_language[lang].name title: tb_language[lang].name, // Display icon + username in this column
render: function (data, type, row) {
var iconSrcWithUsername = row[1]; // 获取图像链接
var username = row[2]; // 获取用户名
return '<div style="display: flex; align-items: center;">' +
'<img src="' + iconSrcWithUsername + '" style="width: 35px; height: 35px; margin-right: 3px;"> ' +
'<a href="#/userinfo?username=' + encodeURIComponent(username) + '">' + username + '</a>' +
'</div>';
},
}, },
{ {
title: tb_language[lang].exp visible: false, // Hide the username column,
}, },
{ {
title: tb_language[lang].win title: tb_language[lang].pt,
}, },
{ {
title: tb_language[lang].lose title: tb_language[lang].win,
},
{
title: tb_language[lang].lose,
},
{
title: tb_language[lang].wl,
}, },
], ],
"columnDefs": [{ "columnDefs": [{
"render": function(data, type, row) { "render": function (data, type, row) {
return "<a href='#/userinfo?username=" + encodeURIComponent(data) + "'>" + data + "</a>"; return "<a href='#/userinfo?username=" + encodeURIComponent(data) + "'>" + data + "</a>";
}, },
"targets": 1 "targets": 2
}, ], },],
"language": lang === 'en' ? tb_language.en : tb_language.cn "language": tb_language[lang],
}); });
$(".input-sm").attr("placeholder",placeholder) $(".input-sm").attr("placeholder", placeholder)
return table; return table;
} }
function renderArenaTable(tableData) { function renderExpTable(tableData) {
tableData = tableData || []; tableData = tableData || [];
var lang = localStorage.getItem('lang') || 'cn'; var lang = localStorage.getItem('lang') || 'cn';
var rank = 1; var rank = 1;
var processData = tableData.map(function(d) { var processData = tableData.map(function (d) {
let ratio = 0 var iconSrc = 'https://sapi.moecube.com:444/avatar/avatar/' + d.username + '/100/pic.png';
if (d.athletic_all > 0) { return [rank++, iconSrc, String(d.username), parseInt(d.exp), d.entertain_win, d.entertain_lose];
ratio = (d.athletic_win / d.athletic_all * 100).toFixed(2)
}
return [rank++, d.username, parseInt(d.pt), d.athletic_win, d.athletic_lose, ratio + "%"];
}); });
var table = $('#pt_table').DataTable({
var table = $('#exp_table').DataTable({
data: processData, data: processData,
pageLength: 25, pageLength: 25,
order: [ order: [[0, "asc"]],
[0, "asc"]
],
"ordering": true, "ordering": true,
columns: [{ columns: [
{
title: tb_language[lang].rank title: tb_language[lang].rank
}, },
{ {
title: tb_language[lang].name title: tb_language[lang].name, // Display icon + username in this column
render: function (data, type, row) {
var iconSrcWithUsername = row[1]; // 获取图像链接
var username = row[2]; // 获取用户名
return '<div style="display: flex; align-items: center;"><img src="' + iconSrcWithUsername + '" style="width: 35px; height: 35px; margin-right: 3px;"> <a href="#/userinfo?username=' + encodeURIComponent(username) + '">' + username + '</a></div>';
},
},
{
visible: false, // Hide the username column
}, },
{ {
title: tb_language[lang].pt title: tb_language[lang].exp
}, },
{ {
title: tb_language[lang].win title: tb_language[lang].win
...@@ -225,19 +259,16 @@ ...@@ -225,19 +259,16 @@
{ {
title: tb_language[lang].lose title: tb_language[lang].lose
}, },
],
"columnDefs": [
{ {
title: tb_language[lang].wl "targets": [0, 3, 4, 5], // Target other columns (exp, win, lose) to make them non-orderable
"orderable": false
}, },
], ],
"columnDefs": [{ "language": lang === 'en' ? tb_language.en : tb_language.cn,
"render": function(data, type, row) {
return "<a href='#/userinfo?username=" + encodeURIComponent(data) + "'>" + data + "</a>";
},
"targets": 1
}, ],
"language": tb_language[lang]
}); });
$(".input-sm").attr("placeholder",placeholder) $(".input-sm").attr("placeholder", placeholder);
return table; return table;
} }
renderPage(); renderPage();
...@@ -271,3 +302,16 @@ ...@@ -271,3 +302,16 @@
width: 250%; width: 250%;
} }
</style> </style>
<style>
#pt_table tr td:first-child, #pt_table tr th:first-child, #exp_table tr td:first-child, #exp_table tr th:first-child {
width: 1%;
white-space: nowrap;
}
#pt_table td, #pt_table th {
text-align: left;
vertical-align: middle}
#epx_table td, #exp_table th {
text-align: left;
vertical-align: middle}
</style>
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
class="winRateTitle-color-3">上月胜率</div>。在每个月<div class="winRateTitle-color-3">20日</div> class="winRateTitle-color-3">上月胜率</div>。在每个月<div class="winRateTitle-color-3">20日</div>
以及之后,胜率为<div class="winRateTitle-color-3">当月胜率</div> </div>--> 以及之后,胜率为<div class="winRateTitle-color-3">当月胜率</div> </div>-->
<div id="winRateTitle-2">更新:<div class="winRateTitle-color-3">每天更新,当月胜率</div></div> <div id="winRateTitle-2">更新:<div class="winRateTitle-color-3">每天更新,当月胜率</div></div>
</div> </div>
<div class='winRateContent'> <div class='winRateContent'>
<div class='winRateContent-Tabs'> <div class='winRateContent-Tabs'>
......
...@@ -41,6 +41,7 @@ module.exports = { ...@@ -41,6 +41,7 @@ module.exports = {
dueHistory: '最近决斗记录', dueHistory: '最近决斗记录',
athleticDueHistory: '竞技场决斗记录', athleticDueHistory: '竞技场决斗记录',
entertainDueHistory: '娱乐场决斗记录', entertainDueHistory: '娱乐场决斗记录',
monthlyHistory: '每月决斗记录',
tagInfo: '绿色表示获胜方,红色则表示掉线。', tagInfo: '绿色表示获胜方,红色则表示掉线。',
rates: '卡组胜率', rates: '卡组胜率',
...@@ -155,6 +156,7 @@ module.exports = { ...@@ -155,6 +156,7 @@ module.exports = {
side: 'Side', side: 'Side',
extra: 'Extra', extra: 'Extra',
dueHistory: 'Recent Due History', dueHistory: 'Recent Due History',
monthlyHistory: 'Monthly Rank Record',
athleticDueHistory: 'Athletic Due History', athleticDueHistory: 'Athletic Due History',
entertainDueHistory: 'Entertain Due History', entertainDueHistory: 'Entertain Due History',
tagInfo: 'Green tag represents the winner.Red tag represents player lost connection.', tagInfo: 'Green tag represents the winner.Red tag represents player lost connection.',
......
...@@ -29,7 +29,10 @@ module.exports = { ...@@ -29,7 +29,10 @@ module.exports = {
win: "胜局", win: "胜局",
lose: "负局", lose: "负局",
wl: "胜率", wl: "胜率",
athleticWin:'竞技场胜利',
athleticLose:'竞技场失败',
season:'时间',
total:'合计',
cardName: "卡名", cardName: "卡名",
used: "使用量", used: "使用量",
put1: "投入1", put1: "投入1",
...@@ -38,6 +41,7 @@ module.exports = { ...@@ -38,6 +41,7 @@ module.exports = {
deck: "卡组", deck: "卡组",
count: "使用数", count: "使用数",
PickRate : "使用率",
topTags: "热门标签", topTags: "热门标签",
playerA: '玩家A', playerA: '玩家A',
...@@ -59,10 +63,14 @@ module.exports = { ...@@ -59,10 +63,14 @@ module.exports = {
cardName: "Card Name", cardName: "Card Name",
used: "Used", used: "Used",
PickRate:"Pick Rate",
put1: "Put one ", put1: "Put one ",
put2: "Put two ", put2: "Put two ",
put3: "Put three ", put3: "Put three ",
athleticWin:'Win',
athleticLose:'Lose',
season:'Time',
total:'Total',
deck: "Deck", deck: "Deck",
count: "Count", count: "Count",
topTags: "Top Tags", topTags: "Top Tags",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment