fix: add null checks to UI functions in db_admin.html to prevent innerHTML errors

This commit is contained in:
Codex Agent 2025-12-25 19:58:33 +08:00
parent 70e46a730e
commit 2141db2db7
1 changed files with 14 additions and 3 deletions

View File

@ -2862,6 +2862,7 @@
// 加载区划列表 // 加载区划列表
async function loadRegions() { async function loadRegions() {
const navList = document.getElementById('navList'); const navList = document.getElementById('navList');
if (!navList) return;
navList.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载区划列表...</div>'; navList.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载区划列表...</div>';
try { try {
@ -2899,6 +2900,7 @@
return; return;
} }
const navList = document.getElementById('navList'); const navList = document.getElementById('navList');
if (!navList) return;
navList.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载事项列表...</div>'; navList.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载事项列表...</div>';
try { try {
@ -2981,11 +2983,17 @@
currentStep = step; currentStep = step;
// 更新导航标题 // 更新导航标题
document.getElementById('navTitle').querySelector('span').textContent = steps[step].title; const navTitle = document.getElementById('navTitle');
if (navTitle) {
const span = navTitle.querySelector('span');
if (span) span.textContent = steps[step].title;
}
// 更新上一步按钮 // 更新上一步按钮
const backButton = document.getElementById('backButton'); const backButton = document.getElementById('backButton');
backButton.disabled = historyStack.length === 0; if (backButton) {
backButton.disabled = historyStack.length === 0;
}
// 更新步骤指示器 // 更新步骤指示器
updateStepIndicator(step); updateStepIndicator(step);
@ -2995,7 +3003,7 @@
// 清空详情区域 // 清空详情区域
const detailsArea = document.getElementById('detailsArea'); const detailsArea = document.getElementById('detailsArea');
if (step === 1) { if (detailsArea && step === 1) {
detailsArea.innerHTML = ` detailsArea.innerHTML = `
<div class="empty-state"> <div class="empty-state">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@ -3019,6 +3027,7 @@
// 更新面包屑导航 // 更新面包屑导航
function updateBreadcrumb() { function updateBreadcrumb() {
const breadcrumb = document.getElementById('breadcrumb'); const breadcrumb = document.getElementById('breadcrumb');
if (!breadcrumb) return;
let html = ` let html = `
<span class="breadcrumb-item"> <span class="breadcrumb-item">
<a onclick="goHome()">首页</a> <a onclick="goHome()">首页</a>
@ -3093,6 +3102,7 @@
// 显示许可详情 // 显示许可详情
async function showPermitDetails() { async function showPermitDetails() {
const detailsArea = document.getElementById('detailsArea'); const detailsArea = document.getElementById('detailsArea');
if (!detailsArea) return;
detailsArea.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载许可详情...</div>'; detailsArea.innerHTML = '<div class="loading"><span class="loading-icon"></span>加载许可详情...</div>';
try { try {
@ -3133,6 +3143,7 @@
// 渲染许可详情 // 渲染许可详情
function renderPermitDetails(permit) { function renderPermitDetails(permit) {
const detailsArea = document.querySelector('.details-area'); const detailsArea = document.querySelector('.details-area');
if (!detailsArea) return;
currentPermitDetails = permit; currentPermitDetails = permit;
const riskCount = Array.isArray(permit.risks) ? permit.risks.length : 0; const riskCount = Array.isArray(permit.risks) ? permit.risks.length : 0;
const permitTheme = permit && permit.theme ? permit.theme : {}; const permitTheme = permit && permit.theme ? permit.theme : {};