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);
|
||||
// 如果 OpenCV 使用的是标准 JNI (System.loadLibrary),可能还需要设置 java.library.path
|
||||
System.setProperty("java.library.path", opencvPath);
|
||||
System.setProperty("opencv.library.path", opencvPath);
|
||||
SpringApplication.run(SEApplication.class, args);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import lombok.Getter;
|
||||
public enum JmJobModeEnum implements CodeEnum<Integer> {
|
||||
|
||||
QUICK(1, "快速模式"),
|
||||
|
||||
CRUISE(2, "巡航模式"),
|
||||
CREATE(3, "航线创建")
|
||||
;
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.io.File;
|
||||
import java.net.ConnectException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -118,7 +119,22 @@ public class JmImageController {
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@ -60,7 +60,7 @@ public class JmUavStatusDTO {
|
||||
private String sarIp;
|
||||
|
||||
/** sar 图片亮度 */
|
||||
private Integer sarImageLight;
|
||||
private volatile Integer sarImageLight;
|
||||
|
||||
/**
|
||||
* 获取sar当前状态
|
||||
|
||||
@ -19,6 +19,8 @@ import org.springframework.stereotype.Service;
|
||||
import javax.annotation.PostConstruct;
|
||||
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.setImageBit(sar.getImageBit());
|
||||
param.setResolution(sar.getResolution());
|
||||
if (job.getMode().equals(CRUISE.getCode())) {
|
||||
param.setControlType(SarControlTypeEnum.TURNON);
|
||||
} else {
|
||||
param.setControlType(SarControlTypeEnum.AUTO);
|
||||
}
|
||||
double startAltitude = uav.getStartAltitude();
|
||||
// 高度加上起始高度
|
||||
Optional.ofNullable(param.getAirlineList())
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
const prodPlugins = []
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
prodPlugins.push('transform-remove-console')
|
||||
// prodPlugins.push('transform-remove-console')
|
||||
}
|
||||
module.exports = {
|
||||
presets: [[
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
"dependencies": {
|
||||
"@turf/turf": "^7.1.0",
|
||||
"axios": "^0.21.1",
|
||||
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||
"core-js": "^3.6.4",
|
||||
"element-ui": "^2.15.6",
|
||||
"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 =>
|
||||
req('post', '/sar/control/send', params)
|
||||
|
||||
|
||||
export const changeJobStatus = params =>
|
||||
req('post', '/sar/job/status/', params)
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
:data="colorStick.colors"
|
||||
></color-stick>
|
||||
<!-- 开关 -->
|
||||
<dt-loading :visible.sync="loading"></dt-loading>
|
||||
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
@modify="handleCommand('logout')"
|
||||
></change-password>
|
||||
|
||||
<dt-loading :visible.sync="loading"></dt-loading>
|
||||
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -35,9 +35,10 @@
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
background-color: $--color-black-3-alpha;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: $--color-black-3;
|
||||
background-color: rgba(23, 69, 46, .4);
|
||||
}
|
||||
|
||||
>p {
|
||||
|
||||
@ -29,11 +29,12 @@
|
||||
v-for="(item, index) in taskList.data"
|
||||
:key="item.id"
|
||||
class="task-item"
|
||||
@click="openTaskLineDetail(item)"
|
||||
>
|
||||
<div class="top-part">
|
||||
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
||||
<div class="top-part__left">
|
||||
<div class="execute-info" @click="openTaskLineDetail(item)">
|
||||
<div class="execute-info">
|
||||
<span
|
||||
class="execute-type-icon"
|
||||
:class="'execute-state-' + item.status"
|
||||
|
||||
@ -1128,8 +1128,15 @@ export default {
|
||||
// 测试
|
||||
// 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.visible = data.length ? true : false
|
||||
}
|
||||
|
||||
taskListResource = data
|
||||
this.taskList.data = list
|
||||
if (this.taskList.data.length) {
|
||||
@ -1322,51 +1329,59 @@ export default {
|
||||
}
|
||||
},
|
||||
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) {
|
||||
return
|
||||
return;
|
||||
}
|
||||
let routes = []
|
||||
let startHeight = 0
|
||||
let endHeight = 0
|
||||
info.uavList[0].airlineList.forEach((item, index) => {
|
||||
let routes = [];
|
||||
let startHeight = 0;
|
||||
let endHeight = 0;
|
||||
uav.airlineList.forEach((item, index) => {
|
||||
if (index === 0) {
|
||||
startHeight = item.flightStartHeight
|
||||
startHeight = item.startHeight;
|
||||
}
|
||||
if (index === info.uavList[0].airlineList.length - 1) {
|
||||
endHeight = item.flightEndHeight
|
||||
if (index === uav.airlineList.length - 1) {
|
||||
endHeight = item.endHeight;
|
||||
}
|
||||
routes.push([item.flightStartLon, item.flightStartLat, item.flightStartHeight])
|
||||
routes.push([item.flightEndLon, item.flightEndLat, item.flightEndHeight])
|
||||
})
|
||||
routes.unshift([info.uavList[0].startLon, info.uavList[0].startLat, startHeight])
|
||||
routes.push([info.uavList[0].endLon, info.uavList[0].endLat, endHeight])
|
||||
let positions = []
|
||||
let minLon, maxLon, minLat, maxLat
|
||||
routes.push([item.startLon, item.startLat, item.startHeight]);
|
||||
routes.push([item.endLon, item.endLat, item.endHeight]);
|
||||
});
|
||||
routes.unshift([uav.startLon, uav.startLat, startHeight]);
|
||||
routes.push([uav.endLon, uav.endLat, endHeight]);
|
||||
let positions = [];
|
||||
let minLon, maxLon, minLat, maxLat;
|
||||
routes.forEach((item, index) => {
|
||||
if (index === 0) {
|
||||
minLon = item[0]
|
||||
maxLon = item[0]
|
||||
minLat = item[1]
|
||||
maxLat = item[1]
|
||||
minLon = item[0];
|
||||
maxLon = item[0];
|
||||
minLat = item[1];
|
||||
maxLat = item[1];
|
||||
} else {
|
||||
minLon = Math.min(minLon, item[0])
|
||||
maxLon = Math.max(maxLon, item[0])
|
||||
minLat = Math.min(minLat, item[1])
|
||||
maxLat = Math.max(maxLat, item[1])
|
||||
minLon = Math.min(minLon, item[0]);
|
||||
maxLon = Math.max(maxLon, item[0]);
|
||||
minLat = Math.min(minLat, item[1]);
|
||||
maxLat = Math.max(maxLat, item[1]);
|
||||
}
|
||||
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]))
|
||||
})
|
||||
let currentIndex = 0
|
||||
let currentPosition = positions[0].clone()
|
||||
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]));
|
||||
});
|
||||
if (positions.length === 0) return;
|
||||
let currentIndex = 0;
|
||||
let currentPosition = positions[0].clone();
|
||||
if (isFinish) {
|
||||
currentIndex = positions.length - 1
|
||||
currentPosition = positions[currentIndex].clone()
|
||||
currentIndex = positions.length - 1;
|
||||
currentPosition = positions[currentIndex].clone();
|
||||
}
|
||||
|
||||
let pathEntity = new DT.DirectionPath({
|
||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
||||
id: `${key}~baseline`,
|
||||
positions: positions,
|
||||
dataFit: false,
|
||||
currentPosition: currentPosition,
|
||||
@ -1394,19 +1409,18 @@ export default {
|
||||
scale: 0.5,
|
||||
show: true,
|
||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||
text: info.uavList[0].uavName,
|
||||
text: uav.uavName,
|
||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||
disableDepthTestDistance: 10000
|
||||
},
|
||||
billboardConfig: {
|
||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||
disableDepthTestDistance: 10000
|
||||
// enableRotation: true
|
||||
},
|
||||
enableRepeatAdjust: false,
|
||||
})
|
||||
});
|
||||
let pathEntity2 = new DT.DirectionPath({
|
||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
||||
id: `${key}~baseline-radar`,
|
||||
positions: positions,
|
||||
dataFit: false,
|
||||
currentPosition: currentPosition,
|
||||
@ -1434,53 +1448,48 @@ export default {
|
||||
scale: 0.5,
|
||||
show: true,
|
||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||
text: info.uavList[0].uavName,
|
||||
text: uav.uavName,
|
||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||
disableDepthTestDistance: 10000
|
||||
},
|
||||
billboardConfig: {
|
||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||
disableDepthTestDistance: 10000
|
||||
// enableRotation: true
|
||||
},
|
||||
enableRepeatAdjust: false,
|
||||
})
|
||||
console.log('调用添加方法了吗')
|
||||
lodLayer.add(pathEntity)
|
||||
radarLayer.add(pathEntity2)
|
||||
|
||||
// 添加图片
|
||||
|
||||
|
||||
renderTaskInfo[`${info.id}-${info.uavList[0].uavId}`] = {
|
||||
});
|
||||
lodLayer.add(pathEntity);
|
||||
radarLayer.add(pathEntity2);
|
||||
renderTaskInfo[key] = {
|
||||
entity: pathEntity,
|
||||
entity2: pathEntity2,
|
||||
picture: {}
|
||||
}
|
||||
|
||||
info.uavList.forEach(uav => {
|
||||
uav.payloadList.forEach(payload => {
|
||||
};
|
||||
info.uavList.forEach(uavItem => {
|
||||
if (uavItem.payloadList && Array.isArray(uavItem.payloadList)) {
|
||||
uavItem.payloadList.forEach(payload => {
|
||||
if (payload.imageList && Array.isArray(payload.imageList)) {
|
||||
payload.imageList.forEach(image => {
|
||||
this.addMarkPicture2(image)
|
||||
})
|
||||
})
|
||||
})
|
||||
this.addMarkPicture2(image);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// 适当扩大视角范围
|
||||
let lonDiff = (maxLon - minLon) / 2
|
||||
let latDiff = (maxLat - minLat) / 2
|
||||
minLon -= lonDiff
|
||||
maxLon += lonDiff
|
||||
minLat -= latDiff
|
||||
maxLat += latDiff
|
||||
|
||||
let lonDiff = (maxLon - minLon) / 2;
|
||||
let latDiff = (maxLat - minLat) / 2;
|
||||
minLon -= lonDiff;
|
||||
maxLon += lonDiff;
|
||||
minLat -= latDiff;
|
||||
maxLat += latDiff;
|
||||
let boundingPosition = [
|
||||
DT.Cesium.Cartesian3.fromDegrees(minLon, minLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(minLon, maxLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, minLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(minLon, 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) {
|
||||
let load = renderTaskInfo[`${jobId}-${uavId}`]
|
||||
@ -2633,7 +2642,7 @@ export default {
|
||||
stompClientInstance = stompClient
|
||||
},
|
||||
handleWebsocketGmti(info) {
|
||||
console.log('Gmti信息', info.body)
|
||||
console.log('Gmti信息', JSON.parse(info.body))
|
||||
},
|
||||
handleWebsocketStatus(info) {
|
||||
console.log('SAR状态信息', info.body)
|
||||
@ -2846,9 +2855,11 @@ export default {
|
||||
// }));
|
||||
// if (this.tempAdd) return
|
||||
// this.tempAdd = true
|
||||
console.log(data, renderTaskInfo, 'tupiantupian');
|
||||
|
||||
let id = `${data.jobId}-${data.uavId}`
|
||||
let target = renderTaskInfo[id]
|
||||
if (target) {
|
||||
// let target = renderTaskInfo[id]
|
||||
// if (target) {
|
||||
let cby_bg_data = [
|
||||
data.left1Lon, data.left1Lat,
|
||||
data.left2Lon, data.left2Lat,
|
||||
@ -2859,14 +2870,11 @@ export default {
|
||||
id: `${data.jobId}-${data.uavId}~${data.fileId}-picture`,
|
||||
name: '背景',
|
||||
polygon: {
|
||||
// hierarchy: DT.Cesium.Cartesian3.fromDegreesArrayHeights(cby_bg_data),
|
||||
hierarchy: DT.Cesium.Cartesian3.fromDegreesArray(cby_bg_data),
|
||||
perPositionHeight: true,
|
||||
material: new DT.Cesium.ImageMaterialProperty({
|
||||
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,
|
||||
outlineColor: DT.Cesium.Color.WHITE,
|
||||
outlineWidth: 2, //很多电脑当宽度>1时,没用
|
||||
@ -2911,11 +2919,11 @@ export default {
|
||||
markLineArr.push(markLine)
|
||||
})
|
||||
}
|
||||
target.picture[`${data.fileId}-picture`] = {
|
||||
pictureEntity: entity,
|
||||
markArr: markLineArr
|
||||
}
|
||||
}
|
||||
// target.picture[`${data.fileId}-picture`] = {
|
||||
// pictureEntity: entity,
|
||||
// markArr: markLineArr
|
||||
// }
|
||||
// }
|
||||
},
|
||||
addPictureHandle() {
|
||||
console.log('双击事件执行了吗', new Date().getTime())
|
||||
@ -3074,6 +3082,10 @@ export default {
|
||||
//#endregion
|
||||
// 打开状态和波形信息展示
|
||||
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.visible = true
|
||||
},
|
||||
|
||||
@ -57,9 +57,10 @@
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
background-color: $--color-black-3-alpha;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: $--color-black-3;
|
||||
background-color: rgba(23, 69, 46, .4);
|
||||
}
|
||||
|
||||
>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 {
|
||||
|
||||
@ -72,7 +72,10 @@
|
||||
<div
|
||||
v-for="(item, index) in taskList.data"
|
||||
:key="item.id"
|
||||
class="task-item"
|
||||
:class="{
|
||||
'task-item': true,
|
||||
'is-active': detailUav.id === item.id,
|
||||
}"
|
||||
@click="openSarStatusDetail(item)"
|
||||
>
|
||||
<div class="top-part">
|
||||
@ -114,12 +117,12 @@
|
||||
<p>无人机名称: {{ item.uav }}</p>
|
||||
<p>雷达名称: {{ item.sar }}</p>
|
||||
<p>开始时间:{{ item.beginTime }}</p>
|
||||
<div
|
||||
<!-- <div
|
||||
class="task-info"
|
||||
:style="{ color: dealStatusColor(item.statusName) }"
|
||||
>
|
||||
{{ item.statusName }}
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
<div v-else class="task-empty">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user