github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/frontend/bv/src/pages/espace_perso/components/paiements/ConfirmeSupprimeAide.vue (about)

     1  <template>
     2    <b-modal
     3      :visible="show"
     4      @change="v => $emit('change', v)"
     5      cancel-title="Retour"
     6      hide-header-close
     7      title="Confirmer la suppression"
     8      @ok="deleteAide"
     9      ok-variant="danger"
    10    >
    11      Confirmez-vous la
    12      <b>suppression</b> de cette aide ?
    13      <div v-if="hasDocument">
    14        <i>
    15          La
    16          <b>pièce justificative</b> associée sera aussi supprimée.
    17        </i>
    18      </div>
    19      <template v-slot:modal-ok>
    20        <b-spinner type="grow" small v-show="spinningDelete"></b-spinner>Confirmer
    21        la suppression
    22      </template>
    23    </b-modal>
    24  </template>
    25  
    26  <script lang="ts">
    27  import Vue from "vue";
    28  import Component from "vue-class-component";
    29  import { Aide } from "@/shared/logic/types";
    30  import { BvModalEvent } from "bootstrap-vue";
    31  import { C } from "../../logic/controller";
    32  import { FieldsAideEditable } from "../../logic/types";
    33  
    34  const ConfirmeSupprimeAideProps = Vue.extend({
    35    props: {
    36      aide: Object as () => FieldsAideEditable | null,
    37      show: Boolean
    38    },
    39    model: {
    40      prop: "show",
    41      event: "change"
    42    }
    43  });
    44  
    45  @Component({})
    46  export default class ConfirmeSupprimeAide extends ConfirmeSupprimeAideProps {
    47    spinningDelete = false;
    48  
    49    get hasDocument() {
    50      return !!(this.aide && this.aide.document && this.aide.document.id_crypted);
    51    }
    52  
    53    async deleteAide(event: BvModalEvent) {
    54      event.preventDefault(); // garde le dialog visible
    55      if (C.data.finances == null || this.aide == null) return;
    56      this.spinningDelete = true;
    57      await C.data.deleteAide(this.aide);
    58      this.spinningDelete = false;
    59      this.$emit("change", false); // demande la fermeture du dialog
    60    }
    61  }
    62  </script>
    63  
    64  <style scoped></style>