Files
astrbot_plugin_jx3/templates/fubenjilu.html
T
2026-08-03 21:53:16 +08:00

393 lines
8.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>副本奖励记录</title>
<style>
* {
box-sizing: border-box;
}
body {
font-family: 'Microsoft YaHei', Arial, sans-serif;
background: #f1f2f6;
margin: 0;
padding: 20px;
color: #333;
}
.container {
max-width: 1200px;
margin: 0 auto;
text-align: center;
}
h1 {
font-size: 32px;
margin: 0 0 12px 0;
color: #222;
font-weight: 800;
text-align: center;
}
.description {
margin-bottom: 24px;
color: #7a7f8c;
font-size: 15px;
}
.legend {
display: flex;
justify-content: center;
align-items: center;
gap: 24px;
margin-bottom: 20px;
font-size: 14px;
color: #666;
}
.legend-item {
display: flex;
align-items: center;
gap: 7px;
}
.legend-color {
width: 15px;
height: 15px;
border-radius: 4px;
}
.legend-color.finished {
background: #c9cdd3;
}
.legend-color.unfinished {
background: #2dbd78;
}
table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
margin-top: 10px;
text-align: left;
}
thead {
background: #3b82f6;
color: white;
font-size: 18px;
}
th,
td {
padding: 16px 14px;
border-bottom: 1px solid #eee;
font-size: 16px;
vertical-align: middle;
}
th:first-child,
td:first-child {
width: 250px;
}
tbody tr:last-child td {
border-bottom: none;
}
tbody tr:hover {
background: #f7f9fc;
}
.map-info {
text-align: center;
}
.map-name {
color: #252a34;
font-size: 18px;
font-weight: 700;
line-height: 1.5;
}
.map-progress {
margin-top: 7px;
color: #8a909c;
font-size: 13px;
font-weight: 500;
}
.boss-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.boss-item {
position: relative;
min-width: 145px;
flex: 1 1 145px;
max-width: 210px;
min-height: 64px;
padding: 11px 13px;
border-radius: 9px;
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.boss-item:hover {
transform: translateY(-2px);
}
/*
* finished 为 true
* 奖励已经获取,显示灰色
*/
.boss-item.finished {
color: #747b85;
background: #e1e4e8;
border: 1px solid #d1d5db;
}
.boss-item.finished:hover {
box-shadow: 0 4px 12px rgba(75, 85, 99, 0.15);
}
/*
* finished 为 false
* 奖励尚未获取,显示绿色
*/
.boss-item.unfinished {
color: white;
background: #2dbd78;
border: 1px solid #24a96a;
}
.boss-item.unfinished:hover {
box-shadow: 0 4px 12px rgba(45, 189, 120, 0.25);
}
.boss-index {
position: absolute;
top: 6px;
right: 8px;
font-size: 11px;
font-weight: 700;
opacity: 0.65;
}
.boss-name {
padding-right: 18px;
overflow: hidden;
font-size: 15px;
font-weight: 700;
line-height: 1.4;
text-overflow: ellipsis;
white-space: nowrap;
}
.boss-status {
display: flex;
align-items: center;
gap: 5px;
margin-top: 6px;
font-size: 12px;
font-weight: 500;
}
.status-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
border-radius: 50%;
font-size: 11px;
font-weight: 800;
}
.boss-item.finished .status-icon {
color: #777e88;
background: rgba(255, 255, 255, 0.75);
}
.boss-item.unfinished .status-icon {
color: #22a566;
background: white;
}
.empty-data {
padding: 50px 20px;
color: #8a909c;
text-align: center;
background: white;
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
@media (max-width: 800px) {
body {
padding: 12px;
}
h1 {
font-size: 26px;
}
table,
thead,
tbody,
tr,
th,
td {
display: block;
}
thead {
display: none;
}
table {
background: transparent;
box-shadow: none;
}
tbody tr {
margin-bottom: 14px;
overflow: hidden;
background: white;
border-radius: 12px;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
}
th:first-child,
td:first-child {
width: 100%;
}
td {
border-bottom: none;
}
.map-info {
padding: 17px;
background: #fafbfc;
border-bottom: 1px solid #eee;
}
.boss-list {
padding: 2px;
}
.boss-item {
max-width: none;
}
}
@media (max-width: 500px) {
.legend {
gap: 14px;
font-size: 13px;
}
.boss-item {
flex-basis: 100%;
max-width: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<h1>副本奖励记录</h1>
<div class="description">
灰色表示奖励已经获取,绿色表示奖励尚未获取
</div>
<div class="legend">
<div class="legend-item">
<span class="legend-color finished"></span>
<span>奖励已获取</span>
</div>
<div class="legend-item">
<span class="legend-color unfinished"></span>
<span>奖励未获取</span>
</div>
</div>
{% if list %}
<table>
<thead>
<tr>
<th>副本名称</th>
<th>Boss 奖励状态</th>
</tr>
</thead>
<tbody>
{% for m in list %}
<tr>
<td class="map-info">
<div class="map-name">
{{ m.mapName }}
</div>
<div class="map-progress">
已获取 {{ m.bossFinished }} / {{ m.bossCount }}
</div>
</td>
<td>
<div class="boss-list">
{% for boss in m.bossProgress %}
<div
class="boss-item {% if boss.finished %}finished{% else %}unfinished{% endif %}"
title="{{ boss.name }} - {% if boss.finished %}奖励已获取{% else %}奖励未获取{% endif %}"
>
<span class="boss-index">
#{{ boss.progressId }}
</span>
<div class="boss-name">
{{ boss.name }}
</div>
<div class="boss-status">
{% if boss.finished %}
<span class="status-icon"></span>
<span>奖励已获取</span>
{% else %}
<span class="status-icon">!</span>
<span>奖励未获取</span>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<div class="empty-data">
暂无副本奖励记录
</div>
{% endif %}
</div>
</body>
</html>