Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions resources/js/Components/StepActions.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<script setup>
import { useSlots } from 'vue';

const slots = useSlots();
</script>

<template>
<div class="flex w-full gap-6 mt-4" :class="{ 'justify-center': !slots.save }">
<div v-if="slots.save" class="flex-1">
<slot name="save" />
</div>
<div :class="slots.save ? 'flex-1' : 'w-1/2'">
<slot />
</div>
</div>
</template>
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ defineProps({
<v-btn
variant="outlined"
color="outlineSecondary"
class="rounded-lg"
class="w-full rounded-lg"
height="40"
:loading="loading"
:disabled="!canSave || loading"
v-bind="$attrs"
>
<slot>Salvar Alterações</slot>
<slot>Salvar alterações</slot>
</v-btn>
</template>
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,14 @@ const confirmTramit = () => {
</script>

<template>
<div class="w-full justify-center flex">
<v-btn
class="w-1/2 mt-4 !shadow-none !font-bold !bg-[#ffcc05FF] !text-[#2d353fFF] rounded-lg text-xs"
:loading="props.loading"
:disabled="props.disabled || props.loading"
data-cy="tramit-button"
@click="confirmTramit"
>
<slot>tramitar</slot>
</v-btn>
</div>
<v-btn
class="w-full !shadow-none !font-bold !bg-[#ffcc05FF] !text-[#2d353fFF] rounded-lg text-xs"
height="40"
:loading="props.loading"
:disabled="props.disabled || props.loading"
data-cy="tramit-button"
@click="confirmTramit"
>
<slot>tramitar</slot>
</v-btn>
</template>
18 changes: 10 additions & 8 deletions resources/js/Pages/ProjectDetails/Partials/Tabs/BudgetTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import SectionChips from '@/Components/SectionChips.vue';
import SectionContent from '@/Components/SectionContent.vue';
import SectionForm from '@/Components/SectionForm.vue';
import AuxLinks from '@/Components/AuxLinks.vue';
import StepActions from '@/Components/StepActions.vue';
import DocumentViewerDialog from '@/Components/DocumentViewerDialog.vue';
import ReturnProcessAction from '@/Components/ReturnProcessAction.vue';
import FormField from '@/Components/FormField.vue';
Expand Down Expand Up @@ -290,14 +291,10 @@ const permissionMessage = computed(() => {

<template #right-content>
<div class="space-y-6" data-cy="budget-right-panel">
<div class="flex items-center justify-between">
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<SaveButton :loading="form.processing" :can-save="canEditBudget" @click="submit" />
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>

<AuxLinks />
Expand Down Expand Up @@ -464,7 +461,12 @@ const permissionMessage = computed(() => {
</template>
</SectionForm>

<TramitButton :action="tramit" :disabled="!canEditBudget" :loading="tramitLoading" />
<StepActions>
<template #save>
<SaveButton :loading="form.processing" :can-save="canEditBudget" @click="submit" />
</template>
<TramitButton :action="tramit" :disabled="!canEditBudget" :loading="tramitLoading" />
</StepActions>
</div>
</div>
</template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import SectionChips from '@/Components/SectionChips.vue';
import SectionContent from '@/Components/SectionContent.vue';
import SectionForm from '@/Components/SectionForm.vue';
import AuxLinks from '@/Components/AuxLinks.vue';
import StepActions from '@/Components/StepActions.vue';
import ReturnProcessAction from '@/Components/ReturnProcessAction.vue';
import FormField from '@/Components/FormField.vue';
import TextField from '@/Components/TextField.vue';
Expand Down Expand Up @@ -365,14 +366,10 @@ const permissionMessage = computed(() => {

<template #right-content>
<div class="space-y-6" data-cy="right-panel">
<div class="flex items-center justify-between">
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<SaveButton :loading="form.processing" :can-save="canEditFormalization" @click="submit" />
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>

<AuxLinks />
Expand Down Expand Up @@ -595,12 +592,17 @@ const permissionMessage = computed(() => {
</template>
</SectionForm>

<TramitButton
:action="tramit"
:disabled="!canEditFormalization"
:loading="tramitLoading"
data-cy="tramit-button"
/>
<StepActions>
<template #save>
<SaveButton :loading="form.processing" :can-save="canEditFormalization" @click="submit" />
</template>
<TramitButton
:action="tramit"
:disabled="!canEditFormalization"
:loading="tramitLoading"
data-cy="tramit-button"
/>
</StepActions>
</div>
</div>
</template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import SplitScreenTab from '@/Components/SplitScreenTab.vue';
import SectionChips from '@/Components/SectionChips.vue';
import SectionContent from '@/Components/SectionContent.vue';
import AuxLinks from '@/Components/AuxLinks.vue';
import StepActions from '@/Components/StepActions.vue';
import DocumentEvaluationList from '@/Components/DocumentEvaluationList.vue';
import ReturnProcessAction from '@/Components/ReturnProcessAction.vue';
import TramitButton from '@/Pages/ProjectDetails/Partials/Tabs/Actions/TramitButton.vue';
Expand Down Expand Up @@ -117,15 +118,17 @@ const permissionMessage = computed(() => {
<p v-else class="text-sm text-gray-400">Nenhum documento encontrado para avaliação.</p>
</div>

<TramitButton
v-permission="{
condition: canEditLegalAnalysis,
message: permissionMessage,
}"
:action="process"
:disabled="!canEditLegalAnalysis || !allFilesValid"
:loading="in_progress"
/>
<StepActions>
<TramitButton
v-permission="{
condition: canEditLegalAnalysis,
message: permissionMessage,
}"
:action="process"
:disabled="!canEditLegalAnalysis || !allFilesValid"
:loading="in_progress"
/>
</StepActions>
</div>
</div>
</template>
Expand Down
49 changes: 29 additions & 20 deletions resources/js/Pages/ProjectDetails/Partials/Tabs/MonitoringTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -235,14 +235,9 @@ function submit() {

<template #right-content>
<div class="space-y-6">
<div class="flex items-center justify-between">
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<div class="flex gap-2">
<SaveButton :loading="form.processing" :can-save="canUserHandleMonitoring" @click="submit" />
</div>
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<aux-links />
<div class="flex items-center justify-between">
Expand Down Expand Up @@ -305,18 +300,32 @@ function submit() {
</template>
</section-form>
<!-- BOTÃO DE AÇÃO -->
<div v-if="monitoringStage?.status === 'em_andamento'" class="flex gap-2">
<v-btn
v-if="canRequestNextInstallment"
variant="outlined"
color="primary"
class="rounded-lg mt-4"
:loading="requestingNextInstallment"
:disabled="requestingNextInstallment || !canUserHandleMonitoring"
@click="requestNextInstallment"
>
Solicitar próxima parcela
</v-btn>
<div
v-if="monitoringStage?.status === 'em_andamento'"
class="flex flex-col gap-6 w-full max-w-[596px] mx-auto mt-4"
>
<div class="flex gap-4">
<div class="flex-1">
<save-button
:loading="form.processing"
:can-save="canUserHandleMonitoring"
@click="submit"
/>
</div>
<div v-if="canRequestNextInstallment" class="flex-1">
<v-btn
variant="outlined"
color="outlineSecondary"
class="w-full rounded-lg"
height="40"
:loading="requestingNextInstallment"
:disabled="requestingNextInstallment || !canUserHandleMonitoring"
@click="requestNextInstallment"
>
Solicitar próxima <strong class="ml-1">parcela</strong>
</v-btn>
</div>
</div>
<tramit-button :action="tramit" :loading="tramitLoading" :disabled="!canUserHandleMonitoring" />
</div>
</div>
Expand Down
17 changes: 9 additions & 8 deletions resources/js/Pages/ProjectDetails/Partials/Tabs/OpeningTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import SectionChips from '@/Components/SectionChips.vue';
import SectionContent from '@/Components/SectionContent.vue';
import SectionForm from '@/Components/SectionForm.vue';
import AuxLinks from '@/Components/AuxLinks.vue';
import StepActions from '@/Components/StepActions.vue';
import { viewSections, formSections } from '@/Schemas/Opening';
import { router, useForm } from '@inertiajs/vue3';
import { onMounted } from 'vue';
Expand Down Expand Up @@ -329,13 +330,8 @@ const activeEditIndex = ref('all');
<template #right-content>
<div class="space-y-6">
<div>
<div class="flex items-center justify-between">
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<SaveButton :loading="form.processing" :can-save="canEditOpening" @click="submit" />
</div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<aux-links />
<section-chips v-model="activeEditIndex" :sections="formSections" />
Expand Down Expand Up @@ -499,7 +495,12 @@ const activeEditIndex = ref('all');
</template>
</template>
</section-form>
<tramit-button :action="tramit" :disabled="!canUserHandleOpening" :loading="tramitLoading" />
<step-actions>
<template #save>
<save-button :loading="form.processing" :can-save="canEditOpening" @click="submit" />
</template>
<tramit-button :action="tramit" :disabled="!canUserHandleOpening" :loading="tramitLoading" />
</step-actions>
</div>
</div>
</template>
Expand Down
50 changes: 26 additions & 24 deletions resources/js/Pages/ProjectDetails/Partials/Tabs/PaymentTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import ReturnProcessAction from '@/Components/ReturnProcessAction.vue';
import FormField from '@/Components/FormField.vue';
import TextField from '@/Components/TextField.vue';
import AuxLinks from '@/Components/AuxLinks.vue';
import StepActions from '@/Components/StepActions.vue';

import TramitButton from '@/Pages/ProjectDetails/Partials/Tabs/Actions/TramitButton.vue';
import SaveButton from '@/Pages/ProjectDetails/Partials/Tabs/Actions/SaveButton.vue';
Expand Down Expand Up @@ -408,18 +409,10 @@ const tramit = async () => {

<template #right-content>
<div class="space-y-6">
<div class="flex items-center justify-between">
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>
<div>
<p class="font-bold text-lg">Campos para você inserir ou editar dados</p>

<SaveButton
:loading="remarksForm.processing || tramitLoading"
:can-save="canUserHandlePayment && !!selectedInstallment"
@click="saveRemarks"
/>
<p class="font-bold text-md mt-2 text-black">Links auxiliares</p>
</div>

<AuxLinks />
Expand Down Expand Up @@ -597,21 +590,30 @@ const tramit = async () => {
</template>
</SectionForm>

<div
:class="{
'cursor-not-allowed': !canTramitPayment,
}"
@click="showTramitBlockedMessage"
>
<TramitButton
:action="tramit"
:disabled="!canTramitPayment"
:loading="tramitLoading"
<StepActions>
<template #save>
<SaveButton
:loading="remarksForm.processing || tramitLoading"
:can-save="canUserHandlePayment && !!selectedInstallment"
@click="saveRemarks"
/>
</template>
<div
:class="{
'pointer-events-none': !canTramitPayment,
'cursor-not-allowed': !canTramitPayment,
}"
/>
</div>
@click="showTramitBlockedMessage"
>
<TramitButton
:action="tramit"
:disabled="!canTramitPayment"
:loading="tramitLoading"
:class="{
'pointer-events-none': !canTramitPayment,
}"
/>
</div>
</StepActions>
</div>
</template>
</SplitScreenTab>
Expand Down
Loading