From a09f984cbe2369e13d8694e91c4f8165ec6c2ba9 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 20 八月 2025 14:05:10 +0800
Subject: [PATCH] 动态溯源模块优化

---
 src/components/mission/MissionManage.vue |   80 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 17 deletions(-)

diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue
index 7e67122..9c1c51f 100644
--- a/src/components/mission/MissionManage.vue
+++ b/src/components/mission/MissionManage.vue
@@ -1,13 +1,13 @@
 <template>
-  <el-button
+  <!-- <el-button
     type="primary"
     icon="Memo"
     class="el-button-custom p-events-auto"
     @click="dialogVisible = !dialogVisible"
   >
     浠诲姟绠$悊
-  </el-button>
-  <CardDialog v-model="dialogVisible" title="璧拌埅浠诲姟绠$悊">
+  </el-button> -->
+  <CardDialog v-bind="$attrs" title="璧拌埅浠诲姟绠$悊">
     <el-row class="mission-table">
       <el-col :span="20">
         <el-table
@@ -17,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"
@@ -34,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">
             鏁版嵁瀵煎叆
@@ -89,6 +105,12 @@
     msg="纭鏄惁鍒犻櫎璇ヨ蛋鑸换鍔�"
     confirmText="鍒犻櫎"
   ></MessageBox>
+  <MissionEdit
+    v-model="dialogVisible"
+    width="30%"
+    :mode="editMode"
+    :mission="selectedMission"
+  ></MissionEdit>
 </template>
 <script>
 import moment from 'moment';
@@ -102,18 +124,37 @@
     const { loading, fetchData } = useFetchData();
     return { loading, fetchData };
   },
-  props: {},
+  props: {
+    // modelValue: Boolean
+  },
+  // 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);
+    // },
+    createMission() {
+      this.editMode = 'create';
+      this.dialogVisible = true;
+    },
+    updateMission(row) {
+      this.editMode = 'update';
+      this.selectedMission = row;
+      this.dialogVisible = true;
+    },
     deleteMission(row) {
       this.onConfirm = () => {
         this.missionStore.deleteMission(row.missionCode);
@@ -126,6 +167,7 @@
         .downloadReport(row.missionCode)
         .finally(() => (row.downloadLoading = false));
     },
+    // eslint-disable-next-line no-unused-vars
     timeFormatter(row, col, cellValue, index) {
       return moment(cellValue).format('YYYY-MM-DD HH:mm:ss');
     }
@@ -153,6 +195,10 @@
 }
 
 .mission-table {
-  height: 60vh;
+  /* height: 60vh; */
+}
+
+:deep(.t-row-normal) {
+  background-color: transparent !important;
 }
 </style>

--
Gitblit v1.9.3