From 638881a32b8701e43065a6ad8bf175fdda0c92fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BB=95=E5=B5=A9?= <17854119262@163.com> Date: Fri, 8 Aug 2025 14:11:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AA=92=E4=BD=93=E5=BA=93-=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E6=96=B0=E6=96=87=E4=BB=B6=E5=A4=B9=EF=BC=8C=E9=A1=B5?= =?UTF-8?q?=E7=A0=81=E5=9B=9E=E5=88=B01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/demo/system/mediaLibrary/index.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/views/demo/system/mediaLibrary/index.vue b/src/views/demo/system/mediaLibrary/index.vue index 9210fcd..277d915 100644 --- a/src/views/demo/system/mediaLibrary/index.vue +++ b/src/views/demo/system/mediaLibrary/index.vue @@ -495,7 +495,15 @@ const searchParams = ref(); const [ registerTable, - { reload, getDataSource, getSelectRows, setSelectedRows, clearSelectedRowKeys }, + { + reload, + getDataSource, + getSelectRows, + setSelectedRows, + clearSelectedRowKeys, + getPaginationRef, + setPagination, + }, ] = useTable({ api: GetMediaFile, rowKey: 'id', @@ -585,6 +593,11 @@ nowParentKey.value = f.id; floders.value = floders.value.splice(0, index + 1); clearSelectedRowKeys(); + if (current) { + setPagination({ + current: current, + }); + } reload().then((res) => { showTableData.value = res; }); @@ -719,6 +732,7 @@ // 目前展示图片的列表 const previewRecordList: any = ref([]); // 查看-打开这个文件夹或者展示这个图片 + let current = 1; async function lookRecord(record) { // 展示这个图片后者视频 if (record.objectKey) { @@ -751,6 +765,8 @@ id: nowParentKey.value, name: record.name, }); + current = getPaginationRef().current; + setPagination({ current: 1 }); reload().then((res) => { showTableData.value = res; }); From ab2124c65420dbd5af770e0638ecf8bcf528f53f Mon Sep 17 00:00:00 2001 From: helloxujingliang <3225043@qq.com> Date: Fri, 8 Aug 2025 17:13:31 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=88=AA=E7=82=B9?= =?UTF-8?q?=E8=88=AA=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../airlinemanagement/index.vue | 279 +++----------- .../actionComponents/gimbalRotate.vue | 13 +- .../workplan/actionComponents/hover.vue | 5 + .../actionComponents/multipleTiming.vue | 55 +++ .../workplan/actionComponents/rotateYaw.vue | 17 +- .../workplan/components/airLineList.vue | 6 +- .../workplan/components/airPoint.vue | 355 +++++++++++------- .../workplan/components/airPointConfig.vue | 17 +- .../workplan/components/airPolygon.vue | 5 +- .../workplan/components/createWorkPlan.vue | 4 +- .../workplan/components/map.vue | 216 +++++++---- .../workplan/components/multipleDistance.vue | 55 +++ .../workplan/components/planList.vue | 2 - .../workplan/lib/calculateAirLine.ts | 15 +- .../{action.ts => actionConfig.ts} | 2 +- .../workplan/waylineConfig/mapping2dConfig.ts | 176 +++++++++ .../{index.ts => waylineParamsOptions.ts} | 12 + .../workplan/waylineConfig/waypointConfig.ts | 92 +++++ 18 files changed, 867 insertions(+), 459 deletions(-) create mode 100644 src/views/demo/workmanagement/workplan/actionComponents/multipleTiming.vue create mode 100644 src/views/demo/workmanagement/workplan/components/multipleDistance.vue rename src/views/demo/workmanagement/workplan/waylineConfig/{action.ts => actionConfig.ts} (99%) create mode 100644 src/views/demo/workmanagement/workplan/waylineConfig/mapping2dConfig.ts rename src/views/demo/workmanagement/workplan/waylineConfig/{index.ts => waylineParamsOptions.ts} (89%) create mode 100644 src/views/demo/workmanagement/workplan/waylineConfig/waypointConfig.ts diff --git a/src/views/demo/workmanagement/airlinemanagement/index.vue b/src/views/demo/workmanagement/airlinemanagement/index.vue index 9551ad7..6fd2314 100644 --- a/src/views/demo/workmanagement/airlinemanagement/index.vue +++ b/src/views/demo/workmanagement/airlinemanagement/index.vue @@ -36,6 +36,8 @@ import {ref,watch,onMounted,defineEmits} from 'vue'; import airLineList from '../workplan/components/airLineList.vue'; import createAirLine from '../workplan/components/createAirLine.vue' import importAirLine from '../workplan/components/importAirLine.vue' + + import Map from '../workplan/components/map.vue' import AirPolygon from './components/airPolygon.vue'; import {getAirLine} from '@/api/sys/workplan'; @@ -47,10 +49,19 @@ import { XMLParser, XMLBuilder } from 'fast-xml-parser'; const emits = defineEmits(["updateAirLineLise"]) -// 模式 add edit detail +// 当前目录 +const currentFolder = ref(null); + +// 更新当前目录 +const setCurrentFolder = (folder)=>{ + currentFolder.value = folder; + importAirLineShow.value = true; +} + +// 航线模式 add edit detail const editMode = ref("add"); -// airLine form +// 航线表单数据 const airLineForm = ref({ "id": null, "airLineName": null, @@ -74,197 +85,11 @@ const airLineForm = ref({ // "lineData":null, }); -// template.kml -const templateKmlConfig = ref({ - "author": 17861857725, - "createTime": 1749689844431, - "updateTime": 1753241338101, - "missionConfig": { - "flyToWaylineMode": "pointToPoint", - "finishAction": "goHome", - "exitOnRCLost": "goContinue", - "executeRCLostAction": "goBack", - "takeOffSecurityHeight": 20, - "takeOffRefPoint": "", - "takeOffRefPointAGLHeight": 4.169064385, - "globalTransitionalSpeed": 15, - "globalRTHHeight": 100, - "droneInfo": { - "droneEnumValue": 100, - "droneSubEnumValue": 1 - }, - "autoRerouteInfo": { - "transitionalAutoRerouteMode": 1, - "missionAutoRerouteMode": 1 - }, - "waylineAvoidLimitAreaMode": 0, - "payloadInfo": { - "payloadEnumValue": 99, - "payloadSubEnumValue": 0, - "payloadPositionIndex": 0 - } - }, - "Folder": { - "templateType": "mapping2d", - "templateId": 0, - "waylineCoordinateSysParam": { - "coordinateMode": "WGS84", - "heightMode": "EGM96", - "globalShootHeight": 90, - "surfaceFollowModeEnable": 1, - "isRealtimeSurfaceFollow": 0, - "surfaceRelativeHeight": 90, - "dsmFile": "wpmz/res/dsm/wgs84_ASTGTMV003_N35E118_dem_7.tif" - }, - "autoFlightSpeed": 12.7, - "Placemark": { - "caliFlightEnable": 0, - "elevationOptimizeEnable": 1, - "smartObliqueEnable": 0, - "quickOrthoMappingEnable": 0, - "facadeWaylineEnable": 0, - "isLookAtSceneSet": 0, - "shootType": "time", - "direction": 83, - "margin": 0, - "efficiencyFlightModeEnable": 0, - "overlap": { - "orthoCameraOverlapH": 80, - "orthoCameraOverlapW": 70, - "inclinedCameraOverlapH": 80, - "inclinedCameraOverlapW": 70 - }, - "Polygon": { - "outerBoundaryIs": { - "LinearRing": { - "coordinates": "118.293794766158,35.1353688096117,0\n 118.295429169407,35.1353304409052,0\n 118.295487507293,35.1332925168381,0\n 118.293672196844,35.1331918267775,0" - } - } - }, - "ellipsoidHeight": 90, - "height": 90 - }, - "payloadParam": { - "payloadPositionIndex": 0, - "focusMode": "firstPoint", - "meteringMode": "average", - "returnMode": "singleReturnStrongest", - "samplingRate": 240000, - "scanningMode": "repetitive", - "imageFormat": "visable", - "photoSize": "" - } - } - }) +// 航线template.kml +const templateKmlConfig = ref({}) -// wayline.wpml -const waylineWpmlConfig = ref({ - "missionConfig": { - "flyToWaylineMode": "pointToPoint", - "finishAction": "goHome", - "exitOnRCLost": "goContinue", - "executeRCLostAction": "goBack", - "takeOffSecurityHeight": 20, - "globalTransitionalSpeed": 15, - "globalRTHHeight": 100, - "droneInfo": { - "droneEnumValue": 100, - "droneSubEnumValue": 1 - }, - "autoRerouteInfo": { - "transitionalAutoRerouteMode": 1, - "missionAutoRerouteMode": 1 - }, - "waylineAvoidLimitAreaMode": 0, - "payloadInfo": { - "payloadEnumValue": 99, - "payloadSubEnumValue": 0, - "payloadPositionIndex": 0 - } - }, - "Folder": { - "templateId": 0, - "executeHeightMode": "WGS84", - "waylineId": 0, - "distance": 1259.17163085938, - "duration": 145.652896165848, - "autoFlightSpeed": 12.7, - "startActionGroup": { - "action": [ - { - "actionId": 0, - "actionActuatorFunc": "gimbalRotate", - "actionActuatorFuncParam": { - "gimbalHeadingYawBase": "aircraft", - "gimbalRotateMode": "absoluteAngle", - "gimbalPitchRotateEnable": 1, - "gimbalPitchRotateAngle": -90, - "gimbalRollRotateEnable": 0, - "gimbalRollRotateAngle": 0, - "gimbalYawRotateEnable": 1, - "gimbalYawRotateAngle": 0, - "gimbalRotateTimeEnable": 0, - "gimbalRotateTime": 10, - "payloadPositionIndex": 0 - } - }, - { - "actionId": 1, - "actionActuatorFunc": "hover", - "actionActuatorFuncParam": { - "hoverTime": 0.5 - } - }, - { - "actionId": 2, - "actionActuatorFunc": "setFocusType", - "actionActuatorFuncParam": { - "cameraFocusType": "manual", - "payloadPositionIndex": 0 - } - }, - { - "actionId": 3, - "actionActuatorFunc": "focus", - "actionActuatorFuncParam": { - "focusX": 0, - "focusY": 0, - "focusRegionWidth": 0, - "focusRegionHeight": 0, - "isPointFocus": 0, - "isInfiniteFocus": 1, - "payloadPositionIndex": 0, - "isCalibrationFocus": 0 - } - }, - { - "actionId": 4, - "actionActuatorFunc": "hover", - "actionActuatorFuncParam": { - "hoverTime": 1 - } - } - ] - }, - "Placemark": [] - } - }) - -// 当前目录 -const currentFolder = ref(null); - -// 更新当前目录 -const setCurrentFolder = (folder)=>{ - currentFolder.value = folder; - importAirLineShow.value = true; -} - - -const flyToTherePosition = ref({ - lng:null, - lat:null, - alt:null, -}) +// 航线wayline.wpml +const waylineWpmlConfig = ref({}) const flyToThere = (e)=>{ @@ -278,22 +103,6 @@ const aircraftShow = ref(false); const createAirLineShow = ref(false); const importAirLineShow = ref(false); -const selectAriLine = ()=> { - ariLineShow.value = true; - aircraftShow.value = false; -} - -const selectAircraft = ()=>{ - aircraftShow.value = true; - ariLineShow.value = false; -} - -const cancleCraete = ()=>{ - workPlanFormShow.value = false; - ariLineShow.value = false; - aircraftShow.value = false; - planListShow.value = true; -} const checkedAriLine = ref({}); @@ -306,23 +115,11 @@ const checkAriLine = (item)=>{ const checkedDronePort = ref({}); -const checkDronePort = (item)=>{ - if(item){ - aircraftShow.value = false; - checkedDronePort.value = item; - } -} - const formData = ref(null); -const toCreateWorkPlan = (data)=> { - formData.value = data; - planListShow.value = false; - workPlanFormShow.value = true; -} -// 创建航线 const globalFolder = ref(null); + const handlerCreateAirLine = (folder)=>{ globalFolder.value = folder; createAirLineShow.value = true; @@ -337,21 +134,33 @@ const cancleImportAirLine = ()=>{ importAirLineShow.value = false; } -const handlerCreateAirLineForm = (form)=>{ +// 创建航线 +const handlerCreateAirLineForm =async (form)=>{ + + console.log("form",form); + + // 根据航线类型处理设置template.kml、wayline.wpml + if(form.airLineType == 'waypoint'){ + const {templateKml,waylineWpml} = await import("../workplan/waylineConfig/waypointConfig"); + templateKmlConfig.value = templateKml; + waylineWpmlConfig.value = waylineWpml; + }else if(form.airLineType == 'mapping2d'){ + const {templateKml,waylineWpml} = await import("../workplan/waylineConfig/mapping2dConfig"); + templateKmlConfig.value = templateKml; + waylineWpmlConfig.value = waylineWpml; + } + + console.log("templateKmlConfig999",templateKmlConfig.value); // 关闭全部窗口 - workPlanFormShow.value = false; ariLineShow.value = false; - aircraftShow.value = false; - planListShow.value = false; createAirLineShow.value = false; - - // 航线表单 - airLineForm.value = form - airLineForm.value.folder = globalFolder.value; - console.log("airLineFor121m",airLineForm.value); + // 更新航线表单 + airLineForm.value = form + // 更新目录参数 + airLineForm.value.folder = globalFolder.value ? globalFolder.value : ""; } const successCreatePlan = ()=>{ @@ -370,8 +179,6 @@ const exitDraw = ()=>{ } - - // 预览航线 const wayline = ref({}); const waylineInfo = ref(null) @@ -400,7 +207,6 @@ const planDetail =async (item) => { // 获取wpml文件 - const currentPreviewWayLine = ref(null); const airLineDetail =async (item) => { @@ -441,10 +247,8 @@ const extractKmz = async (kmzBlob)=>{ } onMounted(()=>{ - -let element = window.document.getElementsByClassName("mars3d-locationbar")[0] as HTMLElement; -element.style.bottom = '40px'; - + let element = window.document.getElementsByClassName("mars3d-locationbar")[0] as HTMLElement; + element.style.bottom = '40px'; }) @@ -483,6 +287,7 @@ const importSuccess = () => { airLineListRef.value.getAirList(); importAirLineShow.value = false; } + \ No newline at end of file diff --git a/src/views/demo/workmanagement/workplan/actionComponents/rotateYaw.vue b/src/views/demo/workmanagement/workplan/actionComponents/rotateYaw.vue index 59e919f..d0e77c1 100644 --- a/src/views/demo/workmanagement/workplan/actionComponents/rotateYaw.vue +++ b/src/views/demo/workmanagement/workplan/actionComponents/rotateYaw.vue @@ -1,8 +1,11 @@ + + + + diff --git a/src/views/demo/resourcemanagement/ailist/SelectImageModal.vue b/src/views/demo/resourcemanagement/ailist/SelectImageModal.vue new file mode 100644 index 0000000..c355dc0 --- /dev/null +++ b/src/views/demo/resourcemanagement/ailist/SelectImageModal.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/demo/resourcemanagement/ailist/index.vue b/src/views/demo/resourcemanagement/ailist/index.vue index 1d34e09..16bfe15 100644 --- a/src/views/demo/resourcemanagement/ailist/index.vue +++ b/src/views/demo/resourcemanagement/ailist/index.vue @@ -1,136 +1,403 @@ - diff --git a/src/views/demo/resourcemanagement/ailist/modal.vue b/src/views/demo/resourcemanagement/ailist/modal.vue deleted file mode 100644 index 629efa5..0000000 --- a/src/views/demo/resourcemanagement/ailist/modal.vue +++ /dev/null @@ -1,184 +0,0 @@ - - - \ No newline at end of file