Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
portal-apps-manage
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
angular
portal-apps-manage
Commits
3d8e88bc
Commit
3d8e88bc
authored
Sep 14, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
เมนู
parent
d0c25ed2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
408 additions
and
10 deletions
+408
-10
home.component.ts
src/app/portal-manage/home/home.component.ts
+11
-0
my-portal.component.ts
src/app/portal-manage/my-portal/my-portal.component.ts
+150
-0
my-portal.routes.ts
src/app/portal-manage/my-portal/my-portal.routes.ts
+79
-0
portal-manage.routes.ts
src/app/portal-manage/portal-manage.routes.ts
+7
-0
header.component.html
src/app/shared/components/header/header.component.html
+0
-0
sidebar.component.ts
src/app/shared/components/sidebar/sidebar.component.ts
+45
-3
nav.service.ts
src/app/shared/services/nav.service.ts
+116
-7
No files found.
src/app/portal-manage/home/home.component.ts
View file @
3d8e88bc
...
...
@@ -321,6 +321,17 @@ export class HomeComponent implements OnInit {
isVisible
:
true
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
true
}
},
{
id
:
'my-portal'
,
name
:
'my-portal'
,
displayName
:
'my-Portal'
,
description
:
'ระบบจัดการเอกสารและเมนูกลางสำหรับแอปพลิเคชันต่างๆ'
,
icon
:
'./assets/images/icons/portal.png'
,
path
:
'/portal-manage/my-portal'
,
isVisible
:
true
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
true
}
}
];
}
...
...
src/app/portal-manage/my-portal/my-portal.component.ts
0 → 100644
View file @
3d8e88bc
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
import
{
RouterModule
}
from
'@angular/router'
;
@
Component
({
selector
:
'app-my-portal'
,
standalone
:
true
,
imports
:
[
CommonModule
,
RouterModule
],
template
:
`
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
<i class="ri-upload-cloud-2-line me-2"></i>
my-Portal - ระบบจัดการเอกสารและเมนูกลาง
</h4>
<p class="text-muted mb-0">จัดการเอกสารและเมนูกลางสำหรับแอปพลิเคชันต่างๆ</p>
</div>
<div class="card-body">
<div class="row">
<!-- การจัดการหมวดหมู่ -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-folder-3-line text-primary" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">จัดการหมวดหมู่</h5>
<p class="card-text text-muted">สร้างและจัดการหมวดหมู่เอกสาร</p>
<a routerLink="create-category" class="btn btn-primary">
<i class="ri-add-line me-1"></i>
สร้างหมวดหมู่
</a>
</div>
</div>
</div>
<!-- รายการหมวดหมู่ -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-list-check text-success" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">รายการหมวดหมู่</h5>
<p class="card-text text-muted">ดูและจัดการรายการหมวดหมู่ทั้งหมด</p>
<a routerLink="category-list" class="btn btn-success">
<i class="ri-list-line me-1"></i>
ดูรายการ
</a>
</div>
</div>
</div>
<!-- อนุมัติเอกสาร -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-check-double-line text-warning" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">อนุมัติเอกสาร</h5>
<p class="card-text text-muted">อนุมัติเอกสารที่รอการตรวจสอบ</p>
<a routerLink="category-list-approve" class="btn btn-warning">
<i class="ri-check-line me-1"></i>
อนุมัติ
</a>
</div>
</div>
</div>
<!-- รายการที่อนุมัติแล้ว -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-checkbox-circle-line text-info" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">รายการที่อนุมัติแล้ว</h5>
<p class="card-text text-muted">ดูเอกสารที่อนุมัติแล้ว</p>
<a routerLink="approved-list" class="btn btn-info">
<i class="ri-eye-line me-1"></i>
ดูรายการ
</a>
</div>
</div>
</div>
<!-- จัดการ Excel -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-file-excel-2-line text-success" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">จัดการ Excel</h5>
<p class="card-text text-muted">อัพโหลดและจัดการไฟล์ Excel</p>
<a routerLink="excel-list" class="btn btn-success">
<i class="ri-file-excel-line me-1"></i>
จัดการ Excel
</a>
</div>
</div>
</div>
<!-- รายงาน Excel -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-body text-center">
<div class="mb-3">
<i class="ri-bar-chart-line text-primary" style="font-size: 3rem;"></i>
</div>
<h5 class="card-title">รายงาน Excel</h5>
<p class="card-text text-muted">สร้างและดูรายงานจาก Excel</p>
<a routerLink="excel-report" class="btn btn-primary">
<i class="ri-bar-chart-line me-1"></i>
สร้างรายงาน
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
`
,
styles
:
[
`
.card {
transition: transform 0.2s ease-in-out;
}
.card:hover {
transform: translateY(-2px);
}
.btn {
border-radius: 8px;
}
`
]
})
export
class
MyPortalComponent
implements
OnInit
{
constructor
()
{
}
ngOnInit
():
void
{
}
}
src/app/portal-manage/my-portal/my-portal.routes.ts
0 → 100644
View file @
3d8e88bc
import
{
Routes
}
from
'@angular/router'
;
import
{
MyPortalComponent
}
from
'./my-portal.component'
;
import
{
moduleAccessGuard
}
from
'../../core/guards/module-access.guard'
;
// Import components (you may need to adjust these imports based on actual component names)
// import { CreateCategoryComponent } from './create-category/create-category.component';
// import { CategoryListComponent } from './category-list/category-list.component';
// import { CategoryListApproveComponent } from './category-list-approve/category-list-approve.component';
// import { ApprovedListComponent } from './approved-list/approved-list.component';
// import { ExcelListComponent } from './excel-list/excel-list.component';
// import { ExcelReportComponent } from './excel-report/excel-report.component';
// import { ExcelReportToggleComponent } from './excel-report-toggle/excel-report-toggle.component';
// import { ViewListExcelComponent } from './view-list-excel/view-list-excel.component';
// import { OpenImageComponent } from './open-image/open-image.component';
// import { DatasourceTableComponent } from './datasource-table/datasource-table.component';
// import { AlertModalComponent } from './alert-modal/alert-modal.component';
export
const
MY_PORTAL_ROUTES
:
Routes
=
[
{
path
:
''
,
component
:
MyPortalComponent
,
canActivate
:
[
moduleAccessGuard
]
},
// {
// path: 'create-category',
// component: CreateCategoryComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'category-list',
// component: CategoryListComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'category-list-approve',
// component: CategoryListApproveComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'approved-list',
// component: ApprovedListComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'excel-list',
// component: ExcelListComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'excel-report',
// component: ExcelReportComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'excel-report-toggle',
// component: ExcelReportToggleComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'view-list-excel',
// component: ViewListExcelComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'open-image',
// component: OpenImageComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'datasource-table',
// component: DatasourceTableComponent,
// canActivate: [moduleAccessGuard]
// },
// {
// path: 'alert-modal',
// component: AlertModalComponent,
// canActivate: [moduleAccessGuard]
// }
];
src/app/portal-manage/portal-manage.routes.ts
View file @
3d8e88bc
...
...
@@ -109,6 +109,13 @@ export const portalManageRoutes: Routes = [
canActivate
:
[
moduleAccessGuard
]
},
// my-Portal Module
{
path
:
'my-portal'
,
canActivate
:
[
moduleAccessGuard
],
loadChildren
:
()
=>
import
(
'./my-portal/my-portal.routes'
).
then
(
m
=>
m
.
MY_PORTAL_ROUTES
)
},
// === Generic App Routes ===
// These routes are for simple apps that don't need special module-level services.
...
...
src/app/shared/components/header/header.component.html
View file @
3d8e88bc
This diff is collapsed.
Click to expand it.
src/app/shared/components/sidebar/sidebar.component.ts
View file @
3d8e88bc
...
...
@@ -70,12 +70,18 @@ export class SidebarComponent {
isCommonRoute
:
boolean
=
false
;
isInstallerRoute
:
boolean
=
false
;
isMyportalRoute
:
boolean
=
false
;
isMyPortalRoute
:
boolean
=
false
;
isMylearnRoute
:
boolean
=
false
;
isMyJobRoute
:
boolean
=
false
;
isMyhrLiteRoute
:
boolean
=
false
;
isMyFaceRoute
:
boolean
=
false
;
isZeemeRoute
:
boolean
=
false
;
isMyhrPlusRoute
:
boolean
=
false
;
isDashboardManagementRoute
:
boolean
=
false
;
isPermissionManagementRoute
:
boolean
=
false
;
isMenuPermissionManagementRoute
:
boolean
=
false
;
isWidgetManagementRoute
:
boolean
=
false
;
isMeetingBookingRoute
:
boolean
=
false
;
previousUrl
:
string
=
''
;
currentUrl
:
string
=
''
;
...
...
@@ -115,12 +121,18 @@ export class SidebarComponent {
this
.
isCommonRoute
=
this
.
currentUrl
.
includes
(
'/admin'
);
this
.
isInstallerRoute
=
this
.
currentUrl
.
includes
(
'/company'
);
this
.
isMyportalRoute
=
this
.
currentUrl
.
includes
(
'/myskill-x'
);
this
.
isMyPortalRoute
=
this
.
currentUrl
.
includes
(
'/my-portal'
);
this
.
isMylearnRoute
=
this
.
currentUrl
.
includes
(
'/mylearn'
);
this
.
isMyJobRoute
=
this
.
currentUrl
.
includes
(
'/myjob'
);
this
.
isMyhrLiteRoute
=
this
.
currentUrl
.
includes
(
'/myhr-lite'
);
this
.
isMyFaceRoute
=
this
.
currentUrl
.
includes
(
'/myface'
);
this
.
isZeemeRoute
=
this
.
currentUrl
.
includes
(
'/zeeme'
);
this
.
isMyhrPlusRoute
=
this
.
currentUrl
.
includes
(
'/myhr-plus'
);
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
this
.
menuitemsSubscribe$
=
this
.
navServices
.
items
.
subscribe
((
items
)
=>
{
this
.
changeMenu
()
});
...
...
@@ -150,23 +162,35 @@ export class SidebarComponent {
this
.
isCommonRoute
=
this
.
currentUrl
.
includes
(
'/admin'
);
this
.
isInstallerRoute
=
this
.
currentUrl
.
includes
(
'/company'
);
this
.
isMyportalRoute
=
this
.
currentUrl
.
includes
(
'/myskill-x'
);
this
.
isMyPortalRoute
=
this
.
currentUrl
.
includes
(
'/my-portal'
);
this
.
isMylearnRoute
=
this
.
currentUrl
.
includes
(
'/mylearn'
);
this
.
isMyJobRoute
=
this
.
currentUrl
.
includes
(
'/myjob'
);
this
.
isMyhrLiteRoute
=
this
.
currentUrl
.
includes
(
'/myhr-lite'
);
this
.
isMyFaceRoute
=
this
.
currentUrl
.
includes
(
'/myface'
);
this
.
isZeemeRoute
=
this
.
currentUrl
.
includes
(
'/zeeme'
);
this
.
isMyhrPlusRoute
=
this
.
currentUrl
.
includes
(
'/myhr-plus'
);
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
this
.
checkUrlChanges
()
// Log to console for verification
console
.
log
(
'Initial URL:'
,
this
.
currentUrl
);
console
.
log
(
'Is Common Route:'
,
this
.
isCommonRoute
);
console
.
log
(
'Is Installer Route:'
,
this
.
isInstallerRoute
);
console
.
log
(
'Is Myskill-X Route:'
,
this
.
isMyportalRoute
);
console
.
log
(
'Is my-Portal Route:'
,
this
.
isMyPortalRoute
);
console
.
log
(
'mylearn routes'
,
this
.
isMylearnRoute
);
console
.
log
(
'myhrlite routes'
,
this
.
isMyhrLiteRoute
);
console
.
log
(
'myface routes'
,
this
.
isMyFaceRoute
);
console
.
log
(
'zeeme routes'
,
this
.
isZeemeRoute
);
console
.
log
(
'myhrplus routes'
,
this
.
isMyhrPlusRoute
);
console
.
log
(
'dashboard-management routes'
,
this
.
isDashboardManagementRoute
);
console
.
log
(
'permission-management routes'
,
this
.
isPermissionManagementRoute
);
console
.
log
(
'menu-permission-management routes'
,
this
.
isMenuPermissionManagementRoute
);
console
.
log
(
'widget-management routes'
,
this
.
isWidgetManagementRoute
);
console
.
log
(
'meeting-booking routes'
,
this
.
isMeetingBookingRoute
);
}
...
...
@@ -198,12 +222,18 @@ export class SidebarComponent {
this
.
isCommonRoute
=
this
.
currentUrl
.
includes
(
'/admin'
);
this
.
isInstallerRoute
=
this
.
currentUrl
.
includes
(
'/company'
);
this
.
isMyportalRoute
=
this
.
currentUrl
.
includes
(
'/myskill-x'
);
this
.
isMyPortalRoute
=
this
.
currentUrl
.
includes
(
'/my-portal'
);
this
.
isMylearnRoute
=
this
.
currentUrl
.
includes
(
'/mylearn'
);
this
.
isMyJobRoute
=
this
.
currentUrl
.
includes
(
'/myjob'
);
this
.
isMyhrLiteRoute
=
this
.
currentUrl
.
includes
(
'/myhr-lite'
);
this
.
isMyFaceRoute
=
this
.
currentUrl
.
includes
(
'/myface'
);
this
.
isZeemeRoute
=
this
.
currentUrl
.
includes
(
'/zeeme'
);
this
.
isMyhrPlusRoute
=
this
.
currentUrl
.
includes
(
'/myhr-plus'
);
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
// Log to console for verification
console
.
log
(
'Current URL:'
,
this
.
currentUrl
);
...
...
@@ -230,6 +260,8 @@ export class SidebarComponent {
this
.
menuItems
=
this
.
navServices
.
getCompanyMenu
();
}
else
if
(
this
.
isMyportalRoute
){
this
.
menuItems
=
this
.
navServices
.
getMyportalMenu
();
}
else
if
(
this
.
isMyPortalRoute
){
this
.
menuItems
=
this
.
navServices
.
getMyPortalMenu
();
}
else
if
(
this
.
isMylearnRoute
){
this
.
menuItems
=
this
.
navServices
.
getMylearnMenu
();
}
else
if
(
this
.
isMyJobRoute
){
...
...
@@ -242,10 +274,20 @@ export class SidebarComponent {
this
.
menuItems
=
this
.
navServices
.
getZeemeMenu
();
}
else
if
(
this
.
isMyhrPlusRoute
){
this
.
menuItems
=
this
.
navServices
.
getMyhrPlusMenu
();
}
else
if
(
this
.
isDashboardManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isPermissionManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isMenuPermissionManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isWidgetManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isMeetingBookingRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
// เพิ่มรายการรายงาน Excel เข้าไปในเมนู หากมีข้อมูลและยังไม่ได้เพิ่ม
if
((
this
.
isMyportalRoute
||
this
.
isInstallerRoute
)
&&
this
.
submenuExcel
.
length
>
0
)
{
if
((
this
.
isMyportalRoute
||
this
.
is
MyPortalRoute
||
this
.
is
InstallerRoute
)
&&
this
.
submenuExcel
.
length
>
0
)
{
const
excelMenuExists
=
this
.
menuItems
.
some
(
item
=>
item
.
title
===
'รายงาน Excel'
);
if
(
!
excelMenuExists
)
{
...
...
@@ -389,7 +431,7 @@ export class SidebarComponent {
element
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ Excel Report ที่มี query parameters
if
((
this
.
isMyportalRoute
||
this
.
isInstallerRoute
)
&&
ele
.
path
&&
this
.
currentUrl
.
startsWith
(
ele
.
path
.
split
(
'?'
)[
0
]))
{
if
((
this
.
isMyportalRoute
||
this
.
is
MyPortalRoute
||
this
.
is
InstallerRoute
)
&&
ele
.
path
&&
this
.
currentUrl
.
startsWith
(
ele
.
path
.
split
(
'?'
)[
0
]))
{
const
currentUrlBase
=
this
.
currentUrl
.
split
(
'?'
)[
0
];
const
elePathBase
=
ele
.
path
.
split
(
'?'
)[
0
];
if
(
currentUrlBase
===
elePathBase
)
{
...
...
@@ -410,7 +452,7 @@ export class SidebarComponent {
ele
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ Excel Report ที่มี query parameters ในระดับที่ 3
if
((
this
.
isMyportalRoute
||
this
.
isInstallerRoute
)
&&
child1
.
path
&&
this
.
currentUrl
.
startsWith
(
child1
.
path
.
split
(
'?'
)[
0
]))
{
if
((
this
.
isMyportalRoute
||
this
.
is
MyPortalRoute
||
this
.
is
InstallerRoute
)
&&
child1
.
path
&&
this
.
currentUrl
.
startsWith
(
child1
.
path
.
split
(
'?'
)[
0
]))
{
const
currentUrlBase
=
this
.
currentUrl
.
split
(
'?'
)[
0
];
const
child1PathBase
=
child1
.
path
.
split
(
'?'
)[
0
];
if
(
currentUrlBase
===
child1PathBase
)
{
...
...
src/app/shared/services/nav.service.ts
View file @
3d8e88bc
...
...
@@ -146,7 +146,7 @@ export class NavService implements OnDestroy {
type
:
'sub'
,
children
:
[
{
path
:
`/portal-manage/
${
appName
}
/excel-list`
,
title
:
'เพิ่มรายงาน Excel'
,
type
:
'link'
},
{
path
:
`/
${
appName
}
/excel-report-toggle`
,
title
:
'เปิด-ปิด การใช้รายงาน Excel'
,
type
:
'link'
}
{
path
:
`/
portal-manage/
${
appName
}
/excel-report-toggle`
,
title
:
'เปิด-ปิด การใช้รายงาน Excel'
,
type
:
'link'
}
],
},
{
...
...
@@ -163,6 +163,53 @@ export class NavService implements OnDestroy {
},]
}
// เมนูสำหรับ my-portal โดยเฉพาะ
getMyPortalMenu
()
{
return
[
{
headTitle
:
'my-Portal'
},
{
title
:
'แดชบอร์ด'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/my-portal'
,
type
:
'link'
,
},
{
title
:
'จัดการเอกสาร'
,
icon
:
'file-text'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/my-portal/create-category'
,
title
:
'สร้างหมวดหมู่'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/category-list'
,
title
:
'รายการหมวดหมู่'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/category-list-approve'
,
title
:
'อนุมัติเอกสาร'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/approved-list'
,
title
:
'รายการที่อนุมัติแล้ว'
,
type
:
'link'
},
],
},
{
title
:
'จัดการ Excel'
,
icon
:
'file-excel'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/my-portal/excel-list'
,
title
:
'รายการ Excel'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/excel-report'
,
title
:
'รายงาน Excel'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/excel-report-toggle'
,
title
:
'เปิด-ปิด รายงาน Excel'
,
type
:
'link'
},
],
},
{
title
:
'เครื่องมือเสริม'
,
icon
:
'tools'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/my-portal/datasource-table'
,
title
:
'DataSource Table'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/view-list-excel'
,
title
:
'ดูรายการ Excel'
,
type
:
'link'
},
{
path
:
'/portal-manage/my-portal/open-image'
,
title
:
'เปิดรูปภาพ'
,
type
:
'link'
},
],
}
];
}
getCompanyMenu
()
{
...
...
@@ -329,15 +376,39 @@ export class NavService implements OnDestroy {
type
:
'link'
,
},
{
title
:
'จัดการพนักงาน'
,
icon
:
'user'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/employee'
,
title
:
'ข้อมูลพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-profile'
,
title
:
'โปรไฟล์พนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-documents'
,
title
:
'เอกสารพนักงาน'
,
type
:
'link'
},
],
},
{
title
:
'จัดการระบบ'
,
icon
:
'settings'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/employee'
,
title
:
'จัดการพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/reports'
,
title
:
'รายงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/company-settings'
,
title
:
'ตั้งค่าบริษัท'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/department-settings'
,
title
:
'ตั้งค่าแผนก'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/position-settings'
,
title
:
'ตั้งค่าตำแหน่ง'
,
type
:
'link'
},
],
}
},
{
title
:
'รายงาน'
,
icon
:
'chart-bar'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/reports'
,
title
:
'รายงานทั่วไป'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-reports'
,
title
:
'รายงานพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/attendance-reports'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
],
},
...
this
.
createPortalMenu
(
'myhr-lite'
)
];
}
...
...
@@ -360,7 +431,19 @@ export class NavService implements OnDestroy {
children
:
[
{
path
:
'/portal-manage/myface/face-recognition'
,
title
:
'ระบบจดจำใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-management'
,
title
:
'จัดการข้อมูลใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/attendance'
,
title
:
'ระบบลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-enrollment'
,
title
:
'ลงทะเบียนใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-verification'
,
title
:
'ตรวจสอบใบหน้า'
,
type
:
'link'
},
],
},
{
title
:
'ระบบลงเวลา'
,
icon
:
'time'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myface/attendance'
,
title
:
'ลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/attendance-settings'
,
title
:
'ตั้งค่าระบบลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/attendance-location'
,
title
:
'สถานที่ลงเวลา'
,
type
:
'link'
},
],
},
{
...
...
@@ -371,8 +454,10 @@ export class NavService implements OnDestroy {
children
:
[
{
path
:
'/portal-manage/myface/attendance-report'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-report'
,
title
:
'รายงานการจดจำใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/security-report'
,
title
:
'รายงานความปลอดภัย'
,
type
:
'link'
},
],
}
},
...
this
.
createPortalMenu
(
'myface'
)
];
}
...
...
@@ -396,6 +481,19 @@ export class NavService implements OnDestroy {
{
path
:
'/portal-manage/zeeme/time-tracking'
,
title
:
'ติดตามเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/attendance'
,
title
:
'ระบบลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/overtime'
,
title
:
'การทำงานล่วงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/break-time'
,
title
:
'เวลาพัก'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/shift-management'
,
title
:
'จัดการกะงาน'
,
type
:
'link'
},
],
},
{
title
:
'จัดการพนักงาน'
,
icon
:
'user'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/zeeme/employee-schedule'
,
title
:
'ตารางงานพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/leave-management'
,
title
:
'จัดการการลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/approval-workflow'
,
title
:
'อนุมัติการลา'
,
type
:
'link'
},
],
},
{
...
...
@@ -407,8 +505,10 @@ export class NavService implements OnDestroy {
{
path
:
'/portal-manage/zeeme/attendance-report'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/overtime-report'
,
title
:
'รายงานการทำงานล่วงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/summary-report'
,
title
:
'รายงานสรุป'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/leave-report'
,
title
:
'รายงานการลา'
,
type
:
'link'
},
],
}
},
...
this
.
createPortalMenu
(
'zeeme'
)
];
}
...
...
@@ -432,6 +532,12 @@ export class NavService implements OnDestroy {
return
[
{
headTitle
:
'การตั้งค่าระบบ'
},
{
title
:
'my-Portal'
,
icon
:
'upload-cloud'
,
path
:
'/portal-manage/my-portal'
,
type
:
'link'
,
},
{
title
:
'จัดการสิทธิ์'
,
icon
:
'shield'
,
type
:
'sub'
,
...
...
@@ -514,6 +620,8 @@ export class NavService implements OnDestroy {
return
this
.
getMyJobMenu
();
case
'myskill-x'
:
return
this
.
getMyportalMenu
();
case
'my-portal'
:
return
this
.
getMyPortalMenu
();
case
'company-management'
:
return
this
.
getCompanyMenu
();
case
'dashboard'
:
...
...
@@ -541,6 +649,7 @@ export class NavService implements OnDestroy {
'mylearn'
:
this
.
getMylearnMenu
(),
'myjob'
:
this
.
getMyJobMenu
(),
'myskill-x'
:
this
.
getMyportalMenu
(),
'my-portal'
:
this
.
getMyPortalMenu
(),
'company-management'
:
this
.
getCompanyMenu
(),
'dashboard'
:
this
.
getDashboardMenu
(),
'meeting-booking'
:
this
.
getSystemManagementMenu
(),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment