feat: create by site

This commit is contained in:
MoreStrive
2024-07-15 21:02:22 +07:00
parent 043f97743c
commit 7565a37d60
9 changed files with 83 additions and 31 deletions
+3 -3
View File
@@ -13,9 +13,9 @@ const store = reactive({
await store.category.fetchBySiteId()
const { data } = await useAsyncData('index', () => store.dynamicPage.fetchPageByCode(route.path === '/' ? 'trang-chu' : route.path.replace('/', '')))
const asycnCurrentPage = data.value.currentPage;
const asycnSectionPublished = data.value.sectionPublished;
const asycnComponentPublished = data.value.componentPublished;
const asycnCurrentPage = data.value && data.value.currentPage;
const asycnSectionPublished = data.value && data.value.sectionPublished;
const asycnComponentPublished = data.value && data.value.componentPublished;
useHead({
title: () => 'Trang chủ',
+7 -5
View File
@@ -63,9 +63,10 @@ export const getArticleById = async (event : any) => {
try {
const { apiUrl } = useRuntimeConfig().public
const id = event.context.params.id;
const query = getQuery(event)
const { item }: any = await $fetch(`${apiUrl}/cms/digital-article/${id}`, {
headers: new Headers({
site: '1' || 1,
site: getSite(query.site).toString(),
}),
})
@@ -79,9 +80,10 @@ export const getArticleBySlug = async (event : any) => {
try {
const { apiUrl } = useRuntimeConfig().public
const slug = event.context.params.slug;
const query = getQuery(event)
const { item }: any = await $fetch(`${apiUrl}/cms/digital-article/slug:${slug}`, {
headers: new Headers({
site: '1' || 1,
site: getSite(query.site).toString(),
}),
})
return { item }
@@ -93,17 +95,17 @@ export const getArticleBySlug = async (event : any) => {
export const listArticleCondition = async (event: H3Event) => {
try {
const payload = await readBody<any>(event)
const { apiUrl } = useRuntimeConfig().public
const { apiUrl } = useRuntimeConfig().public;
const query = getQuery(event)
const { items }: any = await $fetch(`${apiUrl}/cms/article/condition`, {
method: "POST",
headers: new Headers({
site: '1' || 1,
site: getSite(query.site).toString(),
}),
body: {
payload
}
})
// log(event)
return items
} catch (error) {
+5 -4
View File
@@ -17,12 +17,13 @@ export type Author = {
export const fetchByCode = async (event: H3Event) => {
try {
const { apiUrl } = useRuntimeConfig().public
const { authorCode }: any = getQuery(event)
const { authorCode }: any = getQuery(event);
const query = getQuery(event)
const { items }: any = await $fetch(`${apiUrl}/cms/author/code:${authorCode}`, {
method: 'GET',
headers: {
site: 1
}
headers: new Headers({
site: getSite(query.site).toString(),
}),
})
return items[0]
} catch (error) {
+5 -5
View File
@@ -28,15 +28,15 @@ export type CategoryTree = Category & {
children?: Category[]
}
export const list = async () => {
export const list = async (event : H3Event) => {
try {
const { site, apiUrl } = useRuntimeConfig().public;
const query = getQuery(event)
const { items }: CategoryTree[] | any = await $fetch(`${apiUrl}/cms/category/tree/site:1`, {
method: "GET",
headers: {
site: 1,
},
headers: new Headers({
site: getSite(query.site).toString(),
}),
});
return { items } ;
} catch (error) {
+11 -2
View File
@@ -101,11 +101,13 @@ export const getDynamicPageByCode = async (event: any) => {
try {
const { apiUrl } = useRuntimeConfig().public
const slug = event.context.params.slug;
const query = getQuery(event)
const { item }: any = await $fetch(`${apiUrl}/cms/page/overview-page/slug:${slug}`, {
headers: new Headers({
site: '1' || 1,
site: getSite(query.site).toString(),
}),
})
console.log(getSite(query.site))
return item
} catch (error) {
handleError(error);
@@ -116,7 +118,12 @@ export const getDynamicPageById = async (event: any) => {
try {
const { apiUrl } = useRuntimeConfig().public
const id = event.context.params.id;
const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/${id}`)
const query = getQuery(event)
const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/${id}`, {
headers: new Headers({
site: getSite(query.site).toString(),
}),
})
return item
} catch (error) {
handleError(error);
@@ -126,10 +133,12 @@ export async function getOverviewPageComponentById(event: any) {
try {
const { apiUrl } = useRuntimeConfig().public
const { componentId, dataQuery } = getQuery(event)
const query = getQuery(event)
return await $fetch(`${apiUrl}/cms/overview-page-component/${componentId}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
site: getSite(query.site).toString(),
},
body: dataQuery,
});
+8 -6
View File
@@ -21,11 +21,12 @@ export const fetchByCode = async(event: H3Event) => {
try {
const { apiUrl } = useRuntimeConfig().public
const { eventCode }: any = getQuery(event)
const query = getQuery(event)
const { item }: any = await $fetch(`${apiUrl}/cms/event/code:${eventCode}`, {
method: 'GET',
headers: {
Site: 1
}
headers: new Headers({
site: getSite(query.site).toString(),
}),
})
return item
} catch (error) {
@@ -37,11 +38,12 @@ export const fetchById = async(event: H3Event) => {
try {
const { apiUrl } = useRuntimeConfig().public
const { eventId }: any = getQuery(event)
const query = getQuery(event);
const { item }: any = await $fetch(`${apiUrl}/cms/event/${eventId}`, {
method: 'GET',
headers: {
Site: 1
}
headers: new Headers({
site: getSite(query.site).toString(),
}),
})
return item
} catch (error) {
+16
View File
@@ -0,0 +1,16 @@
export const getSite = (dns : any) => {
const SITE = {
DEFAULT: 1,
KINHTEDOTHI: 'kinhtedothi',
}
let site = null;
switch (dns) {
case SITE.KINHTEDOTHI:
site = 2;
break;
default:
site = 1;
break;
}
return site;
}
+17 -3
View File
@@ -5,9 +5,16 @@ export const useArticleStore = defineStore("article", () => {
const currentArticle = ref<any>({});
const currentArticles = ref<any[]>([])
const url : any = useRequestURL();
const host = url.hostname.split('.')[0];
const getArticleById = async (id: string | number) => {
try {
const { data } = await useFetch(`/api/articles/get-by-id/${id}`)
const { data } = await useFetch(`/api/articles/get-by-id/${id}`, {
query: {
site: host
}
})
currentArticle.value = {}
currentArticle.value = data.value.item
} catch (error: any) { }
@@ -15,7 +22,11 @@ export const useArticleStore = defineStore("article", () => {
const getArticleBySlug = async (slug: string) => {
try {
const article = await $fetch(`/api/articles/get-by-slug/${slug}`)
const article = await $fetch(`/api/articles/get-by-slug/${slug}`, {
query: {
site: host
}
})
currentArticle.value = {}
currentArticle.value = article?.item
@@ -27,7 +38,10 @@ export const useArticleStore = defineStore("article", () => {
try {
const { data: articles } = await useFetch(`/api/articles/condition`, {
method: 'POST',
body: condition
body: condition,
query: {
site: host
}
})
} catch (error: any) {
+10 -2
View File
@@ -1,10 +1,14 @@
import { defineStore, acceptHMRUpdate } from "pinia";
import { useLocalStorage } from "@vueuse/core";
export const useDynamicPageStore = defineStore("dynamicPageStore", () => {
const currentPage = ref<any>({});
const sectionPublished = ref<any[]>([]);
const componentPublished = ref<any[]>([]);
const url : any = useRequestURL();
const host = url.hostname.split('.')[0];
const setSectionPublished = () => {
const exsitsTemplate = ['None']
const contentArr: any = [];
@@ -45,7 +49,11 @@ export const useDynamicPageStore = defineStore("dynamicPageStore", () => {
async function fetchPageByCode(slug: any) {
try {
const page = await $fetch(`/api/dynamic-page/get-by-code/${slug}`)
const page = await $fetch(`/api/dynamic-page/get-by-code/${slug}`, {
query: {
site: host
}
})
currentPage.value = {}
currentPage.value = page
@@ -60,7 +68,7 @@ export const useDynamicPageStore = defineStore("dynamicPageStore", () => {
} catch (error: any) {}
}
async function getOverviewPageComponentById(componentId, dataQuery) {
async function getOverviewPageComponentById(componentId: any, dataQuery: any) {
try {
const { apiUrl } = useRuntimeConfig().public
const res = await $fetch(`${apiUrl}/cms/page-component/overview-page-component/${componentId}`, {