|
@@ -1,171 +1,177 @@
|
|
|
<template>
|
|
<template>
|
|
|
<q-dialog ref="dialogRef" @hide="onDialogHide">
|
|
<q-dialog ref="dialogRef" @hide="onDialogHide">
|
|
|
- <q-card class="q-dialog-plugin overflow-hidden" style="width: 1000px; max-width: 90vw">
|
|
|
|
|
- <DefaultDialogHeader :title="title" @close="onDialogCancel" />
|
|
|
|
|
|
|
+ <q-card class="q-dialog-plugin column full-width" style="width: 900px; max-width: 80vw;height: 90vh;">
|
|
|
|
|
+ <DefaultDialogHeader :title="title" class="col-12" @close="onDialogCancel"/>
|
|
|
|
|
|
|
|
<q-tabs v-model="tab" dense class="text-grey" active-color="primary" indicator-color="primary" align="justify">
|
|
<q-tabs v-model="tab" dense class="text-grey" active-color="primary" indicator-color="primary" align="justify">
|
|
|
<q-tab name="data" label="Dados" />
|
|
<q-tab name="data" label="Dados" />
|
|
|
<q-tab v-if="provider" name="addresses" :label="$t('address.tab')" />
|
|
<q-tab v-if="provider" name="addresses" :label="$t('address.tab')" />
|
|
|
<q-tab v-if="provider" name="payment_methods" :label="$t('provider_payment_methods.header')" />
|
|
<q-tab v-if="provider" name="payment_methods" :label="$t('provider_payment_methods.header')" />
|
|
|
|
|
+ <q-tab v-if="provider" name="working_days" :label="$t('provider_working_days.header')" />
|
|
|
</q-tabs>
|
|
</q-tabs>
|
|
|
|
|
|
|
|
<q-separator v-if="provider" />
|
|
<q-separator v-if="provider" />
|
|
|
|
|
+ <div class="col no-padding scroll">
|
|
|
|
|
+ <q-tab-panels v-model="tab" animated>
|
|
|
|
|
+ <q-tab-panel name="data">
|
|
|
|
|
+ <q-form ref="formRef" @submit="onOKClick">
|
|
|
|
|
+ <q-card-section class="row q-col-gutter-sm no-padding scroll">
|
|
|
|
|
+ <UserSelect
|
|
|
|
|
+ v-model="selectedUser"
|
|
|
|
|
+ :label="$t('common.terms.user')"
|
|
|
|
|
+ :rules="[inputRules.required]"
|
|
|
|
|
+ :error="!!serverErrors?.user_id"
|
|
|
|
|
+ :error-message="serverErrors?.user_id"
|
|
|
|
|
+ :initial-id="provider ? provider.user_id : null"
|
|
|
|
|
+ class="col-md-6 col-12"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <q-tab-panels v-model="tab" animated>
|
|
|
|
|
- <q-tab-panel name="data">
|
|
|
|
|
- <q-form ref="formRef" @submit="onOKClick">
|
|
|
|
|
- <q-card-section class="row q-col-gutter-sm">
|
|
|
|
|
- <UserSelect
|
|
|
|
|
- v-model="selectedUser"
|
|
|
|
|
- :label="$t('common.terms.user')"
|
|
|
|
|
- :rules="[inputRules.required]"
|
|
|
|
|
- :error="!!serverErrors?.user_id"
|
|
|
|
|
- :error-message="serverErrors?.user_id"
|
|
|
|
|
- :initial-id="provider ? provider.user_id : null"
|
|
|
|
|
- class="col-md-6 col-12"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <q-input
|
|
|
|
|
- v-model="form.document"
|
|
|
|
|
- :mask="documentMask"
|
|
|
|
|
- fill-mask
|
|
|
|
|
- unmasked-value
|
|
|
|
|
- :label="$t('provider.fields.document')"
|
|
|
|
|
- :rules="[inputRules.required, validateDocument]"
|
|
|
|
|
- :error="!!serverErrors?.document"
|
|
|
|
|
- :error-message="serverErrors?.document"
|
|
|
|
|
- class="col-md-6 col-12"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <q-input
|
|
|
|
|
- v-model="form.rg"
|
|
|
|
|
- mask="##.###.###-#"
|
|
|
|
|
- fill-mask
|
|
|
|
|
- :label="$t('provider.fields.rg')"
|
|
|
|
|
- :error="!!serverErrors?.rg"
|
|
|
|
|
- :error-message="serverErrors?.rg"
|
|
|
|
|
- class="col-md-6 col-12"
|
|
|
|
|
- />
|
|
|
|
|
- <DefaultInputDatePicker
|
|
|
|
|
- v-model:untreated-date="form.birth_date"
|
|
|
|
|
- :label="$t('provider.fields.birth_date')"
|
|
|
|
|
- :error="serverErrors?.birth_date"
|
|
|
|
|
- :error-message="serverErrors?.birth_date"
|
|
|
|
|
- class="col-md-6 col-12"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <DefaultCurrencyInput
|
|
|
|
|
- v-model="form.daily_price_8h"
|
|
|
|
|
- :label="$t('provider.fields.daily_price_8h')"
|
|
|
|
|
- :error="!!serverErrors?.daily_price_8h"
|
|
|
|
|
- :error-message="serverErrors?.daily_price_8h"
|
|
|
|
|
- :hint="$t('provider.hints.daily_price')"
|
|
|
|
|
- lazy-rules
|
|
|
|
|
- class="col-md-3 col-6"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <DefaultCurrencyInput
|
|
|
|
|
- v-model="form.daily_price_6h"
|
|
|
|
|
- :label="$t('provider.fields.daily_price_6h')"
|
|
|
|
|
- :error="!!serverErrors?.daily_price_6h"
|
|
|
|
|
- :error-message="serverErrors?.daily_price_6h"
|
|
|
|
|
- disable
|
|
|
|
|
- class="col-md-3 col-6"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <DefaultCurrencyInput
|
|
|
|
|
- v-model="form.daily_price_4h"
|
|
|
|
|
- :label="$t('provider.fields.daily_price_4h')"
|
|
|
|
|
- :error="!!serverErrors?.daily_price_4h"
|
|
|
|
|
- :error-message="serverErrors?.daily_price_4h"
|
|
|
|
|
- disable
|
|
|
|
|
- class="col-md-3 col-6"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <DefaultCurrencyInput
|
|
|
|
|
- v-model="form.daily_price_2h"
|
|
|
|
|
- :label="$t('provider.fields.daily_price_2h')"
|
|
|
|
|
- :error="!!serverErrors?.daily_price_2h"
|
|
|
|
|
- :error-message="serverErrors?.daily_price_2h"
|
|
|
|
|
- disable
|
|
|
|
|
- class="col-md-3 col-6"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <div class="col-12">
|
|
|
|
|
- <q-checkbox
|
|
|
|
|
- v-model="form.is_approved"
|
|
|
|
|
- :label="$t('provider.fields.is_approved')"
|
|
|
|
|
|
|
+ <q-input
|
|
|
|
|
+ v-model="form.document"
|
|
|
|
|
+ :mask="documentMask"
|
|
|
|
|
+ fill-mask
|
|
|
|
|
+ unmasked-value
|
|
|
|
|
+ :label="$t('provider.fields.document')"
|
|
|
|
|
+ :rules="[inputRules.required, validateDocument]"
|
|
|
|
|
+ :error="!!serverErrors?.document"
|
|
|
|
|
+ :error-message="serverErrors?.document"
|
|
|
|
|
+ class="col-md-6 col-12"
|
|
|
/>
|
|
/>
|
|
|
- </div>
|
|
|
|
|
|
|
|
|
|
- <ProviderSpecialitiesPanel v-if="provider" :provider-id="provider.id" />
|
|
|
|
|
|
|
+ <q-input
|
|
|
|
|
+ v-model="form.rg"
|
|
|
|
|
+ mask="##.###.###-#"
|
|
|
|
|
+ fill-mask
|
|
|
|
|
+ :label="$t('provider.fields.rg')"
|
|
|
|
|
+ :error="!!serverErrors?.rg"
|
|
|
|
|
+ :error-message="serverErrors?.rg"
|
|
|
|
|
+ class="col-md-6 col-12"
|
|
|
|
|
+ />
|
|
|
|
|
+ <DefaultInputDatePicker
|
|
|
|
|
+ v-model:untreated-date="form.birth_date"
|
|
|
|
|
+ :label="$t('provider.fields.birth_date')"
|
|
|
|
|
+ :error="serverErrors?.birth_date"
|
|
|
|
|
+ :error-message="serverErrors?.birth_date"
|
|
|
|
|
+ class="col-md-6 col-12"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <ProviderServicesTypesPanel v-if="provider" :provider-id="provider.id" />
|
|
|
|
|
|
|
+ <DefaultCurrencyInput
|
|
|
|
|
+ v-model="form.daily_price_8h"
|
|
|
|
|
+ :label="$t('provider.fields.daily_price_8h')"
|
|
|
|
|
+ :error="!!serverErrors?.daily_price_8h"
|
|
|
|
|
+ :error-message="serverErrors?.daily_price_8h"
|
|
|
|
|
+ :hint="$t('provider.hints.daily_price')"
|
|
|
|
|
+ lazy-rules
|
|
|
|
|
+ class="col-md-3 col-6"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <div class="col-12 q-mt-md">
|
|
|
|
|
- <div class="row q-col-gutter-md">
|
|
|
|
|
- <div class="col-auto flex items-center">
|
|
|
|
|
- <q-avatar size="80px" color="grey-3">
|
|
|
|
|
- <q-icon name="mdi-account" size="50px" color="grey-6" />
|
|
|
|
|
- </q-avatar>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <DefaultCurrencyInput
|
|
|
|
|
+ v-model="form.daily_price_6h"
|
|
|
|
|
+ :label="$t('provider.fields.daily_price_6h')"
|
|
|
|
|
+ :error="!!serverErrors?.daily_price_6h"
|
|
|
|
|
+ :error-message="serverErrors?.daily_price_6h"
|
|
|
|
|
+ disable
|
|
|
|
|
+ class="col-md-3 col-6"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <div class="col row q-col-gutter-sm">
|
|
|
|
|
- <div class="col-md-6 col-12">
|
|
|
|
|
- <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
- {{ $t('provider.fields.average_rating') }}
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="text-body1 text-weight-medium">
|
|
|
|
|
- {{ provider?.average_rating || '-' }}
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <DefaultCurrencyInput
|
|
|
|
|
+ v-model="form.daily_price_4h"
|
|
|
|
|
+ :label="$t('provider.fields.daily_price_4h')"
|
|
|
|
|
+ :error="!!serverErrors?.daily_price_4h"
|
|
|
|
|
+ :error-message="serverErrors?.daily_price_4h"
|
|
|
|
|
+ disable
|
|
|
|
|
+ class="col-md-3 col-6"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <div class="col-md-6 col-12">
|
|
|
|
|
- <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
- {{ $t('provider.fields.total_services') }}
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="text-body1 text-weight-medium">
|
|
|
|
|
- {{ provider?.total_services || '0' }}
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <DefaultCurrencyInput
|
|
|
|
|
+ v-model="form.daily_price_2h"
|
|
|
|
|
+ :label="$t('provider.fields.daily_price_2h')"
|
|
|
|
|
+ :error="!!serverErrors?.daily_price_2h"
|
|
|
|
|
+ :error-message="serverErrors?.daily_price_2h"
|
|
|
|
|
+ disable
|
|
|
|
|
+ class="col-md-3 col-6"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <div class="col-12">
|
|
|
|
|
+ <q-checkbox
|
|
|
|
|
+ v-model="form.is_approved"
|
|
|
|
|
+ :label="$t('provider.fields.is_approved')"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <ProviderSpecialitiesPanel v-if="provider" :provider-id="provider.id" />
|
|
|
|
|
+
|
|
|
|
|
+ <ProviderServicesTypesPanel v-if="provider" :provider-id="provider.id" />
|
|
|
|
|
+
|
|
|
|
|
+ <div class="col-12 q-mt-md">
|
|
|
|
|
+ <div class="row q-col-gutter-md">
|
|
|
|
|
+ <div class="col-auto flex items-center">
|
|
|
|
|
+ <q-avatar size="80px" color="grey-3">
|
|
|
|
|
+ <q-icon name="mdi-account" size="50px" color="grey-6" />
|
|
|
|
|
+ </q-avatar>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="col-md-6 col-12">
|
|
|
|
|
- <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
- {{ $t('provider.fields.selfie_verified') }}
|
|
|
|
|
|
|
+ <div class="col row q-col-gutter-sm">
|
|
|
|
|
+ <div class="col-md-6 col-12">
|
|
|
|
|
+ <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
+ {{ $t('provider.fields.average_rating') }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-body1 text-weight-medium">
|
|
|
|
|
+ {{ provider?.average_rating || '-' }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="text-body1 text-weight-medium">
|
|
|
|
|
- {{ provider?.selfie_verified ? $t('common.status.yes') : $t('common.status.no') }}
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div class="col-md-6 col-12">
|
|
|
|
|
+ <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
+ {{ $t('provider.fields.total_services') }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-body1 text-weight-medium">
|
|
|
|
|
+ {{ provider?.total_services || '0' }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
|
|
|
|
- <div class="col-md-6 col-12">
|
|
|
|
|
- <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
- {{ $t('provider.fields.document_verified') }}
|
|
|
|
|
|
|
+ <div class="col-md-6 col-12">
|
|
|
|
|
+ <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
+ {{ $t('provider.fields.selfie_verified') }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-body1 text-weight-medium">
|
|
|
|
|
+ {{ provider?.selfie_verified ? $t('common.status.yes') : $t('common.status.no') }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="text-body1 text-weight-medium">
|
|
|
|
|
- {{ provider?.document_verified ? $t('common.status.yes') : $t('common.status.no') }}
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div class="col-md-6 col-12">
|
|
|
|
|
+ <div class="text-subtitle2 text-grey-7">
|
|
|
|
|
+ {{ $t('provider.fields.document_verified') }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-body1 text-weight-medium">
|
|
|
|
|
+ {{ provider?.document_verified ? $t('common.status.yes') : $t('common.status.no') }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- </q-card-section>
|
|
|
|
|
- <q-card-actions align="center">
|
|
|
|
|
- <q-btn color="primary" label="Cancel" @click="onDialogCancel" />
|
|
|
|
|
- <q-space />
|
|
|
|
|
- <q-btn color="primary" label="OK" :type="'submit'" :loading="loading" :disable="!hasUpdatedFields" />
|
|
|
|
|
- </q-card-actions>
|
|
|
|
|
- </q-form>
|
|
|
|
|
- </q-tab-panel>
|
|
|
|
|
-
|
|
|
|
|
- <q-tab-panel v-if="provider" name="addresses">
|
|
|
|
|
- <AddressesPanel :source="'provider'" :source-id="provider.id" />
|
|
|
|
|
- </q-tab-panel>
|
|
|
|
|
-
|
|
|
|
|
- <q-tab-panel v-if="provider" name="payment_methods">
|
|
|
|
|
- <ProviderPaymentMethodsPanel :provider-id="provider.id" />
|
|
|
|
|
- </q-tab-panel>
|
|
|
|
|
- </q-tab-panels>
|
|
|
|
|
|
|
+ </q-card-section>
|
|
|
|
|
+ </q-form>
|
|
|
|
|
+ </q-tab-panel>
|
|
|
|
|
+
|
|
|
|
|
+ <q-tab-panel v-if="provider" name="addresses">
|
|
|
|
|
+ <AddressesPanel :source="'provider'" :source-id="provider.id" />
|
|
|
|
|
+ </q-tab-panel>
|
|
|
|
|
+
|
|
|
|
|
+ <q-tab-panel v-if="provider" name="payment_methods">
|
|
|
|
|
+ <ProviderPaymentMethodsPanel :provider-id="provider.id" />
|
|
|
|
|
+ </q-tab-panel>
|
|
|
|
|
+
|
|
|
|
|
+ <q-tab-panel v-if="provider" name="working_days">
|
|
|
|
|
+ <ProviderWorkingDaysPanel :provider-id="provider.id" />
|
|
|
|
|
+ </q-tab-panel>
|
|
|
|
|
+ </q-tab-panels>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <q-card-actions align="center" class="">
|
|
|
|
|
+ <q-btn color="primary" label="Cancel" @click="onDialogCancel" />
|
|
|
|
|
+ <q-space />
|
|
|
|
|
+ <q-btn color="primary" label="OK" :type="'submit'" :loading="loading" :disable="!hasUpdatedFields" />
|
|
|
|
|
+ </q-card-actions>
|
|
|
</q-card>
|
|
</q-card>
|
|
|
</q-dialog>
|
|
</q-dialog>
|
|
|
</template>
|
|
</template>
|
|
@@ -186,6 +192,7 @@ import AddressesPanel from "src/pages/address/components/AddressesPanel.vue";
|
|
|
import ProviderSpecialitiesPanel from "./ProviderSpecialitiesPanel.vue";
|
|
import ProviderSpecialitiesPanel from "./ProviderSpecialitiesPanel.vue";
|
|
|
import ProviderServicesTypesPanel from "./ProviderServicesTypesPanel.vue";
|
|
import ProviderServicesTypesPanel from "./ProviderServicesTypesPanel.vue";
|
|
|
import ProviderPaymentMethodsPanel from "./ProviderPaymentMethodsPanel.vue";
|
|
import ProviderPaymentMethodsPanel from "./ProviderPaymentMethodsPanel.vue";
|
|
|
|
|
+import ProviderWorkingDaysPanel from "./ProviderWorkingDaysPanel.vue";
|
|
|
|
|
|
|
|
defineEmits([
|
|
defineEmits([
|
|
|
...useDialogPluginComponent.emits,
|
|
...useDialogPluginComponent.emits,
|