From 6ff759f22a428006293a344fc59284947b4a9374 Mon Sep 17 00:00:00 2001 From: nguyen van thai Date: Fri, 31 May 2024 12:39:53 +0700 Subject: [PATCH] =?UTF-8?q?thainv-dev:=20page=20chi=20ti=E1=BA=BFt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../page-component/templates/index.ts | 5 +- .../page-component/templates/index.vue | 7 +- .../templates/other/ads/default.vue | 17 +++ .../templates/other/breadcrumb/Default.vue | 105 ++++++++++++++++++ .../other/copyLinks/ArticleButton.vue | 48 ++++++++ .../templates/other/details/default.vue | 41 +++++++ .../templates/other/details/emagazine.vue | 17 +++ .../templates/other/details/infographics.vue | 42 +++++++ .../page-component/templates/other/index.ts | 5 + .../page-component/templates/other/index.vue | 42 +++++++ definitions/enum/page.enum.ts | 4 + pages/bai-viet/[slug].vue | 11 +- server/models/articles/index.ts | 7 +- stores/articles.ts | 5 +- stores/dynamic-page.ts | 6 +- 15 files changed, 348 insertions(+), 14 deletions(-) create mode 100644 components/dynamic-page/page-component/templates/other/ads/default.vue create mode 100644 components/dynamic-page/page-component/templates/other/breadcrumb/Default.vue create mode 100644 components/dynamic-page/page-component/templates/other/copyLinks/ArticleButton.vue create mode 100644 components/dynamic-page/page-component/templates/other/details/default.vue create mode 100644 components/dynamic-page/page-component/templates/other/details/emagazine.vue create mode 100644 components/dynamic-page/page-component/templates/other/details/infographics.vue create mode 100644 components/dynamic-page/page-component/templates/other/index.ts create mode 100644 components/dynamic-page/page-component/templates/other/index.vue diff --git a/components/dynamic-page/page-component/templates/index.ts b/components/dynamic-page/page-component/templates/index.ts index 91e3dcf..bbdaead 100644 --- a/components/dynamic-page/page-component/templates/index.ts +++ b/components/dynamic-page/page-component/templates/index.ts @@ -4,4 +4,7 @@ export { default as Article_BasicCollection } from './articles/collections/Basic // Category export { default as BasicCategories } from './categories/BasicCategories.vue' -export { default as CollectionPaging } from './pageCategories/collection_page.vue' \ No newline at end of file +export { default as CollectionPaging } from './pageCategories/collection_page.vue' + + +export { default as Dynamic_Other } from './other/index.vue' \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/index.vue b/components/dynamic-page/page-component/templates/index.vue index c2d2fdd..ae93d3a 100644 --- a/components/dynamic-page/page-component/templates/index.vue +++ b/components/dynamic-page/page-component/templates/index.vue @@ -1,6 +1,6 @@ diff --git a/components/dynamic-page/page-component/templates/other/ads/default.vue b/components/dynamic-page/page-component/templates/other/ads/default.vue new file mode 100644 index 0000000..088a7c2 --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/ads/default.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/breadcrumb/Default.vue b/components/dynamic-page/page-component/templates/other/breadcrumb/Default.vue new file mode 100644 index 0000000..88417f0 --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/breadcrumb/Default.vue @@ -0,0 +1,105 @@ + + + \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/copyLinks/ArticleButton.vue b/components/dynamic-page/page-component/templates/other/copyLinks/ArticleButton.vue new file mode 100644 index 0000000..fe16097 --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/copyLinks/ArticleButton.vue @@ -0,0 +1,48 @@ + + diff --git a/components/dynamic-page/page-component/templates/other/details/default.vue b/components/dynamic-page/page-component/templates/other/details/default.vue new file mode 100644 index 0000000..f8e196c --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/details/default.vue @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/details/emagazine.vue b/components/dynamic-page/page-component/templates/other/details/emagazine.vue new file mode 100644 index 0000000..ac15e62 --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/details/emagazine.vue @@ -0,0 +1,17 @@ + + \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/details/infographics.vue b/components/dynamic-page/page-component/templates/other/details/infographics.vue new file mode 100644 index 0000000..7abb8c3 --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/details/infographics.vue @@ -0,0 +1,42 @@ + + + + \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/index.ts b/components/dynamic-page/page-component/templates/other/index.ts new file mode 100644 index 0000000..817abec --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/index.ts @@ -0,0 +1,5 @@ +export { default as Article_Button } from './copyLinks/ArticleButton.vue' +export { default as Article_Detail_Emagazine } from './details/emagazine.vue' +export { default as Article_Detail_Default } from './details/default.vue' +export { default as Article_Detail_Infographics } from './details/infographics.vue' +export { default as Default_Breadcrumb} from './breadcrumb/default.vue' \ No newline at end of file diff --git a/components/dynamic-page/page-component/templates/other/index.vue b/components/dynamic-page/page-component/templates/other/index.vue new file mode 100644 index 0000000..17396dc --- /dev/null +++ b/components/dynamic-page/page-component/templates/other/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/definitions/enum/page.enum.ts b/definitions/enum/page.enum.ts index f519880..60b2489 100644 --- a/definitions/enum/page.enum.ts +++ b/definitions/enum/page.enum.ts @@ -138,5 +138,9 @@ export const enumPageComponentLayouts = { }, [`${enumPageComponentTemplates.COLLECTION}`]: { 'ARTICLE-VERTICAL-|HORIZONTAL|-MAX_5': 'TYPE:Article-LAYOUT:vertical-DATA:HORIZONTAL-MAX:5' + }, + [`${enumPageComponentTemplates.OTHER}`]: { + '"ARTICLE_BUTTON"': '"ARTICLE_BUTTON"' } + }; diff --git a/pages/bai-viet/[slug].vue b/pages/bai-viet/[slug].vue index 092364d..2e2b41c 100644 --- a/pages/bai-viet/[slug].vue +++ b/pages/bai-viet/[slug].vue @@ -16,30 +16,31 @@ import { useDynamicPageStore } from '~/stores/dynamic-page'; import { useArticleStore } from '~/stores/articles'; const { currentPage, sectionPublished, componentPublished } = storeToRefs(useDynamicPageStore()); const { currentArticle } = storeToRefs(useArticleStore()); - const store = reactive({ dynamicPage: useDynamicPageStore(), article: useArticleStore(), }); + (async () => { try { - store.article.getArticleById(route.params.slug); + store.article.getArticleById(Number(route.params.slug)); } catch (error) { console.error("Error fetching data:", error); } })(); const loadPage = async (contentType: string | number) => { - store.dynamicPage.fetchPageByCode('trang-chu'); + await store.dynamicPage.fetchPageByCode(contentType); store.dynamicPage.setSectionPublished(); store.dynamicPage.setComponentPublished(); } watch(currentArticle, async () => { let isContentType : string = ''; + console.log(currentArticle.value) switch (currentArticle.value?.contentType) { case 1: - isContentType = 'ArticleLayoutDefault' + isContentType = 'trang-chi-tiet-emagazine' case 2: isContentType = 'ArticleLayoutImage' case 3: @@ -65,7 +66,7 @@ useSeoMeta({