new
This commit is contained in:
Binary file not shown.
@@ -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,
|
||||||
|
|||||||
2
main.py
2
main.py
@@ -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
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user