This commit is contained in:
jeremygan2021
2026-03-27 14:00:56 +08:00
parent 84b243dc52
commit da24458e5d
5 changed files with 31 additions and 1 deletions

Binary file not shown.

View File

@@ -75,6 +75,7 @@
"show_title": true, "show_title": true,
"learn_more_url": "", "learn_more_url": "",
"show_qrcode": true, "show_qrcode": true,
"show_seating": true,
"show_fields": { "show_fields": {
"name": false, "name": false,
"phone": false, "phone": false,

View File

@@ -1346,7 +1346,7 @@ def get_wall_data():
# 获取最新的签到数据(按时间倒序) # 获取最新的签到数据(按时间倒序)
query = """ query = """
SELECT gsdh_id, name, company_name, position, business_scope, vision_2026, social_point SELECT gsdh_id, name, company_name, position, business_scope, vision_2026, social_point, location
FROM checkin_info FROM checkin_info
ORDER BY created_at DESC ORDER BY created_at DESC
""" """

View File

@@ -779,6 +779,9 @@
<div class="checkbox-wrapper"> <div class="checkbox-wrapper">
<input type="checkbox" id="wall_show_qrcode"> <label for="wall_show_qrcode">显示扫码签到二维码</label> <input type="checkbox" id="wall_show_qrcode"> <label for="wall_show_qrcode">显示扫码签到二维码</label>
</div> </div>
<div class="checkbox-wrapper">
<input type="checkbox" id="wall_show_seating"> <label for="wall_show_seating">显示泡泡的分桌信息(如第几桌)</label>
</div>
<div class="form-group"> <div class="form-group">
<label>大屏显示字段(基于签到字段配置)</label> <label>大屏显示字段(基于签到字段配置)</label>
<p style="font-size: 0.85em; color: var(--text-muted); margin-bottom: 10px;">勾选要在签到大屏上显示的字段,字段名称与签到字段设置同步</p> <p style="font-size: 0.85em; color: var(--text-muted); margin-bottom: 10px;">勾选要在签到大屏上显示的字段,字段名称与签到字段设置同步</p>
@@ -1053,6 +1056,7 @@
document.getElementById('wall_show_title').checked = wc.show_title !== false; document.getElementById('wall_show_title').checked = wc.show_title !== false;
document.getElementById('wall_learn_more_url').value = wc.learn_more_url || ''; 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_qrcode').checked = wc.show_qrcode === true;
document.getElementById('wall_show_seating').checked = wc.show_seating === true;
}); });
function renderFieldConfig(tbodyId, fieldConfig, orderedKeys) { function renderFieldConfig(tbodyId, fieldConfig, orderedKeys) {
@@ -1601,6 +1605,7 @@
show_title: document.getElementById('wall_show_title').checked, show_title: document.getElementById('wall_show_title').checked,
learn_more_url: document.getElementById('wall_learn_more_url').value, learn_more_url: document.getElementById('wall_learn_more_url').value,
show_qrcode: document.getElementById('wall_show_qrcode').checked, show_qrcode: document.getElementById('wall_show_qrcode').checked,
show_seating: document.getElementById('wall_show_seating').checked,
show_fields: getWallDisplayFieldsFromUI() show_fields: getWallDisplayFieldsFromUI()
}, },

View File

@@ -152,6 +152,22 @@
border-radius: 10px; 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 */ /* Central Spotlight Card */
.spotlight-container { .spotlight-container {
position: absolute; position: absolute;
@@ -530,6 +546,14 @@
<div class="bubble-avatar" style="font-size: ${fontSize}">${bubbleContent}</div> <div class="bubble-avatar" style="font-size: ${fontSize}">${bubbleContent}</div>
`; `;
// 显示座位信息(如果启用且用户有座位号)
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 // Interaction: Click to show in spotlight
this.element.style.cursor = 'pointer'; this.element.style.cursor = 'pointer';
this.element.addEventListener('click', (e) => { this.element.addEventListener('click', (e) => {