This commit is contained in:
qsc
2026-09-04 18:29:49 +08:00
parent f872ffae71
commit 3845950862
42 changed files with 808 additions and 1054 deletions
+3 -3
View File
@@ -20,10 +20,10 @@
<tbody>
{% for item in items %}
<tr>
<td class="data-cell--name data-cell--wide data-cell--max-wide data-cell--wrap">{{ item.declaringName }}</td>
<td class="data-cell--name data-cell--wide data-cell--max-wide data-cell--wrap">{{ item.acceptingName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.declaringName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.acceptingName }}</td>
<td class="data-cell--time">{{ item.startTime }}</td>
<td class="data-cell--score data-cell--medium">{{ item.durationSeconds }}</td>
<td class="data-cell--score">{{ item.durationSeconds }}</td>
<td class="data-cell--time">{{ item.endTime }}</td>
</tr>
{% endfor %}
+4 -4
View File
@@ -20,10 +20,10 @@
<tbody>
{% for item in items %}
<tr>
<td class="data-cell--accent data-cell--medium data-cell--nowrap">{{ item.itemName }}</td>
<td class="data-cell--center data-cell--compact data-cell--nowrap">{{ item.server }}</td>
<td class="data-cell--max-wide data-cell--wrap">{{ item.mapName }}</td>
<td class="data-cell--name data-cell--max-wide data-cell--wrap">{{ item.roleName }}</td>
<td class="data-cell--accent data-cell--nowrap">{{ item.itemName }}</td>
<td class="data-cell--nowrap">{{ item.server }}</td>
<td class="data-cell--wrap">{{ item.mapName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.roleName }}</td>
<td class="data-cell--time">{{ item.time }}</td>
</tr>
{% endfor %}
+3 -3
View File
@@ -1,10 +1,11 @@
{# template-title: 副本奖励记录 #}
{# template-components: data-table #}
<div class="container">
<h1>副本奖励记录</h1>
<div class="description">
<div class="data-page__meta">
灰色表示奖励已经获取,绿色表示奖励尚未获取
</div>
@@ -21,7 +22,7 @@
</div>
{% if list %}
<table>
<table class="data-table data-table--spaced">
<thead>
<tr>
<th>副本名称</th>
@@ -81,4 +82,3 @@
</div>
{% endif %}
</div>
+3 -3
View File
@@ -30,9 +30,9 @@
class="camp-haoqi"
{% endif %}
>
<td class="data-cell--camp data-cell--compact data-cell--center data-cell--nowrap data-cell--strong">{{ item.camp_name }}</td>
<td class="data-cell--camp data-cell--name data-cell--medium data-cell--nowrap">{{ item.castle }}</td>
<td class="data-cell--compact data-cell--center data-cell--nowrap data-cell--strong">{{ item.str_status }}</td>
<td class="data-cell--camp data-cell--nowrap data-cell--strong">{{ item.camp_name }}</td>
<td class="data-cell--camp data-cell--name data-cell--nowrap">{{ item.castle }}</td>
<td class="data-cell--nowrap data-cell--strong">{{ item.str_status }}</td>
<td class="data-cell--time">{{ item.start_time }}</td>
<td class="data-cell--time">{{ item.end_time }}</td>
<td class="data-cell--time data-cell--accent">{{ item.remaining_time }}</td>
+1 -1
View File
@@ -206,6 +206,6 @@
</main>
<footer class="footer help-footer">
指令与参数之间使用空格分隔,带有 <strong>[ ]</strong> 的参数可以省略。
指令与参数之间使用空格分隔,带有 <strong>[ ]</strong> 的参数可以省略;会话绑定区服后可省略区服参数,在区服位置填写“全区”可查询全区数据
</footer>
</div>
+7 -6
View File
@@ -1,4 +1,5 @@
{# template-title: 剑网3交易行价格查询 #}
{# template-components: data-table #}
<div class="container">
<div class="header">
@@ -11,20 +12,20 @@
</div>
<div class="table-wrapper">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th style="width: 44%;">物品</th>
<th style="width: 24%;">物价</th>
<th style="width: 12%;">数量</th>
<th style="width: 20%;">数据时间</th>
<th>物品</th>
<th>物价</th>
<th>数量</th>
<th>数据时间</th>
</tr>
</thead>
<tbody>
{% for item in list %}
<tr>
<td>
<div class="item">
<div class="trade-item icon-label">
<img class="item-icon" src="{{ item.icon }}" alt="">
<div class="item-name">{{ item.name }}</div>
</div>
+1 -1
View File
@@ -36,7 +36,7 @@
<tr>
<td class="data-cell--name data-cell--wrap">{{ item.szSkillName }}</td>
<td class="data-cell--wrap">{{ item.szBossName }}</td>
<td class="data-cell--center data-cell--nowrap data-cell--strong">{{ item.skill_color_text }}</td>
<td class="data-cell--nowrap data-cell--strong">{{ item.skill_color_text }}</td>
<td class="data-cell--score">{{ item.nLevel }}</td>
</tr>
{% endfor %}
+3 -3
View File
@@ -1,14 +1,15 @@
{# template-title: 聊天记录 #}
{# template-components: data-table #}
<div class="container">
<h1>聊天记录</h1>
<div class="meta">
<div class="data-page__meta">
共查询到 {{ total | default(0, true) }} 条聊天记录
</div>
<table>
<table class="data-table data-table--spaced">
<thead>
<tr>
<th class="role-col">角色</th>
@@ -74,4 +75,3 @@
</tbody>
</table>
</div>
+4 -4
View File
@@ -31,10 +31,10 @@
<span>{{ item.forceName }}</span>
</div>
</td>
<td class="data-cell--name data-cell--medium data-cell--nowrap">{{ item.name }}</td>
<td class="data-cell--center data-cell--nowrap">{{ item.level }}</td>
<td class="data-cell--center data-cell--nowrap">{{ item.campName }}</td>
<td class="data-cell--max-wide data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--nowrap">{{ item.name }}</td>
<td class="data-cell--nowrap">{{ item.level }}</td>
<td class="data-cell--nowrap">{{ item.campName }}</td>
<td class="data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--score">{{ item.totalScore }}</td>
</tr>
{% endfor %}
+4 -4
View File
@@ -22,10 +22,10 @@
{% for item in items %}
<tr>
<td class="data-cell--rank">{{ loop.index }}</td>
<td class="data-cell--name data-cell--xwide data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wide data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--muted data-cell--medium data-cell--wrap">{{ item.castleName }}</td>
<td class="data-cell--center data-cell--nowrap data-cell--numeric">{{ item.memberCount }}/{{ item.maxMemberCount }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--muted data-cell--wrap">{{ item.castleName }}</td>
<td class="data-cell--nowrap data-cell--numeric">{{ item.memberCount }}/{{ item.maxMemberCount }}</td>
<td class="data-cell--score">{{ item.titlePoint }}</td>
</tr>
{% endfor %}
+3 -3
View File
@@ -21,9 +21,9 @@
{% for item in items %}
<tr>
<td class="data-cell--rank">{{ loop.index }}</td>
<td class="data-cell--name data-cell--xwide data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wide data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--center data-cell--nowrap data-cell--numeric">{{ item.maxLimit }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--nowrap data-cell--numeric">{{ item.maxLimit }}</td>
<td class="data-cell--score">{{ item.totalScore }}</td>
</tr>
{% endfor %}
+2 -2
View File
@@ -20,8 +20,8 @@
{% for item in items %}
<tr>
<td class="data-cell--rank">{{ loop.index }}</td>
<td class="data-cell--name data-cell--xwide data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wide data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.tongName }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.masterName }}</td>
<td class="data-cell--score">{{ item.key }}</td>
</tr>
{% endfor %}
+3 -3
View File
@@ -21,9 +21,9 @@
{% for item in items %}
<tr>
<td class="data-cell--rank">{{ loop.index }}</td>
<td class="data-cell--name data-cell--wide">{{ item.role_name }}</td>
<td class="data-cell--center data-cell--nowrap data-cell--numeric">{{ item.equip_score }}</td>
<td class="data-cell--center data-cell--nowrap data-cell--numeric">{{ item.max_level }}</td>
<td class="data-cell--name">{{ item.role_name }}</td>
<td class="data-cell--nowrap data-cell--numeric">{{ item.equip_score }}</td>
<td class="data-cell--nowrap data-cell--numeric">{{ item.max_level }}</td>
<td class="data-cell--score">{{ item.total_score }}</td>
</tr>
{% endfor %}
+4 -4
View File
@@ -26,7 +26,7 @@
<tbody>
{% for item in items %}
<tr>
<td class="data-cell--medium">
<td>
<div class="icon-label">
{% if icons.sect.get(item.forceName) %}
<img class="icon-label__icon" src="{{ icons.sect[item.forceName] }}" alt="{{ item.forceName }}">
@@ -35,10 +35,10 @@
</div>
</td>
<td class="data-cell--name data-cell--nowrap">{{ item.roleName }}</td>
<td class="data-cell--center data-cell--nowrap">{{ item.roleLevel }}</td>
<td class="data-cell--center data-cell--nowrap">{{ item.bodyName }}</td>
<td class="data-cell--nowrap">{{ item.roleLevel }}</td>
<td class="data-cell--nowrap">{{ item.bodyName }}</td>
<td>{{ item.tongName }}</td>
<td class="data-cell--center data-cell--nowrap">{{ item.campName }}</td>
<td class="data-cell--nowrap">{{ item.campName }}</td>
<td class="data-cell--copy">{{ item.comment }}</td>
</tr>
{% endfor %}
+8 -7
View File
@@ -1,4 +1,5 @@
{# template-title: {{ name }} - 万宝楼行情 #}
{# template-components: data-table #}
{#
@@ -70,7 +71,7 @@
<span class="price">参考价格:{{ retail }} 元</span>
</div>
<div class="table-wrapper">
<div class="market-table-grid">
<!-- ==================================================
1. 万宝楼公示
@@ -81,7 +82,7 @@
<div class="table-title">万宝楼公示</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
@@ -139,7 +140,7 @@
<div class="table-title">万宝楼在售</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
@@ -202,7 +203,7 @@
</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
@@ -273,7 +274,7 @@
<div class="table-title">电信区</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
@@ -344,7 +345,7 @@
<div class="table-title">双线区</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
@@ -415,7 +416,7 @@
<div class="table-title">无界区</div>
<div class="table-scroll">
<table>
<table class="data-table data-table--nowrap">
<thead>
<tr>
<th>时间</th>
+1 -1
View File
@@ -5,7 +5,7 @@
<div class="container data-page">
<h1>心法小药表</h1>
<table class="data-table data-table--center">
<table class="data-table">
<thead>
<tr>
<th rowspan="2">心法</th>
+2 -1
View File
@@ -1,4 +1,5 @@
{# template-title: 剑网三 战绩面板 #}
{# template-components: data-table #}
<div class="panel">
@@ -49,7 +50,7 @@
</div>
<!-- 对战记录表 -->
<table>
<table class="data-table data-table--spaced">
<thead>
<tr>
<th class="time-col">开始时间</th>
+3 -3
View File
@@ -26,9 +26,9 @@
class="camp-haoqi"
{% endif %}
>
<td class="data-cell--camp data-cell--compact data-cell--center data-cell--nowrap data-cell--strong">{{ item.campName }}</td>
<td class="data-cell--medium data-cell--center data-cell--nowrap data-cell--strong">{{ item.fenxianName }}</td>
<td class="data-cell--medium data-cell--center data-cell--nowrap data-cell--strong">{{ item.friendName }}</td>
<td class="data-cell--camp data-cell--nowrap data-cell--strong">{{ item.campName }}</td>
<td class="data-cell--nowrap data-cell--strong">{{ item.fenxianName }}</td>
<td class="data-cell--nowrap data-cell--strong">{{ item.friendName }}</td>
<td class="data-cell--name data-cell--copy">{{ item.roleName }}</td>
<td class="data-cell--time">{{ item.seizeTime }}</td>
</tr>
+1 -1
View File
@@ -18,7 +18,7 @@
<tbody>
{% for item in items %}
<tr>
<td class="data-cell--accent data-cell--wide data-cell--center data-cell--nowrap">{{ item.server }}</td>
<td class="data-cell--accent data-cell--nowrap">{{ item.server }}</td>
<td class="data-cell--name data-cell--wrap">{{ item.mapName }}</td>
<td class="data-cell--time">{{ item.time }}</td>
</tr>
+83 -35
View File
@@ -1,53 +1,101 @@
{# template-title: 资历查询 #}
{% macro progress_card(css_class, name, completed_points, total_points, completed_count, achievement_count) %}
{% set percent = (completed_points * 100 / total_points) if total_points else 0 %}
<div class="{{ css_class }}">
<div class="{{ 'summary-top' if css_class == 'summary' else 'item-top' }}">
<div class="{{ 'summary-name' if css_class == 'summary' else 'item-name' }}">{{ name }}</div>
<div class="{{ 'summary-percent' if css_class == 'summary' else 'item-percent' }}">{{ "%.2f"|format(percent) }}%</div>
</div>
<div class="score">
{{ completed_points }} / {{ total_points }} 点
· {{ completed_count }} / {{ achievement_count }} 项
</div>
<div class="progress">
<div class="progress-fill" style="width: {{ percent }}%;"></div>
</div>
</div>
{% endmacro %}
{% set page_title = (subclass ~ '总览') if subclass else '资历总览' %}
{% set selected_items = data.total if subclass else {} %}
{% set summary = namespace(pieces_total=0, pieces_speed=0, seniority_total=0, seniority_speed=0) %}
{% if subclass %}
{% for stats in selected_items.values() %}
{% set summary.pieces_total = summary.pieces_total + stats.pieces.total %}
{% set summary.pieces_speed = summary.pieces_speed + stats.pieces.speed %}
{% set summary.seniority_total = summary.seniority_total + stats.seniority.total %}
{% set summary.seniority_speed = summary.seniority_speed + stats.seniority.speed %}
{% endfor %}
{% else %}
{% for category_items in data.total.values() %}
{% for stats in category_items.values() %}
{% set summary.pieces_total = summary.pieces_total + stats.pieces.total %}
{% set summary.pieces_speed = summary.pieces_speed + stats.pieces.speed %}
{% endfor %}
{% endfor %}
{% set summary.seniority_total = data.totalScore %}
{% set summary.seniority_speed = data.score %}
{% endif %}
<div class="container">
<div class="header">
<div class="title-row">
<h1>{{ title }}</h1>
<h1>{{ page_title }}</h1>
<div class="role">
{% if icons.sect.get(force_name) %}
<img class="force-icon" src="{{ icons.sect[force_name] }}" alt="{{ force_name }}">
{% if icons.sect.get(forceName) %}
<img class="force-icon" src="{{ icons.sect[forceName] }}" alt="{{ forceName }}">
{% endif %}
<span>{{ role_name }}</span>
<span>{{ roleName }}</span>
</div>
</div>
<div class="meta">
{{ zone }} · {{ server }} · {{ force_name }} · {{ camp_name }} · 帮会:{{ tong_name }}<br>
资历更新时间:{{ updated_at or "未知" }} · 查询时间:{{ update_time }}
{{ zoneName }} · {{ serverName }} · {{ forceName }} · {{ campName }} · 帮会:{{ tongName or "无" }}<br>
数据来源:JX3API
</div>
</div>
<div class="summary">
<div class="summary-top">
<div class="summary-name">{{ summary.name }}</div>
<div class="summary-percent">{{ summary.percent_text }}</div>
</div>
<div class="score">
{{ summary.completed_points }} / {{ summary.total_points }} 点
· {{ summary.completed_count }} / {{ summary.achievement_count }} 项
</div>
<div class="progress">
<div class="progress-fill" style="width: {{ summary.percent }}%;"></div>
</div>
</div>
{{ progress_card(
'summary',
page_title,
summary.seniority_speed,
summary.seniority_total,
summary.pieces_speed,
summary.pieces_total
) }}
<div class="list">
{% for item in items %}
<div class="item">
<div class="item-top">
<div class="item-name">{{ item.name }}</div>
<div class="item-percent">{{ item.percent_text }}</div>
</div>
<div class="score">
{{ item.completed_points }} / {{ item.total_points }} 点
· {{ item.completed_count }} / {{ item.achievement_count }} 项
</div>
<div class="progress">
<div class="progress-fill" style="width: {{ item.percent }}%;"></div>
</div>
</div>
{% endfor %}
{% if subclass %}
{% for item_name, stats in selected_items.items() %}
{{ progress_card(
'item',
item_name,
stats.seniority.speed,
stats.seniority.total,
stats.pieces.speed,
stats.pieces.total
) }}
{% endfor %}
{% else %}
{% for category_name, category_items in data.total.items() %}
{% set item = namespace(pieces_total=0, pieces_speed=0, seniority_total=0, seniority_speed=0) %}
{% for stats in category_items.values() %}
{% set item.pieces_total = item.pieces_total + stats.pieces.total %}
{% set item.pieces_speed = item.pieces_speed + stats.pieces.speed %}
{% set item.seniority_total = item.seniority_total + stats.seniority.total %}
{% set item.seniority_speed = item.seniority_speed + stats.seniority.speed %}
{% endfor %}
{{ progress_card(
'item',
category_name ~ '总览',
item.seniority_speed,
item.seniority_total,
item.pieces_speed,
item.pieces_total
) }}
{% endfor %}
{% endif %}
</div>
</div>
+3 -12
View File
@@ -1,23 +1,15 @@
{# template-title: 资历排行 #}
{# template-components: data-table #}
<div class="container">
<h1>{{ school }} 资历排行</h1>
<div class="meta">
<div class="data-page__meta">
{{ server }} 更新时间:{{ update_time }}
</div>
<table>
<colgroup>
<col class="rank-width">
<col class="avatar-width">
<col class="force-width">
<col class="role-width">
<col class="server-width">
<col class="score-width">
</colgroup>
<table class="data-table">
<thead>
<tr>
<th>排名</th>
@@ -86,4 +78,3 @@
</tbody>
</table>
</div>