From 7e89ae52ea3b97429a116bd3d8e4b2ba05e02164 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:39:39 +0800
Subject: [PATCH] 2025.9.30 新增单次走航报告自动生成功能

---
 src/components/mission/MissionManage.vue |   85 ++++++++++++++++++++++++++++++------------
 1 files changed, 61 insertions(+), 24 deletions(-)

diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue
index 1cf433f..87f8e22 100644
--- a/src/components/mission/MissionManage.vue
+++ b/src/components/mission/MissionManage.vue
@@ -7,11 +7,7 @@
   >
     浠诲姟绠$悊
   </el-button> -->
-  <CardDialog
-    :model-value="modelValue"
-    @changed="handleChange"
-    title="璧拌埅浠诲姟绠$悊"
-  >
+  <CardDialog v-bind="$attrs" title="璧拌埅浠诲姟绠$悊">
     <el-row class="mission-table">
       <el-col :span="20">
         <el-table
@@ -21,7 +17,7 @@
           :show-overflow-tooltip="true"
           border
           height="64vh"
-          row-class-name="t-row"
+          row-class-name="t-row-normal"
           cell-class-name="t-cell"
           header-row-class-name="t-header-row"
           header-cell-class-name="t-header-cell"
@@ -38,41 +34,57 @@
             label="寮�濮嬫椂闂�"
             align="center"
             :formatter="timeFormatter"
+            width="150"
           />
           <el-table-column
             prop="endTime"
             label="缁撴潫鏃堕棿"
             align="center"
             :formatter="timeFormatter"
+            width="150"
           />
-          <el-table-column label="绠$悊" width="140" align="center">
+          <el-table-column label="绠$悊" width="160" align="center">
             <template #default="{ row }">
+              <!-- <MissionEdit mode="update"></MissionEdit> -->
               <el-button
                 type="primary"
                 size="small"
+                icon="EditPen"
+                class="el-button-custom"
+                @click="updateMission(row)"
+              ></el-button>
+              <el-button
+                type="primary"
+                size="small"
+                icon="Delete"
                 class="el-button-custom"
                 @click="deleteMission(row)"
-                >鍒犻櫎</el-button
-              >
-              <!-- <el-button
+              ></el-button>
+              <el-button
                 :loading="row.downloadLoading"
                 type="primary"
                 size="small"
+                icon="Document"
                 class="el-button-custom"
                 @click="downloadReport(row)"
-                >鎶ュ憡</el-button
-              > -->
+              ></el-button>
             </template>
           </el-table-column>
         </el-table>
       </el-col>
       <el-col :span="4" class="flex-col">
-        <div>
-          <!-- <el-button type="primary" class="el-button-custom">
+        <!-- <div> -->
+        <!-- <el-button type="primary" class="el-button-custom">
                 鏂板缓浠诲姟
               </el-button> -->
-          <MissionCreate></MissionCreate>
-        </div>
+        <el-button
+          type="primary"
+          class="el-button-custom"
+          @click="createMission"
+        >
+          鏂板缓浠诲姟
+        </el-button>
+        <!-- </div> -->
         <!-- <div>
           <el-button type="primary" class="el-button-custom">
             鏁版嵁瀵煎叆
@@ -93,6 +105,12 @@
     msg="纭鏄惁鍒犻櫎璇ヨ蛋鑸换鍔�"
     confirmText="鍒犻櫎"
   ></MessageBox>
+  <MissionEdit
+    v-model="dialogVisible"
+    width="30%"
+    :mode="editMode"
+    :mission="selectedMission"
+  ></MissionEdit>
 </template>
 <script>
 import moment from 'moment';
@@ -100,6 +118,7 @@
 import { mapStores } from 'pinia';
 import { useMissionStore } from '@/stores/mission';
 import { useFetchData } from '@/composables/fetchData';
+import { downloadReport } from '@/components/mission/missionReportDownload.js';
 
 export default {
   setup() {
@@ -107,22 +126,35 @@
     return { loading, fetchData };
   },
   props: {
-    modelValue: Boolean
+    // modelValue: Boolean
   },
-  emits: ['update:modelValue'],
+  // emits: ['update:modelValue'],
   data() {
     return {
       dialogVisible: false,
       msgBoxVisible: false,
-      onConfirm: undefined
+      onConfirm: undefined,
+      // 浠诲姟缂栬緫妯″紡锛宑reate锛氬垱寤烘柊浠诲姟锛寀pdate锛氱紪杈戝凡鏈変换鍔�
+      editMode: 'create',
+      // 閫変腑鐨勫緟缂栬緫浠诲姟
+      selectedMission: undefined
     };
   },
   computed: {
     ...mapStores(useMissionStore)
   },
   methods: {
-    handleChange(value) {
-      this.$emit('update:modelValue', value);
+    // handleChange(value) {
+    //   this.$emit('update:modelValue', value);
+    // },
+    createMission() {
+      this.editMode = 'create';
+      this.dialogVisible = true;
+    },
+    updateMission(row) {
+      this.editMode = 'update';
+      this.selectedMission = row;
+      this.dialogVisible = true;
     },
     deleteMission(row) {
       this.onConfirm = () => {
@@ -132,9 +164,10 @@
     },
     downloadReport(row) {
       row.downloadLoading = true;
-      missionApi
-        .downloadReport(row.missionCode)
-        .finally(() => (row.downloadLoading = false));
+      // missionApi
+      //   .downloadReport(row.missionCode)
+      //   .finally(() => (row.downloadLoading = false));
+      downloadReport(row).finally(() => (row.downloadLoading = false));
     },
     // eslint-disable-next-line no-unused-vars
     timeFormatter(row, col, cellValue, index) {
@@ -166,4 +199,8 @@
 .mission-table {
   /* height: 60vh; */
 }
+
+:deep(.t-row-normal) {
+  background-color: transparent !important;
+}
 </style>

--
Gitblit v1.9.3