Compare commits

..

No commits in common. "5ac59840a27afcc4708b8095be0a05525489206b" and "b6778aaf177c1500e51d46c6a31478b71895335d" have entirely different histories.

30 changed files with 147 additions and 66 deletions

View File

@ -15,10 +15,12 @@ const quasar = useQuasar();
const state = useState(); const state = useState();
const user = state.getUser(); const user = state.getUser();
const appName = 'Lilium'; const appName = 'Lilium';
const pinnedModulesRef = ref();
onMounted(() => stateStore.setMounted()); onMounted(() => stateStore.setMounted());
const pinnedModulesRef = ref();
</script> </script>
<template> <template>
<QHeader color="white" elevated> <QHeader color="white" elevated>
<QToolbar class="q-py-sm q-px-md"> <QToolbar class="q-py-sm q-px-md">
@ -53,6 +55,16 @@ onMounted(() => stateStore.setMounted());
<QSpace /> <QSpace />
<div class="q-pl-sm q-gutter-sm row items-center no-wrap"> <div class="q-pl-sm q-gutter-sm row items-center no-wrap">
<div id="actions-prepend"></div> <div id="actions-prepend"></div>
<QBtn
flat
v-if="!quasar.platform.is.mobile"
@click="pinnedModulesRef.redirect($route.params.id)"
icon="more_up"
>
<QTooltip>
{{ t('Go to Salix') }}
</QTooltip>
</QBtn>
<QBtn <QBtn
:class="{ 'q-pa-none': quasar.platform.is.mobile }" :class="{ 'q-pa-none': quasar.platform.is.mobile }"
id="pinnedModules" id="pinnedModules"
@ -84,6 +96,7 @@ onMounted(() => stateStore.setMounted());
<VnBreadcrumbs v-if="$q.screen.lt.md" class="q-ml-md" /> <VnBreadcrumbs v-if="$q.screen.lt.md" class="q-ml-md" />
</QHeader> </QHeader>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.searchbar { .searchbar {
width: max-content; width: max-content;
@ -92,3 +105,9 @@ onMounted(() => stateStore.setMounted());
background-color: var(--vn-section-color); background-color: var(--vn-section-color);
} }
</style> </style>
<i18n>
en:
Go to Salix: Go to Salix
es:
Go to Salix: Ir a Salix
</i18n>

View File

@ -453,7 +453,7 @@ function handleOnDataSaved(_) {
<template #header-cell="{ col }"> <template #header-cell="{ col }">
<QTh v-if="col.visible ?? true"> <QTh v-if="col.visible ?? true">
<div <div
class="column ellipsis" class="column self-start q-ml-xs ellipsis"
:class="`text-${col?.align ?? 'left'}`" :class="`text-${col?.align ?? 'left'}`"
:style="$props.columnSearch ? 'height: 75px' : ''" :style="$props.columnSearch ? 'height: 75px' : ''"
> >
@ -495,7 +495,7 @@ function handleOnDataSaved(_) {
<!-- Columns --> <!-- Columns -->
<QTd <QTd
auto-width auto-width
class="no-margin" class="no-margin q-px-xs"
:class="[getColAlign(col), col.columnClass]" :class="[getColAlign(col), col.columnClass]"
:style="col.style" :style="col.style"
v-if="col.visible ?? true" v-if="col.visible ?? true"
@ -823,6 +823,21 @@ es:
top: 0; top: 0;
padding: 12px 0; padding: 12px 0;
} }
tbody {
.q-checkbox {
display: flex;
margin-bottom: 9px;
& .q-checkbox__label {
margin-left: 31px;
color: var(--vn-text-color);
}
& .q-checkbox__inner {
position: absolute;
left: 0;
color: var(--vn-label-color);
}
}
}
.sticky { .sticky {
position: sticky; position: sticky;
right: 0; right: 0;

View File

@ -2,7 +2,6 @@
import { ref, onMounted, useSlots } from 'vue'; import { ref, onMounted, useSlots } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import isMobile from 'src/composables/isMobile';
const slots = useSlots(); const slots = useSlots();
const hasContent = ref(false); const hasContent = ref(false);
@ -12,6 +11,7 @@ onMounted(() => {
rightPanel.value = document.querySelector('#right-panel'); rightPanel.value = document.querySelector('#right-panel');
if (!rightPanel.value) return; if (!rightPanel.value) return;
// Check if there's content to display
const observer = new MutationObserver(() => { const observer = new MutationObserver(() => {
hasContent.value = rightPanel.value.childNodes.length; hasContent.value = rightPanel.value.childNodes.length;
}); });
@ -22,8 +22,7 @@ onMounted(() => {
attributes: true, attributes: true,
}); });
if ((!slots['right-panel'] && !hasContent.value) || isMobile) if (!slots['right-panel'] && !hasContent.value) stateStore.rightDrawer = false;
stateStore.rightDrawer = false;
}); });
const { t } = useI18n(); const { t } = useI18n();
@ -46,12 +45,7 @@ const stateStore = useStateStore();
</QBtn> </QBtn>
</div> </div>
</Teleport> </Teleport>
<QDrawer <QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above>
v-model="stateStore.rightDrawer"
side="right"
:width="256"
:show-if-above="!isMobile"
>
<QScrollArea class="fit"> <QScrollArea class="fit">
<div id="right-panel"></div> <div id="right-panel"></div>
<slot v-if="!hasContent" name="right-panel" /> <slot v-if="!hasContent" name="right-panel" />

