pagina escala completa

This commit is contained in:
ka-lucas 2025-05-06 11:21:31 -03:00
parent b990a88325
commit 374ebe8ac6
3 changed files with 21 additions and 17 deletions

View File

@ -112,49 +112,49 @@
<div class="mb-4"> <div class="mb-4">
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="0" :value="1"
label="Domingo" label="Domingo"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="1" :value="2"
label="Segunda" label="Segunda"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="2" :value="3"
label="Terça" label="Terça"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="3" :value="4"
label="Quarta" label="Quarta"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="4" :value="5"
label="Quinta" label="Quinta"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="5" :value="6"
label="Sexta" label="Sexta"
hide-details hide-details
class="d-inline-block mr-4" class="d-inline-block mr-4"
></v-checkbox> ></v-checkbox>
<v-checkbox <v-checkbox
v-model="form.dias_semana" v-model="form.dias_semana"
:value="6" :value="7"
label="Sábado" label="Sábado"
hide-details hide-details
class="d-inline-block" class="d-inline-block"

View File

@ -112,7 +112,7 @@ export const useShiftStore = defineStore('shifts', {
end_time: shiftData.end_time, end_time: shiftData.end_time,
interval_start: shiftData.interval_start, interval_start: shiftData.interval_start,
interval_end: shiftData.interval_end, interval_end: shiftData.interval_end,
type_interval: shiftData.type_interval || 'manual', // "manual" ou "automatic" dependendo da checkbox type_interval: shiftData.type_interval, // "manual" ou "automatic" dependendo da checkbox
description: shiftData.description || '', description: shiftData.description || '',
tolerance: shiftData.tolerance || 0, tolerance: shiftData.tolerance || 0,
service_instance_id: authStore.service_instance_id, service_instance_id: authStore.service_instance_id,
@ -166,7 +166,7 @@ export const useShiftStore = defineStore('shifts', {
end_time: shiftData.saida_final, end_time: shiftData.saida_final,
interval_start: shiftData.saida_almoco, interval_start: shiftData.saida_almoco,
interval_end: shiftData.retorno_almoco, interval_end: shiftData.retorno_almoco,
type_interval: shiftData.almoco_automatico ? 'Automatico' : 'Manual', // "manual" ou "automatic" dependendo da checkbox type_interval: shiftData.almoco_automatico ? 'automatic' : 'Manual', // "manual" ou "automatic" dependendo da checkbox
description: shiftData.descricao || '', description: shiftData.descricao || '',
tolerance: shiftData.tolerancia || 0, tolerance: shiftData.tolerancia || 0,
service_instance_id: authStore.service_instance_id, service_instance_id: authStore.service_instance_id,

View File

@ -65,8 +65,9 @@
</div> </div>
</template> </template>
<template v-slot:item.almoco_type="{ item }"> <template v-slot:item.almoco_type="{ item }">
{{ item.type_interval === 'automatic' ? 'Automatico' : 'Manual' }} {{ item.almoco_type }}
</template> </template>
<template v-slot:item.actions="{ item }"> <template v-slot:item.actions="{ item }">
<v-icon size="small" class="mr-2" @click="openEditShiftDialog(item.id)">mdi-pencil</v-icon> <v-icon size="small" class="mr-2" @click="openEditShiftDialog(item.id)">mdi-pencil</v-icon>
<v-icon size="small" @click="confirmDelete('shift', item)">mdi-delete</v-icon> <v-icon size="small" @click="confirmDelete('shift', item)">mdi-delete</v-icon>
@ -175,8 +176,11 @@ export default {
shifts.value = data.map(shift => ({ shifts.value = data.map(shift => ({
...shift, ...shift,
formatted_days: formatDays(shift.time_schedules), formatted_days: formatDays(shift.time_schedules),
horarios: formatFullSchedule(shift) horarios: formatFullSchedule(shift),
almoco_type: shift.type_interval?.toLowerCase() === 'automatic' ? 'Automático' : 'Manual'
})); }));
} catch { } catch {
showNotification('Erro ao carregar escalas', 'error'); showNotification('Erro ao carregar escalas', 'error');
} finally { } finally {
@ -229,13 +233,13 @@ export default {
}; };
const handleCreatedShift = async () => { const handleCreatedShift = async () => {
await shiftStore.fetchShifts(); // função que carrega os turnos da API await fetchShifts();
showNotification('Escala criada com sucesso!'); showNotification('Escala criada com sucesso!');
dialogs.value.createShift = false; dialogs.value.createShift = false;
}; };
const handleEditedShift = async () => { const handleEditedShift = async () => {
await shiftStore.fetchShifts(); // 🔁 recarrega os dados atualizados da API await fetchShifts();
dialogs.value.editShift = false; // fecha o modal dialogs.value.editShift = false;
showNotification('Escala atualizada com sucesso!'); showNotification('Escala atualizada com sucesso!');
}; };
@ -273,16 +277,16 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.header-container { .header-container {
display: flex; display: flex;
background-color: #ffffff;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
padding: 20px; padding: 0 0 20px 0;
border-bottom: 1px solid #ffffff; border-bottom: 1px solid #eaecef;
} }
.header-left { .header-left {