diff --git a/frontend/static/js/app.js b/frontend/static/js/app.js
index ec05316..58a73b5 100644
--- a/frontend/static/js/app.js
+++ b/frontend/static/js/app.js
@@ -18,48 +18,31 @@ document.addEventListener("DOMContentLoaded", function() {
const pagination = document.getElementById('pagination');
const refreshButton = document.querySelector('.refresh-records');
- // 初始化页面
- initializePage();
-
- /**
- * 初始化页面
- */
- function initializePage() {
- // 加载短信记录
- loadSMSRecords(currentPage);
-
- // 绑定事件监听器
- bindEventListeners();
-
- // 初始化工具提示
- initializeTooltips();
- }
-
- /**
- * 绑定事件监听器
- */
- function bindEventListeners() {
- // 验证码查询表单提交
- if (codeQueryForm) {
- codeQueryForm.addEventListener('submit', function(e) {
- e.preventDefault();
- queryVerificationCode();
- });
- }
-
- // 刷新按钮点击
- if (refreshButton) {
- refreshButton.addEventListener('click', function() {
- loadSMSRecords(currentPage);
- });
- }
-
- // 监听窗口大小变化,调整表格显示
- window.addEventListener('resize', function() {
- adjustTableColumns();
+ // 绑定事件监听器
+ if (codeQueryForm) {
+ codeQueryForm.addEventListener('submit', function(e) {
+ e.preventDefault();
+ queryVerificationCode();
});
}
+ if (refreshButton) {
+ refreshButton.addEventListener('click', function() {
+ loadSMSRecords(currentPage);
+ });
+ }
+
+ // 初始化工具提示
+ initializeTooltips();
+
+ // 加载短信记录
+ loadSMSRecords(currentPage);
+
+ // 监听窗口大小变化,调整表格显示
+ window.addEventListener('resize', function() {
+ adjustTableColumns();
+ });
+
/**
* 初始化工具提示
*/
@@ -76,9 +59,10 @@ document.addEventListener("DOMContentLoaded", function() {
/**
* 加载短信记录
* @param {number} page - 页码
+ * @param {number} limit - 每页记录数
*/
- function loadSMSRecords(page) {
- const offset = (page - 1) * PAGE_SIZE;
+ function loadSMSRecords(page = 1, limit = PAGE_SIZE) {
+ const offset = (page - 1) * limit;
// 显示加载指示器
if (loadingIndicator) {
@@ -99,42 +83,62 @@ document.addEventListener("DOMContentLoaded", function() {
}
// 获取短信记录
- fetch(`/v1/sms/history?limit=${PAGE_SIZE}&offset=${offset}`)
+ fetch(`/v1/sms/history?limit=${limit}&offset=${offset}`)
.then(response => {
if (!response.ok) {
throw new Error('网络响应异常');
}
return response.json();
})
- .then(data => {
- if (Array.isArray(data)) {
+ .then(records => {
+ // 隐藏加载指示器
+ if (loadingIndicator) {
+ loadingIndicator.classList.add('d-none');
+ }
+
+ if (records.length === 0) {
+ // 显示无记录提示
+ if (noRecords) {
+ noRecords.classList.remove('d-none');
+ }
+ if (pagination) {
+ pagination.innerHTML = '';
+ }
+ } else {
// 更新记录总数
- totalRecords = data.length === PAGE_SIZE ? -1 : offset + data.length;
+ totalRecords = records.length === limit ? -1 : offset + records.length;
// 渲染记录
- renderSMSRecords(data);
+ renderRecords(records);
- // 更新分页
- updatePagination(data.length === PAGE_SIZE);
+ // 生成分页
+ generatePagination(page, limit, records.length === limit);
// 调整表格列
adjustTableColumns();
-
- // 显示无记录提示
- if (data.length === 0 && noRecords) {
- noRecords.classList.remove('d-none');
- }
}
})
.catch(error => {
console.error('获取短信记录失败:', error);
showToast('error', '获取短信记录失败', error.message);
- })
- .finally(() => {
+
// 隐藏加载指示器
if (loadingIndicator) {
loadingIndicator.classList.add('d-none');
}
+
+ if (smsRecordsTable) {
+ const tableBody = smsRecordsTable.querySelector('tbody');
+ if (tableBody) {
+ tableBody.innerHTML = `
+
+
+ 加载失败: ${error.message}
+ |
+
+ `;
+ }
+ }
});
}
@@ -142,22 +146,25 @@ document.addEventListener("DOMContentLoaded", function() {
* 渲染短信记录到表格
* @param {Array} records - 短信记录数组
*/
- function renderSMSRecords(records) {
- if (!smsRecordsTable) return;
-
+ function renderRecords(records) {
const tableBody = smsRecordsTable.querySelector('tbody');
if (!tableBody) return;
tableBody.innerHTML = '';
- if (records.length === 0) {
- return;
- }
-
records.forEach(record => {
const row = document.createElement('tr');
row.classList.add('fade-in');
+ // 格式化日期时间
+ const date = new Date(record.receive_time);
+ const formattedDate = formatDateTime(date);
+
+ // 应用敏感信息掩码
+ const maskedSMS = maskSensitiveInfo(record.sms);
+ const maskedFrom = maskSensitiveInfo(record.from_ || record.from);
+ const maskedSimSlot = record.sim_slot ? maskSensitiveInfo(record.sim_slot) : '';
+
// 为验证码创建适当的徽章
const codeElement = record.extracted_code
? `${record.extracted_code}`
@@ -165,10 +172,10 @@ document.addEventListener("DOMContentLoaded", function() {
row.innerHTML = `
${record.id} |
- ${escapeHtml(record.from_ || record.from)} |
- ${escapeHtml(record.sms)} |
+ ${maskedFrom} |
+ ${maskedSMS} |
${codeElement} |
- ${formatDateTime(record.receive_time)} |
+ ${formattedDate} |
|