# System-Info 页面侧边栏问题完整解决方案

## 问题现象

- refresh-cache.uvue、online-upgrade.uvue、system-log.uvue 添加 AdminLayout 导入后工作正常
- system-info.uvue 添加相同的导入后仍然没有侧边栏
- 浏览器控制台显示 "Failed to resolve component: AdminLayout"

## 问题分析

### 1. 已确认正确的部分

- ✅ nav.uts 匹配逻辑正确（通过测试脚本验证）
- ✅ menu.uts 中 system-info 配置正确
- ✅ AdminLayout.uvue 逻辑正确
- ✅ tsconfig.json 中 @ 别名配置正确
- ✅ pages.json 中路由配置正确

### 2. 可能的原因

#### 原因 1: 浏览器缓存

H5 开发时，浏览器可能缓存了旧版本的 system-info.uvue

#### 原因 2: HBuilderX/vite 编译缓存

编译器可能缓存了有问题的版本

#### 原因 3: 文件编码或隐藏字符

system-info.uvue 可能有不可见的特殊字符导致解析失败

#### 原因 4: 热更新问题

开发服务器的热更新可能没有正确处理这个文件

## 完整解决步骤

### 步骤 1: 清理缓存

```powershell
# 在项目根目录执行
Remove-Item -Recurse -Force unpackage\dist -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force .hbuilderx\cache -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force node_modules\.vite -ErrorAction SilentlyContinue
```

### 步骤 2: 重新构建 system-info.uvue

完全删除并重新创建文件，确保没有隐藏字符

### 步骤 3: 验证文件内容

使用以下命令检查文件编码：

```powershell
Get-Content "d:\骅锋\mall\pages\mall\admin\maintain\system-info.uvue" -Encoding UTF8 | Measure-Object -Line
```

### 步骤 4: 重启开发服务器

1. 停止当前的 dev:h5 进程（Ctrl+C）
2. 清理浏览器缓存（Ctrl+Shift+Delete）
3. 重新启动: `npm run dev:h5`

### 步骤 5: 强制刷新浏览器

访问 system-info 页面时使用 Ctrl+Shift+R 强制刷新

## 备用方案

如果上述步骤无效，尝试以下方案：

### 方案 A: 使用相对路径导入

将 system-info.uvue 中的导入改为：

```typescript
import AdminLayout from "../../../layouts/admin/AdminLayout.uvue";
```

### 方案 B: 检查文件名大小写

确保文件名完全匹配（包括大小写）：

- 文件: system-info.uvue
- menu.uts: id: 'system-info'
- currentPage: "system-info"

### 方案 C: 使用其他工作文件作为模板

复制 refresh-cache.uvue 的内容，只修改必要的部分：

```powershell
Copy-Item "d:\骅锋\mall\pages\mall\admin\maintain\security\refresh-cache.uvue" "d:\骅锋\mall\pages\mall\admin\maintain\system-info-new.uvue"
# 然后手动修改 system-info-new.uvue 的内容
# 测试通过后重命名回 system-info.uvue
```

## 调试工具

### 浏览器控制台诊断脚本

在浏览器控制台运行 `d:\骅锋\mall\debug-system-info-browser.js` 的内容

### Node.js 测试脚本

```powershell
node "d:\骅锋\mall\test-system-info-nav.js"
```

## 预期结果

修复后，访问 system-info 页面应该：

1. 显示主侧边栏（"维护"菜单高亮）
2. 显示二级侧边栏（包含"系统信息"等子菜单）
3. 面包屑显示：维护 / 系统信息
4. 没有 "Failed to resolve component: AdminLayout" 错误

## 验证清单

- [ ] 浏览器控制台无错误
- [ ] Vue DevTools 中能看到 AdminLayout 组件
- [ ] 主侧边栏显示且 "维护" 高亮
- [ ] 二级侧边栏显示
- [ ] 面包屑正确显示
- [ ] 页面内容正常渲染

## 相关文件

- 页面文件: `pages/mall/admin/maintain/system-info.uvue`
- 布局组件: `layouts/admin/AdminLayout.uvue`
- 导航逻辑: `layouts/admin/utils/nav.uts`
- 菜单配置: `layouts/admin/utils/menu.uts`
- 路由配置: `pages.json` (line 604)
