150 lines
4.4 KiB
Vue
150 lines
4.4 KiB
Vue
![]() |
<template>
|
||
|
<div>
|
||
|
<NuxtLayout name="default" :menu="sidbarMenu">
|
||
|
<!-- <ClientOnly> -->
|
||
|
<!-- majles dashbaord -->
|
||
|
<search-section v-if="buildName() == 'majles'"></search-section>
|
||
|
<!-- monir dashboard -->
|
||
|
<default-dashboard></default-dashboard>
|
||
|
<!-- </ClientOnly> -->
|
||
|
</NuxtLayout>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script lang="ts">
|
||
|
// import monirMenu from "~/json/dashboard/monir/menu.json";
|
||
|
import monirMenu from "~/json/dashboard/monir/menu.json";
|
||
|
import majlesMenu from "~/json/dashboard/majles/menuDefault.json";
|
||
|
|
||
|
import { mapActions, mapState } from "pinia";
|
||
|
import { useCommonStore } from "~/stores/commonStore";
|
||
|
|
||
|
// import searchApi from "~/apis/searchApi";
|
||
|
import { useStorage } from "@vueuse/core";
|
||
|
|
||
|
// import DefaultDashboard from "@/components/dashboard/default/DefaultDashboard.vue";
|
||
|
// import SearchSection from "@/components/dashboard/majles/SearchSection.vue";
|
||
|
|
||
|
export default {
|
||
|
name: "defaultRoute",
|
||
|
// async asyncData() {
|
||
|
// console.info("asyncData");
|
||
|
|
||
|
// // Fetch data from the API route
|
||
|
// const { data } = await useFetch("/api/ali");
|
||
|
// return { data: data.value };
|
||
|
// },
|
||
|
setup() {
|
||
|
// console.info("setup");
|
||
|
// const { count, increment, decrement } = useMyComposable();
|
||
|
// console.info(count, increment, decrement);
|
||
|
// const requestFetch = useRequestFetch();
|
||
|
// Fetch data with headers forwarded
|
||
|
// const fetchDataWithHeaders = async () => {
|
||
|
// console.info("fetchDataWithHeaders");
|
||
|
// const { data: forwarded } = await useAsyncData(() =>
|
||
|
// requestFetch("/api/ali")
|
||
|
// );
|
||
|
// console.log("Forwarded:", forwarded.value);
|
||
|
// };
|
||
|
// Fetch data without headers forwarded
|
||
|
// const fetchDataWithoutHeaders = async () => {
|
||
|
// const { data: notForwarded } = await useAsyncData(() =>
|
||
|
// $fetch("/api/cookies")
|
||
|
// );
|
||
|
// console.log("Not Forwarded:", notForwarded.value);
|
||
|
// };
|
||
|
// Call the functions when the component is mounted
|
||
|
// onMounted(() => {
|
||
|
// console.info("onMounted");
|
||
|
// fetchDataWithHeaders();
|
||
|
// // fetchDataWithoutHeaders();
|
||
|
// });
|
||
|
definePageMeta({
|
||
|
name: "defaultRoute",
|
||
|
layout: false,
|
||
|
// layout: "dashboard-layout",
|
||
|
});
|
||
|
// if (isMajlesBuild()) return this.majlesMenu;
|
||
|
// else return this.monirMenu;
|
||
|
// return {
|
||
|
// count,
|
||
|
// increment,
|
||
|
// decrement,
|
||
|
// };
|
||
|
},
|
||
|
async created() {
|
||
|
// await this.fetchUsers(); // Fetch users when the component is created
|
||
|
// await this.fetchSchema(); // Fetch users when the component is created
|
||
|
},
|
||
|
beforeMount() {
|
||
|
if (buildName() == "majles") this.sidebarMenuSetter(majlesMenu);
|
||
|
else this.sidebarMenuSetter(monirMenu);
|
||
|
// const commonStore = useCommonStore();
|
||
|
// commonStore.clearBodyClass();
|
||
|
},
|
||
|
async mounted() {
|
||
|
// const data = useGetSchema();
|
||
|
// console.info("data", data);
|
||
|
// console.info("mounted");
|
||
|
// const commonStore = useCommonStore();
|
||
|
// commonStore.sidebarMenuSetter(monirMenu);
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
users: [],
|
||
|
schema: [],
|
||
|
};
|
||
|
},
|
||
|
computed: {
|
||
|
...mapState(useCommonStore, ["organNameGetter"]),
|
||
|
sidbarMenu() {
|
||
|
if (isMajlesBuild()) return majlesMenu;
|
||
|
else return monirMenu;
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
...mapActions(useCommonStore, ["sidebarMenuSetter"]),
|
||
|
|
||
|
// Fetch all users
|
||
|
async fetchSchema() {
|
||
|
let token = useStorage("id_token", "GuestAccess").value;
|
||
|
// console.info(token)
|
||
|
|
||
|
try {
|
||
|
this.schema = await $fetch("/api/ali", {
|
||
|
method: "post",
|
||
|
headers: {
|
||
|
Authorization: token,
|
||
|
},
|
||
|
body: {
|
||
|
organ: this.organNameGetter,
|
||
|
system: "search",
|
||
|
build_state: buildState(),
|
||
|
},
|
||
|
});
|
||
|
} catch (error) {
|
||
|
console.error("Error fetching users:", error);
|
||
|
}
|
||
|
},
|
||
|
async fetchUsers() {
|
||
|
try {
|
||
|
this.users = await $fetch("/api/users");
|
||
|
} catch (error) {
|
||
|
console.error("Error fetching users:", error);
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
components: {
|
||
|
// LazyDefaultDashboard: DefaultDashboard,
|
||
|
// LazySearchSection: SearchSection,
|
||
|
DefaultDashboard: defineAsyncComponent(
|
||
|
() => import("@/components/dashboard/default/DefaultDashboard.vue")
|
||
|
),
|
||
|
SearchSection: defineAsyncComponent(
|
||
|
() => import("@/components/dashboard/majles/SearchSection.vue")
|
||
|
),
|
||
|
},
|
||
|
};
|
||
|
</script>
|