Compare commits
15 Commits
c1575d47dd
...
75aeed56be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75aeed56be | ||
|
|
7892e6c660 | ||
|
|
9b3b735cdd | ||
|
|
fe2cc3b8de | ||
|
|
50a860fdf7 | ||
|
|
4ded7b26c9 | ||
|
|
1758accfbe | ||
|
|
c0cea6e5c9 | ||
|
|
05a9aae280 | ||
|
|
e3c806ea3c | ||
|
|
eb89c8216d | ||
|
|
4371a95c0d | ||
|
|
b92a26dac1 | ||
| 8e55124158 | |||
|
|
e3fdca4ac2 |
@ -33,7 +33,7 @@ public class SEApplication {
|
|||||||
|
|
||||||
System.setProperty("jna.library.path", combinedPath);
|
System.setProperty("jna.library.path", combinedPath);
|
||||||
// 如果 OpenCV 使用的是标准 JNI (System.loadLibrary),可能还需要设置 java.library.path
|
// 如果 OpenCV 使用的是标准 JNI (System.loadLibrary),可能还需要设置 java.library.path
|
||||||
System.setProperty("java.library.path", opencvPath);
|
System.setProperty("opencv.library.path", opencvPath);
|
||||||
SpringApplication.run(SEApplication.class, args);
|
SpringApplication.run(SEApplication.class, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import lombok.Getter;
|
|||||||
public enum JmJobModeEnum implements CodeEnum<Integer> {
|
public enum JmJobModeEnum implements CodeEnum<Integer> {
|
||||||
|
|
||||||
QUICK(1, "快速模式"),
|
QUICK(1, "快速模式"),
|
||||||
|
CRUISE(2, "巡航模式"),
|
||||||
CREATE(3, "航线创建")
|
CREATE(3, "航线创建")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.io.File;
|
||||||
import java.net.ConnectException;
|
import java.net.ConnectException;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -118,7 +119,22 @@ public class JmImageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
|
//System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
|
||||||
|
//加载 OpenCV (强制使用绝对路径加载,解决 UnsatisfiedLinkError)
|
||||||
|
String openCvDll = System.getProperty("opencv.library.path") + File.separator + Core.NATIVE_LIBRARY_NAME + ".dll";
|
||||||
|
try {
|
||||||
|
File dllFile = new File(openCvDll);
|
||||||
|
if (dllFile.exists()) {
|
||||||
|
// 注意:必须使用 System.load() 加载绝对路径
|
||||||
|
System.load(dllFile.getAbsolutePath());
|
||||||
|
System.out.println("SUCCESS: OpenCV loaded from -> " + dllFile.getAbsolutePath());
|
||||||
|
} else {
|
||||||
|
System.err.println("ERROR: OpenCV DLL not found at -> " + openCvDll);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
System.err.println("CRITICAL: Failed to load OpenCV: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@IgnoreAuth
|
/*@IgnoreAuth
|
||||||
|
|||||||
@ -60,7 +60,7 @@ public class JmUavStatusDTO {
|
|||||||
private String sarIp;
|
private String sarIp;
|
||||||
|
|
||||||
/** sar 图片亮度 */
|
/** sar 图片亮度 */
|
||||||
private Integer sarImageLight;
|
private volatile Integer sarImageLight;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取sar当前状态
|
* 获取sar当前状态
|
||||||
|
|||||||
@ -19,6 +19,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.zhangy.skyeye.jm.consts.JmJobModeEnum.CRUISE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 控制指令
|
* 控制指令
|
||||||
*/
|
*/
|
||||||
@ -54,7 +56,11 @@ public class SarControlServiceImpl implements ISarControlService {
|
|||||||
param.setMoto(sar.getMoto());
|
param.setMoto(sar.getMoto());
|
||||||
param.setImageBit(sar.getImageBit());
|
param.setImageBit(sar.getImageBit());
|
||||||
param.setResolution(sar.getResolution());
|
param.setResolution(sar.getResolution());
|
||||||
|
if (job.getMode().equals(CRUISE.getCode())) {
|
||||||
|
param.setControlType(SarControlTypeEnum.TURNON);
|
||||||
|
} else {
|
||||||
param.setControlType(SarControlTypeEnum.AUTO);
|
param.setControlType(SarControlTypeEnum.AUTO);
|
||||||
|
}
|
||||||
double startAltitude = uav.getStartAltitude();
|
double startAltitude = uav.getStartAltitude();
|
||||||
// 高度加上起始高度
|
// 高度加上起始高度
|
||||||
Optional.ofNullable(param.getAirlineList())
|
Optional.ofNullable(param.getAirlineList())
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
const prodPlugins = []
|
const prodPlugins = []
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
prodPlugins.push('transform-remove-console')
|
// prodPlugins.push('transform-remove-console')
|
||||||
}
|
}
|
||||||
module.exports = {
|
module.exports = {
|
||||||
presets: [[
|
presets: [[
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@turf/turf": "^7.1.0",
|
"@turf/turf": "^7.1.0",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
|
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||||
"core-js": "^3.6.4",
|
"core-js": "^3.6.4",
|
||||||
"element-ui": "^2.15.6",
|
"element-ui": "^2.15.6",
|
||||||
"js-cookie": "^2.2.1",
|
"js-cookie": "^2.2.1",
|
||||||
|
|||||||
10
frontend/Skyeye-sys-ui/resource/dt-chart/dist/demo.html
vendored
Normal file
10
frontend/Skyeye-sys-ui/resource/dt-chart/dist/demo.html
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<meta charset="utf-8">
|
||||||
|
<title>dt-chart demo</title>
|
||||||
|
<script src="./dt-chart.umd.js"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="./dt-chart.css">
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
console.log(dt-chart)
|
||||||
|
</script>
|
||||||
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js
vendored
Normal file
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.css
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.css
vendored
Normal file
File diff suppressed because one or more lines are too long
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js
vendored
Normal file
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
311
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.min.js
vendored
Normal file
311
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.min.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.min.js.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"dt-chart.umd.min.js","sources":["webpack://dt-chart/dt-chart.umd.min.js"],"mappings":"AAAA;AA+HA;AAAA;AAqEA;AAAA;AA+HA;AAAA;AA0FA;AAAA;AAsNA;AAAA;AAuEA;AAAA;AAiLA;AAAA;AA0HA;AAAA;AAkGA;AAAA;AA4NA;AAAA;AAyFA;AAAA;AAqFA;AAAA;AAyHA;AAAA;AAqEA;AAAA;AAyEA;AAAA;AAiGA;AAAA;AAqQA;AAAA;AAoMA;AAAA;AA8IA;AAAA;AA8HA;AAAA;AAkYA;AAAA;AA2JA;AAAA;AAqMA;AAAA;AA6LA;AAAA;AA8JA;AAAA;AAuMA;AAAA;AA4IA;AAAA;AA8FA;AAAA;AAmKA;AAAA;AAmHA;AAAA;AAwHA;AAAA;AAgFA;AAAA;AAqFA;AAAA;AAyNA;AAAA;AA0IA;AAAA;AAkHA;AAAA;AA4JA;AAAA;AAiRA;AAAA;AAiJA;AAAA;AAsmBA;AAAA;AAiFA;AAAA;AAyiBA;AAAA;AA4IA;AAAA;AAkHA;AAAA;AAiZA;AAAA;AA0HA;AAAA;AA4HA;AAAA;AAiGA;AAAA;AA6OA;AAAA;AA8JA;AAAA;AA8JA;AAAA;AAuIA;AAAA;AA4GA;AAAA;AAuIA;AAAA;AAqJA;AAAA;AA8HA;AAAA;AAkJA;AAAA;AAmPA;AAAA;AAgIA;AAAA;AA+FA;AAAA;AAiGA;AAAA;AAqLA;AAAA;AA4HA;AAAA;AAiLA;AAAA;AA2EA;AAAA;AAkGA;AAAA;AAiqBA;AAAA;AA6KA;AAAA;AAgFA;AAAA;AAoFA;AAAA;AA4MA;AAAA;AA2GA;AAAA;AA4SA;AAAA;AAsbA;AAAA;AAmFA;AAAA;AAmNA;AAAA;AAyIA;AAAA;AAsKA;AAAA;AAqHA;AAAA;AAyGA;AAAA;AAmMA;AAAA;AA0IA;AAAA;AAwHA;AAAA;AA2JA;AAAA;AAgIA;AAAA;AA2MA;AAAA;AAoJA;AAAA;;AAyHA;AA8PA;AAAA;AA4NA;AAAA;AAmHA;AAAA;AAoGA;AAAA;AAkJA;AAAA;AA0FA;AAAA;AA2QA;AAAA;AA+LA;AAAA;AAylBA;AAAA;AA8JA;AAAA;AA4MA;AAAA;AA6UA;AAAA;AAoFA;AAAA;AA8FA;AAAA;AA4FA;AAAA;AAsEA;AAAA;AA2FA;AAAA;;;;;;;AAqJA;AA++DA;AAAA;AAqFA;AAAA;AA4EA;AAAA;AA4GA;AAAA;AA0HA;AAAA;;;;;AAgEA;;AA++KA;AAwJA;AAAA;AAyIA;AAAA;AAoMA;AAAA;AAwIA;AAAA;AAsGA;AAAA;AA0MA;AAAA;AAuLA;AAAA;AAoOA;AAAA;AAyEA;AAAA;AA4GA;AAAA;AAmPA;AAAA;AA4GA;AAAA;AAmKA;AAAA;AA4SA;AAAA;AAmLA;AAAA;AA8LA;AAAA;AA2KA;AAAA;AA4FA;AAAA;AA6FA;AAAA;AAqFA;AAAA;AAmFA;AAAA;AA8EA;AAAA;AA2KA;AAAA;AA+HA;AAAA;;;;;;;;;;;;;;AAkYA;;;;;;;;;AA6vLA;AAq80KA;AAAA;AA8IA;AAAA","sourceRoot":""}
|
||||||
10
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/demo.html
vendored
Normal file
10
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/demo.html
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<meta charset="utf-8">
|
||||||
|
<title>dt-chart demo</title>
|
||||||
|
<script src="./dt-chart.umd.js"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="./dt-chart.css">
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
console.log(dt-chart)
|
||||||
|
</script>
|
||||||
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.common.js
vendored
Normal file
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.common.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.common.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.common.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.css
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.css
vendored
Normal file
File diff suppressed because one or more lines are too long
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.js
vendored
Normal file
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
311
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.min.js
vendored
Normal file
311
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.min.js.map
vendored
Normal file
1
frontend/Skyeye-sys-ui/resource/dt-chart/dt-chart/dist/dt-chart.umd.min.js.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"dt-chart.umd.min.js","sources":["webpack://dt-chart/dt-chart.umd.min.js"],"mappings":"AAAA;AA+HA;AAAA;AAqEA;AAAA;AA+HA;AAAA;AA0FA;AAAA;AAsNA;AAAA;AAuEA;AAAA;AAiLA;AAAA;AA0HA;AAAA;AAkGA;AAAA;AA4NA;AAAA;AAyFA;AAAA;AAqFA;AAAA;AAyHA;AAAA;AAqEA;AAAA;AAyEA;AAAA;AAiGA;AAAA;AAqQA;AAAA;AAoMA;AAAA;AA8IA;AAAA;AA8HA;AAAA;AAkYA;AAAA;AA2JA;AAAA;AAqMA;AAAA;AA6LA;AAAA;AA8JA;AAAA;AAuMA;AAAA;AA4IA;AAAA;AA8FA;AAAA;AAmKA;AAAA;AAmHA;AAAA;AAwHA;AAAA;AAgFA;AAAA;AAqFA;AAAA;AAyNA;AAAA;AA0IA;AAAA;AAkHA;AAAA;AA4JA;AAAA;AAiRA;AAAA;AAiJA;AAAA;AAsmBA;AAAA;AAiFA;AAAA;AAyiBA;AAAA;AA4IA;AAAA;AAkHA;AAAA;AAiZA;AAAA;AA0HA;AAAA;AA4HA;AAAA;AAiGA;AAAA;AA6OA;AAAA;AA8JA;AAAA;AA8JA;AAAA;AAuIA;AAAA;AA4GA;AAAA;AAuIA;AAAA;AAqJA;AAAA;AA8HA;AAAA;AAkJA;AAAA;AAmPA;AAAA;AAgIA;AAAA;AA+FA;AAAA;AAiGA;AAAA;AAqLA;AAAA;AA4HA;AAAA;AAiLA;AAAA;AA2EA;AAAA;AAkGA;AAAA;AAiqBA;AAAA;AA6KA;AAAA;AAgFA;AAAA;AAoFA;AAAA;AA4MA;AAAA;AA2GA;AAAA;AA4SA;AAAA;AAsbA;AAAA;AAmFA;AAAA;AAmNA;AAAA;AAyIA;AAAA;AAsKA;AAAA;AAqHA;AAAA;AAyGA;AAAA;AAmMA;AAAA;AA0IA;AAAA;AAwHA;AAAA;AA2JA;AAAA;AAgIA;AAAA;AA2MA;AAAA;AAoJA;AAAA;;AAyHA;AA8PA;AAAA;AA4NA;AAAA;AAmHA;AAAA;AAoGA;AAAA;AAkJA;AAAA;AA0FA;AAAA;AA2QA;AAAA;AA+LA;AAAA;AAylBA;AAAA;AA8JA;AAAA;AA4MA;AAAA;AA6UA;AAAA;AAoFA;AAAA;AA8FA;AAAA;AA4FA;AAAA;AAsEA;AAAA;AA2FA;AAAA;;;;;;;AAqJA;AA++DA;AAAA;AAqFA;AAAA;AA4EA;AAAA;AA4GA;AAAA;AA0HA;AAAA;;;;;AAgEA;;AA++KA;AAwJA;AAAA;AAyIA;AAAA;AAoMA;AAAA;AAwIA;AAAA;AAsGA;AAAA;AA0MA;AAAA;AAuLA;AAAA;AAoOA;AAAA;AAyEA;AAAA;AA4GA;AAAA;AAmPA;AAAA;AA4GA;AAAA;AAmKA;AAAA;AA4SA;AAAA;AAmLA;AAAA;AA8LA;AAAA;AA2KA;AAAA;AA4FA;AAAA;AA6FA;AAAA;AAqFA;AAAA;AAmFA;AAAA;AA8EA;AAAA;AA2KA;AAAA;AA+HA;AAAA;;;;;;;;;;;;;;AAkYA;;;;;;;;;AA6vLA;AAq80KA;AAAA;AA8IA;AAAA","sourceRoot":""}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "dt-chart",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "dist/dt-chart.umd.min.js",
|
||||||
|
"module": "./packages/index.js",
|
||||||
|
"exports": {
|
||||||
|
"./package.json": "./package.json",
|
||||||
|
".": {
|
||||||
|
"require": "dist/dt-chart.umd.min.js",
|
||||||
|
"import": "./packages/index.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"author": {
|
||||||
|
"name": "Farley"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"serve": "vue-cli-service serve",
|
||||||
|
"docs": "vuepress dev docs",
|
||||||
|
"docs:build": "vuepress build docs",
|
||||||
|
"build": "vue-cli-service build --target lib packages/index.js & vuepress build docs"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": "^3.6.5",
|
||||||
|
"echarts": "^5.1.2",
|
||||||
|
"echarts-gl": "^2.0.8",
|
||||||
|
"echarts-liquidfill": "^3.1.0",
|
||||||
|
"install": "^0.13.0",
|
||||||
|
"moment": "^2.29.1",
|
||||||
|
"nanoid": "^3.1.23",
|
||||||
|
"npm": "^7.20.6",
|
||||||
|
"vue": "^2.6.11",
|
||||||
|
"vue-router": "^3.2.0",
|
||||||
|
"vuepress": "^1.8.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vue/cli-plugin-babel": "^4.5.0",
|
||||||
|
"@vue/cli-service": "^4.5.0",
|
||||||
|
"sass": "^1.29.0",
|
||||||
|
"sass-loader": "^8.0.2",
|
||||||
|
"vue-template-compiler": "^2.6.11"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 1%",
|
||||||
|
"last 2 versions",
|
||||||
|
"not dead"
|
||||||
|
]
|
||||||
|
}
|
||||||
48
frontend/Skyeye-sys-ui/resource/dt-chart/package.json
Normal file
48
frontend/Skyeye-sys-ui/resource/dt-chart/package.json
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "dt-chart",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "dist/dt-chart.umd.min.js",
|
||||||
|
"module": "./packages/index.js",
|
||||||
|
"exports": {
|
||||||
|
"./package.json": "./package.json",
|
||||||
|
".": {
|
||||||
|
"require": "dist/dt-chart.umd.min.js",
|
||||||
|
"import": "./packages/index.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"author": {
|
||||||
|
"name": "Farley"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"serve": "vue-cli-service serve",
|
||||||
|
"docs": "vuepress dev docs",
|
||||||
|
"docs:build": "vuepress build docs",
|
||||||
|
"build": "vue-cli-service build --target lib packages/index.js & vuepress build docs"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": "^3.6.5",
|
||||||
|
"echarts": "^5.1.2",
|
||||||
|
"echarts-gl": "^2.0.8",
|
||||||
|
"echarts-liquidfill": "^3.1.0",
|
||||||
|
"install": "^0.13.0",
|
||||||
|
"moment": "^2.29.1",
|
||||||
|
"nanoid": "^3.1.23",
|
||||||
|
"npm": "^7.20.6",
|
||||||
|
"vue": "^2.6.11",
|
||||||
|
"vue-router": "^3.2.0",
|
||||||
|
"vuepress": "^1.8.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vue/cli-plugin-babel": "^4.5.0",
|
||||||
|
"@vue/cli-service": "^4.5.0",
|
||||||
|
"sass": "^1.29.0",
|
||||||
|
"sass-loader": "^8.0.2",
|
||||||
|
"vue-template-compiler": "^2.6.11"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 1%",
|
||||||
|
"last 2 versions",
|
||||||
|
"not dead"
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -83,3 +83,7 @@ export const pictureAiCheck = params =>
|
|||||||
// 开机
|
// 开机
|
||||||
export const changePayloadRadarOpenState = params =>
|
export const changePayloadRadarOpenState = params =>
|
||||||
req('post', '/sar/control/send', params)
|
req('post', '/sar/control/send', params)
|
||||||
|
|
||||||
|
|
||||||
|
export const changeJobStatus = params =>
|
||||||
|
req('post', '/sar/job/status/', params)
|
||||||
|
|||||||
@ -83,7 +83,7 @@
|
|||||||
:data="colorStick.colors"
|
:data="colorStick.colors"
|
||||||
></color-stick>
|
></color-stick>
|
||||||
<!-- 开关 -->
|
<!-- 开关 -->
|
||||||
<dt-loading :visible.sync="loading"></dt-loading>
|
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,7 @@
|
|||||||
@modify="handleCommand('logout')"
|
@modify="handleCommand('logout')"
|
||||||
></change-password>
|
></change-password>
|
||||||
|
|
||||||
<dt-loading :visible.sync="loading"></dt-loading>
|
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -35,9 +35,10 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background-color: $--color-black-3-alpha;
|
background-color: $--color-black-3-alpha;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $--color-black-3;
|
background-color: rgba(23, 69, 46, .4);
|
||||||
}
|
}
|
||||||
|
|
||||||
>p {
|
>p {
|
||||||
|
|||||||
@ -29,11 +29,12 @@
|
|||||||
v-for="(item, index) in taskList.data"
|
v-for="(item, index) in taskList.data"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="task-item"
|
class="task-item"
|
||||||
|
@click="openTaskLineDetail(item)"
|
||||||
>
|
>
|
||||||
<div class="top-part">
|
<div class="top-part">
|
||||||
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
||||||
<div class="top-part__left">
|
<div class="top-part__left">
|
||||||
<div class="execute-info" @click="openTaskLineDetail(item)">
|
<div class="execute-info">
|
||||||
<span
|
<span
|
||||||
class="execute-type-icon"
|
class="execute-type-icon"
|
||||||
:class="'execute-state-' + item.status"
|
:class="'execute-state-' + item.status"
|
||||||
|
|||||||
@ -1128,8 +1128,15 @@ export default {
|
|||||||
// 测试
|
// 测试
|
||||||
// this.addUavToScene(item)
|
// this.addUavToScene(item)
|
||||||
})
|
})
|
||||||
|
if (data.length) {
|
||||||
|
this.detailUav.chart.data[0].data = []
|
||||||
|
this.detailUav.chart.data[1].data = []
|
||||||
|
this.detailUav.chart.data[2].data = []
|
||||||
|
this.detailUav.chart.data[3].data = []
|
||||||
this.detailUav.id = data.length ? data[0].id : 1
|
this.detailUav.id = data.length ? data[0].id : 1
|
||||||
this.detailUav.visible = data.length ? true : false
|
this.detailUav.visible = data.length ? true : false
|
||||||
|
}
|
||||||
|
|
||||||
taskListResource = data
|
taskListResource = data
|
||||||
this.taskList.data = list
|
this.taskList.data = list
|
||||||
if (this.taskList.data.length) {
|
if (this.taskList.data.length) {
|
||||||
@ -1322,51 +1329,59 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
addJobLine(info, isFinish) {
|
addJobLine(info, isFinish) {
|
||||||
console.log('任务信息', info)
|
// 参数和数据校验
|
||||||
let load = renderTaskInfo[`${info.id}-${info.uavList[0].uavId}`]
|
console.log(info, info.uavList, 777777777777);
|
||||||
|
|
||||||
|
if (!info || !Array.isArray(info.uavList) || info.uavList.length === 0) return;
|
||||||
|
const uav = info.uavList[0];
|
||||||
|
if (!Array.isArray(uav.airlineList) || uav.airlineList.length === 0) return;
|
||||||
|
const key = `${info.id}-${uav.uavId}`;
|
||||||
|
let load = renderTaskInfo[key];
|
||||||
|
console.log(load, key, 3333333);
|
||||||
|
|
||||||
if (load) {
|
if (load) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
let routes = []
|
let routes = [];
|
||||||
let startHeight = 0
|
let startHeight = 0;
|
||||||
let endHeight = 0
|
let endHeight = 0;
|
||||||
info.uavList[0].airlineList.forEach((item, index) => {
|
uav.airlineList.forEach((item, index) => {
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
startHeight = item.flightStartHeight
|
startHeight = item.startHeight;
|
||||||
}
|
}
|
||||||
if (index === info.uavList[0].airlineList.length - 1) {
|
if (index === uav.airlineList.length - 1) {
|
||||||
endHeight = item.flightEndHeight
|
endHeight = item.endHeight;
|
||||||
}
|
}
|
||||||
routes.push([item.flightStartLon, item.flightStartLat, item.flightStartHeight])
|
routes.push([item.startLon, item.startLat, item.startHeight]);
|
||||||
routes.push([item.flightEndLon, item.flightEndLat, item.flightEndHeight])
|
routes.push([item.endLon, item.endLat, item.endHeight]);
|
||||||
})
|
});
|
||||||
routes.unshift([info.uavList[0].startLon, info.uavList[0].startLat, startHeight])
|
routes.unshift([uav.startLon, uav.startLat, startHeight]);
|
||||||
routes.push([info.uavList[0].endLon, info.uavList[0].endLat, endHeight])
|
routes.push([uav.endLon, uav.endLat, endHeight]);
|
||||||
let positions = []
|
let positions = [];
|
||||||
let minLon, maxLon, minLat, maxLat
|
let minLon, maxLon, minLat, maxLat;
|
||||||
routes.forEach((item, index) => {
|
routes.forEach((item, index) => {
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
minLon = item[0]
|
minLon = item[0];
|
||||||
maxLon = item[0]
|
maxLon = item[0];
|
||||||
minLat = item[1]
|
minLat = item[1];
|
||||||
maxLat = item[1]
|
maxLat = item[1];
|
||||||
} else {
|
} else {
|
||||||
minLon = Math.min(minLon, item[0])
|
minLon = Math.min(minLon, item[0]);
|
||||||
maxLon = Math.max(maxLon, item[0])
|
maxLon = Math.max(maxLon, item[0]);
|
||||||
minLat = Math.min(minLat, item[1])
|
minLat = Math.min(minLat, item[1]);
|
||||||
maxLat = Math.max(maxLat, item[1])
|
maxLat = Math.max(maxLat, item[1]);
|
||||||
}
|
}
|
||||||
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]))
|
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]));
|
||||||
})
|
});
|
||||||
let currentIndex = 0
|
if (positions.length === 0) return;
|
||||||
let currentPosition = positions[0].clone()
|
let currentIndex = 0;
|
||||||
|
let currentPosition = positions[0].clone();
|
||||||
if (isFinish) {
|
if (isFinish) {
|
||||||
currentIndex = positions.length - 1
|
currentIndex = positions.length - 1;
|
||||||
currentPosition = positions[currentIndex].clone()
|
currentPosition = positions[currentIndex].clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
let pathEntity = new DT.DirectionPath({
|
let pathEntity = new DT.DirectionPath({
|
||||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
id: `${key}~baseline`,
|
||||||
positions: positions,
|
positions: positions,
|
||||||
dataFit: false,
|
dataFit: false,
|
||||||
currentPosition: currentPosition,
|
currentPosition: currentPosition,
|
||||||
@ -1394,19 +1409,18 @@ export default {
|
|||||||
scale: 0.5,
|
scale: 0.5,
|
||||||
show: true,
|
show: true,
|
||||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||||
text: info.uavList[0].uavName,
|
text: uav.uavName,
|
||||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||||
disableDepthTestDistance: 10000
|
disableDepthTestDistance: 10000
|
||||||
},
|
},
|
||||||
billboardConfig: {
|
billboardConfig: {
|
||||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||||
disableDepthTestDistance: 10000
|
disableDepthTestDistance: 10000
|
||||||
// enableRotation: true
|
|
||||||
},
|
},
|
||||||
enableRepeatAdjust: false,
|
enableRepeatAdjust: false,
|
||||||
})
|
});
|
||||||
let pathEntity2 = new DT.DirectionPath({
|
let pathEntity2 = new DT.DirectionPath({
|
||||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
id: `${key}~baseline-radar`,
|
||||||
positions: positions,
|
positions: positions,
|
||||||
dataFit: false,
|
dataFit: false,
|
||||||
currentPosition: currentPosition,
|
currentPosition: currentPosition,
|
||||||
@ -1434,53 +1448,48 @@ export default {
|
|||||||
scale: 0.5,
|
scale: 0.5,
|
||||||
show: true,
|
show: true,
|
||||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||||
text: info.uavList[0].uavName,
|
text: uav.uavName,
|
||||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||||
disableDepthTestDistance: 10000
|
disableDepthTestDistance: 10000
|
||||||
},
|
},
|
||||||
billboardConfig: {
|
billboardConfig: {
|
||||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||||
disableDepthTestDistance: 10000
|
disableDepthTestDistance: 10000
|
||||||
// enableRotation: true
|
|
||||||
},
|
},
|
||||||
enableRepeatAdjust: false,
|
enableRepeatAdjust: false,
|
||||||
})
|
});
|
||||||
console.log('调用添加方法了吗')
|
lodLayer.add(pathEntity);
|
||||||
lodLayer.add(pathEntity)
|
radarLayer.add(pathEntity2);
|
||||||
radarLayer.add(pathEntity2)
|
renderTaskInfo[key] = {
|
||||||
|
|
||||||
// 添加图片
|
|
||||||
|
|
||||||
|
|
||||||
renderTaskInfo[`${info.id}-${info.uavList[0].uavId}`] = {
|
|
||||||
entity: pathEntity,
|
entity: pathEntity,
|
||||||
entity2: pathEntity2,
|
entity2: pathEntity2,
|
||||||
picture: {}
|
picture: {}
|
||||||
}
|
};
|
||||||
|
info.uavList.forEach(uavItem => {
|
||||||
info.uavList.forEach(uav => {
|
if (uavItem.payloadList && Array.isArray(uavItem.payloadList)) {
|
||||||
uav.payloadList.forEach(payload => {
|
uavItem.payloadList.forEach(payload => {
|
||||||
|
if (payload.imageList && Array.isArray(payload.imageList)) {
|
||||||
payload.imageList.forEach(image => {
|
payload.imageList.forEach(image => {
|
||||||
this.addMarkPicture2(image)
|
this.addMarkPicture2(image);
|
||||||
})
|
});
|
||||||
})
|
}
|
||||||
})
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
// 适当扩大视角范围
|
// 适当扩大视角范围
|
||||||
let lonDiff = (maxLon - minLon) / 2
|
let lonDiff = (maxLon - minLon) / 2;
|
||||||
let latDiff = (maxLat - minLat) / 2
|
let latDiff = (maxLat - minLat) / 2;
|
||||||
minLon -= lonDiff
|
minLon -= lonDiff;
|
||||||
maxLon += lonDiff
|
maxLon += lonDiff;
|
||||||
minLat -= latDiff
|
minLat -= latDiff;
|
||||||
maxLat += latDiff
|
maxLat += latDiff;
|
||||||
|
|
||||||
let boundingPosition = [
|
let boundingPosition = [
|
||||||
DT.Cesium.Cartesian3.fromDegrees(minLon, minLat),
|
DT.Cesium.Cartesian3.fromDegrees(minLon, minLat),
|
||||||
DT.Cesium.Cartesian3.fromDegrees(minLon, maxLat),
|
|
||||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, minLat),
|
DT.Cesium.Cartesian3.fromDegrees(maxLon, minLat),
|
||||||
|
DT.Cesium.Cartesian3.fromDegrees(minLon, maxLat),
|
||||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, maxLat),
|
DT.Cesium.Cartesian3.fromDegrees(maxLon, maxLat),
|
||||||
]
|
];
|
||||||
// console.log('最小最大', minLon, maxLon, minLat, maxLat)
|
viewer.cesiumViewer.camera.flyToBoundingSphere(DT.Cesium.BoundingSphere.fromPoints(boundingPosition), { duration: 0.1 });
|
||||||
viewer.cesiumViewer.camera.flyToBoundingSphere(DT.Cesium.BoundingSphere.fromPoints(boundingPosition), { duration: 0.1 })
|
|
||||||
},
|
},
|
||||||
removeJobLine(jobId, uavId) {
|
removeJobLine(jobId, uavId) {
|
||||||
let load = renderTaskInfo[`${jobId}-${uavId}`]
|
let load = renderTaskInfo[`${jobId}-${uavId}`]
|
||||||
@ -2633,7 +2642,7 @@ export default {
|
|||||||
stompClientInstance = stompClient
|
stompClientInstance = stompClient
|
||||||
},
|
},
|
||||||
handleWebsocketGmti(info) {
|
handleWebsocketGmti(info) {
|
||||||
console.log('Gmti信息', info.body)
|
console.log('Gmti信息', JSON.parse(info.body))
|
||||||
},
|
},
|
||||||
handleWebsocketStatus(info) {
|
handleWebsocketStatus(info) {
|
||||||
console.log('SAR状态信息', info.body)
|
console.log('SAR状态信息', info.body)
|
||||||
@ -2846,9 +2855,11 @@ export default {
|
|||||||
// }));
|
// }));
|
||||||
// if (this.tempAdd) return
|
// if (this.tempAdd) return
|
||||||
// this.tempAdd = true
|
// this.tempAdd = true
|
||||||
|
console.log(data, renderTaskInfo, 'tupiantupian');
|
||||||
|
|
||||||
let id = `${data.jobId}-${data.uavId}`
|
let id = `${data.jobId}-${data.uavId}`
|
||||||
let target = renderTaskInfo[id]
|
// let target = renderTaskInfo[id]
|
||||||
if (target) {
|
// if (target) {
|
||||||
let cby_bg_data = [
|
let cby_bg_data = [
|
||||||
data.left1Lon, data.left1Lat,
|
data.left1Lon, data.left1Lat,
|
||||||
data.left2Lon, data.left2Lat,
|
data.left2Lon, data.left2Lat,
|
||||||
@ -2859,14 +2870,11 @@ export default {
|
|||||||
id: `${data.jobId}-${data.uavId}~${data.fileId}-picture`,
|
id: `${data.jobId}-${data.uavId}~${data.fileId}-picture`,
|
||||||
name: '背景',
|
name: '背景',
|
||||||
polygon: {
|
polygon: {
|
||||||
// hierarchy: DT.Cesium.Cartesian3.fromDegreesArrayHeights(cby_bg_data),
|
|
||||||
hierarchy: DT.Cesium.Cartesian3.fromDegreesArray(cby_bg_data),
|
hierarchy: DT.Cesium.Cartesian3.fromDegreesArray(cby_bg_data),
|
||||||
perPositionHeight: true,
|
perPositionHeight: true,
|
||||||
material: new DT.Cesium.ImageMaterialProperty({
|
material: new DT.Cesium.ImageMaterialProperty({
|
||||||
image: window.config.imagePath + data.relativePath,
|
image: window.config.imagePath + data.relativePath,
|
||||||
// image: process.env.BASE_URL + 'static/img/ttt.tif',
|
}),
|
||||||
// image: process.env.BASE_URL + 'static/img/pic.png',
|
|
||||||
}),//new Cesium.Color(0.29, 0.85, 0.89, 0.5), //Cesium.Color.PALETURQUOISE.withAlpha(0.5),
|
|
||||||
outline: true,
|
outline: true,
|
||||||
outlineColor: DT.Cesium.Color.WHITE,
|
outlineColor: DT.Cesium.Color.WHITE,
|
||||||
outlineWidth: 2, //很多电脑当宽度>1时,没用
|
outlineWidth: 2, //很多电脑当宽度>1时,没用
|
||||||
@ -2911,11 +2919,11 @@ export default {
|
|||||||
markLineArr.push(markLine)
|
markLineArr.push(markLine)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
target.picture[`${data.fileId}-picture`] = {
|
// target.picture[`${data.fileId}-picture`] = {
|
||||||
pictureEntity: entity,
|
// pictureEntity: entity,
|
||||||
markArr: markLineArr
|
// markArr: markLineArr
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
addPictureHandle() {
|
addPictureHandle() {
|
||||||
console.log('双击事件执行了吗', new Date().getTime())
|
console.log('双击事件执行了吗', new Date().getTime())
|
||||||
@ -3074,6 +3082,10 @@ export default {
|
|||||||
//#endregion
|
//#endregion
|
||||||
// 打开状态和波形信息展示
|
// 打开状态和波形信息展示
|
||||||
openSarStatusDetail(data) {
|
openSarStatusDetail(data) {
|
||||||
|
this.detailUav.chart.data[0].data = []
|
||||||
|
this.detailUav.chart.data[1].data = []
|
||||||
|
this.detailUav.chart.data[2].data = []
|
||||||
|
this.detailUav.chart.data[3].data = []
|
||||||
this.detailUav.id = data.id
|
this.detailUav.id = data.id
|
||||||
this.detailUav.visible = true
|
this.detailUav.visible = true
|
||||||
},
|
},
|
||||||
|
|||||||
@ -57,9 +57,10 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background-color: $--color-black-3-alpha;
|
background-color: $--color-black-3-alpha;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $--color-black-3;
|
background-color: rgba(23, 69, 46, .4);
|
||||||
}
|
}
|
||||||
|
|
||||||
>p {
|
>p {
|
||||||
@ -98,6 +99,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.is-active {
|
||||||
|
width: calc(100% - 10px);
|
||||||
|
margin-left: 5px;
|
||||||
|
padding: 8px 15px 8px 10px;
|
||||||
|
background-color: rgba(23, 69, 46, .7) !important;
|
||||||
|
box-shadow: 0 0 15px 3px rgba(23, 69, 46, 0.5)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.task-list__large {
|
.task-list__large {
|
||||||
|
|||||||
@ -72,7 +72,10 @@
|
|||||||
<div
|
<div
|
||||||
v-for="(item, index) in taskList.data"
|
v-for="(item, index) in taskList.data"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="task-item"
|
:class="{
|
||||||
|
'task-item': true,
|
||||||
|
'is-active': detailUav.id === item.id,
|
||||||
|
}"
|
||||||
@click="openSarStatusDetail(item)"
|
@click="openSarStatusDetail(item)"
|
||||||
>
|
>
|
||||||
<div class="top-part">
|
<div class="top-part">
|
||||||
@ -114,12 +117,12 @@
|
|||||||
<p>无人机名称: {{ item.uav }}</p>
|
<p>无人机名称: {{ item.uav }}</p>
|
||||||
<p>雷达名称: {{ item.sar }}</p>
|
<p>雷达名称: {{ item.sar }}</p>
|
||||||
<p>开始时间:{{ item.beginTime }}</p>
|
<p>开始时间:{{ item.beginTime }}</p>
|
||||||
<div
|
<!-- <div
|
||||||
class="task-info"
|
class="task-info"
|
||||||
:style="{ color: dealStatusColor(item.statusName) }"
|
:style="{ color: dealStatusColor(item.statusName) }"
|
||||||
>
|
>
|
||||||
{{ item.statusName }}
|
{{ item.statusName }}
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-else class="task-empty">
|
<div v-else class="task-empty">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user