Files
bid-setup.tootaio.com/app/components/item/DeleteModal.vue
xiaomai 675704e4da feat(item): add delete functionality
This commit introduces the ability to delete items. A new `ItemDeleteModal` component provides a confirmation step
before removal.

- Adds a 'Delete' option to the action menu in the items table.
- Refactors the `useItems` composable to ensure reactivity with `useLocalStorage` by creating new array references on
add/remove operations.
- Renames `AddModal` to `EditModal` to better align with its future role in both adding and editing items.
2025-10-14 10:44:08 +08:00

54 lines
1.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<UModal
v-model:open="open"
:title="`删除 ${item?.name}`"
:description="`确定吗?此操作不可被还原。`"
>
<slot />
<template #body>
<div class="flex justify-end gap-2">
<UButton
label="Cancel"
color="neutral"
variant="subtle"
@click="open = false"
/>
<UButton
label="Delete"
color="error"
variant="solid"
loading-auto
@click="onSubmit"
/>
</div>
</template>
</UModal>
</template>
<script lang="ts" setup>
const props = withDefaults(
defineProps<{
item?: Item | null;
}>(),
{
item: null,
}
);
const { removeItem } = useItemsStore();
const open = defineModel<boolean>("open", { default: false });
async function onSubmit() {
// await new Promise((resolve) => setTimeout(resolve, 1000));
if (!props.item || props.item.id == null) {
return;
}
removeItem(props.item.id);
open.value = false;
}
</script>
<style></style>