RefuseExamDialog.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <q-dialog ref="dialogRef" @hide="onDialogHide">
  3. <q-card class="refuse-card">
  4. <q-card-section class="row items-center q-pb-none">
  5. <div class="text-h6 text-violet-normal">{{ $t("agendamento.recusar_guia") }}</div>
  6. <q-space />
  7. <q-btn icon="mdi-close" flat round dense @click="onDialogCancel" />
  8. </q-card-section>
  9. <q-separator class="q-mt-sm" />
  10. <q-card-section class="q-pt-md">
  11. <div class="text-body2 text-grey-8 q-mb-md">
  12. {{ $t("agendamento.recusar_guia_aviso") }}
  13. </div>
  14. <DefaultInput
  15. v-model="reason"
  16. :label="$t('agendamento.motivo_recusa')"
  17. type="textarea"
  18. autogrow
  19. counter
  20. maxlength="500"
  21. class="input-violet"
  22. />
  23. </q-card-section>
  24. <q-separator />
  25. <q-card-actions align="right" class="q-pa-sm">
  26. <q-btn flat color="grey-7" :label="$t('common.actions.cancel')" @click="onDialogCancel" />
  27. <q-btn
  28. unelevated
  29. color="negative"
  30. :label="$t('agendamento.recusar')"
  31. @click="onDialogOK({ reason })"
  32. />
  33. </q-card-actions>
  34. </q-card>
  35. </q-dialog>
  36. </template>
  37. <script setup>
  38. import { ref } from "vue";
  39. import { useDialogPluginComponent } from "quasar";
  40. import DefaultInput from "src/components/defaults/DefaultInput.vue";
  41. defineEmits([...useDialogPluginComponent.emits]);
  42. const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent();
  43. const reason = ref("");
  44. </script>
  45. <style scoped lang="scss">
  46. .refuse-card {
  47. width: 90vw;
  48. max-width: 520px;
  49. min-width: 300px;
  50. }
  51. </style>