forked from verdnatura/salix-front
perf: TicketTransferSale
This commit is contained in:
parent
071f3ba4d0
commit
b8dea8551d
|
@ -615,7 +615,7 @@ async function save(item) {
|
||||||
</QIcon>
|
</QIcon>
|
||||||
<QIcon
|
<QIcon
|
||||||
v-if="row.hasComponentLack"
|
v-if="row.hasComponentLack"
|
||||||
color="primary"
|
class="link"
|
||||||
name="vn:components"
|
name="vn:components"
|
||||||
size="xs"
|
size="xs"
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { useI18n } from 'vue-i18n';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
import VnInput from 'src/components/common/VnInput.vue';
|
import VnInput from 'src/components/common/VnInput.vue';
|
||||||
|
import TicketTransferForm from './TicketTransferForm.vue';
|
||||||
|
|
||||||
import { toDateFormat } from 'src/filters/date.js';
|
import { toDateFormat } from 'src/filters/date.js';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
@ -135,9 +136,7 @@ onMounted(() => (_transfer.value = $props.transfer));
|
||||||
:columns="destinationTicketColumns"
|
:columns="destinationTicketColumns"
|
||||||
:title="t('Destination ticket')"
|
:title="t('Destination ticket')"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
:pagination="{ rowsPerPage: 0 }"
|
|
||||||
class="full-width q-mt-md"
|
class="full-width q-mt-md"
|
||||||
:no-data-label="t('globals.noResults')"
|
|
||||||
>
|
>
|
||||||
<template #body-cell-address="{ row }">
|
<template #body-cell-address="{ row }">
|
||||||
<QTd @click.stop>
|
<QTd @click.stop>
|
||||||
|
@ -158,29 +157,11 @@ onMounted(() => (_transfer.value = $props.transfer));
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #bottom>
|
<template #no-data>
|
||||||
<QForm class="q-mt-lg full-width">
|
<TicketTransferForm v-bind="$props" />
|
||||||
<VnInput
|
|
||||||
v-model.number="_transfer.ticketId"
|
|
||||||
:label="t('Transfer to ticket')"
|
|
||||||
:clearable="false"
|
|
||||||
>
|
|
||||||
<template #append>
|
|
||||||
<QBtn
|
|
||||||
icon="keyboard_arrow_right"
|
|
||||||
color="primary"
|
|
||||||
@click="transferSales(_transfer.ticketId)"
|
|
||||||
style="width: 30px"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</VnInput>
|
<template #bottom>
|
||||||
<QBtn
|
<TicketTransferForm v-bind="$props" />
|
||||||
:label="t('New ticket')"
|
|
||||||
color="primary"
|
|
||||||
class="full-width q-my-lg"
|
|
||||||
@click="transferSales()"
|
|
||||||
/>
|
|
||||||
</QForm>
|
|
||||||
</template>
|
</template>
|
||||||
</QTable>
|
</QTable>
|
||||||
</QCard>
|
</QCard>
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue';
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
import VnInput from 'src/components/common/VnInput.vue';
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
|
const $props = defineProps({
|
||||||
|
mana: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
newPrice: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
transfer: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
ticket: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(['refreshData']);
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const _transfer = ref($props.transfer);
|
||||||
|
|
||||||
|
const transferSales = async (ticketId) => {
|
||||||
|
const params = {
|
||||||
|
ticketId: ticketId,
|
||||||
|
sales: $props.transfer.sales,
|
||||||
|
};
|
||||||
|
|
||||||
|
const { data } = await axios.post(
|
||||||
|
`tickets/${$props.ticket.id}/transferSales`,
|
||||||
|
params
|
||||||
|
);
|
||||||
|
|
||||||
|
if (data && data.id === $props.ticket.id) emit('refreshData');
|
||||||
|
else router.push({ name: 'TicketSale', params: { id: data.id } });
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
{{ _transfer }}
|
||||||
|
<QForm class="q-mt-lg full-width">
|
||||||
|
<VnInput
|
||||||
|
v-model.number="_transfer.ticketId"
|
||||||
|
:label="t('Transfer to ticket')"
|
||||||
|
:clearable="false"
|
||||||
|
>
|
||||||
|
<template #append>
|
||||||
|
<QBtn
|
||||||
|
icon="keyboard_arrow_right"
|
||||||
|
color="primary"
|
||||||
|
@click="transferSales(_transfer.ticketId)"
|
||||||
|
style="width: 30px"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</VnInput>
|
||||||
|
<QBtn
|
||||||
|
:label="t('New ticket')"
|
||||||
|
color="primary"
|
||||||
|
class="full-width q-my-lg"
|
||||||
|
@click="transferSales()"
|
||||||
|
/>
|
||||||
|
</QForm>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<i18n>
|
||||||
|
es:
|
||||||
|
Sales to transfer: Líneas a transferir
|
||||||
|
Destination ticket: Ticket destinatario
|
||||||
|
Transfer to ticket: Transferir a ticket
|
||||||
|
New ticket: Nuevo ticket
|
||||||
|
</i18n>
|
Loading…
Reference in New Issue