View File

@ -101,7 +101,7 @@ const styleAttrs = computed(() => {
:class="{ required: $attrs.required }" :class="{ required: $attrs.required }"
:rules="mixinRules" :rules="mixinRules"
:clearable="false" :clearable="false"
@click="isPopupOpen = !isPopupOpen" @click="isPopupOpen = true"
hide-bottom-space hide-bottom-space
> >
<template #append> <template #append>
@ -120,6 +120,13 @@ const styleAttrs = computed(() => {
isPopupOpen = false; isPopupOpen = false;
" "
/> />
<QIcon
v-if="showEvent"
name="event"
class="cursor-pointer"
@click="isPopupOpen = !isPopupOpen"
:title="t('Open date')"
/>
</template> </template>
<QMenu <QMenu
transition-show="scale" transition-show="scale"
@ -131,7 +138,6 @@ const styleAttrs = computed(() => {
:no-parent-event="true" :no-parent-event="true"
> >
<QDate <QDate
class="date-picker"
v-model="popupDate" v-model="popupDate"
:landscape="true" :landscape="true"
:today-btn="true" :today-btn="true"
@ -147,6 +153,15 @@ const styleAttrs = computed(() => {
</QInput> </QInput>
</div> </div>
</template> </template>
<style lang="scss">
.vn-input-date.q-field--standard.q-field--readonly .q-field__control:before {
border-bottom-style: solid;
}
.vn-input-date.q-field--outlined.q-field--readonly .q-field__control:before {
border-style: solid;
}
</style>
<i18n> <i18n>
es: es:
Open date: Abrir fecha Open date: Abrir fecha

View File

@ -79,7 +79,7 @@ function dateToTime(newDate) {
:class="{ required: $attrs.required }" :class="{ required: $attrs.required }"
style="min-width: 100px" style="min-width: 100px"
:rules="mixinRules" :rules="mixinRules"
@click="isPopupOpen = !isPopupOpen" @click="isPopupOpen = false"
type="time" type="time"
hide-bottom-space hide-bottom-space
> >
@ -99,6 +99,12 @@ function dateToTime(newDate) {
isPopupOpen = false; isPopupOpen = false;
" "
/> />
<QIcon
name="Schedule"
class="cursor-pointer"
@click="isPopupOpen = !isPopupOpen"
:title="t('Open time')"
/>
</template> </template>
<QMenu <QMenu
transition-show="scale" transition-show="scale"

View File

@ -1,3 +0,0 @@
const regex = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
const isMobile = regex.test(navigator.userAgent);
export default isMobile;

View File

@ -240,7 +240,7 @@ input::-webkit-inner-spin-button {
.q-table { .q-table {
th, th,
td { td {
padding: 1px 3px 1px 3px; padding: 1px 10px 1px 10px;
max-width: 100px; max-width: 100px;
div span { div span {
overflow: hidden; overflow: hidden;
@ -299,9 +299,3 @@ input::-webkit-inner-spin-button {
} }
} }
} }
.q-date__header-today {
border-radius: 12px;
border: 1px solid;
box-shadow: 0 4px 6px #00000000;
}

View File

@ -118,7 +118,7 @@ globals:
workCenters: Work centers workCenters: Work centers
modes: Modes modes: Modes
zones: Zones zones: Zones
zonesList: List zonesList: Zones
deliveryDays: Delivery days deliveryDays: Delivery days
upcomingDeliveries: Upcoming deliveries upcomingDeliveries: Upcoming deliveries
role: Role role: Role

View File

@ -120,7 +120,7 @@ globals:
workCenters: Centros de trabajo workCenters: Centros de trabajo
modes: Modos modes: Modos
zones: Zonas zones: Zonas
zonesList: Listado zonesList: Zonas
deliveryDays: Días de entrega deliveryDays: Días de entrega
upcomingDeliveries: Próximos repartos upcomingDeliveries: Próximos repartos
role: Role role: Role

View File

@ -104,7 +104,6 @@ const columns = computed(() => [
title: t('components.smartCard.viewSummary'), title: t('components.smartCard.viewSummary'),
icon: 'preview', icon: 'preview',
action: (row) => viewSummary(row.id, ClaimSummary), action: (row) => viewSummary(row.id, ClaimSummary),
isPrimary: true,
}, },
], ],
}, },
@ -135,6 +134,7 @@ const STATE_COLOR = {
:columns="columns" :columns="columns"
redirect="claim" redirect="claim"
:right-search="false" :right-search="false"
auto-load
> >
<template #column-clientFk="{ row }"> <template #column-clientFk="{ row }">
<span class="link" @click.stop> <span class="link" @click.stop>

View File

@ -419,6 +419,7 @@ function handleLocation(data, location) {
:columns="columns" :columns="columns"
redirect="customer" redirect="customer"
:right-search="false" :right-search="false"
auto-load
> >
<template #more-create-dialog="{ data }"> <template #more-create-dialog="{ data }">
<VnSelect <VnSelect

View File

@ -192,6 +192,9 @@ const columns = computed(() => [
], ],
}, },
]); ]);
onMounted(async () => {
stateStore.rightDrawer = true;
});
</script> </script>
<template> <template>
<VnSearchbar <VnSearchbar
@ -219,6 +222,7 @@ const columns = computed(() => [
order="id DESC" order="id DESC"
:columns="columns" :columns="columns"
redirect="entry" redirect="entry"
auto-load
:right-search="false" :right-search="false"
> >
<template #column-supplierFk="{ row }"> <template #column-supplierFk="{ row }">

View File

@ -1,6 +1,7 @@
<script setup> <script setup>
import { ref, computed } from 'vue'; import { ref, computed, onMounted, onUnmounted } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useStateStore } from 'stores/useStateStore';
import { downloadFile } from 'src/composables/downloadFile'; import { downloadFile } from 'src/composables/downloadFile';
import { toDate, toCurrency } from 'src/filters/index'; import { toDate, toCurrency } from 'src/filters/index';
import InvoiceInFilter from './InvoiceInFilter.vue'; import InvoiceInFilter from './InvoiceInFilter.vue';
@ -14,19 +15,19 @@ import VnSelect from 'src/components/common/VnSelect.vue';
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue'; import VnInputDate from 'src/components/common/VnInputDate.vue';
const stateStore = useStateStore();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const { t } = useI18n(); const { t } = useI18n();
onMounted(async () => (stateStore.rightDrawer = true));
onUnmounted(() => (stateStore.rightDrawer = false));
const tableRef = ref(); const tableRef = ref();
const cols = computed(() => [ const cols = computed(() => [
{ {
align: 'left', align: 'left',
name: 'id', name: 'id',
label: 'Id', label: 'Id',
isId: true,
chip: {
condition: () => true,
},
}, },
{ {
align: 'left', align: 'left',
@ -40,7 +41,6 @@ const cols = computed(() => [
}, },
}, },
columnClass: 'expand', columnClass: 'expand',
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -67,7 +67,6 @@ const cols = computed(() => [
name: 'isBooked', name: 'isBooked',
label: t('invoiceIn.list.isBooked'), label: t('invoiceIn.list.isBooked'),
columnFilter: false, columnFilter: false,
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -79,7 +78,6 @@ const cols = computed(() => [
name: 'amount', name: 'amount',
label: t('invoiceIn.list.amount'), label: t('invoiceIn.list.amount'),
format: ({ amount }) => toCurrency(amount), format: ({ amount }) => toCurrency(amount),
cardVisible: true,
}, },
{ {
align: 'right', align: 'right',
@ -89,7 +87,6 @@ const cols = computed(() => [
title: t('components.smartCard.openSummary'), title: t('components.smartCard.openSummary'),
icon: 'preview', icon: 'preview',
type: 'submit', type: 'submit',
isPrimary: true,
action: (row) => viewSummary(row.id, InvoiceInSummary), action: (row) => viewSummary(row.id, InvoiceInSummary),
}, },
{ {
@ -124,6 +121,7 @@ const cols = computed(() => [
redirect="invoice-in" redirect="invoice-in"
:columns="cols" :columns="cols"
:right-search="false" :right-search="false"
:disable-option="{ card: true }"
:auto-load="!!$route.query.params" :auto-load="!!$route.query.params"
> >
<template #column-supplierFk="{ row }"> <template #column-supplierFk="{ row }">

View File

@ -1,5 +1,5 @@
<script setup> <script setup>
import { ref, computed, watchEffect } from 'vue'; import { onMounted, onUnmounted, ref, computed, watchEffect } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import VnSelect from 'src/components/common/VnSelect.vue'; import VnSelect from 'src/components/common/VnSelect.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue'; import VnInputDate from 'src/components/common/VnInputDate.vue';
@ -10,10 +10,12 @@ import { usePrintService } from 'composables/usePrintService';
import VnTable from 'components/VnTable/VnTable.vue'; import VnTable from 'components/VnTable/VnTable.vue';
import InvoiceOutSummary from './Card/InvoiceOutSummary.vue'; import InvoiceOutSummary from './Card/InvoiceOutSummary.vue';
import { toCurrency, toDate } from 'src/filters/index'; import { toCurrency, toDate } from 'src/filters/index';
import { useStateStore } from 'stores/useStateStore';
import { QBtn } from 'quasar'; import { QBtn } from 'quasar';
import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue'; import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue';
const { t } = useI18n(); const { t } = useI18n();
const stateStore = useStateStore();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const tableRef = ref(); const tableRef = ref();
const invoiceOutSerialsOptions = ref([]); const invoiceOutSerialsOptions = ref([]);
@ -135,6 +137,8 @@ const columns = computed(() => [
], ],
}, },
]); ]);
onMounted(() => (stateStore.rightDrawer = true));
onUnmounted(() => (stateStore.rightDrawer = false));
function openPdf(id) { function openPdf(id) {
try { try {
@ -206,6 +210,7 @@ watchEffect(selectedRows);
order="id DESC" order="id DESC"
:columns="columns" :columns="columns"
redirect="invoice-out" redirect="invoice-out"
auto-load
:table="{ :table="{
'row-key': 'id', 'row-key': 'id',
selection: 'multiple', selection: 'multiple',

View File

@ -2,7 +2,6 @@
import { onMounted, ref, computed, reactive, onUnmounted } from 'vue'; import { onMounted, ref, computed, reactive, onUnmounted } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import isMobile from 'src/composables/isMobile';
import FetchData from 'components/FetchData.vue'; import FetchData from 'components/FetchData.vue';
import FetchedTags from 'components/ui/FetchedTags.vue'; import FetchedTags from 'components/ui/FetchedTags.vue';
@ -390,6 +389,7 @@ const cloneItem = async (itemFk) => {
}; };
onMounted(async () => { onMounted(async () => {
stateStore.rightDrawer = true;
const filteredColumns = columns.value.filter( const filteredColumns = columns.value.filter(
(col) => col.name !== 'picture' && col.name !== 'actions' (col) => col.name !== 'picture' && col.name !== 'actions'
); );

View File

@ -193,6 +193,30 @@ const columns = computed(() => [
columnFilter: false, columnFilter: false,
columnClass: 'shrink', columnClass: 'shrink',
}, },
{
align: 'right',
name: 'tableActions',
actions: [
{
title: t('route.Add tickets'),
icon: 'vn:ticketAdd',
action: (row) => openTicketsDialog(row?.id),
isPrimary: true,
},
{
title: t('route.components.smartCard.viewSummary'),
icon: 'preview',
action: (row) => viewSummary(row?.id, RouteSummary),
isPrimary: true,
},
{
title: t('route.Route summary'),
icon: 'arrow_forward',
action: (row) => navigate(row?.id),
isPrimary: true,
},
],
},
]); ]);
function navigate(id) { function navigate(id) {

View File

@ -26,7 +26,7 @@ const routeFilter = {
}; };
const columns = computed(() => [ const columns = computed(() => [
{ {
align: 'right', align: 'left',
isId: true, isId: true,
name: 'id', name: 'id',
label: 'Id', label: 'Id',

View File

@ -1,6 +1,8 @@
<script setup> <script setup>
import VnPaginate from 'components/ui/VnPaginate.vue'; import VnPaginate from 'components/ui/VnPaginate.vue';
import { useStateStore } from 'stores/useStateStore';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { onMounted, onUnmounted } from 'vue';
import CardList from 'components/ui/CardList.vue'; import CardList from 'components/ui/CardList.vue';
import VnLv from 'components/ui/VnLv.vue'; import VnLv from 'components/ui/VnLv.vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
@ -10,6 +12,7 @@ import ShelvingSearchbar from 'pages/Shelving/Card/ShelvingSearchbar.vue';
import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import { useSummaryDialog } from 'src/composables/useSummaryDialog';
import RightMenu from 'src/components/common/RightMenu.vue'; import RightMenu from 'src/components/common/RightMenu.vue';
const stateStore = useStateStore();
const router = useRouter(); const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
@ -17,6 +20,9 @@ const filter = {
include: [{ relation: 'parking' }], include: [{ relation: 'parking' }],
}; };
onMounted(() => (stateStore.rightDrawer = true));
onUnmounted(() => (stateStore.rightDrawer = false));
function navigate(id) { function navigate(id) {
router.push({ path: `/shelving/${id}` }); router.push({ path: `/shelving/${id}` });
} }

View File

@ -14,10 +14,10 @@ import axios from 'axios';
import useNotify from 'src/composables/useNotify.js'; import useNotify from 'src/composables/useNotify.js';
import { useQuasar } from 'quasar'; import { useQuasar } from 'quasar';
const { t } = useI18n();
const { notify } = useNotify();
const quasar = useQuasar(); const quasar = useQuasar();
const { notify } = useNotify();
const route = useRoute(); const route = useRoute();
const { t } = useI18n();
const bankEntitiesRef = ref(null); const bankEntitiesRef = ref(null);
const supplier = ref(null); const supplier = ref(null);

View File

@ -12,10 +12,7 @@ const columns = computed(() => [
align: 'left', align: 'left',
label: t('supplier.list.tableVisibleColumns.id'), label: t('supplier.list.tableVisibleColumns.id'),
name: 'id', name: 'id',
isId: true, isTitle: true,
chip: {
condition: () => true,
},
}, },
{ {
align: 'left', align: 'left',
@ -25,7 +22,6 @@ const columns = computed(() => [
columnFilter: { columnFilter: {
name: 'search', name: 'search',
}, },
isTitle: true,
}, },
{ {
align: 'left', align: 'left',
@ -34,7 +30,6 @@ const columns = computed(() => [
columnFilter: { columnFilter: {
inWhere: true, inWhere: true,
}, },
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -43,7 +38,6 @@ const columns = computed(() => [
columnFilter: { columnFilter: {
name: 'search', name: 'search',
}, },
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -117,6 +111,7 @@ const columns = computed(() => [
}" }"
order="id ASC" order="id ASC"
:columns="columns" :columns="columns"
auto-load
/> />
</template> </template>

View File

@ -95,7 +95,6 @@ const columns = computed(() => [
columnField: { columnField: {
component: null, component: null,
}, },
cardVisible: true,
format: (row, dashIfEmpty) => dashIfEmpty(row.salesPerson), format: (row, dashIfEmpty) => dashIfEmpty(row.salesPerson),
}, },
{ {
@ -127,14 +126,12 @@ const columns = computed(() => [
name: 'nickname', name: 'nickname',
label: t('ticketList.nickname'), label: t('ticketList.nickname'),
columnClass: 'expand', columnClass: 'expand',
isTitle: true,
}, },
{ {
align: 'left', align: 'left',
name: 'addressNickname', name: 'addressNickname',
label: t('ticketList.addressNickname'), label: t('ticketList.addressNickname'),
columnClass: 'expand', columnClass: 'expand',
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -155,7 +152,6 @@ const columns = computed(() => [
}, },
}, },
columnClass: 'expand', columnClass: 'expand',
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -306,6 +302,7 @@ const getDateColor = (date) => {
onMounted(() => { onMounted(() => {
initializeFromQuery(); initializeFromQuery();
stateStore.rightDrawer = true;
}); });
async function makeInvoice(ticket) { async function makeInvoice(ticket) {

View File

@ -1,7 +1,6 @@
<script setup> <script setup>
import VnCard from 'components/common/VnCard.vue'; import VnCard from 'components/common/VnCard.vue';
import TravelDescriptor from './TravelDescriptor.vue'; import TravelDescriptor from './TravelDescriptor.vue';
import TravelFilter from '../TravelFilter.vue';
const filter = { const filter = {
fields: [ fields: [

View File

@ -27,7 +27,7 @@ defineExpose({ states });
<VnFilterPanel :data-key="props.dataKey" :search-button="true" search-url="table"> <VnFilterPanel :data-key="props.dataKey" :search-button="true" search-url="table">
<template #tags="{ tag, formatFn }"> <template #tags="{ tag, formatFn }">
<div class="q-gutter-x-xs"> <div class="q-gutter-x-xs">
<strong>{{ t(`travel.${tag.label}`) }}: </strong> <strong>{{ t(`params.${tag.label}`) }}: </strong>
<span>{{ formatFn(tag.value) }}</span> <span>{{ formatFn(tag.value) }}</span>
</div> </div>
</template> </template>

View File

@ -1,7 +1,8 @@
<script setup> <script setup>
import { ref, computed } from 'vue'; import { onMounted, ref, computed } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { useStateStore } from 'stores/useStateStore';
import VnTable from 'components/VnTable/VnTable.vue'; import VnTable from 'components/VnTable/VnTable.vue';
import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import { useSummaryDialog } from 'src/composables/useSummaryDialog';
import TravelSummary from './Card/TravelSummary.vue'; import TravelSummary from './Card/TravelSummary.vue';
@ -14,6 +15,7 @@ import TravelFilter from './TravelFilter.vue';
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const router = useRouter(); const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const stateStore = useStateStore();
const route = useRoute(); const route = useRoute();
const tableRef = ref(); const tableRef = ref();
const $props = defineProps({ const $props = defineProps({
@ -25,6 +27,9 @@ const $props = defineProps({
const entityId = computed(() => $props.id || route.params.id); const entityId = computed(() => $props.id || route.params.id);
const travelFilterRef = ref(); const travelFilterRef = ref();
onMounted(async () => {
stateStore.rightDrawer = true;
});
const cloneTravel = (travelData) => { const cloneTravel = (travelData) => {
const stringifiedTravelData = JSON.stringify(travelData); const stringifiedTravelData = JSON.stringify(travelData);
@ -43,11 +48,9 @@ const columns = computed(() => [
{ {
align: 'left', align: 'left',
name: 'id', name: 'id',
label: 'Id', label: t('travel.travelList.tableVisibleColumns.id'),
chip: {
condition: () => true,
},
isId: true, isId: true,
cardVisible: true,
}, },
{ {
align: 'left', align: 'left',
@ -57,7 +60,7 @@ const columns = computed(() => [
columnField: { columnField: {
component: null, component: null,
}, },
isTitle: true, cardVisible: true,
create: true, create: true,
}, },
{ {
@ -136,6 +139,7 @@ const columns = computed(() => [
columnField: { columnField: {
component: null, component: null,
}, },
cardVisible: true,
create: true, create: true,
format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.landed)), format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.landed)),
}, },
@ -221,6 +225,7 @@ const columns = computed(() => [
:user-params="{ daysOnward: 7 }" :user-params="{ daysOnward: 7 }"
order="landed DESC" order="landed DESC"
:columns="columns" :columns="columns"
auto-load
redirect="travel" redirect="travel"
:is-editable="false" :is-editable="false"
:use-model="true" :use-model="true"
@ -268,6 +273,7 @@ const columns = computed(() => [
</template> </template>
</VnTable> </VnTable>
</template> </template>
<i18n> <i18n>
en: en:
Add entry: Add entry Add entry: Add entry
@ -281,6 +287,7 @@ es:
Clone: Clonar Clone: Clonar
Add entry: Añadir Entrada Add entry: Añadir Entrada
</i18n> </i18n>
<style lang="scss" scoped> <style lang="scss" scoped>
.is-active { .is-active {
color: #c8e484; color: #c8e484;

View File

@ -98,6 +98,7 @@ async function remove(row) {
url="Wagons" url="Wagons"
:filter="filter" :filter="filter"
:columns="columns" :columns="columns"
auto-load
order="id DESC" order="id DESC"
:right-search="false" :right-search="false"
:column-search="false" :column-search="false"

View File

@ -105,7 +105,6 @@ const columns = computed(() => [
title: t('components.smartCard.viewSummary'), title: t('components.smartCard.viewSummary'),
icon: 'preview', icon: 'preview',
action: (row) => viewSummary(row.id, WorkerSummary), action: (row) => viewSummary(row.id, WorkerSummary),
isPrimary: true,
}, },
], ],
}, },

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { computed, ref } from 'vue'; import { computed, ref, onMounted } from 'vue';
import axios from 'axios'; import axios from 'axios';
import { toCurrency } from 'src/filters'; import { toCurrency } from 'src/filters';
@ -9,6 +9,7 @@ import { toTimeFormat } from 'src/filters/date';
import { useVnConfirm } from 'composables/useVnConfirm'; import { useVnConfirm } from 'composables/useVnConfirm';
import useNotify from 'src/composables/useNotify.js'; import useNotify from 'src/composables/useNotify.js';
import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import { useSummaryDialog } from 'src/composables/useSummaryDialog';
import { useStateStore } from 'stores/useStateStore';
import ZoneSummary from 'src/pages/Zone/Card/ZoneSummary.vue'; import ZoneSummary from 'src/pages/Zone/Card/ZoneSummary.vue';
import VnTable from 'src/components/VnTable/VnTable.vue'; import VnTable from 'src/components/VnTable/VnTable.vue';
import VnSelect from 'src/components/common/VnSelect.vue'; import VnSelect from 'src/components/common/VnSelect.vue';
@ -23,6 +24,7 @@ const router = useRouter();
const { notify } = useNotify(); const { notify } = useNotify();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const { openConfirmationModal } = useVnConfirm(); const { openConfirmationModal } = useVnConfirm();
const stateStore = useStateStore();
const tableRef = ref(); const tableRef = ref();
const warehouseOptions = ref([]); const warehouseOptions = ref([]);
@ -128,6 +130,8 @@ const handleClone = (id) => {
() => clone(id) () => clone(id)
); );
}; };
onMounted(() => (stateStore.rightDrawer = true));
</script> </script>
<template> <template>
@ -151,6 +155,7 @@ const handleClone = (id) => {
:columns="columns" :columns="columns"
redirect="zone" redirect="zone"
:right-search="false" :right-search="false"
auto-load
> >
<template #more-create-dialog="{ data }"> <template #more-create-dialog="{ data }">
<VnSelect <VnSelect

View File

@ -25,7 +25,7 @@ export default {
path: 'list', path: 'list',
name: 'ShelvingList', name: 'ShelvingList',
meta: { meta: {
title: 'list', title: 'shelvingList',
icon: 'view_list', icon: 'view_list',
}, },
component: () => import('src/pages/Shelving/ShelvingList.vue'), component: () => import('src/pages/Shelving/ShelvingList.vue'),

View File

@ -25,7 +25,7 @@ export default {
path: 'list', path: 'list',
name: 'WagonList', name: 'WagonList',
meta: { meta: {
title: 'list', title: 'wagonsList',
icon: 'vn:trolley', icon: 'vn:trolley',
}, },
component: () => import('src/pages/Wagon/WagonList.vue'), component: () => import('src/pages/Wagon/WagonList.vue'),

View File

@ -38,7 +38,7 @@ export default {
name: 'ZoneList', name: 'ZoneList',
meta: { meta: {
title: 'zonesList', title: 'zonesList',
icon: 'view_list', icon: 'vn:zone',
}, },
component: () => import('src/pages/Zone/ZoneList.vue'), component: () => import('src/pages/Zone/ZoneList.vue'),
}, },