diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 4a79e562a..cf217555a 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -48,7 +48,6 @@ let store; let entity; const isLoading = ref(false); const isSameDataKey = computed(() => $props.dataKey === route.meta.moduleName); -const menuRef = ref(); defineExpose({ getData }); onBeforeMount(async () => { @@ -161,7 +160,7 @@ const toModule = computed(() => </QBtn> </RouterLink> <VnMoreOptions v-if="$slots.menu"> - <template #menu> + <template #menu="{ menuRef }"> <slot name="menu" :entity="entity" :menu-ref="menuRef" /> </template> </VnMoreOptions> diff --git a/src/components/ui/CardSummary.vue b/src/components/ui/CardSummary.vue index 4773253a7..52427f3fe 100644 --- a/src/components/ui/CardSummary.vue +++ b/src/components/ui/CardSummary.vue @@ -87,8 +87,8 @@ async function fetch() { <span class="row no-wrap"> <slot name="header-right" :entity="entity" /> <VnMoreOptions v-if="$slots.menu && isDialogOpened()"> - <template #menu> - <slot name="menu" :entity="entity" /> + <template #menu="{ menuRef }"> + <slot name="menu" :entity="entity" :menu-ref="menuRef" /> </template> </VnMoreOptions> </span> diff --git a/src/components/ui/VnMoreOptions.vue b/src/components/ui/VnMoreOptions.vue index 75f7c35d6..39e84be2b 100644 --- a/src/components/ui/VnMoreOptions.vue +++ b/src/components/ui/VnMoreOptions.vue @@ -13,7 +13,7 @@ </QTooltip> <QMenu ref="menuRef"> <QList> - <slot name="menu" /> + <slot name="menu" :menu-ref="$refs.menuRef" /> </QList> </QMenu> </QBtn> diff --git a/src/pages/Route/Card/RouteDescriptorMenu.vue b/src/pages/Route/Card/RouteDescriptorMenu.vue index 6092bcd95..d1a70c868 100644 --- a/src/pages/Route/Card/RouteDescriptorMenu.vue +++ b/src/pages/Route/Card/RouteDescriptorMenu.vue @@ -52,7 +52,7 @@ async function actualizeVolume() { const params = { isOk: true }; await axios.post(`Routes/${routeId}/updateVolume`, params); quasar.notify({ - message: t('globals.dataUpdated'), + message: t('globals.dataSaved'), type: 'positive', }); } diff --git a/src/pages/Route/Card/RouteSummary.vue b/src/pages/Route/Card/RouteSummary.vue index a0b971195..3051972b2 100644 --- a/src/pages/Route/Card/RouteSummary.vue +++ b/src/pages/Route/Card/RouteSummary.vue @@ -12,6 +12,7 @@ import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy import TicketDescriptorProxy from 'pages/Ticket/Card/TicketDescriptorProxy.vue'; import VnLv from 'components/ui/VnLv.vue'; import VnTitle from 'src/components/common/VnTitle.vue'; +import RouteDescriptorMenu from './RouteDescriptorMenu.vue'; const $props = defineProps({ id: { @@ -128,6 +129,9 @@ const ticketColumns = ref([ <template #header="{ entity }"> <span>{{ `${entity?.route.id} - ${entity?.route?.description}` }}</span> </template> + <template #menu="{ entity }"> + <RouteDescriptorMenu :route="entity.route" /> + </template> <template #body="{ entity }"> <QCard class="vn-max"> <VnTitle diff --git a/src/pages/Route/Roadmap/RoadmapSummary.vue b/src/pages/Route/Roadmap/RoadmapSummary.vue index 3fb36b4f7..1fbb1897d 100644 --- a/src/pages/Route/Roadmap/RoadmapSummary.vue +++ b/src/pages/Route/Roadmap/RoadmapSummary.vue @@ -10,6 +10,7 @@ import VnTitle from 'src/components/common/VnTitle.vue'; import CardSummary from 'components/ui/CardSummary.vue'; import SupplierDescriptorProxy from 'pages/Supplier/Card/SupplierDescriptorProxy.vue'; import VnLinkPhone from 'components/ui/VnLinkPhone.vue'; +import RoadmapDescriptorMenu from './RoadmapDescriptorMenu.vue'; const $props = defineProps({ id: { @@ -86,6 +87,9 @@ const filter = { <template #header="{ entity }"> <span>{{ `${entity?.id} - ${entity?.name}` }}</span> </template> + <template #menu="{ entity }"> + <RoadmapDescriptorMenu :route="entity" /> + </template> <template #body="{ entity }"> <QCard class="vn-one"> <VnTitle diff --git a/src/pages/Shelving/Card/ShelvingDescriptorMenu.vue b/src/pages/Shelving/Card/ShelvingDescriptorMenu.vue index 16351fdd4..447737e9c 100644 --- a/src/pages/Shelving/Card/ShelvingDescriptorMenu.vue +++ b/src/pages/Shelving/Card/ShelvingDescriptorMenu.vue @@ -4,6 +4,7 @@ import { useQuasar } from 'quasar'; import { useI18n } from 'vue-i18n'; import { useRouter } from 'vue-router'; import VnConfirm from 'components/ui/VnConfirm.vue'; +import { useRoute } from 'vue-router'; const $props = defineProps({ shelving: { @@ -14,8 +15,11 @@ const $props = defineProps({ const router = useRouter(); const quasar = useQuasar(); +const route = useRoute(); const { t } = useI18n(); +const emit = defineEmits(['onRemove']); + function confirmRemove() { quasar.dialog({ component: VnConfirm, @@ -32,11 +36,12 @@ async function remove() { return; } await axios.delete(`Shelvings/${$props.shelving.id}`); - await router.push({ name: 'ShelvingList' }); + if (route.name != 'ShelvingList') await router.push({ name: 'ShelvingList' }); quasar.notify({ message: t('globals.dataDeleted'), type: 'positive', }); + emit('onRemove', {}); } </script> <template> diff --git a/src/pages/Shelving/Card/ShelvingSummary.vue b/src/pages/Shelving/Card/ShelvingSummary.vue index 0c1eb2a1d..39fa4639f 100644 --- a/src/pages/Shelving/Card/ShelvingSummary.vue +++ b/src/pages/Shelving/Card/ShelvingSummary.vue @@ -1,10 +1,11 @@ <script setup> -import { computed } from 'vue'; +import { computed, ref } from 'vue'; import { useRoute } from 'vue-router'; import { useI18n } from 'vue-i18n'; import CardSummary from 'components/ui/CardSummary.vue'; import VnLv from 'components/ui/VnLv.vue'; import VnUserLink from 'components/ui/VnUserLink.vue'; +import ShelvingDescriptorMenu from './ShelvingDescriptorMenu.vue'; const $props = defineProps({ id: { @@ -14,7 +15,7 @@ const $props = defineProps({ }); const route = useRoute(); const { t } = useI18n(); - +const summary = ref({}); const entityId = computed(() => $props.id || route.params.id); const filter = { @@ -43,7 +44,13 @@ const filter = { data-key="ShelvingSummary" > <template #header="{ entity }"> - <div>{{ entity.id }} - {{ entity.code }}</div> + <div>{{ entity.code }}</div> + </template> + <template #menu="{ entity }"> + <ShelvingDescriptorMenu + :shelving="entity" + @on-remove="$refs.summary.fetch()" + /> </template> <template #body="{ entity }"> <QCard class="vn-one">