Files
NSG_PORTAL_V2/server/models/dynamic-page/index.ts
T

124 lines
4.7 KiB
TypeScript
Raw Normal View History

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-06-06 13:29:22 +07:00
const { item }: any = await $fetch(`${apiUrl}/cms/page/overview-page/slug:${slug}`, {
2024-05-31 00:46:43 +07:00
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);
}
}