2024-05-30 18:06:50 +07:00
|
|
|
interface Base {
|
|
|
|
|
createdBy?: string | number
|
|
|
|
|
createdOn?: string
|
|
|
|
|
updatedBy?: string | number
|
|
|
|
|
updatedOn?: string
|
|
|
|
|
}
|
|
|
|
|
interface PageSettings {
|
|
|
|
|
label?: string; // Nhãn
|
|
|
|
|
layout?: string; // Bố cục
|
|
|
|
|
template?: string; // Bản mẫu
|
|
|
|
|
mainLink?: boolean; // Liên kết chính
|
|
|
|
|
footerLink?: boolean; // Liên kết chân trang
|
|
|
|
|
sidebarLink?: boolean; // Liên kết trượt bên
|
|
|
|
|
floatingLink?: boolean; // Liên kết bám nổi
|
|
|
|
|
dataType?: string; // Loại dữ liệu: Section, Category, Topic, Event, Collection, Article, Tag, Author, Poll, Quiz, Survey, Advertising, Other
|
|
|
|
|
dataQuery?: string; // Truy vấn dữ liệu: IDS | NEW | VIEW | SQL | REQUEST | PARAM | ...
|
|
|
|
|
dataResult?: string; // Kết quả dữ liệu (Json)
|
|
|
|
|
}
|
|
|
|
|
interface PageSectionSettings {
|
|
|
|
|
label?: string; // Nhãn
|
|
|
|
|
layout?: string; // Bố cục
|
|
|
|
|
template?: string; // Bản mẫu
|
|
|
|
|
}
|
|
|
|
|
interface PageComponentSettings {
|
|
|
|
|
label?: string; // Nhãn
|
|
|
|
|
layout?: string; // Bố cục
|
|
|
|
|
template?: string; // Bản mẫu
|
|
|
|
|
dataType?: string; // Loại dữ liệu: Section, Category, Topic, Event, Collection, Article, Tag, Author, Poll, Quiz, Survey, Advertising, Other
|
|
|
|
|
dataQuery?: string; // Truy vấn dữ liệu: IDS | NEW | VIEW | SQL | REQUEST | ...
|
|
|
|
|
dataResult?: string; // Kết quả dữ liệu (Json)
|
|
|
|
|
}
|
|
|
|
|
interface PageSection extends Base {
|
|
|
|
|
id?: number; // Mã định danh
|
|
|
|
|
siteId?: number; // Mã hệ thống
|
|
|
|
|
pageId?: number; // Mã trang
|
|
|
|
|
parentId?: number; // Mã vùng cha
|
|
|
|
|
title?: string; // Tiêu đề
|
|
|
|
|
slug?: string; // (Anchor)
|
|
|
|
|
code?: string; // Mã nhận diện
|
|
|
|
|
content?: string; // Nội dung
|
|
|
|
|
keywords?: string; // Từ khóa
|
|
|
|
|
description?: string; // Mô tả
|
|
|
|
|
type?: number; // Phân loại: PageSectionType
|
|
|
|
|
features?: string; // Đặc trưng: Featured (nổi bật)
|
|
|
|
|
taxonomy?: string; // Phân loại: Block | Module | Navigation
|
|
|
|
|
settings?: PageSectionSettings; // Thiết lập: PageSectionSettings (Json)
|
|
|
|
|
isPublished?: boolean; // Đã xuất bản
|
|
|
|
|
publishedBy?: number; // Xuất bản bởi
|
|
|
|
|
publishedOn?: string; // Xuất bản vào lúc (string)
|
|
|
|
|
expiresOn?: string; // Hết hạn vào lúc (string)
|
|
|
|
|
order?: number; // Thứ tự sắp xếp
|
|
|
|
|
status?: number; // Trạng thái
|
|
|
|
|
}
|
|
|
|
|
interface PageComponent extends Base {
|
|
|
|
|
id?: number; // Mã định danh
|
|
|
|
|
siteId?: number; // Mã hệ thống
|
|
|
|
|
pageId?: number; // Mã trang
|
|
|
|
|
sectionId?: number; // Mã vùng
|
|
|
|
|
title?: string; // Tiêu đề
|
|
|
|
|
code?: string; // Mã nhận diện
|
|
|
|
|
content?: string; // Nội dung
|
|
|
|
|
type?: number; // Phân loại: PageComponentType
|
|
|
|
|
features?: string; // Đặc trưng: Featured (nổi bật)
|
|
|
|
|
taxonomy?: string; // Phân loại
|
|
|
|
|
settings?: PageComponentSettings; // Thiết lập: PageComponentSettings (Json)
|
|
|
|
|
isPublished?: boolean; // Đã xuất bản
|
|
|
|
|
publishedBy?: number; // Xuất bản bởi
|
|
|
|
|
publishedOn?: string; // Xuất bản vào lúc (string)
|
|
|
|
|
expiresOn?: string; // Hết hạn vào lúc (string)
|
|
|
|
|
order?: number; // Thứ tự sắp xếp
|
|
|
|
|
status?: number; // Trạng thái
|
|
|
|
|
}
|
|
|
|
|
interface Page extends Base {
|
|
|
|
|
id?: number; // Mã định danh
|
|
|
|
|
siteId?: number; // Mã hệ thống
|
|
|
|
|
parentId?: number; // Mã trang cha
|
|
|
|
|
title?: string; // Tiêu đề
|
|
|
|
|
slug?: string; // Slug
|
|
|
|
|
code?: string; // Mã nhận diện
|
|
|
|
|
content?: string; // Nội dung
|
|
|
|
|
favicon?: string; // Biểu tượng
|
|
|
|
|
keywords?: string; // Từ khóa
|
|
|
|
|
thumbnail?: string; // Ảnh đại diện
|
|
|
|
|
description?: string; // Mô tả
|
|
|
|
|
type?: number; // Phân loại: PageType
|
|
|
|
|
features?: string; // Đặc trưng: Featured (nổi bật)
|
|
|
|
|
taxonomy?: string; // Phân nhóm
|
|
|
|
|
settings?: PageSettings; // Thiết lập: PageSettings (Json)
|
|
|
|
|
isPublished?: boolean; // Đã xuất bản
|
|
|
|
|
publishedBy?: number; // Đã xuất bản bởi
|
|
|
|
|
publishedOn?: string; // Đã xuất bản vào lúc (string)
|
|
|
|
|
expiresOn?: string; // Đã hết hạn vào lúc (string)
|
|
|
|
|
order?: number; // Thứ tự sắp xếp
|
|
|
|
|
status?: number; // Trạng thái
|
|
|
|
|
|
|
|
|
|
components?: PageComponent[];
|
|
|
|
|
sections?: PageSection[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getDynamicPageByCode = async (event : any) => {
|
|
|
|
|
try {
|
|
|
|
|
const { apiUrl } = useRuntimeConfig().public
|
|
|
|
|
const slug = event.context.params.slug;
|
2024-05-31 00:46:43 +07:00
|
|
|
const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/slug:${slug}`, {
|
|
|
|
|
headers: new Headers({
|
|
|
|
|
site: '1' || 1,
|
|
|
|
|
}),
|
|
|
|
|
})
|
|
|
|
|
return item
|
2024-05-30 18:06:50 +07:00
|
|
|
} catch (error) {
|
|
|
|
|
handleError(error);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getDynamicPageById = async (event : any) => {
|
|
|
|
|
try {
|
|
|
|
|
const { apiUrl } = useRuntimeConfig().public
|
|
|
|
|
const id = event.context.params.id;
|
2024-05-31 00:46:43 +07:00
|
|
|
const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/${id}`)
|
|
|
|
|
return item
|
2024-05-30 18:06:50 +07:00
|
|
|
} catch (error) {
|
|
|
|
|
handleError(error);
|
|
|
|
|
}
|
|
|
|
|
}
|