From da24458e5d7a67ea94a889acf5634e644a5cce66 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Fri, 27 Mar 2026 14:00:56 +0800 Subject: [PATCH] new --- __pycache__/main.cpython-312.pyc | Bin 97876 -> 101158 bytes config.json | 1 + main.py | 2 +- templates/admin.html | 5 +++++ templates/wall.html | 24 ++++++++++++++++++++++++ 5 files changed, 31 insertions(+), 1 deletion(-) diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc index 2c29b3f6f5ec14d789afff290f662c2c93ea26cb..2c8740b35eea50c5faf945cbf83675d4259d791a 100644 GIT binary patch delta 6861 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 MG+pAYet7GD0nj}`Qvd(} delta 5691 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 +
+ +

勾选要在签到大屏上显示的字段,字段名称与签到字段设置同步

@@ -1053,6 +1056,7 @@ document.getElementById('wall_show_title').checked = wc.show_title !== false; document.getElementById('wall_learn_more_url').value = wc.learn_more_url || ''; document.getElementById('wall_show_qrcode').checked = wc.show_qrcode === true; + document.getElementById('wall_show_seating').checked = wc.show_seating === true; }); function renderFieldConfig(tbodyId, fieldConfig, orderedKeys) { @@ -1601,6 +1605,7 @@ show_title: document.getElementById('wall_show_title').checked, learn_more_url: document.getElementById('wall_learn_more_url').value, show_qrcode: document.getElementById('wall_show_qrcode').checked, + show_seating: document.getElementById('wall_show_seating').checked, show_fields: getWallDisplayFieldsFromUI() }, diff --git a/templates/wall.html b/templates/wall.html index c9f97e9..003d30a 100644 --- a/templates/wall.html +++ b/templates/wall.html @@ -152,6 +152,22 @@ border-radius: 10px; } + /* 座位标签样式 */ + .bubble-seat { + position: absolute; + top: -8px; + right: -8px; + background: linear-gradient(135deg, #ff6b6b, #ff4757); + color: white; + font-size: 0.65rem; + font-weight: bold; + padding: 2px 6px; + border-radius: 10px; + box-shadow: 0 2px 8px rgba(255, 71, 87, 0.4); + white-space: nowrap; + border: 2px solid rgba(255, 255, 255, 0.8); + } + /* Central Spotlight Card */ .spotlight-container { position: absolute; @@ -530,6 +546,14 @@
${bubbleContent}
`; + // 显示座位信息(如果启用且用户有座位号) + if (WALL_CONFIG.show_seating === true && user.location) { + const seatElement = document.createElement('div'); + seatElement.className = 'bubble-seat'; + seatElement.textContent = user.location; + this.element.appendChild(seatElement); + } + // Interaction: Click to show in spotlight this.element.style.cursor = 'pointer'; this.element.addEventListener('click', (e) => {