Change layout CustomerDescriptor Actions #931
|
@ -0,0 +1,8 @@
|
|||
import { openURL } from 'quasar';
|
||||
|
||||
const defaultWindowFeatures = {
|
||||
noopener: true,
|
||||
noreferrer: true,
|
||||
};
|
||||
export default function (url, windowFeatures = defaultWindowFeatures, fn = undefined) {
|
||||
openURL(url, fn, windowFeatures);
|
||||
}
|
|
@ -6,8 +6,8 @@ import axios from 'axios';
|
|||
import { useQuasar } from 'quasar';
|
||||
|
||||
import useNotify from 'src/composables/useNotify';
|
||||
|
||||
import VnSmsDialog from 'src/components/common/VnSmsDialog.vue';
|
||||
import useOpenURL from 'src/composables/useOpenURL';
|
||||
|
||||
const $props = defineProps({
|
||||
customer: {
|
||||
|
@ -15,7 +15,6 @@ const $props = defineProps({
|
|||
required: true,
|
||||
},
|
||||
});
|
||||
|
||||
const { notify } = useNotify();
|
||||
const { t } = useI18n();
|
||||
const quasar = useQuasar();
|
||||
|
@ -41,48 +40,37 @@ const sendSms = async (payload) => {
|
|||
}
|
||||
};
|
||||
|
||||
const openTicketCreateForm = () => {
|
||||
const openCreateForm = (type) => {
|
||||
const query = {
|
||||
jorgep
commented
Solo cambia el parámetro que pasas a openWindow, porque no llamas directamente a openWindow con el parámetro (order || ticket) y que este cree la query? Solo cambia el parámetro que pasas a openWindow, porque no llamas directamente a openWindow con el parámetro (order || ticket) y que este cree la query?
De paso, si lo ves útil, mira a ver si puedes usar esto: https://quasar.dev/quasar-utils/other-utils#openurl para no usar window.open
jsegarra
commented
Me gusta lo de quasar, creo nadie lo usa, creo composable! Me gusta lo de quasar, creo nadie lo usa, creo composable!
Por otra parte, fijate que las claves de query.createForm no coinciden para los 2 modelos
jorgep
commented
Tienes razón, cambia 1, de todas maneras el 90% de ambas fn es el mismo código, Usar solo 1 fn. Tienes razón, cambia 1, de todas maneras el 90% de ambas fn es el mismo código, Usar solo 1 fn.
|
||||
table: {
|
||||
clientFk: $props.customer.id,
|
||||
},
|
||||
createForm: {
|
||||
clientId: $props.customer.id,
|
||||
addressId: $props.customer.defaultAddressFk,
|
||||
},
|
||||
};
|
||||
openWindow('ticket', query);
|
||||
};
|
||||
const openOrderCreateForm = () => {
|
||||
const query = {
|
||||
table: {
|
||||
clientFk: $props.customer.id,
|
||||
},
|
||||
createForm: {
|
||||
clientFk: $props.customer.id,
|
||||
addressId: $props.customer.defaultAddressFk,
|
||||
},
|
||||
const clientFk = {
|
||||
ticket: 'clientId',
|
||||
order: 'clientFk',
|
||||
};
|
||||
openWindow('order', query);
|
||||
};
|
||||
const key = clientFk[type];
|
||||
if (!key) return;
|
||||
query.createForm[key] = $props.customer.id;
|
||||
|
||||
const openWindow = (type, { createForm, table }) => {
|
||||
window.open(
|
||||
`/#/${type}/list?createForm=${JSON.stringify(createForm)}&table=${JSON.stringify(
|
||||
table
|
||||
)}`,
|
||||
'_blank'
|
||||
);
|
||||
const params = Object.entries(query)
|
||||
.map(([key, value]) => `${key}=${JSON.stringify(value)}`)
|
||||
.join('&');
|
||||
useOpenURL(`/#/${type}/list?${params}`);
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QItem v-ripple clickable @click="openTicketCreateForm()">
|
||||
<QItem v-ripple clickable @click="openCreateForm('ticket')">
|
||||
<QItemSection>
|
||||
{{ t('globals.pageTitles.createTicket') }}
|
||||
</QItemSection>
|
||||
</QItem>
|
||||
<QItem v-ripple clickable @click="openOrderCreateForm()">
|
||||
<QItem v-ripple clickable @click="openCreateForm('order')">
|
||||
<QItemSection>
|
||||
{{ t('globals.pageTitles.createOrder') }}
|
||||
</QItemSection>
|
||||
|
|
Loading…
Reference in New Issue
💯