From 3832a82fb79d4cec4cca5e2854e54953f2095ef8 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 06 九月 2024 16:55:08 +0800
Subject: [PATCH] 1. 添加溯源清单功能 2. 修复切换至走航监测界面后,之前正在加载的历史数据依旧展示至地图的问题 3. 添加折线图下载图片功能; 4. 添加数据导出功能; 5. 添加设备管理功能; 6. 添加数据弹框和溯源清单开关功能; 7. 优化3D里面的颜色展示逻辑,底部颜色由原来的因子最小值颜色改为当前量级的上一个量级对应的颜色

---
 src/components/mission/MissionManage.vue |  216 +++++++++++++++++++++++++++++------------------------
 1 files changed, 118 insertions(+), 98 deletions(-)

diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue
index d7efdb4..1cf433f 100644
--- a/src/components/mission/MissionManage.vue
+++ b/src/components/mission/MissionManage.vue
@@ -1,122 +1,142 @@
 <template>
-  <el-button
+  <!-- <el-button
     type="primary"
     icon="Memo"
     class="el-button-custom p-events-auto"
     @click="dialogVisible = !dialogVisible"
   >
     浠诲姟绠$悊
-  </el-button>
-  <el-dialog v-model="dialogVisible" :show-close="false" align-center>
-    <template #header="{ close, titleId, titleClass }">
-      <BaseCard direction="top-left" borderless="t">
-        <template #content>
-          <el-row justify="space-between" align="middle">
-            <el-row align="middle">
-              <font-awesome-icon icon="fa fa-list" class="m-r-4" />
-              <span :id="titleId" :class="titleClass">璧拌埅浠诲姟绠$悊</span>
-            </el-row>
-            <font-awesome-icon
-              icon="fa fa-times"
-              class="cursor-p m-r-4"
-              @click="close"
-            />
-          </el-row>
-        </template>
-      </BaseCard>
-    </template>
-    <BaseCard size="medium">
-      <template #content>
-        <el-row class="mission-table">
-          <el-col :span="20">
-            <el-table
-              :data="missionList"
-              table-layout="fixed"
-              size="small"
-              :show-overflow-tooltip="true"
-              border
-              row-class-name="t-row"
-              cell-class-name="t-cell"
-              header-row-class-name="t-header-row"
-              header-cell-class-name="t-header-cell"
-            >
-              <el-table-column
-                type="index"
-                label="搴忓彿"
-                align="center"
-                width="50"
-              />
-              <el-table-column
-                prop="missionCode"
-                label="浠诲姟缂栧彿"
-                align="center"
-              />
-              <el-table-column
-                prop="startTime"
-                label="寮�濮嬫椂闂�"
-                align="center"
-                :formatter="timeFormatter"
-              />
-              <el-table-column
-                prop="endTime"
-                label="缁撴潫鏃堕棿"
-                align="center"
-                :formatter="timeFormatter"
-              />
-              <el-table-column label="绠$悊" width="70" align="center">
-                <template #default="{ row }">
-                  <el-button
-                    type="primary"
-                    size="small"
-                    class="el-button-custom"
-                    @click="deleteMission(row)"
-                    >鍒犻櫎</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">
+  </el-button> -->
+  <CardDialog
+    :model-value="modelValue"
+    @changed="handleChange"
+    title="璧拌埅浠诲姟绠$悊"
+  >
+    <el-row class="mission-table">
+      <el-col :span="20">
+        <el-table
+          :data="missionStore.missionList"
+          table-layout="fixed"
+          size="small"
+          :show-overflow-tooltip="true"
+          border
+          height="64vh"
+          row-class-name="t-row"
+          cell-class-name="t-cell"
+          header-row-class-name="t-header-row"
+          header-cell-class-name="t-header-cell"
+        >
+          <el-table-column
+            type="index"
+            label="搴忓彿"
+            align="center"
+            width="50"
+          />
+          <el-table-column prop="missionCode" label="浠诲姟缂栧彿" align="center" />
+          <el-table-column
+            prop="startTime"
+            label="寮�濮嬫椂闂�"
+            align="center"
+            :formatter="timeFormatter"
+          />
+          <el-table-column
+            prop="endTime"
+            label="缁撴潫鏃堕棿"
+            align="center"
+            :formatter="timeFormatter"
+          />
+          <el-table-column label="绠$悊" width="140" align="center">
+            <template #default="{ row }">
+              <el-button
+                type="primary"
+                size="small"
+                class="el-button-custom"
+                @click="deleteMission(row)"
+                >鍒犻櫎</el-button
+              >
+              <!-- <el-button
+                :loading="row.downloadLoading"
+                type="primary"
+                size="small"
+                class="el-button-custom"
+                @click="downloadReport(row)"
+                >鎶ュ憡</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">
                 鏂板缓浠诲姟
               </el-button> -->
-              <MissionCreate></MissionCreate>
-            </div>
-            <div>
-              <el-button type="primary" class="el-button-custom">
-                鏁版嵁瀵煎叆
-              </el-button>
-            </div>
-            <div>
-              <el-button type="primary" class="el-button-custom">
-                涓嬭浇妯℃澘
-              </el-button>
-            </div>
-          </el-col>
-        </el-row>
-      </template>
-    </BaseCard>
-  </el-dialog>
+          <MissionCreate></MissionCreate>
+        </div>
+        <!-- <div>
+          <el-button type="primary" class="el-button-custom">
+            鏁版嵁瀵煎叆
+          </el-button>
+        </div> -->
+        <!-- <div>
+          <el-button type="primary" class="el-button-custom">
+            涓嬭浇妯℃澘
+          </el-button>
+        </div> -->
+      </el-col>
+    </el-row>
+  </CardDialog>
+  <MessageBox
+    v-model="msgBoxVisible"
+    :on-confirm="onConfirm"
+    title="鍒犻櫎璧拌埅浠诲姟"
+    msg="纭鏄惁鍒犻櫎璇ヨ蛋鑸换鍔�"
+    confirmText="鍒犻櫎"
+  ></MessageBox>
 </template>
 <script>
 import moment from 'moment';
-import { mapState } from 'pinia';
+import missionApi from '@/api/missionApi';
+import { mapStores } from 'pinia';
 import { useMissionStore } from '@/stores/mission';
+import { useFetchData } from '@/composables/fetchData';
 
 export default {
-  props: {},
+  setup() {
+    const { loading, fetchData } = useFetchData();
+    return { loading, fetchData };
+  },
+  props: {
+    modelValue: Boolean
+  },
+  emits: ['update:modelValue'],
   data() {
     return {
-      dialogVisible: false
+      dialogVisible: false,
+      msgBoxVisible: false,
+      onConfirm: undefined
     };
   },
   computed: {
-    ...mapState(useMissionStore, ['missionList'])
+    ...mapStores(useMissionStore)
   },
   methods: {
-    createMission() {},
-    deleteMission(row) {},
+    handleChange(value) {
+      this.$emit('update:modelValue', value);
+    },
+    deleteMission(row) {
+      this.onConfirm = () => {
+        this.missionStore.deleteMission(row.missionCode);
+      };
+      this.msgBoxVisible = true;
+    },
+    downloadReport(row) {
+      row.downloadLoading = true;
+      missionApi
+        .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');
     }
@@ -144,6 +164,6 @@
 }
 
 .mission-table {
-  height: 60vh;
+  /* height: 60vh; */
 }
 </style>

--
Gitblit v1.9.3