diff --git a/plugin/index.ts b/plugin/index.ts new file mode 100644 index 0000000..d3cde35 --- /dev/null +++ b/plugin/index.ts @@ -0,0 +1,78 @@ +class LiveStreamPlugin { + constructor() { + console.log("LiveStreamPlugin constructor"); + } + initSDK(token: String) { + /** + * 初始化SDK。token:用国土调查云ak/sk生成的token, + * 分中心进行校验通过才能使用直播插件 + */ + console.log("LiveStreamPlugin initSDK", token); + } + setLiveStreamControl(divContainor: HTMLElement, deviceType: number) { + /** + * 设置视频直播画面控件,用于展示视频直播。 + * divContainor:div元素 + * deviceType: 0无人机 1 机场监控 + */ + console.log("LiveStreamPlugin setLiveStreamControl", divContainor, deviceType); + } + startLiveStreamCall(serialNum: String, deviceType: number) { + /** + * 开始视频直播 + * serialNum:无人机机场序列号 + * deviceType: 0无人机 1 机场监控 + */ + console.log("LiveStreamPlugin startLiveStreamCall", serialNum, deviceType); + } + endLiveStreamCall(deviceType: number) { + /** + * 结束视频直播 + * deviceType: 0无人机 1 机场监控 + */ + console.log("LiveStreamPlugin endLiveStreamCall", deviceType); + } + takePicture(callback) { + /** + * 拍照 + * callback:拍照完成回调方法, + * 参数如下: issuccess:状态 + * true/false; + * imgBlob:照片文件Blob; + * zpkzxx:照片扩展信息 + */ + console.log("LiveStreamPlugin takePicture", callback); + } + startVideoRecording() { + /** + * 开始录像 + */ + console.log("LiveStreamPlugin startVideoRecording"); + } + endVideoRecording(callback: Function) { + /** + * 结束录像 + * callback:录像完成回调方法, + * 参数如下: issuccess:状态 + * true/false; + */ + console.log("LiveStreamPlugin endVideoRecording", callback); + } + disposeSDK() { + /** + * 销毁SDK + */ + console.log("LiveStreamPlugin disposeSDK"); + } + getFlightTaskInfo(serialNum: String) { + /** + * 获取无人机任务信息 + * 参数:serialNum无人机机场序列号 + * 返回结果:FlightTaskInfo + */ + console.log("LiveStreamPlugin getFlightTaskInfo", serialNum); + } +} + + +export default LiveStreamPlugin; \ No newline at end of file diff --git a/plugin/package.json b/plugin/package.json new file mode 100644 index 0000000..25383c0 --- /dev/null +++ b/plugin/package.json @@ -0,0 +1,12 @@ +{ + "name": "@it/docklivestreamplugin", + "version": "1.0.0", + "description": "该插件js插件包。功能包含SDK初始化、设置视频直播画面控件、发起和结束直播、拍照、视频录制、资源释放。", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/public/login/login_background.png b/public/login/login_background.png index 6db7827..29a3904 100644 Binary files a/public/login/login_background.png and b/public/login/login_background.png differ diff --git a/public/operation/bgimg1.png b/public/operation/bgimg1.png new file mode 100644 index 0000000..f51bb57 Binary files /dev/null and b/public/operation/bgimg1.png differ diff --git a/public/operation/bgimg2.png b/public/operation/bgimg2.png new file mode 100644 index 0000000..7d4f400 Binary files /dev/null and b/public/operation/bgimg2.png differ diff --git a/public/operation/feixingqi.png b/public/operation/feixingqi.png new file mode 100644 index 0000000..dfb5f17 Binary files /dev/null and b/public/operation/feixingqi.png differ diff --git a/public/operation/jichang.png b/public/operation/jichang.png new file mode 100644 index 0000000..2b2f072 Binary files /dev/null and b/public/operation/jichang.png differ diff --git a/src/api/demo/mediaLibrary.ts b/src/api/demo/mediaLibrary.ts new file mode 100644 index 0000000..2094a87 --- /dev/null +++ b/src/api/demo/mediaLibrary.ts @@ -0,0 +1,40 @@ +import { defHttp } from '@/utils/http/axios'; +enum Api { + // 获取地图作业区域列表 + GetWorkAreaList = '/api/Manage/GetWorkAreaList', + // 添加地图作业区域 + AddWorkArea = '/api/Manage/AddWorkArea', + // 更新地图作业区域 + UpdateWorkArea = '/api/Manage/UpdateWorkArea', + // 删除地图作业区域 + DeleteWorkArea = '/api/Manage/DeleteWorkArea', +} + +// 获取地图作业区域列表 +export function GetWorkAreaList(params) { + return defHttp.get({ + url: Api.GetWorkAreaList, + params + }); +} +// 添加地图作业区域 +export function AddWorkArea(params) { + return defHttp.post({ + url: Api.AddWorkArea, + data:params + }); +} +// 更新地图作业区域 +export function UpdateWorkArea(params) { +return defHttp.post({ + url: Api.UpdateWorkArea, + data:params +}); +} +// 删除地图作业区域 +export function DeleteWorkArea(params) { +return defHttp.post({ + url: Api.DeleteWorkArea + '?id=' + params.id, + data:params +}); +} \ No newline at end of file diff --git a/src/assets/images/flightoperation/bottom-active.png b/src/assets/images/flightoperation/bottom-active.png new file mode 100644 index 0000000..4218688 Binary files /dev/null and b/src/assets/images/flightoperation/bottom-active.png differ diff --git a/src/assets/images/flightoperation/bottom.png b/src/assets/images/flightoperation/bottom.png index 4218688..db9ca0c 100644 Binary files a/src/assets/images/flightoperation/bottom.png and b/src/assets/images/flightoperation/bottom.png differ diff --git a/src/assets/images/flightoperation/left-active.png b/src/assets/images/flightoperation/left-active.png new file mode 100644 index 0000000..6f19daf Binary files /dev/null and b/src/assets/images/flightoperation/left-active.png differ diff --git a/src/assets/images/flightoperation/left.png b/src/assets/images/flightoperation/left.png index 6f19daf..d306e8f 100644 Binary files a/src/assets/images/flightoperation/left.png and b/src/assets/images/flightoperation/left.png differ diff --git a/src/assets/images/flightoperation/right-active.png b/src/assets/images/flightoperation/right-active.png new file mode 100644 index 0000000..7bf597e Binary files /dev/null and b/src/assets/images/flightoperation/right-active.png differ diff --git a/src/assets/images/flightoperation/right.png b/src/assets/images/flightoperation/right.png index 7bf597e..91f9cec 100644 Binary files a/src/assets/images/flightoperation/right.png and b/src/assets/images/flightoperation/right.png differ diff --git a/src/assets/images/flightoperation/top-active.png b/src/assets/images/flightoperation/top-active.png new file mode 100644 index 0000000..9276e6b Binary files /dev/null and b/src/assets/images/flightoperation/top-active.png differ diff --git a/src/assets/images/flightoperation/top.png b/src/assets/images/flightoperation/top.png index 9276e6b..dd2dbc9 100644 Binary files a/src/assets/images/flightoperation/top.png and b/src/assets/images/flightoperation/top.png differ diff --git a/src/components/MapboxMaps/src/WktGeojsonTransform.ts b/src/components/MapboxMaps/src/WktGeojsonTransform.ts index 3721c9b..16a8fcd 100644 --- a/src/components/MapboxMaps/src/WktGeojsonTransform.ts +++ b/src/components/MapboxMaps/src/WktGeojsonTransform.ts @@ -3,20 +3,20 @@ import { wktToGeoJSON,geojsonToWKT } from "@terraformer/wkt" const wktCollectionToGeoJson = (wktStr) => { - console.log("wktStr",wktStr); + // console.log("wktStr",wktStr); let geojson = WKT.parse(wktStr); - console.log("geojson",geojson); + // console.log("geojson",geojson); } const WktToGeojson = (wktData)=> { // return WKT.parse(wktData) - console.log("wktData",wktData); + // console.log("wktData",wktData); return wktToGeoJSON(wktData); } const GeojsonToWkt = (geojsonData)=> { // return WKT.convert(geojsonData) - console.log("geojsonData",geojsonData) + // console.log("geojsonData",geojsonData) return geojsonToWKT(geojsonData) } diff --git a/src/views/demo/system/mediaLibrary/path/index.vue b/src/views/demo/system/mediaLibrary/path/index.vue index 30486ff..940efaf 100644 --- a/src/views/demo/system/mediaLibrary/path/index.vue +++ b/src/views/demo/system/mediaLibrary/path/index.vue @@ -24,6 +24,7 @@ @setNowShowMarkData="setNowShowMarkData" @setNowShowImageData="setNowShowImageData" @setNowShowAreaData="setNowShowAreaData" + @setAllAreaData="setAllAreaData" @deleteMark="deleteMark" @deleteArea="deleteArea" /> @@ -41,6 +42,9 @@ @setNowShowMarkData="setNowShowMarkData" @setNowShowImageData="setNowShowImageData" @setNowShowAreaData="setNowShowAreaData" + @setAllMarkData="setAllMarkData" + @setAllImageData="setAllImageData" + @setAllAreaData="setAllAreaData" @closePathImageInfo="closePathImageInfo" /> @@ -85,6 +89,13 @@ import markJson from './json/mark.json'; import areaJson from './json/area.json'; import imageJson from './json/image.json'; + import { + GetWorkAreaList, + AddWorkArea, + UpdateWorkArea, + DeleteWorkArea, + } from '@/api/demo/mediaLibrary'; + import { WktToGeojson, GeojsonToWkt } from '@/components/MapboxMaps/src/WktGeojsonTransform'; import { useMessage } from '@/hooks/web/useMessage'; const { createMessage, createConfirm } = useMessage(); @@ -166,28 +177,41 @@ function closePathAreaInfo() { areaInfoShow.value = false; nowShowAreaData.value = {}; + pathMapRef.value.areaRestoreDefault(); } // 当前展示的区域信息 const nowShowAreaData = ref(); - const allAreaDataList = ref(areaJson); + const allAreaDataList: any = ref(areaJson); // 设置当前展示的区域信息 - function setNowShowAreaData(value) { + function setNowShowAreaData(value, restore = true) { if (value.id) { areaInfoShow.value = true; } else { areaInfoShow.value = false; } + if (restore) { + pathMapRef.value.areaRestoreDefault(); + } nowShowAreaData.value = value; } + // 刷新区域信息 + function setAllAreaData() { + // 查询地图工作区域 + getWorkAreaList(); + } // 删除区域 - function deleteArea(value) { - allAreaDataList.value = cloneDeep(allAreaDataList.value).filter((item) => item.id != value.id); - areaInfoShow.value = false; - nowShowAreaData.value = {}; - setTimeout(() => { - pathLeftMenuRef.value.updateShowMenuInfoList('地图作业区域'); - }, 50); + async function deleteArea(value) { + DeleteWorkArea({ + id: value.id, + }).then((result) => { + if (result) { + // 刷新 + getWorkAreaList(); + areaInfoShow.value = false; + nowShowAreaData.value = {}; + } + }); } // 右侧图片是否显示---------------------------------------------------- @@ -222,7 +246,49 @@ pathMapRef.value.handlerLocation([position.lng, position.lat]); } + // 查询地图工作区域 + async function getWorkAreaList() { + allAreaDataList.value = await GetWorkAreaList({ workspaceid: 1 }); + allAreaDataList.value.forEach((area, index) => { + let geomjson = WktToGeojson(area.geom); + area = { + ...area, + properties: JSON.parse(area.properties), + geomtype: getGeomType(area), + coordinates: geomjson.coordinates, + }; + allAreaDataList.value[index] = area; + }); + setTimeout(() => { + pathLeftMenuRef.value.updateShowMenuInfoList('地图作业区域'); + }, 50); + } + + // 获取WKT类型 + function getGeomType(area) { + let geom = area.geom; + let radiusFlag = area.properties.indexOf('radius') > -1 ? true : false; + // 点 + if (geom.indexOf('POINT Z') > -1 && !radiusFlag) { + return 'Point'; + } + // 线 + if (geom.indexOf('LINESTRING Z') > -1 && !radiusFlag) { + return 'Polyline'; + } + // 多边形 + if (geom.indexOf('MULTIPOLYGON Z') > -1 && !radiusFlag) { + return 'Polygon'; + } + // 圈 + if (geom.indexOf('MULTIPOLYGON Z') > -1 && radiusFlag) { + return 'Circle'; + } + } + onMounted(() => { + // 查询地图工作区域 + getWorkAreaList(); nowShowMarkData.value = markJson[1]; }); diff --git a/src/views/demo/system/mediaLibrary/path/pathAreaInfo.vue b/src/views/demo/system/mediaLibrary/path/pathAreaInfo.vue index dc63429..641e390 100644 --- a/src/views/demo/system/mediaLibrary/path/pathAreaInfo.vue +++ b/src/views/demo/system/mediaLibrary/path/pathAreaInfo.vue @@ -6,13 +6,13 @@
- +
- +
@@ -73,7 +71,7 @@
- {{ props.nowShowAreaData.status == 'enable' ? '已启用' : '已禁用' }} + {{ props.nowShowAreaData.state == 0 ? '已启用' : '已禁用' }}
@@ -81,33 +79,29 @@
水平距离
-
{{ distance.toFixed(1) }}m
+
{{ nowAreaData.length.toFixed(1) }}m
水平面积
-
{{ area.toFixed(2) }}㎡
+
{{ nowAreaData.area.toFixed(2) }}㎡
- +
水平周长
- -
{{ distance2 }}m
+ +
{{ nowAreaData.length.toFixed(1) }}m
- +
半径
- +
- +
@@ -120,19 +114,19 @@
- {{ nowAreaData.content.properties.width }} + {{ nowAreaData.properties.width }}
@@ -153,7 +147,7 @@
绘制者
-
{{ props.nowShowAreaData.created_nickname }}
+
{{ props.nowShowAreaData.createdUser }}
@@ -182,7 +176,15 @@ MinusOutlined, PlusOutlined, } from '@ant-design/icons-vue'; + import { + GetWorkAreaList, + AddWorkArea, + UpdateWorkArea, + DeleteWorkArea, + } from '@/api/demo/mediaLibrary'; import { cloneDeep } from 'lodash-es'; + import { useMessage } from '@/hooks/web/useMessage'; + const { createMessage, createConfirm } = useMessage(); const props = defineProps(['allAreaDataList', 'nowShowAreaData']); const emits = defineEmits([ @@ -193,6 +195,16 @@ ]); const nowAreaData: any = ref(props.nowShowAreaData); + watch( + () => nowAreaData.value, + () => { + emits('setNowShowAreaData', nowAreaData.value, false); + }, + { + deep: true, + }, + ); + // 宽度---------------------------------------------------------------------- const numInputFlag = ref(false); const focusInputRef = ref(); @@ -209,40 +221,40 @@ function blurInput() { numInputFlag.value = false; // 检测是否是数字 - if (/^-?\d+(\.\d+)?$/.test(nowAreaData.value.content.properties.width.toString())) { - if (nowAreaData.value.content.properties.width > 100) { + if (/^-?\d+(\.\d+)?$/.test(nowAreaData.value.properties.width.toString())) { + if (nowAreaData.value.properties.width > 100) { // 不能大于100 - nowAreaData.value.content.properties.width = 100; - } else if (nowAreaData.value.content.properties.width < 10) { + nowAreaData.value.properties.width = 100; + } else if (nowAreaData.value.properties.width < 10) { // 不能小于10 - nowAreaData.value.content.properties.width = 10; + nowAreaData.value.properties.width = 10; } else { // 保存小数点后两位 - let newnum = cloneDeep(nowAreaData.value.content.properties.width); - nowAreaData.value.content.properties.width = parseFloat(parseFloat(newnum).toFixed(2)); + let newnum = cloneDeep(nowAreaData.value.properties.width); + nowAreaData.value.properties.width = parseFloat(parseFloat(newnum).toFixed(2)); } } else { // 不是数字 - nowAreaData.value.content.properties.width = 10; + nowAreaData.value.properties.width = 10; } } // 宽度-减少 function removeRecordNum() { - let newnum = cloneDeep(nowAreaData.value.content.properties.width); + let newnum = cloneDeep(nowAreaData.value.properties.width); if (newnum == 10) { return; } newnum -= 5; - nowAreaData.value.content.properties.width = parseFloat(newnum.toFixed(2)); + nowAreaData.value.properties.width = parseFloat(newnum.toFixed(2)); } // 宽度-增加 function addRecordNum() { - let newnum = cloneDeep(nowAreaData.value.content.properties.width); + let newnum = cloneDeep(nowAreaData.value.properties.width); if (newnum == 100) { return; } newnum += 5; - nowAreaData.value.content.properties.width = parseFloat(newnum.toFixed(2)); + nowAreaData.value.properties.width = parseFloat(newnum.toFixed(2)); } // 关闭 @@ -251,52 +263,28 @@ } // 移动到中心位置 function handlerLocation() { - let coordinates = props.nowShowAreaData.content.geometry.coordinates; - if (props.nowShowAreaData.content.geometry.type == 'Circle') { + if (props.nowShowAreaData.geomtype == 'Circle') { emits('handlerLocation', { - lng: coordinates[0], - lat: coordinates[1], + lng: props.nowShowAreaData.properties.centerPoint[0], + lat: props.nowShowAreaData.properties.centerPoint[1], }); } else { emits('handlerLocation', { - lng: coordinates[0][0][0], - lat: coordinates[0][0][1], + lng: props.nowShowAreaData.properties.centerPoint[0], + lat: props.nowShowAreaData.properties.centerPoint[1], }); } } // 删除此区域 function deleteArea() { - emits('deleteArea', props.nowShowAreaData); - } - - // 水平距离 - const distance = ref(0); - async function getDistance() { - distance.value = mars3d.MeasureUtil.getSurfaceDistance( - props.nowShowAreaData.content.geometry.coordinates[0], - ); - } - - // 水平面积 - const area = ref(0); - async function getArea() { - if (props.nowShowAreaData.content.geometry.type == 'Circle') { - let radius = props.nowShowAreaData.content.geometry.radius; - area.value = Math.PI * radius * radius; - } else { - area.value = mars3d.MeasureUtil.getSurfaceArea( - props.nowShowAreaData.content.geometry.coordinates[0], - ); - } - } - - // 水平周长 - const distance2 = ref(0); - async function getDistance2() { - distance.value = mars3d.MeasureUtil.getDistance( - props.nowShowAreaData.content.geometry.coordinates[0], - true, - ); + createConfirm({ + iconType: 'info', + title: '提示', + content: '将会影响到项目内设备的作业范围,是否删除该区域?', + onOk: async () => { + emits('deleteArea', props.nowShowAreaData); + }, + }); } watch( @@ -304,14 +292,14 @@ () => { nowAreaData.value = props.nowShowAreaData; // 水平面积 - getArea(); + // getArea(); if (props.nowShowAreaData.type == 'noland') { // 水平距离 - getDistance(); + // getDistance(); } - if (props.nowShowAreaData.content.geometry.type == 'Polygon') { + if (props.nowShowAreaData.geomtype == 'Polygon') { // 水平距离 - getDistance2(); + // getDistance(); } }, { diff --git a/src/views/demo/system/mediaLibrary/path/pathLeftMenu.vue b/src/views/demo/system/mediaLibrary/path/pathLeftMenu.vue index 209f35f..df01a12 100644 --- a/src/views/demo/system/mediaLibrary/path/pathLeftMenu.vue +++ b/src/views/demo/system/mediaLibrary/path/pathLeftMenu.vue @@ -89,28 +89,17 @@ 全部禁降区 全部状态 - 已启用 - 已禁用 + 已启用 + 已禁用
-
+
- - - - + + + +
- - + +
{{ show.name }}
@@ -260,33 +260,35 @@ props.nowShowAreaData && props.nowShowAreaData.id == show.id ? '2px solid #2D8CF0' : '', - background: - props.nowShowAreaData && show.status == 'enable' ? '#3c3c3c' : '#3c3c3c55', + background: props.nowShowAreaData && show.state == 0 ? '#3c3c3c' : '#3c3c3c55', }" > -
- {{ show.name }} -
+ + +
+ {{ show.name }} +
+
- +
@@ -296,27 +298,27 @@ :style="{ width: '13px', height: '13px', - outline: `2px solid ${show.content.properties.color}`, + outline: `2px solid #00FF00`, 'margin-right': '6px', - 'border-radius': show.content.geometry.type == 'Circle' ? '6.5px' : '0px', + 'border-radius': show.geomtype == 'Circle' ? '6.5px' : '0px', }" /> - +
{{ getType(show.type) }}
-
+
-
+
diff --git a/src/views/demo/workmanagement/device/Airport/DeviceOperation/index.vue b/src/views/demo/workmanagement/device/Airport/DeviceOperation/index.vue new file mode 100644 index 0000000..af50823 --- /dev/null +++ b/src/views/demo/workmanagement/device/Airport/DeviceOperation/index.vue @@ -0,0 +1,60 @@ + + + + + + \ No newline at end of file diff --git a/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/FeiXingQi.vue b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/FeiXingQi.vue new file mode 100644 index 0000000..5d02338 --- /dev/null +++ b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/FeiXingQi.vue @@ -0,0 +1,401 @@ + + + + + + \ No newline at end of file diff --git a/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/JiChang.vue b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/JiChang.vue new file mode 100644 index 0000000..918f251 --- /dev/null +++ b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/JiChang.vue @@ -0,0 +1,310 @@ + + + + + + \ No newline at end of file diff --git a/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/YuanChengTiaoShi.vue b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/YuanChengTiaoShi.vue new file mode 100644 index 0000000..2bb79eb --- /dev/null +++ b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/YuanChengTiaoShi.vue @@ -0,0 +1,477 @@ + + + + + + \ No newline at end of file diff --git a/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/util.ts b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/util.ts new file mode 100644 index 0000000..da299a0 --- /dev/null +++ b/src/views/demo/workmanagement/device/Airport/DeviceOperation/widget/util.ts @@ -0,0 +1,112 @@ +export const modeCodeOptions = { + 0: '空闲中', + 1: '现场调试', + 2: '远程调试', + 3: '固件升级中', + 4: '作业中', + 5: '待标定', +} +export const deviceOnlineStatusOptions = { + 0: '关机', + 1: '开机' +} +export const coverStateOptions = { + 0: '关闭', + 1: '打开', + 2: '半开', + 3: '舱盖状态异常', +} +export const airConditionerStateOptions = { + 0: '空闲模式', + 1: '制冷模式', + 2: '制热模式', + 3: '除湿模式', + 4: '制冷退出模式', + 5: '制热退出模式', + 6: '除湿退出模式', + 7: '制冷准备模式', + 8: '制热准备模式', + 9: '除湿准备模式', + 10: '风冷准备中', + 11: '风冷中', + 12: '风冷退出中', + 13: '除雾准备中', + 14: '除雾中', + 15: '除雾退出中', +} +export const silentModeOptions = { + 0: '非静音模式', + 1: '静音模式', +} +export const alarmStateOptions = { + 0: '关闭', + 1: '开启', +} +export const droneChargeStateOptions = { + 0: '空闲', + 1: '充电中', +} +export const fourgLinkStateOptions = { + 0: '断开', + 1: '连接', +} +export const linkWorkmodeOptions = { + 0: 'SDR 模式', + 1: '4G 融合模式', +} +export const sourceTypeOptions = { + 0: '未标定', + 1: '自收敛标定', + 2: '手动标定', + 3: '网络RTK标定', +} +export const qualityOptions = { + 0: '无信号', + 1: '差', + 2: '较差', + 3: '一般', + 4: '较好', + 5: '好', +} +export const isConfiguredOptions = { + 0: '未设置', + 1: '已设置', +} +export const rainfallOptions = { + 0: '无雨', + 1: '小雨', + 2: '中雨', + 3: '大雨', +} +export const isFixedOptions = { + 0: '未开始', + 1: '收敛中', + 2: '收敛成功', + 3: '收敛失败', +} +export const nightLightsStateOptions = { + 0: '关闭', + 1: '打开', +} +export const childModeCodeOptions = { + 0: '待机', + 1: '起飞准备', + 2: '起飞准备完毕', + 3: '手动飞行', + 4: '自动起飞', + 5: '航线飞行', + 6: '全景拍照', + 7: '智能跟随', + 8: 'ADS-B 躲避', + 9: '自动返航', + 10: '自动降落', + 11: '强制降落', + 12: '三桨叶降落', + 13: '升级中', + 14: '未连接', + 15: 'APAS', + 16: '虚拟摇杆状态', + 17: '指令飞行', + 18: '空中 RTK 收敛模式', + 19: '机场选址中', +} \ No newline at end of file diff --git a/src/views/demo/workmanagement/device/Airport/index.vue b/src/views/demo/workmanagement/device/Airport/index.vue index ec7bca6..aba2871 100644 --- a/src/views/demo/workmanagement/device/Airport/index.vue +++ b/src/views/demo/workmanagement/device/Airport/index.vue @@ -57,8 +57,10 @@ -