Commit a34a2e3d by Nattana Chaiyamat

การประเมินสมรรถนะ

การตั้งค่า
กำหนดค่าระบบประเมินสมรรถนะ
parent 981c7251
......@@ -2,7 +2,9 @@
<div class="flex justify-end">
<div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-success h-10 m-0 shadow-md"
data-hs-overlay="#competency-configuration-alert-modal">
data-hs-overlay="#competency-configuration-alert-modal"
[class.ti-btn-disabled]="!setting.data.apsyear||checkEmpty(setting.data.expectationLevel)||!setting.data.settingGroupAssessment"
[disabled]="!setting.data.apsyear||checkEmpty(setting.data.expectationLevel)||!setting.data.settingGroupAssessment">
<i class="ri-save-3-line"></i>
Save
</button>
......
......@@ -57,5 +57,18 @@ export class CompetencyConfigurationComponent {
})
}
checkEmpty(data?: string | number) {
switch (typeof data) {
case ('number'): {
return data == null || data == undefined
}
case ('string'): {
return data == "" || data == null || data == undefined
}
default: {
return true
}
}
}
}
......@@ -102,10 +102,10 @@
<tr
*ngFor="let masfromEvaluationAssessment1 of appraisalCompentencyFilter(i);let i = index">
<td class="flex justify-center items-center">
<!-- {{masfromEvaluationAssessment1.competencyType.shortName}} -->
{{masfromEvaluationAssessment1.competencyType.shortName}}
</td>
<td>
<!-- {{masfromEvaluationAssessment1.competencyType.tdesc}} -->
{{masfromEvaluationAssessment1.competencyType.tdesc}}
</td>
<td *ngIf="appraisalCompentency.select">
{{convertDate(appraisalCompentency.select.masfromEvaluationRound.apsPeriodStart)}}
......@@ -114,7 +114,7 @@
{{convertDate(appraisalCompentency.select.masfromEvaluationRound.apsPeriodEnd)}}
</td>
<td>
<!-- {{masfromEvaluationAssessment1.masfromStatusType.tdesc}} -->
{{masfromEvaluationAssessment1.masfromStatusType.tdesc}}
</td>
<td class="flex justify-center items-center">
<span class="rounded-md bg-success text-white px-3 py-1 cursor-pointer"
......@@ -292,11 +292,11 @@
</tr>
</tbody>
<tbody *ngIf="!appraisalCompentency2.loading&&appraisalCompentency2Filter().length">
<ng-container *ngFor="let appraisalCompentency2 of appraisalCompentency2Filter();let i = index">
<tr *ngFor="let bi of appraisalCompentency2.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList;let i2 = index;let f = first"
(mouseenter)="hoveredCode = appraisalCompentency2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId"
<ng-container *ngFor="let item2 of appraisalCompentency2Filter();let i = index">
<tr *ngFor="let bi of item2.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList;let i2 = index;let f = first"
(mouseenter)="hoveredCode = item2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId"
(mouseleave)="hoveredCode = null"
[ngClass]="{ 'table-hover2': appraisalCompentency2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId === hoveredCode ,'border-none':!f }">
[ngClass]="{ 'table-hover2': item2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId === hoveredCode ,'border-none':!f }">
<td class="align-start text-center">
<ng-container *ngIf="f">
{{i+1}}
......@@ -304,12 +304,12 @@
</td>
<td class="align-start text-center">
<ng-container *ngIf="f">
{{appraisalCompentency2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competencyTopicId}}
{{item2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competencyTopicId}}
</ng-container>
</td>
<td class="align-start !white-space-normal">
<ng-container *ngIf="f">
{{appraisalCompentency2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.tdesc}}
{{item2.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.tdesc}}
</ng-container>
</td>
<td class="align-start !white-space-normal">
......@@ -321,6 +321,7 @@
<td class="align-center text-center" *ngFor="let value of [5,4,3,2,1]; let i3=index">
<input type="radio" [name]="'radio'+i+''+i2" class="ti-form-radio cursor-pointer"
[id]="'radio'+i+''+i2+''+i3" [value]="value"
[disabled]="!employee.evaluate"
[(ngModel)]="bi.competencyBehavioral.scoreTopicExpectation"
(ngModelChange)="calnumberCheck()">
</td>
......@@ -455,13 +456,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsassessyStatus=='1'">
[checked]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsassessyStatus=='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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='0'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='0'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='0'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='0'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsassessyComment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -478,13 +479,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove1Status=='1'">
[checked]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove1Status=='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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='1'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='1'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='1'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='1'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove1Comment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -501,13 +502,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove2Status=='1'">
[checked]="appraisalCompentency2.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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='2'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='2'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='2'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='2'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove2Comment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -524,13 +525,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove3Status=='1'">
[checked]="appraisalCompentency2.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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='3'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='3'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='3'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='3'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove3Comment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -547,13 +548,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove4Status=='1'">
[checked]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove4Status=='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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='4'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='4'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='4'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='4'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove4Comment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -570,13 +571,13 @@
<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]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove5Status=='1'">
[checked]="appraisalCompentency2.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]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='5'"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='5'"
[class.!bg-input-readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='5'||!employee.evaluate"
[readonly]="!appraisalCompentency2.data||appraisalCompentency2.data.currentStep!='5'||!employee.evaluate"
[(ngModel)]="appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove5Comment"></textarea>
<span class="pt-2">
วันที่ :
......@@ -586,7 +587,7 @@
</div>
</div>
<div class="flex justify-center mb-1rem pb-2rem">
<div class="flex justify-center mb-1rem pb-2rem" *ngIf="employee.evaluate">
<button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="saveDraft()">
บันทึกร่าง
</button>
......
......@@ -38,8 +38,7 @@ export class SelfEvaluationComponent implements OnInit {
appraisalCompentency: { loading: boolean, select?: AppraisalCompentencyModel, dataList: AppraisalCompentencyModel[] } = { loading: false, select: undefined, dataList: [] }
appraisalCompentency2: { loading: boolean, data?: AppraisalCompentencyModel2 } = { loading: false, data: undefined }
appraisalPms: { loading: boolean, select: undefined, dataList: { check: boolean, data: undefined }[] } = { loading: false, select: undefined, dataList: [] }
employee: { loading: boolean, data: EmployeeModel } = { loading: false, data: new MyEmployeeModel() }
employeeEvaluate: { loading: boolean, data: EmployeeModel, evaluate: boolean } = { loading: false, data: new MyEmployeeModel(), evaluate: false }
employee: { loading: boolean, data: EmployeeModel, evaluate: boolean } = { loading: false, data: new MyEmployeeModel(), evaluate: false }
setting: { loading: boolean, data: SettingAssessmentModel } = { loading: false, data: new MySettingAssessmentModel() }
currentDate = new Date()
constructor(private appraisalService: AppraisalService,
......@@ -78,19 +77,6 @@ export class SelfEvaluationComponent implements OnInit {
}
})
}
getWorkingLogin() {
this.employeeEvaluate.loading = true
this.employeeService.getWorking().subscribe({
next: response => {
this.employeeEvaluate.data = new MyEmployeeModel(response)
this.employeeEvaluate.loading = false
this.cdr.detectChanges()
}, error: error => {
this.employeeEvaluate.loading = false
this.cdr.detectChanges()
}
})
}
getWorking() {
this.employee.loading = true
this.employeeService.getWorkingById(this.employeeId).subscribe({
......@@ -136,36 +122,37 @@ export class SelfEvaluationComponent implements OnInit {
switch (this.appraisalCompentency2.data?.currentStep) {
case ("0"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsassessyDate = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsassessy.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsassessy.employeeId
break
}
case ("1"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove1Date = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsapprove1.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove1.employeeId
break
}
case ("2"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove2Date = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsapprove2.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove2.employeeId
break
}
case ("3"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove3Date = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsapprove3.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove3.employeeId
break
}
case ("4"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove4Date = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsapprove4.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove4.employeeId
break
}
case ("5"): {
this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove5Date = this.currentDate.toISOString().split('T')[0];
this.employeeEvaluate.evaluate = this.employeeEvaluate.data.employeeId == this.appraisalCompentency2.data.apsapprove5.employeeId
this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove5.employeeId
break
}
default: { return }
}
console.log(" 🐒 this.employee.evaluate:", this.employee.evaluate)
}
this.calnumberCheck()
this.appraisalCompentency2.loading = false
......@@ -417,24 +404,28 @@ export class SelfEvaluationComponent implements OnInit {
}
this.appraisalService.postCompetency(body).subscribe({
next: response => {
if (response.success) {
Swal.fire({
title: 'บันทึกสำเร็จ!',
text: 'การประเมินของคุณถูกบันทึกแล้ว',
icon: 'success',
customClass: {
confirmButton: '!swal2-button-bg-green',
}
});
} else {
Swal.fire({
title: 'ยกเลิก!',
text: 'การบันทึกถูกยกเลิก',
icon: 'error',
customClass: {
confirmButton: '!swal2-button-bg-danger',
}
});
if (this.appraisalCompentency2.data) {
if (response.success) {
this.getAppraisalCompentencyForm(this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].competencyType.competencyTypeId)
this.getWorking()
Swal.fire({
title: 'บันทึกสำเร็จ!',
text: 'การประเมินของคุณถูกบันทึกแล้ว',
icon: 'success',
customClass: {
confirmButton: '!swal2-button-bg-green',
}
});
} else {
Swal.fire({
title: 'ยกเลิก!',
text: 'การบันทึกถูกยกเลิก',
icon: 'error',
customClass: {
confirmButton: '!swal2-button-bg-danger',
}
});
}
}
}, error: error => {
Swal.fire({
......
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