This commit is contained in:
parent
c2e4380f18
commit
3477b24c93
|
@ -14,7 +14,6 @@ import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const state = useState();
|
const state = useState();
|
||||||
const ORDER_MODEL = 'order';
|
|
||||||
|
|
||||||
const isNew = Boolean(!route.params.id);
|
const isNew = Boolean(!route.params.id);
|
||||||
const clientList = ref([]);
|
const clientList = ref([]);
|
||||||
|
@ -33,7 +32,7 @@ const fetchAddressList = async (addressId) => {
|
||||||
});
|
});
|
||||||
addressList.value = data;
|
addressList.value = data;
|
||||||
if (addressList.value?.length === 1) {
|
if (addressList.value?.length === 1) {
|
||||||
state.get(ORDER_MODEL).addressFk = addressList.value[0].id;
|
state.get('Order').addressFk = addressList.value[0].id;
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`Error fetching addresses`, err);
|
console.error(`Error fetching addresses`, err);
|
||||||
|
@ -105,9 +104,8 @@ const onClientChange = async (clientId) => {
|
||||||
<VnSubToolbar v-if="isNew" />
|
<VnSubToolbar v-if="isNew" />
|
||||||
<div class="q-pa-md">
|
<div class="q-pa-md">
|
||||||
<FormModel
|
<FormModel
|
||||||
:url="`Orders/${route.params.id}`"
|
|
||||||
:url-update="`Orders/${route.params.id}/updateBasicData`"
|
:url-update="`Orders/${route.params.id}/updateBasicData`"
|
||||||
:model="ORDER_MODEL"
|
model="Order"
|
||||||
:filter="orderFilter"
|
:filter="orderFilter"
|
||||||
@on-fetch="fetchOrderDetails"
|
@on-fetch="fetchOrderDetails"
|
||||||
auto-load
|
auto-load
|
||||||
|
|
|
@ -6,6 +6,8 @@ import OrderDescriptor from 'pages/Order/Card/OrderDescriptor.vue';
|
||||||
import OrderFilter from './OrderFilter.vue';
|
import OrderFilter from './OrderFilter.vue';
|
||||||
import OrderSearchbar from './OrderSearchbar.vue';
|
import OrderSearchbar from './OrderSearchbar.vue';
|
||||||
import OrderCatalogFilter from './OrderCatalogFilter.vue';
|
import OrderCatalogFilter from './OrderCatalogFilter.vue';
|
||||||
|
import filter from './OrderFilter.js';
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
OrderCatalog: OrderCatalogFilter,
|
OrderCatalog: OrderCatalogFilter,
|
||||||
};
|
};
|
||||||
|
@ -27,6 +29,7 @@ const customFilterPanel = computed(() => {
|
||||||
<VnCard
|
<VnCard
|
||||||
data-key="Order"
|
data-key="Order"
|
||||||
url="Orders"
|
url="Orders"
|
||||||
|
:filter="filter"
|
||||||
:descriptor="OrderDescriptor"
|
:descriptor="OrderDescriptor"
|
||||||
:filter-panel="customFilterPanel"
|
:filter-panel="customFilterPanel"
|
||||||
:search-data-key="customRouteRedirectName"
|
:search-data-key="customRouteRedirectName"
|
||||||
|
|
|
@ -4,8 +4,7 @@ import { useRoute } from 'vue-router';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { toCurrency, toDate } from 'src/filters';
|
import { toCurrency, toDate } from 'src/filters';
|
||||||
import { useState } from 'src/composables/useState';
|
import { useState } from 'src/composables/useState';
|
||||||
import useCardDescription from 'src/composables/useCardDescription';
|
import filter from './OrderFilter.js';
|
||||||
|
|
||||||
import CardDescriptor from 'components/ui/CardDescriptor.vue';
|
import CardDescriptor from 'components/ui/CardDescriptor.vue';
|
||||||
import VnLv from 'src/components/ui/VnLv.vue';
|
import VnLv from 'src/components/ui/VnLv.vue';
|
||||||
import FetchData from 'components/FetchData.vue';
|
import FetchData from 'components/FetchData.vue';
|
||||||
|
@ -25,45 +24,16 @@ const $props = defineProps({
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const state = useState();
|
const state = useState();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const data = ref(useCardDescription());
|
|
||||||
const getTotalRef = ref();
|
const getTotalRef = ref();
|
||||||
|
|
||||||
const entityId = computed(() => {
|
const entityId = computed(() => {
|
||||||
return $props.id || route.params.id;
|
return $props.id || route.params.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
const filter = {
|
|
||||||
include: [
|
|
||||||
{ relation: 'agencyMode', scope: { fields: ['name'] } },
|
|
||||||
{
|
|
||||||
relation: 'address',
|
|
||||||
scope: { fields: ['nickname'] },
|
|
||||||
},
|
|
||||||
{ relation: 'rows', scope: { fields: ['id'] } },
|
|
||||||
{
|
|
||||||
relation: 'client',
|
|
||||||
scope: {
|
|
||||||
fields: [
|
|
||||||
'salesPersonFk',
|
|
||||||
'name',
|
|
||||||
'isActive',
|
|
||||||
'isFreezed',
|
|
||||||
'isTaxDataChecked',
|
|
||||||
],
|
|
||||||
include: {
|
|
||||||
relation: 'salesPersonUser',
|
|
||||||
scope: { fields: ['id', 'name'] },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const setData = (entity) => {
|
const setData = (entity) => {
|
||||||
if (!entity) return;
|
if (!entity) return;
|
||||||
getTotalRef.value && getTotalRef.value.fetch();
|
getTotalRef.value && getTotalRef.value.fetch();
|
||||||
data.value = useCardDescription(entity?.client?.name, entity?.id);
|
state.set('Order', entity);
|
||||||
state.set('orderData', entity);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getConfirmationValue = (isConfirmed) => {
|
const getConfirmationValue = (isConfirmed) => {
|
||||||
|
@ -84,10 +54,9 @@ const total = ref(null);
|
||||||
:url="`Orders/${entityId}`"
|
:url="`Orders/${entityId}`"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
module="Order"
|
module="Order"
|
||||||
:title="data.title"
|
title="client.name"
|
||||||
:subtitle="data.subtitle"
|
|
||||||
@on-fetch="setData"
|
@on-fetch="setData"
|
||||||
data-key="orderData"
|
data-key="Order"
|
||||||
>
|
>
|
||||||
<template #menu="{ entity }">
|
<template #menu="{ entity }">
|
||||||
<OrderDescriptorMenu :order="entity" />
|
<OrderDescriptorMenu :order="entity" />
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
export default {
|
||||||
|
include: [
|
||||||
|
{ relation: 'agencyMode', scope: { fields: ['name'] } },
|
||||||
|
{
|
||||||
|
relation: 'address',
|
||||||
|
scope: { fields: ['nickname'] },
|
||||||
|
},
|
||||||
|
{ relation: 'rows', scope: { fields: ['id'] } },
|
||||||
|
{
|
||||||
|
relation: 'client',
|
||||||
|
scope: {
|
||||||
|
fields: [
|
||||||
|
'salesPersonFk',
|
||||||
|
'name',
|
||||||
|
'isActive',
|
||||||
|
'isFreezed',
|
||||||
|
'isTaxDataChecked',
|
||||||
|
],
|
||||||
|
include: {
|
||||||
|
relation: 'salesPersonUser',
|
||||||
|
scope: { fields: ['id', 'name'] },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
Loading…
Reference in New Issue