Commit 8ea07e73 by Nattana Chaiyamat

ภาษาไทย อังกฤษ

parent cd85c406
......@@ -36,7 +36,7 @@
<a (click)="onSendPathTitle('SubSection 4');currentTab=7"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-7" data-hs-tab="#card-type-7" aria-controls="card-type-7">
{{ 'SubSectio 4' | translate }}
{{ 'SubSection 4' | translate }}
</a>
</nav>
<div class="pt-50px">
......
......@@ -22,18 +22,18 @@ interface table {
export class DepartmentListComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu2id",
headerText: "ทะเบียนแผนก",
headerText: "DepartmentCode",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "ทะเบียนแผนก (ไทย)",
headerText: "DepartmentDescThai",
type: "string"
},
{
field: "edesc",
headerText: "ทะเบียนแผนก (อังกฤษ)",
headerText: "DepartmentDescEng",
type: "string"
}]
searchSettings = {
......
......@@ -24,18 +24,18 @@ export class DepartmentRegisterComponent implements OnInit {
bu1: { loading: boolean, select: Bu1Model, dataList: Bu1Model[] } = { loading: false, select: new MyBu1Model(), dataList: [] }
columns: ColumnModel[] = [{
field: "bu1id",
headerText: "CompanyCode",
headerText: "DivisionCode",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "CompanyDescThai",
headerText: "DivisionDescThai",
type: "string"
},
{
field: "edesc",
headerText: "CompanyDescEng",
headerText: "DivisionDescEng",
type: "string"
}]
searchSettings = {
......
......@@ -37,18 +37,18 @@ export class SectionRegistrationComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu3id",
headerText: "รหัสส่วน",
headerText: "SectionCode",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "รายละเอียดส่วน (ไทย)",
headerText: "SectionDescThai",
type: "string"
},
{
field: "edesc",
headerText: "รายละเอียดส่วน (อังกฤษ)",
headerText: "SectionDescEng",
type: "string"
}]
searchSettings = {
......@@ -188,19 +188,19 @@ export class SectionRegistrationComponent implements OnInit {
this.bu3.loading = true
this.bu3Service.post({ ...this.bu3.select, parent: this.bu2.bu2id }).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu3List()
this.closeDialog()
} else {
this.showAlert(response.message, 'error')
this.bu3.loading = false
this.closeDialog()
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu3.loading = false
this.closeDialog()
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu3List()
this.closeDialog()
} else {
this.showAlert(response.message, 'error')
this.bu3.loading = false
this.closeDialog()
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu3.loading = false
this.closeDialog()
}
})
}
......@@ -223,19 +223,19 @@ export class SectionRegistrationComponent implements OnInit {
const selectedKeys = Array.from(this.selectedItems.data.keys());
const body = this.bu3.dataList.filter(x => selectedKeys.includes(x.bu3id) && this.selectedItems.data.get(x.bu3id)).map(x => new MyBu3Model(x))
this.bu3Service.delete(body).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu3List()
} else {
this.showAlert(response.message, 'error')
this.bu3.loading = false
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu3.loading = false
}
})
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu3List()
} else {
this.showAlert(response.message, 'error')
this.bu3.loading = false
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu3.loading = false
}
})
}
})
}
......
......@@ -38,18 +38,18 @@ export class SubDepartmentFourComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu7id",
headerText: "รหัสส่วนย่อย 4",
headerText: "SubSection4Code",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "รายละเอียดส่วนย่อย4 (ไทย)",
headerText: "SubSection4DescThai",
type: "string"
},
{
field: "edesc",
headerText: "รายละเอียดส่วนย่อย4 (อังกฤษ)",
headerText: "SubSection4DescEng",
type: "string"
}]
searchSettings = {
......@@ -193,7 +193,7 @@ export class SubDepartmentFourComponent implements OnInit {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu7List()
this.closeDialog()
this.closeDialog()
} else {
this.showAlert(response.message, 'error')
this.bu7.loading = false
......
......@@ -44,18 +44,18 @@ export class SubDepartmentOneComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu4id",
headerText: "รหัสส่วนย่อย 1",
headerText: "SubSection1Code",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "รายละเอียดย่อย1 (ไทย)",
headerText: "SubSection1DescThai",
type: "string"
},
{
field: "edesc",
headerText: "รายละเอียดย่อย1 (อังกฤษ)",
headerText: "SubSection1DescEng",
type: "string"
}]
searchSettings = {
......@@ -81,7 +81,7 @@ export class SubDepartmentOneComponent implements OnInit {
ngOnInit(): void {
this.getBu4List()
this.getBu3List()
}
}
openDialog() {
this.dialogRef = this.dialog.open(this.subDepartmentOneModal, {
......@@ -191,26 +191,26 @@ export class SubDepartmentOneComponent implements OnInit {
text: 'ยืนยันการบันทึกข้อมูลหรือไม่',
showCancelButton: true,
confirmButtonText: 'บันทึกข้อมูล',
}).then((result) => {
}).then((result) => {
if (result.isConfirmed) {
this.bu4.loading = true
this.bu4Service.post({ ...this.bu4.select, parent: this.bu3.bu3id }).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu4List()
this.closeDialog()
} else {
this.showAlert(response.message, 'error')
this.bu4.loading = false
this.closeDialog()
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu4.loading = false
this.closeDialog()
}
})
this.bu4.loading = true
this.bu4Service.post({ ...this.bu4.select, parent: this.bu3.bu3id }).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu4List()
this.closeDialog()
} else {
this.showAlert(response.message, 'error')
this.bu4.loading = false
this.closeDialog()
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu4.loading = false
this.closeDialog()
}
})
}
})
}
......
......@@ -39,18 +39,18 @@ export class SubDepartmentThreeComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu6id",
headerText: "รหัสส่วนย่อย 3",
headerText: "SubSection3Code",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "รายละเอียดย่อย3 (ไทย)",
headerText: "SubSection3DescThai",
type: "string"
},
{
field: "edesc",
headerText: "รายละเอียดย่อย3 (อังกฤษ)",
headerText: "SubSection3DescEng",
type: "string"
}]
searchSettings = {
......@@ -207,7 +207,7 @@ export class SubDepartmentThreeComponent implements OnInit {
}
})
}
deleteBu6() {
if (this.numSelectItem() == 0) {
......@@ -222,23 +222,23 @@ export class SubDepartmentThreeComponent implements OnInit {
confirmButtonText: 'ลบข้อมูล',
}).then((result) => {
if (result.isConfirmed) {
this.bu6.loading = true
const selectedKeys = Array.from(this.selectedItems.data.keys());
const body = this.bu6.dataList.filter(x => selectedKeys.includes(x.bu6id) && this.selectedItems.data.get(x.bu6id)).map(x => new MyBu6Model(x))
this.bu6Service.delete(body).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu6List()
} else {
this.showAlert(response.message, 'error')
this.bu6.loading = false
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu6.loading = false
}
})
this.bu6.loading = true
const selectedKeys = Array.from(this.selectedItems.data.keys());
const body = this.bu6.dataList.filter(x => selectedKeys.includes(x.bu6id) && this.selectedItems.data.get(x.bu6id)).map(x => new MyBu6Model(x))
this.bu6Service.delete(body).subscribe({
next: response => {
if (response.success) {
this.showAlert(response.message, 'success')
this.getBu6List()
} else {
this.showAlert(response.message, 'error')
this.bu6.loading = false
}
}, error: error => {
this.showAlert(error.message, 'error')
this.bu6.loading = false
}
})
}
})
}
......
......@@ -37,18 +37,18 @@ export class SubDepartmentTwoComponent implements OnInit {
columns: ColumnModel[] = [{
field: "bu5id",
headerText: "รหัสส่วนย่อย 2",
headerText: "SubSection2Code",
type: "string",
isPrimaryKey: true,
},
{
field: "tdesc",
headerText: "รายละเอียดย่อย2 (ไทย)",
headerText: "SubSection2DescThai",
type: "string"
},
{
field: "edesc",
headerText: "รายละเอียดย่อย2 (อังกฤษ)",
headerText: "SubSection2DescEng",
type: "string"
}]
searchSettings = {
......
......@@ -18,8 +18,8 @@ export class PositionUnitComponent implements OnInit {
position: { loading: boolean, select: PositionModel, dataList: PositionModel[] } = { loading: false, select: new MyPositionModel(), dataList: [] }
columns: ColumnModel[] = [{
field: "PositionCode",
headerText: "รหัสตำเเหน่ง",
field: "positionId",
headerText: "PositionCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -54,7 +54,7 @@
<ng-container *ngFor="let item of comEvaluationFactorsTableHeader; let f = first; let l = last">
<th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary"
[class.!text-center]="f||l">
<span class="font-size-12px font-weight-700">{{ item }}</span>
<span class="font-size-12px font-weight-700">{{ item | translate}}</span>
<div class="absolute top-1/2 transform -translate-y-1/2 right-0" *ngIf="!l">
<i class="ti ti-dots-vertical fs-l"></i>
</div>
......
......@@ -12,7 +12,7 @@ export class CompetencyDefineEvaluationFactorsComponent {
page = Array.from({ length: 1 }, (_, i) => i + 1);
search = ""
comEvaluationFactors: { loading: boolean, dataList: ComEvaluationFactorsModel[] } = { loading: false, dataList: [] }
comEvaluationFactorsTableHeader: string[] = ['ลักษณะงาน']
comEvaluationFactorsTableHeader: string[] = ['JobLevel(JL)']
constructor(private comEvaluationFactorsService: ComEvaluationFactorsService,
private toastr: ToastrService,
private cdr: ChangeDetectorRef
......@@ -22,7 +22,7 @@ export class CompetencyDefineEvaluationFactorsComponent {
}
getComEvaluationFactorsList() {
this.comEvaluationFactors.loading = true
this.comEvaluationFactorsTableHeader = ['ลักษณะงาน']
this.comEvaluationFactorsTableHeader = ['JobLevel(JL)']
this.comEvaluationFactorsService.getList().subscribe({
next: response => {
this.comEvaluationFactors.dataList = response.map(x => new MyComEvaluationFactorsModel(x))
......
......@@ -3,7 +3,7 @@
</div>
<div class="block-main-content">
<div class="font-size-18px font-weight-700 pt-1.5rem text-primary px-2rem">
ปัจจัยการประเมินสมรรถนะ
{{'menu.CompetencyFactors' | translate}}
</div>
<div class="page pt-0.75rem">
<div class="border-b border-gray-200 dark:border-white/10 px-2rem">
......@@ -11,7 +11,7 @@
<a class="text-base font-medium hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1">
กำหนดปัจจัยการประเมินสมรรถนะ
{{'CompetencyFactorsSetting' | translate}}
</a>
</nav>
</div>
......
......@@ -6,5 +6,5 @@ import { Component } from '@angular/core';
styleUrls: ['./competency-evaluation-factors.component.scss']
})
export class CompetencyEvaluationFactorsComponent {
pathTitle = ['การประเมินสมรรถนะ', 'ปัจจัยการประเมินสมรรถนะ', 'กำหนดปัจจัยการประเมินสมรรถนะ']
pathTitle = ['CompetencySystem', 'menu.CompetencyFactors', 'CompetencyFactorsSetting']
}
\ No newline at end of file
......@@ -81,7 +81,7 @@
<thead class="height-50px">
<tr class="font-size-12px">
<ng-container
*ngFor="let item of ['ExpectationLevel','BehavioralIndicators','AssessmentTools','CDR']; let f = first; let l = last">
*ngFor="let item of ['ProficiencyLevel','BehavioralIndicators','AssessmentTools','CDR']; let f = first; let l = last">
<th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary"
[class.!text-center]="f||l">
<span class="font-size-12px font-weight-700">{{ item | translate }}</span>
......
......@@ -38,7 +38,7 @@
<div class="grid grid-cols-3 gap-6 mt-10">
<div class="col-span-1">
<label for="hs-trailing-button-add-on-with-icon" class="ti-form-label">
{{'ExpectationLevel' | translate}} <span class="text-danger">*</span></label>
{{'ProficiencyLevel' | translate}} <span class="text-danger">*</span></label>
</div>
</div>
<div class="grid grid-cols-3 gap-6">
......
<div class="relative">
<div class="flex relative before:absolute before:w-full before:h-full bg-gradient-custom"
style="margin-top: -50px;margin-left: -100px;margin-right: -100px">
<div class="h-[500px] w-full rounded-sm"></div>
</div>
<div class="main-content " style="margin-top:-29rem">
<div class="grid grid-cols-12 gap-x-6">
<div class="col-span-12 xxl:col-span-2">
</div>
<div class="col-span-12 xxl:col-span-8">
<div class="box" style="border-radius:20px">
<div class="box-header">
<div class="grid grid-cols-12 gap-x-6 mb-3 mt-3">
<div class="col-span-12">
<h5 class="box-title mb-3 text-center">ตาราง Mapping ระดับความคาดหวังกับตำแหน่งงาน</h5>
</div>
</div>
<nav class="sm:flex sm:space-x-2 space-y-2 sm:space-y-0 rtl:space-x-reverse block"
aria-label="Tabs" role="tablist" style="max-width: 250px;">
<button type="button" style="border-radius:20px"
class="py-2 px-3 inline-flex items-center w-full justify-center gap-2 text-sm font-medium text-center border text-gray-500 rounded-sm hover:text-gray-700 active"
id="part-item-1" data-hs-tab="#part-1" aria-controls="part-1" role="tab">
<!-- hs-tab-active:text-white hs-tab-active:bg-primary hs-tab-active:border-primary -->
{{'Mapping' | translate}}
</button>
</nav>
</div>
<div class="box-body">
<div id="part-1" class="" role="tabpanel" aria-labelledby="part-item-1">
<ng-container *ngTemplateOutlet="part1"></ng-container>
</div>
</div>
</div>
</div>
<div class="col-span-12 xxl:col-span-2">
</div>
</div>
</div>
</div>
<ng-template #part1>
<div class="p-2 pt-0">
<table class="ti-custom-table ti-custom-table-head ti-custom-table-hover">
<thead>
<tr>
<th scope="col" class=" px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">ตำแหน่ง</span>
</th>
<th scope="col" class=" px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">CC</span>
</th>
<th scope="col" class=" px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">MC</span>
</th>
<th scope="col" class=" px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">FC</span>
</th>
<th scope="col" class=" px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">TC</span>
</th>
</tr>
</thead>
<tbody>
<tr style="align-items: start">
<td style="vertical-align: top;" class="text-center">
-
</td>
<td style="vertical-align: top;" class="text-center">
-
</td>
<td style="vertical-align: top;" class="text-center">
-
</td>
<td style="vertical-align: top;" class="text-center">
-
</td>
<td style="vertical-align: top;" class="text-center">
-
</td>
</tr>
</tbody>
</table>
</div>
</ng-template>
\ No newline at end of file
.bg-gradient-custom {
background: linear-gradient(135deg, #4f46e5, #ec4899 60%, #f59e0b);
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
mask-size: 100% 100%;
mask-repeat: no-repeat;
}
\ No newline at end of file
import { ViewportScroller } from '@angular/common';
import { ChangeDetectorRef, Component } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { ToastrService } from 'ngx-toastr';
import { EmployeeModel, MyEmployeeModel } from 'src/app/shared/model/employee.model';
import { JobCodeModel, MyJobCodeModel } from 'src/app/shared/model/job-code.model';
import { MyStatusModel, StatusModel } from 'src/app/shared/model/status.model';
import { EmpStatusService } from 'src/app/shared/services/emp-status.service';
import { EmployeeService } from 'src/app/shared/services/employee.service';
import { EventgrpService } from 'src/app/shared/services/eventgrp.service';
import { FileService } from 'src/app/shared/services/file.service';
import { JobcodeService } from 'src/app/shared/services/jobcode.service';
import { PmsWorkingTimeService } from 'src/app/shared/services/pms-working-time.service';
export interface BiModel {
name: string,
tools: string[],
degree: string
}
@Component({
selector: 'app-competency-mapping',
templateUrl: './competency-mapping.component.html',
styleUrls: ['./competency-mapping.component.scss']
})
export class CompetencyMappingComponent {
pathTitle = ['menu.Organization', 'ข้อมูลลักษณะงาน (JD)']
currentPage = 1
empDetail: { loading: boolean, data: JobCodeModel } = { loading: false, data: new MyJobCodeModel({}) }
constructor(
private toastr: ToastrService,
private cdr: ChangeDetectorRef,
private dialog: MatDialog,
private fileService: FileService,
private eventgrpService: EventgrpService,
private jobcode: JobcodeService,
private translateService: TranslateService
) {
this.translateService.onLangChange.subscribe((event) => {
});
}
ngOnInit(): void {
this.getEmp()
}
getEmp() {
this.empDetail.loading = true
this.jobcode.getEmp().subscribe({
next: response => {
this.empDetail.data = new MyJobCodeModel(response)
this.empDetail.loading = false
this.cdr.detectChanges()
}, error: error => {
this.empDetail.loading = false
this.cdr.detectChanges()
}
})
}
}
\ No newline at end of file
......@@ -59,6 +59,7 @@ import { SettingIndividualKpiSupervisorComponent } from '../setting-individual-k
import { CompetencyEvaluationFactorsComponent } from '../competency-assessment/competency-evaluation-factors/competency-evaluation-factors.component';
import { ReportCompetencySummaryComponent } from '../report-component/report-com/report-competency-summary/report-competency-summary.component';
import { JobDescriptionEmpComponent } from '../job-description-emp/job-description-emp.component';
import { CompetencyMappingComponent } from '../competency-mapping/competency-mapping.component';
......@@ -133,6 +134,7 @@ const routes: Routes = [
{ path: "ess/supervisor-setting-individual-kpi", title: 'แก้ไข Individual KPI โดยหัวหน้า', component: SettingIndividualKpiSupervisorComponent },
// { path: "admin/job-description-emp", title: 'รายละเอียดของงาน', component: JobDescriptionEmpComponent },
{ path: "ess/job-description-emp", title: 'รายละเอียดของงาน', component: JobDescriptionEmpComponent },
{ path: "ess/competency-mapping", title: 'รายละเอียดของงาน', component: CompetencyMappingComponent },
]
}
];
......
......@@ -210,6 +210,7 @@ import { CompetencyDefineEvaluationFactorsComponent } from '../competency-assess
import { TranslateModule } from '@ngx-translate/core';
import { ReportCompetencySummaryComponent } from '../report-component/report-com/report-competency-summary/report-competency-summary.component';
import { JobDescriptionEmpComponent } from '../job-description-emp/job-description-emp.component';
import { CompetencyMappingComponent } from '../competency-mapping/competency-mapping.component';
export const MY_DATE_FORMATS = {
parse: {
......@@ -359,7 +360,8 @@ export class CustomDateAdapter extends NativeDateAdapter {
SettingIndividualKpiComponent,
SettingIndividualKpiSupervisorComponent,
JobDescriptionEmpComponent,
MoneyInputDirective
MoneyInputDirective,
CompetencyMappingComponent
], imports: [
TranslateModule,
CommonModule,
......
......@@ -59,7 +59,7 @@ export class EmployeeSelfServiceComponent {
{ text: "ช่วงเวลาการประเมิน", link: "/admin/evaluation-cycle-manager" },
{ text: "การวิเคราะห์ GAP", description: "รอคอนเฟิร์ม คาดว่าเป็นรายงาน" }],
[{ text: "Skill Map", description: "รายงาน Skill Map" },
{ text: "Competency Mapping", description: "หน้าใหม่ ดูที่ใบงาน #50563" },
{ text: "Competency Mapping", link: "/ess/competency-mapping" },
{ text: "CDR", description: "หน้าใหม่ แสดง List หลักสูตร" }],
[{ text: "IDP", link: "/ess/self-evaluation/idp" },
{ text: "Competency Base Pay", description: "รายงาน Competency Base Pay" }]
......
......@@ -26,7 +26,7 @@ export class SubJobCompetencyComponent {
currentModal: 'add' | 'edit' | 'delete' = "add"
columns: ColumnModel[] = [{
field: "jobcodeId",
headerText: "LoginName",
headerText: "JDCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -80,7 +80,7 @@ export class ImportDataComponent {
currentModal: 'add' | 'edit' | 'delete' = "add"
columns: ColumnModel[] = [{
field: "jobcodeId",
headerText: "LoginName",
headerText: "JDCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -24,7 +24,7 @@ export class WorkDetailComponent {
currentModal: 'add' | 'edit' | 'delete' = "add"
columns: ColumnModel[] = [{
field: "jobcodeId",
headerText: "LoginName",
headerText: "JDCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -25,7 +25,7 @@ export class SubJobPositionIndicatorsComponent {
currentModal: 'add' | 'edit' | 'delete' = "add"
columns: ColumnModel[] = [{
field: "jobcodeId",
headerText: "LoginName",
headerText: "JDCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -27,7 +27,7 @@ export class SubJobQualificationsComponent {
columns: ColumnModel[] = [{
field: "jobcodeId",
headerText: "LoginName",
headerText: "JDCode",
type: "string",
isPrimaryKey: true,
},
......
......@@ -36,9 +36,9 @@
<thead>
<tr>
<ng-container
*ngFor="let item of ['ชื่อพนักงาน','ลำดับที่ 1','ลำดับที่ 2','ลำดับที่ 3','ลำดับที่ 4','ลำดับที่ 5','การจัดการ']; let f = first; let l = last; let i = index">
*ngFor="let item of ['EmployeeName','Approver1','Approver2','Approver3','Approver4','Approver5','การจัดการ']; let f = first; let l = last; let i = index">
<th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">{{ item }}</span>
<span class="font-size-12px font-weight-700">{{ item | translate}}</span>
<div class="absolute top-1/2 transform -translate-y-1/2 right-0" *ngIf="!l">
<i class="ti ti-dots-vertical fs-l"></i>
</div>
......
......@@ -125,7 +125,7 @@
[(ngModel)]="pmsMasfromEvaluation.select.apsPeriodEnd" [ngClass]="{'!bg-input-readonly': modalStatus == 'edit'}"
[readonly]="modalStatus =='edit'">
<label for="input-label" class="ti-form-label mt-2rem">{{'ลักษณะงาน (JD)'| translate }}</label>
<label for="input-label" class="ti-form-label mt-2rem">{{'JobDescription(JD)'| translate }}</label>
<div *ngFor="let item of pmsMasfromEvaluation.select.jd;let i = index;let f=first;let l = last"
class="grid grid-cols-2">
<div class="col-span-1">
......
......@@ -95,7 +95,11 @@ export class SidebarComponent {
this.currentUrl = this.router.url
this.isESSRoute = this.currentUrl.includes('/ess');
this.isAdminRoute = this.currentUrl.includes('/admin');
this.showSideMenu = this.currentUrl.includes('my-skill-x-module') || this.currentUrl.includes('employee-self-service') || this.currentUrl.includes('ess/profile') || this.currentUrl.includes('ess/job-description')
this.showSideMenu = this.currentUrl.includes('my-skill-x-module') ||
this.currentUrl.includes('employee-self-service') ||
this.currentUrl.includes('ess/profile') ||
this.currentUrl.includes('ess/competency-mapping') ||
this.currentUrl.includes('ess/job-description')
if (this.showSideMenu) {
const html: any = this.elementRef.nativeElement.ownerDocument.documentElement;;
html.style = '';
......@@ -164,7 +168,11 @@ export class SidebarComponent {
// Update the boolean values
this.isESSRoute = this.currentUrl.includes('/ess');
this.isAdminRoute = this.currentUrl.includes('/admin');
this.showSideMenu = this.currentUrl.includes('my-skill-x-module') || this.currentUrl.includes('employee-self-service') || this.currentUrl.includes('ess/profile') || this.currentUrl.includes('ess/job-description')
this.showSideMenu = this.currentUrl.includes('my-skill-x-module') ||
this.currentUrl.includes('employee-self-service') ||
this.currentUrl.includes('ess/profile') ||
this.currentUrl.includes('ess/competency-mapping') ||
this.currentUrl.includes('ess/job-description')
if (this.showSideMenu) {
const html: any = this.elementRef.nativeElement.ownerDocument.documentElement;;
html.style = '';
......
......@@ -5,11 +5,11 @@
"Dashboard": "Dashboard",
"Organization": "Organization",
"Company": "Company",
"JobDescription": "JobDescription",
"JobDescription": "Job Description",
"Employee": "Employee",
"LeaveType": "LeaveType",
"UserSetting": "UserSetting",
"AccessPermissions": "AccessPermissions",
"UserSetting": "User Setting",
"AccessPermissions": "Access Permissions",
"JobDescriptionJD": "Job Description (JD)",
"GeneralInformation": "General Information",
"OrganizationChart": "Organization Chart",
......@@ -54,6 +54,10 @@
"Department": "Department",
"Section": "Section",
"SubSection": "Sub Section {{n}}",
"SubSection 1": "Sub Section 1",
"SubSection 2": "Sub Section 2",
"SubSection 3": "Sub Section 3",
"SubSection 4": "Sub Section 4",
"Items": "Items",
"EmployeeGroup": "Employee Group",
"Position": "Position",
......@@ -154,7 +158,7 @@
"JobDescriptionThai": "Description (Thai)",
"JobDescriptionEng": "Description (Eng)",
"NoInformation": "No information",
"CompetencyTopics_list": "CompetencyTopics",
"CompetencyTopics_list": "Competency Topics",
"Competency_Code": "Code",
"Approver1": "Approver 1",
"Approver2": "Approver 2",
......@@ -202,5 +206,28 @@
"Part 3 : Job Detail": "Part 3 : Job Detail",
"Part 4 : Job Specification": "Part 4 : Job Specification",
"Part 5 : Job Competency": "Part 5 : Job Competency",
"Part 6 : Key Performance Indicators: KPIs": "Part 6 : Key Performance Indicators: KPIs"
"Part 6 : Key Performance Indicators: KPIs": "Part 6 : Key Performance Indicators: KPIs",
"DivisionCode": "Division Code",
"DivisionDescThai": "Division Desc. (Thai)",
"DivisionDescEng": "Division Desc. (Eng)",
"DepartmentCode": "Department Code",
"DepartmentDescThai": "Department Desc. (Thai)",
"DepartmentDescEng": "Department Desc. (Eng)",
"SectionCode": "Section Code",
"SectionDescThai": "Section Desc. (Thai)",
"SectionDescEng": "Section Desc. (Eng)",
"SubSection1Code": "Sub Section 1 Code",
"SubSection1DescThai": "Sub Section 1 Desc. (Thai)",
"SubSection1DescEng": "Sub Section 1 Desc. (Eng)",
"SubSection2Code": "Sub Section 2 Code",
"SubSection2DescThai": "Sub Section 2 Desc. (Thai)",
"SubSection2DescEng": "Sub Section 2 Desc. (Eng)",
"SubSection3Code": "Sub Section 3 Code",
"SubSection3DescThai": "Sub Section 3 Desc. (Thai)",
"SubSection3DescEng": "Sub Section 3 Desc. (Eng)",
"SubSection4Code": "Sub Section 4 Code",
"SubSection4DescThai": "Sub Section 4 Desc. (Thai)",
"SubSection4DescEng": "Sub Section 4 Desc. (Eng)",
"CompetencyFactorsSetting": "Competency Factors Setting",
"JobLevel(JL)": "Job Level (JL)"
}
\ No newline at end of file
......@@ -205,5 +205,28 @@
"Part 3 : Job Detail": "ส่วนที่ 3 : รายละเอียดของงาน",
"Part 4 : Job Specification": "ส่วนที่ 4 : คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่",
"Part 5 : Job Competency": "ส่วนที่ 5 : ความรู้ ทักษะ ความสามารถในตำแหน่งงาน",
"Part 6 : Key Performance Indicators: KPIs": "ส่วนที่ 6 : ตัวชี้วัดของตำแหน่งงาน"
"Part 6 : Key Performance Indicators: KPIs": "ส่วนที่ 6 : ตัวชี้วัดของตำแหน่งงาน",
"DivisionCode": "รหัสฝ่าย",
"DivisionDescThai": "รายละเอียดฝ่าย (ไทย)",
"DivisionDescEng": "รายละเอียดฝ่าย (อังกฤษ)",
"DepartmentCode": "ทะเบียนแผนก",
"DepartmentDescThai": "ทะเบียนแผนก (ไทย)",
"DepartmentDescEng": "ทะเบียนแผนก (อังกฤษ)",
"SectionCode": "รหัสส่วน",
"SectionDescThai": "รายละเอียดส่วน (ไทย)",
"SectionDescEng": "รายละเอียดส่วน (อังกฤษ)",
"SubSection1Code": "รหัสส่วนย่อย 1",
"SubSection1DescThai": "รายละเอียดย่อย1 (ไทย)",
"SubSection1DescEng": "รายละเอียดย่อย1 (อังกฤษ)",
"SubSection2Code": "รหัสส่วนย่อย 2",
"SubSection2DescThai": "รายละเอียดย่อย2 (ไทย)",
"SubSection2DescEng": "รายละเอียดย่อย2 (อังกฤษ)",
"SubSection3Code": "รหัสส่วนย่อย 3",
"SubSection3DescThai": "รายละเอียดย่อย3 (ไทย)",
"SubSection3DescEng": "รายละเอียดย่อย3 (อังกฤษ)",
"SubSection4Code": "รหัสส่วนย่อย 4",
"SubSection4DescThai": "รายละเอียดย่อย4 (ไทย)",
"SubSection4DescEng": "รายละเอียดย่อย4 (อังกฤษ)",
"CompetencyFactorsSetting": "กำหนดปัจจัยการประเมินสมรรถนะ",
"JobLevel(JL)": "ลักษณะงาน"
}
\ 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