Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mySkill-x
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
mySkill-x
Commits
2abf8a01
Commit
2abf8a01
authored
Oct 31, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ติดตามหลังการประเมิน
parent
1e5e6bae
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
269 additions
and
5 deletions
+269
-5
dashboard-routing.module.ts
src/app/components/dashboard/dashboard-routing.module.ts
+3
-1
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+5
-1
disciplinary-action.component.ts
...ents/disciplinary-action/disciplinary-action.component.ts
+1
-1
outstanding-performance.component.ts
...standing-performance/outstanding-performance.component.ts
+1
-1
supervisor-evaluation.component.html
...upervisor-evaluation/supervisor-evaluation.component.html
+1
-1
evaluation-confirmation.component.html
...ation-confirmation/evaluation-confirmation.component.html
+0
-0
evaluation-confirmation.component.scss
...ation-confirmation/evaluation-confirmation.component.scss
+144
-0
evaluation-confirmation.component.ts
...luation-confirmation/evaluation-confirmation.component.ts
+0
-0
post-evaluation-tracking.component.html
...aluation-tracking/post-evaluation-tracking.component.html
+46
-0
post-evaluation-tracking.component.scss
...aluation-tracking/post-evaluation-tracking.component.scss
+10
-0
post-evaluation-tracking.component.ts
...evaluation-tracking/post-evaluation-tracking.component.ts
+30
-0
setting-individual-kpi-supervisor.component.html
...pervisor/setting-individual-kpi-supervisor.component.html
+7
-0
employee.service.ts
src/app/shared/services/employee.service.ts
+3
-0
navservice.ts
src/app/shared/services/navservice.ts
+10
-0
style.css
src/assets/css/style.css
+8
-0
No files found.
src/app/components/dashboard/dashboard-routing.module.ts
View file @
2abf8a01
...
...
@@ -65,7 +65,8 @@ import { JobFamilyMappingComponent } from '../job-family-mapping/job-family-mapp
import
{
JobFamilyMatrixComponent
}
from
'../job-family-matrix/job-family-matrix.component'
;
import
{
DocumentUploadManagerComponent
}
from
'../company-components/account-settings/document-upload-manager/document-upload-manager.component'
;
import
{
DisciplinaryActionComponent
}
from
'../disciplinary-action/disciplinary-action.component'
;
import
{
OutstandingPerformanceComponent
}
from
'../outstanding-performance/outstanding-performance.component'
;
import
{
OutstandingPerformanceComponent
}
from
'../outstanding-performance/outstanding-performance.component'
;
import
{
PostEvaluationTrackingComponent
}
from
'../post-evaluation-tracking/post-evaluation-tracking.component'
;
...
...
@@ -147,6 +148,7 @@ const routes: Routes = [
{
path
:
"ess/job-family-matrix"
,
title
:
'รายละเอียดกลุ่มงานตามวิชาชีพ'
,
component
:
JobFamilyMatrixComponent
},
{
path
:
"ess/disciplinary-action"
,
title
:
'วินัยและการลงโทษ'
,
component
:
DisciplinaryActionComponent
},
{
path
:
"ess/outstanding-performance"
,
title
:
'ผลงานดีเด่น'
,
component
:
OutstandingPerformanceComponent
},
{
path
:
"ess/post-evaluation-tracking"
,
title
:
'ผลงานดีเด่น'
,
component
:
PostEvaluationTrackingComponent
},
]
}
];
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
2abf8a01
...
...
@@ -219,6 +219,8 @@ import { JobFamilyMatrixComponent } from '../job-family-matrix/job-family-matrix
import
{
DocumentUploadManagerComponent
}
from
'../company-components/account-settings/document-upload-manager/document-upload-manager.component'
;
import
{
DisciplinaryActionComponent
}
from
'../disciplinary-action/disciplinary-action.component'
;
import
{
OutstandingPerformanceComponent
}
from
'../outstanding-performance/outstanding-performance.component'
;
import
{
PostEvaluationTrackingComponent
}
from
'../post-evaluation-tracking/post-evaluation-tracking.component'
;
import
{
EvaluationConfirmationComponent
}
from
'../post-evaluation-tracking/evaluation-confirmation/evaluation-confirmation.component'
;
export
const
MY_DATE_FORMATS
=
{
parse
:
{
...
...
@@ -377,7 +379,9 @@ export class CustomDateAdapter extends NativeDateAdapter {
JobFamilyMatrixComponent
,
DocumentUploadManagerComponent
,
DisciplinaryActionComponent
,
OutstandingPerformanceComponent
OutstandingPerformanceComponent
,
PostEvaluationTrackingComponent
,
EvaluationConfirmationComponent
],
imports
:
[
TranslateModule
,
CommonModule
,
...
...
src/app/components/disciplinary-action/disciplinary-action.component.ts
View file @
2abf8a01
...
...
@@ -93,7 +93,7 @@ export class DisciplinaryActionComponent {
}
getEmployeeList
()
{
this
.
employee
.
loading
=
true
this
.
employeeService
.
getList
().
subscribe
({
this
.
employeeService
.
get
Subordinates
List
().
subscribe
({
next
:
response
=>
{
this
.
employee
.
list
=
response
.
map
((
x
:
any
)
=>
new
MyEmployeeModel
(
x
))
this
.
employee
.
loading
=
false
...
...
src/app/components/outstanding-performance/outstanding-performance.component.ts
View file @
2abf8a01
...
...
@@ -93,7 +93,7 @@ export class OutstandingPerformanceComponent {
}
getEmployeeList
()
{
this
.
employee
.
loading
=
true
this
.
employeeService
.
getList
().
subscribe
({
this
.
employeeService
.
get
Subordinates
List
().
subscribe
({
next
:
response
=>
{
this
.
employee
.
list
=
response
.
map
((
x
:
any
)
=>
new
MyEmployeeModel
(
x
))
this
.
employee
.
loading
=
false
...
...
src/app/components/performance-evaluation/supervisor-evaluation/supervisor-evaluation.component.html
View file @
2abf8a01
...
...
@@ -204,7 +204,7 @@
</div>
</div>
<ng-container
*
ngIf=
"pageEvalution!=''"
>
<app-pms-form-employee
[
evaluationForm
]="'
sup
'"
[
currentTap
]="'
ข้อมูลการประเมิน
'"
<app-pms-form-employee
[
evaluationForm
]="'
sup
'"
[
currentTap
]="'
EvaluationInfo
'"
(
sendReturnPath
)="
pageEvalution=
''
;
getBossList
()
;
pathTitle =
['การประเมินผล',
'ประเมินโดยหัวหน้า']"
[
evaluaterId
]="
formEvaluation
.
evaluaterId
"
[
evaluateeId
]="
formEvaluation
.
evaluateeId
"
></app-pms-form-employee>
</ng-container>
...
...
src/app/components/post-evaluation-tracking/evaluation-confirmation/evaluation-confirmation.component.html
0 → 100644
View file @
2abf8a01
This diff is collapsed.
Click to expand it.
src/app/components/post-evaluation-tracking/evaluation-confirmation/evaluation-confirmation.component.scss
0 → 100644
View file @
2abf8a01
// th{
// position: relative; // เทียบเท่า class "relative"
// padding: 10px; // เทียบเท่า class "px-10px py-10px" (อาจเปลี่ยนตามต้องการ)
// background-color: rgb(96 165 250 / 0.1); // ตัวอย่างแทน "bg-soft-secondary"
// color: #2b2b2b; // ตัวอย่างแทน "text-primary"
// text-align: center !important; // เทียบเท่า "!text-center"
// // หากต้องการดีไซน์อื่น ๆ เพิ่มเติมก็ใส่ในนี้ได้เลย เช่น:
// font-weight: 600;
// border-bottom: 1px solid #eee;
// }
.e-headercell
,
.e-detailheadercell
{
background-color
:
rgb
(
96
165
250
/
0
.1
)
!
important
;
}
.e-pager
.e-currentitem
,
.e-pager
.e-currentitem
:hover
{
background
:
rgb
(
96
165
250
)
!
important
;
color
:
#fff
;
opacity
:
1
!
important
;
}
.e-checkbox-wrapper
.e-frame.e-check
,
.e-css.e-checkbox-wrapper
.e-frame.e-check
{
background-color
:
rgb
(
96
165
250
)
!
important
;
border-color
:
transparent
;
color
:
#fff
;
}
.e-checkbox-wrapper
.e-frame
,
.e-css.e-checkbox-wrapper
.e-frame
{
border
:
1px
solid
!
important
;
border-radius
:
2px
;
box-sizing
:
border-box
;
cursor
:
pointer
;
display
:
inline-block
;
font-family
:
"e-icons"
;
height
:
18px
;
line-height
:
10px
;
padding
:
2px
0
;
text-align
:
center
;
vertical-align
:
middle
;
width
:
1rem
!
important
;
border-color
:
#64748b
!
important
;
}
.e-grid
td
.e-selectionbackground
{
background-color
:
#aec2ec
!
important
;
}
.row
{
display
:
flex
;
flex-wrap
:
wrap
;
}
.col
{
flex
:
1
;
}
@for
$i
from
1
through
12
{
$width
:
(
$i
/
12
)
*
100%
;
.col-
#{
$i
}
{
flex
:
0
0
$width
;
max-width
:
$width
;
}
}
@for
$i
from
1
through
100
{
.m-
#{
$i
}
rem
{
margin
:
#{
$i
}
rem
;
}
.mt-
#{
$i
}
rem
{
margin-top
:
#{
$i
}
rem
;
}
.ml-
#{
$i
}
rem
{
margin-left
:
#{
$i
}
rem
;
}
.mb-
#{
$i
}
rem
{
margin-bottom
:
#{
$i
}
rem
;
}
.mr-
#{
$i
}
rem
{
margin-right
:
#{
$i
}
rem
;
}
.p-
#{
$i
}
rem
{
padding
:
#{
$i
}
rem
;
}
.pt-
#{
$i
}
rem
{
padding-top
:
#{
$i
}
rem
;
}
.pl-
#{
$i
}
rem
{
padding-left
:
#{
$i
}
rem
;
}
.pb-
#{
$i
}
rem
{
padding-bottom
:
#{
$i
}
rem
;
}
.pr-
#{
$i
}
rem
{
padding-right
:
#{
$i
}
rem
;
}
}
@media
print
{
body
*
{
visibility
:
hidden
;
/* ซ่อนทุก element */
}
#printArea
,
#printArea
*
{
visibility
:
visible
;
/* แสดงเฉพาะ #printArea */
}
#printArea
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
100%
;
}
}
.pdf-container
{
transform
:
translateZ
(
0
);
}
\ No newline at end of file
src/app/components/post-evaluation-tracking/evaluation-confirmation/evaluation-confirmation.component.ts
0 → 100644
View file @
2abf8a01
This diff is collapsed.
Click to expand it.
src/app/components/post-evaluation-tracking/post-evaluation-tracking.component.html
0 → 100644
View file @
2abf8a01
<div
class=
" pt-1.5rem mb-2"
>
<div
class=
"flex flex-col gap-2"
>
<div
class=
"flex flex-col gap-2 w-full"
>
<div
class=
"w-full mb-2"
>
<div
class=
"font-size-18px font-weight-700 text-primary"
>
<span
class=
"whitespace-nowrap relative"
>
ติดตามหลังการประเมิน
</span>
</div>
</div>
<div
class=
"box shadow-md hover:shadow-xl transition m-0"
style=
"border-radius:20px"
>
<div
class=
"box-body py-2"
>
<nav
class=
"flex rtl:space-x-reverse space-x-2"
>
<a
style=
"border-radius: 20px;width: 210px;height: 35px;"
class=
" border justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900 active"
href=
"javascript:void(0);"
id=
"card-type-item-1"
data-hs-tab=
"#card-type-1"
aria-controls=
"card-type-1"
>
{{'ผลการประเมิน' | translate}}
</a>
<a
style=
"border-radius: 20px;width: 210px;height: 35px;"
class=
"border justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href=
"javascript:void(0);"
id=
"card-type-item-2"
data-hs-tab=
"#card-type-2"
aria-controls=
"card-type-2"
>
{{'การติดตามผล Gap' | translate}}
</a>
<a
style=
"border-radius: 20px;width: 210px;height: 35px;"
class=
"border justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href=
"javascript:void(0);"
id=
"card-type-item-3"
data-hs-tab=
"#card-type-3"
aria-controls=
"card-type-3"
>
{{'ติดตามผล Gap โดยหัวหน้า' | translate}}
</a>
</nav>
<div
class=
"pt-20px"
>
<div
id=
"card-type-1"
role=
"tabpanel"
aria-labelledby=
"card-type-item-1"
>
<app-evaluation-confirmation></app-evaluation-confirmation>
</div>
<div
id=
"card-type-2"
class=
"hidden"
role=
"tabpanel"
aria-labelledby=
"card-type-item-2"
>
<app-evaluation-confirmation></app-evaluation-confirmation>
</div>
<div
id=
"card-type-3"
class=
"hidden"
role=
"tabpanel"
aria-labelledby=
"card-type-item-3"
>
<app-evaluation-confirmation></app-evaluation-confirmation>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/post-evaluation-tracking/post-evaluation-tracking.component.scss
0 → 100644
View file @
2abf8a01
.hover-visible
{
.hover-show
{
opacity
:
0
;
}
}
.hover-visible
:hover
{
.hover-show
{
opacity
:
1
;
}
}
src/app/components/post-evaluation-tracking/post-evaluation-tracking.component.ts
0 → 100644
View file @
2abf8a01
import
{
ChangeDetectorRef
,
Component
,
EventEmitter
,
Input
,
Output
,
SimpleChanges
,
ViewChild
}
from
"@angular/core"
;
import
{
MatDialog
,
MatDialogRef
}
from
"@angular/material/dialog"
;
import
{
Router
,
ActivatedRoute
}
from
"@angular/router"
;
import
{
TranslateService
}
from
"@ngx-translate/core"
;
import
{
AppraisalKpiSettingEmpModel
,
MyAppraisalKpiSettingEmpModel
,
MyPmsTypeModel
,
MyTopicModel
,
PmsTypeModel
,
TopicModel
}
from
"src/app/shared/model/appraisal-kpi-setting-emp.model"
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
"src/app/shared/model/employee.model"
;
import
{
AppraisalService
}
from
"src/app/shared/services/appraisal.service"
;
import
{
EmployeeService
}
from
"src/app/shared/services/employee.service"
;
import
{
FileService
}
from
"src/app/shared/services/file.service"
;
import
{
PmstypeService
}
from
"src/app/shared/services/pmstype.service"
;
import
{
TokenService
}
from
"src/app/shared/services/token.service"
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
Swal
from
'sweetalert2'
;
import
{
Column
,
ColumnMenuClickEventArgs
,
ColumnModel
,
ExcelExportProperties
,
FilterSettingsModel
,
GridComponent
,
GroupSettingsModel
,
LoadingIndicatorModel
,
SelectionSettingsModel
}
from
"@syncfusion/ej2-angular-grids"
;
import
{
Query
}
from
'@syncfusion/ej2-data'
;
import
{
setCulture
}
from
'@syncfusion/ej2-base'
;
@
Component
({
selector
:
'app-post-evaluation-tracking'
,
templateUrl
:
'./post-evaluation-tracking.component.html'
,
styleUrls
:
[
'./post-evaluation-tracking.component.scss'
]
})
export
class
PostEvaluationTrackingComponent
{
@
Output
()
sendPathTitle
:
EventEmitter
<
string
[]
>
=
new
EventEmitter
<
string
[]
>
();
currentTab
=
1
onSendPathTitle
(
pathTitle
:
string
)
{
this
.
sendPathTitle
.
emit
([
'menu.Organization'
,
'menu.Company'
,
'BusinessUnit'
,
pathTitle
])
}
}
src/app/components/setting-individual-kpi-supervisor/setting-individual-kpi-supervisor.component.html
View file @
2abf8a01
...
...
@@ -2,6 +2,13 @@
<div
class=
" pt-1.5rem mb-2"
>
<div
class=
"flex flex-col gap-2"
>
<div
class=
"flex flex-col gap-2 w-full"
>
<div
class=
"w-full mb-2"
>
<div
class=
"font-size-18px font-weight-700 text-primary"
>
<span
class=
"whitespace-nowrap relative"
>
แก้ไข Individual KPI โดยหัวหน้า
</span>
</div>
</div>
<div
class=
"box shadow-md hover:shadow-xl transition m-0"
style=
"border-radius:20px"
>
<div
class=
"box-body py-2"
>
<div
class=
"flex item-center w-full font-size-18px font-weight-700 text-primary px-5 mt-1 mb-4"
...
...
src/app/shared/services/employee.service.ts
View file @
2abf8a01
...
...
@@ -27,6 +27,9 @@ export class EmployeeService {
);
}
getSubordinatesList
():
Observable
<
EmployeeModel
[]
>
{
return
this
.
http
.
get
<
EmployeeModel
[]
>
(
this
.
baseUrlapi
+
"/subordinates-list"
)
}
getList
():
Observable
<
EmployeeModel
[]
>
{
return
this
.
http
.
get
<
EmployeeModel
[]
>
(
this
.
baseUrlapi
+
"/profile/create-short/lists"
)
}
...
...
src/app/shared/services/navservice.ts
View file @
2abf8a01
...
...
@@ -142,6 +142,16 @@ export class NavService implements OnDestroy {
show
:
true
,
icon
:
''
},
{
title
:
'ติดตามหลังการประเมิน'
,
type
:
'link'
,
selected
:
false
,
active
:
false
,
path
:
'ess/post-evaluation-tracking'
,
id
:
'm4'
,
show
:
true
,
icon
:
''
},
];
}
...
...
src/assets/css/style.css
View file @
2abf8a01
...
...
@@ -7602,6 +7602,14 @@ select option:focus {
padding-top: 0.25rem;
}
.pr-1 {
padding-right: 0.25rem;
}
.pl-1 {
padding-left: 0.25rem;
}
.pt-2 {
padding-top: 0.5rem;
}
...
...
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