add event remove dialog
This commit is contained in:
@@ -71,13 +71,19 @@
|
||||
</t-pull-down-refresh>
|
||||
</div>
|
||||
<nav-bar-action-menu v-if="canShowActionMenu" :actions="actionList" />
|
||||
<event-remove-dialog
|
||||
v-model:visible="removeDialogVisible"
|
||||
:event="removeTarget"
|
||||
:loading="isRemoving"
|
||||
@confirm="removeEvent"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { DialogPlugin } from "tdesign-mobile-vue";
|
||||
import { Message } from "@/utils/message";
|
||||
import { type Page, type PageResult, type Role, useUserStore } from "timi-web-api";
|
||||
import EventAPI from "@/api/EventAPI";
|
||||
import EventRemoveDialog from "@/pages/event/component/EventRemoveDialog.vue";
|
||||
import ManagedUserAPI from "@/api/ManagedUserAPI";
|
||||
import { useCurrentStoreStore } from "@/store/currentStoreStore";
|
||||
import { useNavBarStore } from "@/store/navBarStore";
|
||||
@@ -132,6 +138,8 @@ const isRefreshing = ref(false);
|
||||
const isLoading = ref(false);
|
||||
const isNoMore = ref(false);
|
||||
const isRemoving = ref(false);
|
||||
const removeDialogVisible = ref(false);
|
||||
const removeTarget = ref<EventItem>();
|
||||
const removingEventId = ref("");
|
||||
const page = reactive<Page<EventItem>>({
|
||||
index: 0,
|
||||
@@ -182,29 +190,20 @@ function openRemoveDialog(eventItem: EventItem): void {
|
||||
return;
|
||||
}
|
||||
|
||||
const eventName = eventItem.name || "未命名事件";
|
||||
const dialog = DialogPlugin.confirm({
|
||||
title: "删除登记事件",
|
||||
content: `确定删除登记事件 ${eventName} 吗?删除后无法恢复。`,
|
||||
cancelBtn: "取消",
|
||||
confirmBtn: "删除",
|
||||
onCancel() {
|
||||
dialog.destroy();
|
||||
},
|
||||
async onConfirm() {
|
||||
dialog.destroy();
|
||||
await removeEvent(eventId);
|
||||
}
|
||||
});
|
||||
removeTarget.value = eventItem;
|
||||
removeDialogVisible.value = true;
|
||||
}
|
||||
|
||||
async function removeEvent(eventId: string): Promise<void> {
|
||||
if (isRemoving.value) {
|
||||
async function removeEvent(eventItem: EventItem): Promise<void> {
|
||||
const eventId = eventItem.id;
|
||||
if (!eventId || isRemoving.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
isRemoving.value = true;
|
||||
removingEventId.value = eventId;
|
||||
removeDialogVisible.value = false;
|
||||
removeTarget.value = undefined;
|
||||
try {
|
||||
await EventAPI.remove(eventId);
|
||||
pageResult.list = pageResult.list.filter(item => item.id !== eventId);
|
||||
|
||||
Reference in New Issue
Block a user