WARMFIX: #8242 - leftMenu_responsive #1504
|
@ -1,10 +1,9 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onBeforeMount } from 'vue';
|
import { onBeforeMount } from 'vue';
|
||||||
import { useRouter, onBeforeRouteUpdate } from 'vue-router';
|
import { useRouter, onBeforeRouteUpdate, onBeforeRouteLeave } from 'vue-router';
|
||||||
import { useArrayData } from 'src/composables/useArrayData';
|
import { useArrayData } from 'src/composables/useArrayData';
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
import useCardSize from 'src/composables/useCardSize';
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
|
||||||
import VnSubToolbar from '../ui/VnSubToolbar.vue';
|
import VnSubToolbar from '../ui/VnSubToolbar.vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
@ -27,7 +26,13 @@ const arrayData = useArrayData(props.dataKey, {
|
||||||
oneRecord: true,
|
oneRecord: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onBeforeRouteLeave(() => {
|
||||||
|
stateStore.cardDescriptorChangeValue(null);
|
||||||
|
});
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
|
stateStore.cardDescriptorChangeValue(props.descriptor);
|
||||||
|
|
||||||
const route = router.currentRoute.value;
|
const route = router.currentRoute.value;
|
||||||
try {
|
try {
|
||||||
await fetch(route.params.id);
|
await fetch(route.params.id);
|
||||||
|
@ -62,11 +67,6 @@ function hasRouteParam(params, valueToCheck = ':addressId') {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<Teleport to="#left-panel" v-if="stateStore.isHeaderMounted()">
|
|
||||||
<component :is="descriptor" />
|
|
||||||
<QSeparator />
|
|
||||||
<LeftMenu source="card" />
|
|
||||||
</Teleport>
|
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div :class="[useCardSize(), $attrs.class]">
|
<div :class="[useCardSize(), $attrs.class]">
|
||||||
<RouterView :key="$route.path" />
|
<RouterView :key="$route.path" />
|
||||||
|
|
|
@ -12,7 +12,7 @@ const $props = defineProps({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
onMounted(
|
onMounted(
|
||||||
() => (stateStore.leftDrawer = useQuasar().screen.gt.xs ? $props.leftDrawer : false)
|
() => (stateStore.leftDrawer = useQuasar().screen.gt.xs ? $props.leftDrawer : false),
|
||||||
);
|
);
|
||||||
|
|
||||||
const teleportRef = ref({});
|
const teleportRef = ref({});
|
||||||
|
@ -35,8 +35,14 @@ onMounted(() => {
|
||||||
<template>
|
<template>
|
||||||
<QDrawer v-model="stateStore.leftDrawer" show-if-above :width="256">
|
<QDrawer v-model="stateStore.leftDrawer" show-if-above :width="256">
|
||||||
<QScrollArea class="fit text-grey-8">
|
<QScrollArea class="fit text-grey-8">
|
||||||
<div id="left-panel" ref="teleportRef"></div>
|
<div id="left-panel" ref="teleportRef">
|
||||||
<LeftMenu v-if="!hasContent" />
|
<template v-if="stateStore.cardDescriptor">
|
||||||
|
<component :is="stateStore.cardDescriptor" />
|
||||||
|
<QSeparator />
|
||||||
|
<LeftMenu source="card" />
|
||||||
|
</template>
|
||||||
|
<template v-else> <LeftMenu /></template>
|
||||||
|
</div>
|
||||||
</QScrollArea>
|
</QScrollArea>
|
||||||
</QDrawer>
|
</QDrawer>
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
|
|
|
@ -1,16 +1,9 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import VnSection from 'src/components/common/VnSection.vue';
|
|
||||||
import WorkerDepartmentTree from './WorkerDepartmentTree.vue';
|
import WorkerDepartmentTree from './WorkerDepartmentTree.vue';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VnSection data-key="WorkerDepartment" :search-bar="false">
|
<QPage class="q-pa-md flex justify-center"> <WorkerDepartmentTree /> </QPage>
|
||||||
<template #body>
|
|
||||||
<div class="flex flex-center q-pa-md">
|
|
||||||
<WorkerDepartmentTree />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</VnSection>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<i18n>
|
<i18n>
|
||||||
|
|
|
@ -7,7 +7,11 @@ export const useStateStore = defineStore('stateStore', () => {
|
||||||
const rightDrawer = ref(false);
|
const rightDrawer = ref(false);
|
||||||
const rightAdvancedDrawer = ref(false);
|
const rightAdvancedDrawer = ref(false);
|
||||||
const subToolbar = ref(false);
|
const subToolbar = ref(false);
|
||||||
|
const cardDescriptor = ref(null);
|
||||||
|
|
||||||
|
function cardDescriptorChangeValue(descriptor) {
|
||||||
|
cardDescriptor.value = descriptor;
|
||||||
|
}
|
||||||
function toggleLeftDrawer() {
|
function toggleLeftDrawer() {
|
||||||
leftDrawer.value = !leftDrawer.value;
|
leftDrawer.value = !leftDrawer.value;
|
||||||
}
|
}
|
||||||
|
@ -49,6 +53,8 @@ export const useStateStore = defineStore('stateStore', () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
cardDescriptor,
|
||||||
|
cardDescriptorChangeValue,
|
||||||
leftDrawer,
|
leftDrawer,
|
||||||
rightDrawer,
|
rightDrawer,
|
||||||
rightAdvancedDrawer,
|
rightAdvancedDrawer,
|
||||||
|
|
Loading…
Reference in New Issue