Commit 73cd9771 by Nakarin Luankla

UPDATE รอบการประเมิน

parent 0e9ba3b9
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
id="checkbox-{{item.data.evaluationRoundId}}" [(ngModel)]="item.check" (ngModelChange)="dataListCheck()"> id="checkbox-{{item.data.evaluationRoundId}}" [(ngModel)]="item.check" (ngModelChange)="dataListCheck()">
</td> </td>
<td > <td >
<i class="ti ti-user cursor-pointer i-gray fs-l px-1" data-hs-overlay="#evaluation-cycle-person-modal" (click)="openModal('evaluation-cycle-person-modal',item.data.evaluationRoundId)"></i> <!-- <i class="ti ti-user cursor-pointer i-gray fs-l px-1" data-hs-overlay="#evaluation-cycle-person-modal" (click)="openModal('evaluation-cycle-person-modal',item.data.evaluationRoundId)"></i> -->
<label for="checkbox-{{item.data.evaluationRoundId}}">&nbsp;{{item.data.evaluationRoundId}}</label> <label for="checkbox-{{item.data.evaluationRoundId}}">&nbsp;{{item.data.evaluationRoundId}}</label>
</td> </td>
<td>{{item.data.tdesc}}</td> <td>{{item.data.tdesc}}</td>
......
...@@ -25,25 +25,32 @@ export class EditEvaluationFormComponent { ...@@ -25,25 +25,32 @@ export class EditEvaluationFormComponent {
assessmentList: AppraisalModel[] = [] assessmentList: AppraisalModel[] = []
evaluationRound:EvaluationCycleModel = new MyEvaluationCycleModel() evaluationRound: EvaluationCycleModel = new MyEvaluationCycleModel()
isChecked: boolean = false;
isChecked: boolean = false;
apsassessy = "" apsassessy = ""
empassessmentList: AppraisalModel[] = [] empassessmentList: AppraisalModel[] = []
searchEmp = "" searchEmp = ""
empassessmentRoundList: AppraisalRoundModel[] = [] empassessmentRoundList: AppraisalRoundModel[] = []
empassessmentRoundListCheckbox: {checkbox: boolean, item: AppraisalRoundModel}[] = [] empassessmentRoundListCheckbox: { checkbox: boolean, item: AppraisalRoundModel }[] = []
currentPageRound = 1 currentPageRound = 1
pageRound = Array.from({ length: 1 }, (_, i) => i + 1); pageRound = Array.from({ length: 1 }, (_, i) => i + 1);
searchRound = "" searchRound = ""
selectEmp:AppraisalModel = new MyAppraisalModel() selectEmp: AppraisalModel = new MyAppraisalModel()
numDataListChecked = 0 numDataListChecked = 0
msg = "" msg = ""
typeForm = "" typeForm = ""
selectData: AppraisalRoundModel = new MyAppraisalRoundModel() selectData: AppraisalRoundModel = new MyAppraisalRoundModel()
loading = false
indicatorsList:AppraisalRoundModel[] = []
searchIndicator = ""
currentPageIndicator = 1
pageIndicator = Array.from({ length: 1 }, (_, i) => i + 1);
constructor(private toastr: ToastrService, constructor(private toastr: ToastrService,
private cdr: ChangeDetectorRef, private cdr: ChangeDetectorRef,
private evaluationAssessmentService: EvaluationAssessmentService, private evaluationAssessmentService: EvaluationAssessmentService,
...@@ -106,36 +113,35 @@ export class EditEvaluationFormComponent { ...@@ -106,36 +113,35 @@ export class EditEvaluationFormComponent {
this.page = Array.from({ length: Math.ceil(filteredData.length / 10) }, (_, i) => i + 1); this.page = Array.from({ length: Math.ceil(filteredData.length / 10) }, (_, i) => i + 1);
} }
openModalClass(id: string,type?:string) { openModalClass(id: string, type?: string) {
this.typeForm = type??"" this.typeForm = type ?? ""
if(id == 'modal-alert'){ if (id == 'modal-alert') {
if(type == 'deleteForm'){ if (type == 'deleteForm') {
this.msg = 'ยืนยันการลบรายการ' this.msg = 'ยืนยันการลบรายการ'
}else if(type == 'addForm'){ } else if (type == 'addForm') {
this.msg = 'ยืนยันการบันทึกรายการ' this.msg = 'ยืนยันการบันทึกรายการ'
} }
} }
if(id){ if (id) {
document.getElementById(id)?.classList.add('open'); document.getElementById(id)?.classList.add('open');
document.getElementById(id)?.classList.remove('hidden'); document.getElementById(id)?.classList.remove('hidden');
setTimeout(() => { setTimeout(() => {
document.getElementById(id)?.setAttribute('aria-overlay', 'false') document.getElementById(id)?.setAttribute('aria-overlay', 'false')
}, 10); }, 10);
} }
this.isChecked = false; this.isChecked = false;
this.numDataListChecked = 0; this.numDataListChecked = 0;
} }
closeModalClass(id: string) { closeModalClass(id: string) {
const modal = document.getElementById(id); const modal = document.getElementById(id);
console.log("🚀 ~ EditEvaluationFormComponent ~ closeModalClass ~ modal:", modal)
if (id) { if (id) {
modal?.classList.add("hidden"); // ซ่อน Modal modal?.classList.add("hidden"); // ซ่อน Modal
} }
} }
saveAssessmentList() { saveAssessmentList() {
...@@ -155,41 +161,67 @@ export class EditEvaluationFormComponent { ...@@ -155,41 +161,67 @@ export class EditEvaluationFormComponent {
} }
} }
openAddRoundModel(evaluationRoundId:string,apsassessy:string,item:AppraisalModel,model:string) { openAddRoundModel(evaluationRoundId: string, apsassessy: string, item: AppraisalModel, model: string) {
this.selectEmp = item this.selectEmp = item
this.openModalClass(model); console.log("🚀 ~ EditEvaluationFormComponent ~ openAddRoundModel ~ this.selectEmp:", this.selectEmp)
this.evaluationRoundId = evaluationRoundId this.openModalClass(model);
this.apsassessy = apsassessy this.evaluationRoundId = evaluationRoundId
this.getApsassessy() this.apsassessy = apsassessy
this.getApsassessyMini(); this.getApsassessy()
} this.getApsassessyMini();
this.getIndicators();
getApsassessy(){ }
this.evaluationAssessmentService.getApsassessy(this.evaluationRoundId,this.apsassessy).subscribe({ getIndicators() {
this.evaluationAssessmentService.getIndicators(this.selectEmp.apsassessy.pl.plId).subscribe({
next: response => {
this.indicatorsList = response
this.cdr.detectChanges();
},
error: err => {
console.error('Error fetching evaluation cycles:', err);
}
})
}
filterIndicators() {
return this.indicatorsList.filter(x =>
x.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.tdesc?.toLowerCase()?.includes(this.searchIndicator?.toLowerCase() ?? "") ||
x.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.edesc?.toLowerCase()?.includes(this.searchIndicator?.toLowerCase() ?? "") ||
x.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.competencyTopicId?.toLowerCase()?.includes(this.searchIndicator?.toLowerCase() ?? ""))
}
searchIndicatorsChange() {
this.currentPageIndicator = 1;
const filteredData = this.filterIndicators();
this.pageIndicator = Array.from({ length: Math.ceil(filteredData.length / 10) }, (_, i) => i + 1);
}
getApsassessy() {
this.loading = true
this.evaluationAssessmentService.getApsassessy(this.evaluationRoundId, this.apsassessy).subscribe({
next: response => { next: response => {
this.empassessmentList = response this.empassessmentList = response
this.cdr.detectChanges(); this.cdr.detectChanges();
this.loading = false
}, },
error: err => { error: err => {
this.loading = false
console.error('Error fetching evaluation cycles:', err); console.error('Error fetching evaluation cycles:', err);
} }
}) })
} }
getApsassessyMini(){ getApsassessyMini() {
this.evaluationAssessmentService.getApsassessyMini(this.evaluationRoundId,this.apsassessy).subscribe({ this.evaluationAssessmentService.getApsassessyMini(this.evaluationRoundId, this.apsassessy).subscribe({
next: response => { next: response => {
this.empassessmentRoundList = response this.empassessmentRoundList = response
this.empassessmentRoundListCheckbox = this.empassessmentRoundList.map(item => ({checkbox: false, item})) this.empassessmentRoundListCheckbox = this.empassessmentRoundList.map(item => ({ checkbox: false, item }))
this.cdr.detectChanges(); this.cdr.detectChanges();
}, },
error: err => { error: err => {
console.error('Error fetching evaluation cycles:', err); console.error('Error fetching evaluation cycles:', err);
} }
}) })
} }
empassessmentListFilter() { empassessmentListFilter() {
return this.empassessmentRoundListCheckbox.filter(x => return this.empassessmentRoundListCheckbox.filter(x =>
x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.tdesc?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? "")|| x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.tdesc?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? "") ||
x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.edesc?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? "") || x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.edesc?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? "") ||
x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.competencyTopicId?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? "")) x.item.groupAssessment1?.competencyIndicatorsCourses1Mini?.competencyIndicatorsCourses0?.competencyTopic?.competencyTopicId?.toLowerCase()?.includes(this.searchRound?.toLowerCase() ?? ""))
} }
...@@ -204,32 +236,32 @@ export class EditEvaluationFormComponent { ...@@ -204,32 +236,32 @@ export class EditEvaluationFormComponent {
this.checkempassessmentRoundListCheckbox(); this.checkempassessmentRoundListCheckbox();
} }
checkempassessmentRoundListCheckbox(){ checkempassessmentRoundListCheckbox() {
this.numDataListChecked = this.empassessmentRoundListCheckbox.filter(x => x.checkbox).length this.numDataListChecked = this.empassessmentRoundListCheckbox.filter(x => x.checkbox).length
this.isChecked = this.numDataListChecked ? true : false this.isChecked = this.numDataListChecked ? true : false
} }
deleteFormOne(item:AppraisalRoundModel){ deleteFormOne(item: AppraisalRoundModel) {
this.selectData = item this.selectData = item
} }
deleteAssessment() { deleteAssessment() {
let body = this.empassessmentRoundListCheckbox.filter(x => x.checkbox).map(x => x.item) let body = this.empassessmentRoundListCheckbox.filter(x => x.checkbox).map(x => x.item)
if(this.typeForm=='deleteFormOne'){ if (this.typeForm == 'deleteFormOne') {
body = [this.selectData] body = [this.selectData]
} }
if( body.length == 0){ if (body.length == 0) {
this.showAlert('กรุณาเลือกรายการ', 'error') this.showAlert('กรุณาเลือกรายการ', 'error')
return return
} }
this.evaluationAssessmentService.deletemMini(body,this.selectEmp.apsassessy.employeeId,this.selectEmp.masfromEvaluationRound.evaluationRoundId).subscribe({ this.evaluationAssessmentService.deletemMini(body, this.selectEmp.apsassessy.employeeId, this.selectEmp.masfromEvaluationRound.evaluationRoundId).subscribe({
next: response => { next: response => {
if (response.success) { if (response.success) {
this.showAlert(response.message, 'success') this.showAlert(response.message, 'success')
this.getApsassessyMini(); this.getApsassessyMini();
} else { } else {
this.showAlert(response.message, 'error') this.showAlert(response.message, 'error')
} }
} }
}) })
} }
......
...@@ -110,6 +110,7 @@ export interface EmployeeModel { ...@@ -110,6 +110,7 @@ export interface EmployeeModel {
ssoFlag: string ssoFlag: string
thFullName: string thFullName: string
engFullName: string engFullName: string
pl: PLModel
} }
export class MyEmployeeModel implements EmployeeModel { export class MyEmployeeModel implements EmployeeModel {
...@@ -198,6 +199,7 @@ export class MyEmployeeModel implements EmployeeModel { ...@@ -198,6 +199,7 @@ export class MyEmployeeModel implements EmployeeModel {
ssoFlag: string ssoFlag: string
thFullName: string thFullName: string
engFullName: string engFullName: string
pl: PLModel
constructor(data?: Partial<EmployeeModel>) { constructor(data?: Partial<EmployeeModel>) {
this.employeeId = data?.employeeId || "" this.employeeId = data?.employeeId || ""
this.prefix = new MyPrefixModel(data?.prefix || {}) this.prefix = new MyPrefixModel(data?.prefix || {})
...@@ -284,6 +286,8 @@ export class MyEmployeeModel implements EmployeeModel { ...@@ -284,6 +286,8 @@ export class MyEmployeeModel implements EmployeeModel {
this.ssoFlag = data?.ssoFlag || "" this.ssoFlag = data?.ssoFlag || ""
this.thFullName = data?.thFullName || "" this.thFullName = data?.thFullName || ""
this.engFullName = data?.engFullName || "" this.engFullName = data?.engFullName || ""
this.pl = new MyPLModel(data?.workarea || {})
} }
} }
...@@ -27,6 +27,9 @@ export class EvaluationAssessmentService { ...@@ -27,6 +27,9 @@ export class EvaluationAssessmentService {
getApsassessyMini(evaluationRoundId: string,apsassessy:string): Observable<AppraisalRoundModel[]> { getApsassessyMini(evaluationRoundId: string,apsassessy:string): Observable<AppraisalRoundModel[]> {
return this.http.get<AppraisalRoundModel[]>(this.urlApi + "/mini/" + evaluationRoundId+"/"+apsassessy) return this.http.get<AppraisalRoundModel[]>(this.urlApi + "/mini/" + evaluationRoundId+"/"+apsassessy)
} }
getIndicators(plId: string): Observable<AppraisalRoundModel[]> {
return this.http.get<AppraisalRoundModel[]>(this.urlApi + "/indicators/list/" + plId)
}
post(body: EvaluationCycleModel): Observable<AlertModel> { post(body: EvaluationCycleModel): Observable<AlertModel> {
return this.http.post<AlertModel>(this.urlApi, body) return this.http.post<AlertModel>(this.urlApi, body)
} }
......
...@@ -375,4 +375,10 @@ ngx-dropzone { ...@@ -375,4 +375,10 @@ ngx-dropzone {
} }
.\!width-70{ .\!width-70{
width: 70% !important; width: 70% !important;
}
.\!box-modal{
box-shadow: 0px 0px 0px 9999px rgba(0,0,0,0.25)!important;
-webkit-box-shadow: 0px 0px 0px 9999px rgba(0,0,0,0.25)!important;
-moz-box-shadow: 0px 0px 0px 9999px rgba(0,0,0,0.25)!important;
} }
\ 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