|
|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<q-dialog ref="dialogRef" @hide="onDialogHide">
|
|
|
<q-card
|
|
|
- class="q-dialog-plugin overflow-hidden column no-wrap"
|
|
|
+ class="q-dialog-plugin dialog-form-card"
|
|
|
:style="dialogCardStyle"
|
|
|
>
|
|
|
<DefaultDialogHeader
|
|
|
@@ -24,7 +24,8 @@
|
|
|
<q-separator />
|
|
|
</template>
|
|
|
|
|
|
- <q-card-section class="q-pt-sm col" style="overflow-y: auto">
|
|
|
+ <q-scroll-area class="dialog-form-scroll">
|
|
|
+ <q-card-section class="q-pt-sm">
|
|
|
<div v-show="activeTab === 'dados'">
|
|
|
<div class="text-subtitle1 q-mb-md">Dados do Aluno</div>
|
|
|
|
|
|
@@ -33,6 +34,8 @@
|
|
|
<div class="row items-start no-wrap q-col-gutter-sm">
|
|
|
<DefaultSelect
|
|
|
v-model="selectedStudent"
|
|
|
+ :error="!!validationErrors.student_id"
|
|
|
+ :error-message="validationErrors.student_id"
|
|
|
label="Aluno"
|
|
|
class="col"
|
|
|
:options="filteredStudents"
|
|
|
@@ -63,6 +66,8 @@
|
|
|
<div v-if="!props.selectStudent" class="col-12">
|
|
|
<DefaultInput
|
|
|
:model-value="currentStudent?.name"
|
|
|
+ :error="!!validationErrors.student_id"
|
|
|
+ :error-message="validationErrors.student_id"
|
|
|
label="Aluno"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -71,6 +76,8 @@
|
|
|
<div v-if="props.selectStudent" class="col-12 col-md-4">
|
|
|
<DefaultInput
|
|
|
:model-value="currentStudent?.id"
|
|
|
+ :error="!!validationErrors.student_id"
|
|
|
+ :error-message="validationErrors.student_id"
|
|
|
label="ID do Aluno"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -79,6 +86,8 @@
|
|
|
<div :class="props.selectStudent ? 'col-12 col-md-4' : 'col-6'">
|
|
|
<DefaultInput
|
|
|
:model-value="currentStudent?.document_number"
|
|
|
+ :error="!!validationErrors.document_number"
|
|
|
+ :error-message="validationErrors.document_number"
|
|
|
label="CPF / CNH"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -87,6 +96,8 @@
|
|
|
<div :class="props.selectStudent ? 'col-12 col-md-4' : 'col-6'">
|
|
|
<DefaultInput
|
|
|
:model-value="formattedBirthDate"
|
|
|
+ :error="!!validationErrors.birth_date"
|
|
|
+ :error-message="validationErrors.birth_date"
|
|
|
label="Data de Nascimento"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -97,12 +108,19 @@
|
|
|
|
|
|
<div class="row q-col-gutter-sm">
|
|
|
<div class="col-4">
|
|
|
- <DefaultInput v-model="form.protocol" label="Protocolo" />
|
|
|
+ <DefaultInput
|
|
|
+ v-model="form.protocol"
|
|
|
+ label="Protocolo"
|
|
|
+ :error="!!validationErrors.protocol"
|
|
|
+ :error-message="validationErrors.protocol"
|
|
|
+ />
|
|
|
</div>
|
|
|
|
|
|
<div class="col-4">
|
|
|
<DefaultInputDatePicker
|
|
|
v-model="form.signature_date"
|
|
|
+ :error="!!validationErrors.signature_date"
|
|
|
+ :error-message="validationErrors.signature_date"
|
|
|
label="Data Assinatura"
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -110,6 +128,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInputDatePicker
|
|
|
v-model="form.end_date"
|
|
|
+ :error="!!validationErrors.end_date"
|
|
|
+ :error-message="validationErrors.end_date"
|
|
|
label="Data Encerramento"
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -117,6 +137,8 @@
|
|
|
<div class="col-5">
|
|
|
<DefaultSelect
|
|
|
v-model="form.package_id"
|
|
|
+ :error="!!validationErrors.class_package_unit_id"
|
|
|
+ :error-message="validationErrors.class_package_unit_id"
|
|
|
label="Pacote de Aulas"
|
|
|
:options="packages"
|
|
|
option-value="id"
|
|
|
@@ -129,6 +151,8 @@
|
|
|
<div class="col-7">
|
|
|
<DefaultInput
|
|
|
v-model="form.class_quantity"
|
|
|
+ :error="!!validationErrors.class_quantity"
|
|
|
+ :error-message="validationErrors.class_quantity"
|
|
|
label="Qtd. Aulas"
|
|
|
type="number"
|
|
|
disable
|
|
|
@@ -138,6 +162,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultSelect
|
|
|
v-model="form.weekday"
|
|
|
+ :error="!!validationErrors.weekday"
|
|
|
+ :error-message="validationErrors.weekday"
|
|
|
label="Dia da Semana"
|
|
|
:options="weekdays"
|
|
|
option-value="value"
|
|
|
@@ -150,6 +176,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInput
|
|
|
v-model="form.start_time"
|
|
|
+ :error="!!validationErrors.start_time"
|
|
|
+ :error-message="validationErrors.start_time"
|
|
|
label="Hora de Início"
|
|
|
mask="##:##"
|
|
|
>
|
|
|
@@ -162,6 +190,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInput
|
|
|
v-model="form.end_time"
|
|
|
+ :error="!!validationErrors.end_time"
|
|
|
+ :error-message="validationErrors.end_time"
|
|
|
label="Hora de Término"
|
|
|
mask="##:##"
|
|
|
>
|
|
|
@@ -174,6 +204,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultSelect
|
|
|
v-model="form.second_weekday"
|
|
|
+ :error="!!validationErrors.second_weekday"
|
|
|
+ :error-message="validationErrors.second_weekday"
|
|
|
label="2° Dia da Semana"
|
|
|
:options="weekdays"
|
|
|
option-value="value"
|
|
|
@@ -186,6 +218,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInput
|
|
|
v-model="form.second_start_time"
|
|
|
+ :error="!!validationErrors.second_start_time"
|
|
|
+ :error-message="validationErrors.second_start_time"
|
|
|
label="Hora de Início"
|
|
|
mask="##:##"
|
|
|
>
|
|
|
@@ -198,6 +232,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInput
|
|
|
v-model="form.second_end_time"
|
|
|
+ :error="!!validationErrors.second_end_time"
|
|
|
+ :error-message="validationErrors.second_end_time"
|
|
|
label="Hora de Término"
|
|
|
mask="##:##"
|
|
|
>
|
|
|
@@ -214,6 +250,8 @@
|
|
|
<div class="col-4">
|
|
|
<DefaultInput
|
|
|
v-model="form.due_day"
|
|
|
+ :error="!!validationErrors.due_day"
|
|
|
+ :error-message="validationErrors.due_day"
|
|
|
label="Dia de Vencimento"
|
|
|
type="number"
|
|
|
/>
|
|
|
@@ -225,6 +263,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultCurrencyInput
|
|
|
v-model="form.enrollment_fee"
|
|
|
+ :error="!!validationErrors.tax_register"
|
|
|
+ :error-message="validationErrors.tax_register"
|
|
|
label="Valor da Matrícula"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -233,6 +273,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultSelect
|
|
|
v-model="form.installments"
|
|
|
+ :error="!!validationErrors.installments"
|
|
|
+ :error-message="validationErrors.installments"
|
|
|
label="Qtde Parcelas"
|
|
|
:options="enrollmentInstallmentOptions"
|
|
|
option-value="value"
|
|
|
@@ -245,6 +287,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultCurrencyInput
|
|
|
:model-value="enrollmentInstallmentValue"
|
|
|
+ :error="!!validationErrors.installments"
|
|
|
+ :error-message="validationErrors.installments"
|
|
|
label="Valor da Parcela"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -253,6 +297,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultInputDatePicker
|
|
|
v-model="form.enrollment_due_date"
|
|
|
+ :error="!!validationErrors.enrollment_due_date"
|
|
|
+ :error-message="validationErrors.enrollment_due_date"
|
|
|
label="Data Vencimento"
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -263,6 +309,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultCurrencyInput
|
|
|
v-model="form.package_value"
|
|
|
+ :error="!!validationErrors.package_value"
|
|
|
+ :error-message="validationErrors.package_value"
|
|
|
label="Valor do Pacote"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -271,6 +319,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultSelect
|
|
|
v-model="form.package_installments"
|
|
|
+ :error="!!validationErrors.package_installments"
|
|
|
+ :error-message="validationErrors.package_installments"
|
|
|
label="Qtde Parcelas"
|
|
|
:options="packageInstallmentOptions"
|
|
|
option-value="value"
|
|
|
@@ -283,6 +333,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultCurrencyInput
|
|
|
:model-value="packageInstallmentValue"
|
|
|
+ :error="!!validationErrors.package_installments"
|
|
|
+ :error-message="validationErrors.package_installments"
|
|
|
label="Valor da Parcela"
|
|
|
disable
|
|
|
/>
|
|
|
@@ -291,6 +343,8 @@
|
|
|
<div class="col-3">
|
|
|
<DefaultInputDatePicker
|
|
|
v-model="form.package_due_date"
|
|
|
+ :error="!!validationErrors.package_due_date"
|
|
|
+ :error-message="validationErrors.package_due_date"
|
|
|
label="Data 1ª Parcela"
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -300,6 +354,8 @@
|
|
|
<div class="col-6">
|
|
|
<DefaultInput
|
|
|
v-model="form.early_payment_discount"
|
|
|
+ :error="!!validationErrors.early_payment_discount"
|
|
|
+ :error-message="validationErrors.early_payment_discount"
|
|
|
label="Desconto até o vencimento (%)"
|
|
|
type="number"
|
|
|
/>
|
|
|
@@ -308,6 +364,8 @@
|
|
|
<div class="col-6">
|
|
|
<DefaultSelect
|
|
|
v-model="form.payment_method"
|
|
|
+ :error="!!validationErrors.payment_method"
|
|
|
+ :error-message="validationErrors.payment_method"
|
|
|
label="Forma de Pagamento"
|
|
|
:options="paymentMethods"
|
|
|
option-value="value"
|
|
|
@@ -320,6 +378,8 @@
|
|
|
<div class="col-6">
|
|
|
<DefaultInput
|
|
|
v-model="form.interest_rate"
|
|
|
+ :error="!!validationErrors.interest_rate"
|
|
|
+ :error-message="validationErrors.interest_rate"
|
|
|
label="Juros (%) a.m"
|
|
|
type="number"
|
|
|
/>
|
|
|
@@ -328,6 +388,8 @@
|
|
|
<div class="col-6">
|
|
|
<DefaultInput
|
|
|
v-model="form.late_fee"
|
|
|
+ :error="!!validationErrors.fine_cancelled"
|
|
|
+ :error-message="validationErrors.fine_cancelled"
|
|
|
label="Multa (%)"
|
|
|
type="number"
|
|
|
/>
|
|
|
@@ -367,7 +429,8 @@
|
|
|
</template>
|
|
|
</DefaultTable>
|
|
|
</div>
|
|
|
- </q-card-section>
|
|
|
+ </q-card-section>
|
|
|
+ </q-scroll-area>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
@@ -783,7 +846,7 @@ const formattedBirthDate = computed(() =>
|
|
|
: "",
|
|
|
);
|
|
|
|
|
|
-const { loading: saving, execute } = useSubmitHandler({
|
|
|
+const { loading: saving, validationErrors, execute } = useSubmitHandler({
|
|
|
onSuccess: () => onDialogOK(true),
|
|
|
});
|
|
|
|