Commit e87da1ef by Nakarin Luankla

การจัดการรอบการประเมิน

parent 7504ae46
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<td class="text-center">{{item.personalLevel.tdesc}}</td> <td class="text-center">{{item.personalLevel.tdesc}}</td>
<td class="flex justify-center items-center space-x-2"> <td class="flex justify-center items-center space-x-2">
<i class="ti ti-edit cursor-pointer i-gray fs-xl px-1" *ngIf="item.active" (click)="openAddRoundModel(item.masfromEvaluationRound.evaluationRoundId,item.apsassessy.employeeId,item,'form-pm-emp')" ></i> <i class="ti ti-edit cursor-pointer i-gray fs-xl px-1" *ngIf="item.active" (click)="openAddRoundModel(item.masfromEvaluationRound.evaluationRoundId,item.apsassessy.employeeId,item,'form-pm-emp')" ></i>
<input type="checkbox" id="hs-small-switch{{i+1}}" [(ngModel)]="item.active" <input type="checkbox" id="hs-small-switch{{i+1}}" *ngIf="!item.statusEmp" [(ngModel)]="item.active"
class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 dark:checked:bg-green-600 checked:before:bg-green-200 dark:checked:before:bg-green-200 shrink-0 w-11 h-6 before:w-5 before:h-5"> class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 dark:checked:bg-green-600 checked:before:bg-green-200 dark:checked:before:bg-green-200 shrink-0 w-11 h-6 before:w-5 before:h-5">
</td> </td>
</tr> </tr>
......
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
<td class="flex justify-center items-center"> <td class="flex justify-center items-center">
<i class="ti ti-edit cursor-pointer i-gray fs-l px-1" (click)="modalStatus='edit';setData(item.data)" <i class="ti ti-edit cursor-pointer i-gray fs-l px-1" (click)="modalStatus='edit';setData(item.data)"
data-hs-overlay="#evaluation-cycle-page-modal"></i> data-hs-overlay="#evaluation-cycle-page-modal"></i>
<i class="ti ti-user cursor-pointer i-gray fs-l px-1" data-hs-overlay="#evaluation-cycle-person-modal" <i class="ti ti-user cursor-pointer i-gray fs-l px-1" *ngIf="item.data.statusFrom.code !='2'" data-hs-overlay="#evaluation-cycle-person-modal"
(click)="openModal('evaluation-cycle-person-modal',item.data.evaluationRoundId)"></i> (click)="openModal('evaluation-cycle-person-modal',item.data.evaluationRoundId)"></i>
<i class="ti ti-trash cursor-pointer i-gray fs-l px-1" (click)="modalStatus='delete';setData(item.data)" <i class="ti ti-trash cursor-pointer i-gray fs-l px-1" (click)="modalStatus='delete';setData(item.data)"
data-hs-overlay="#evaluation-cycle-page-alert-modal"></i> data-hs-overlay="#evaluation-cycle-page-alert-modal"></i>
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
}"> }">
ปิดรอบประเมิน ปิดรอบประเมิน
</span> </span>
<span class="badge text-white m-1" *ngIf="item.data.statusCode.code == '1'" [ngClass]="{ <span class="badge text-white m-1 cursor-pointer" data-hs-overlay="#evaluation-cycle-page-alert-modal" (click)="modalStatus='createForm';setData(item.data)" *ngIf="item.data.statusCode.code == '1'" [ngClass]="{
'bg-secondary': item.data.statusCode.code == '1', 'bg-secondary': item.data.statusCode.code == '1',
'text-white': item.data.statusCode.code == '1' 'text-white': item.data.statusCode.code == '1'
}"> }">
...@@ -355,7 +355,7 @@ ...@@ -355,7 +355,7 @@
<i class="ti ti-circle-x fs-xxl"></i> <i class="ti ti-circle-x fs-xxl"></i>
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="modalStatus=='delete'||modalStatus=='deleteGroup'"> <ng-container *ngIf="modalStatus=='delete'||modalStatus=='deleteGroup'|| modalStatus=='createForm'">
<button type="button" class="hs-dropdown-toggle ti-modal-clode-btn text-danger" <button type="button" class="hs-dropdown-toggle ti-modal-clode-btn text-danger"
data-hs-overlay="#evaluation-cycle-page-alert-modal"> data-hs-overlay="#evaluation-cycle-page-alert-modal">
<span class="sr-only">Close</span> <span class="sr-only">Close</span>
...@@ -372,6 +372,9 @@ ...@@ -372,6 +372,9 @@
<ng-container *ngIf="modalStatus=='delete'||modalStatus=='deleteGroup'"> <ng-container *ngIf="modalStatus=='delete'||modalStatus=='deleteGroup'">
ยืนยันการลบข้อมูลหรือไม่ ยืนยันการลบข้อมูลหรือไม่
</ng-container> </ng-container>
<ng-container *ngIf="modalStatus=='createForm'">
คุณต้องการสร้างแบบฟอร์มการประเมินใหม่หรือไม่
</ng-container>
</p> </p>
<div class="flex justify-end mt-2rem mb-1rem"> <div class="flex justify-end mt-2rem mb-1rem">
...@@ -397,6 +400,17 @@ ...@@ -397,6 +400,17 @@
ลบข้อมูล ลบข้อมูล
</a> </a>
</ng-container> </ng-container>
<ng-container *ngIf="modalStatus=='createForm'">
<button type="button"
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"
data-hs-overlay="#evaluation-cycle-page-alert-modal">
ย้อนกลับ
</button>
<a class="ti-btn ti-btn-success" href="javascript:void(0);"
data-hs-overlay="#evaluation-cycle-page-alert-modal" (click)="createForm()">
ยืนยัน
</a>
</ng-container>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -224,6 +224,27 @@ export class EvaluationCycleComponent { ...@@ -224,6 +224,27 @@ export class EvaluationCycleComponent {
this.modal.page = Array.from({ length: Math.ceil(dataList.length / 10) }, (_, i) => i + 1); this.modal.page = Array.from({ length: Math.ceil(dataList.length / 10) }, (_, i) => i + 1);
} }
createForm() {
const body = new MyEvaluationCycleModel(this.evaluation_cycle)
body.active = 1
this.dataLoading = true
this.evaluationCycleService.post(body).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getEvaluationCycleList()
} else {
this.dataLoading = false
this.showAlert(response.message, 'error')
this.cdr.detectChanges()
}
}, error: error => {
this.showAlert(error.message, 'error')
this.dataLoading = false
this.cdr.detectChanges()
}
})
}
} }
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<td class="text-center">{{item.personalLevel.tdesc}}</td> <td class="text-center">{{item.personalLevel.tdesc}}</td>
<td class="flex justify-center items-center space-x-2"> <td class="flex justify-center items-center space-x-2">
<i class="ti ti-edit cursor-pointer i-gray fs-xl px-1" *ngIf="item.active" (click)="openAddRoundModel(item.pmsMasfromEvaluationRound.pmsEvaluationRoundId,item.apsassessy.employeeId,item,'form-pm-emp')" ></i> <i class="ti ti-edit cursor-pointer i-gray fs-xl px-1" *ngIf="item.active" (click)="openAddRoundModel(item.pmsMasfromEvaluationRound.pmsEvaluationRoundId,item.apsassessy.employeeId,item,'form-pm-emp')" ></i>
<input type="checkbox" id="hs-small-switch{{i+1}}" [(ngModel)]="item.active" <input type="checkbox" id="hs-small-switch{{i+1}}" *ngIf="!item.statusEmp" [(ngModel)]="item.active"
class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 dark:checked:bg-green-600 checked:before:bg-green-200 dark:checked:before:bg-green-200 shrink-0 w-11 h-6 before:w-5 before:h-5"> class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 dark:checked:bg-green-600 checked:before:bg-green-200 dark:checked:before:bg-green-200 shrink-0 w-11 h-6 before:w-5 before:h-5">
</td> </td>
</tr> </tr>
......
...@@ -8,6 +8,7 @@ export interface AppraisalModel { ...@@ -8,6 +8,7 @@ export interface AppraisalModel {
masfromEvaluationRound: EvaluationCycleModel masfromEvaluationRound: EvaluationCycleModel
companyId: string companyId: string
active: boolean active: boolean
statusEmp: boolean
apsassessy: EmployeeModel apsassessy: EmployeeModel
apsapprove1: EmployeeModel apsapprove1: EmployeeModel
apsapprove2: EmployeeModel apsapprove2: EmployeeModel
...@@ -21,6 +22,7 @@ export class MyAppraisalModel implements AppraisalModel { ...@@ -21,6 +22,7 @@ export class MyAppraisalModel implements AppraisalModel {
masfromEvaluationRound: EvaluationCycleModel masfromEvaluationRound: EvaluationCycleModel
companyId: string companyId: string
active: boolean active: boolean
statusEmp: boolean
apsassessy: EmployeeModel apsassessy: EmployeeModel
apsapprove1: EmployeeModel apsapprove1: EmployeeModel
apsapprove2: EmployeeModel apsapprove2: EmployeeModel
...@@ -33,6 +35,7 @@ export class MyAppraisalModel implements AppraisalModel { ...@@ -33,6 +35,7 @@ export class MyAppraisalModel implements AppraisalModel {
this.masfromEvaluationRound = new MyEvaluationCycleModel(data?.masfromEvaluationRound) this.masfromEvaluationRound = new MyEvaluationCycleModel(data?.masfromEvaluationRound)
this.companyId = data?.companyId || "" this.companyId = data?.companyId || ""
this.active = data?.active ?? false this.active = data?.active ?? false
this.statusEmp = data?.statusEmp ?? false
this.apsassessy = new MyEmployeeModel(data?.apsassessy) this.apsassessy = new MyEmployeeModel(data?.apsassessy)
this.apsapprove1 = new MyEmployeeModel(data?.apsapprove1) this.apsapprove1 = new MyEmployeeModel(data?.apsapprove1)
this.apsapprove2 = new MyEmployeeModel(data?.apsapprove2) this.apsapprove2 = new MyEmployeeModel(data?.apsapprove2)
......
import { MyPLModel, PLModel } from "./pl.model"; import { MyPLModel, PLModel } from "./pl.model";
import { MyStatusCodeModel, StatusCodeModel } from "./status-code.model"; import { MyStatusCodeModel, StatusCodeModel } from "./status-code.model";
import { MyStatusFromModel, StatusFromModel } from "./status-from.model";
export interface EvaluationCycleModel { export interface EvaluationCycleModel {
evaluationRoundId: string evaluationRoundId: string
...@@ -10,8 +11,10 @@ export interface EvaluationCycleModel { ...@@ -10,8 +11,10 @@ export interface EvaluationCycleModel {
apsPeriodStart: string apsPeriodStart: string
apsPeriodEnd: string apsPeriodEnd: string
statusCode: StatusCodeModel statusCode: StatusCodeModel
statusFrom: StatusFromModel
personalLevel: PLModel[] personalLevel: PLModel[]
jlId: string
active: number
} }
export class MyEvaluationCycleModel implements EvaluationCycleModel { export class MyEvaluationCycleModel implements EvaluationCycleModel {
...@@ -23,7 +26,10 @@ export class MyEvaluationCycleModel implements EvaluationCycleModel { ...@@ -23,7 +26,10 @@ export class MyEvaluationCycleModel implements EvaluationCycleModel {
apsPeriodStart: string apsPeriodStart: string
apsPeriodEnd: string apsPeriodEnd: string
statusCode: StatusCodeModel statusCode: StatusCodeModel
statusFrom: StatusFromModel
personalLevel: PLModel[] personalLevel: PLModel[]
jlId: string
active: number
constructor(data?: Partial<EvaluationCycleModel>) { constructor(data?: Partial<EvaluationCycleModel>) {
this.evaluationRoundId = data?.evaluationRoundId || ""; this.evaluationRoundId = data?.evaluationRoundId || "";
this.companyId = data?.companyId || ""; this.companyId = data?.companyId || "";
...@@ -32,7 +38,10 @@ export class MyEvaluationCycleModel implements EvaluationCycleModel { ...@@ -32,7 +38,10 @@ export class MyEvaluationCycleModel implements EvaluationCycleModel {
this.apsyear = data?.apsyear || ""; this.apsyear = data?.apsyear || "";
this.apsPeriodStart = data?.apsPeriodStart || ""; this.apsPeriodStart = data?.apsPeriodStart || "";
this.apsPeriodEnd = data?.apsPeriodEnd || ""; this.apsPeriodEnd = data?.apsPeriodEnd || "";
this.jlId = data?.jlId || "";
this.active = data?.active || 0;
this.statusCode = new MyStatusCodeModel(data?.statusCode || {}) this.statusCode = new MyStatusCodeModel(data?.statusCode || {})
this.statusFrom = new MyStatusFromModel(data?.statusCode || {})
this.personalLevel = data?.personalLevel?.map(x => new MyPLModel(x)) || [] this.personalLevel = data?.personalLevel?.map(x => new MyPLModel(x)) || []
} }
......
...@@ -3,6 +3,7 @@ export interface PmsMasfromEvaluationFullModel { ...@@ -3,6 +3,7 @@ export interface PmsMasfromEvaluationFullModel {
pmsMasfromEvaluationRound: PmsMasfromEvaluationRoundModel pmsMasfromEvaluationRound: PmsMasfromEvaluationRoundModel
companyId?: string companyId?: string
active?: boolean active?: boolean
statusEmp?: boolean
fromDetail: any fromDetail: any
apsassessy: Apsassessy apsassessy: Apsassessy
apsapprove1: Apsapprove1 apsapprove1: Apsapprove1
......
export interface StatusFromModel {
code: string;
tdesc: string;
edesc: string;
}
export class MyStatusFromModel implements StatusFromModel {
code: string;
tdesc: string;
edesc: string;
constructor(data?: Partial<StatusFromModel>) {
this.code = data?.code || "";
this.tdesc = data?.tdesc || "";
this.edesc = data?.edesc || "";
}
}
\ 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