diff --git a/admin.html b/admin.html index e51513f..e1591f4 100644 --- a/admin.html +++ b/admin.html @@ -2683,6 +2683,9 @@ let supplierTotalCount = 0; moduleAccessCounter.set(module, 0); }); } + + // 更新分页状态 + updatePaginationStatus(); } else { // 首次使用,初始化计数器 allModules.forEach(module => { @@ -4253,7 +4256,10 @@ let supplierTotalCount = 0; `; } - } else { + + // 更新分页状态 + updatePaginationStatus(); + } else { console.error('获取浏览详细数据失败:', data.message); content.innerHTML = `
@@ -4645,6 +4651,9 @@ let supplierTotalCount = 0; const permanentCachedData = cacheManager.getPermanent('suppliersData'); if (permanentCachedData) { console.log('使用永久缓存数据加载供应商列表'); + // 更新总记录数 + supplierTotalCount = permanentCachedData.totalCount || permanentCachedData.total || 0; + console.log('从永久缓存更新总记录数:', supplierTotalCount); // 立即显示永久缓存数据 updateSuppliersUI(permanentCachedData, searchTerm); // 后台加载最新数据 @@ -4656,6 +4665,9 @@ let supplierTotalCount = 0; const cachedData = cacheManager.get(cacheKey); if (cachedData) { console.log('使用普通缓存数据加载供应商列表'); + // 更新总记录数 + supplierTotalCount = cachedData.totalCount || cachedData.total || 0; + console.log('从普通缓存更新总记录数:', supplierTotalCount); // 立即显示缓存数据 updateSuppliersUI(cachedData, searchTerm); // 后台加载最新数据 @@ -4683,10 +4695,12 @@ let supplierTotalCount = 0; if (data.success) { const tbody = document.querySelector('#supplierTable tbody'); - const cardTitle = document.querySelector('.card-title'); + // 使用更精确的选择器,选择供应商列表卡片的标题 + const supplierCard = document.querySelector('#supplierTable').closest('.card'); + const cardTitle = supplierCard ? supplierCard.querySelector('.card-title') : null; // 更新总记录数 - supplierTotalCount = data.totalCount || 0; + supplierTotalCount = data.totalCount || data.total || 0; console.log('总记录数:', supplierTotalCount); // 在标题旁边显示数据总数 @@ -4810,8 +4824,8 @@ let supplierTotalCount = 0; const prevBtn = document.getElementById('supplierPrevPageBtn'); const nextBtn = document.getElementById('supplierNextPageBtn'); const currentPageEl = document.getElementById('currentPage'); - // 选择分页控件中的supplier-count元素 - const supplierCountEl = document.querySelector('.supplier-count'); + // 选择分页控件中的供应商数量元素,使用id选择器更精确 + const supplierCountEl = document.getElementById('paginationSupplierCount'); console.log('分页控件元素:', { prevBtn: !!prevBtn, @@ -4847,7 +4861,7 @@ let supplierTotalCount = 0; .then(data => { if (data.success) { // 更新总记录数 - supplierTotalCount = data.totalCount || 0; + supplierTotalCount = data.totalCount || data.total || 0; // 缓存数据 cacheManager.set(cacheKey, data); // 更新永久缓存 @@ -4867,10 +4881,12 @@ let supplierTotalCount = 0; function updateSuppliersUI(data, searchTerm = '') { if (data.success) { const tbody = document.querySelector('#supplierTable tbody'); - const cardTitle = document.querySelector('.card-title'); + // 使用更精确的选择器,选择供应商列表卡片的标题 + const supplierCard = document.querySelector('#supplierTable').closest('.card'); + const cardTitle = supplierCard ? supplierCard.querySelector('.card-title') : null; // 更新总记录数 - supplierTotalCount = data.totalCount || 0; + supplierTotalCount = data.totalCount || data.total || 0; // 在标题旁边显示数据总数 if (cardTitle) { @@ -4932,6 +4948,9 @@ let supplierTotalCount = 0; console.error('获取对接人列表失败:', error); }); } + + // 更新分页状态 + updatePaginationStatus(); } else { console.error('获取供应商数据失败:', data.message); } diff --git a/server.js b/server.js index f81416d..39ba20d 100644 --- a/server.js +++ b/server.js @@ -2610,7 +2610,10 @@ app.get('/api/supply-management/view-details/:productId', (req, res) => { // 获取供应商列表 app.get('/api/suppliers', (req, res) => { try { - const { search } = req.query; + const { search, page = 1, pageSize = 10 } = req.query; + const pageNum = parseInt(page, 10); + const pageSizeNum = parseInt(pageSize, 10); + const offset = (pageNum - 1) * pageSizeNum; let sql = `SELECT userId, phoneNumber, collaborationid, company, province, city, district, @@ -2619,22 +2622,39 @@ app.get('/api/suppliers', (req, res) => { FROM users WHERE collaborationid != '' `; + let countSql = `SELECT COUNT(*) as total FROM users WHERE collaborationid != '' `; + let params = []; + let countParams = []; if (search) { sql += `AND (phoneNumber LIKE ? OR liaison LIKE ? OR company LIKE ?) `; + countSql += `AND (phoneNumber LIKE ? OR liaison LIKE ? OR company LIKE ?) `; params = [`%${search}%`, `%${search}%`, `%${search}%`]; + countParams = [`%${search}%`, `%${search}%`, `%${search}%`]; } - sql += `ORDER BY COALESCE(newtime, created_at) DESC`; + sql += `ORDER BY COALESCE(newtime, created_at) DESC LIMIT ? OFFSET ?`; + params.push(pageSizeNum, offset); - wechatPool.query(sql, params, (err, results) => { - if (err) { - console.error('查询供应商列表失败:', err); + // 先查询总数 + wechatPool.query(countSql, countParams, (countErr, countResults) => { + if (countErr) { + console.error('查询供应商总数失败:', countErr); return res.json({ success: false, message: '获取供应商列表失败' }); } - res.json({ success: true, suppliers: results }); + const totalCount = countResults[0].total; + + // 再查询分页数据 + wechatPool.query(sql, params, (err, results) => { + if (err) { + console.error('查询供应商列表失败:', err); + return res.json({ success: false, message: '获取供应商列表失败' }); + } + + res.json({ success: true, suppliers: results, totalCount }); + }); }); } catch (error) { console.error('获取供应商列表失败:', error);