updates
This commit is contained in:
parent
577c21e601
commit
d3b93b710d
|
@ -111,7 +111,7 @@ const onDataSaved = async () => {
|
||||||
:filter="filterBanks"
|
:filter="filterBanks"
|
||||||
@on-fetch="(data) => (bankOptions = data)"
|
@on-fetch="(data) => (bankOptions = data)"
|
||||||
auto-load
|
auto-load
|
||||||
url="dAccountings"
|
url="Accountings"
|
||||||
/>
|
/>
|
||||||
<fetch-data
|
<fetch-data
|
||||||
:filter="filterClientFindOne"
|
:filter="filterClientFindOne"
|
||||||
|
|
|
@ -216,6 +216,7 @@ const entriesTableColumns = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const copyOriginalRowsData = (rows) => {
|
const copyOriginalRowsData = (rows) => {
|
||||||
|
// el objetivo de esto es guardar los valores iniciales de todas las rows para evitar guardar cambios si la data no cambió al disparar los eventos
|
||||||
originalRowDataCopy.value = JSON.parse(JSON.stringify(rows));
|
originalRowDataCopy.value = JSON.parse(JSON.stringify(rows));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ async function insert() {
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<FetchData
|
<FetchData
|
||||||
url="Accountidngs"
|
url="Accountings"
|
||||||
auto-load
|
auto-load
|
||||||
limit="30"
|
limit="30"
|
||||||
@on-fetch="(data) => (banks = data)"
|
@on-fetch="(data) => (banks = data)"
|
||||||
|
|
|
@ -8,7 +8,7 @@ import FetchData from 'components/FetchData.vue';
|
||||||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const showChangeStateDialog = ref(false);
|
const showSplitDialog = ref(false);
|
||||||
const newState = ref(null);
|
const newState = ref(null);
|
||||||
const resultSplit = ref([]);
|
const resultSplit = ref([]);
|
||||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||||
|
@ -25,7 +25,7 @@ onMounted(() => {
|
||||||
|
|
||||||
const updateState = async () => {
|
const updateState = async () => {
|
||||||
try {
|
try {
|
||||||
showChangeStateDialog.value = true;
|
showSplitDialog.value = true;
|
||||||
const rowsToUpdate = $props.tickets.map(({ ticketFk }) =>
|
const rowsToUpdate = $props.tickets.map(({ ticketFk }) =>
|
||||||
axios.post(`Tickets/state`, {
|
axios.post(`Tickets/state`, {
|
||||||
ticketFk,
|
ticketFk,
|
||||||
|
@ -39,47 +39,10 @@ const updateState = async () => {
|
||||||
dialogRef.value.hide({ type: 'refresh', refresh: true });
|
dialogRef.value.hide({ type: 'refresh', refresh: true });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const step = ref(1);
|
|
||||||
|
|
||||||
const labelStepperBtn = (step) => {
|
|
||||||
switch (step) {
|
|
||||||
case 1:
|
|
||||||
return 'Split';
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
return 'Finish';
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 'Continue';
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const clickStepperBtn = () => {
|
|
||||||
switch (stepperRef.value.modelValue) {
|
|
||||||
case 1:
|
|
||||||
split();
|
|
||||||
default:
|
|
||||||
stepperRef.value.next();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const statusStepperBtn = () => {
|
|
||||||
switch (stepperRef.value.modelValue) {
|
|
||||||
case 1:
|
|
||||||
return ticketsSelected.value.length < 1;
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const split = async (data = ticketsSelected.value) => {
|
|
||||||
await axios.post(`Tickets/split`, data);
|
|
||||||
resultSplit.value = data;
|
|
||||||
};
|
|
||||||
const stepperRef = ref(null);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<QDialog ref="dialogRef" @hide="onDialogHide" v-model="showChangeStateDialog">
|
<QDialog ref="dialogRef" @hide="onDialogHide" v-model="showSplitDialog">
|
||||||
<QCard class="q-pa-sm">
|
<QCard class="q-pa-sm">
|
||||||
<QCardSection class="row items-center q-pb-none">
|
<QCardSection class="row items-center q-pb-none">
|
||||||
<QAvatar
|
<QAvatar
|
||||||
|
@ -96,28 +59,8 @@ const stepperRef = ref(null);
|
||||||
<QBtn icon="close" flat round dense v-close-popup />
|
<QBtn icon="close" flat round dense v-close-popup />
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QCardSection class="row items-center justify-center column items-stretch">
|
<QCardSection class="row items-center justify-center column items-stretch">
|
||||||
{{ tickets }}
|
{{ tickets
|
||||||
<QStepper v-model="step" ref="stepperRef" color="primary" animated>
|
}}<VnPaginate data-key="splitLack" :data="tickets">
|
||||||
<QStep :name="1" title="Confirm tickets to split" icon="settings">
|
|
||||||
{{ ticketsSelected }}
|
|
||||||
<div>
|
|
||||||
<QCheckbox
|
|
||||||
class="q-pa-md"
|
|
||||||
v-for="(ticket, index) in tickets"
|
|
||||||
:key="index"
|
|
||||||
v-model="ticketsSelected"
|
|
||||||
:label="` Ticket: ${ticket.ticketFk}`"
|
|
||||||
:val="ticket.ticketFk"
|
|
||||||
>
|
|
||||||
</QCheckbox>
|
|
||||||
</div>
|
|
||||||
</QStep>
|
|
||||||
<QStep
|
|
||||||
:name="2"
|
|
||||||
title="Handle tickets splitted"
|
|
||||||
icon="settings"
|
|
||||||
:done="step > 2"
|
|
||||||
><VnPaginate data-key="splitLack" :data="tickets">
|
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<QTable :rows="rows" :columns="columns">
|
<QTable :rows="rows" :columns="columns">
|
||||||
<template #header="props">
|
<template #header="props">
|
||||||
|
@ -134,27 +77,8 @@ const stepperRef = ref(null);
|
||||||
<template #body="props">
|
<template #body="props">
|
||||||
<QTr :props="props"></QTr
|
<QTr :props="props"></QTr
|
||||||
></template> </QTable
|
></template> </QTable
|
||||||
></template> </VnPaginate
|
></template>
|
||||||
></QStep>
|
</VnPaginate>
|
||||||
<template #navigation>
|
|
||||||
<QStepperNavigation>
|
|
||||||
<QBtn
|
|
||||||
@click="clickStepperBtn"
|
|
||||||
color="primary"
|
|
||||||
:label="labelStepperBtn(step)"
|
|
||||||
:disabled="statusStepperBtn()"
|
|
||||||
/>
|
|
||||||
<QBtn
|
|
||||||
v-if="step > 1"
|
|
||||||
flat
|
|
||||||
color="primary"
|
|
||||||
@click="stepperRef.previous()"
|
|
||||||
label="Back"
|
|
||||||
class="q-ml-sm"
|
|
||||||
/>
|
|
||||||
</QStepperNavigation>
|
|
||||||
</template>
|
|
||||||
</QStepper>
|
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QCardActions align="right">
|
<QCardActions align="right">
|
||||||
<QBtn :label="t('globals.next')" color="primary" flat v-close-popup />
|
<QBtn :label="t('globals.next')" color="primary" flat v-close-popup />
|
||||||
|
|
|
@ -315,6 +315,10 @@ const handleRows = (rows) => {
|
||||||
if (showFree.value) return rows.filter(({ alertLevel }) => alertLevel === 0);
|
if (showFree.value) return rows.filter(({ alertLevel }) => alertLevel === 0);
|
||||||
return rows.sort(freeFirst);
|
return rows.sort(freeFirst);
|
||||||
};
|
};
|
||||||
|
const split = async (data = selectedRows.value) => {
|
||||||
|
await axios.post(`Tickets/split`, data);
|
||||||
|
resultSplit.value = data;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -360,7 +364,14 @@ const handleRows = (rows) => {
|
||||||
</QBtn>
|
</QBtn>
|
||||||
<QBtn
|
<QBtn
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="showSplitDialog = true"
|
@click="
|
||||||
|
openConfirmationModal(
|
||||||
|
t('negative.detail.split.title'),
|
||||||
|
t('negative.detail.split.subTitle'),
|
||||||
|
() => split,
|
||||||
|
() => (showSplitDialog = true)
|
||||||
|
)
|
||||||
|
"
|
||||||
:disable="selectedRows.length < 1"
|
:disable="selectedRows.length < 1"
|
||||||
icon="call_split"
|
icon="call_split"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in New Issue