From 1788c96aea9247cc36ef8b82734997f1a6a92fb4 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 23 八月 2024 11:07:42 +0800 Subject: [PATCH] 新增新版本。静安区特供版 --- src/components/mission/MissionManage.vue | 197 +++++++++++++++++++++++++----------------------- 1 files changed, 103 insertions(+), 94 deletions(-) diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue index d7efdb4..7e67122 100644 --- a/src/components/mission/MissionManage.vue +++ b/src/components/mission/MissionManage.vue @@ -7,116 +7,125 @@ > 浠诲姟绠$悊 </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"> + <CardDialog v-model="dialogVisible" 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 { + setup() { + const { loading, fetchData } = useFetchData(); + return { loading, fetchData }; + }, props: {}, data() { return { - dialogVisible: false + dialogVisible: false, + msgBoxVisible: false, + onConfirm: undefined }; }, computed: { - ...mapState(useMissionStore, ['missionList']) + ...mapStores(useMissionStore) }, methods: { - createMission() {}, - deleteMission(row) {}, + 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)); + }, timeFormatter(row, col, cellValue, index) { return moment(cellValue).format('YYYY-MM-DD HH:mm:ss'); } -- Gitblit v1.9.3