refactor: refs #8316 used VnSection and VnCardBeta
gitea/salix-front/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Jose Antonio Tubau 2024-12-27 14:09:27 +01:00
parent 93047ab179
commit 0b15c28449
5 changed files with 207 additions and 203 deletions

View File

@ -1,38 +1,12 @@
<script setup>
import { computed } from 'vue';
import { useRoute } from 'vue-router';
import VnCard from 'components/common/VnCard.vue';
import VnCardBeta from 'components/common/VnCardBeta.vue';
import OrderDescriptor from 'pages/Order/Card/OrderDescriptor.vue';
import OrderFilter from './OrderFilter.vue';
import OrderSearchbar from './OrderSearchbar.vue';
import OrderCatalogFilter from './OrderCatalogFilter.vue';
const config = {
OrderCatalog: OrderCatalogFilter,
};
const route = useRoute();
const routeName = computed(() => route.name);
const customRouteRedirectName = computed(() => {
const route = config[routeName.value];
if (route) return null;
return 'OrderList';
});
const customFilterPanel = computed(() => {
const filterPanel = config[routeName.value] ?? OrderFilter;
return filterPanel;
});
</script>
<template>
<VnCard
<VnCardBeta
data-key="Order"
base-url="Orders"
:descriptor="OrderDescriptor"
:filter-panel="customFilterPanel"
:search-data-key="customRouteRedirectName"
>
<template #searchbar>
<OrderSearchbar />
</template>
</VnCard>
/>
</template>

View File

@ -8,15 +8,14 @@ import { useRoute } from 'vue-router';
import axios from 'axios';
import OrderSummary from 'pages/Order/Card/OrderSummary.vue';
import OrderSearchbar from './Card/OrderSearchbar.vue';
import OrderFilter from './Card/OrderFilter.vue';
import RightMenu from 'src/components/common/RightMenu.vue';
import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue';
import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue';
import VnTable from 'src/components/VnTable/VnTable.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnSection from 'src/components/common/VnSection.vue';
const { t } = useI18n();
const { viewSummary } = useSummaryDialog();
@ -24,6 +23,8 @@ const tableRef = ref();
const agencyList = ref([]);
const route = useRoute();
const addressOptions = ref([]);
const dataKey='OrderList';
const columns = computed(() => [
{
align: 'left',
@ -178,18 +179,25 @@ const getDateColor = (date) => {
if (difference < 0) return 'bg-success';
};
</script>
<template>
<OrderSearchbar />
<RightMenu>
<VnSection
:data-key="dataKey"
:columns="columns"
prefix="order"
:array-data-props="{
url: 'Orders/filter',
order: ['landed DESC', 'clientFk ASC', 'id DESC'],
exprBuilder,
}"
>
<template #right-panel>
<OrderFilter data-key="OrderList" />
</template>
</RightMenu>
<template #body>
<VnTable
ref="tableRef"
data-key="OrderList"
url="Orders/filter"
:order="['landed DESC', 'clientFk ASC', 'id DESC']"
:data-key="dataKey"
:create="{
urlCreate: 'Orders/new',
title: t('module.cerateOrder'),
@ -292,3 +300,5 @@ const getDateColor = (date) => {
</template>
</VnTable>
</template>
</VnSection>
</template>

View File

@ -21,3 +21,6 @@ lines:
image: Image
params:
tagGroups: Tags
order:
search: Search orders
searchInfo: You can search orders by ticket id

View File

@ -21,3 +21,6 @@ lines:
image: Imagen
params:
tagGroups: Tags
order:
search: Buscar pedido
searchInfo: Buscar pedidos por el número de ticket

View File

@ -1,35 +1,102 @@
import { RouterView } from 'vue-router';
const orderCard = {
name: 'OrderCard',
path: ':id',
component: () => import('src/pages/Order/Card/OrderCard.vue'),
redirect: { name: 'OrderSummary' },
meta: {
menu: [
'OrderBasicData',
'OrderCatalog',
'OrderVolume',
'OrderLines',
],
},
children: [
{
path: 'summary',
name: 'OrderSummary',
meta: {
title: 'summary',
icon: 'launch',
},
component: () => import('src/pages/Order/Card/OrderSummary.vue'),
},
{
path: 'basic-data',
name: 'OrderBasicData',
meta: {
title: 'basicData',
icon: 'vn:settings',
},
component: () => import('src/pages/Order/Card/OrderBasicData.vue'),
},
{
path: 'catalog',
name: 'OrderCatalog',
meta: {
title: 'catalog',
icon: 'vn:basket',
},
component: () => import('src/pages/Order/Card/OrderCatalog.vue'),
},
{
path: 'volume',
name: 'OrderVolume',
meta: {
title: 'volume',
icon: 'vn:volume',
},
component: () => import('src/pages/Order/Card/OrderVolume.vue'),
},
{
path: 'line',
name: 'OrderLines',
meta: {
title: 'lines',
icon: 'vn:lines',
},
component: () => import('src/pages/Order/Card/OrderLines.vue'),
},
],
};
export default {
path: '/order',
name: 'Order',
path: '/order',
meta: {
title: 'order',
icon: 'vn:basket',
moduleName: 'Order',
keyBinding: 'o',
menu: ['OrderList'],
},
component: RouterView,
redirect: { name: 'OrderMain' },
menus: {
main: ['OrderList'],
card: ['OrderBasicData', 'OrderCatalog', 'OrderVolume', 'OrderLines'],
},
children: [
{
name: 'OrderMain',
path: '',
component: () => import('src/components/common/VnModule.vue'),
redirect: { name: 'OrderIndexMain' },
children: [
{
path: '',
name: 'OrderMain',
component: () => import('src/components/common/VnModule.vue'),
name: 'OrderIndexMain',
redirect: { name: 'OrderList' },
component: () => import('src/pages/Order/OrderList.vue'),
children: [
{
path: 'list',
name: 'OrderList',
path: 'list',
meta: {
title: 'orderList',
icon: 'view_list',
},
component: () => import('src/pages/Order/OrderList.vue'),
},
orderCard,
],
},
{
path: 'create',
@ -42,58 +109,5 @@ export default {
},
],
},
{
name: 'OrderCard',
path: ':id',
component: () => import('src/pages/Order/Card/OrderCard.vue'),
redirect: { name: 'OrderSummary' },
children: [
{
name: 'OrderSummary',
path: 'summary',
meta: {
title: 'summary',
icon: 'launch',
},
component: () => import('src/pages/Order/Card/OrderSummary.vue'),
},
{
name: 'OrderBasicData',
path: 'basic-data',
meta: {
title: 'basicData',
icon: 'vn:settings',
},
component: () => import('src/pages/Order/Card/OrderBasicData.vue'),
},
{
name: 'OrderCatalog',
path: 'catalog',
meta: {
title: 'catalog',
icon: 'vn:basket',
},
component: () => import('src/pages/Order/Card/OrderCatalog.vue'),
},
{
name: 'OrderVolume',
path: 'volume',
meta: {
title: 'volume',
icon: 'vn:volume',
},
component: () => import('src/pages/Order/Card/OrderVolume.vue'),
},
{
name: 'OrderLines',
path: 'line',
meta: {
title: 'lines',
icon: 'vn:lines',
},
component: () => import('src/pages/Order/Card/OrderLines.vue'),
},
],
},
],
};