فهرست منبع

完善导航与编辑相关功能

jiuling 8 ماه پیش
والد
کامیت
5a6ec08a58

+ 25 - 20
src/views/map/maplist/components/shared/RightPanel.vue

@@ -107,9 +107,10 @@
                     <div v-if="emergencyStopEnabled" style="padding: 16px; border-top: 1px solid #f0f0f0;">
                       <el-button 
                         type="success"
+                        native-type="button"
                         size="small" 
                         icon="el-icon-refresh-right"
-                        @click="$emit('emergency-stop-release')"
+                        @click.prevent="$emit('emergency-stop-release')"
                         style="width: 100%;"
                         block
                       >
@@ -140,8 +141,9 @@
                     <div style="padding: 16px; border-top: 1px solid #f0f0f0;">
                       <el-button 
                         size="small" 
+                        native-type="button"
                         icon="el-icon-circle-plus-outline"
-                        @click="$emit('add-current-point')"
+                        @click.prevent="$emit('add-current-point')"
                         style="width: 100%;"
                         block
                       >
@@ -193,13 +195,13 @@
                         <div class="element-name">{{ element.name || '未命名' }}</div>
                       </div>
                       <div class="element-actions">
-                        <el-button size="mini" type="text" @click.stop="$emit('element-edit', element)">编辑</el-button>
-                        <el-button size="mini" type="text" @click.stop="$emit('element-locate', element)">定位</el-button>
+                        <el-button size="mini" type="text" native-type="button" @click.stop.prevent="$emit('element-edit', element)">编辑</el-button>
+                        <el-button size="mini" type="text" native-type="button" @click.stop.prevent="$emit('element-locate', element)">定位</el-button>
                         <el-popconfirm
                           title="确定删除这个元素吗?"
                           @confirm="$emit('element-remove', element)"
                         >
-                          <el-button size="mini" type="text" slot="reference" @click.stop>删除</el-button>
+                          <el-button size="mini" type="text" native-type="button" slot="reference" @click.stop.prevent>删除</el-button>
                         </el-popconfirm>
                       </div>
                     </div>
@@ -302,9 +304,10 @@
             v-if="mode === 'edit'"
             class="edit-panel-close-btn"
             type="text" 
+            native-type="button"
             size="mini" 
             icon="el-icon-arrow-right"
-            @click="$emit('input', false)"
+            @click.prevent="$emit('input', false)"
             title="收起面板"
           />
         </template>
@@ -588,34 +591,35 @@
                 <!-- 2行3列网格布局 -->
                 <div class="toolbar-grid">
                   <!-- 第一行:上移、下移、批量删除 -->
-                  <el-button type="primary" size="small" :disabled="waypointSingle" @click="$emit('wp-move-up')" class="grid-btn">
+                  <el-button type="primary" native-type="button" size="small" :disabled="waypointSingle" @click.prevent="$emit('wp-move-up')" class="grid-btn">
                     <i class="el-icon-arrow-up"></i>
                     <span>上移</span>
                   </el-button>
-                  <el-button type="primary" size="small" :disabled="waypointSingle" @click="$emit('wp-move-down')" class="grid-btn">
+                  <el-button type="primary" native-type="button" size="small" :disabled="waypointSingle" @click.prevent="$emit('wp-move-down')" class="grid-btn">
                     <i class="el-icon-arrow-down"></i>
                     <span>下移</span>
                   </el-button>
                   <el-popconfirm title="确定批量删除选中的目标点?" @confirm="$emit('wp-batch-remove')">
-                    <el-button type="danger" size="small" :disabled="waypointMultiple" slot="reference" class="grid-btn">
+                    <el-button type="danger" native-type="button" size="small" :disabled="waypointMultiple" slot="reference" class="grid-btn">
                       <i class="el-icon-delete"></i>
                       <span>批量删除</span>
                     </el-button>
                   </el-popconfirm>
                   
                   <!-- 第二行:立即前往、生成任务、地图选点 -->
-                  <el-button type="warning" size="small" :disabled="waypointSingle" @click="$emit('wp-goto')" class="grid-btn">
+                  <el-button type="warning" native-type="button" size="small" :disabled="waypointSingle" @click.prevent="$emit('wp-goto')" class="grid-btn">
                     <i class="el-icon-position"></i>
                     <span>立即前往</span>
                   </el-button>
-                  <el-button type="success" size="small" :disabled="waypointMultiple" @click="$emit('wp-create-task')" class="grid-btn">
+                  <el-button type="success" native-type="button" size="small" :disabled="waypointMultiple" @click.prevent="$emit('wp-create-task')" class="grid-btn">
                     <i class="el-icon-plus"></i>
                     <span>生成任务</span>
                   </el-button>
                   <el-button 
                     :type="mapSelectMode ? 'danger' : 'info'" 
