@ -286,13 +286,19 @@
const qrCollectionElement = document.getElementById('qrCollection');
const qrCollectionElement = document.getElementById('qrCollection');
try {
try {
// 构建请求URL,包含用户信息
let apiUrl = '/getQrCollection';
if (user) {
apiUrl += `?userName=${encodeURIComponent(user.name || user.userName)}& projectName=${encodeURIComponent(user.projectName || '')}`;
}
// 从服务器获取二维码合集
// 从服务器获取二维码合集
const response = await fetch('/getQrCollection');
const response = await fetch(apiUrl );
const data = await response.json();
const data = await response.json();
if (data.success & & data.qrCodes & & data.qrCodes.length > 0) {
if (data.success & & data.qrCodes & & data.qrCodes.length > 0) {
// 渲染二维码合集
// 渲染二维码合集
renderQrCollection(data.qrCodes, user);
renderQrCollection(data.qrCodes, user, data.isAdmin );
} else {
} else {
// 显示空状态
// 显示空状态
qrCollectionElement.innerHTML = `
qrCollectionElement.innerHTML = `
@ -316,7 +322,7 @@
}
}
// 渲染二维码合集
// 渲染二维码合集
function renderQrCollection(qrCodes, currentUser) {
function renderQrCollection(qrCodes, currentUser, isAdmin ) {
const qrCollectionElement = document.getElementById('qrCollection');
const qrCollectionElement = document.getElementById('qrCollection');
// 按邀请者分组
// 按邀请者分组
@ -378,8 +384,14 @@
}
}
});
});
// 构建请求URL,包含用户信息
let apiUrl = '/getQrCollection';
if (user) {
apiUrl += `?userName=${encodeURIComponent(user.name || user.userName)}& projectName=${encodeURIComponent(user.projectName || '')}`;
}
// 重新加载并筛选二维码
// 重新加载并筛选二维码
fetch('/getQrCollection')
fetch(apiUrl )
.then(response => response.json())
.then(response => response.json())
.then(data => {
.then(data => {
if (data.success & & data.qrCodes & & data.qrCodes.length > 0) {
if (data.success & & data.qrCodes & & data.qrCodes.length > 0) {
@ -389,14 +401,15 @@
filteredQrCodes = data.qrCodes.filter(qrCode =>
filteredQrCodes = data.qrCodes.filter(qrCode =>
qrCode.inviter === (user.name || user.userName)
qrCode.inviter === (user.name || user.userName)
);
);
} else if (filter === 'others' & & user) {
} else if (filter === 'others' & & user & & data.isAdmin) {
// 只有管理员可以查看他人二维码
filteredQrCodes = data.qrCodes.filter(qrCode =>
filteredQrCodes = data.qrCodes.filter(qrCode =>
qrCode.inviter !== (user.name || user.userName)
qrCode.inviter !== (user.name || user.userName)
);
);
}
}
if (filteredQrCodes.length > 0) {
if (filteredQrCodes.length > 0) {
renderQrCollection(filteredQrCodes, user);
renderQrCollection(filteredQrCodes, user, data.isAdmin );
} else {
} else {
qrCollectionElement.innerHTML = `
qrCollectionElement.innerHTML = `
< div class = "empty-state" >
< div class = "empty-state" >
@ -414,12 +427,37 @@
// 页面加载时加载二维码合集
// 页面加载时加载二维码合集
window.onload = function() {
window.onload = function() {
const user = loadUserInfo();
// 根据用户角色调整筛选按钮
if (user) {
// 判断用户角色
const isAdmin = user.projectName & & (user.projectName.includes('管理员') || user.projectName.includes('Admin'));
if (!isAdmin) {
// 非管理员用户,只保留"我的二维码"按钮
document.querySelectorAll('.filter-btn').forEach(btn => {
if (btn.dataset.filter !== 'me') {
btn.disabled = true;
btn.style.opacity = '0.5';
btn.style.cursor = 'not-allowed';
}
});
// 默认选中"我的二维码"
document.querySelector('.filter-btn[data-filter="me"]').classList.add('active');
document.querySelector('.filter-btn[data-filter="all"]').classList.remove('active');
}
}
loadQrCollection();
loadQrCollection();
// 绑定筛选按钮事件
// 绑定筛选按钮事件
document.querySelectorAll('.filter-btn').forEach(btn => {
document.querySelectorAll('.filter-btn').forEach(btn => {
btn.addEventListener('click', function() {
btn.addEventListener('click', function() {
filterQrCodes(this.dataset.filter);
if (!this.disabled) {
filterQrCodes(this.dataset.filter);
}
});
});
});
});
};
};