Files
2026-04-07 14:50:23 +09:00

620 lines
19 KiB
TypeScript

import { _utils } from '@/base/src/utils';
import {
InformationCircleIcon,
NewspaperIcon,
} from '@heroicons/vue/24/outline';
class siteConfig {
constructor() {
_utils.log('siteConfig Instance created...');
for (const property in this.menuItems) {
this.menuItems[property]['current'] = false;
}
}
// siteLayout = 'top-navbar-and-footer';
// siteLayout = 'center';
// siteLayout = 'raw';
siteLayout = 'side-navbar-and-footer';
siteName = 'KISO Safeguard System';
copyrightName = '(사)한국인터넷자율정책기구';
snsLinks = [
{ tag: 'facebook', url: 'https://facebook.com/kiso.cast' },
{ tag: 'twitter', url: 'https://twitter.com/kiso_cast' },
{
tag: 'youtube',
url: 'https://www.youtube.com/channel/UCa4qy69Aqr4JqrMeBeUEtuA',
},
];
siteSlogan = '바른 인터넷 사용 문화';
siteLogoUrl = '/inspond_logo_in_blue_bg_white.png';
menuItems = {
support_stipulation: {
title: '서비스 이용약관',
icon: NewspaperIcon,
routeName: 'docs-stipulation',
path: '/docs/stipulation/',
},
support_privacy: {
title: '개인정보 보호',
icon: NewspaperIcon,
routeName: 'docs-privacy',
path: '/docs/privacy',
},
// 이상 익명 사용자 권한
support_notice: {
title: '공지',
icon: NewspaperIcon,
routeName: 'support-notice',
path: '/support/notice',
},
support_faq: {
title: 'FAQ',
icon: NewspaperIcon,
routeName: 'support-faq',
path: '/support/faq',
},
support_inquiry: {
title: '1:1 문의',
icon: NewspaperIcon,
routeName: 'support-inquiry',
path: '/support/inquiry',
},
user_info: {
title: '유저 정보',
icon: NewspaperIcon,
routeName: 'user-info',
path: '/user/info',
},
// 이상 로그인 사용자 권한
doc_manual: {
title: '어드민 기능 안내',
icon: NewspaperIcon,
routeName: 'doc-manual',
path: '/doc/manual',
},
doc_guide: {
title: '서비스 도입 안내',
icon: NewspaperIcon,
routeName: 'doc-guide',
path: '/doc/guide',
},
doc_document: {
title: 'API 연동 안내',
icon: NewspaperIcon,
routeName: 'doc-api_doc',
path: '/doc/api_doc',
},
key_list: {
title: 'API 키 리스트',
icon: NewspaperIcon,
routeName: 'key-list',
path: '/key/list',
},
statistics: {
title: 'API 사용량 통계',
icon: NewspaperIcon,
routeName: 'statistics',
path: '/statistics',
},
// 이상 오퍼레이터 이상 사용 권한
filter: {
title: '필터 테스트',
icon: NewspaperIcon,
routeName: 'filter',
path: '/filter',
},
board_filter: {
title: '필터 관리 게시판',
icon: NewspaperIcon,
routeName: 'board-filter',
path: '/board/filter/list',
},
// 이상 수퍼 오퍼레이터 이상 사용 권한
admin_dashboard: {
title: '서비스 대시보드',
icon: NewspaperIcon,
routeName: 'admin-dashboard',
path: '/admin/dashboard',
},
admin_notice: {
title: '공지 관리',
icon: NewspaperIcon,
routeName: 'admin-support-notice-list',
path: '/admin/support/notice/list',
},
admin_faq: {
title: '자주 묻는 질문 관리',
icon: NewspaperIcon,
routeName: 'admin-support-faq-list',
path: '/admin/support/faq/list',
},
admin_inquiry: {
title: '1:1 문의 관리',
icon: NewspaperIcon,
routeName: 'admin-support-inquiry-list',
path: '/admin/support/inquiry/list',
},
admin_user_list: {
title: '사용자 관리',
icon: NewspaperIcon,
routeName: 'admin-user-list',
path: '/admin/user/list',
},
admin_white_list: {
title: '가입 허가 관리',
icon: NewspaperIcon,
routeName: 'admin-user-white-list',
path: '/admin/user/white/list',
},
admin_board: {
title: '게시판 관리',
icon: NewspaperIcon,
routeName: 'admin-board-list',
path: '/admin/board/list',
},
admin_key_list: {
title: '전체 API 키 관리',
icon: NewspaperIcon,
routeName: 'admin-key-list',
path: '/admin/key/list',
},
admin_filter: {
title: '필터 관리 (admin)',
icon: NewspaperIcon,
routeName: 'admin-filter',
path: '/admin/filter',
},
admin_statistics: {
title: '사용량 통계 (admin)',
icon: NewspaperIcon,
routeName: 'admin-statistics',
path: '/admin/statistics',
},
admin_lab: {
title: '연구실',
icon: NewspaperIcon,
routeName: 'admin-lab',
path: '/admin/lab',
},
};
menuIdx = 0;
menus = {
anonym: {
main: [],
sub: [
{
...this.menuItems['support_stipulation'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_privacy'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_faq'],
idx: this.menuIdx++,
},
],
},
user: {
main: [
{
title: '고객 지원',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['support_notice'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_inquiry'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: '유저',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['user_info'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
],
sub: [
{
...this.menuItems['support_stipulation'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_privacy'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_faq'],
idx: this.menuIdx++,
},
],
},
op: {
main: [
{
title: '고객 지원',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['support_notice'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_inquiry'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: '유저',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['user_info'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: 'API',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['doc_guide'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_document'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_manual'],
idx: this.menuIdx++,
},
{
...this.menuItems['key_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['statistics'],
idx: this.menuIdx++,
},
{
...this.menuItems['filter'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
],
sub: [
{
...this.menuItems['support_stipulation'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_privacy'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_faq'],
idx: this.menuIdx++,
},
],
},
super_op: {
main: [
{
title: '고객 지원',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['support_notice'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_inquiry'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: '유저',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['user_info'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: 'API',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['doc_guide'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_document'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_manual'],
idx: this.menuIdx++,
},
{
...this.menuItems['key_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['statistics'],
idx: this.menuIdx++,
},
{
...this.menuItems['filter'],
idx: this.menuIdx++,
},
{
...this.menuItems['board_filter'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
],
sub: [
{
...this.menuItems['support_stipulation'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_privacy'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_faq'],
idx: this.menuIdx++,
},
],
},
admin: {
main: [
{
title: '고객 지원',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['support_notice'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_inquiry'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: '유저',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['user_info'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: 'API',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['doc_guide'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_document'],
idx: this.menuIdx++,
},
{
...this.menuItems['doc_manual'],
idx: this.menuIdx++,
},
{
...this.menuItems['key_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['statistics'],
idx: this.menuIdx++,
},
{
...this.menuItems['filter'],
idx: this.menuIdx++,
},
{
...this.menuItems['board_filter'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_filter'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_key_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_dashboard'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_lab'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_statistics'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
{
title: '어드민',
icon: InformationCircleIcon,
subs: [
{
...this.menuItems['admin_notice'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_faq'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_inquiry'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_user_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_white_list'],
idx: this.menuIdx++,
},
{
...this.menuItems['admin_board'],
idx: this.menuIdx++,
},
],
idx: this.menuIdx++,
},
],
sub: [
{
...this.menuItems['support_stipulation'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_privacy'],
idx: this.menuIdx++,
},
{
...this.menuItems['support_faq'],
idx: this.menuIdx++,
},
],
},
};
userLevelInfo = {
'0': {
level: 0,
title: '일반 회원',
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
users: '표기 : user',
},
'1': {
level: 1,
title: '일반 회원',
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
users: '표기 : user',
},
'2': {
level: 2,
title: '일반 회원',
description: '서비스에 가입한 상태이나 아무런 권한이 없습니다.',
users: '표기 : user',
},
'3': {
level: 3,
title: '회원사 운영자',
description: '사이트 가입 후 어드민이 승인한 사용자입니다.',
users: '표기 : op',
},
'4': {
level: 4,
title: '수퍼 운영자',
description: '필터 단어 추가 권한이 부여되는 운영자 입니다.',
users: '표기 : super',
},
'5': {
level: 5,
title: '어드민',
description: '모든 기능을 사용할 수 있는 전체 서비스 관리자입니다.',
users: '표기 : admin',
},
};
userLevels = [
this.userLevelInfo['0'],
this.userLevelInfo['3'],
this.userLevelInfo['4'],
this.userLevelInfo['5'],
];
}
export const _siteConfig = new siteConfig();