Browse Source

更新二维码合集页面,添加展开/收起功能,并在标题部分显示主体名称、电话号码和开具日期

master
Default User 1 month ago
parent
commit
54f3386f71
  1. 33
      qr-collection.html
  2. 7
      server.js

33
qr-collection.html

@ -455,10 +455,23 @@
Object.keys(groupedQrCodes).forEach(inviterName => {
const inviterQrCodes = groupedQrCodes[inviterName];
// 生成唯一的section ID
const sectionId = `section_${encodeURIComponent(inviterName)}`;
html += `
<div class="qr-section">
<h3>${inviterName}</h3>
<div class="qr-grid">
<div class="section-header" onclick="toggleSection('${sectionId}')" style="cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 10px; background-color: #f8f9fa; border-radius: 8px; margin-bottom: 10px;">
<div>
<h3 style="margin: 0; font-size: 16px; color: #333;">${inviterName}</h3>
<div style="font-size: 12px; color: #666; margin-top: 4px;">
<p style="margin: 2px 0;">主体名称: ${inviterQrCodes[0].company || '未知'}</p>
<p style="margin: 2px 0;">电话号码: ${inviterQrCodes[0].phoneNumber || '未知'}</p>
<p style="margin: 2px 0;">开具日期: ${inviterQrCodes[0].createdAt || '未知'}</p>
</div>
</div>
<span class="toggle-icon" id="toggle_${sectionId}" style="font-size: 18px; color: #28a745;"></span>
</div>
<div id="${sectionId}" class="qr-grid" style="display: none; padding: 10px; background-color: #fafafa; border-radius: 8px;">
`;
inviterQrCodes.forEach(qrCode => {
@ -485,6 +498,22 @@
qrCollectionElement.innerHTML = html;
}
// 切换展开/收起状态
function toggleSection(sectionId) {
const section = document.getElementById(sectionId);
const toggleIcon = document.getElementById(`toggle_${sectionId}`);
if (section && toggleIcon) {
if (section.style.display === 'none') {
section.style.display = 'block';
toggleIcon.textContent = '▲';
} else {
section.style.display = 'none';
toggleIcon.textContent = '▼';
}
}
}
// 筛选二维码
function filterQrCodes(filter, inviterName) {

7
server.js

@ -227,11 +227,11 @@ const server = http.createServer(async (req, res) => {
let query, params;
if (isAdmin) {
// 管理员可以查看所有二维码
query = 'SELECT inviter, inviter_phone as inviterPhone, projectName as inviterProjectName, sessionId, qrCodeUrl, DATE_FORMAT(issueDate, "%Y-%m-%d %H:%i:%s") as createdAt FROM certificate WHERE qrCodeUrl IS NOT NULL GROUP BY sessionId ORDER BY issueDate DESC';
query = 'SELECT inviter, inviter_phone as inviterPhone, projectName as inviterProjectName, sessionId, qrCodeUrl, company, phoneNumber, DATE_FORMAT(issueDate, "%Y-%m-%d %H:%i:%s") as createdAt, issueDate FROM certificate WHERE qrCodeUrl IS NOT NULL GROUP BY sessionId ORDER BY issueDate DESC';
params = [];
} else if (userName) {
// 采购员只能查看自己的二维码
query = 'SELECT inviter, inviter_phone as inviterPhone, projectName as inviterProjectName, sessionId, qrCodeUrl, DATE_FORMAT(issueDate, "%Y-%m-%d %H:%i:%s") as createdAt FROM certificate WHERE inviter = ? AND qrCodeUrl IS NOT NULL GROUP BY sessionId ORDER BY issueDate DESC';
query = 'SELECT inviter, inviter_phone as inviterPhone, projectName as inviterProjectName, sessionId, qrCodeUrl, company, phoneNumber, DATE_FORMAT(issueDate, "%Y-%m-%d %H:%i:%s") as createdAt, issueDate FROM certificate WHERE inviter = ? AND qrCodeUrl IS NOT NULL GROUP BY sessionId ORDER BY issueDate DESC';
params = [userName];
} else {
// 未登录用户,返回空列表
@ -262,6 +262,9 @@ const server = http.createServer(async (req, res) => {
inviterProjectName: row.inviterProjectName,
sessionId: row.sessionId,
qrCodeUrl: row.qrCodeUrl,
company: row.company,
phoneNumber: row.phoneNumber,
issueDate: row.issueDate,
createdAt: row.createdAt,
url: url
};

Loading…
Cancel
Save