Commit ba51322c by Nattana Chaiyamat

การประเมินผล > ประเมินตนเอง

parent 57566ddb
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
export interface DataModel {
code: string,
name: string,
startDate: string,
endDate: string,
status: string
}
export interface Data2Model {
code: string,
name: string,
bi: BiModel[],
}
export interface BiModel {
name: string,
tools: string[],
degree: string
}
@Component({
selector: 'app-self-evaluation',
templateUrl: './self-evaluation.component.html',
styleUrls: ['./self-evaluation.component.scss']
})
export class SelfEvaluationComponent implements OnInit {
pathTitle = ['การประเมินผล', 'ประเมินตนเอง']
dataList: DataModel[] = [
{
code: "CC",
name: "การประเมินผลการปฏิบัติงาน (Performance Evaluation)",
startDate: "1 ตุลาคม 2567",
endDate: "30 ตุลาคม 2567",
status: "ยังไม่ประเมิน"
},
{
code: "MC",
name: "การประเมินศักยภาพ (Potential Evaluation)",
startDate: "1 ตุลาคม 2567",
endDate: "30 ตุลาคม 2567",
status: "ยังไม่ประเมิน"
},
{
code: "PC",
name: "การประเมินประสิทธิภาพขององค์กร (Organizational Effectiveness Evaluation)",
startDate: "1 ตุลาคม 2567",
endDate: "30 ตุลาคม 2567",
status: "ยังไม่ประเมิน"
}
]
dataList2: DataModel[] = [
{
code: "KPI",
name: "Performance Management System",
startDate: "1 ตุลาคม 2567",
endDate: "30 ตุลาคม 2567",
status: "ยังไม่ประเมิน"
}
]
hoveredCode: string | null = null;
dataList3: Data2Model[] = [
{
code: "CC-01",
name: "จิตสำนึกด้านความปลอดภัยและคุณภาพ (Safety & Quality)",
bi: [{
name: "สอนงานด้านความปลอดภัย และคุณภาพของบริษัทให้กับพนักงานในหน่วยงาน",
tools: ["O"],
degree: "4"
}, {
name: "ติดตามและปรับปรุงการทำงานด้านความปลอดภัยและคุณภาพของทีมงาน",
tools: ["O", "D"],
degree: "5"
}],
},
{
code: "CC-02",
name: "การทำงานเป็นทีมแบบ TAT (TAT Teamwork)",
bi: [{
name: "คิดวิเคราะห์เพื่อแก้ปัญหาด้านความปลอดภัยและคุณภาพในหน่วยงานที่รับผิดชอบ",
tools: ["O", "D"],
degree: "5"
}, {
name: "นำเสนอและจัดทำรายงานด้านความปลอดภัยและคุณภาพทั้งภาษาไทยและภาษาอังกฤษ",
tools: ["O"],
degree: "2"
},
{
name: "สอนงาน และพัฒนาทีมงานให้เกิดการทำงานเป็นทีม โดยยึดเป้าหมายเดียวกัน (TAT Goal) และคำนึงถึง ความต้องการของลูกค้าเป็นหลัก (Next Customer)",
tools: ["O"],
degree: "2"
},
{
name: "สนับสนุนทีมงานให้ดำเนินการตามเป้าหมายของทีม และสิ่งที่ตนเองได้รับมอบหมาย",
tools: ["O", "D"],
degree: "4"
},
{
name: "วิเคราะห์และแก้ไขปัญหาที่เกิดจากการทำงานเป็นทีม รวมถึงการควบคุมดูแลให้เป็นไปตามเป้าหมาย",
tools: ["O"],
degree: "5"
},
{
name: "สื่อสารเพื่อสร้างความเข้าใจ และรับฟังความคิดเห็น ของสมาชิกในทีม ชื่นชมทีมงานแต่ละคนที่เป็น ส่วนหนึ่งในความสำเร็จของทีมร่วมกัน",
tools: ["O", "D"],
degree: "5"
}],
}
]
@ViewChild('selfEvaluation1_2', { static: true }) selfEvaluation1_2!: TemplateRef<any>;
@ViewChild('selfEvaluation1_2Edit', { static: true }) selfEvaluation1_2Edit!: TemplateRef<any>;
currentTemplate: TemplateRef<any> = this.selfEvaluation1_2Edit
ngOnInit(): void {
this.currentTemplate = this.selfEvaluation1_2Edit
}
dataListFilter() {
return this.dataList
}
dataList2Filter() {
return this.dataList2
}
dataList3Filter() {
return this.dataList3
}
showTools(data: string[]) {
return data.join("/")
}
}
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<ng-container <ng-container
*ngFor="let item of ['รหัสพนักงาน','ชื่อพนักงาน','ตำเเหน่งงาน','ประเมิน','เเผนพัฒนา','PMS','ผลประเมิน','เกรด','สถานะ','สถานะผู้ประเมิน']; let f = first; let l = last; let i = index"> *ngFor="let item of ['รหัสพนักงาน','ชื่อพนักงาน','ตำเเหน่งงาน','ประเมิน','เเผนพัฒนา','PMS','ผลประเมิน','เกรด','สถานะ','สถานะผู้ประเมิน']; let f = first; let l = last; let i = index">
<th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary" <th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary"
[class.!text-center]="f||l||'ประเมิ'||'เเผนพัฒนา'||'PMS'"> [class.!text-center]="f||l||'ประเมิ'||'เเผนพัฒนา'||'PMS'">
<span class="text-sm">{{ item }}</span> <span class="text-sm">{{ item }}</span>
<div class="absolute top-1/2 transform -translate-y-1/2 right-0" *ngIf="!l&&!f&&!i"> <div class="absolute top-1/2 transform -translate-y-1/2 right-0" *ngIf="!l&&!f&&!i">
<svg class="head-table-icon" xmlns="http://www.w3.org/2000/svg" width="50" <svg class="head-table-icon" xmlns="http://www.w3.org/2000/svg" width="50"
......
...@@ -113,13 +113,13 @@ ...@@ -113,13 +113,13 @@
<div *ngIf="data.behaviorIndicators.length" class="grid grid-cols-1 gap-2 mb-2"> <div *ngIf="data.behaviorIndicators.length" class="grid grid-cols-1 gap-2 mb-2">
<span *ngFor="let item of data.behaviorIndicators;" class="grid grid-cols-12 height-20px"> <span *ngFor="let item of data.behaviorIndicators;" class="grid grid-cols-12 height-20px">
<div class="col-span-11 flex align-center"> <div class="col-span-11 flex align-center">
<div class="hs-tooltip ti-main-tooltip [--trigger:hover] truncate"> <div class="hs-tooltip ti-main-tooltip [--trigger:click] truncate">
<div class="hs-tooltip-toggle cursor-pointer truncate"> <a class="hs-tooltip-toggle cursor-pointer truncate" href="javascript:;">
{{item}} {{item}}
<div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip"> <div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip">
{{item}} {{item}}
</div> </div>
</div> </a>
</div> </div>
</div> </div>
<div class="col-span-1 text-center align-center"> <div class="col-span-1 text-center align-center">
...@@ -144,30 +144,30 @@ ...@@ -144,30 +144,30 @@
<span *ngFor="let assessmentTools of data.assessmentTools; let l=index" <span *ngFor="let assessmentTools of data.assessmentTools; let l=index"
class="grid grid-cols-5 text-center align-center height-20px"> class="grid grid-cols-5 text-center align-center height-20px">
<button type="button" *ngFor="let item of assessmentTools | slice: 0 : 4; let m=index" <button type="button" *ngFor="let item of assessmentTools | slice: 0 : 4; let m=index"
class="ti-btn rounded-sm ti-btn-secondary text-center m-0 hs-tooltip ti-main-tooltip [--trigger:hover] flex" class="ti-btn rounded-sm ti-btn-secondary text-center m-0 hs-tooltip ti-main-tooltip flex"
[ngClass]="{'cursor-default': m < 3, [ngClass]="{'cursor-default [--trigger:click]': m < 3,
' cursor-pointer': m == 3}" style="height: 15px; width: 45px" ' cursor-pointer [--trigger:hover]': m == 3}" style="height: 15px; width: 45px"
(click)="(m < 3 ? null :dataSelect=data);(m < 3 ? null :assessmentToolsSelect=l)" (click)="(m < 3 ? null :dataSelect=data);(m < 3 ? null :assessmentToolsSelect=l)"
[attr.data-hs-overlay]="m < 3 ? null : '#assessment-tools-modal'"> [attr.data-hs-overlay]="m < 3 ? null : '#assessment-tools-modal'">
<ng-container [ngSwitch]="m < 3"> <ng-container [ngSwitch]="m < 3">
<ng-container *ngSwitchCase="true"> <ng-container *ngSwitchCase="true">
<span class="hs-tooltip-toggle"> <a class="hs-tooltip-toggle" href="javascript:;">
{{item.nameShow}} {{item.nameShow}}
<div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip"> <div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip">
{{item.code}} : {{item.name}} {{item.code}} : {{item.name}}
</div> </div>
</span> </a>
<div class="ciricon flex text-start items-center cursor-pointer"> <div class="ciricon flex text-start items-center cursor-pointer">
<i class="ri-close-line text-red-500"></i> <i class="ri-close-line text-red-500"></i>
</div> </div>
</ng-container> </ng-container>
<ng-container *ngSwitchDefault> <ng-container *ngSwitchDefault>
<span class="hs-tooltip-toggle"> <a class="hs-tooltip-toggle" href="javascript:;">
... ...
<div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip"> <div class="hs-tooltip-content ti-main-tooltip-content" role="tooltip">
คลิกเพื่อดูเครื่องมือประเมินเพิ่มเติม คลิกเพื่อดูเครื่องมือประเมินเพิ่มเติม
</div> </div>
</span> </a>
</ng-container> </ng-container>
</ng-container> </ng-container>
</button> </button>
...@@ -194,14 +194,14 @@ ...@@ -194,14 +194,14 @@
<span *ngFor="let item of data.curriculum;" <span *ngFor="let item of data.curriculum;"
class="grid grid-cols-12 border rounded-sm px-5px bg-white"> class="grid grid-cols-12 border rounded-sm px-5px bg-white">
<span class="col-span-11 align-center truncate"> <span class="col-span-11 align-center truncate">
<div class="hs-tooltip ti-main-tooltip [--trigger:hover] flex truncate"> <div class="hs-tooltip ti-main-tooltip [--trigger:click] flex truncate">
<div class="hs-tooltip-toggle cursor-pointer truncate"> <a class="hs-tooltip-toggle cursor-pointer truncate" href="javascript:;">
{{item.name}} {{item.name}}
<div class="hs-tooltip-content ti-main-tooltip-content" <div class="hs-tooltip-content ti-main-tooltip-content"
role="tooltip"> role="tooltip">
{{item.name}} {{item.name}}
</div> </div>
</div> </a>
</div> </div>
</span> </span>
......
...@@ -37,6 +37,7 @@ import { NameRegistrationPerfomanceComponent } from '../performance-management-e ...@@ -37,6 +37,7 @@ import { NameRegistrationPerfomanceComponent } from '../performance-management-e
import { EvaluationFactorsComponent } from '../performance-management-evaluation/evaluation-factors/evaluation-factors.component'; import { EvaluationFactorsComponent } from '../performance-management-evaluation/evaluation-factors/evaluation-factors.component';
import { GradeRegistrationComponent } from '../competency-assessment/grade-registration/grade-registration.component'; import { GradeRegistrationComponent } from '../competency-assessment/grade-registration/grade-registration.component';
import { SettingPerformanceEvalutionComponent } from '../performance-management-evaluation/setting-performance-evalution/setting-performance-evalution.component'; import { SettingPerformanceEvalutionComponent } from '../performance-management-evaluation/setting-performance-evalution/setting-performance-evalution.component';
import { SelfEvaluationComponent } from '../Performance Evaluation/self-evaluation/self-evaluation.component';
...@@ -58,31 +59,32 @@ const routes: Routes = [ ...@@ -58,31 +59,32 @@ const routes: Routes = [
{ path: "dashboard/course", component: CourseComponent }, { path: "dashboard/course", component: CourseComponent },
// myComponent // myComponent
{ path: "company-registration",title: 'ทะเบียนบริษัท', component: CompanyRegistrationComponent }, { path: "company-registration", title: 'ทะเบียนบริษัท', component: CompanyRegistrationComponent },
{ path: "job-description",title: 'ข้อมูลลักษณะงาน', component: JobDescriptionComponent }, { path: "job-description", title: 'ข้อมูลลักษณะงาน', component: JobDescriptionComponent },
{ path: "account-settings",title: 'ตั้งค่าผู้ใช้งาน', component: AccountSettingsComponent }, { path: "account-settings", title: 'ตั้งค่าผู้ใช้งาน', component: AccountSettingsComponent },
{ path: "name-registration",title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationComponent }, { path: "name-registration", title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationComponent },
{ path: "tool-register",title: 'ทะเบียนเครื่องมือ', component: ToolRegisterComponent }, { path: "tool-register", title: 'ทะเบียนเครื่องมือ', component: ToolRegisterComponent },
{ path: "competency-management",title: 'การจัดการสมรรถนะ', component: CompetencyManagementComponent }, { path: "competency-management", title: 'การจัดการสมรรถนะ', component: CompetencyManagementComponent },
{ path: "job-detail-management",title: 'การจัดการรายละเอียดงาน', component: JobDetailManagementComponent }, { path: "job-detail-management", title: 'การจัดการรายละเอียดงาน', component: JobDetailManagementComponent },
{ path: "course-registration",title: 'ทะเบียนหลักสูตร', component: CourseRegistrationComponent }, { path: "course-registration", title: 'ทะเบียนหลักสูตร', component: CourseRegistrationComponent },
{ path: "edit-group-competencies",title: 'แก้ไขกลุ่มสมรรถนะ', component: EditGroupCompetenciesComponent }, { path: "edit-group-competencies", title: 'แก้ไขกลุ่มสมรรถนะ', component: EditGroupCompetenciesComponent },
{ path: "evaluation-cycle-manager",title: 'การจัดการรอบการประเมิน', component: EvaluationCycleManagerComponent }, { path: "evaluation-cycle-manager", title: 'การจัดการรอบการประเมิน', component: EvaluationCycleManagerComponent },
{ path: "setting-competency",title: 'การตั้งค่า', component: SettingCompetencyComponent }, { path: "setting-competency", title: 'การตั้งค่า', component: SettingCompetencyComponent },
{ path: "idp-development-plan",title: 'เเผนพัฒนา IDP', component: IdpDevelopmentPlanComponent }, { path: "idp-development-plan", title: 'เเผนพัฒนา IDP', component: IdpDevelopmentPlanComponent },
{ path: "job-competency",title: 'ความรู้ ทักษะ ความสามารถในตำเเหน่งงาน', component: JobCompetencyComponent }, { path: "job-competency", title: 'ความรู้ ทักษะ ความสามารถในตำเเหน่งงาน', component: JobCompetencyComponent },
{ path: "job-qualifications",title: 'คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่', component: JobQualificationsComponent }, { path: "job-qualifications", title: 'คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่', component: JobQualificationsComponent },
{ path: "job-detail",title: 'รายละเอียดของงาน', component: JobDetailComponent }, { path: "job-detail", title: 'รายละเอียดของงาน', component: JobDetailComponent },
{ path: "command-structure",title: 'โครงสร้างสายการบังคับบัญชา', component: CommandStructureComponent }, { path: "command-structure", title: 'โครงสร้างสายการบังคับบัญชา', component: CommandStructureComponent },
{ path: "assessment-management",title: 'การจัดการการประเมิน', component: AssessmentManagementComponent }, { path: "assessment-management", title: 'การจัดการการประเมิน', component: AssessmentManagementComponent },
{ path: "job-position-indicators",title: 'ตัวชี้วัดของตำแหน่งงาน', component: JobPositionIndicatorsComponent }, { path: "job-position-indicators", title: 'ตัวชี้วัดของตำแหน่งงาน', component: JobPositionIndicatorsComponent },
{ path: "evaluation-cycle-performance",title: 'รอบการประเมิน', component: EvaluationCyclePerformanceComponent }, { path: "evaluation-cycle-performance", title: 'รอบการประเมิน', component: EvaluationCyclePerformanceComponent },
{ path: "supervisor-evaluation",title: 'ประเมินโดยหัวหน้า', component: SupervisorEvaluationComponent }, { path: "supervisor-evaluation", title: 'ประเมินโดยหัวหน้า', component: SupervisorEvaluationComponent },
{ path: "employee-registration",title: 'ทะเบียนพนักงาน', component: EmployeeRegistrationComponent }, { path: "employee-registration", title: 'ทะเบียนพนักงาน', component: EmployeeRegistrationComponent },
{ path: "name-registration-perfomance",title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationPerfomanceComponent }, { path: "name-registration-perfomance", title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationPerfomanceComponent },
{ path: "evaluation-factors",title: 'การประเมินจัดการประสิทธิภาพ', component: EvaluationFactorsComponent }, { path: "evaluation-factors", title: 'การประเมินจัดการประสิทธิภาพ', component: EvaluationFactorsComponent },
{ path: "grade-registration",title: 'ทะเบียนเกรด', component: GradeRegistrationComponent }, { path: "grade-registration", title: 'ทะเบียนเกรด', component: GradeRegistrationComponent },
{ path: "setting-performance-evalution",title: 'การตั้งค่า', component: SettingPerformanceEvalutionComponent }, { path: "setting-performance-evalution", title: 'การตั้งค่า', component: SettingPerformanceEvalutionComponent },
{ path: "self-evaluation", title: 'ประเมินตนเอง', component: SelfEvaluationComponent },
] ]
} }
......
...@@ -109,6 +109,7 @@ import { EditGroupGradeComponent } from '../competency-assessment/grade-registra ...@@ -109,6 +109,7 @@ import { EditGroupGradeComponent } from '../competency-assessment/grade-registra
import { SubGradeRegistrationComponent } from '../competency-assessment/grade-registration/grade-management/sub-grade-registration/sub-grade-registration.component'; import { SubGradeRegistrationComponent } from '../competency-assessment/grade-registration/grade-management/sub-grade-registration/sub-grade-registration.component';
import { SettingPerformanceEvalutionComponent } from '../performance-management-evaluation/setting-performance-evalution/setting-performance-evalution.component'; import { SettingPerformanceEvalutionComponent } from '../performance-management-evaluation/setting-performance-evalution/setting-performance-evalution.component';
import { AssessmentSystemConfigurationComponent } from '../performance-management-evaluation/setting-performance-evalution/assessment-system-configuration/assessment-system-configuration.component'; import { AssessmentSystemConfigurationComponent } from '../performance-management-evaluation/setting-performance-evalution/assessment-system-configuration/assessment-system-configuration.component';
import { SelfEvaluationComponent } from '../Performance Evaluation/self-evaluation/self-evaluation.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -200,6 +201,7 @@ import { AssessmentSystemConfigurationComponent } from '../performance-managemen ...@@ -200,6 +201,7 @@ import { AssessmentSystemConfigurationComponent } from '../performance-managemen
SubGradeRegistrationComponent, SubGradeRegistrationComponent,
SettingPerformanceEvalutionComponent, SettingPerformanceEvalutionComponent,
AssessmentSystemConfigurationComponent, AssessmentSystemConfigurationComponent,
SelfEvaluationComponent
], ],
imports: [ imports: [
CommonModule, CommonModule,
......
...@@ -155,6 +155,7 @@ export class NavService implements OnDestroy { ...@@ -155,6 +155,7 @@ export class NavService implements OnDestroy {
active: false, active: false,
path: '/supervisor-evaluation', path: '/supervisor-evaluation',
children: [ children: [
{ path: '/self-evaluation', title: 'ประเมินตนเอง', type: 'link' },
{ path: '/', title: 'การจัดการการประเมิน', type: 'link' }, { path: '/', title: 'การจัดการการประเมิน', type: 'link' },
{ path: '/supervisor-evaluation', title: 'ประเมินโดยหัวหน้า', type: 'link' }, { path: '/supervisor-evaluation', title: 'ประเมินโดยหัวหน้า', type: 'link' },
], ],
......
...@@ -24766,6 +24766,10 @@ div:where(.swal2-container) div:where(.swal2-validation-message) { ...@@ -24766,6 +24766,10 @@ div:where(.swal2-container) div:where(.swal2-validation-message) {
.rounded-4px { .rounded-4px {
border-radius: 4px; border-radius: 4px;
} }
.rounded-top-4px {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.rounded-top-0\.65rem { .rounded-top-0\.65rem {
border-top-left-radius: 0.65rem; border-top-left-radius: 0.65rem;
...@@ -24848,3 +24852,16 @@ div:where(.swal2-container) div:where(.swal2-validation-message) { ...@@ -24848,3 +24852,16 @@ div:where(.swal2-container) div:where(.swal2-validation-message) {
.\!pl-0 { .\!pl-0 {
padding-left: 0 !important; padding-left: 0 !important;
} }
.\-mx-2rem {
margin-left: -2rem;
margin-right: -2rem;
}
.ti-custom-table-hover2 tbody tr.table-hover2 {
--tw-bg-opacity: 1;
background-color: rgb(241 245 249 / var(--tw-bg-opacity));
}
.border-none {
border: none;
}
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