diff --git a/src/views/cesiums/CesiumViewer.vue b/src/views/cesiums/CesiumViewer.vue index 2586cd7..512bd57 100644 --- a/src/views/cesiums/CesiumViewer.vue +++ b/src/views/cesiums/CesiumViewer.vue @@ -46,15 +46,17 @@ @fly-to-coordinate="flyToCoordinate" /> - - + - @@ -150,8 +157,41 @@ const { flyToDrawing, updateDrawingOptions, getDrawingStatus, - getDrawingInfoText -} = useDrawingManager(drawingTool); // 直接传递 drawingTool ref + getDrawingInfoText, + printSelectedDrawingInfo, + printAllDrawingsInfo, + printDrawingInfo, + exportSelectedDrawingAsText +} = useDrawingManager(drawingTool); + + +// 打印方法 +const handlePrintSelectedDrawingInfo = () => { + console.log('执行打印选中空域'); + printSelectedDrawingInfo(); +}; + +const handlePrintAllDrawingsInfo = () => { + console.log('执行打印所有空域'); + printAllDrawingsInfo(); +}; + +const handlePrintDrawingInfo = (id: string) => { + console.log('执行打印指定空域:', id); + printDrawingInfo(id); +}; + +const handleExportDrawingInfo = () => { + const text = exportSelectedDrawingAsText(); + if (text) { + navigator.clipboard.writeText(text).then(() => { + console.log('空域信息已复制到剪贴板'); + // 可以添加提示消息 + }).catch(err => { + console.error('复制失败:', err); + }); + } +}; // 添加预定义模型 diff --git a/src/views/cesiums/DrawingToolPanel.vue b/src/views/cesiums/DrawingToolPanel.vue index 7ccbf0e..e6a3ae4 100644 --- a/src/views/cesiums/DrawingToolPanel.vue +++ b/src/views/cesiums/DrawingToolPanel.vue @@ -8,6 +8,37 @@ + +
+

信息操作

+
+ + + +
+
+

绘制工具

@@ -49,6 +80,9 @@ +
@@ -56,9 +90,14 @@

已绘制空域 ({{ drawings.size }})

- +
+ + +
+
+

样式设置

@@ -226,6 +267,21 @@ import { ref } from 'vue'; import * as Cesium from 'cesium'; import type { DrawingResult } from './components/DrawingTool'; +// const props = defineProps<{ +// isDrawing: boolean; +// currentDrawingType: string | null; +// drawings: Map; +// selectedDrawing: string | null; +// drawingInfo: any; +// drawingOptions: any; +// getDrawingStatus: () => string; +// getDrawingInfoText: () => string; +// printSelectedDrawingInfo: () => void; +// printAllDrawingsInfo: () => void; +// exportSelectedDrawingAsText: () => string; +// }>(); + +// 定义props const props = defineProps<{ isDrawing: boolean; currentDrawingType: string | null; @@ -249,7 +305,11 @@ const emit = defineEmits<{ 'update-circle-option': [key: string, value: any]; 'update-polygon-option': [key: string, value: any]; 'copy-drawing-info': []; - 'fly-to-selected-drawing': []; + 'fly-to-selected-drawing': [id: string]; + 'print-selected-drawing-info': []; + 'print-all-drawings-info': []; + 'print-drawing-info': [id: string]; + 'export-drawing-info': [id: string]; }>(); const activeTab = ref<'circle' | 'polygon'>('circle'); @@ -279,10 +339,35 @@ const clearAllDrawings = () => { emit('clear-drawings'); }; +// 方法实现 const flyToDrawing = (id: string) => { + console.log('点击飞向空域按钮:', id); emit('fly-to-drawing', id); }; + + +// 打印方法 +const handlePrintSelectedDrawingInfo = () => { + console.log('点击了打印选中空域按钮'); + emit('print-selected-drawing-info'); +}; + +const handlePrintAllDrawingsInfo = () => { + console.log('点击了打印所有空域按钮'); + emit('print-all-drawings-info'); +}; + +const handlePrintDrawingInfo = (id: string) => { + console.log('点击了打印空域信息按钮:', id); + emit('print-drawing-info', id); +}; + +const handleExportSelectedDrawingInfo = () => { + console.log('点击了导出空域信息按钮'); + emit('export-drawing-info'); +}; + const updateCircleOption = (key: string, value: any) => { emit('update-circle-option', key, value); }; @@ -296,6 +381,7 @@ const copyDrawingInfo = () => { }; const flyToSelectedDrawing = () => { + console.log('点击飞向选中空域按钮'); emit('fly-to-selected-drawing'); }; @@ -331,6 +417,110 @@ const hexToColor = (hex: string): Cesium.Color => {