This commit is contained in:
2025-11-20 18:25:04 +08:00
parent 6a87c22d1b
commit 545fdc5c02
4 changed files with 147 additions and 531 deletions
+2 -2
View File
@@ -167,10 +167,10 @@ class JX3Function:
if not data:
return_data["msg"] = "获取接口信息失败"
return return_data
data = data[:7]
#data = data[:7]
# 加载模板
try:
return_data["temp"] = load_template("temp_test.html")
return_data["temp"] = load_template("jinjia.html")
except FileNotFoundError as e:
logger.error(f"加载模板失败: {e}")
return_data["msg"] = "系统错误:模板文件不存在"
+18 -174
View File
@@ -1,186 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>剑网3各平台金价查询</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Microsoft YaHei', sans-serif;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
padding: 20px;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.container {
width: 1280px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
overflow: hidden;
}
.header {
background: linear-gradient(135deg, #4a90e2 0%, #2a5298 100%);
color: white;
padding: 25px 30px;
text-align: center;
}
.header h1 {
font-size: 32px;
margin-bottom: 8px;
font-weight: 600;
letter-spacing: 1px;
}
.server-info {
font-size: 18px;
opacity: 0.9;
}
.summary {
background-color: #f8f9fa;
padding: 15px 30px;
font-size: 16px;
color: #495057;
border-bottom: 1px solid #e9ecef;
display: flex;
justify-content: space-between;
align-items: center;
}
.items-count {
font-weight: 600;
color: #4a90e2;
}
.update-time {
color: #6c757d;
font-size: 14px;
}
.table-container {
padding: 0 30px 30px 30px;
overflow-x: auto;
text-align: center
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
border-radius: 8px;
overflow: hidden;
}
th {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
color: white;
padding: 16px 20px;
text-align: left;
font-weight: 500;
font-size: 20px;
position: sticky;
top: 0;
}
th:first-child {
border-top-left-radius: 8px;
}
th:last-child {
border-top-right-radius: 8px;
}
td {
padding: 14px 20px;
border-bottom: 1px solid #e9ecef;
font-size: 18px;
color: #495057;
}
tr:nth-child(even) {
background-color: #f8f9fa;
}
tr:hover {
background-color: #e9f7fe;
transition: background-color 0.2s;
}
.item-name {
font-weight: 500;
color: #2c3e50;
max-width: 500px;
}
.price {
text-align: right;
color: #e74c3c;
font-weight: 600;
font-size: 16px;
}
.sample {
text-align: center;
color: #6c757d;
}
.footer {
background-color: #343a40;
color: #f8f9fa;
padding: 15px 30px;
text-align: center;
font-size: 14px;
}
.highlight {
background-color: #fff3cd;
}
@media (max-width: 1320px) {
body {
padding: 10px;
}
.container {
width: 100%;
max-width: 1280px;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>剑网3各平台金价查询</h1>
<div class="server-info">服务器: {{ server }}</div>
</div>
<div style="width: 320px; margin: 0 auto;">
<h1 style="text-align: center" id="剑网三金价">剑网三金价</h1>
<p style="text-align: center">服务器:梦江南</p>
<div class="summary">
<div class="items-count">共找到 <strong>{{ items|length }}</strong> 条数据</div>
<div class="update-time">数据更新时间: {{ update_time }}</div>
</div>
<div class="table-container">
<table>
<div style="overflow-x: auto; overflow-y: hidden;">
<table style="width: 300px; border-collapse: collapse; margin: 0 auto;">
<colgroup>
<col style="width: 100px">
<col style="width: 100px">
<col style="width: 100px">
</colgroup>
<thead>
<tr>
<th style="width: 28%; text-align: center;">时间</th>
<th style="width: 12%; text-align: center;">贴吧</th>
<th style="width: 12%; text-align: center;">万宝楼</th>
<th style="width: 12%; text-align: center;">DD373</th>
<th style="width: 12%; text-align: center;">UU898</th>
<th style="width: 12%; text-align: center;">5173</th>
<th style="width: 12%; text-align: center;">7881</th>
<tr style="height: 60px; text-align: center;">
<th>时间</th>
<th>万宝楼</th>
<th>贴吧</th>
</tr>
</thead>
<tbody>
{% for item in items %}
<tr>
<td class="date">{{ item.date }}</td>
<td class="priceTieba">{{ item.priceTieba }}</td>
<td class="priceWanbaolou">{{ item.priceWanbaolou }}</td>
<td class="priceDd373">{{ item.priceDd373 }}</td>
<td class="priceUu898">{{ item.priceUu898 }}</td>
<td class="price5173">{{ item.price5173 }}</td>
<td class="priceDd373">{{ item.price7881 }}</td>
<tr style="text-align: center; height: 50px;">
<td>{{ item.date }}</td>
<td>{{ item.priceWanbaolou }}</td>
<td>{{ item.priceTieba }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="footer">
© 2025 剑网3金价查询系统 | 数据仅供参考,以游戏内实际价格为准
</div>
</div>
</body>
</html>
+47 -120
View File
@@ -1,138 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>剑网3金价趋势</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
margin: 0;
font-family: 'Microsoft YaHei', sans-serif;
background-color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
<div style="max-width: 800px; margin: 0 auto; font-family: 'Microsoft YaHei', sans-serif; color: #000; text-align: center;">
.container {
width: 100%;
max-width: 1000px;
border-radius: 0;
box-shadow: none;
}
.header {
background: linear-gradient(135deg, #4a90e2 0%, #2a5298 100%);
color: white;
padding: 25px 30px;
text-align: center;
}
.header h1 {
font-size: 32px;
margin-bottom: 8px;
font-weight: 600;
letter-spacing: 1px;
}
.server-info {
font-size: 18px;
opacity: 0.9;
}
.summary {
background-color: #f8f9fa;
padding: 15px 30px;
font-size: 16px;
color: #495057;
border-bottom: 1px solid #e9ecef;
display: flex;
justify-content: space-between;
align-items: center;
}
.table-container {
padding: 30px;
overflow-x: auto;
}
table {
border-collapse: collapse;
width: auto;
min-width: 800px;
margin: 0 auto;
}
th, td {
border: 1px solid #dee2e6;
padding: 12px 18px;
text-align: center;
font-size: 16px;
}
th {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
color: white;
font-weight: 500;
}
tr:nth-child(even) td {
background-color: #f8f9fa;
}
tr:hover td {
background-color: #e9f7fe;
transition: background-color 0.2s;
}
.footer {
background-color: #343a40;
color: #f8f9fa;
padding: 15px 30px;
text-align: center;
font-size: 14px;
}
@media (max-width: 768px) {
th, td {
padding: 8px 12px;
font-size: 14px;
}
}
</style>
</head>
<body>
<!-- 商品基本信息 -->
<h1 style="margin-bottom: 5px;">{{ showName }} ({{ goodsAlias }})</h1>
<img src="{{ imgs }}" alt="{{ showName }}" style="width: 100%; max-width: 600px; margin-bottom: 8px;">
<p style="margin: 4px 0;">{{ goodsDesc }}</p>
<p style="margin: 4px 0;"><strong>发布时间:</strong> {{ publishTime.split('T')[0] if publishTime else '未知' }}</p>
<p style="margin: 4px 0;"><strong>参考价格:</strong> {{ priceNum }} 元</p>
<div class="container">
<div class="header">
<h1>剑网3金价趋势({{ server }}</h1>
<div class="server-info">数据更新时间: {{ update_time }}</div>
</div>
<!-- 双列表格 -->
<div style="display: flex; gap: 10px; margin-top: 15px; flex-wrap: wrap; justify-content: center;">
<div class="table-container">
<table>
<!-- 万宝楼公示 -->
<div style="flex: 1; min-width: 300px; border:1px solid #000; overflow:hidden;">
<div style="padding:4px; font-weight:bold; text-align:center;">万宝楼公示</div>
<div style="overflow-x:auto;">
<table style="width:100%; border-collapse:collapse; margin:0 auto; text-align:center; font-size:0.9em;">
<thead>
<tr>
<th>平台 / 时间</th>
{% for item in items %}
<th>{{ item.date }}</th>
{% endfor %}
<th style="border:1px solid #000; padding:2px;">剩余时间</th>
<th style="border:1px solid #000; padding:2px;">服务器</th>
<th style="border:1px solid #000; padding:2px;">价格</th>
</tr>
</thead>
<tbody>
{% for item in wblgs %}
<tr>
<td style="font-weight:600; color:#4a90e2;">贴吧</td>
{% for item in items %}
<td>{{ item.priceTieba }}</td>
{% endfor %}
<td style="border:1px solid #000; padding:2px;">{{ item.replyTime }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.belongQf2 }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.priceNum }}</td>
</tr>
<tr>
<td style="font-weight:600; color:#e67e22;">万宝楼</td>
{% for item in items %}
<td>{{ item.priceWanbaolou }}</td>
{% endfor %}
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
© 2025 剑网3金价查询系统 | 数据仅供参考,以游戏内实际价格为准
<!-- 万宝楼在售 -->
<div style="flex: 1; min-width: 300px; border:1px solid #000; overflow:hidden;">
<div style="padding:4px; font-weight:bold; text-align:center;">万宝楼在售</div>
<div style="overflow-x:auto;">
<table style="width:100%; border-collapse:collapse; margin:0 auto; text-align:center; font-size:0.9em;">
<thead>
<tr>
<th style="border:1px solid #000; padding:2px;">剩余时间</th>
<th style="border:1px solid #000; padding:2px;">服务器</th>
<th style="border:1px solid #000; padding:2px;">价格</th>
</tr>
</thead>
<tbody>
{% for item in wblzs %}
<tr>
<td style="border:1px solid #000; padding:2px;">{{ item.replyTime }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.belongQf2 }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.priceNum }}元</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</body>
</html>
</div>
</div>
+29 -184
View File
@@ -1,220 +1,65 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ showName }} - 剑网3万宝楼</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--jx3-primary: #ffd700;
--jx3-secondary: #8b4513;
--jx3-dark: #1a1a1a;
--jx3-light: #f8f9fa;
}
<div style="max-width: 800px; margin: 0 auto; font-family: 'Microsoft YaHei', sans-serif; color: #000; text-align: center;">
body {
background-color: #f5f5f5;
font-family: 'Microsoft YaHei', sans-serif;
color: #333;
}
.container {
max-width: 1200px;
}
.product-img {
width: 100%;
max-width: 1000px;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.price-tag {
color: #e74c3c;
font-weight: bold;
font-size: 1.2em;
}
.server-badge {
background-color: #e9ecef;
padding: 4px 8px;
border-radius: 4px;
font-size: 0.9em;
}
.discount-badge {
padding: 4px 8px;
border-radius: 4px;
font-size: 0.9em;
background-color: #f8d7da;
color: #721c24;
}
.discount-positive {
background-color: #d4edda;
color: #155724;
}
.card {
border: none;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
margin-bottom: 20px;
}
.card-header {
background-color: var(--jx3-secondary);
color: white;
border-radius: 10px 10px 0 0 !important;
padding: 12px 20px;
}
.table th {
background-color: var(--jx3-light);
font-weight: 600;
}
.footer {
background-color: var(--jx3-dark);
color: white;
text-align: center;
padding: 15px 0;
margin-top: 30px;
}
.price-cell {
font-weight: bold;
color: #e74c3c;
}
/* 双列布局 */
.dual-columns {
display: flex;
gap: 20px;
}
.dual-columns > div {
flex: 1;
}
@media (max-width: 768px) {
.dual-columns {
flex-direction: column;
}
}
</style>
</head>
<body>
<div class="container mt-4">
<!-- 商品基本信息 -->
<div class="card mb-4">
<div class="card-header">
<h3 class="mb-0"><i class="fas fa-box-open"></i> 商品基本信息</h3>
</div>
<div class="card-body">
<div class="row">
<!-- 图片在上方 -->
<div class="col-12 text-center mb-3">
<img src="{{ imgs }}" alt="{{ showName }}" class="product-img">
</div>
<!-- 文字信息在下方 -->
<div class="col-12 text-center">
<h2 class="mb-2">{{ showName }}({{goodsAlias}})</h2>
<p class="mb-3">{{ goodsDesc }}</p>
<h1 style="margin-bottom: 5px;">{{ showName }} ({{ goodsAlias }})</h1>
<img src="{{ imgs }}" alt="{{ showName }}" style="width: 100%; max-width: 600px; margin-bottom: 8px;">
<p style="margin: 4px 0;">{{ goodsDesc }}</p>
<p style="margin: 4px 0;"><strong>发布时间:</strong> {{ publishTime.split('T')[0] if publishTime else '未知' }}</p>
<p style="margin: 4px 0;"><strong>参考价格:</strong> {{ priceNum }} 元</p>
<div class="row mb-3">
<div class="col-sm-6">
<strong>发布时间:</strong> {{ publishTime.split('T')[0] if publishTime else '未知' }}
</div>
<div class="col-sm-6">
<strong>参考价格:</strong> <span class="price-tag">{{ priceNum }} 元</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 双列表格 -->
<div style="display: flex; gap: 10px; margin-top: 15px; flex-wrap: wrap; justify-content: center;">
<!-- 双列数据布局 -->
<div class="dual-columns">
<!-- 万宝楼公示 -->
<div class="card mb-4">
<div class="card-header">
<h4 class="mb-0"><i class="fas fa-store"></i> 万宝楼公示 </h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover">
<div style="flex: 1; min-width: 300px; border:1px solid #000; overflow:hidden;">
<div style="padding:4px; font-weight:bold; text-align:center;">万宝楼公示</div>
<div style="overflow-x:auto;">
<table style="width:100%; border-collapse:collapse; margin:0 auto; text-align:center; font-size:0.9em;">
<thead>
<tr>
<th>剩余时间</th>
<th>服务器</th>
<th>价格</th>
<th>折扣率</th>
<th style="border:1px solid #000; padding:2px;">剩余时间</th>
<th style="border:1px solid #000; padding:2px;">服务器</th>
<th style="border:1px solid #000; padding:2px;">价格</th>
</tr>
</thead>
<tbody>
{% for item in wblgs %}
<tr>
<td>{{ item.replyTime }}</td>
<td><span class="server-badge">{{ item.belongQf2 }}</span></td>
<td class="price-cell">{{ item.priceNum }}元</td>
<td>
<span class="discount-badge {% if item.discountRate > 0 %}discount-positive{% endif %}">
{{ item.discountRate }}%
</span>
</td>
<td style="border:1px solid #000; padding:2px;">{{ item.replyTime }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.belongQf2 }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.priceNum }}元</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<!-- 万宝楼在售 -->
<div class="card mb-4">
<div class="card-header">
<h4 class="mb-0"><i class="fas fa-history"></i> 万宝楼在售 </h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover">
<div style="flex: 1; min-width: 300px; border:1px solid #000; overflow:hidden;">
<div style="padding:4px; font-weight:bold; text-align:center;">万宝楼在售</div>
<div style="overflow-x:auto;">
<table style="width:100%; border-collapse:collapse; margin:0 auto; text-align:center; font-size:0.9em;">
<thead>
<tr>
<th>剩余时间</th>
<th>服务器</th>
<th>价格</th>
<th>折扣率</th>
<th style="border:1px solid #000; padding:2px;">剩余时间</th>
<th style="border:1px solid #000; padding:2px;">服务器</th>
<th style="border:1px solid #000; padding:2px;">价格</th>
</tr>
</thead>
<tbody>
{% for item in wblzs %}
<tr>
<td>{{ item.replyTime }}</td>
<td><span class="server-badge">{{ item.belongQf2 }}</span></td>
<td class="price-cell">{{ item.priceNum }}元</td>
<td>
<span class="discount-badge {% if item.discountRate > 0 %}discount-positive{% endif %}">
{{ item.discountRate }}%
</span>
</td>
<td style="border:1px solid #000; padding:2px;">{{ item.replyTime }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.belongQf2 }}</td>
<td style="border:1px solid #000; padding:2px;">{{ item.priceNum }}元</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<p>剑网3万宝楼商品数据展示 &copy; 2025 | 数据仅供参考,实际价格以游戏内为准</p>
</div>
</div>
</body>
</html>