2026-06-30 14:46:52 +08:00
|
|
|
|
# 分享码日志页面
|
|
|
|
|
|
|
|
|
|
|
|
<cite>
|
|
|
|
|
|
**本文档引用的文件**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
|
|
|
|
|
- [shareCodeLog.ts](file://frontend/src/service/api/share-code-log.ts)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [ShareCodeLog.js](file://backend/src/models/ShareCodeLog.js)
|
|
|
|
|
|
- [shareCodeLogs.js](file://backend/src/routes/shareCodeLogs.js)
|
|
|
|
|
|
- [response.js](file://backend/src/utils/response.js)
|
|
|
|
|
|
- [auth.js](file://backend/src/middleware/auth.js)
|
|
|
|
|
|
</cite>
|
|
|
|
|
|
|
2026-07-15 09:58:56 +08:00
|
|
|
|
## 更新摘要
|
|
|
|
|
|
**变更内容**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- 分享码日志页面从 log.vue 迁移到 src/views/share-code/log/index.vue,采用新的目录结构
|
|
|
|
|
|
- 重构了前端组件架构,使用 TypeScript 替代 JavaScript
|
|
|
|
|
|
- 改进了用户界面和数据展示能力,提供更现代化的交互体验
|
|
|
|
|
|
- 优化了 API 调用方式和错误处理机制
|
2026-07-15 09:58:56 +08:00
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
## 目录
|
|
|
|
|
|
1. [简介](#简介)
|
|
|
|
|
|
2. [项目结构](#项目结构)
|
|
|
|
|
|
3. [核心组件](#核心组件)
|
|
|
|
|
|
4. [架构概览](#架构概览)
|
|
|
|
|
|
5. [详细组件分析](#详细组件分析)
|
|
|
|
|
|
6. [依赖关系分析](#依赖关系分析)
|
|
|
|
|
|
7. [性能考虑](#性能考虑)
|
|
|
|
|
|
8. [故障排除指南](#故障排除指南)
|
|
|
|
|
|
9. [结论](#结论)
|
|
|
|
|
|
|
|
|
|
|
|
## 简介
|
|
|
|
|
|
|
|
|
|
|
|
分享码日志页面是音频仪表板系统中的一个重要功能模块,用于记录和分析分享码的使用情况。该页面提供了完整的分享码使用记录查询、筛选和分析功能,包括日志列表展示、时间筛选、用户搜索和统计分析。
|
|
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
该系统采用前后端分离架构,前端使用 Vue.js 框架构建用户界面,后端基于 Express.js 提供 RESTful API 服务。通过详细的日志记录,管理员可以追踪每个分享码的完整生命周期,从生成到使用的全过程监控。
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
**最新更新** 页面已迁移到新的目录结构 `src/views/share-code/log/index.vue`,并采用了改进的用户界面和数据展示能力,提供更好的用户体验和功能特性。
|
2026-07-15 09:58:56 +08:00
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
分享码日志功能涉及前端视图组件和后端API服务两个主要部分:
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
graph TB
|
|
|
|
|
|
subgraph "前端层"
|
2026-07-17 17:17:22 +08:00
|
|
|
|
FE_View[分享码日志视图<br/>index.vue]
|
|
|
|
|
|
FE_API[API封装<br/>shareCodeLog.ts]
|
2026-06-30 14:46:52 +08:00
|
|
|
|
end
|
|
|
|
|
|
subgraph "后端层"
|
|
|
|
|
|
BE_Routes[路由处理<br/>shareCodeLogs.js]
|
|
|
|
|
|
BE_Model[数据模型<br/>ShareCodeLog.js]
|
|
|
|
|
|
BE_Utils[响应工具<br/>response.js]
|
|
|
|
|
|
BE_Auth[认证中间件<br/>auth.js]
|
|
|
|
|
|
end
|
|
|
|
|
|
subgraph "数据库层"
|
|
|
|
|
|
DB_Table[分享码日志表<br/>share_code_log]
|
|
|
|
|
|
end
|
|
|
|
|
|
FE_View --> FE_API
|
|
|
|
|
|
FE_API --> BE_Routes
|
|
|
|
|
|
BE_Routes --> BE_Model
|
|
|
|
|
|
BE_Model --> DB_Table
|
|
|
|
|
|
BE_Routes --> BE_Utils
|
|
|
|
|
|
BE_Routes --> BE_Auth
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**图表来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
|
|
|
|
|
- [shareCodeLog.ts:1-50](file://frontend/src/service/api/share-code-log.ts#L1-L50)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:1-88](file://backend/src/routes/shareCodeLogs.js#L1-L88)
|
|
|
|
|
|
- [ShareCodeLog.js:1-60](file://backend/src/models/ShareCodeLog.js#L1-L60)
|
|
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
|
|
|
|
|
- [shareCodeLog.ts:1-50](file://frontend/src/service/api/share-code-log.ts#L1-L50)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:1-88](file://backend/src/routes/shareCodeLogs.js#L1-L88)
|
|
|
|
|
|
- [ShareCodeLog.js:1-60](file://backend/src/models/ShareCodeLog.js#L1-L60)
|
|
|
|
|
|
|
|
|
|
|
|
## 核心组件
|
|
|
|
|
|
|
|
|
|
|
|
### 前端视图组件
|
|
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
分享码日志页面采用现代化 Vue.js 组件架构,包含以下核心功能:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **增强搜索表单**:支持 MAC 地址、分享码、操作类型、IP 地址和时间范围的多维度过滤
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **高级筛选功能**:提供条件组合查询和智能搜索建议
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- **数据表格**:展示分享码日志的完整信息,包括设备信息、操作详情和时间戳
|
|
|
|
|
|
- **分页控制**:支持自定义每页条数和页码导航
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **对话框展示**:提供 EQ 数据快照的可视化查看功能
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **实时状态监控**:显示当前操作状态和数据加载进度
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 后端API服务
|
|
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
后端提供 RESTful API 接口,实现完整的数据查询和过滤功能:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
- **认证授权**:所有接口均需登录验证
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **高级数据查询**:支持多字段组合查询、模糊匹配和排序
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- **分页处理**:限制最大查询数量,确保系统性能
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **响应格式**:统一的 API 响应格式,便于前端处理
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **审计日志**:记录所有访问和操作行为
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 系统现在支持更强大的搜索和筛选功能,包括条件组合查询、智能提示和批量操作。
|
2026-07-15 09:58:56 +08:00
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:14-84](file://backend/src/routes/shareCodeLogs.js#L14-L84)
|
|
|
|
|
|
|
|
|
|
|
|
## 架构概览
|
|
|
|
|
|
|
|
|
|
|
|
分享码日志系统的整体架构采用经典的三层架构设计:
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
sequenceDiagram
|
|
|
|
|
|
participant User as 用户
|
|
|
|
|
|
participant Frontend as 前端应用
|
|
|
|
|
|
participant API as API网关
|
|
|
|
|
|
participant Auth as 认证中间件
|
|
|
|
|
|
participant Route as 路由处理器
|
|
|
|
|
|
participant Model as 数据模型
|
|
|
|
|
|
participant DB as 数据库
|
|
|
|
|
|
User->>Frontend : 访问分享码日志页面
|
|
|
|
|
|
Frontend->>API : GET /api/share-code/logs
|
|
|
|
|
|
API->>Auth : 验证JWT令牌
|
|
|
|
|
|
Auth-->>API : 验证通过
|
|
|
|
|
|
API->>Route : 转发请求
|
|
|
|
|
|
Route->>Model : 查询数据
|
|
|
|
|
|
Model->>DB : 执行SQL查询
|
|
|
|
|
|
DB-->>Model : 返回查询结果
|
|
|
|
|
|
Model-->>Route : 处理后的数据
|
|
|
|
|
|
Route-->>API : 统一响应格式
|
|
|
|
|
|
API-->>Frontend : 返回JSON数据
|
|
|
|
|
|
Frontend->>Frontend : 渲染表格和分页
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**图表来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:14-84](file://backend/src/routes/shareCodeLogs.js#L14-L84)
|
|
|
|
|
|
- [auth.js:3-26](file://backend/src/middleware/auth.js#L3-L26)
|
|
|
|
|
|
|
|
|
|
|
|
### 数据流分析
|
|
|
|
|
|
|
|
|
|
|
|
系统遵循标准的数据流向模式:
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
1. **前端请求**:用户通过增强的搜索表单输入查询条件
|
2026-07-17 17:17:22 +08:00
|
|
|
|
2. **参数构建**:前端将查询条件转换为 API 参数,支持复杂条件组合
|
2026-07-17 09:35:32 +08:00
|
|
|
|
3. **后端处理**:后端解析参数,构建动态查询条件
|
2026-07-17 17:17:22 +08:00
|
|
|
|
4. **数据库查询**:执行优化的 SQL 查询,返回结果集
|
2026-06-30 14:46:52 +08:00
|
|
|
|
5. **数据转换**:将数据库结果转换为统一格式
|
2026-07-17 09:35:32 +08:00
|
|
|
|
6. **响应返回**:前端接收并渲染数据,支持实时更新
|
|
|
|
|
|
|
|
|
|
|
|
**更新** 数据流现在支持更复杂的查询条件和实时数据同步机制。
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:31-60](file://backend/src/routes/shareCodeLogs.js#L31-L60)
|
|
|
|
|
|
|
|
|
|
|
|
## 详细组件分析
|
|
|
|
|
|
|
|
|
|
|
|
### 前端组件分析
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 增强搜索表单组件
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
前端搜索表单提供了丰富的筛选选项,并采用了现代化的用户界面设计:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
classDiagram
|
2026-07-17 09:35:32 +08:00
|
|
|
|
class EnhancedSearchForm {
|
2026-06-30 14:46:52 +08:00
|
|
|
|
+string mac_addr
|
|
|
|
|
|
+string share_code
|
|
|
|
|
|
+string action
|
|
|
|
|
|
+string ip_addr
|
|
|
|
|
|
+Array timeRange
|
|
|
|
|
|
+buildQueryParams() Object
|
|
|
|
|
|
+handleSearch() void
|
|
|
|
|
|
+handleReset() void
|
2026-07-17 09:35:32 +08:00
|
|
|
|
+handleAdvancedFilter() void
|
2026-06-30 14:46:52 +08:00
|
|
|
|
}
|
2026-07-17 09:35:32 +08:00
|
|
|
|
class SmartFilters {
|
|
|
|
|
|
+autoCompleteSupport
|
|
|
|
|
|
+conditionCombination
|
|
|
|
|
|
+searchHistory
|
|
|
|
|
|
+exportCapabilities
|
2026-07-15 09:58:56 +08:00
|
|
|
|
}
|
2026-06-30 14:46:52 +08:00
|
|
|
|
class Pagination {
|
|
|
|
|
|
+number page
|
|
|
|
|
|
+number pageSize
|
|
|
|
|
|
+number total
|
|
|
|
|
|
+handleSizeChange() void
|
|
|
|
|
|
+handlePageChange() void
|
2026-07-17 09:35:32 +08:00
|
|
|
|
+virtualScrolling
|
2026-06-30 14:46:52 +08:00
|
|
|
|
}
|
|
|
|
|
|
class TableData {
|
|
|
|
|
|
+Array items
|
|
|
|
|
|
+formatDateTime(value) string
|
|
|
|
|
|
+handleViewEq(row) void
|
2026-07-17 09:35:32 +08:00
|
|
|
|
+batchOperations
|
|
|
|
|
|
+realTimeUpdates
|
2026-06-30 14:46:52 +08:00
|
|
|
|
}
|
2026-07-17 09:35:32 +08:00
|
|
|
|
EnhancedSearchForm --> SmartFilters : "集成"
|
|
|
|
|
|
EnhancedSearchForm --> Pagination : "管理"
|
|
|
|
|
|
EnhancedSearchForm --> TableData : "控制"
|
2026-06-30 14:46:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 搜索表单现在支持智能筛选、条件组合和历史记录功能,大幅提升了查询效率。
|
2026-07-15 09:58:56 +08:00
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
#### 数据表格组件
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
表格组件展示了分享码日志的完整信息,支持多种交互操作:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
| 字段名 | 显示名称 | 数据类型 | 描述 |
|
|
|
|
|
|
|--------|----------|----------|------|
|
|
|
|
|
|
| id | ID | 整数 | 日志记录唯一标识符 |
|
|
|
|
|
|
| mac_addr | MAC地址 | 字符串 | 设备MAC地址 |
|
|
|
|
|
|
| share_code | 分享码 | 字符串 | 5位分享码 |
|
|
|
|
|
|
| action | 动作类型 | 枚举 | 导出/导入 |
|
|
|
|
|
|
| ip_addr | IP地址 | 字符串 | 用户IP地址 |
|
|
|
|
|
|
| expire_at | 到期时间 | 日期时间 | 分享码到期时间 |
|
|
|
|
|
|
| create_at | 操作时间 | 日期时间 | 操作发生时间 |
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 表格组件现在支持批量操作、列排序、行选择和实时数据更新功能。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 后端API分析
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 增强的路由处理逻辑
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
后端路由实现了完整的查询功能和审计追踪:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart TD
|
|
|
|
|
|
Start([请求到达]) --> ParseParams["解析查询参数"]
|
|
|
|
|
|
ParseParams --> ValidateParams{"参数验证"}
|
|
|
|
|
|
ValidateParams --> |有效| BuildWhere["构建WHERE条件"]
|
|
|
|
|
|
ValidateParams --> |无效| ReturnError["返回错误响应"]
|
|
|
|
|
|
BuildWhere --> SetLimit["设置分页限制"]
|
|
|
|
|
|
SetLimit --> ExecuteQuery["执行数据库查询"]
|
|
|
|
|
|
ExecuteQuery --> CheckResult{"是否有结果"}
|
|
|
|
|
|
CheckResult --> |有| TransformData["转换数据格式"]
|
|
|
|
|
|
CheckResult --> |无| ReturnEmpty["返回空数据响应"]
|
2026-07-17 09:35:32 +08:00
|
|
|
|
TransformData --> AuditLog["记录审计日志"]
|
|
|
|
|
|
AuditLog --> ReturnSuccess["返回成功响应"]
|
2026-06-30 14:46:52 +08:00
|
|
|
|
ReturnError --> End([结束])
|
|
|
|
|
|
ReturnEmpty --> End
|
|
|
|
|
|
ReturnSuccess --> End
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 路由处理现在集成了完整的审计日志记录和高级查询优化功能。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
|
|
|
|
|
- [shareCodeLogs.js:15-84](file://backend/src/routes/shareCodeLogs.js#L15-L84)
|
|
|
|
|
|
|
|
|
|
|
|
#### 数据模型设计
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
后端数据模型定义了分享码日志的结构,支持完整的审计追踪:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
erDiagram
|
|
|
|
|
|
SHARE_CODE_LOG {
|
|
|
|
|
|
INTEGER id PK
|
|
|
|
|
|
STRING mac_addr
|
|
|
|
|
|
CHAR(5) share_code
|
|
|
|
|
|
ENUM action
|
|
|
|
|
|
STRING ip_addr
|
|
|
|
|
|
JSON eq_data
|
|
|
|
|
|
DATETIME expire_at
|
|
|
|
|
|
DATETIME create_at
|
|
|
|
|
|
}
|
|
|
|
|
|
INDEX idx_mac_addr ON share_code_log(mac_addr)
|
|
|
|
|
|
INDEX idx_share_code ON share_code_log(share_code)
|
|
|
|
|
|
INDEX idx_create_at ON share_code_log(create_at)
|
2026-07-17 09:35:32 +08:00
|
|
|
|
INDEX idx_action ON share_code_log(action)
|
|
|
|
|
|
INDEX idx_ip_addr ON share_code_log(ip_addr)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 数据模型增加了更多索引以优化查询性能,支持更复杂的搜索需求。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
|
|
|
|
|
- [ShareCodeLog.js:4-56](file://backend/src/models/ShareCodeLog.js#L4-L56)
|
|
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
|
|
|
|
|
- [shareCodeLogs.js:15-84](file://backend/src/routes/shareCodeLogs.js#L15-L84)
|
|
|
|
|
|
- [ShareCodeLog.js:4-56](file://backend/src/models/ShareCodeLog.js#L4-L56)
|
|
|
|
|
|
|
|
|
|
|
|
### API接口规范
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 增强的请求参数规范
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
|
|
|
|
|
|
|--------|------|------|--------|------|
|
|
|
|
|
|
| skip | number | 否 | 0 | 跳过记录数 |
|
|
|
|
|
|
| limit | number | 否 | 100 | 每页记录数(最大1000) |
|
|
|
|
|
|
| mac_addr | string | 否 | - | MAC地址模糊匹配 |
|
|
|
|
|
|
| share_code | string | 否 | - | 分享码模糊匹配 |
|
|
|
|
|
|
| action | enum | 否 | - | 操作类型:export/import |
|
|
|
|
|
|
| ip_addr | string | 否 | - | IP地址模糊匹配 |
|
|
|
|
|
|
| start_at | string | 否 | - | 开始时间(ISO格式) |
|
|
|
|
|
|
| end_at | string | 否 | - | 结束时间(ISO格式) |
|
|
|
|
|
|
| sort_by | enum | 否 | id | 排序字段:id/create_at |
|
|
|
|
|
|
| sort_order | enum | 否 | desc | 排序方向:asc/desc |
|
2026-07-17 09:35:32 +08:00
|
|
|
|
| advanced_filter | object | 否 | - | 高级筛选条件对象 |
|
|
|
|
|
|
| export_format | string | 否 | json | 导出格式:json/csv/excel |
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
#### 响应数据结构
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
classDiagram
|
|
|
|
|
|
class ApiResponse {
|
|
|
|
|
|
+number code
|
|
|
|
|
|
+string msg
|
|
|
|
|
|
+Object data
|
|
|
|
|
|
+success(data, msg) ApiResponse
|
|
|
|
|
|
+error(msg, code) ApiResponse
|
|
|
|
|
|
+noData(msg) ApiResponse
|
|
|
|
|
|
}
|
|
|
|
|
|
class PageData {
|
|
|
|
|
|
+Array items
|
|
|
|
|
|
+number total
|
|
|
|
|
|
+number skip
|
|
|
|
|
|
+number limit
|
2026-07-17 09:35:32 +08:00
|
|
|
|
+Array filters
|
|
|
|
|
|
+Object auditInfo
|
2026-06-30 14:46:52 +08:00
|
|
|
|
}
|
|
|
|
|
|
ApiResponse --> PageData : "包含"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 响应数据结构现在包含审计信息和高级筛选结果。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
|
|
|
|
|
- [response.js:1-25](file://backend/src/utils/response.js#L1-L25)
|
|
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [shareCodeLog.ts:1-50](file://frontend/src/service/api/share-code-log.ts#L1-L50)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [response.js:1-25](file://backend/src/utils/response.js#L1-L25)
|
|
|
|
|
|
|
|
|
|
|
|
## 依赖关系分析
|
|
|
|
|
|
|
|
|
|
|
|
### 组件依赖图
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
graph TD
|
|
|
|
|
|
subgraph "前端依赖"
|
2026-07-17 17:17:22 +08:00
|
|
|
|
log_vue[index.vue]
|
|
|
|
|
|
share_api[shareCodeLog.ts]
|
2026-07-17 09:35:32 +08:00
|
|
|
|
enhanced_ui[增强UI组件]
|
|
|
|
|
|
realtime_module[实时更新模块]
|
2026-06-30 14:46:52 +08:00
|
|
|
|
end
|
|
|
|
|
|
subgraph "后端依赖"
|
|
|
|
|
|
route_handler[shareCodeLogs.js]
|
|
|
|
|
|
data_model[ShareCodeLog.js]
|
|
|
|
|
|
auth_middleware[auth.js]
|
|
|
|
|
|
response_utils[response.js]
|
2026-07-17 09:35:32 +08:00
|
|
|
|
audit_logger[审计日志器]
|
2026-06-30 14:46:52 +08:00
|
|
|
|
app_entry[app.js]
|
|
|
|
|
|
end
|
|
|
|
|
|
log_vue --> share_api
|
2026-07-17 09:35:32 +08:00
|
|
|
|
log_vue --> enhanced_ui
|
|
|
|
|
|
log_vue --> realtime_module
|
2026-06-30 14:46:52 +08:00
|
|
|
|
share_api --> route_handler
|
|
|
|
|
|
route_handler --> data_model
|
|
|
|
|
|
route_handler --> auth_middleware
|
|
|
|
|
|
route_handler --> response_utils
|
2026-07-17 09:35:32 +08:00
|
|
|
|
route_handler --> audit_logger
|
2026-06-30 14:46:52 +08:00
|
|
|
|
app_entry --> route_handler
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 新增了增强UI组件和实时更新模块,以及后端的审计日志器。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
|
|
|
|
|
- [shareCodeLog.ts:1-50](file://frontend/src/service/api/share-code-log.ts#L1-L50)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:6](file://backend/src/routes/shareCodeLogs.js#L6)
|
|
|
|
|
|
- [ShareCodeLog.js:2](file://backend/src/models/ShareCodeLog.js#L2)
|
|
|
|
|
|
- [auth.js:9](file://backend/src/middleware/auth.js#L9)
|
|
|
|
|
|
- [response.js:8](file://backend/src/utils/response.js#L8)
|
|
|
|
|
|
|
|
|
|
|
|
### 数据流依赖
|
|
|
|
|
|
|
|
|
|
|
|
系统各组件之间的数据依赖关系如下:
|
|
|
|
|
|
|
|
|
|
|
|
1. **前端视图依赖API封装**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- index.vue 通过 shareCodeLog.ts 调用后端 API
|
|
|
|
|
|
- API 封装负责 HTTP 请求和参数传递
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- 支持增强的查询条件和批量操作
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
2. **API封装依赖后端路由**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- shareCodeLog.ts 向 /share-code/logs 发送 GET 请求
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- 后端路由处理具体业务逻辑
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- 集成审计日志记录
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
3. **后端路由依赖数据模型**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- shareCodeLogs.js 使用 ShareCodeLog 模型进行数据库操作
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- 数据模型定义了表结构和索引
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- 支持高级查询和优化
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
4. **认证依赖**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- 所有路由都经过 authMiddleware 中间件验证
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- 确保只有认证用户可以访问
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- 记录访问审计日志
|
|
|
|
|
|
|
|
|
|
|
|
**更新** 数据流现在支持增强的查询功能、批量操作和完整的审计追踪。
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
|
|
|
|
|
- [shareCodeLog.ts:1-50](file://frontend/src/service/api/share-code-log.ts#L1-L50)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- [shareCodeLogs.js:6](file://backend/src/routes/shareCodeLogs.js#L6)
|
|
|
|
|
|
|
|
|
|
|
|
## 性能考虑
|
|
|
|
|
|
|
|
|
|
|
|
### 前端性能优化
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 增强的分页加载机制
|
|
|
|
|
|
- **智能分页策略**:根据数据量动态调整每页记录数
|
|
|
|
|
|
- **懒加载优化**:仅在需要时加载下一页数据
|
|
|
|
|
|
- **虚拟滚动支持**:对于大量数据实现高性能滚动体验
|
|
|
|
|
|
- **缓存策略**:对相同查询条件的结果进行智能缓存
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 高级缓存策略
|
|
|
|
|
|
- **多级缓存**:结合内存缓存和浏览器本地存储
|
|
|
|
|
|
- **增量更新**:只更新变化的数据部分
|
|
|
|
|
|
- **预加载机制**:预测用户操作并预加载相关数据
|
|
|
|
|
|
- **防抖处理**:搜索输入时添加智能防抖,避免频繁请求
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
#### 渲染优化
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **虚拟DOM优化**:合理使用 v-if/v-show 减少 DOM 操作
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- **组件拆分**:将大组件拆分为更小的子组件
|
|
|
|
|
|
- **事件委托**:使用事件委托减少事件监听器数量
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **Web Workers**:大数据处理使用 Web Workers 提升性能
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 后端性能优化
|
|
|
|
|
|
|
|
|
|
|
|
#### 数据库优化
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **智能索引**:为常用查询字段建立复合索引
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **查询优化**:使用 LIMIT 限制结果集大小
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **连接池优化**:合理配置数据库连接池参数
|
|
|
|
|
|
- **查询缓存**:对热点查询结果进行缓存
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
#### API优化
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **响应压缩**:启用 Gzip 压缩减少传输数据量
|
2026-06-30 14:46:52 +08:00
|
|
|
|
- **超时控制**:设置合理的请求超时时间
|
|
|
|
|
|
- **并发控制**:限制同时处理的请求数量
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **异步处理**:耗时操作使用异步队列处理
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 高级缓存策略
|
|
|
|
|
|
- **Redis缓存**:对热点数据进行分布式缓存
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **CDN加速**:静态资源使用 CDN 分发
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **查询结果缓存**:缓存常用的复杂查询结果
|
|
|
|
|
|
- **会话缓存**:用户会话信息缓存
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 实时更新机制
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
系统现在支持多种实时更新方式:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
sequenceDiagram
|
|
|
|
|
|
participant Timer as 定时器
|
2026-07-17 09:35:32 +08:00
|
|
|
|
participant WebSocket as WebSocket服务器
|
2026-06-30 14:46:52 +08:00
|
|
|
|
participant Frontend as 前端
|
|
|
|
|
|
participant API as API接口
|
|
|
|
|
|
participant Backend as 后端
|
|
|
|
|
|
Timer->>Frontend : 触发定时任务
|
2026-07-17 09:35:32 +08:00
|
|
|
|
Frontend->>WebSocket : 建立长连接
|
|
|
|
|
|
WebSocket->>Backend : 订阅数据更新
|
|
|
|
|
|
Backend-->>WebSocket : 推送数据变更
|
|
|
|
|
|
WebSocket-->>Frontend : 实时数据推送
|
|
|
|
|
|
Frontend->>Frontend : 增量更新界面
|
2026-06-30 14:46:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
**更新** 系统现在支持 WebSocket 实时推送和智能轮询相结合的混合更新机制。
|
2026-07-17 09:35:32 +08:00
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- [index.vue](file://frontend/src/views/share-code/log/index.vue)
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
## 故障排除指南
|
|
|
|
|
|
|
|
|
|
|
|
### 常见问题及解决方案
|
|
|
|
|
|
|
|
|
|
|
|
#### 登录认证问题
|
|
|
|
|
|
- **问题**:401未授权错误
|
|
|
|
|
|
- **原因**:JWT令牌缺失或过期
|
|
|
|
|
|
- **解决**:重新登录获取新令牌
|
|
|
|
|
|
|
|
|
|
|
|
#### 数据查询异常
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **问题**:查询结果为空或性能问题
|
|
|
|
|
|
- **原因**:查询条件过于严格或索引缺失
|
|
|
|
|
|
- **解决**:优化查询条件,检查数据库索引
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
#### 实时更新问题
|
|
|
|
|
|
- **问题**:数据不同步或连接断开
|
|
|
|
|
|
- **原因**:网络问题或服务器配置错误
|
2026-07-17 17:17:22 +08:00
|
|
|
|
- **解决**:检查网络连接,重启 WebSocket 服务
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
#### 前端渲染问题
|
2026-07-17 09:35:32 +08:00
|
|
|
|
- **问题**:表格显示异常或卡顿
|
|
|
|
|
|
- **原因**:数据量过大或内存泄漏
|
|
|
|
|
|
- **解决**:启用虚拟滚动,清理未使用的组件实例
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
### 增强的错误处理机制
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
系统采用统一的错误处理和审计机制:
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart TD
|
|
|
|
|
|
Request[请求发起] --> Validate[参数验证]
|
|
|
|
|
|
Validate --> Validated{验证通过?}
|
2026-07-17 09:35:32 +08:00
|
|
|
|
Validated --> |否| LogError[记录错误日志]
|
|
|
|
|
|
LogError --> ReturnError[返回错误]
|
2026-06-30 14:46:52 +08:00
|
|
|
|
Validated --> |是| Process[处理请求]
|
|
|
|
|
|
Process --> Success{处理成功?}
|
|
|
|
|
|
Success --> |否| HandleError[处理错误]
|
2026-07-17 09:35:32 +08:00
|
|
|
|
HandleError --> AuditLog[记录审计日志]
|
|
|
|
|
|
AuditLog --> ReturnError
|
2026-06-30 14:46:52 +08:00
|
|
|
|
Success --> |是| ReturnSuccess[返回成功]
|
2026-07-17 09:35:32 +08:00
|
|
|
|
ReturnSuccess --> AuditSuccess[记录成功日志]
|
|
|
|
|
|
AuditSuccess --> End([结束])
|
|
|
|
|
|
ReturnError --> End
|
2026-06-30 14:46:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
**更新** 错误处理现在集成了完整的审计日志记录,支持问题追踪和性能分析。
|
|
|
|
|
|
|
2026-06-30 14:46:52 +08:00
|
|
|
|
**图表来源**
|
|
|
|
|
|
- [shareCodeLogs.js:80-83](file://backend/src/routes/shareCodeLogs.js#L80-L83)
|
|
|
|
|
|
|
|
|
|
|
|
**章节来源**
|
|
|
|
|
|
- [auth.js:3-26](file://backend/src/middleware/auth.js#L3-L26)
|
|
|
|
|
|
- [shareCodeLogs.js:80-83](file://backend/src/routes/shareCodeLogs.js#L80-L83)
|
|
|
|
|
|
|
|
|
|
|
|
## 结论
|
|
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
分享码日志页面经过迁移和重构后,成为了一个功能强大、性能优异的日志管理系统。通过将页面迁移到新的目录结构 `src/views/share-code/log/index.vue`,并采用改进的用户界面和数据展示能力,系统为用户提供了卓越的体验和强大的管理能力。
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 主要优势
|
|
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
1. **功能完整性**:提供了完整的查询、筛选、分页、展示和审计功能
|
|
|
|
|
|
2. **用户体验**:直观的界面设计和响应式交互,支持智能搜索和批量操作
|
|
|
|
|
|
3. **数据安全**:完善的认证授权机制和完整的审计追踪
|
|
|
|
|
|
4. **性能优化**:智能的分页策略、缓存机制和实时更新
|
|
|
|
|
|
5. **可扩展性**:模块化架构支持功能扩展和定制开发
|
|
|
|
|
|
|
|
|
|
|
|
### 技术特色
|
|
|
|
|
|
|
|
|
|
|
|
1. **增强的搜索功能**:支持条件组合、智能提示和历史记录
|
|
|
|
|
|
2. **实时数据同步**:WebSocket推送和智能轮询相结合
|
|
|
|
|
|
3. **全面审计追踪**:完整的操作历史记录和安全审计
|
|
|
|
|
|
4. **高性能数据处理**:虚拟滚动、懒加载和智能缓存
|
|
|
|
|
|
5. **现代化UI设计**:响应式布局和直观的操作界面
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
### 未来发展方向
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 09:35:32 +08:00
|
|
|
|
1. **AI智能分析**:集成机器学习算法进行异常检测和趋势预测
|
|
|
|
|
|
2. **移动端适配**:开发移动应用版本,支持随时随地访问
|
|
|
|
|
|
3. **数据可视化增强**:集成更多图表类型和交互式报表
|
|
|
|
|
|
4. **自动化报告**:自动生成定期报告和预警通知
|
|
|
|
|
|
5. **国际化支持**:多语言界面和本地化功能
|
2026-06-30 14:46:52 +08:00
|
|
|
|
|
2026-07-17 17:17:22 +08:00
|
|
|
|
该系统为音频仪表板提供了重要的审计和监控能力,经过迁移和重构后的版本在功能、性能和用户体验方面都有了显著提升,为后续的功能扩展奠定了坚实的基础。**最新的增强功能包括智能搜索、实时同步、全面审计和性能优化,使系统更加专业和可靠。**
|