base_ui/pages/index.vue
2025-02-01 13:04:55 +03:30

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>