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
cc7be9b5
Commit
cc7be9b5
authored
Dec 19, 2024
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'DEV' of
https://mygit.myhr.co.th/angular/myAppraisal
into DEV
parents
50a0d875
c3ac06f0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
570 additions
and
295 deletions
+570
-295
set-a-password.component.html
...unt-settings/set-a-password/set-a-password.component.html
+47
-45
user-settings.component.html
...count-settings/user-settings/user-settings.component.html
+47
-45
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+3
-1
employee-categories.component.html
...on/employee-categories/employee-categories.component.html
+59
-57
employee-categories.component.scss
...on/employee-categories/employee-categories.component.scss
+3
-0
employee-group-unit.component.html
...on/employee-group-unit/employee-group-unit.component.html
+49
-46
employee-level.component.html
...-description/employee-level/employee-level.component.html
+55
-53
position-unit.component.html
...nts/job-description/position/position-unit.component.html
+48
-46
name-registration.component.html
...onents/name-registration/name-registration.component.html
+2
-1
name-registration.component.ts
...mponents/name-registration/name-registration.component.ts
+1
-1
type-registration.component.html
...ration/type-registration/type-registration.component.html
+0
-0
type-registration.component.scss
...ration/type-registration/type-registration.component.scss
+156
-0
type-registration.component.ts
...stration/type-registration/type-registration.component.ts
+100
-0
No files found.
src/app/components/account-settings/set-a-password/set-a-password.component.html
View file @
cc7be9b5
...
...
@@ -45,52 +45,54 @@
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['ชื่อล็อคอิน','รหัสพนักงาน','ชื่อ','นามสกุล','สถานะ','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"f && l"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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[
['CC01','620010','จรูญ', 'เทพทมาศ','ใช้งาน'],
['CC02','592530','มานะ', 'มิณนา','ใช้งาน'],
['CC03','5812142','ชาญชัย', 'โพธิ์สุข','ใช้งาน'],
['FC01','6125365','อดิศร', 'สมสัย','ใช้งาน'],
['FC02','5211475','ธนศักดิ์', 'ตาศรี','ใช้งาน'],
['KC01','525258','สุทธิชา', 'สิบประเสริฐ','ใช้งาน'],
['KC02','647589','ศรสุข', 'ยอดสิงห์','ใช้งาน']];let i = index"
>
<td
style=
"font-size: 12px; "
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item[0]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[1]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[2]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[3]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[4]}}
</td>
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['ชื่อล็อคอิน','รหัสพนักงาน','ชื่อ','นามสกุล','สถานะ','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"f && l"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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[
['CC01','620010','จรูญ', 'เทพทมาศ','ใช้งาน'],
['CC02','592530','มานะ', 'มิณนา','ใช้งาน'],
['CC03','5812142','ชาญชัย', 'โพธิ์สุข','ใช้งาน'],
['FC01','6125365','อดิศร', 'สมสัย','ใช้งาน'],
['FC02','5211475','ธนศักดิ์', 'ตาศรี','ใช้งาน'],
['KC01','525258','สุทธิชา', 'สิบประเสริฐ','ใช้งาน'],
['KC02','647589','ศรสุข', 'ยอดสิงห์','ใช้งาน']];let i = index"
>
<td
style=
"font-size: 12px; "
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item[0]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[1]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[2]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[3]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[4]}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#set-a-password-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#set-a-password-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#set-a-password-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#set-a-password-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div
class=
"body-content"
style=
"margin-top: 20px; margin-left: 10px;"
>
...
...
src/app/components/account-settings/user-settings/user-settings.component.html
View file @
cc7be9b5
...
...
@@ -45,51 +45,53 @@
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['ชื่อล็อคอิน','รหัสพนักงาน','ชื่อ','นามสกุล','สถานะ','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&!i"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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[
['CC001', '620010','จรุณ','เทพมาศ','ใช้งาน'],
['CC002', '592530','มานะ','มิณนา','ใช้งาน'],
['CC003', '5812142','ชาญชัย','โพธิ์สุข','ใช้งาน'],
['FC001', '6125365','อดิศร','สมสัย','ใช้งาน'],
['FC002', '5211475','ธนศักดิ์','ตาศรี','ใช้งาน'],
['KC001', '525258','สุทธิดา','สินประเสริฐ','ใช้งาน'],
['KC002', '647589','ศรสุข','ยอดสิงฆ์','ใช้งาน']];let i = index"
>
<td
style=
"font-size: 12px;"
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item[0]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[1]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[2]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[3]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[4]}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#user-settings-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#user-settings-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['ชื่อล็อคอิน','รหัสพนักงาน','ชื่อ','นามสกุล','สถานะ','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&!i"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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[
['CC001', '620010','จรุณ','เทพมาศ','ใช้งาน'],
['CC002', '592530','มานะ','มิณนา','ใช้งาน'],
['CC003', '5812142','ชาญชัย','โพธิ์สุข','ใช้งาน'],
['FC001', '6125365','อดิศร','สมสัย','ใช้งาน'],
['FC002', '5211475','ธนศักดิ์','ตาศรี','ใช้งาน'],
['KC001', '525258','สุทธิดา','สินประเสริฐ','ใช้งาน'],
['KC002', '647589','ศรสุข','ยอดสิงฆ์','ใช้งาน']];let i = index"
>
<td
style=
"font-size: 12px;"
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item[0]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[1]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[2]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[3]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[4]}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#user-settings-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
data-hs-overlay=
"#user-settings-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div
class=
"body-content"
style=
"margin-top: 20px; margin-left: 10px;"
>
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
cc7be9b5
...
...
@@ -52,6 +52,7 @@ import { PLService } from 'src/app/shared/services/pl.service';
import
{
EmpGroupService
}
from
'src/app/shared/services/emp_group.service'
;
import
{
EmpTypeService
}
from
'src/app/shared/services/employee-type.service'
;
import
{
NameRegistrationComponent
}
from
'../name-registration/name-registration.component'
;
import
{
TypeRegistration
}
from
'../name-registration/type-registration/type-registration.component'
;
import
{
CompetencyTopic
}
from
'../name-registration/competency-topic/competency-topic.component'
;
...
...
@@ -89,7 +90,8 @@ import { CompetencyTopic } from '../name-registration/competency-topic/competenc
EmployeeLevel
,
SetAPasswordComponent
,
NameRegistrationComponent
,
CompetencyTopic
TypeRegistration
,
CompetencyTopic
,
],
imports
:
[
CommonModule
,
...
...
src/app/components/job-description/employee-categories/employee-categories.component.html
View file @
cc7be9b5
...
...
@@ -45,63 +45,65 @@
</a>
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสประเภทพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==1"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"170"
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
*
ngIf=
"!emp_typeListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"emp_typeListFilter().length"
>
<tr
*
ngFor=
"let item of emp_typeListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
[(
ngModel
)]="
item
['
selected
']"
(
change
)="
onCheckboxChange
(
item
)"
>
{{item.codeId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectEmp_type
(
item
)"
data-hs-overlay=
"#employee-categories-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
openDeleteModal
(
item
)"
data-hs-overlay=
"#employee-categories-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสประเภทพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==1"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"170"
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
*
ngIf=
"!emp_typeListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"emp_typeListFilter().length"
>
<tr
*
ngFor=
"let item of emp_typeListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
[(
ngModel
)]="
item
['
selected
']"
(
change
)="
onCheckboxChange
(
item
)"
>
{{item.codeId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectEmp_type
(
item
)"
data-hs-overlay=
"#employee-categories-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
openDeleteModal
(
item
)"
data-hs-overlay=
"#employee-categories-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<nav
class=
"pagination-style-3 overflow-auto my-5"
*
ngIf=
"page.length"
>
<ul
class=
"ti-pagination"
>
...
...
src/app/components/job-description/employee-categories/employee-categories.component.scss
View file @
cc7be9b5
...
...
@@ -47,6 +47,9 @@ table.ti-custom-table thead th span {
font-size
:
12px
;
font-weight
:
bold
;
}
.ti-custom-table
thead
th
:first-child
{
width
:
250px
;
/* ปรับความกว้างของ th ที่ 1 */
}
a
.custom-link
{
padding
:
10px
40px
;
/* ปรับ padding ให้เพิ่มขนาด */
}
...
...
src/app/components/job-description/employee-group-unit/employee-group-unit.component.html
View file @
cc7be9b5
...
...
@@ -45,53 +45,56 @@
</a>
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสกลุ่มพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&i!==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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
*
ngIf=
"!emp_groupListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"emp_groupListFilter().length"
>
<tr
*
ngFor=
"let item of emp_groupListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.groupId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectEmp_group
(
item
)"
data-hs-overlay=
"#employee-group-unit-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deleteEmp_group
(
item
)"
data-hs-overlay=
"#employee-group-unit-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสกลุ่มพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&i!==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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
*
ngIf=
"!emp_groupListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"emp_groupListFilter().length"
>
<tr
*
ngFor=
"let item of emp_groupListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.groupId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectEmp_group
(
item
)"
data-hs-overlay=
"#employee-group-unit-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deleteEmp_group
(
item
)"
data-hs-overlay=
"#employee-group-unit-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<nav
class=
"pagination-style-3 overflow-auto my-5"
*
ngIf=
"page.length"
>
<ul
class=
"ti-pagination"
>
...
...
src/app/components/job-description/employee-level/employee-level.component.html
View file @
cc7be9b5
...
...
@@ -46,60 +46,62 @@
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสลักษณะงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==1"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"170"
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
*
ngIf=
"!plListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"plListFilter().length"
>
<tr
*
ngFor=
"let item of plListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.plId}}
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสลักษณะงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==1"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!f && i==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"170"
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
*
ngIf=
"!plListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"plListFilter().length"
>
<tr
*
ngFor=
"let item of plListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.plId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectPL
(
item
)"
data-hs-overlay=
"#employee-level-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deletePL
(
item
)"
data-hs-overlay=
"#employee-level-alert-delete-modal"
></i>
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectPL
(
item
)"
data-hs-overlay=
"#employee-level-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deletePL
(
item
)"
data-hs-overlay=
"#employee-level-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
<nav
class=
"pagination-style-3 overflow-auto my-5"
*
ngIf=
"page.length"
>
<ul
class=
"ti-pagination"
>
...
...
src/app/components/job-description/position/position-unit.component.html
View file @
cc7be9b5
...
...
@@ -46,52 +46,54 @@
</nav>
</div>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสกลุ่มพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&i!==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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
*
ngIf=
"!positionListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"positionListFilter().length"
>
<tr
*
ngFor=
"let item of positionListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.positionId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectPosition
(
item
)"
data-hs-overlay=
"#position-unit-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deletePosition
(
item
)"
data-hs-overlay=
"#position-unit-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
<div
class=
"overflow-auto table-bordered"
style=
"border-radius: 5px;"
>
<div
class=
"overflow-auto shadow-md"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัสกลุ่มพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
style=
"text-align: center;"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&i!==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
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
*
ngIf=
"!positionListFilter().length"
>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody
*
ngIf=
"positionListFilter().length"
>
<tr
*
ngFor=
"let item of positionListFilter() | slice:((currentPage-1) * 10) : (((currentPage-1) * 10) + 10);let i = index"
>
<td
class=
"flex justify-center"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{item.positionId}}
</td>
<td
class=
"text-center"
>
{{item.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.edesc}}
</td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-l px-1"
(
click
)="
selectPosition
(
item
)"
data-hs-overlay=
"#position-unit-component-modal-edit"
></i>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deletePosition
(
item
)"
data-hs-overlay=
"#position-unit-component-alert-delete-modal"
></i>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<nav
class=
"pagination-style-3 overflow-auto my-5"
*
ngIf=
"page.length"
>
<ul
class=
"ti-pagination"
>
...
...
src/app/components/name-registration/name-registration.component.html
View file @
cc7be9b5
...
...
@@ -22,7 +22,8 @@
</div>
<div
class=
"mt-3 px-3rem"
>
<div
id=
"underline-1"
role=
"tabpanel"
aria-labelledby=
"underline-item-1"
>
<app-type-registration
[
pathTitle
]="
pathTitle
"
(
sendPathTitle
)="
pathTitle=
$event"
></app-type-registration>
</div>
<div
id=
"underline-2"
class=
"hidden"
role=
"tabpanel"
aria-labelledby=
"underline-item-2"
>
<app-competency-topic
[
pathTitle
]="
pathTitle
"
...
...
src/app/components/name-registration/name-registration.component.ts
View file @
cc7be9b5
...
...
@@ -6,5 +6,5 @@ import { Component } from '@angular/core';
styleUrls
:
[
'./name-registration.component.scss'
]
})
export
class
NameRegistrationComponent
{
pathTitle
=
[
'การประเมินสมรรถนะ'
,
'ทะเบียนกำหนดชื่อ'
]
pathTitle
=
[
'การประเมินสมรรถนะ'
,
'ทะเบียนกำหนดชื่อ'
,
'ประเภทสมรรถนะ'
]
}
src/app/components/name-registration/type-registration/type-registration.component.html
0 → 100644
View file @
cc7be9b5
This diff is collapsed.
Click to expand it.
src/app/components/name-registration/type-registration/type-registration.component.scss
0 → 100644
View file @
cc7be9b5
.button-clear
{
position
:
absolute
;
top
:
96px
;
z-index
:
1
;
right
:
41vw
;
}
.button-help
{
position
:
absolute
;
top
:
0px
;
z-index
:
1
;
right
:
0vw
;
margin
:
4
.2rem
;
margin-right
:
10px
;
/* เพิ่มใหม่ 12/16*/
}
table
.ti-custom-table
thead
{
height
:
60px
;
}
table
.ti-custom-table
thead
th
span
{
font-size
:
12px
;
font-weight
:
bold
;
}
.ti-custom-table
td
{
padding-left
:
0
.9rem
;
padding-right
:
1rem
;
}
.ti-custom-table
thead
th
:first-child
{
width
:
105px
;
/* ปรับความกว้างตามที่ต้องการ */
text-align
:
left
;
/* จัดตำแหน่งข้อความถ้าต้องการ */
}
.ti-custom-table
thead
th
:last-child
{
width
:
150px
;
/* ปรับความกว้างตามที่ต้องการ */
}
a
.custom-link
{
padding
:
10px
40px
;
/* ปรับ padding ให้เพิ่มขนาด */
}
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
width
:
100%
;
cursor
:
pointer
;
margin-bottom
:
10px
;
height
:
20%
;
}
.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
:
2px
solid
#569bf5
;
line-height
:
0
.8
;
}
.ti-pagination
.page-link.active
{
background-color
:
#569bf5
;
color
:
white
;
border-radius
:
50%
;
padding
:
8px
12px
;
}
.box-body
{
padding
:
0rem
;
}
.page
{
min-height
:
0vh
;
}
// .ti-modal-content {
// width: 70%;
// position: absolute;
// top: 50%;
// left: 50%;
// transform: translate(-50%, -50%);
// max-height: 90%; /* จำกัดความสูงให้อยู่ใน modal */
// overflow-y: auto; /* เปิดการเลื่อนแนวตั้ง */
// }
// .ti-modal-body-content {
// display: flex; /* ใช้ flexbox เพื่อจัดตำแหน่ง */
// justify-content: center; /* จัดฟอร์มให้อยู่กลางในแนวนอน */
// flex-direction: column; /* ทำให้ฟอร์มแสดงผลในรูปแบบคอลัมน์ */
// height: calc(100% - 50px); /* ให้ความสูงเป็น 100% ลบด้วยระยะห่างข้างบน */
// margin-left: calc(15% - 30px);
// margin-right: 20px;
// }
.ti-modal-content-alert
{
width
:
35%
;
/* ความกว้างที่คุณต้องการ */
position
:
absolute
;
/* ทำให้สามารถจัดตำแหน่งได้ */
top
:
50%
;
/* ให้อยู่กลางในแนวตั้ง */
left
:
50%
;
/* ให้อยู่กลางในแนวนอน */
transform
:
translate
(
-50%
,
-50%
);
/* เคลื่อนที่ modal กลับมาให้ตรงกลาง */
background-color
:
#ffffff
;
}
// .header-title-type{
// width: 100%;
// height: 50px;
// margin-top: 10px;
// margin-bottom: 10px;
// }
.header-title-type
{
width
:
100%
;
min-height
:
50px
;
/* ใช้ min-height เพื่อให้มีความยืดหยุ่น */
margin-top
:
10px
;
margin-bottom
:
10px
;
justify-content
:
space-between
;
/* จัดเรียงองค์ประกอบภายใน */
align-items
:
center
;
/* จัดกลางแนวตั้ง */
}
\ No newline at end of file
src/app/components/name-registration/type-registration/type-registration.component.ts
0 → 100644
View file @
cc7be9b5
import
{
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
@
Component
({
selector
:
'app-type-registration'
,
templateUrl
:
'./type-registration.component.html'
,
styleUrls
:
[
'./type-registration.component.scss'
]
})
export
class
TypeRegistration
{
@
Input
()
pathTitle
=
[
'การประเมินสมรรถนะ'
,
'ทะเบียนกำหนดชื่อ'
,
'ประเภทสมรรถนะ'
];
@
Output
()
sendPathTitle
:
EventEmitter
<
string
[]
>
=
new
EventEmitter
<
string
[]
>
();
activeTab
:
string
=
'tab1'
;
// กำหนด tab เริ่มต้น
isChecked
:
boolean
=
false
;
// ฟังก์ชันในการเปลี่ยนแท็บ
changeTab
(
tab
:
{
id
:
string
,
text
:
string
})
{
this
.
sendPathTitle
.
emit
([
'การประเมินสมรรถนะ'
,
'ทะเบียนกำหนดชื่อ'
,
tab
.
text
]);
this
.
activeTab
=
tab
.
id
;
}
toggleCheckbox
():
void
{
this
.
isChecked
=
!
this
.
isChecked
;
}
// การจัดการการเปิดปิด modal
modalOptions
:
{
[
nameModal
:
string
]:
{
isModalOpen
:
boolean
;
modalSize
:
string
;
backdropClose
:
boolean
;
};
}
=
{
"add"
:
{
isModalOpen
:
false
,
modalSize
:
'm'
,
backdropClose
:
true
,
},
"edit"
:
{
isModalOpen
:
false
,
modalSize
:
'm'
,
backdropClose
:
true
,
}
};
openModal
(
name
:
string
,
size
:
string
,
closeOnBackdrop
?:
boolean
)
{
this
.
modalOptions
[
name
].
modalSize
=
size
;
this
.
modalOptions
[
name
].
backdropClose
=
closeOnBackdrop
||
false
;
this
.
modalOptions
[
name
].
isModalOpen
=
true
;
this
.
currentModal
=
name
;
// ตั้งค่าค่าของ currentModal เป็น 'add' หรือ 'edit'
document
.
body
.
style
.
overflow
=
'hidden'
;
}
closeModal
(
name
:
string
)
{
this
.
modalOptions
[
name
].
isModalOpen
=
false
;
if
(
!
this
.
isAnyModalOpen
())
{
document
.
body
.
style
.
overflow
=
''
;
// คืนค่าการ Scroll เฉพาะเมื่อ Modal ทั้งหมดปิดแล้ว
}
}
isAnyModalOpen
():
boolean
{
return
Object
.
values
(
this
.
modalOptions
).
some
(
modal
=>
modal
.
isModalOpen
);
// ตรวจสอบว่า modal อื่นยังเปิดอยู่หรือไม่
}
// ฟังก์ชันสำหรับการเพิ่ม ลบ หรือแก้ไข ข้อมูล
addUser
()
{
// ฟังก์ชันสำหรับการเพิ่มผู้ใช้งาน
console
.
log
(
'เพิ่มผู้ใช้งาน'
);
}
deleteUser
()
{
// ฟังก์ชันสำหรับการลบผู้ใช้งาน
console
.
log
(
'ลบผู้ใช้งาน'
);
}
editUser
()
{
// ฟังก์ชันสำหรับการแก้ไขผู้ใช้งาน
console
.
log
(
'แก้ไขผู้ใช้งาน'
);
}
currentModal
=
""
constructor
(
private
toastr
:
ToastrService
)
{
}
showSuccess
()
{
this
.
toastr
.
success
(
'บันทึกข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
showSuccessEdit
()
{
this
.
toastr
.
success
(
'เเก้ไขข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
showSuccessDelete
()
{
this
.
toastr
.
success
(
'ลบข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
}
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