Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
myAppraisal
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
myAppraisal
Commits
2ec684d8
Commit
2ec684d8
authored
Nov 19, 2024
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
หน้าจอ ทะเบียนบริษัท > สาขาและหน่วยธุรกิจ > ทะเบียนฝ่าย
parent
d9800e04
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
642 additions
and
63 deletions
+642
-63
branch-business-unit.component.html
.../branch-business-unit/branch-business-unit.component.html
+25
-0
branch-business-unit.component.scss
.../branch-business-unit/branch-business-unit.component.scss
+46
-0
branch-business-unit.component.ts
...on/branch-business-unit/branch-business-unit.component.ts
+18
-0
department-register.component.html
...it/department-register/department-register.component.html
+153
-0
department-register.component.scss
...it/department-register/department-register.component.scss
+58
-0
department-register.component.ts
...unit/department-register/department-register.component.ts
+9
-0
company-registration.component.html
.../company-registration/company-registration.component.html
+27
-0
company-registration.component.scss
.../company-registration/company-registration.component.scss
+37
-0
company-registration.component.ts
...ts/company-registration/company-registration.component.ts
+17
-0
dashboard-routing.module.ts
src/app/components/dashboard/dashboard-routing.module.ts
+20
-19
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+9
-1
page-header.component.html
.../shared/components/page-header/page-header.component.html
+42
-16
page-header.component.ts
...pp/shared/components/page-header/page-header.component.ts
+1
-0
sidebar.component.html
src/app/shared/components/sidebar/sidebar.component.html
+2
-1
fullroutes.ts
src/app/shared/routes/fullroutes.ts
+6
-7
navservice.ts
src/app/shared/services/navservice.ts
+15
-2
styles.scss
src/styles.scss
+157
-17
No files found.
src/app/components/company-registration/branch-business-unit/branch-business-unit.component.html
0 → 100644
View file @
2ec684d8
<div
class=
"head-title"
>
รายละเอียดสาขาและหน่วยธุรกิจ
</div>
<div
class=
"body-content"
>
<ul
class=
"nav-tabs"
>
<li
class=
"nav-item"
*
ngFor=
"let item of [{id:'tab1',text:'ทะเบียนฝ่าย'},
{id:'tab2',text:'ทะเบียนแผนก'},
{id:'tab3',text:'ทะเบียนส่วน'},
{id:'tab4',text:'ส่วนย่อย1'},
{id:'tab5',text:'ส่วนย่อย2'},
{id:'tab6',text:'ส่วนย่อย3'},
{id:'tab7',text:'ส่วนย่อย4'}]"
(
click
)="
changeTab
(
item
)"
>
<a
[
class
.
active
]="
activeTab =
==
item
.
id
"
class=
"nav-link"
>
{{item.text}}
</a>
</li>
</ul>
<div
class=
"tab-content"
>
<div
*
ngIf=
"activeTab === 'tab1'"
class=
"tab-pane"
>
<app-department-register></app-department-register>
</div>
<div
*
ngIf=
"activeTab === 'tab2'"
class=
"tab-pane"
>
<p>
เนื้อหาของ Tab 2
</p>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/company-registration/branch-business-unit/branch-business-unit.component.scss
0 → 100644
View file @
2ec684d8
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
border-bottom
:
2px
solid
#ccc
;
/* เส้นใต้ */
width
:
100%
;
cursor
:
pointer
;
}
.nav-item
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link
{
text-decoration
:
none
;
padding
:
10px
20px
;
display
:
inline-block
;
font-size
:
large
;
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
#ccc
;
border-radius
:
5px
5px
0px
0px
;
}
.nav-link
:hover
{
background-color
:
#f0f0f0
;
/* เปลี่ยนสีเมื่อ hover */
}
.nav-link.active
{
color
:
#ffffff
;
/* สีตัวอักษรในสถานะ active */
font-size
:
large
;
border-bottom
:
3
.5px
solid
rgb
(
var
(
--
color-primary
));
/* เส้นใต้ */
background-color
:
rgb
(
var
(
--
color-primary
));
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
rgb
(
var
(
--
color-primary
));
border-radius
:
5px
5px
0px
0px
;
}
.tab-content
{
margin-top
:
20px
;
}
.tab-pane.active
{
display
:
block
;
}
src/app/components/company-registration/branch-business-unit/branch-business-unit.component.ts
0 → 100644
View file @
2ec684d8
import
{
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-branch-business-unit'
,
templateUrl
:
'./branch-business-unit.component.html'
,
styleUrls
:
[
'./branch-business-unit.component.scss'
]
})
export
class
BranchBusinessUnitComponent
{
@
Input
()
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ทะเบียนบริษัท'
,
'สาขาและหน่วยธุรกิจ'
]
@
Output
()
sendPathTitle
:
EventEmitter
<
string
[]
>
=
new
EventEmitter
<
string
[]
>
();
activeTab
:
string
=
'tab1'
;
// กำหนด tab เริ่มต้น
// ฟังก์ชันในการเปลี่ยนแท็บ
changeTab
(
tab
:
{
id
:
string
,
text
:
string
})
{
this
.
sendPathTitle
.
emit
([
'การจัดการข้อมูลองค์กร'
,
'ทะเบียนบริษัท'
,
'สาขาและหน่วยธุรกิจ'
,
tab
.
text
])
this
.
activeTab
=
tab
.
id
;
}
}
src/app/components/company-registration/branch-business-unit/department-register/department-register.component.html
0 → 100644
View file @
2ec684d8
<div
class=
"flex justify-end"
>
<div
class=
"px-1"
>
<div
class=
"input-wrapper"
>
<input
type=
"text"
class=
"ti-form-input"
placeholder=
"Search by No. or Name"
/>
<div
class=
"icon"
>
<i
class=
"ri-search-line"
></i>
</div>
</div>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-blue-light"
><i
class=
"ri-add-line"
></i>
Add
</button>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-purple-light"
><i
class=
"ri-printer-line"
></i>
Print
</button>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-yellow-light"
>
<svg
width=
"16"
height=
"16"
viewBox=
"-2.4 -2.4 28.80 28.80"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
stroke=
"#E7A927"
transform=
"matrix(1, 0, 0, 1, 0, 0)"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke=
"#ffffff"
stroke-width=
"2.4"
>
<path
d=
"M12 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 18.5C20.5 18.5 19.5 16.5 16 16.5C12.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 18.5C3.5 18.5 4.5 16.5 8 16.5C11.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5C20.5 6.5 19.5 4.5 16 4.5C12.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5C3.5 6.5 4.5 4.5 8 4.5C11.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
>
</path>
</g>
<g
id=
"SVGRepo_iconCarrier"
>
<path
d=
"M12 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 18.5C20.5 18.5 19.5 16.5 16 16.5C12.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 18.5C3.5 18.5 4.5 16.5 8 16.5C11.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5C20.5 6.5 19.5 4.5 16 4.5C12.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5C3.5 6.5 4.5 4.5 8 4.5C11.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
>
</path>
</g>
</svg>
Help
</button>
</div>
</div>
<div
class=
"body-content"
>
<ul
class=
"nav-tabs"
>
<li
class=
"nav-item"
>
<a
[
class
.
active
]="
true
"
class=
"nav-link active"
>
นำเข้าข้อมูล
</a>
</li>
<li
class=
"nav-item-text flex items-end"
>
<a
class=
"nav-link-text"
>
ดาวโหลดตัวอย่างไฟล์
</a>
</li>
</ul>
<div
*
ngIf=
"true"
class=
"tab-pane"
>
<div
class=
"overflow-auto shadow-gray-smoke"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead
class=
"bg-gray-50 dark:bg-black/20"
>
<tr>
<ng-container
*
ngFor=
"let item of ['ลำดับ','รหัสฝ่าย','รายละเอียดฝ่าย (ไทย)','รายละเอียดฝ่าย (อังกฤษ)','การจัดการ']; let f = first; let l = last"
>
<th
scope=
"col"
class=
"relative head-table"
[
class
.!
text-center
]="
f
||
l
"
>
<span>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"16"
height=
"16"
fill=
"currentColor"
viewBox=
"0 0 16 16"
>
<path
d=
"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"
>
</path>
</svg>
</div>
</th>
</ng-container>
</tr>
</thead>
<tbody>
<tr
*
ngFor=
"let item of[
['80812', 'ลูกค้าสัมพันธ์', 'Customer Relations'],
['30305', 'การตลาด', 'Marketing'],
['310101', 'งานบัญชี', 'Accounting'],
['70711', 'โลจิสติกส์', 'Logistics'],
['40408', 'เทคโนโลยีสารสนเทศ', 'IT']];let i = index"
>
<td
class=
"body-table-center"
>
{{0+""+(i+1)}}
</td>
<td>
{{item[0]}}
</td>
<td>
{{item[1]}}
</td>
<td>
{{item[2]}}
</td>
<td
class=
"body-table-center"
>
<div
class=
"px-1"
>
<svg
width=
"16"
height=
"16"
viewBox=
"0 0 24 24"
id=
"Layer_1"
data-name=
"Layer 1"
xmlns=
"http://www.w3.org/2000/svg"
fill=
"#64748b"
stroke=
"#64748b"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
></g>
<g
id=
"SVGRepo_iconCarrier"
>
<defs>
<style>
.cls-1
{
fill
:
none
;
stroke
:
#64748b
;
stroke-miterlimit
:
10
;
stroke-width
:
1.91px
;
}
</style>
</defs>
<polyline
class=
"cls-1"
points=
"20.59 12 20.59 22.5 1.5 22.5 1.5 3.41 12.96 3.41"
>
</polyline>
<path
class=
"cls-1"
d=
"M12,15.82l-4.77.95L8.18,12l9.71-9.71A2.69,2.69,0,0,1,19.8,1.5h0a2.7,2.7,0,0,1,2.7,2.7h0a2.69,2.69,0,0,1-.79,1.91Z"
>
</path>
</g>
</svg>
</div>
<div
class=
"px-1"
>
<svg
width=
"16"
height=
"16"
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
stroke=
"#64748b"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
></g>
<g
id=
"SVGRepo_iconCarrier"
>
<path
d=
"M1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25V3.75ZM22.5 5.25C22.9142 5.25 23.25 4.91421 23.25 4.5C23.25 4.08579 22.9142 3.75 22.5 3.75V5.25ZM1.5 5.25H22.5V3.75H1.5V5.25Z"
fill=
"#64748b"
></path>
<path
d=
"M9.75 1.5V0.75V1.5ZM8.25 3H7.5H8.25ZM7.5 4.5C7.5 4.91421 7.83579 5.25 8.25 5.25C8.66421 5.25 9 4.91421 9 4.5H7.5ZM15 4.5C15 4.91421 15.3358 5.25 15.75 5.25C16.1642 5.25 16.5 4.91421 16.5 4.5H15ZM15.75 3H16.5H15.75ZM14.25 0.75H9.75V2.25H14.25V0.75ZM9.75 0.75C9.15326 0.75 8.58097 0.987053 8.15901 1.40901L9.21967 2.46967C9.36032 2.32902 9.55109 2.25 9.75 2.25V0.75ZM8.15901 1.40901C7.73705 1.83097 7.5 2.40326 7.5 3H9C9 2.80109 9.07902 2.61032 9.21967 2.46967L8.15901 1.40901ZM7.5 3V4.5H9V3H7.5ZM16.5 4.5V3H15V4.5H16.5ZM16.5 3C16.5 2.40326 16.2629 1.83097 15.841 1.40901L14.7803 2.46967C14.921 2.61032 15 2.80109 15 3H16.5ZM15.841 1.40901C15.419 0.987053 14.8467 0.75 14.25 0.75V2.25C14.4489 2.25 14.6397 2.32902 14.7803 2.46967L15.841 1.40901Z"
fill=
"#64748b"
></path>
<path
d=
"M9 17.25C9 17.6642 9.33579 18 9.75 18C10.1642 18 10.5 17.6642 10.5 17.25H9ZM10.5 9.75C10.5 9.33579 10.1642 9 9.75 9C9.33579 9 9 9.33579 9 9.75H10.5ZM10.5 17.25V9.75H9V17.25H10.5Z"
fill=
"#64748b"
></path>
<path
d=
"M13.5 17.25C13.5 17.6642 13.8358 18 14.25 18C14.6642 18 15 17.6642 15 17.25H13.5ZM15 9.75C15 9.33579 14.6642 9 14.25 9C13.8358 9 13.5 9.33579 13.5 9.75H15ZM15 17.25V9.75H13.5V17.25H15Z"
fill=
"#64748b"
></path>
<path
d=
"M18.865 21.124L18.1176 21.0617L18.1176 21.062L18.865 21.124ZM17.37 22.5L17.3701 21.75H17.37V22.5ZM6.631 22.5V21.75H6.63093L6.631 22.5ZM5.136 21.124L5.88343 21.062L5.88341 21.0617L5.136 21.124ZM4.49741 4.43769C4.46299 4.0249 4.10047 3.71818 3.68769 3.75259C3.2749 3.78701 2.96818 4.14953 3.00259 4.56231L4.49741 4.43769ZM20.9974 4.56227C21.0318 4.14949 20.7251 3.78698 20.3123 3.75259C19.8995 3.7182 19.537 4.02495 19.5026 4.43773L20.9974 4.56227ZM18.1176 21.062C18.102 21.2495 18.0165 21.4244 17.878 21.5518L18.8939 22.6555C19.3093 22.2732 19.5658 21.7486 19.6124 21.186L18.1176 21.062ZM17.878 21.5518C17.7396 21.6793 17.5583 21.75 17.3701 21.75L17.3699 23.25C17.9345 23.25 18.4785 23.0379 18.8939 22.6555L17.878 21.5518ZM17.37 21.75H6.631V23.25H17.37V21.75ZM6.63093 21.75C6.44274 21.75 6.26142 21.6793 6.12295 21.5518L5.10713 22.6555C5.52253 23.0379 6.06649 23.25 6.63107 23.25L6.63093 21.75ZM6.12295 21.5518C5.98449 21.4244 5.89899 21.2495 5.88343 21.062L4.38857 21.186C4.43524 21.7486 4.69172 22.2732 5.10713 22.6555L6.12295 21.5518ZM5.88341 21.0617L4.49741 4.43769L3.00259 4.56231L4.38859 21.1863L5.88341 21.0617ZM19.5026 4.43773L18.1176 21.0617L19.6124 21.1863L20.9974 4.56227L19.5026 4.43773Z"
fill=
"#64748b"
></path>
</g>
</svg>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/company-registration/branch-business-unit/department-register/department-register.component.scss
0 → 100644
View file @
2ec684d8
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
border-bottom
:
2px
solid
#ccc
;
/* เส้นใต้ */
width
:
100%
;
cursor
:
pointer
;
}
.nav-item
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link
{
text-decoration
:
none
;
padding
:
10px
20px
;
display
:
inline-block
;
font-size
:
large
;
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
#ccc
;
border-radius
:
5px
5px
0px
0px
;
}
.nav-link
:hover
{
background-color
:
#f0f0f0
;
/* เปลี่ยนสีเมื่อ hover */
}
.nav-link.active
{
color
:
#ffffff
;
/* สีตัวอักษรในสถานะ active */
font-size
:
large
;
border-bottom
:
3
.5px
solid
rgb
(
var
(
--
color-primary
));
/* เส้นใต้ */
background-color
:
rgb
(
var
(
--
color-primary
));
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
rgb
(
var
(
--
color-primary
));
border-radius
:
5px
5px
0px
0px
;
}
.tab-content
{
margin-top
:
20px
;
}
.tab-pane.active
{
display
:
block
;
}
.nav-item-text
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link-text
{
text-decoration
:
none
;
display
:
inline-block
;
font-size
:
large
;
color
:
#569bf5
;
border-bottom
:
3
.5px
solid
#569bf5
;
}
src/app/components/company-registration/branch-business-unit/department-register/department-register.component.ts
0 → 100644
View file @
2ec684d8
import
{
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-department-register'
,
templateUrl
:
'./department-register.component.html'
,
styleUrls
:
[
'./department-register.component.scss'
]
})
export
class
DepartmentRegisterComponent
{
}
src/app/components/company-registration/company-registration.component.html
0 → 100644
View file @
2ec684d8
<app-page-header
[
pathTitle
]="
pathTitle
"
></app-page-header>
<div
class=
"bg-card-white"
>
</div>
<div
class=
"block-main-content"
>
<div
class=
"head-title"
>
ทะเบียนบริษัท
</div>
<div
class=
"body-content"
>
<ul
class=
"nav-tabs"
>
<li
class=
"nav-item"
*
ngFor=
"let item of [{id:'tab1',text:'ทะเบียนบริษัท'},
{id:'tab2',text:'สาขาและหน่วยธุรกิจ'}]"
(
click
)="
changeTab
(
item
)"
>
<a
[
class
.
active
]="
activeTab =
==
item
.
id
"
class=
"nav-link"
>
{{item.text}}
</a>
</li>
</ul>
<div
class=
"tab-content"
>
<div
*
ngIf=
"activeTab === 'tab1'"
class=
"tab-pane"
>
<p>
ทะเบียนบริษัท
</p>
</div>
<div
*
ngIf=
"activeTab === 'tab2'"
class=
"tab-pane"
>
<div
class=
"mt-5"
></div>
<app-branch-business-unit
[
pathTitle
]="
pathTitle
"
(
sendPathTitle
)="
pathTitle=
$event"
></app-branch-business-unit>
</div>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/company-registration/company-registration.component.scss
0 → 100644
View file @
2ec684d8
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
border-bottom
:
2px
solid
#ccc
;
/* เส้นใต้ */
width
:
100%
;
cursor
:
pointer
;
}
.nav-item
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link
{
text-decoration
:
none
;
padding
:
10px
20px
;
display
:
inline-block
;
font-size
:
large
;
}
.nav-link
:hover
{
background-color
:
#f0f0f0
;
/* เปลี่ยนสีเมื่อ hover */
}
.nav-link.active
{
color
:
#569bf5
;
/* สีตัวอักษรในสถานะ active */
font-size
:
large
;
border-bottom
:
3
.5px
solid
#569bf5
;
/* เส้นใต้ */
}
.tab-content
{
margin-top
:
20px
;
}
.tab-pane.active
{
display
:
block
;
}
src/app/components/company-registration/company-registration.component.ts
0 → 100644
View file @
2ec684d8
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-company-registration'
,
templateUrl
:
'./company-registration.component.html'
,
styleUrls
:
[
'./company-registration.component.scss'
]
})
export
class
CompanyRegistrationComponent
{
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ทะเบียนบริษัท'
,
'ทะเบียนบริษัท'
]
activeTab
:
string
=
'tab1'
;
// ฟังก์ชันในการเปลี่ยนแท็บ
changeTab
(
tab
:
{
id
:
string
,
text
:
string
})
{
this
.
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ทะเบียนบริษัท'
,
tab
.
text
]
this
.
activeTab
=
tab
.
id
}
}
src/app/components/dashboard/dashboard-routing.module.ts
View file @
2ec684d8
...
...
@@ -12,28 +12,29 @@ import { PersonalComponent } from './personal/personal.component';
import
{
ProjectsComponent
}
from
'./projects/projects.component'
;
import
{
StocksComponent
}
from
'./stocks/stocks.component'
;
import
{
CourseComponent
}
from
'./course/course.component'
;
import
{
CompanyRegistrationComponent
}
from
'../company-registration/company-registration.component'
;
const
routes
:
Routes
=
[
{
path
:
""
,
children
:
[
{
path
:
"dashboard/analytics"
,
component
:
AnalyticsComponent
},
{
path
:
"dashboard/crypto"
,
component
:
CryptoComponent
},
{
path
:
"dashboard/ecommerce"
,
component
:
EcommerceComponent
},
{
path
:
"dashboard/sales"
,
component
:
SalesComponent
},
{
path
:
"dashboard/crm"
,
component
:
CrmComponent
},
{
path
:
"dashboard/jobs"
,
component
:
JobsComponent
},
{
path
:
"dashboard/hrm"
,
component
:
HrmComponent
},
{
path
:
"dashboard/personal"
,
component
:
PersonalComponent
},
{
path
:
"dashboard/nft"
,
component
:
NftComponent
},
{
path
:
"dashboard/projects"
,
component
:
ProjectsComponent
},
{
path
:
"dashboard/stocks"
,
component
:
StocksComponent
},
{
path
:
"dashboard/course"
,
component
:
CourseComponent
},
{
path
:
""
,
children
:[
{
path
:
"dashboard/analytics"
,
component
:
AnalyticsComponent
},
{
path
:
"dashboard/crypto"
,
component
:
CryptoComponent
},
{
path
:
"dashboard/ecommerce"
,
component
:
EcommerceComponent
},
{
path
:
"dashboard/sales"
,
component
:
SalesComponent
},
{
path
:
"dashboard/crm"
,
component
:
CrmComponent
},
{
path
:
"dashboard/jobs"
,
component
:
JobsComponent
},
{
path
:
"dashboard/hrm"
,
component
:
HrmComponent
},
{
path
:
"dashboard/personal"
,
component
:
PersonalComponent
},
{
path
:
"dashboard/nft"
,
component
:
NftComponent
},
{
path
:
"dashboard/projects"
,
component
:
ProjectsComponent
},
{
path
:
"dashboard/stocks"
,
component
:
StocksComponent
},
{
path
:
"dashboard/course"
,
component
:
CourseComponent
},
]}
// myComponent
{
path
:
"company-registration"
,
component
:
CompanyRegistrationComponent
},
]
}
];
@
NgModule
({
imports
:
[
RouterModule
.
forChild
(
routes
)],
exports
:
[
RouterModule
]
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
2ec684d8
...
...
@@ -20,6 +20,9 @@ import { CarouselModule } from 'ngx-owl-carousel-o';
import
{
SharedModule
}
from
'src/app/shared/sharedmodule'
;
import
{
NgxChartsModule
}
from
'@swimlane/ngx-charts'
;
import
{
NgSelectModule
}
from
'@ng-select/ng-select'
;
import
{
CompanyRegistrationComponent
}
from
'../company-registration/company-registration.component'
;
import
{
DepartmentRegisterComponent
}
from
'../company-registration/branch-business-unit/department-register/department-register.component'
;
import
{
BranchBusinessUnitComponent
}
from
'../company-registration/branch-business-unit/branch-business-unit.component'
;
@
NgModule
({
declarations
:
[
SalesComponent
,
...
...
@@ -34,6 +37,11 @@ import { NgSelectModule } from '@ng-select/ng-select';
PersonalComponent
,
StocksComponent
,
CourseComponent
,
// my Component
CompanyRegistrationComponent
,
BranchBusinessUnitComponent
,
DepartmentRegisterComponent
],
imports
:
[
CommonModule
,
...
...
@@ -46,4 +54,4 @@ import { NgSelectModule } from '@ng-select/ng-select';
NgSelectModule
,
],
})
export
class
DashboardModule
{}
export
class
DashboardModule
{
}
src/app/shared/components/page-header/page-header.component.html
View file @
2ec684d8
<!-- Page Header -->
<div
class=
"block justify-between page-header sm:flex"
>
<div>
<h3
class=
"text-gray-700 hover:text-gray-900 dark:text-white dark:hover:text-white text-2xl font-medium"
>
{{title}}
</h3>
</div>
<ol
class=
"flex items-center whitespace-nowrap min-w-0"
>
<li
class=
"text-sm"
>
<a
class=
"flex items-center font-semibold text-primary hover:text-primary dark:text-primary truncate"
href=
"javascript:void(0);"
>
{{activeitem}}
<i
class=
"ti ti-chevrons-right flex-shrink-0 mx-3 overflow-visible text-gray-300 dark:text-gray-300 rtl:rotate-180"
></i>
</a>
</li>
<li
class=
"text-sm text-gray-500 hover:text-primary dark:text-white/70 "
aria-current=
"page"
>
{{title1}}
</li>
</ol>
<ng-container
*
ngTemplateOutlet=
"title ? pageHeaderOriginal : pageHeaderNew"
></ng-container>
<ng-template
#
pageHeaderNew
>
<!-- Page Header New -->
<div
class=
"block justify-between page-header sm:flex"
>
<ol
class=
"flex items-center whitespace-nowrap min-w-0"
>
<li
class=
"text-sm text-gray-500 hover:text-primary dark:text-white/70 "
aria-current=
"page"
*
ngFor=
"let item of pathTitle;let l = last"
>
<span
class=
"flex items-center"
>
{{item}}
<i
*
ngIf=
"!l"
class=
"ri-arrow-right-s-line mx-3 text-gray-500"
></i>
</span>
</li>
</ol>
</div>
<!-- Page Header Close -->
</ng-template>
<ng-template
#
pageHeaderOriginal
>
<!-- Page Header Original -->
<div
class=
"block justify-between page-header sm:flex"
>
<div>
<h3
class=
"text-gray-700 hover:text-gray-900 dark:text-white dark:hover:text-white text-2xl font-medium"
>
{{title}}
</h3>
</div>
<ol
class=
"flex items-center whitespace-nowrap min-w-0"
>
<li
class=
"text-sm"
>
<a
class=
"flex items-center font-semibold text-primary hover:text-primary dark:text-primary truncate"
href=
"javascript:void(0);"
>
{{activeitem}}
<i
class=
"ti ti-chevrons-right flex-shrink-0 mx-3 overflow-visible text-gray-300 dark:text-gray-300 rtl:rotate-180"
></i>
</a>
</li>
<li
class=
"text-sm text-gray-500 hover:text-primary dark:text-white/70 "
aria-current=
"page"
>
{{title1}}
</li>
</ol>
</div>
<!-- Page Header Close -->
</ng-template>
\ No newline at end of file
src/app/shared/components/page-header/page-header.component.ts
View file @
2ec684d8
...
...
@@ -9,6 +9,7 @@ export class PageHeaderComponent {
@
Input
()
title
!
:
string
;
@
Input
()
title1
!
:
string
;
@
Input
()
activeitem
!
:
string
;
@
Input
()
pathTitle
:
string
[]
=
[]
constructor
()
{
}
ngOnInit
():
void
{
...
...
src/app/shared/components/sidebar/sidebar.component.html
View file @
2ec684d8
...
...
@@ -123,4 +123,4 @@
<!-- End::main-sidebar -->
</aside>
<!-- End::app-sidebar -->
<!-- End::app-sidebar -->
\ No newline at end of file
src/app/shared/routes/fullroutes.ts
View file @
2ec684d8
import
{
Routes
}
from
'@angular/router'
;
export
const
content
:
Routes
=
[
{
path
:
''
,
loadChildren
:
()
=>
import
(
'../../components/dashboard/dashboard.module'
).
then
(
m
=>
m
.
DashboardModule
)
},
{
{
path
:
''
,
loadChildren
:
()
=>
import
(
'../../components/dashboard/dashboard.module'
).
then
(
m
=>
m
.
DashboardModule
)
},
{
path
:
''
,
loadChildren
:
()
=>
import
(
'../../components/widgets/widgets.module'
).
then
(
m
=>
m
.
WidgetsModule
)
},
...
...
@@ -69,4 +68,4 @@ export const content: Routes = [
loadChildren
:
()
=>
import
(
'../../components/icons/icons.module'
).
then
(
m
=>
m
.
IconsModule
)
},
];
];
src/app/shared/services/navservice.ts
View file @
2ec684d8
...
...
@@ -86,13 +86,26 @@ export class NavService implements OnDestroy {
}
MENUITEMS
:
Menu
[]
=
[
{
headTitle
:
'การจัดการข้อมูลองค์กร'
},
{
title
:
'ทะเบียนบริษัท'
,
type
:
'link'
,
selected
:
false
,
active
:
false
,
path
:
'/company-registration'
},
// Dashboard
{
headTitle
:
'การประเมินผล'
},
{
title
:
'การประเมินตนเอง'
,
icon
:
'home-8-line'
,
type
:
'link'
,
selected
:
false
,
selected
:
false
,
active
:
false
,
path
:
'/dashboard/sales'
,
// children: [
...
...
@@ -113,7 +126,7 @@ export class NavService implements OnDestroy {
badgeClass
:
'badge badge-sm bg-secondary badge-hide'
,
badgeValue
:
'new'
,
path
:
'/widgets'
,
selected
:
false
,
selected
:
false
,
type
:
'link'
,
},
// {
...
...
src/styles.scss
View file @
2ec684d8
...
...
@@ -34,7 +34,6 @@
// dark styles start
@media
(
min-width
:
992px
)
{
[
data-nav-layout
=
"horizontal"
][
dir
=
"rtl"
]
.main-menu-container
{
.slide-right
{
...
...
@@ -65,10 +64,7 @@
}
@media
(
min-width
:
992px
)
{
[
data-nav-style
=
"icon-click"
][
toggled
=
"icon-click-closed"
]
:not
(
[
data-nav-layout
=
"horizontal"
]
)
.main-menu
{
[
data-nav-style
=
"icon-click"
][
toggled
=
"icon-click-closed"
]
:not
([
data-nav-layout
=
"horizontal"
])
.main-menu
{
@apply
ltr
:ps-
[
2rem
]
ltr
:pe-
[
1
.219rem
]
rtl
:pe-
[
2rem
]
rtl
:ps-
[
1
.219rem
]
;
}
}
...
...
@@ -145,9 +141,7 @@
.mat-mdc-form-field-infix
{
width
:
90px
;
}
.timepicker
.mat-mdc-text-field-wrapper
:not
(
.mdc-text-field--outlined
)
.mat-mdc-form-field-infix
{
.timepicker
.mat-mdc-text-field-wrapper
:not
(
.mdc-text-field--outlined
)
.mat-mdc-form-field-infix
{
margin-inline-start
:
10px
;
}
}
...
...
@@ -233,17 +227,12 @@
ngx-dropzone
{
@apply
border-gray-200
dark
:border-white
/
10
h-20
#{
!
important
}
;
}
.ng-select.ng-select-multiple
.ng-select-container
.ng-value-container
.ng-value
.ng-value-icon
:hover
{
.ng-select.ng-select-multiple
.ng-select-container
.ng-value-container
.ng-value
.ng-value-icon
:hover
{
@apply
bg-primary
;
}
/* custom styles */
/* custom styles */
@media
(
min-width
:
992px
)
{
...
...
@@ -251,7 +240,7 @@ ngx-dropzone {
[
data-nav-style
=
"menu-hover"
]
{
.app-sidebar
{
.slide.has-sub
{
.child1
>
.sub-slide
:hover
>
.child2
{
.child1
>
.sub-slide
:hover
>
.child2
{
@apply
block
-mt-
[
30px
]
#{
!
important
}
;
}
}
...
...
@@ -264,7 +253,7 @@ ngx-dropzone {
}
/* advanced forms */
.ng-select.ng-select-focused
:not
(
.ng-select-opened
)
>
.ng-select-container
{
.ng-select.ng-select-focused
:not
(
.ng-select-opened
)
>
.ng-select-container
{
@apply
shadow-none
;
}
...
...
@@ -296,7 +285,7 @@ ngx-dropzone {
@apply
stroke-
[
#fff
]
;
}
.ae-font
.ae-picker-label
:hover:before
{
background
:
linear-gradient
(
to
right
,
#293549
100%
,
#293549
100%
);
background
:
linear-gradient
(
to
right
,
#293549
100%
,
#293549
100%
);
}
.ae-font.ae-expanded
.ae-picker-options
{
@apply
border-white
/
10
;
...
...
@@ -356,3 +345,154 @@ ngx-dropzone {
}
}
/* colorpicker */
.body-content
{
display
:
flex
;
flex-direction
:
column
;
padding
:
0
.5rem
1rem
1rem
1rem
;
}
.head-title
{
color
:
rgb
(
var
(
--
color-primary
));
font-weight
:
700
;
display
:
flex
;
padding
:
1rem
1rem
0
.5rem
1rem
;
font-size
:
x-large
;
}
.bg-card-white
{
background-color
:
#ffffff
;
height
:
100vh
;
position
:
fixed
;
z-index
:
-1
;
width
:
100vw
;
right
:
1
.5rem
;
}
.block-main-content
{
background
:
white
;
margin-left
:
-1
.5rem
;
}
@media
(
min-width
:
480px
)
{
.bg-card-white
{
background-color
:
#ffffff
;
height
:
100vh
;
position
:
fixed
;
z-index
:
-1
;
width
:
100vw
;
right
:
1
.75rem
;
}
.block-main-content
{
background
:
white
;
margin-left
:
-1
.75rem
;
}
}
.input-wrapper
{
position
:
relative
;
max-width
:
20rem
;
box-shadow
:
rgba
(
149
,
157
,
165
,
0
.2
)
0px
6px
24px
;
display
:
flex
;
align-items
:
center
;
// จัดให้อยู่กลางในแนวตั้ง
justify-content
:
space-between
;
// จัดไอคอนให้ไปอยู่ข้างขวา
}
.input-wrapper
input
{
font-family
:
Montserrat
!
important
;
padding
:
0
.5rem
;
padding-left
:
2
.5rem
;
// เพิ่มพื้นที่สำหรับไอคอน
}
.input-wrapper
.icon
{
position
:
absolute
;
left
:
1rem
;
// ตำแหน่งไอคอนที่ซ้าย
pointer-events
:
none
;
// ไอคอนไม่ทำให้การคลิกใน input หยุด
}
.button-blue-light
{
min-width
:
5rem
;
background-color
:
#e6f0ff
;
--tw-text-opacity
:
1
;
color
:
#569bf5
;
display
:
inline-flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
0
.25rem
;
border-width
:
1px
;
border-color
:
transparent
;
padding-top
:
0
.5rem
;
padding-bottom
:
0
.5rem
;
padding-left
:
0
.75rem
;
padding-right
:
0
.75rem
;
font-size
:
0
.875rem
;
line-height
:
1
.25rem
;
font-weight
:
400
;
transition-property
:
all
;
transition-timing-function
:
cubic-bezier
(
0
.4
,
0
,
0
.2
,
1
);
transition-duration
:
150ms
;
box-shadow
:
rgba
(
149
,
157
,
165
,
0
.2
)
0px
6px
24px
;
}
.button-purple-light
{
min-width
:
5rem
;
background-color
:
#f1e4fe
;
--tw-text-opacity
:
1
;
color
:
#9f49f1
;
display
:
inline-flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
0
.25rem
;
border-width
:
1px
;
border-color
:
transparent
;
padding-top
:
0
.5rem
;
padding-bottom
:
0
.5rem
;
padding-left
:
0
.75rem
;
padding-right
:
0
.75rem
;
font-size
:
0
.875rem
;
line-height
:
1
.25rem
;
font-weight
:
400
;
transition-property
:
all
;
transition-timing-function
:
cubic-bezier
(
0
.4
,
0
,
0
.2
,
1
);
transition-duration
:
150ms
;
box-shadow
:
rgba
(
149
,
157
,
165
,
0
.2
)
0px
6px
24px
;
}
.button-yellow-light
{
min-width
:
5rem
;
background-color
:
#fef8bf
;
--tw-text-opacity
:
1
;
color
:
#e7a927
;
display
:
inline-flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
0
.25rem
;
border-width
:
1px
;
border-color
:
transparent
;
padding-top
:
0
.5rem
;
padding-bottom
:
0
.5rem
;
padding-left
:
0
.75rem
;
padding-right
:
0
.75rem
;
font-size
:
0
.875rem
;
line-height
:
1
.25rem
;
font-weight
:
400
;
transition-property
:
all
;
transition-timing-function
:
cubic-bezier
(
0
.4
,
0
,
0
.2
,
1
);
transition-duration
:
150ms
;
box-shadow
:
rgba
(
149
,
157
,
165
,
0
.2
)
0px
6px
24px
;
}
.shadow-gray-smoke
{
box-shadow
:
rgba
(
149
,
157
,
165
,
0
.2
)
0px
6px
24px
;
}
.head-table
{
padding
:
10px
20px
;
/* เพิ่มระยะขอบ */
font-weight
:
bold
!
important
;
font-size
:
large
!
important
;
background-color
:
#e6f0ff
;
/* พื้นหลังสำหรับ header */
color
:
rgb
(
var
(
--
color-primary
));
}
.head-table-icon
{
fill
:
rgb
(
var
(
--
color-primary
));
/* สีไอคอน */
margin
:
auto
;
}
.body-table-center
{
display
:
flex
;
justify-content
:
center
;
}
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