# 数据大屏
**Repository Path**: Ip_Man/data-dashboard
## Basic Information
- **Project Name**: 数据大屏
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-10-23
- **Last Updated**: 2025-11-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 可视化大屏项目
基于 Vue CLI + Vue 2 + DataV 的可视化大屏项目
## 项目特性
- 🚀 基于 Vue CLI 构建工具
- ⚡ Vue 2.7 Options API + Composition API
- 🗂️ 集成 Vue Router 路由管理
- 🗃️ 集成 Vuex 状态管理
- 📊 集成 DataV 可视化组件库
- 🎨 现代化大屏设计风格
- 📱 响应式布局适配
## 技术栈
- **前端框架**: Vue 2.7.16
- **构建工具**: Vue CLI 4.5
- **路由管理**: Vue Router 3.6.5
- **状态管理**: Vuex 3.6.2
- **可视化库**: @jiaminghi/data-view 2.10
- **地图库**: @antv/l7 2.22.0 + @antv/l7-maps 2.22.0
- **开发语言**: JavaScript (ES Modules)
## 项目结构
```
datav/
├── public/
│ └── index.html # HTML模板
├── src/
│ ├── assets/
│ │ └── style.css # 全局样式
│ ├── components/ # 组件目录
│ ├── router/ # 路由配置 (待添加)
│ ├── store/ # Vuex状态管理 (待添加)
│ ├── views/ # 页面视图 (待添加)
│ ├── App.vue # 主应用组件
│ └── main.js # 应用入口
├── vue.config.js # Vue CLI配置
├── .gitignore # Git忽略文件
├── package.json # 项目配置
└── README.md # 项目说明
```
## 安装依赖
```bash
npm install
```
## 开发模式
```bash
npm run serve
```
服务器将在 `http://localhost:8080` 启动
## 构建生产版本
```bash
npm run build
```
## 代码检查
```bash
npm run lint
```
## 功能特性
### 🗂️ 路由管理
- Vue Router 3.6.5 集成
- 支持嵌套路由和动态路由
- 路由守卫和导航控制
- 历史模式支持
### 🗃️ 状态管理
- Vuex 3.6.2 集成
- 集中式状态管理
- 支持模块化
- 状态持久化支持
### 🎯 大屏组件展示
- 装饰边框组件
- 数字翻牌器
- 滚动排名榜
- 数据图表
- 进度条
- 水球图
- 百分比环
- **安徽省地图可视化**
- **动态飞线图效果**
### 🎨 视觉效果
- 渐变背景
- 霓虹发光效果
- 毛玻璃效果
- 响应式布局
- 实时数据更新
### 📊 数据可视化
- 实时数据模拟
- 动态图表更新
- 多种数据展示形式
- 流畅的动画效果
### 🗺️ 地图可视化
- AntV L7 地图引擎
- 安徽省边界可视化
- 动态飞线图效果
- 交互式地图控制
- 实时数据叠加
## 自定义配置
### Vue CLI 配置 (vue.config.js)
项目使用了自定义的 Vue CLI 配置,包括:
- **开发服务器**: 端口 8080,自动打开浏览器
- **代码分割**: 优化第三方库打包
- **别名配置**: `@` 指向 `src` 目录
- **生产优化**: 禁用 source map,优化构建
## 🚀 快速开始
### 访问可视化大屏
启动开发服务器后,访问以下页面:
- **首页大屏**: http://localhost:8080/
- 安徽省地图可视化
- 实时数据监控面板
- 动态飞线图效果
- 性能指标展示
- **数据大屏**: http://localhost:8080/dashboard
- 完整的 DataV 组件展示
- **关于页面**: http://localhost:8080/about
- 项目信息和技术栈
### 交互功能
- **地图控制**: 使用飞线显示/隐藏按钮控制飞线图层
- **数据更新**: 每3秒自动更新所有数据指标
- **响应式设计**: 支持桌面端和移动端适配
## 自定义配置
### DataV 可视化组件
项目使用了以下 DataV 组件:
- `dv-decoration-*`: 装饰组件
- `dv-border-box-*`: 边框容器
- `dv-digital-flop`: 数字翻牌器
- `dv-scroll-ranking-board`: 滚动排名榜
- `dv-charts`: 图表组件
- `dv-progress`: 进度条
- `dv-water-level-pond`: 水球图
- `dv-percent-pond`: 百分比环
### AntV L7 地图组件
项目集成了 AntV L7 地图可视化:
- `Scene`: 地图场景容器
- `PolygonLayer`: 多边形图层(省份边界)
- `LineLayer`: 线条图层(飞线效果)
- `Mapbox`: Mapbox 地图服务
### 路由和状态管理
项目已集成 Vue Router 和 Vuex,但路由配置和状态管理模块暂未创建。如需使用,请参考以下结构:
```
src/router/
├── index.js # 路由配置
└── guards.js # 路由守卫
src/store/
├── index.js # 根 store
├── modules/ # store 模块
└── getters.js # 全局 getters
```
## 浏览器支持
- Chrome 80+
- Firefox 75+
- Safari 13+
- Edge 80+
## 新增组件
### DetentionCountChart (在押人数统计组件)
**功能特性:**
- 折线图显示在押人数年度趋势变化
- 条形图显示各监区的在押人数分布
- 条形图支持点击交互,可选中特定监区
- 实时显示总在押人数统计
- 响应式设计,支持移动端适配
- 使用mock数据模拟真实数据变化
**使用方法:**
```vue
```
**事件:**
- `area-selected`: 当用户点击条形图中的监区时触发,返回选中监区的数据
**数据结构:**
```javascript
// 趋势数据
trendData: [
{ month: '1月', count: 850, date: '2024-01' },
// ...
]
// 监区数据
areaData: [
{
area: '第1监区',
count: 75,
capacity: 100,
usageRate: 75.0
},
// ...
]
```
## 开发计划
- [x] 创建路由配置 (`src/router/index.js`)
- [x] 设置基础页面视图 (`src/views/`)
- [x] 实现 Vuex 状态管理 (`src/store/`)
- [x] 添加路由导航组件
- [x] 实现页面间数据共享
- [x] 配置 Git 版本控制 (`.gitignore`)
- [x] 集成 AntV L7 地图库
- [x] 实现安徽省地图可视化
- [x] 添加动态飞线图效果
- [x] 构建完整大屏布局
- [x] **添加DetentionCountChart在押人数统计组件**
- [ ] 添加用户认证功能
- [ ] 实现数据持久化
- [ ] 添加更多图表类型
## 许可证
MIT License