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
5800b432
Commit
5800b432
authored
Mar 25, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
รายละเอียดประเมินผลงานการปฏิบัติงาน
parent
2e52c698
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1004 additions
and
131 deletions
+1004
-131
pms-evalution.component.html
...ce-evaluation/pms-evaluation/pms-evalution.component.html
+210
-105
pms-evalution.component.ts
...ance-evaluation/pms-evaluation/pms-evalution.component.ts
+13
-3
self-evaluation.component.html
...evaluation/self-evaluation/self-evaluation.component.html
+30
-15
self-evaluation.component.ts
...e-evaluation/self-evaluation/self-evaluation.component.ts
+26
-6
appraisal-competency.model.ts
src/app/shared/model/appraisal-competency.model.ts
+1
-0
appraisal-pms.model.ts
src/app/shared/model/appraisal-pms.model.ts
+719
-0
appraisal.service.ts
src/app/shared/services/appraisal.service.ts
+5
-2
No files found.
src/app/components/performance-evaluation/pms-evaluation/pms-evalution.component.html
View file @
5800b432
...
@@ -28,66 +28,90 @@
...
@@ -28,66 +28,90 @@
<div
class=
"pb-1rem px-2rem"
>
<div
class=
"pb-1rem px-2rem"
>
<div
class=
"py-2 grid grid-cols-10"
>
<div
class=
"py-2 grid grid-cols-10"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ชื่อผู้รับการประเมิน(Employee)
</div>
ชื่อผู้รับการประเมิน(Employee)
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ชื่อผู้การประเมิน(Evaluator)
ชื่อผู้การประเมิน(Evaluator)
</div>
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsassessy.prefix.tdesc}}
{{appraisalPms.data.apsassessy.prefix.tdesc}}
{{appraisalPms.data.apsassessy.thFullName}}
</div>
{{appraisalPms.data.apsassessy.thFullName}}
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsapprove1.prefix.tdesc}}
{{appraisalPms.data.apsapprove1.prefix.tdesc}}
{{appraisalPms.data.apsapprove1.thFullName}}
</div>
{{appraisalPms.data.apsapprove1.thFullName}}
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
รหัส (ID)
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
รหัส
(ID)
</div>
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
รหัส (ID)
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
รหัส
(ID)
</div>
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsassessy.employeeId}}
</div>
{{appraisalPms.data.apsassessy.employeeId}}
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsapprove1.employeeId}}
</div>
{{appraisalPms.data.apsapprove1.employeeId}}
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
ตำแหน่ง
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ตำแหน่ง
(Position)
</div>
(Position)
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
ตำแหน่ง
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ตำแหน่ง
(Position)
</div>
(Position)
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsassessy.position.tdesc}}
</div>
{{appraisalPms.data.apsassessy.position.tdesc}}
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsapprove1.position.tdesc}}
</div>
{{appraisalPms.data.apsapprove1.position.tdesc}}
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
แผนก
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
แผนก
(Section)
</div>
(Section)
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
แผนก
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
แผนก
(Section)
</div>
(Section)
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsassessy.bu2.tdesc}}
</div>
{{appraisalPms.data.apsassessy.bu2.tdesc}}
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsapprove1.bu2.tdesc}}
</div>
{{appraisalPms.data.apsapprove1.bu2.tdesc}}
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
ฝ่าย
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ฝ่าย
(Department)
</div>
(Department)
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
ฝ่าย
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
ฝ่าย
(Department)
</div>
(Department)
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"py-2 grid grid-cols-1 col-span-1"
>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsassessy.bu1.tdesc}}
</div>
{{appraisalPms.data.apsassessy.bu1.tdesc}}
</div>
<div
class=
"col-span-1 text-gray-400 border"
style=
"padding-top:5px;min-height: 60px;"
>
<div
class=
"col-span-1 text-gray-400 border !white-space-normal"
style=
"padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;"
>
{{appraisalPms.data.apsapprove1.bu1.tdesc}}
</div>
{{appraisalPms.data.apsapprove1.bu1.tdesc}}
</div>
</div>
</div>
</div>
</div>
...
@@ -101,59 +125,165 @@
...
@@ -101,59 +125,165 @@
<ng-container
*
ngIf=
"appraisalPms?.data?.part7Detail?.length then part7 else noData"
></ng-container>
<ng-container
*
ngIf=
"appraisalPms?.data?.part7Detail?.length then part7 else noData"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part8"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part8"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part9"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part9"
></ng-container>
<div
class=
"pb-1rem px-2rem"
>
<!-- <div class="py-1rem px-2rem">
<div class="py-2 grid grid-cols-7 gap-3">
<div class="py-2 grid grid-cols-7 gap-3">
<div
class=
"col-span-1"
>
ผู้ประเมิน1
</div>
<div class="col-span-1">ผู้รับการประเมิน</div>
<div
class=
"col-span-1"
>
น.ส. พิมพร อูรณการ
</div>
<div class="col-span-1">
<div class="col-span-1">
<input
type=
"checkbox"
id=
"hs-basic-usage"
class=
"ti-switch"
>
{{appraisalCompentency.data.apsassessy.thFullName}}</div>
<label
for=
"hs-basic-usage"
class=
"sr-only"
>
ยืนยันผล
</label>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none "
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyStatus=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
</div>
<div class="col-span-2">
<div class="col-span-2">
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input mb-2"
></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyComment"></textarea>
<span class="pt-2">
<span class="pt-2">
วันที่ :
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyDate)}}
</span>
</span>
</div>
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-7 gap-3"
>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove1.employeeId">
<div
class=
"col-span-1"
>
ผู้ประเมิน2
</div>
<div class="col-span-1">
<div
class=
"col-span-1"
>
น.ส. นดี แป้นศรี
</div>
{{appraisalCompentency.data.apsapprove2.employeeId?'ผู้ประเมิน1':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
<div class="col-span-1">
<input
type=
"checkbox"
id=
"hs-basic-usage"
class=
"ti-switch"
>
{{appraisalCompentency.data.apsapprove1.thFullName}}</div>
<label
for=
"hs-basic-usage"
class=
"sr-only"
>
ตรวจสอบ
</label>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
</div>
<div class="col-span-2">
<div class="col-span-2">
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input mb-2"
value=
"ใส่ Comment ที่นี่"
></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
<span>
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Comment"></textarea>
<span class="pt-2">
วันที่ :
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Date)}}
</span>
</span>
</div>
</div>
</div>
</div>
<div
class=
"py-2 grid grid-cols-7 gap-3"
>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove2.employeeId">
<div
class=
"col-span-1"
>
ผู้อนุมัติ
</div>
<div class="col-span-1">
<div
class=
"col-span-1"
>
น.ส.ศรีไพ คชา
</div>
{{appraisalCompentency.data.apsapprove3.employeeId?'ผู้ประเมิน2':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove2.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove3.employeeId">
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove4.employeeId?'ผู้ประเมิน3':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove3.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove4.employeeId">
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.employeeId?'ผู้ประเมิน4':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
<div class="col-span-1">
<input
type=
"checkbox"
id=
"hs-basic-usage"
class=
"ti-switch"
>
{{appraisalCompentency.data.apsapprove4.thFullName}}</div>
<label
for=
"hs-basic-usage"
class=
"sr-only"
>
อนุมัติ
</label>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
</div>
<div class="col-span-2">
<div class="col-span-2">
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input mb-2"
value=
"ใส่ Comment ที่นี่"
></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
<span>
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Comment"></textarea>
<span class="pt-2">
วันที่ :
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove5.employeeId">
<div class="col-span-1">
ผู้อนุมัติ
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Date)}}
</span>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"flex justify-center mb-1rem pb-2rem"
>
<div class="flex justify-center mb-1rem pb-2rem" *ngIf="canSave">
<button
type=
"submit"
class=
"ti-btn ti-btn-success mx-2rem"
>
<button *ngIf="appraisalCompentency.data.checkStep!='0'&&appraisalCompentency.data.checkStep!='1'"
type="submit" class="ti-btn ti-btn-danger mx-2rem" (click)="save('noApprove')">
ไม่อนุมัติ
</button>
<button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')">
บันทึกร่าง
บันทึกร่าง
</button>
</button>
<button
type=
"submit"
class=
"ti-btn ti-btn-success mx-2rem"
>
<button type="submit" class="ti-btn ti-btn-secondary mx-2rem" (click)="save('approve')">
บันทึกข้อมูล
<ng-container *ngIf="appraisalCompentency.data.checkStep=='0'">
ยืนยันข้อมูล
</ng-container>
<ng-container *ngIf="appraisalCompentency.data.checkStep!='0'">
อนุมัติ
</ng-container>
</button>
</button>
</div>
</div>
-->
</ng-container>
</ng-container>
</ng-template>
</ng-template>
...
@@ -238,40 +368,35 @@
...
@@ -238,40 +368,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
{{item.
groupAssessment1.pmsTopic.
weight}}
{{item.weight}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part1radioA
'+
i
"
[
id
]="'
part1radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part1radioB
'+
i
"
[
id
]="'
part1radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part1radioC
'+
i
"
[
id
]="'
part1radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part1radioD
'+
i
"
[
id
]="'
part1radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part1radioE
'+
i
"
[
id
]="'
part1radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
</td>
...
@@ -281,7 +406,7 @@
...
@@ -281,7 +406,7 @@
)}}
)}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{numberFixed2(item.
groupAssessment1.pmsTopic.
weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</td>
</tr>
</tr>
...
@@ -423,40 +548,35 @@
...
@@ -423,40 +548,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
{{item.
groupAssessment1.pmsTopic.
weight}}
{{item.weight}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part2radioA
'+
i
"
[
id
]="'
part2radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part2radioB
'+
i
"
[
id
]="'
part2radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part2radioC
'+
i
"
[
id
]="'
part2radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part2radioD
'+
i
"
[
id
]="'
part2radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part2radioE
'+
i
"
[
id
]="'
part2radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
</td>
...
@@ -466,7 +586,7 @@
...
@@ -466,7 +586,7 @@
)}}
)}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{numberFixed2(item.
groupAssessment1.pmsTopic.
weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</td>
</tr>
</tr>
...
@@ -601,40 +721,35 @@
...
@@ -601,40 +721,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
{{item.
groupAssessment1.pmsTopic.
weight}}
{{item.weight}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part3radioA
'+
i
"
[
id
]="'
part3radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part3radioB
'+
i
"
[
id
]="'
part3radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part3radioC
'+
i
"
[
id
]="'
part3radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part3radioD
'+
i
"
[
id
]="'
part3radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part3radioE
'+
i
"
[
id
]="'
part3radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
</td>
...
@@ -644,7 +759,7 @@
...
@@ -644,7 +759,7 @@
)}}
)}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{numberFixed2(item.
groupAssessment1.pmsTopic.
weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</td>
</tr>
</tr>
...
@@ -1097,40 +1212,35 @@
...
@@ -1097,40 +1212,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{item.
groupAssessment1.pmsTopic.
weight}}
{{item.weight}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part6radioA
'+
i
"
[
id
]="'
part6radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part6radioB
'+
i
"
[
id
]="'
part6radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part6radioC
'+
i
"
[
id
]="'
part6radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part6radioD
'+
i
"
[
id
]="'
part6radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part6radioE
'+
i
"
[
id
]="'
part6radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
</td>
...
@@ -1140,7 +1250,7 @@
...
@@ -1140,7 +1250,7 @@
)}}
)}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{numberFixed2(item.
groupAssessment1.pmsTopic.
weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</td>
</tr>
</tr>
...
@@ -1282,40 +1392,35 @@
...
@@ -1282,40 +1392,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{item.
groupAssessment1.pmsTopic.
weight}}
{{item.weight}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part7radioA
'+
i
"
[
id
]="'
part7radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part7radioB
'+
i
"
[
id
]="'
part7radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part7radioC
'+
i
"
[
id
]="'
part7radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part7radioD
'+
i
"
[
id
]="'
part7radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<td
class=
"align-start text-center !white-space-normal "
>
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
<input
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio cursor-pointer"
[
id
]="'
part7radioE
'+
i
"
[
id
]="'
part7radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
(
click
)="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
</td>
...
@@ -1325,7 +1430,7 @@
...
@@ -1325,7 +1430,7 @@
)}}
)}}
</td>
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<td
class=
"align-start !white-space-normal text-center"
>
{{numberFixed2(item.
groupAssessment1.pmsTopic.
weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</td>
</tr>
</tr>
...
...
src/app/components/performance-evaluation/pms-evaluation/pms-evalution.component.ts
View file @
5800b432
...
@@ -114,13 +114,13 @@ export class PmsEvalutionComponent {
...
@@ -114,13 +114,13 @@ export class PmsEvalutionComponent {
calRawScore
(
data
?:
any
)
{
calRawScore
(
data
?:
any
)
{
if
(
data
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
groupAssessment1
.
pmsTopic
.
weight
*
5
,
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
weight
*
5
,
0
).
toFixed
(
2
);
}
}
return
"0.00"
return
"0.00"
}
}
calWeigth
(
data
?:
any
)
{
calWeigth
(
data
?:
any
)
{
if
(
data
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
groupAssessment1
.
pmsTopic
.
weight
,
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
weight
,
0
).
toFixed
(
2
);
}
}
return
"0.00"
return
"0.00"
}
}
...
@@ -132,7 +132,7 @@ export class PmsEvalutionComponent {
...
@@ -132,7 +132,7 @@ export class PmsEvalutionComponent {
}
}
calExpectationTotalScore
(
data
?:
any
)
{
calExpectationTotalScore
(
data
?:
any
)
{
if
(
data
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
((
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
scoreTopicExpectation
:
item
.
scoreTopicExpectationBoss
)
*
item
.
groupAssessment1
.
pmsTopic
.
weight
),
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
((
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
scoreTopicExpectation
:
item
.
scoreTopicExpectationBoss
)
*
item
.
weight
),
0
).
toFixed
(
2
);
}
}
return
"0.00"
return
"0.00"
}
}
...
@@ -216,4 +216,13 @@ export class PmsEvalutionComponent {
...
@@ -216,4 +216,13 @@ export class PmsEvalutionComponent {
}
}
return
"0.00"
return
"0.00"
}
}
setScore
(
item
:
any
,
score
:
number
)
{
if
(
this
.
evaluaterId
==
this
.
evaluateeId
)
{
item
.
scoreTopicExpectation
=
score
item
.
scoreTopicExpectationBoss
=
score
}
else
{
item
.
scoreTopicExpectationBoss
=
score
}
}
}
}
\ No newline at end of file
src/app/components/performance-evaluation/self-evaluation/self-evaluation.component.html
View file @
5800b432
...
@@ -17,9 +17,10 @@
...
@@ -17,9 +17,10 @@
<a
*
ngFor=
"let item of appraisalCompentency.dataList; let i=index ; let f= first"
<a
*
ngFor=
"let item of appraisalCompentency.dataList; let i=index ; let f= first"
class=
"border justify-center rounded-top-4px hs-tab-active:!bg-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 hover:text-gray-900"
class=
"border justify-center rounded-top-4px hs-tab-active:!bg-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 hover:text-gray-900"
[
class
.
active
]="
f
"
href=
"javascript:void(0);"
[
id
]="'
card-type-item-
'+(
i
+
1
)"
[
class
.
active
]="
f
"
href=
"javascript:void(0);"
[
id
]="'
card-type-item-
'+(
i
+
1
)"
[
class
.
ti-btn-soft-mute
]="!
item
.
statusCheckDate
"
[
attr
.
data-hs-tab
]="'#
underline-
'+(
i
+
1
)"
[
attr
.
aria-controls
]="'
underline-
'+(
i
+
1
)"
[
attr
.
data-hs-tab
]="'#
underline-
'+(
i
+
1
)"
[
attr
.
aria-controls
]="'
underline-
'+(
i
+
1
)"
(
click
)="
selectAppraisalCompentency
(
item
)"
>
(
click
)="
selectAppraisalCompentency
(
item
)"
>
รอบการประเมินที่ {{i+1}}/{{appraisalCompentency.dataList.length
}}
{{item.masfromEvaluationRound.tdesc
}}
</a>
</a>
</nav>
</nav>
</div>
</div>
...
@@ -119,7 +120,7 @@
...
@@ -119,7 +120,7 @@
{{masfromEvaluationAssessment1.masfromStatusType.tdesc}}
{{masfromEvaluationAssessment1.masfromStatusType.tdesc}}
</td>
</td>
<td
class=
"flex justify-center items-center"
>
<td
class=
"flex justify-center items-center"
>
<button
type=
"button"
class=
"ti-btn rounded-sm "
(
click
)="
selectCompentencyForm
(
masfromEvaluationAssessment1
.
competencyType
.
competencyTypeId
);
onEdit =
true
;
<button
type=
"button"
class=
"ti-btn rounded-sm "
(
click
)="
selectCompentencyForm
(
masfromEvaluationAssessment1
.
competencyType
.
competencyTypeId
);
onEdit =
'competency'
;
pathTitle =
['การประเมินผล',
'ประเมินตนเอง','ประเมินผล']"
pathTitle =
['การประเมินผล',
'ประเมินตนเอง','ประเมินผล']"
[
class
.
ti-btn-soft-secondary
]="
masfromEvaluationAssessment1
.
masfromStatusType
.
code =
=
'
employee
'"
[
class
.
ti-btn-soft-secondary
]="
masfromEvaluationAssessment1
.
masfromStatusType
.
code =
=
'
employee
'"
[
class
.
ti-btn-soft-warning
]="
masfromEvaluationAssessment1
.
masfromStatusType
.
code =
=
'
evaluating
'"
[
class
.
ti-btn-soft-warning
]="
masfromEvaluationAssessment1
.
masfromStatusType
.
code =
=
'
evaluating
'"
...
@@ -163,36 +164,42 @@
...
@@ -163,36 +164,42 @@
</td>
</td>
</tr>
</tr>
</tbody>
</tbody>
<tbody
*
ngIf=
"!appraisalPms.loading&&!appraisalPmsFilter().length"
>
<tbody
*
ngIf=
"!appraisalPms.loading&&!appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId)"
>
<tr>
<tr>
<td
class=
"text-center"
colspan=
"100%"
>
<td
class=
"text-center"
colspan=
"100%"
>
ไม่พบข้อมูล
ไม่พบข้อมูล
</td>
</td>
</tr>
</tr>
</tbody>
</tbody>
<tbody
*
ngIf=
"!appraisalPms.loading&&appraisalPmsFilter().length"
>
<tbody
<!-- <tr *ngFor="let item of appraisalPmsFilter();let i = index">
*
ngIf=
"!appraisalPms.loading&&appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId)?.data"
>
<tr>
<td
class=
"flex justify-center items-center"
>
<td
class=
"flex justify-center items-center"
>
{{
item.data.masfromEvaluationRound.e
valuationRoundId}}
{{
appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?.pmsE
valuationRoundId}}
</td>
</td>
<td>
<td>
{{
item.data.masfromEvaluationRound
.tdesc}}
{{
appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?
.tdesc}}
</td>
</td>
<td>
<td>
{{convertDate(
item.data.masfromEvaluationRound
.apsPeriodStart)}}
{{convertDate(
appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?
.apsPeriodStart)}}
</td>
</td>
<td>
<td>
{{convertDate(
item.data.masfromEvaluationRound
.apsPeriodEnd)}}
{{convertDate(
appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?
.apsPeriodEnd)}}
</td>
</td>
<td>
<td>
{{
item.data.masfromStatusType
.tdesc}}
{{
appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.masfromStatusType?
.tdesc}}
</td>
</td>
<td
class=
"flex justify-center items-center"
>
<td
class=
"flex justify-center items-center"
>
<span class="rounded-md bg-success text-white px-3 py-1 cursor-pointer">
<button
type=
"button"
class=
"ti-btn rounded-sm "
(
click
)="
selectAppraisalPms
(
appraisalPmsFilter
(
item
.
masfromEvaluationRound
.
evaluationRoundId
).
data
);
onEdit =
'pms'
;
pathTitle =
['การประเมินผล',
'ประเมินตนเอง','ประเมินผล']"
[
class
.
ti-btn-soft-secondary
]="
appraisalPmsFilter
(
item
.
masfromEvaluationRound
.
evaluationRoundId
).
data
?.
masfromStatusType
?.
code =
=
'
employee
'"
[
class
.
ti-btn-soft-warning
]="
appraisalPmsFilter
(
item
.
masfromEvaluationRound
.
evaluationRoundId
).
data
?.
masfromStatusType
?.
code =
=
'
evaluating
'"
[
class
.
ti-btn-soft-success
]="
appraisalPmsFilter
(
item
.
masfromEvaluationRound
.
evaluationRoundId
).
data
?.
masfromStatusType
?.
code =
=
'
employee_finish
'"
>
ประเมิน
ประเมิน
</
spa
n>
</
butto
n>
</td>
</td>
</tr>
-->
</tr>
</tbody>
</tbody>
</table>
</table>
</div>
</div>
...
@@ -241,10 +248,17 @@
...
@@ -241,10 +248,17 @@
<ng-container
*
ngIf=
"onEdit"
>
<ng-container
*
ngIf=
"onEdit
=='competency'
"
>
<app-evaluation
[
pathTitle
]="['การประเมินผล',
'ประเมินตนเอง','ประเมิน']"
<app-evaluation
[
pathTitle
]="['การประเมินผล',
'ประเมินตนเอง','ประเมิน']"
(
sendReturnPath
)="
getAppraisalCompentencyList
();
onEdit =
false
;
pathTitle =
['การประเมินผล',
'ประเมินตนเอง']"
(
sendReturnPath
)="
getAppraisalCompentencyList
();
getAppraisalPmsList
();
onEdit =
''
;
pathTitle =
['การประเมินผล',
'ประเมินตนเอง']"
[
evaluationRoundId
]="
appraisalCompentency
.
select
?.
masfromEvaluationRound
?.
evaluationRoundId
||
''"
[
evaluationRoundId
]="
appraisalCompentency
.
select
?.
masfromEvaluationRound
?.
evaluationRoundId
||
''"
[
evaluaterId
]="
evaluatee
.
data
.
employeeId
"
[
evaluateeId
]="
evaluatee
.
data
.
employeeId
"
[
evaluaterId
]="
evaluatee
.
data
.
employeeId
"
[
evaluateeId
]="
evaluatee
.
data
.
employeeId
"
[
competencyTypeId
]="
competencyTypeId
"
></app-evaluation>
[
competencyTypeId
]="
competencyTypeId
"
></app-evaluation>
</ng-container>
</ng-container>
<ng-container
*
ngIf=
"onEdit=='pms'"
>
<app-pms-evalution
[
pathTitle
]="['การประเมินผล',
'ประเมินตนเอง','ประเมิน']"
(
sendReturnPath
)="
getAppraisalCompentencyList
();
getAppraisalPmsList
();
onEdit=
''
;
pathTitle =
['การประเมินผล',
'ประเมินตนเอง']"
[
evaluationRoundId
]="
appraisalPms
.
select
?.
pmsMasfromEvaluationRound
?.
pmsEvaluationRoundId
||
''"
[
evaluaterId
]="
evaluatee
.
data
.
employeeId
"
[
evaluateeId
]="
evaluatee
.
data
.
employeeId
"
></app-pms-evalution>
</ng-container>
\ No newline at end of file
src/app/components/performance-evaluation/self-evaluation/self-evaluation.component.ts
View file @
5800b432
import
{
ChangeDetectorRef
,
Component
,
OnInit
,
TemplateRef
,
ViewChild
}
from
'@angular/core'
;
import
{
ChangeDetectorRef
,
Component
,
OnInit
,
TemplateRef
,
ViewChild
}
from
'@angular/core'
;
import
{
AppraisalCompentencyModel
}
from
'src/app/shared/model/appraisal-competency.model'
;
import
{
AppraisalCompentencyModel
}
from
'src/app/shared/model/appraisal-competency.model'
;
import
{
AppraisalPmsModel
}
from
'src/app/shared/model/appraisal-pms.model'
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
'src/app/shared/model/employee.model'
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
'src/app/shared/model/employee.model'
;
import
{
AppraisalService
}
from
'src/app/shared/services/appraisal.service'
;
import
{
AppraisalService
}
from
'src/app/shared/services/appraisal.service'
;
import
{
EmployeeService
}
from
'src/app/shared/services/employee.service'
;
import
{
EmployeeService
}
from
'src/app/shared/services/employee.service'
;
...
@@ -25,12 +26,12 @@ export class SelfEvaluationComponent implements OnInit {
...
@@ -25,12 +26,12 @@ export class SelfEvaluationComponent implements OnInit {
condition
:
[
"1.หากได้คะแนนสูงกว่า 80% แต่มี 3 2 หรือ 1 ด้วย ถือว่า Gap -1"
,
"2.หากได้คะแนนต่ำกว่า 80% แต่มี 4 และ 5 ให้คิด Gap ตาม %"
,
"3.คะแนนต่ำกว่า 80% แต่มี 2 และ 1 ให้คิด Gap ตาม %"
],
condition
:
[
"1.หากได้คะแนนสูงกว่า 80% แต่มี 3 2 หรือ 1 ด้วย ถือว่า Gap -1"
,
"2.หากได้คะแนนต่ำกว่า 80% แต่มี 4 และ 5 ให้คิด Gap ตาม %"
,
"3.คะแนนต่ำกว่า 80% แต่มี 2 และ 1 ให้คิด Gap ตาม %"
],
}]
}]
appraisalCompentency
:
{
loading
:
boolean
,
select
?:
AppraisalCompentencyModel
,
dataList
:
AppraisalCompentencyModel
[]
}
=
{
loading
:
false
,
select
:
undefined
,
dataList
:
[]
}
appraisalCompentency
:
{
loading
:
boolean
,
select
?:
AppraisalCompentencyModel
,
dataList
:
AppraisalCompentencyModel
[]
}
=
{
loading
:
false
,
select
:
undefined
,
dataList
:
[]
}
appraisalPms
:
{
loading
:
boolean
,
select
:
undefined
,
dataList
:
{
check
:
boolean
,
data
:
undefined
}[]
}
=
{
loading
:
false
,
select
:
undefined
,
dataList
:
[]
}
appraisalPms
:
{
loading
:
boolean
,
select
?:
AppraisalPmsModel
,
dataList
:
{
check
:
boolean
,
data
:
AppraisalPmsModel
}[]
}
=
{
loading
:
false
,
select
:
undefined
,
dataList
:
[]
}
evaluatee
:
{
loading
:
boolean
,
data
:
EmployeeModel
}
=
{
loading
:
false
,
data
:
new
MyEmployeeModel
()
}
evaluatee
:
{
loading
:
boolean
,
data
:
EmployeeModel
}
=
{
loading
:
false
,
data
:
new
MyEmployeeModel
()
}
currentDate
=
new
Date
()
currentDate
=
new
Date
()
competencyTypeId
=
""
competencyTypeId
=
""
onEdit
=
false
onEdit
=
''
constructor
(
private
appraisalService
:
AppraisalService
,
constructor
(
private
appraisalService
:
AppraisalService
,
private
employeeService
:
EmployeeService
,
private
employeeService
:
EmployeeService
,
private
cdr
:
ChangeDetectorRef
private
cdr
:
ChangeDetectorRef
...
@@ -38,6 +39,7 @@ export class SelfEvaluationComponent implements OnInit {
...
@@ -38,6 +39,7 @@ export class SelfEvaluationComponent implements OnInit {
ngOnInit
():
void
{
ngOnInit
():
void
{
this
.
getEvaluatee
()
this
.
getEvaluatee
()
this
.
getAppraisalCompentencyList
()
this
.
getAppraisalCompentencyList
()
this
.
getAppraisalPmsList
()
}
}
getEvaluatee
()
{
getEvaluatee
()
{
this
.
evaluatee
.
loading
=
true
this
.
evaluatee
.
loading
=
true
...
@@ -52,6 +54,28 @@ export class SelfEvaluationComponent implements OnInit {
...
@@ -52,6 +54,28 @@ export class SelfEvaluationComponent implements OnInit {
}
}
})
})
}
}
getAppraisalPmsList
()
{
this
.
appraisalPms
.
loading
=
true
this
.
appraisalService
.
getPmsList
().
subscribe
({
next
:
response
=>
{
this
.
appraisalPms
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
x
}))
this
.
appraisalPms
.
loading
=
false
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
this
.
appraisalPms
.
loading
=
false
this
.
cdr
.
detectChanges
()
}
})
}
appraisalPmsFilter
(
evaluationRoundId
:
string
)
{
return
this
.
appraisalPms
.
dataList
.
find
(
x
=>
x
.
data
.
pmsMasfromEvaluationRound
.
pmsEvaluationRoundId
==
evaluationRoundId
)
||
{
check
:
false
,
data
:
undefined
}
}
selectAppraisalPms
(
data
?:
AppraisalPmsModel
)
{
this
.
appraisalPms
.
select
=
JSON
.
parse
(
JSON
.
stringify
(
data
||
{}))
}
getAppraisalCompentencyList
()
{
getAppraisalCompentencyList
()
{
this
.
appraisalCompentency
.
loading
=
true
this
.
appraisalCompentency
.
loading
=
true
this
.
appraisalService
.
getCompetencyList
().
subscribe
({
this
.
appraisalService
.
getCompetencyList
().
subscribe
({
...
@@ -78,10 +102,6 @@ export class SelfEvaluationComponent implements OnInit {
...
@@ -78,10 +102,6 @@ export class SelfEvaluationComponent implements OnInit {
this
.
competencyTypeId
=
typeId
this
.
competencyTypeId
=
typeId
}
}
appraisalPmsFilter
()
{
return
this
.
appraisalPms
.
dataList
}
showTools
(
data
:
string
[])
{
showTools
(
data
:
string
[])
{
return
data
.
join
(
"/"
)
return
data
.
join
(
"/"
)
}
}
...
...
src/app/shared/model/appraisal-competency.model.ts
View file @
5800b432
...
@@ -10,6 +10,7 @@ export interface AppraisalCompentencyModel {
...
@@ -10,6 +10,7 @@ export interface AppraisalCompentencyModel {
apsapprove4
:
Apsapprove4
apsapprove4
:
Apsapprove4
apsapprove5
:
Apsapprove5
apsapprove5
:
Apsapprove5
masfromEvaluationAssessment1
:
MasfromEvaluationAssessment1
[]
masfromEvaluationAssessment1
:
MasfromEvaluationAssessment1
[]
statusCheckDate
:
boolean
}
}
export
interface
PersonalLevel
{
export
interface
PersonalLevel
{
...
...
src/app/shared/model/appraisal-pms.model.ts
0 → 100644
View file @
5800b432
export
interface
AppraisalPmsModel
{
personalLevel
:
PersonalLevel
pmsMasfromEvaluationRound
:
PmsMasfromEvaluationRound
companyId
:
string
active
:
boolean
statusEmp
:
boolean
fromDetail
:
string
apsassessy
:
Apsassessy
apsapprove1
:
Apsapprove1
apsapprove2
:
Apsapprove2
apsapprove3
:
Apsapprove3
apsapprove4
:
Apsapprove4
apsapprove5
:
Apsapprove5
apsassessyStatus
:
string
apsapprove1Status
:
string
apsapprove2Status
:
string
apsapprove3Status
:
string
apsapprove4Status
:
string
apsapprove5Status
:
string
apsassessyScore
:
number
apsapprove1Score
:
number
apsapprove2Score
:
number
apsapprove3Score
:
number
apsapprove4Score
:
number
apsapprove5Score
:
number
masfromStatusType
:
MasfromStatusType
currentStep
:
string
lastStep
:
string
checkStep
:
string
}
export
interface
PersonalLevel
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
PmsMasfromEvaluationRound
{
pmsEvaluationRoundId
:
string
companyId
:
string
tdesc
:
string
edesc
:
string
apsyear
:
string
apsPeriodStart
:
string
apsPeriodEnd
:
string
jlId
:
string
personalLevel
:
PersonalLevel2
[]
active
:
number
statusFrom
:
StatusFrom
statusCode
:
StatusCode
}
export
interface
PersonalLevel2
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
StatusFrom
{
code
:
string
tdesc
:
string
edesc
:
string
}
export
interface
StatusCode
{
code
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Apsassessy
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu1
bu2
:
Bu2
bu3
:
Bu3
bu4
:
Bu4
bu5
:
Bu5
position
:
Position
job
:
Job
pl
:
Pl
status
:
Status
time0
:
Time0
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu1
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu2
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu3
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu4
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu5
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time0
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
Apsapprove1
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix2
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu12
bu2
:
Bu22
bu3
:
Bu32
bu4
:
Bu42
bu5
:
Bu52
position
:
Position2
job
:
Job2
pl
:
Pl2
status
:
Status2
time0
:
Time02
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix2
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu12
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu22
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu32
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu42
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu52
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position2
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job2
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl2
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status2
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time02
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
Apsapprove2
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix3
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu13
bu2
:
Bu23
bu3
:
Bu33
bu4
:
Bu43
bu5
:
Bu53
position
:
Position3
job
:
Job3
pl
:
Pl3
status
:
Status3
time0
:
Time03
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix3
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu13
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu23
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu33
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu43
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu53
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position3
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job3
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl3
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status3
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time03
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
Apsapprove3
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix4
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu14
bu2
:
Bu24
bu3
:
Bu34
bu4
:
Bu44
bu5
:
Bu54
position
:
Position4
job
:
Job4
pl
:
Pl4
status
:
Status4
time0
:
Time04
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix4
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu14
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu24
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu34
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu44
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu54
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position4
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job4
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl4
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status4
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time04
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
Apsapprove4
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix5
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu15
bu2
:
Bu25
bu3
:
Bu35
bu4
:
Bu45
bu5
:
Bu55
position
:
Position5
job
:
Job5
pl
:
Pl5
status
:
Status5
time0
:
Time05
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix5
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu15
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu25
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu35
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu45
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu55
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position5
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job5
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl5
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status5
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time05
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
Apsapprove5
{
employeeId
:
string
bossId
:
string
prefix
:
Prefix6
fname
:
string
lname
:
string
efname
:
string
elname
:
string
bu1
:
Bu16
bu2
:
Bu26
bu3
:
Bu36
bu4
:
Bu46
bu5
:
Bu56
position
:
Position6
job
:
Job6
pl
:
Pl6
status
:
Status6
time0
:
Time06
resignDate
:
string
endWorkDate
:
string
startDate
:
string
thFullName
:
string
engFullName
:
string
}
export
interface
Prefix6
{
prefixId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Bu16
{
bu1id
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Bu26
{
bu2id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu36
{
bu3id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu46
{
bu4id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Bu56
{
bu5id
:
string
tdesc
:
string
edesc
:
string
parent
:
string
companyId
:
string
}
export
interface
Position6
{
positionId
:
string
tdesc
:
string
edesc
:
string
consolidate
:
string
shortName
:
string
companyId
:
string
}
export
interface
Job6
{
jobCodeId
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Pl6
{
plId
:
string
tdesc
:
string
edesc
:
string
companyId
:
string
}
export
interface
Status6
{
statusCode
:
string
statusType
:
string
tdesc
:
string
edesc
:
string
}
export
interface
Time06
{
time0id
:
string
tdesc
:
string
edesc
:
string
stickTm
:
string
hourD
:
number
}
export
interface
MasfromStatusType
{
code
:
string
tdesc
:
string
edesc
:
string
}
src/app/shared/services/appraisal.service.ts
View file @
5800b432
import
{
HttpClient
,
HttpHeaders
}
from
'@angular/common/http'
;
import
{
HttpClient
}
from
'@angular/common/http'
;
import
{
Injectable
}
from
'@angular/core'
;
import
{
Injectable
}
from
'@angular/core'
;
import
{
Observable
}
from
'rxjs'
;
import
{
Observable
}
from
'rxjs'
;
import
{
environment
}
from
'src/environments/environment'
;
import
{
environment
}
from
'src/environments/environment'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
AppraisalFormModel
}
from
'../model/appraisal-form.model'
;
import
{
AppraisalCompentencyModel
,
AppraisalCompentencyModel2
}
from
'../model/appraisal-competency.model'
;
import
{
AppraisalCompentencyModel
,
AppraisalCompentencyModel2
}
from
'../model/appraisal-competency.model'
;
import
{
AppraisalSubordinateModel
}
from
'../model/appraisal-subordinate.model'
;
import
{
AppraisalSubordinateModel
}
from
'../model/appraisal-subordinate.model'
;
import
{
AppraisalPmsFormModel
}
from
'../model/appraisal-pms-form.model'
;
import
{
AppraisalPmsFormModel
}
from
'../model/appraisal-pms-form.model'
;
import
{
AppraisalPmsModel
}
from
'../model/appraisal-pms.model'
;
@
Injectable
({
@
Injectable
({
providedIn
:
'root'
providedIn
:
'root'
})
})
...
@@ -28,6 +28,9 @@ export class AppraisalService {
...
@@ -28,6 +28,9 @@ export class AppraisalService {
return
this
.
http
.
get
<
AppraisalSubordinateModel
[]
>
(
this
.
urlApi
+
"/boss/emp"
)
return
this
.
http
.
get
<
AppraisalSubordinateModel
[]
>
(
this
.
urlApi
+
"/boss/emp"
)
}
}
getPmsList
():
Observable
<
AppraisalPmsModel
[]
>
{
return
this
.
http
.
get
<
AppraisalPmsModel
[]
>
(
this
.
urlApi
+
"/pms/emp"
)
}
getFormPmsById
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
AppraisalPmsFormModel
>
{
getFormPmsById
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
AppraisalPmsFormModel
>
{
return
this
.
http
.
get
<
AppraisalPmsFormModel
>
(
this
.
urlApi
+
"/pms/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
return
this
.
http
.
get
<
AppraisalPmsFormModel
>
(
this
.
urlApi
+
"/pms/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
}
...
...
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