From 660021a28de9b84b4362c171fdbbf89587f0c5af Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 13 二月 2025 17:30:50 +0800 Subject: [PATCH] 1. 修改部分bug 2. 新增2D路线轨迹绘制 --- src/components/mission/MissionManage.vue | 223 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 125 insertions(+), 98 deletions(-) diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue index d7efdb4..5695155 100644 --- a/src/components/mission/MissionManage.vue +++ b/src/components/mission/MissionManage.vue @@ -1,122 +1,145 @@ <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-normal" + 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" + width="150" + /> + <el-table-column + prop="endTime" + label="缁撴潫鏃堕棿" + align="center" + :formatter="timeFormatter" + width="150" + /> + <el-table-column label="绠$悊" width="160" align="center"> + <template #default="{ row }"> + <MissionEdit mode="update"></MissionEdit> + <el-button + type="primary" + size="small" + icon="Delete" + class="el-button-custom" + @click="deleteMission(row)" + ></el-button> + <el-button + :loading="row.downloadLoading" + type="primary" + size="small" + icon="Document" + 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> + <MissionEdit></MissionEdit> + <!-- </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 +167,10 @@ } .mission-table { - height: 60vh; + /* height: 60vh; */ +} + +:deep(.t-row-normal) { + background-color: transparent !important; } </style> -- Gitblit v1.9.3