+                    native-type="button"
                     size="small"
-                    @click="toggleMapSelectMode"
+                    @click.prevent="toggleMapSelectMode"
                     class="grid-btn"
                   >
                     <i :class="mapSelectMode ? 'el-icon-close' : 'el-icon-location'"></i>
@@ -650,9 +654,9 @@
                       </div>
                     </div>
                     <div class="waypoint-actions">
-                      <el-button size="mini" type="text" @click.stop="$emit('wp-edit', waypoint)" class="action-btn">编辑</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.stop.prevent="$emit('wp-edit', waypoint)" class="action-btn">编辑</el-button>
                       <el-popconfirm title="删除当前目标点?" @confirm="$emit('wp-remove', waypoint)">
-                        <el-button size="mini" type="text" slot="reference" @click.stop class="action-btn">删除</el-button>
+                        <el-button size="mini" type="text" native-type="button" slot="reference" @click.stop.prevent class="action-btn">删除</el-button>
                       </el-popconfirm>
                     </div>
                   </div>
@@ -694,11 +698,11 @@
                       <span class="task-status" :class="'status-' + task.status">{{ getTaskStatusText(task.status) }}</span>
                     </div>
                     <div class="task-actions">
-                      <el-button size="mini" type="text" @click="$emit('task-view', task)">查看</el-button>
-                      <el-button size="mini" type="text" @click="$emit('task-start', task)">开始</el-button>
-                      <el-button size="mini" type="text" @click="$emit('task-pause', task)">暂停</el-button>
-                      <el-button size="mini" type="text" @click="$emit('task-stop', task)">停止</el-button>
-                      <el-button size="mini" type="text" @click="$emit('task-remove', task)">删除</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.prevent="$emit('task-view', task)">查看</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.prevent="$emit('task-start', task)">开始</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.prevent="$emit('task-pause', task)">暂停</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.prevent="$emit('task-stop', task)">停止</el-button>
+                      <el-button size="mini" type="text" native-type="button" @click.prevent="$emit('task-remove', task)">删除</el-button>
                     </div>
                   </div>
                 </div>
@@ -717,9 +721,10 @@
           v-if="panelType === 'nav'"
           class="nav-panel-close-btn"
           type="text" 
+          native-type="button"
           size="mini" 
           icon="el-icon-arrow-right"
-          @click="$emit('update:visible', false)"
+          @click.prevent="$emit('update:visible', false)"
           title="收起面板"
         />
       </div>

+ 5 - 1
src/views/map/maplist/edit.vue

@@ -495,6 +495,10 @@ export default {
 		
 		// 编辑元素
 		handleElementEdit(element) {
+			// 先在地图上选中该元素,确保地图组件状态正确
+			if (this.$refs.olmap && this.$refs.olmap.selectShowEle && element && element.id) {
+				this.$refs.olmap.selectShowEle(element.id);
+			}
 			this.showInspector(element, 'edit');
 		},
 		
@@ -1221,7 +1225,7 @@ export default {
 @import './components/shared/_map-shared.scss';
 
 .edit-page {
-  height: 100vh;
+  height: calc(100vh - 84px);
   display: flex;
   flex-direction: column;
   background: #f5f7fa;

+ 5 - 4
src/views/map/maplist/index.vue

@@ -161,6 +161,7 @@
             ref="mapTable"
             v-loading="loading" 
             :data="displayedList" 
+            row-key="id"
             @selection-change="handleTableSelectionChange" 
             class="map-table"
             :fit="true"
@@ -390,13 +391,13 @@
         <el-button @click="constructOpen = false">取 消</el-button>
       </div>
     </el-dialog>
-    <div>
+    <!-- <div>
         <button @click="publishMsg">发布消息</button>
         <button @click="addTopic">动态订阅 topic3</button>
         <button @click="removeTopic">动态取消 topic2</button>
-      </div>
+    </div> -->
 
-      <MqttComp ref="mqtt" :topics="topics" @message-received="onMessage" />
+      <!-- <MqttComp ref="mqtt" :topics="topics" @message-received="onMessage" /> -->
       
       <!-- 导入地图对话框 -->
       <el-dialog title="导入地图" :visible.sync="importOpen" width="520px" append-to-body :close-on-click-modal="false">
@@ -763,7 +764,7 @@ export default {
 
   created() {
     this.loadViewMode()
-    this.calculateTableHeight()
+    // this.calculateTableHeight()
   },
   
   watch: {

+ 1 - 1
src/views/map/maplist/navigation.vue

@@ -733,7 +733,7 @@ export default {
     },
 		handleInitReply(message) {
 			// 处理初始化回复消息
-			console.log("初始化回复:", message);
+			// console.log("初始化回复:", message);
 			
 		},
 		handleLaserPose(message) {