11
This commit is contained in:
+13
-2
@@ -435,7 +435,18 @@ class JX3Function:
|
|||||||
item["LowestPrice"] = gold_to_string(item["LowestPrice"])
|
item["LowestPrice"] = gold_to_string(item["LowestPrice"])
|
||||||
item["AvgPrice"] = gold_to_string(item["AvgPrice"])
|
item["AvgPrice"] = gold_to_string(item["AvgPrice"])
|
||||||
item["IconID"] = f"https://icon.jx3box.com/icon/{item['IconID']}.png"
|
item["IconID"] = f"https://icon.jx3box.com/icon/{item['IconID']}.png"
|
||||||
|
# 准备模板渲染数据
|
||||||
return_data["data"]=resultjyh
|
return_data["data"] = {
|
||||||
|
"items": resultjyh,
|
||||||
|
"server": server,
|
||||||
|
"update_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
}
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("jiaoyihang.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
return return_data
|
||||||
return_data["code"] = 200
|
return_data["code"] = 200
|
||||||
return return_data
|
return return_data
|
||||||
|
|||||||
+16
-6
@@ -96,11 +96,21 @@ def gold_to_string(gold_amount):
|
|||||||
Returns:
|
Returns:
|
||||||
str: 格式化后的金钱字符串,例如 "1金2银3铜"
|
str: 格式化后的金钱字符串,例如 "1金2银3铜"
|
||||||
"""
|
"""
|
||||||
bricks = gold_amount // 100000000 if gold_amount else 0
|
if not gold_amount:
|
||||||
gold = (gold_amount % 100000000) // 10000 if gold_amount else 0
|
return "无价格"
|
||||||
silver = (gold_amount % 10000) // 100 if gold_amount else 0
|
|
||||||
copper = gold_amount % 100 if gold_amount else 0
|
|
||||||
|
|
||||||
gold_str = f"{bricks}砖{gold}金{silver}银{copper}铜" if gold_amount else "无价格"
|
parts = []
|
||||||
|
started = False # 标记是否已经遇到第一个非零位
|
||||||
|
|
||||||
return gold_str
|
bricks = gold_amount // 100000000
|
||||||
|
gold = (gold_amount % 100000000) // 10000
|
||||||
|
silver = (gold_amount % 10000) // 100
|
||||||
|
copper = gold_amount % 100
|
||||||
|
|
||||||
|
for value, unit in [(bricks, "砖"), (gold, "金"), (silver, "银"), (copper, "铜")]:
|
||||||
|
if value != 0:
|
||||||
|
started = True
|
||||||
|
if started:
|
||||||
|
parts.append(f"{value}{unit}")
|
||||||
|
|
||||||
|
return "".join(parts)
|
||||||
@@ -166,14 +166,14 @@ class Jx3ApiPlugin(Star):
|
|||||||
|
|
||||||
|
|
||||||
@jx3.command("交易行")
|
@jx3.command("交易行")
|
||||||
async def jx3_jiaoyihang(self, event: AstrMessageEvent,Name: str = "守缺式",server: str = "眉间雪"):
|
async def jx3_jiaoyihang(self, event: AstrMessageEvent,Name: str = "守缺式",server: str = "梦江南"):
|
||||||
"""剑三 外观名称"""
|
"""剑三 外观名称"""
|
||||||
try:
|
try:
|
||||||
data=await self.jx3fun.jiaoyihang(Name,server)
|
data=await self.jx3fun.jiaoyihang(Name,server)
|
||||||
if data["code"] == 200:
|
if data["code"] == 200:
|
||||||
#url = await self.html_render(data["temp"], data["data"], options={})
|
url = await self.html_render(data["temp"], data["data"], options={})
|
||||||
#yield event.image_result(url)
|
yield event.image_result(url)
|
||||||
yield event.plain_result(f"{data['data']}")
|
|
||||||
else:
|
else:
|
||||||
yield event.plain_result(data["msg"])
|
yield event.plain_result(data["msg"])
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -55,6 +55,13 @@
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #4a90e2;
|
color: #4a90e2;
|
||||||
}
|
}
|
||||||
|
.item-icon {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
margin-right: 8px;
|
||||||
|
vertical-align: middle;
|
||||||
|
border-radius: 4px; /* 图标圆角,看起来更舒服 */
|
||||||
|
}
|
||||||
.update-time {
|
.update-time {
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -62,6 +69,7 @@
|
|||||||
.table-container {
|
.table-container {
|
||||||
padding: 0 30px 30px 30px;
|
padding: 0 30px 30px 30px;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
table {
|
table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -77,7 +85,7 @@
|
|||||||
padding: 16px 20px;
|
padding: 16px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 16px;
|
font-size: 20px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
@@ -90,7 +98,7 @@
|
|||||||
td {
|
td {
|
||||||
padding: 14px 20px;
|
padding: 14px 20px;
|
||||||
border-bottom: 1px solid #e9ecef;
|
border-bottom: 1px solid #e9ecef;
|
||||||
font-size: 15px;
|
font-size: 18px;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
tr:nth-child(even) {
|
tr:nth-child(even) {
|
||||||
@@ -145,24 +153,29 @@
|
|||||||
|
|
||||||
<div class="summary">
|
<div class="summary">
|
||||||
<div class="items-count">共找到 <strong>{{ items|length }}</strong> 件物品</div>
|
<div class="items-count">共找到 <strong>{{ items|length }}</strong> 件物品</div>
|
||||||
<div class="update-time">数据更新时间: {{ update_time }}</div>
|
<div class="update-time">数据查询时间: {{ update_time }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-container">
|
<div class="table-container">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 55%;">物品名称</th>
|
<th style="width: 40%; text-align: center">物品名称</th>
|
||||||
<th style="width: 25%; text-align: right;">最低价</th>
|
<th style="width: 25%; text-align: center;">最低价</th>
|
||||||
<th style="width: 20%; text-align: center;">数量</th>
|
<th style="width: 15%; text-align: center;">总数量</th>
|
||||||
|
<th style="width: 20%; text-align: center;">数据更新时间</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="item-name">{{ item.name }}</td>
|
<td class="item-name">
|
||||||
<td class="price">{{ item.price }}</td>
|
<img src="{{ item.IconID }}" alt="icon" class="item-icon">
|
||||||
<td class="sample">{{ item.sample_size }}</td>
|
{{ item.Name }}
|
||||||
|
</td>
|
||||||
|
<td class="AvgPrice">{{ item.AvgPrice }}</td>
|
||||||
|
<td class="SampleSize">{{ item.SampleSize }}</td>
|
||||||
|
<td class="Date">{{ item.Date }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
padding: 16px 20px;
|
padding: 16px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 16px;
|
font-size: 20px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
td {
|
td {
|
||||||
padding: 14px 20px;
|
padding: 14px 20px;
|
||||||
border-bottom: 1px solid #e9ecef;
|
border-bottom: 1px solid #e9ecef;
|
||||||
font-size: 15px;
|
font-size: 18px;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
tr:nth-child(even) {
|
tr:nth-child(even) {
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
padding: 16px 20px;
|
padding: 16px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 16px;
|
font-size: 20px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
td {
|
td {
|
||||||
padding: 14px 20px;
|
padding: 14px 20px;
|
||||||
border-bottom: 1px solid #e9ecef;
|
border-bottom: 1px solid #e9ecef;
|
||||||
font-size: 15px;
|
font-size: 18px;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
tr:nth-child(even) {
|
tr:nth-child(even) {
|
||||||
|
|||||||
@@ -1,177 +0,0 @@
|
|||||||
<!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;
|
|
||||||
}
|
|
||||||
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: 16px;
|
|
||||||
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: 15px;
|
|
||||||
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 class="summary">
|
|
||||||
<div class="items-count">共找到 <strong>{{ items|length }}</strong> 件物品</div>
|
|
||||||
<div class="update-time">数据更新时间: {{ update_time }}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="table-container">
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="width: 55%;">物品名称</th>
|
|
||||||
<th style="width: 25%; text-align: right;">最低价</th>
|
|
||||||
<th style="width: 20%; text-align: center;">数量</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for item in items %}
|
|
||||||
<tr {% if loop.index <= 3 %}class="highlight"{% endif %}>
|
|
||||||
<td class="item-name">{{ item.name }}</td>
|
|
||||||
<td class="price">{{ item.price }}</td>
|
|
||||||
<td class="sample">{{ item.sample_size }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="footer">
|
|
||||||
© 2025 剑网3交易行查询系统 | 数据仅供参考,以游戏内实际价格为准
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,220 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>{{ data.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;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
font-family: 'Microsoft YaHei', sans-serif;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 1200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-img {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 850px;
|
|
||||||
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="{{ data.imgs }}" alt="{{ data.showName }}" class="product-img">
|
|
||||||
</div>
|
|
||||||
<!-- 文字信息在下方 -->
|
|
||||||
<div class="col-12 text-center">
|
|
||||||
<h2 class="mb-2">{{ data.showName }}({{data.goodsAlias}})</h2>
|
|
||||||
<p class="mb-3">{{ data.goodsDesc }}</p>
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<strong>发布时间:</strong> {{ data.publishTime.split('T')[0] if data.publishTime else '未知' }}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<strong>参考价格:</strong> <span class="price-tag">{{ data.priceNum }} 元</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 双列数据布局 -->
|
|
||||||
<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">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>上架时间</th>
|
|
||||||
<th>服务器</th>
|
|
||||||
<th>价格</th>
|
|
||||||
<th>折扣率</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for item in data.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>
|
|
||||||
</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">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>上架时间</th>
|
|
||||||
<th>服务器</th>
|
|
||||||
<th>价格</th>
|
|
||||||
<th>折扣率</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for item in data.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>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="footer">
|
|
||||||
<div class="container">
|
|
||||||
<p>剑网3万宝楼商品数据展示 © 2025 | 数据仅供参考,实际价格以游戏内为准</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Reference in New Issue
Block a user