Commit caf318d4 by Nattana Chaiyamat

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

parent 2f8519d6
.no-interaction { .no-interaction {
pointer-events: none; pointer-events: none;
cursor: not-allowed; cursor: not-allowed;
} }
\ No newline at end of file \ No newline at end of file
import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { TypeList } from 'src/app/shared/model/appraisal-subordinate.model'; import { TypeList } from 'src/app/shared/model/appraisal-subordinate.model';
import { CompetencyModel } from 'src/app/shared/model/competency.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 { EmployeeService } from 'src/app/shared/services/employee.service'; import { EmployeeService } from 'src/app/shared/services/employee.service';
@Component({ @Component({
...@@ -11,8 +13,6 @@ import { EmployeeService } from 'src/app/shared/services/employee.service'; ...@@ -11,8 +13,6 @@ import { EmployeeService } from 'src/app/shared/services/employee.service';
}) })
export class PmsFormEmployeeComponent { export class PmsFormEmployeeComponent {
@Input() currentTap = "" @Input() currentTap = ""
@Input() evaluationRoundId = ""
@Input() allCompetencyTypeId: TypeList[] = []
@Input() evaluateeId = "" @Input() evaluateeId = ""
@Input() evaluaterId = "" @Input() evaluaterId = ""
@Input() evaluationForm: 'self' | 'sup' = "self" @Input() evaluationForm: 'self' | 'sup' = "self"
...@@ -38,15 +38,43 @@ export class PmsFormEmployeeComponent { ...@@ -38,15 +38,43 @@ export class PmsFormEmployeeComponent {
{ id: '5', itemName: 'Bootstrap' }, { id: '5', itemName: 'Bootstrap' },
]; ];
compentency: { loading: boolean, data?: CompetencyModel, dataList: CompetencyModel[] } = { loading: false, data: undefined, dataList: [] }
compentencyFormCompleted = false
currentDate = new Date()
constructor( constructor(
private router: Router, private router: Router,
private employeeService: EmployeeService, private employeeService: EmployeeService,
private appraisalService: AppraisalService,
private cdr: ChangeDetectorRef private cdr: ChangeDetectorRef
) { } ) { }
ngOnInit() { ngOnInit() {
this.getEvaluatee() this.getEvaluatee()
this.getCompentencyAll()
}
getCompentencyAll() {
this.compentency.loading = true
const bossId = this.evaluaterId != this.evaluateeId ? this.evaluaterId : undefined
this.appraisalService.getCompentencyAll(this.evaluateeId, bossId).subscribe({
next: response => {
this.compentency.dataList = response
if (this.compentency.dataList.length) {
this.selectDataList(this.compentency.dataList[0])
}
this.compentency.loading = false
this.cdr.detectChanges()
}, error: error => {
this.compentency.loading = false
this.cdr.detectChanges()
}
})
}
selectDataList(data: CompetencyModel) {
this.compentency.data = data
} }
getEvaluatee() { getEvaluatee() {
...@@ -65,16 +93,14 @@ export class PmsFormEmployeeComponent { ...@@ -65,16 +93,14 @@ export class PmsFormEmployeeComponent {
currentTapChange() { currentTapChange() {
if (this.allCompetencyTypeId.length) { if (this.compentency.data?.competency.length) {
this.currentTap = this.allCompetencyTypeId[0].shortName || '' this.currentTap = this.compentency.data?.competency[0].comType || ''
} }
} }
onSelectFile1(event: any) { onSelectFile1(event: any) {
if (event.target && event.target.files && event.target.files[0]) { if (event.target && event.target.files && event.target.files[0]) {
const reader = new FileReader(); const reader = new FileReader();
reader.readAsDataURL(event.target.files[0]); // read file as data URL reader.readAsDataURL(event.target.files[0]); // read file as data URL
reader.onload = (event: any) => { reader.onload = (event: any) => {
// called once readAsDataURL is completed // called once readAsDataURL is completed
this.url1 = event.target.result; this.url1 = event.target.result;
...@@ -85,9 +111,7 @@ export class PmsFormEmployeeComponent { ...@@ -85,9 +111,7 @@ export class PmsFormEmployeeComponent {
onSelectFile2(event: any) { onSelectFile2(event: any) {
if (event.target && event.target.files && event.target.files[0]) { if (event.target && event.target.files && event.target.files[0]) {
const reader = new FileReader(); const reader = new FileReader();
reader.readAsDataURL(event.target.files[0]); // read file as data URL reader.readAsDataURL(event.target.files[0]); // read file as data URL
reader.onload = (event: any) => { reader.onload = (event: any) => {
// called once readAsDataURL is completed // called once readAsDataURL is completed
this.url2 = event.target.result; this.url2 = event.target.result;
......
...@@ -8,10 +8,8 @@ ...@@ -8,10 +8,8 @@
</div> --> </div> -->
</ng-container> </ng-container>
<ng-template #newSelfEvaluation> <ng-template #newSelfEvaluation>
<ng-container *ngIf="appraisalCompentency.select&&allCompetencyTypeId.length"> <ng-container *ngIf="appraisalCompentency.select&&allCompetencyTypeId.length&&evaluatee.data.employeeId">
<app-pms-form-employee [evaluationForm]="'self'" <app-pms-form-employee [evaluationForm]="'self'" [evaluaterId]="evaluatee.data.employeeId"
[evaluationRoundId]="appraisalCompentency.select.masfromEvaluationRound.evaluationRoundId"
[evaluaterId]="evaluatee.data.employeeId" [allCompetencyTypeId]="allCompetencyTypeId"
[evaluateeId]="evaluatee.data.employeeId"></app-pms-form-employee> [evaluateeId]="evaluatee.data.employeeId"></app-pms-form-employee>
</ng-container> </ng-container>
</ng-template> </ng-template>
......
...@@ -251,9 +251,7 @@ ...@@ -251,9 +251,7 @@
[evaluateeId]="formEvaluation.evaluateeId"></app-idp-evalution> --> [evaluateeId]="formEvaluation.evaluateeId"></app-idp-evalution> -->
<app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="'idp'" <app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="'idp'"
(sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']" (sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']"
[evaluationRoundId]="formEvaluation.evaluationRoundId" [evaluaterId]="formEvaluation.evaluaterId" [evaluaterId]="formEvaluation.evaluaterId" [evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
[allCompetencyTypeId]="formEvaluation.allCompetencyTypeId"
[evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
</ng-container> </ng-container>
<ng-container *ngIf="pageEvalution=='pms'"> <ng-container *ngIf="pageEvalution=='pms'">
<!-- <app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']" <!-- <app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']"
...@@ -262,8 +260,7 @@ ...@@ -262,8 +260,7 @@
[evaluateeId]="formEvaluation.evaluateeId"></app-pms-evalution> --> [evaluateeId]="formEvaluation.evaluateeId"></app-pms-evalution> -->
<app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="'pms'" <app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="'pms'"
(sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']" (sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']"
[evaluationRoundId]="formEvaluation.evaluationRoundId" [evaluaterId]="formEvaluation.evaluaterId" [evaluaterId]="formEvaluation.evaluaterId" [evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
[evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
</ng-container> </ng-container>
<ng-container *ngIf="pageEvalution!='idp'&&pageEvalution!='pms'&&pageEvalution!=''"> <ng-container *ngIf="pageEvalution!='idp'&&pageEvalution!='pms'&&pageEvalution!=''">
<!-- <app-evaluation [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']" <!-- <app-evaluation [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']"
...@@ -273,7 +270,5 @@ ...@@ -273,7 +270,5 @@
[competencyTypeId]="formEvaluation.competencyTypeId"></app-evaluation> --> [competencyTypeId]="formEvaluation.competencyTypeId"></app-evaluation> -->
<app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="pageEvalution" <app-pms-form-employee [evaluationForm]="'sup'" [currentTap]="pageEvalution"
(sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']" (sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']"
[evaluationRoundId]="formEvaluation.evaluationRoundId" [evaluaterId]="formEvaluation.evaluaterId" [evaluaterId]="formEvaluation.evaluaterId" [evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
[allCompetencyTypeId]="formEvaluation.allCompetencyTypeId"
[evaluateeId]="formEvaluation.evaluateeId"></app-pms-form-employee>
</ng-container> </ng-container>
\ No newline at end of file
...@@ -743,6 +743,7 @@ export interface AppraisalCompentencyModel2 { ...@@ -743,6 +743,7 @@ export interface AppraisalCompentencyModel2 {
lastStep: string lastStep: string
checkStep: string checkStep: string
masfromStatusType: MasfromStatusType masfromStatusType: MasfromStatusType
comType: string
} }
export interface MasfromStatusType { export interface MasfromStatusType {
code: string code: string
......
...@@ -7,6 +7,7 @@ import { AppraisalCompentencyModel, AppraisalCompentencyModel2 } from '../model/ ...@@ -7,6 +7,7 @@ import { AppraisalCompentencyModel, AppraisalCompentencyModel2 } from '../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'; import { AppraisalPmsModel } from '../model/appraisal-pms.model';
import { CompetencyModel } from '../model/competency.model';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
...@@ -15,6 +16,9 @@ export class AppraisalService { ...@@ -15,6 +16,9 @@ export class AppraisalService {
urlApi = environment.baseUrl + this.api urlApi = environment.baseUrl + this.api
constructor(private http: HttpClient) { constructor(private http: HttpClient) {
} }
getCompentencyAll(apsassessy: string, bossId?: string): Observable<CompetencyModel[]> {
return this.http.get<CompetencyModel[]>(this.urlApi + "/competencyAll/emp?apsassessy=" + apsassessy + (bossId ? "&bossId=" + bossId : ''))
}
getFormCompentencyById(evaluationRoundId: string, apsassessy: string, typeId: string): Observable<AppraisalCompentencyModel2> { getFormCompentencyById(evaluationRoundId: string, apsassessy: string, typeId: string): Observable<AppraisalCompentencyModel2> {
return this.http.get<AppraisalCompentencyModel2>(this.urlApi + "/competency/" + evaluationRoundId + "/" + apsassessy + "/" + typeId) return this.http.get<AppraisalCompentencyModel2>(this.urlApi + "/competency/" + evaluationRoundId + "/" + apsassessy + "/" + typeId)
} }
......
...@@ -5925,6 +5925,10 @@ select option:focus { ...@@ -5925,6 +5925,10 @@ select option:focus {
.fill-success { .fill-success {
fill: rgb(var(--color-success)); fill: rgb(var(--color-success));
} }
.fill-mute {
fill: #cccccc;
}
.fill-transparent { .fill-transparent {
fill: transparent; fill: transparent;
} }
...@@ -25034,6 +25038,13 @@ div:where(.swal2-container) div:where(.swal2-validation-message) { ...@@ -25034,6 +25038,13 @@ div:where(.swal2-container) div:where(.swal2-validation-message) {
border-color: red !important; border-color: red !important;
} }
.\!bg-white{ .\!bg-white {
background-color: white; background-color: white;
}
.ellipsis-text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%
} }
\ No newline at end of file
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