| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <!--
- Bouton Delete avec modale de confirmation de la suppression
- -->
- <template>
- <main>
- <v-btn icon @click="alertDeleteItem()">
- <v-icon>mdi-delete</v-icon>
- </v-btn>
- <lazy-LayoutDialog
- :show="showDialog"
- >
- <template #dialogType>{{ $t('delete_assistant') }}</template>
- <template #dialogTitle>{{ $t('attention') }}</template>
- <template #dialogText>
- <v-card-text>
- <p>{{ $t('confirm_to_delete') }}</p>
- </v-card-text>
- </template>
- <template #dialogBtn>
- <v-btn class="mr-4 submitBtn ot_grey ot_white--text" @click="closeDialog">
- {{ $t('cancel') }}
- </v-btn>
- <v-btn class="mr-4 submitBtn ot_danger ot_white--text" @click="deleteItem">
- {{ $t('delete') }}
- </v-btn>
- </template>
- </lazy-LayoutDialog>
- </main>
- </template>
- <script lang="ts">
- import {defineComponent, ref, Ref, useContext} from '@nuxtjs/composition-api'
- import {DataDeleterArgs} from '~/types/interfaces'
- import {TYPE_ALERT} from '~/types/enums'
- import Page from "~/services/store/page";
- export default defineComponent({
- props: {
- deleteArgs: {
- type: Object as () => DataDeleterArgs,
- required: true
- }
- },
- setup (props) {
- const { $dataDeleter, store, app: { i18n } } = useContext()
- const showDialog: Ref<boolean> = ref(false)
- const page = new Page(store)
- const deleteItem = async () => {
- try {
- await $dataDeleter.invoke(props.deleteArgs)
- page.addAlerts(TYPE_ALERT.SUCCESS, [i18n.t('deleteSuccess') as string])
- } catch (error) {
- page.addAlerts(TYPE_ALERT.ALERT, [error.message])
- }
- showDialog.value = false
- }
- return {
- alertDeleteItem: () => { showDialog.value = true },
- closeDialog: () => { showDialog.value = false },
- deleteItem,
- showDialog
- }
- }
- })
- </script>
- <style scoped>
- </style>
|