minhnt-dev: design
This commit is contained in:
@@ -55,7 +55,7 @@ const drop = (e: any) => {
|
|||||||
<div class="basic-article_content" :class="[!parseData && 'no-data']">
|
<div class="basic-article_content" :class="[!parseData && 'no-data']">
|
||||||
<div>
|
<div>
|
||||||
<template v-if="parseData">
|
<template v-if="parseData">
|
||||||
<nuxt-link :to="`/bai-viet/${parseData.slug}`">
|
<nuxt-link :to="`/bai-viet/${parseData.id}`">
|
||||||
<h3 v-if="!LAYOUT_PARSE['HIDE'] || !LAYOUT_PARSE['HIDE'].includes('title')" class="mb-1 line-clamp-2 text-base font-700 hover:text-primary-100 transition-all duration-300">
|
<h3 v-if="!LAYOUT_PARSE['HIDE'] || !LAYOUT_PARSE['HIDE'].includes('title')" class="mb-1 line-clamp-2 text-base font-700 hover:text-primary-100 transition-all duration-300">
|
||||||
{{ parseData.title?.replace(/<[^>]+>/g, '') }}
|
{{ parseData.title?.replace(/<[^>]+>/g, '') }}
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const store = reactive({
|
|||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
store.article.getArticleById(Number(route.params.slug));
|
store.article.getArticleById(route.params.slug);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching data:", error);
|
console.error("Error fetching data:", error);
|
||||||
}
|
}
|
||||||
@@ -48,16 +48,16 @@ watch(currentArticle, async () => {
|
|||||||
case 4:
|
case 4:
|
||||||
isContentType = 'ArticleLayoutVideo'
|
isContentType = 'ArticleLayoutVideo'
|
||||||
case 5:
|
case 5:
|
||||||
if (currentArticle.value?.layoutType === 3) isContentType = 'ArticleLayoutInfographics'
|
if (currentArticle.value?.layoutType === 3) isContentType = 'trang-chi-tiet-emagazine'
|
||||||
else isContentType = 'ArticleLayoutFullPage'
|
else isContentType = 'trang-chi-tiet-emagazine'
|
||||||
default:
|
default:
|
||||||
isContentType = 'ArticleLayoutDefault'
|
isContentType = 'trang-chi-tiet-emagazine'
|
||||||
}
|
}
|
||||||
await loadPage(isContentType)
|
await loadPage(isContentType)
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
|
|
||||||
useSeoMeta({
|
useSeoMeta({
|
||||||
title: currentArticle.value?.title,
|
title: currentArticle.value?.title?.replace(/<[^>]+>/g, ''),
|
||||||
ogTitle: currentArticle.value?.title,
|
ogTitle: currentArticle.value?.title,
|
||||||
description: currentArticle.value?.intro,
|
description: currentArticle.value?.intro,
|
||||||
ogDescription: currentArticle.value?.intro,
|
ogDescription: currentArticle.value?.intro,
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ export const getArticleBySlug = async (event : any) => {
|
|||||||
site: '1' || 1,
|
site: '1' || 1,
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
console.log(item)
|
||||||
return item
|
return item
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleError(error);
|
handleError(error);
|
||||||
|
|||||||
+10
-1
@@ -10,9 +10,18 @@ export const useArticleStore = defineStore("article", () => {
|
|||||||
} catch (error: any) {}
|
} catch (error: any) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getArticleByCode = async (slug: string) => {
|
||||||
|
try {
|
||||||
|
const { data} = await useFetch(`/api/articles/get-by-slug/${slug}`)
|
||||||
|
currentArticle.value = {}
|
||||||
|
currentArticle.value = data.value.item
|
||||||
|
} catch (error: any) {}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
currentArticle,
|
currentArticle,
|
||||||
getArticleById
|
getArticleById,
|
||||||
|
getArticleByCode
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user