zhangyihao před 11 měsíci
rodič
revize
c8e288a464

+ 17 - 6
src/views/emergencyCommandMap/LeftSection/CloseCommand.vue

@@ -19,7 +19,7 @@
 
 <script lang="ts" setup>
 import { ref, reactive, toRefs } from 'vue';
-import { addEvent, editEvent, postEditEvent,registeredEvent } from '@/api/duty/eventing';
+import { addEvent, editEvent, postEditEvent, registeredEvent } from '@/api/duty/eventing';
 
 const proxy = getCurrentInstance()?.proxy;
 const { mm_event_title, region } = toRefs<any>(proxy?.useDict('mm_event_title', 'region'));
@@ -58,6 +58,7 @@ watch(
 // 表单初始数据
 const initFormData = {
   event_title: '', // 事件标题
+  event_id: '',
   event_type: '', // 事件类型
   event_level: '', // 事件等级
   event_status: '0' // 事件状态
@@ -110,7 +111,7 @@ const fetchEvents = async () => {
   try {
     const response = await registeredEvent({});
     if (response && response.data && Array.isArray(response.data)) {
-      events.value = response.data;
+      mm_event_title.value = response.data.map((item) => ({ value: item.id, label: item.title }));
     }
   } catch (error) {
     console.error('Failed to fetch events:', error);
@@ -120,21 +121,31 @@ const fetchEvents = async () => {
 onMounted(fetchEvents);
 
 const closeDialog = () => {
-  visible.value = false;
-  // 清空表单
+  emits('update:modelValue', false);
   if (eventFormRef.value) {
     eventFormRef.value.resetFields();
   }
+  form.value.event_id = null;
+  form.value.event_title = '';
 };
 const endProcess = () => {
-  // 关闭弹窗
+  // 确保在点击结束指挥时重新显示对话框
+  ensureDialogVisible();
   closeDialog();
-  // 使用 Vue Router 返回到上一个页面
+  // 根据应用类型返回上一页
+  // 如果是 SPA 应用,可以使用 Vue Router
   router.go(-1);
 };
+// 确保在点击结束指挥时重新显示对话框
+const ensureDialogVisible = () => {
+  if (!visible.value) {
+    showFormDialog();
+  }
+};
 // 显示对话框的方法
 const showFormDialog = () => {
   visible.value = true;
+  emits('update:modelValue', true);
   // 如果没有 event_id,则获取事件列表
   if (!props.eventId) {
     fetchEvents();