Merge branch ‘sujiazheng’ into master
军事战区态势感知可视化大屏系统,支持世界地图态势总览、作战行动追踪、信息与电子战监控三页轮播展示。
code/ ├── README.md ├── 代码分析报告.md # 完整代码文件分析 ├── dataview-backend/ # Spring Boot 后端 │ ├── pom.xml │ └── src/main/ │ ├── java/com/dataview/ │ │ ├── DataViewApplication.java # 启动类 │ │ ├── common/Result.java # 统一响应 {code, msg, data} │ │ ├── config/CorsConfig.java # CORS 跨域配置 │ │ ├── controller/ │ │ │ ├── MilitaryController.java # GET /api/military/all 大屏数据 │ │ │ └── DataIngestController.java # POST /api/data/* 外部数据接入 │ │ ├── entity/ # 12 个实体类 │ │ ├── mapper/ # 12 个 MyBatis Mapper │ │ └── service/ # 服务层 │ └── resources/ │ ├── application.yml # 数据库/端口/Druid 配置 │ └── init.sql # 建表 + 模拟数据 └── dataview-web/ # Vue 3 前端 ├── vite.config.js # Vite配置 + API代理 ├── public/ │ ├── china.json # 中国地图 GeoJSON (已废弃) │ └── world.json # 世界地图 GeoJSON (177国) └── src/ ├── App.vue # 根组件 ├── style.css # 全局暗色主题样式 ├── api/dashboard.js # axios API 封装 ├── utils/format.js # 数字格式化工具 ├── views/screen/ │ ├── DataScreen.vue # 大屏主容器 (轮播/缩放/定时刷新) │ └── pages/ │ ├── BattlefieldPage.vue # 第1页: 世界战场态势 │ ├── OperationsPage.vue # 第2页: 作战行动与情报 │ └── InfoWarPage.vue # 第3页: 信息与电子战 └── components/charts/ ├── MapChart.vue # 世界地图 (纬线+实时经纬度) ├── BarChart.vue # 柱状图 ├── LineChart.vue # 折线图 (预留) ├── PieChart.vue # 环形饼图 ├── RadarChart.vue # 雷达图 (支持双系列对比) ├── RankList.vue # 排行榜 (预留) └── StatCard.vue # 统计卡片 (预留)
init.sql (12张表, ~70条数据) ↓ MySQL dataview_db (localhost:3306, root/root) ↓ JDBC + MyBatis-Plus MilitaryServiceImpl.getAll() → 聚合为 page1/2/3 ↓ GET /api/military/all → JSON {code, data: {page1, page2, page3}} ↓ Axios (Vite proxy /api → localhost:8080) DataScreen.vue → 3页轮播 (15秒切换, 30秒刷新) ↓ ECharts 渲染 (地图/雷达/柱状/饼图)
/api/military/all
/api/data/friendly-unit/batch
/api/data/enemy-unit/batch
/api/data/battlefield-marker/batch
/api/data/logistics/batch
/api/data/comms-status/batch
/api/data/drone-fleet/batch
/api/data/morale-stats/batch
/api/data/casualty-stats
/api/data/mission
/api/data/intelligence
/api/data/threat-alert
/api/data/mission/{id}/progress
/api/data/threat-alert/{id}/acknowledge
/api/data/logistics/{id}/level
/api/data/sync-all
在 Navicat 或命令行执行 dataview-backend/src/main/resources/init.sql
dataview-backend/src/main/resources/init.sql
cd dataview-backend mvn org.springframework.boot:spring-boot-maven-plugin:2.7.18:run
cd dataview-web npm install npm run dev
http://localhost:3000
cd dataview-web && npm run build
cp -r dist/* ../dataview-backend/src/main/resources/static/
cd dataview-backend && mvn package -DskipTests
java -jar target/dataview-backend-1.0.0.jar --spring.datasource.password=内网密码
http://内网IP:8080
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
🎯 战区态势指挥大屏
军事战区态势感知可视化大屏系统,支持世界地图态势总览、作战行动追踪、信息与电子战监控三页轮播展示。
技术栈
项目结构
数据流
三页大屏
第1页:世界战场态势
第2页:作战行动与情报
第3页:信息与电子战
API 接口
大屏展示(只读)
/api/military/all数据接入(写入)
/api/data/friendly-unit/batch/api/data/enemy-unit/batch/api/data/battlefield-marker/batch/api/data/logistics/batch/api/data/comms-status/batch/api/data/drone-fleet/batch/api/data/morale-stats/batch/api/data/casualty-stats/api/data/mission/api/data/intelligence/api/data/threat-alert/api/data/mission/{id}/progress/api/data/threat-alert/{id}/acknowledge/api/data/logistics/{id}/level/api/data/sync-all本地启动
前置条件
1. 初始化数据库
在 Navicat 或命令行执行
dataview-backend/src/main/resources/init.sql2. 启动后端
3. 启动前端
4. 浏览器打开
内网部署
cd dataview-web && npm run buildcp -r dist/* ../dataview-backend/src/main/resources/static/cd dataview-backend && mvn package -DskipTestsjava -jar target/dataview-backend-1.0.0.jar --spring.datasource.password=内网密码http://内网IP:8080数据库表