Commit 31dc0ed4 by Nattana Chaiyamat

ประเมินตนเอง

parent f23f1e12
...@@ -71,35 +71,65 @@ ...@@ -71,35 +71,65 @@
</a> </a>
</div> </div>
</th> </th>
<th scope="col" <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
[ngStyle]="{'width': (evaluaterId!=evaluateeId||currentStep != '0') ?'325px' :'500px;'}"> <th scope="col" style="width:500px">
ระดับความสามารถ ระดับความสามารถ
<div class="hs-tooltip ti-main-tooltip [--trigger:hover]"> <div class="hs-tooltip ti-main-tooltip [--trigger:hover]">
<a class="hs-tooltip-toggle ti-main-tooltip-toggle" href="javascript:;"> <a class="hs-tooltip-toggle ti-main-tooltip-toggle" href="javascript:;">
<i class="ti ti-help-circle"></i> <i class="ti ti-help-circle"></i>
<div class="hs-tooltip-content ti-main-tooltip-content border-secondary" role="tooltip"> <div class="hs-tooltip-content ti-main-tooltip-content border-secondary" role="tooltip">
<div class="flex flex-col"> <div class="flex flex-col">
<div>ระดับความสามารถ (Target Degree)</div> <div>ระดับความสามารถ (Target Degree)</div>
<div class="text-start"> <div class="text-start">
ระดับ 1 = ไม่มีความรู้พื้นฐานเลย ขาดทักษะในงาน</div> ระดับ 1 = ไม่มีความรู้พื้นฐานเลย ขาดทักษะในงาน</div>
<div class="text-start"> <div class="text-start">
ระดับ 2 = มีความรู้ในงานบ้างแต่ยังไม่สามารถ ประยุกต์ใช้ในงานได้ ระดับ 2 = มีความรู้ในงานบ้างแต่ยังไม่สามารถ ประยุกต์ใช้ในงานได้
</div> </div>
<div class="text-start"> <div class="text-start">
ระดับ 3 = นำความรู้มาประยุกต์ใช้ในงานได้ ปฏิบัติงานเองได้ด้วยตัวเองแก้ไขปัญหาหน้างานได้ ระดับ 3 = นำความรู้มาประยุกต์ใช้ในงานได้ ปฏิบัติงานเองได้ด้วยตัวเองแก้ไขปัญหาหน้างานได้
</div>
<div class="text-start">
ระดับ 4 = สอนผู้อื่นได้ มีความคล่องตัว เชื่อมโยง ความรู้ในงานได้
</div>
<div class="text-start">
ระดับ 5 = มีความชำนาญ เชี่ยวชาญ เป็นที่ยอมรับ ในองค์กร
</div>
</div> </div>
<div class="text-start"> </div>
ระดับ 4 = สอนผู้อื่นได้ มีความคล่องตัว เชื่อมโยง ความรู้ในงานได้ </a>
</div> </div>
<div class="text-start"> </th>
ระดับ 5 = มีความชำนาญ เชี่ยวชาญ เป็นที่ยอมรับ ในองค์กร </ng-container>
<ng-container *ngIf="evaluaterId!=evaluateeId||complete">
<th scope="col" style="width:325px">
ระดับความสามารถ
<div class="hs-tooltip ti-main-tooltip [--trigger:hover]">
<a class="hs-tooltip-toggle ti-main-tooltip-toggle" href="javascript:;">
<i class="ti ti-help-circle"></i>
<div class="hs-tooltip-content ti-main-tooltip-content border-secondary" role="tooltip">
<div class="flex flex-col">
<div>ระดับความสามารถ (Target Degree)</div>
<div class="text-start">
ระดับ 1 = ไม่มีความรู้พื้นฐานเลย ขาดทักษะในงาน</div>
<div class="text-start">
ระดับ 2 = มีความรู้ในงานบ้างแต่ยังไม่สามารถ ประยุกต์ใช้ในงานได้
</div>
<div class="text-start">
ระดับ 3 = นำความรู้มาประยุกต์ใช้ในงานได้ ปฏิบัติงานเองได้ด้วยตัวเองแก้ไขปัญหาหน้างานได้
</div>
<div class="text-start">
ระดับ 4 = สอนผู้อื่นได้ มีความคล่องตัว เชื่อมโยง ความรู้ในงานได้
</div>
<div class="text-start">
ระดับ 5 = มีความชำนาญ เชี่ยวชาญ เป็นที่ยอมรับ ในองค์กร
</div>
</div> </div>
</div> </div>
</div> </a>
</a> </div>
</div> </th>
</th> <th scope="col">ประเมินตนเอง</th>
<th scope="col" *ngIf="evaluaterId!=evaluateeId||currentStep != '0'">คะแนนลูกน้อง</th> </ng-container>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -114,7 +144,7 @@ ...@@ -114,7 +144,7 @@
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
<div class="flex flex-row justify-center gap-2 mb-2"> <div class="flex flex-row justify-center gap-2 mb-2">
<ng-container *ngFor="let item of [5,4,3,2,1];let f = first"> <ng-container *ngFor="let item of [5,4,3,2,1];let f = first">
<ng-container *ngIf="evaluaterId!=evaluateeId||currentStep != '0'"> <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
<button type="button" <button type="button"
class="h-12 w-12 p-0 shadow border text-soft-secondary-no-hover bg-white" class="h-12 w-12 p-0 shadow border text-soft-secondary-no-hover bg-white"
style="border-radius:10px" style="border-radius:10px"
...@@ -128,7 +158,7 @@ ...@@ -128,7 +158,7 @@
{{item}} {{item}}
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="!(evaluaterId!=evaluateeId||currentStep != '0')"> <ng-container *ngIf="evaluaterId!=evaluateeId&&!complete">
<button type="button" <button type="button"
class="h-12 w-12 p-0 shadow border text-soft-secondary-no-hover bg-white" class="h-12 w-12 p-0 shadow border text-soft-secondary-no-hover bg-white"
style="border-radius:10px" style="border-radius:10px"
...@@ -154,10 +184,11 @@ ...@@ -154,10 +184,11 @@
</span> </span>
</div> </div>
</td> </td>
<td class="py-2 text-center text-indigo-600 font-semibold" style="vertical-align: top" <ng-container *ngIf="evaluaterId!=evaluateeId&&!complete">
*ngIf="evaluaterId!=evaluateeId||currentStep != '0'"> <td class="py-2 text-center text-indigo-600 font-semibold" style="vertical-align: top">
{{bi.competencyBehavioral.scoreTopicExpectationEmp}} {{bi.competencyBehavioral.scoreTopicExpectationEmp}}
</td> </td>
</ng-container>
</tr> </tr>
</ng-container> </ng-container>
</tbody> </tbody>
......
...@@ -13,6 +13,7 @@ import Swal from 'sweetalert2'; ...@@ -13,6 +13,7 @@ import Swal from 'sweetalert2';
styleUrls: ['./pms-competency.component.scss'] styleUrls: ['./pms-competency.component.scss']
}) })
export class PmsCompetencyComponent { export class PmsCompetencyComponent {
@Input() complete = false
@Input() fCurrentPart = "" @Input() fCurrentPart = ""
currentPart = "" currentPart = ""
@Input() canSave = false @Input() canSave = false
......
...@@ -72,7 +72,7 @@ export class PmsFormEmployeeComponent { ...@@ -72,7 +72,7 @@ export class PmsFormEmployeeComponent {
hasPushedState = false; hasPushedState = false;
companyId = "" companyId = ""
complete = false
@ViewChild('scrollContainer') scrollContainer!: ElementRef; @ViewChild('scrollContainer') scrollContainer!: ElementRef;
...@@ -323,6 +323,7 @@ export class PmsFormEmployeeComponent { ...@@ -323,6 +323,7 @@ export class PmsFormEmployeeComponent {
selectDataList(data: CompetencyModel) { selectDataList(data: CompetencyModel) {
this.compentency.originalData = this.deepClone(data) this.compentency.originalData = this.deepClone(data)
this.compentency.data = this.deepClone(data) this.compentency.data = this.deepClone(data)
this.complete = this.compentency.data?.statusAll == 'complete'
this.cdr.detectChanges() this.cdr.detectChanges()
if (this.compentency.data) { if (this.compentency.data) {
this.currentTap = this.firstCurrentTap || "ข้อมูลการประเมิน" this.currentTap = this.firstCurrentTap || "ข้อมูลการประเมิน"
......
...@@ -316,7 +316,7 @@ ...@@ -316,7 +316,7 @@
จาก&nbsp; จาก&nbsp;
</ng-container> </ng-container>
<ng-container <ng-container
*ngIf="data.idpDevelopmentPlan&&data.idpDevelopmentPlan?.training && appraisalIdp.masfromEvaluationIdp.idpStatus=='1'"> *ngIf="data.idpDevelopmentPlan&&data.idpDevelopmentPlan?.training && appraisalIdp.apsapprove1.employeeId == evaluaterId">
<input type="date" id="input-label" class="ti-form-input" <input type="date" id="input-label" class="ti-form-input"
[(ngModel)]="appraisalIdp.masfromEvaluationRound.apsPeriodStart"> [(ngModel)]="appraisalIdp.masfromEvaluationRound.apsPeriodStart">
<ng-container <ng-container
...@@ -327,7 +327,7 @@ ...@@ -327,7 +327,7 @@
[(ngModel)]="appraisalIdp.masfromEvaluationRound.apsPeriodEnd"> [(ngModel)]="appraisalIdp.masfromEvaluationRound.apsPeriodEnd">
</ng-container> </ng-container>
<ng-container <ng-container
*ngIf="!(data.idpDevelopmentPlan&&data.idpDevelopmentPlan?.training) || appraisalIdp.masfromEvaluationIdp.idpStatus!='1'"> *ngIf="!(data.idpDevelopmentPlan&&data.idpDevelopmentPlan?.training) || appraisalIdp.apsapprove1.employeeId != evaluaterId">
{{convertDateFormat(appraisalIdp.masfromEvaluationRound.apsPeriodStart)}} {{convertDateFormat(appraisalIdp.masfromEvaluationRound.apsPeriodStart)}}
<ng-container <ng-container
*ngIf="appraisalIdp.masfromEvaluationRound.apsPeriodStart &&appraisalIdp.masfromEvaluationRound.apsPeriodEnd"> *ngIf="appraisalIdp.masfromEvaluationRound.apsPeriodStart &&appraisalIdp.masfromEvaluationRound.apsPeriodEnd">
......
...@@ -19,6 +19,7 @@ interface table { ...@@ -19,6 +19,7 @@ interface table {
styleUrls: ['./pms-idp.component.scss'] styleUrls: ['./pms-idp.component.scss']
}) })
export class PmsIdpComponent { export class PmsIdpComponent {
@Input() complete = false
@Input() canSave = false @Input() canSave = false
@Input() pathTitle: string[] = [] @Input() pathTitle: string[] = []
@Input() evaluationRoundId = "" @Input() evaluationRoundId = ""
...@@ -57,7 +58,7 @@ export class PmsIdpComponent { ...@@ -57,7 +58,7 @@ export class PmsIdpComponent {
this.getCompetencycourseMiniList() this.getCompetencycourseMiniList()
} }
ngOnChanges(changes: SimpleChanges): void { ngOnChanges(changes: SimpleChanges): void {
if (changes['currentTap']?.currentValue||changes['appraisalIdp']?.currentValue) { if (changes['currentTap']?.currentValue || changes['appraisalIdp']?.currentValue) {
this.getFormIdp() this.getFormIdp()
} }
} }
......
...@@ -13,11 +13,17 @@ ...@@ -13,11 +13,17 @@
<th scope="col">แบบการประเมิน</th> <th scope="col">แบบการประเมิน</th>
<th scope="col text-center">วันที่เริ่มต้น</th> <th scope="col text-center">วันที่เริ่มต้น</th>
<th scope="col text-center">วันที่สิ้นสุด</th> <th scope="col text-center">วันที่สิ้นสุด</th>
<th scope="col text-center" *ngIf="evaluaterId!=evaluateeId||currentStep != '0'">คะแนนเฉลี่ยลูกน้อง <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
</th> <th scope="col text-center">คะแนนเฉลี่ย</th>
<th scope="col text-center">คะแนนเฉลี่ย</th> <th scope="col text-center">ผล GAP</th>
<th scope="col text-center" *ngIf="evaluaterId!=evaluateeId||currentStep != '0'">ผล GAP ลูกน้อง</th> </ng-container>
<th scope="col text-center">ผล GAP</th> <ng-container *ngIf="evaluaterId!=evaluateeId||complete">
<th scope="col text-center">คะแนนเฉลี่ยตนเอง
</th>
<th scope="col text-center">คะแนนเฉลี่ย</th>
<th scope="col text-center">ผล GAP ตนเอง</th>
<th scope="col text-center">ผล GAP</th>
</ng-container>
<th scope="col text-center">การจัดการ</th> <th scope="col text-center">การจัดการ</th>
</tr> </tr>
</thead> </thead>
...@@ -36,21 +42,30 @@ ...@@ -36,21 +42,30 @@
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
{{formatThaiDate(item.masfromEvaluationRound.apsPeriodEnd)}} {{formatThaiDate(item.masfromEvaluationRound.apsPeriodEnd)}}
</td> </td>
<td class="py-2 text-center" style="vertical-align: top" <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
*ngIf="evaluaterId!=evaluateeId||currentStep != '0'"> <td class="py-2 text-center" style="vertical-align: top">
{{inforWeightEmp.get(item.comType)!=='undefined' && inforWeightEmp.get(item.comType) {{inforWeightEmp.get(item.comType)!=='undefined' && inforWeightEmp.get(item.comType)
!=='null'?inforWeightEmp.get(item.comType): '0'}} !=='null'?inforWeightEmp.get(item.comType): '0'}}
</td> </td>
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
{{inforWeight.get(item.comType) !=='null'?inforWeight.get(item.comType): '0'}} {{inforGapEmp.get(item.comType)!=='null'?inforGapEmp.get(item.comType): ''}}
</td> </td>
<td class="py-2 text-center" style="vertical-align: top" </ng-container>
*ngIf="evaluaterId!=evaluateeId||currentStep != '0'"> <ng-container *ngIf="evaluaterId!=evaluateeId||complete">
{{inforGapEmp.get(item.comType)!=='null'?inforGapEmp.get(item.comType): ''}} <td class="py-2 text-center" style="vertical-align: top">
</td> {{inforWeightEmp.get(item.comType)!=='undefined' && inforWeightEmp.get(item.comType)
<td class="py-2 text-center" style="vertical-align: top"> !=='null'?inforWeightEmp.get(item.comType): '0'}}
{{inforGap.get(item.comType)!=='null'?inforGap.get(item.comType): ''}} </td>
</td> <td class="py-2 text-center" style="vertical-align: top">
{{inforWeight.get(item.comType) !=='null'?inforWeight.get(item.comType): '0'}}
</td>
<td class="py-2 text-center" style="vertical-align: top">
{{inforGapEmp.get(item.comType)!=='null'?inforGapEmp.get(item.comType): ''}}
</td>
<td class="py-2 text-center" style="vertical-align: top">
{{inforGap.get(item.comType)!=='null'?inforGap.get(item.comType): ''}}
</td>
</ng-container>
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
<div class="flex justify-center"> <div class="flex justify-center">
<button type="button" class="ti-btn rounded-sm" [class]="statusButtonClass(statusType)" <button type="button" class="ti-btn rounded-sm" [class]="statusButtonClass(statusType)"
...@@ -79,8 +94,13 @@ ...@@ -79,8 +94,13 @@
<th scope="col">แบบการประเมิน</th> <th scope="col">แบบการประเมิน</th>
<th scope="col text-center">วันที่เริ่มต้น</th> <th scope="col text-center">วันที่เริ่มต้น</th>
<th scope="col text-center">วันที่สิ้นสุด</th> <th scope="col text-center">วันที่สิ้นสุด</th>
<th scope="col text-center">ผลการประเมินลูกน้อง</th> <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
<th scope="col text-center">ผลการประเมิน</th> <th scope="col text-center">ผลการประเมิน</th>
</ng-container>
<ng-container *ngIf="evaluaterId!=evaluateeId||complete">
<th scope="col text-center">ผลการประเมินตนเอง</th>
<th scope="col text-center">ผลการประเมิน</th>
</ng-container>
<th scope="col text-center">เกรด</th> <th scope="col text-center">เกรด</th>
<th scope="col text-center">การจัดการ</th> <th scope="col text-center">การจัดการ</th>
</tr> </tr>
...@@ -98,13 +118,19 @@ ...@@ -98,13 +118,19 @@
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
{{formatThaiDate(appraisalPms.pmsMasfromEvaluationRoundModel.apsPeriodEnd)}} {{formatThaiDate(appraisalPms.pmsMasfromEvaluationRoundModel.apsPeriodEnd)}}
</td> </td>
<td *ngIf="evaluaterId!=evaluateeId||currentStep != '0'" class="py-2 text-center" <ng-container *ngIf="evaluaterId==evaluateeId&&!complete">
style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
{{kpiScoreEmp}} {{kpiScoreEmp}}
</td> </td>
<td class="py-2 text-center" style="vertical-align: top"> </ng-container>
{{kpiScore}} <ng-container *ngIf="evaluaterId!=evaluateeId||complete">
</td> <td class="py-2 text-center" style="vertical-align: top">
{{kpiScoreEmp}}
</td>
<td class="py-2 text-center" style="vertical-align: top">
{{kpiScore}}
</td>
</ng-container>
<td class="py-2 text-center" style="vertical-align: top"> <td class="py-2 text-center" style="vertical-align: top">
{{kpiGrade}} {{kpiGrade}}
</td> </td>
......
...@@ -8,6 +8,7 @@ import { Competency, Pms } from 'src/app/shared/model/competency.model'; ...@@ -8,6 +8,7 @@ import { Competency, Pms } from 'src/app/shared/model/competency.model';
}) })
export class PmsInformationComponent { export class PmsInformationComponent {
@Input() canSave = false @Input() canSave = false
@Input() complete = false
@Input() statusType = '' @Input() statusType = ''
@Input() inforWeight: Map<string, string> = new Map<string, string>() @Input() inforWeight: Map<string, string> = new Map<string, string>()
@Input() inforGap: Map<string, string> = new Map<string, string>() @Input() inforGap: Map<string, string> = new Map<string, string>()
......
...@@ -29,6 +29,7 @@ export interface LevelStarModel { ...@@ -29,6 +29,7 @@ export interface LevelStarModel {
styleUrls: ['./pms-kpi.component.scss'] styleUrls: ['./pms-kpi.component.scss']
}) })
export class PmsKpiComponent { export class PmsKpiComponent {
@Input() complete = false
@Input() canSave = false @Input() canSave = false
@Input() inforWeight: Map<string, string> = new Map<string, string>() @Input() inforWeight: Map<string, string> = new Map<string, string>()
data8List: Part8Model[] = [{ data8List: Part8Model[] = [{
......
...@@ -2,7 +2,7 @@ export interface CompetencyModel { ...@@ -2,7 +2,7 @@ export interface CompetencyModel {
competency: Competency[] competency: Competency[]
idp: Idp idp: Idp
pms: Pms pms: Pms
statusAll: StatusAll statusAll: string
evaluationRoundId: string evaluationRoundId: string
tdesc: string tdesc: string
edesc: string edesc: string
...@@ -3872,9 +3872,3 @@ export interface StatusFrom3 { ...@@ -3872,9 +3872,3 @@ export interface StatusFrom3 {
edesc: string edesc: string
tdesc: string tdesc: string
} }
export interface StatusAll {
additionalProp1: string
additionalProp2: string
additionalProp3: string
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment