Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mySkill-x
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
angular
mySkill-x
Commits
1de53efd
Commit
1de53efd
authored
Sep 17, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
translate กับส่ง gap
parent
264eccfb
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
175 additions
and
98 deletions
+175
-98
company-registration-page.component.html
...egistration-page/company-registration-page.component.html
+4
-4
company-registration-page.component.ts
...-registration-page/company-registration-page.component.ts
+3
-3
company-registration.component.html
.../company-registration/company-registration.component.html
+2
-2
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+4
-1
datagrid-syncfution.component.html
...ts/datagrid-syncfution/datagrid-syncfution.component.html
+4
-4
datagrid-syncfution.component.ts
...ents/datagrid-syncfution/datagrid-syncfution.component.ts
+32
-4
pms-competency.component.html
...orm-employee/pms-competency/pms-competency.component.html
+9
-9
pms-competency.component.ts
...-form-employee/pms-competency/pms-competency.component.ts
+0
-0
pms-form-employee.component.ts
...aluation/pms-form-employee/pms-form-employee.component.ts
+13
-13
pms-information.component.html
...m-employee/pms-information/pms-information.component.html
+3
-3
edit-evaluation-form.component.ts
...rm/edit-evaluation-form/edit-evaluation-form.component.ts
+9
-9
sidebar.component.html
src/app/shared/components/sidebar/sidebar.component.html
+17
-14
appraisal-competency.model.ts
src/app/shared/model/appraisal-competency.model.ts
+2
-2
competency.model.ts
src/app/shared/model/competency.model.ts
+4
-2
evaluation-form.modal.ts
src/app/shared/model/evaluation-form.modal.ts
+2
-2
pms-masfrom-evaluation-list.model.ts
src/app/shared/model/pms-masfrom-evaluation-list.model.ts
+2
-2
navservice.ts
src/app/shared/services/navservice.ts
+8
-8
pms-evaluation-assessment.service.ts
src/app/shared/services/pms-evaluation-assessment.service.ts
+5
-5
sharedmodule.ts
src/app/shared/sharedmodule.ts
+2
-9
en.json
src/assets/i18n/en.json
+25
-1
th.json
src/assets/i18n/th.json
+25
-1
No files found.
src/app/components/company-components/company-registration/company-registration-page/company-registration-page.component.html
View file @
1de53efd
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
class=
"px-1"
>
<div
class=
"px-1"
>
<div
class=
"relative shadow-md"
>
<div
class=
"relative shadow-md"
>
<input
type=
"text"
class=
"ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
<input
type=
"text"
class=
"ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder=
"Search by No. or Nam
e"
[(
ngModel
)]="
search
"
>
[
placeholder
]="'
SearchByNoOrName
'
|
translat
e
"
[(
ngModel
)]="
search
"
>
<div
<div
class=
"absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"
>
class=
"absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"
>
<i
class=
"ri-search-line text-gray"
></i>
<i
class=
"ri-search-line text-gray"
></i>
...
@@ -16,21 +16,21 @@
...
@@ -16,21 +16,21 @@
data-hs-overlay=
"#company-registration-page-upload-modal"
data-hs-overlay=
"#company-registration-page-upload-modal"
(
click
)="
fileInput
.
value =
''
;
selectedFile=
null;selectedFileName
=
'กรุณาเลือกไฟล์'"
>
(
click
)="
fileInput
.
value =
''
;
selectedFile=
null;selectedFileName
=
'กรุณาเลือกไฟล์'"
>
<i
class=
"ti ti-file-plus"
></i>
<i
class=
"ti ti-file-plus"
></i>
import
{{'Import' | translate}}
</button>
</button>
</div>
</div>
<div
class=
"px-1"
>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
<button
type=
"button"
class=
"ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
(
click
)="
currentModal=
'add'
;
setData
()"
(
click
)="
openDialog
()"
>
(
click
)="
currentModal=
'add'
;
setData
()"
(
click
)="
openDialog
()"
>
<i
class=
"ri-add-line"
></i>
<i
class=
"ri-add-line"
></i>
Add
{{'Add' | translate}}
</button>
</button>
</div>
</div>
<div
class=
"px-1"
>
<div
class=
"px-1"
>
<button
href=
"javascript:void(0);"
class=
"ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
<button
href=
"javascript:void(0);"
class=
"ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
(
click
)="
currentModal=
'delete'
;
setData
();
deleteCompany
()"
>
(
click
)="
currentModal=
'delete'
;
setData
();
deleteCompany
()"
>
<i
class=
"ri-delete-bin-6-line"
></i>
<i
class=
"ri-delete-bin-6-line"
></i>
Delete
{{'Delete' | translate}}
</button>
</button>
</div>
</div>
</div>
</div>
...
...
src/app/components/company-components/company-registration/company-registration-page/company-registration-page.component.ts
View file @
1de53efd
...
@@ -36,18 +36,18 @@ export class CompanyRegistrationPageComponent {
...
@@ -36,18 +36,18 @@ export class CompanyRegistrationPageComponent {
};
};
columns
:
ColumnModel
[]
=
[{
columns
:
ColumnModel
[]
=
[{
field
:
"code"
,
field
:
"code"
,
headerText
:
"
รหัสบริษัท
"
,
headerText
:
"
CompanyCode
"
,
type
:
"string"
,
type
:
"string"
,
isPrimaryKey
:
true
,
isPrimaryKey
:
true
,
},
},
{
{
field
:
"tdesc"
,
field
:
"tdesc"
,
headerText
:
"
รายละเอียดบริษัท (ไทย)
"
,
headerText
:
"
CompanyDescThai
"
,
type
:
"string"
type
:
"string"
},
},
{
{
field
:
"edesc"
,
field
:
"edesc"
,
headerText
:
"
รายละเอียดบริษัท (อังกฤษ)
"
,
headerText
:
"
CompanyDescEng
"
,
type
:
"string"
type
:
"string"
}]
}]
...
...
src/app/components/company-components/company-registration/company-registration.component.html
View file @
1de53efd
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
</div>
</div>
<div
class=
"block-main-content"
>
<div
class=
"block-main-content"
>
<div
class=
"font-size-18px font-weight-700 pt-1.5rem text-primary px-2rem"
>
<div
class=
"font-size-18px font-weight-700 pt-1.5rem text-primary px-2rem"
>
ทะเบียนบริษัท
{{'menu.Company' | translate}}
</div>
</div>
<div
class=
"page pt-0.75rem"
>
<div
class=
"page pt-0.75rem"
>
<div
class=
"border-b border-gray-200 dark:border-white/10 px-2rem"
>
<div
class=
"border-b border-gray-200 dark:border-white/10 px-2rem"
>
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
href=
"javascript:void(0);"
id=
"underline-item-1"
data-hs-tab=
"#underline-1"
href=
"javascript:void(0);"
id=
"underline-item-1"
data-hs-tab=
"#underline-1"
aria-controls=
"underline-1"
aria-controls=
"underline-1"
(
click
)="
pathTitle =
['การจัดการข้อมูลองค์กร',
'ทะเบียนบริษัท','ทะเบียนบริษัท'];
currentPath=
1"
>
(
click
)="
pathTitle =
['การจัดการข้อมูลองค์กร',
'ทะเบียนบริษัท','ทะเบียนบริษัท'];
currentPath=
1"
>
ทะเบียนบริษัท
{{'menu.Company' | translate}}
</a>
</a>
<a
class=
"font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary"
<a
class=
"font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary"
href=
"javascript:void(0);"
id=
"underline-item-2"
data-hs-tab=
"#underline-2"
href=
"javascript:void(0);"
id=
"underline-item-2"
data-hs-tab=
"#underline-2"
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
1de53efd
...
@@ -208,6 +208,7 @@ import { JobDescriptionEssComponent } from '../job-description-ess/job-descripti
...
@@ -208,6 +208,7 @@ import { JobDescriptionEssComponent } from '../job-description-ess/job-descripti
import
{
MoneyInputDirective
}
from
'src/app/shared/directive/money-input/money-input.directive'
;
import
{
MoneyInputDirective
}
from
'src/app/shared/directive/money-input/money-input.directive'
;
import
{
CompetencyEvaluationFactorsComponent
}
from
'../competency-assessment/competency-evaluation-factors/competency-evaluation-factors.component'
;
import
{
CompetencyEvaluationFactorsComponent
}
from
'../competency-assessment/competency-evaluation-factors/competency-evaluation-factors.component'
;
import
{
CompetencyDefineEvaluationFactorsComponent
}
from
'../competency-assessment/competency-evaluation-factors/competency-define-evaluation-factors/competency-define-evaluation-factors.component'
;
import
{
CompetencyDefineEvaluationFactorsComponent
}
from
'../competency-assessment/competency-evaluation-factors/competency-define-evaluation-factors/competency-define-evaluation-factors.component'
;
import
{
TranslateModule
}
from
'@ngx-translate/core'
;
export
const
MY_DATE_FORMATS
=
{
export
const
MY_DATE_FORMATS
=
{
parse
:
{
parse
:
{
...
@@ -357,7 +358,9 @@ export class CustomDateAdapter extends NativeDateAdapter {
...
@@ -357,7 +358,9 @@ export class CustomDateAdapter extends NativeDateAdapter {
SettingIndividualKpiSupervisorComponent
,
SettingIndividualKpiSupervisorComponent
,
JobDescriptionEssComponent
,
JobDescriptionEssComponent
,
MoneyInputDirective
MoneyInputDirective
],
imports
:
[
CommonModule
,
],
imports
:
[
TranslateModule
,
CommonModule
,
DashboardRoutingModule
,
DashboardRoutingModule
,
NgChartsModule
,
NgChartsModule
,
NgApexchartsModule
,
NgApexchartsModule
,
...
...
src/app/components/datagrid-syncfution/datagrid-syncfution.component.html
View file @
1de53efd
<ejs-grid
#
grid
id=
'Grid'
[
dataSource
]="
dataSourceSearch
"
[
allowFiltering
]="
allowFiltering
"
<ejs-grid
#
grid
id=
'Grid'
[
locale
]="
locale
"
[
dataSource
]="
dataSourceSearch
"
[
allowFiltering
]="
allowFiltering
"
[
filterSettings
]="
filterSettings
"
(
actionComplete
)="
actionComplete
($
event
)"
[
searchSettings
]="
searchSettings
"
[
filterSettings
]="
filterSettings
"
(
actionComplete
)="
actionComplete
($
event
)"
[
searchSettings
]="
searchSettings
"
[
groupSettings
]="
groupSettings
"
[
toolbar
]='
toolbarOptions
'
[
editSettings
]="
editSettings
"
allowPaging=
'true'
[
groupSettings
]="
groupSettings
"
[
toolbar
]='
toolbarOptions
'
[
editSettings
]="
editSettings
"
allowPaging=
'true'
allowGrouping=
'true'
allowSorting=
'true'
[
showColumnMenu
]="
true
"
(
columnMenuClick
)="
onColumnMenuClick
($
event
)"
allowGrouping=
'true'
allowSorting=
'true'
[
showColumnMenu
]="
true
"
(
columnMenuClick
)="
onColumnMenuClick
($
event
)"
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
<input
type=
"checkbox"
[
id
]="'
checkbox-all
'"
class=
"ti-form-checkbox cursor-pointer"
<input
type=
"checkbox"
[
id
]="'
checkbox-all
'"
class=
"ti-form-checkbox cursor-pointer"
[
checked
]="
selectedItemsAll
"
(
click
)="
toggleSelectionAll
()"
>
[
checked
]="
selectedItemsAll
"
(
click
)="
toggleSelectionAll
()"
>
<label
[
for
]="'
checkbox-all
'"
class=
"font-size-12px font-weight-700 text-primary"
>
<label
[
for
]="'
checkbox-all
'"
class=
"font-size-12px font-weight-700 text-primary"
>
{{selectedItems.count}}
Selected
</label>
{{selectedItems.count}}
{{'Selected' | translate}}
</label>
</ng-template>
</ng-template>
<ng-template
#
template
let-data
*
ngIf=
"checkBoxSetting"
>
<ng-template
#
template
let-data
*
ngIf=
"checkBoxSetting"
>
<input
type=
"checkbox"
class=
"ti-form-checkbox cursor-pointer"
<input
type=
"checkbox"
class=
"ti-form-checkbox cursor-pointer"
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
[
validationRules
]="
col
.
validationRules
"
[
allowEditing
]="
false
"
[
allowSorting
]="'
true
'"
[
allowFiltering
]="
true
"
[
validationRules
]="
col
.
validationRules
"
[
allowEditing
]="
false
"
[
allowSorting
]="'
true
'"
[
allowFiltering
]="
true
"
[
visible
]="
col
.
visible
"
[
type
]="
col
.
type
"
>
[
visible
]="
col
.
visible
"
[
type
]="
col
.
type
"
>
<ng-template
#
headerTemplate
let-data
>
<ng-template
#
headerTemplate
let-data
>
<span
class=
"font-size-12px font-weight-700 text-primary"
>
{{ col.headerText }}
</span>
<span
class=
"font-size-12px font-weight-700 text-primary"
>
{{ col.headerText
| translate
}}
</span>
</ng-template>
</ng-template>
<ng-template
#
template
let-data
*
ngIf=
"col.field == 'statusCode.tdesc'"
>
<ng-template
#
template
let-data
*
ngIf=
"col.field == 'statusCode.tdesc'"
>
<div
class=
"flex justify-center items-center w-full h-full"
>
<div
class=
"flex justify-center items-center w-full h-full"
>
...
@@ -67,7 +67,7 @@
...
@@ -67,7 +67,7 @@
<e-column
headerText=
'action'
width=
'205'
textAlign=
'Center'
*
ngIf=
"actionSetting"
>
<e-column
headerText=
'action'
width=
'205'
textAlign=
'Center'
*
ngIf=
"actionSetting"
>
<ng-template
#
headerTemplate
let-data
*
ngIf=
"actionSetting"
>
<ng-template
#
headerTemplate
let-data
*
ngIf=
"actionSetting"
>
<span
class=
"font-size-12px font-weight-700 text-primary"
>
การจัดการ
</span>
<span
class=
"font-size-12px font-weight-700 text-primary"
>
{{'Action' | translate}}
</span>
</ng-template>
</ng-template>
<ng-template
#
template
let-data
*
ngIf=
"actionSetting"
>
<ng-template
#
template
let-data
*
ngIf=
"actionSetting"
>
<i
class=
"ti ti-eye cursor-pointer i-gray fs-l px-1"
(
click
)="
onNextPageView
(
data
)"
*
ngIf=
"childView"
></i>
<i
class=
"ti ti-eye cursor-pointer i-gray fs-l px-1"
(
click
)="
onNextPageView
(
data
)"
*
ngIf=
"childView"
></i>
...
...
src/app/components/datagrid-syncfution/datagrid-syncfution.component.ts
View file @
1de53efd
...
@@ -39,13 +39,17 @@ import { DataManager, Query } from '@syncfusion/ej2-data';
...
@@ -39,13 +39,17 @@ import { DataManager, Query } from '@syncfusion/ej2-data';
import
{
L10n
,
setCulture
}
from
'@syncfusion/ej2-base'
;
import
{
L10n
,
setCulture
}
from
'@syncfusion/ej2-base'
;
import
{
Status
}
from
'../../shared/model/evaluation-form.modal'
;
import
{
Status
}
from
'../../shared/model/evaluation-form.modal'
;
import
{
FileService
}
from
'src/app/shared/services/file.service'
;
import
{
FileService
}
from
'src/app/shared/services/file.service'
;
setCulture
(
'th-TH'
)
;
import
{
TranslateService
}
from
'@ngx-translate/core'
;
L10n
.
load
({
L10n
.
load
({
'en-US'
:
{
'en-US'
:
{
'pager'
:
{
'pager'
:
{
'currentPageInfo'
:
''
,
'currentPageInfo'
:
''
,
'totalItemsInfo'
:
'{1} to {2} of {0}'
,
'totalItemsInfo'
:
'{1} to {2} of {0}'
,
},
'grid'
:
{
'pagerInfo'
:
'Total {0} items'
,
'pageCountMsg'
:
'Total {0} items'
}
}
},
},
'th-TH'
:
{
'th-TH'
:
{
...
@@ -92,8 +96,7 @@ export class DatagridSyncfutionComponent implements OnInit {
...
@@ -92,8 +96,7 @@ export class DatagridSyncfutionComponent implements OnInit {
dataSourceFilter
:
any
[]
=
[];
dataSourceFilter
:
any
[]
=
[];
@
Output
()
sendSelectData
=
new
EventEmitter
<
any
>
();
@
Output
()
sendSelectData
=
new
EventEmitter
<
any
>
();
@
Input
()
columns
:
ColumnModel
[]
=
[];
@
Input
()
columns
:
ColumnModel
[]
=
[];
// @Input() toolbarOptions?: ToolbarItems[]
@
Input
()
toolbarOptions
?:
any
[]
=
[
'Print'
,
'ExcelExport'
,
'CsvExport'
];
@
Input
()
toolbarOptions
?:
ToolbarItems
[]
=
[
'Print'
,
'ExcelExport'
,
'CsvExport'
];
@
Input
()
searchSettings
:
any
=
{
@
Input
()
searchSettings
:
any
=
{
fields
:
[],
fields
:
[],
operator
:
'contains'
,
operator
:
'contains'
,
...
@@ -168,8 +171,11 @@ export class DatagridSyncfutionComponent implements OnInit {
...
@@ -168,8 +171,11 @@ export class DatagridSyncfutionComponent implements OnInit {
@
Input
()
sendLayout
=
false
@
Input
()
sendLayout
=
false
@
Input
()
gridLayout
=
''
@
Input
()
gridLayout
=
''
@
Output
()
layout
=
new
EventEmitter
<
any
>
();
@
Output
()
layout
=
new
EventEmitter
<
any
>
();
locale
=
'th-TH'
constructor
(
private
cdr
:
ChangeDetectorRef
,
constructor
(
private
cdr
:
ChangeDetectorRef
,
private
fileService
:
FileService
private
fileService
:
FileService
,
private
translateService
:
TranslateService
,
)
{
)
{
}
}
ngOnInit
():
void
{
ngOnInit
():
void
{
...
@@ -177,6 +183,28 @@ export class DatagridSyncfutionComponent implements OnInit {
...
@@ -177,6 +183,28 @@ export class DatagridSyncfutionComponent implements OnInit {
this
.
loadingIndicator
=
{
indicatorType
:
'Shimmer'
};
this
.
loadingIndicator
=
{
indicatorType
:
'Shimmer'
};
// ถ้ามี logic ของ child เอง เช่นตั้งค่าเริ่มต้น
// ถ้ามี logic ของ child เอง เช่นตั้งค่าเริ่มต้น
// ให้เขียนตรงนี้ได้
// ให้เขียนตรงนี้ได้
this
.
toolbarOptions
=
[
{
text
:
this
.
translateService
.
instant
(
'Print'
),
prefixIcon
:
'e-print'
,
id
:
'Print'
},
{
text
:
this
.
translateService
.
instant
(
'ExcelExport'
),
prefixIcon
:
'e-excelexport'
,
id
:
'ExcelExport'
},
{
text
:
this
.
translateService
.
instant
(
'CsvExport'
),
prefixIcon
:
'e-csvexport'
,
id
:
'CsvExport'
}
];
// setCulture('en-US');
// setCulture('th-TH');
this
.
translateService
.
onLangChange
.
subscribe
((
event
)
=>
{
if
(
event
.
lang
===
'th'
)
{
setCulture
(
'th-TH'
);
this
.
locale
=
'th-TH'
}
else
if
(
event
.
lang
===
'en'
)
{
setCulture
(
'en-US'
);
this
.
locale
=
'en-US'
}
this
.
toolbarOptions
=
[
{
text
:
this
.
translateService
.
instant
(
'Print'
),
prefixIcon
:
'e-print'
,
id
:
'Print'
},
{
text
:
this
.
translateService
.
instant
(
'ExcelExport'
),
prefixIcon
:
'e-excelexport'
,
id
:
'ExcelExport'
},
{
text
:
this
.
translateService
.
instant
(
'CsvExport'
),
prefixIcon
:
'e-csvexport'
,
id
:
'CsvExport'
}
];
});
}
}
ngOnChanges
(
changes
:
SimpleChanges
):
void
{
ngOnChanges
(
changes
:
SimpleChanges
):
void
{
...
...
src/app/components/performance-evaluation/pms-form-employee/pms-competency/pms-competency.component.html
View file @
1de53efd
...
@@ -220,19 +220,19 @@
...
@@ -220,19 +220,19 @@
<div
class=
"col-span-8"
>
รวมจำนวนเครื่องหมายแต่ละช่อง (1)
</div>
<div
class=
"col-span-8"
>
รวมจำนวนเครื่องหมายแต่ละช่อง (1)
</div>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-1 text-center"
>
<div
class=
"col-span-1 text-center"
>
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].numberCheck5Boss}}
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].numberCheck5Boss}}
</div>
</div>
<div
class=
"col-span-1 text-center"
>
<div
class=
"col-span-1 text-center"
>
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].numberCheck4Boss}}
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].numberCheck4Boss}}
</div>
</div>
<div
class=
"col-span-1 text-center"
>
<div
class=
"col-span-1 text-center"
>
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].numberCheck3Boss}}
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].numberCheck3Boss}}
</div>
</div>
<div
class=
"col-span-1 text-center"
>
<div
class=
"col-span-1 text-center"
>
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].numberCheck2Boss}}
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].numberCheck2Boss}}
</div>
</div>
<div
class=
"col-span-1 text-center"
>
<div
class=
"col-span-1 text-center"
>
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].numberCheck1Boss}}
{{appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].numberCheck1Boss}}
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -257,7 +257,7 @@
...
@@ -257,7 +257,7 @@
</div>
</div>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-5 text-center text-indigo-600 font-semibold"
>
<div
class=
"col-span-5 text-center text-indigo-600 font-semibold"
>
{{showNumber(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].weightedTotalBoss)}}
{{showNumber(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].weightedTotalBoss)}}
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</div>
</div>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-3 grid grid-cols-5"
>
<div
class=
"col-span-5 text-center text-indigo-600 font-semibold"
>
<div
class=
"col-span-5 text-center text-indigo-600 font-semibold"
>
{{showNumber(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].averageScoreBoss)}}
{{showNumber(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].averageScoreBoss)}}
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -306,10 +306,10 @@
...
@@ -306,10 +306,10 @@
</div>
</div>
</td>
</td>
<td
class=
"align-start text-center text-indigo-600 font-semibold"
>
<td
class=
"align-start text-center text-indigo-600 font-semibold"
>
{{calAverage(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].averageScoreBoss)}}
{{calAverage(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].averageScoreBoss)}}
</td>
</td>
<td
class=
"align-start text-center text-indigo-600 font-semibold"
>
<td
class=
"align-start text-center text-indigo-600 font-semibold"
>
{{calGap(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1
l
List[0].averageScoreBoss)}}
{{calGap(appraisalCompentencyList[appraisalCompentencyIndex].masfromEvaluationAssessment1List[0].averageScoreBoss)}}
</td>
</td>
</tr>
</tr>
<tr
(
mouseenter
)="
hoveredCode2 =
'true'
"
(
mouseleave
)="
hoveredCode2 =
null"
<tr
(
mouseenter
)="
hoveredCode2 =
'true'
"
(
mouseleave
)="
hoveredCode2 =
null"
...
...
src/app/components/performance-evaluation/pms-form-employee/pms-competency/pms-competency.component.ts
View file @
1de53efd
This diff is collapsed.
Click to expand it.
src/app/components/performance-evaluation/pms-form-employee/pms-form-employee.component.ts
View file @
1de53efd
...
@@ -595,19 +595,19 @@ export class PmsFormEmployeeComponent {
...
@@ -595,19 +595,19 @@ export class PmsFormEmployeeComponent {
'!competency[].apsapprove3'
,
'!competency[].apsapprove3'
,
'!competency[].apsapprove4'
,
'!competency[].apsapprove4'
,
'!competency[].apsapprove5'
,
'!competency[].apsapprove5'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsassessyDate'
,
'!competency[].masfromEvaluationAssessment1List[].apsassessyDate'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsapprove1Date'
,
'!competency[].masfromEvaluationAssessment1List[].apsapprove1Date'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsapprove2Date'
,
'!competency[].masfromEvaluationAssessment1List[].apsapprove2Date'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsapprove3Date'
,
'!competency[].masfromEvaluationAssessment1List[].apsapprove3Date'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsapprove4Date'
,
'!competency[].masfromEvaluationAssessment1List[].apsapprove4Date'
,
'!competency[].masfromEvaluationAssessment1
l
List[].apsapprove5Date'
,
'!competency[].masfromEvaluationAssessment1List[].apsapprove5Date'
,
'!competency[].masfromEvaluationAssessment1
l
List[].numberCheck1'
,
'!competency[].masfromEvaluationAssessment1List[].numberCheck1'
,
'!competency[].masfromEvaluationAssessment1
l
List[].numberCheck2'
,
'!competency[].masfromEvaluationAssessment1List[].numberCheck2'
,
'!competency[].masfromEvaluationAssessment1
l
List[].numberCheck3'
,
'!competency[].masfromEvaluationAssessment1List[].numberCheck3'
,
'!competency[].masfromEvaluationAssessment1
l
List[].numberCheck4'
,
'!competency[].masfromEvaluationAssessment1List[].numberCheck4'
,
'!competency[].masfromEvaluationAssessment1
l
List[].numberCheck5'
,
'!competency[].masfromEvaluationAssessment1List[].numberCheck5'
,
'!competency[].masfromEvaluationAssessment1
l
List[].weightedTotal'
,
'!competency[].masfromEvaluationAssessment1List[].weightedTotal'
,
'!competency[].masfromEvaluationAssessment1
l
List[].averageScore'
,
'!competency[].masfromEvaluationAssessment1List[].averageScore'
,
'pms'
,
'pms'
,
'!pms.gradeScore'
,
'!pms.gradeScore'
,
'!pms.apsassessyDate'
,
'!pms.apsassessyDate'
,
...
...
src/app/components/performance-evaluation/pms-form-employee/pms-information/pms-information.component.html
View file @
1de53efd
...
@@ -30,11 +30,11 @@
...
@@ -30,11 +30,11 @@
<tbody>
<tbody>
<ng-container
*
ngFor=
"let item of appraisalCompentencyList; let i=index"
>
<ng-container
*
ngFor=
"let item of appraisalCompentencyList; let i=index"
>
<tr
class=
"border-b border-gray-200"
<tr
class=
"border-b border-gray-200"
(
mouseenter
)="
tableHover
.
set
(
item
.
masfromEvaluationAssessment1
l
List
[
0
].
competencyType
.
tdesc
,
true
)"
(
mouseenter
)="
tableHover
.
set
(
item
.
masfromEvaluationAssessment1List
[
0
].
competencyType
.
tdesc
,
true
)"
(
mouseleave
)="
tableHover
.
clear
()"
(
mouseleave
)="
tableHover
.
clear
()"
[
ngStyle
]="{'
background
'
:tableHover
.
get
(
item
.
masfromEvaluationAssessment1
l
List
[
0
].
competencyType
.
tdesc
)?'#
f1f5f9
'
:
'#
ffffff
'}"
>
[
ngStyle
]="{'
background
'
:tableHover
.
get
(
item
.
masfromEvaluationAssessment1List
[
0
].
competencyType
.
tdesc
)?'#
f1f5f9
'
:
'#
ffffff
'}"
>
<td
class=
"py-2"
style=
"vertical-align: top"
>
<td
class=
"py-2"
style=
"vertical-align: top"
>
{{item.masfromEvaluationAssessment1
l
List[0].competencyType.tdesc}}
{{item.masfromEvaluationAssessment1List[0].competencyType.tdesc}}
</td>
</td>
<td
class=
"py-2 text-center"
style=
"vertical-align: top"
>
<td
class=
"py-2 text-center"
style=
"vertical-align: top"
>
{{formatThaiDate(item.masfromEvaluationRound.apsPeriodStart)}}
{{formatThaiDate(item.masfromEvaluationRound.apsPeriodStart)}}
...
...
src/app/components/performance-management-evaluation/evaluation-cycle-performance/document-form/edit-evaluation-form/edit-evaluation-form.component.ts
View file @
1de53efd
...
@@ -4,7 +4,7 @@ import { AppraisalRoundModel, MyAppraisalRoundModel } from 'src/app/shared/model
...
@@ -4,7 +4,7 @@ import { AppraisalRoundModel, MyAppraisalRoundModel } from 'src/app/shared/model
import
{
AppraisalModel
,
MyAppraisalModel
}
from
'src/app/shared/model/appraisal.model'
;
import
{
AppraisalModel
,
MyAppraisalModel
}
from
'src/app/shared/model/appraisal.model'
;
import
{
EvaluationCycleModel
,
MyEvaluationCycleModel
}
from
'src/app/shared/model/evaluation-cycle.model'
;
import
{
EvaluationCycleModel
,
MyEvaluationCycleModel
}
from
'src/app/shared/model/evaluation-cycle.model'
;
import
{
EvaluationModal
}
from
'src/app/shared/model/evaluation-form.modal'
;
import
{
EvaluationModal
}
from
'src/app/shared/model/evaluation-form.modal'
;
import
{
MasfromEvaluationAssessment1l
List
,
PmsMasfromEvaluationFullModel
}
from
'src/app/shared/model/pms-masfrom-evaluation-list.model'
;
import
{
masfromEvaluationAssessment1
List
,
PmsMasfromEvaluationFullModel
}
from
'src/app/shared/model/pms-masfrom-evaluation-list.model'
;
import
{
MyPmsMasfromEvaluationModel
,
PmsMasfromEvaluationModel
}
from
'src/app/shared/model/pms-masfrom-evaluation.model'
;
import
{
MyPmsMasfromEvaluationModel
,
PmsMasfromEvaluationModel
}
from
'src/app/shared/model/pms-masfrom-evaluation.model'
;
import
{
PmsEvaluationAssessmentService
}
from
'src/app/shared/services/pms-evaluation-assessment.service'
;
import
{
PmsEvaluationAssessmentService
}
from
'src/app/shared/services/pms-evaluation-assessment.service'
;
import
{
PmsMasfromEvaluationCycleService
}
from
'src/app/shared/services/pms-masfrom-evaluation.service'
;
import
{
PmsMasfromEvaluationCycleService
}
from
'src/app/shared/services/pms-masfrom-evaluation.service'
;
...
@@ -38,8 +38,8 @@ export class EditEvaluationFormComponent {
...
@@ -38,8 +38,8 @@ export class EditEvaluationFormComponent {
empassessmentList
?:
EvaluationModal
empassessmentList
?:
EvaluationModal
searchEmp
=
""
searchEmp
=
""
empassessmentRoundList
:
MasfromEvaluationAssessment1l
List
[]
=
[]
empassessmentRoundList
:
masfromEvaluationAssessment1
List
[]
=
[]
empassessmentRoundListCheckbox
:
{
checkbox
:
boolean
,
item
:
MasfromEvaluationAssessment1l
List
}[]
=
[]
empassessmentRoundListCheckbox
:
{
checkbox
:
boolean
,
item
:
masfromEvaluationAssessment1
List
}[]
=
[]
currentPageRound
=
1
currentPageRound
=
1
pageRound
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
pageRound
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
pageSizeRound
=
10
pageSizeRound
=
10
...
@@ -50,12 +50,12 @@ export class EditEvaluationFormComponent {
...
@@ -50,12 +50,12 @@ export class EditEvaluationFormComponent {
msg
=
""
msg
=
""
typeForm
=
""
typeForm
=
""
selectData
?:
MasfromEvaluationAssessment1l
List
selectData
?:
masfromEvaluationAssessment1
List
loading
=
false
loading
=
false
indicatorsList
:
MasfromEvaluationAssessment1l
List
[]
=
[]
indicatorsList
:
masfromEvaluationAssessment1
List
[]
=
[]
indicatorsListShow
:
MasfromEvaluationAssessment1l
List
[]
=
[]
indicatorsListShow
:
masfromEvaluationAssessment1
List
[]
=
[]
searchIndicator
=
""
searchIndicator
=
""
currentPageIndicator
=
1
currentPageIndicator
=
1
pageIndicator
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
pageIndicator
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
...
@@ -162,7 +162,7 @@ export class EditEvaluationFormComponent {
...
@@ -162,7 +162,7 @@ export class EditEvaluationFormComponent {
saveIndicators
()
{
saveIndicators
()
{
if
(
this
.
empassessmentRoundListCheckbox
.
map
(
x
=>
x
.
item
).
length
>
0
)
{
if
(
this
.
empassessmentRoundListCheckbox
.
map
(
x
=>
x
.
item
).
length
>
0
)
{
if
(
this
.
empassessmentList
)
{
if
(
this
.
empassessmentList
)
{
this
.
empassessmentList
.
masfromEvaluationAssessment1
l
List
=
this
.
empassessmentRoundListCheckbox
.
map
(
x
=>
{
this
.
empassessmentList
.
masfromEvaluationAssessment1List
=
this
.
empassessmentRoundListCheckbox
.
map
(
x
=>
{
x
.
item
.
weight
=
Number
(
x
.
item
.
weight
);
x
.
item
.
weight
=
Number
(
x
.
item
.
weight
);
return
x
.
item
as
any
;
return
x
.
item
as
any
;
});
});
...
@@ -241,7 +241,7 @@ export class EditEvaluationFormComponent {
...
@@ -241,7 +241,7 @@ export class EditEvaluationFormComponent {
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
:
MasfromEvaluationAssessment1l
List
)
{
deleteFormOne
(
item
:
masfromEvaluationAssessment1
List
)
{
this
.
selectData
=
item
;
this
.
selectData
=
item
;
this
.
empassessmentRoundListCheckbox
=
this
.
empassessmentRoundListCheckbox
.
filter
(
i
=>
i
.
item
!==
item
);
this
.
empassessmentRoundListCheckbox
=
this
.
empassessmentRoundListCheckbox
.
filter
(
i
=>
i
.
item
!==
item
);
this
.
checkTopic
();
this
.
checkTopic
();
...
@@ -298,7 +298,7 @@ export class EditEvaluationFormComponent {
...
@@ -298,7 +298,7 @@ export class EditEvaluationFormComponent {
const
filteredData
=
this
.
filterIndicators
();
const
filteredData
=
this
.
filterIndicators
();
this
.
pageIndicator
=
Array
.
from
({
length
:
Math
.
ceil
(
filteredData
.
length
/
this
.
pageSizeIndicator
)
},
(
_
,
i
)
=>
i
+
1
);
this
.
pageIndicator
=
Array
.
from
({
length
:
Math
.
ceil
(
filteredData
.
length
/
this
.
pageSizeIndicator
)
},
(
_
,
i
)
=>
i
+
1
);
}
}
addIndicators
(
item
:
MasfromEvaluationAssessment1l
List
)
{
addIndicators
(
item
:
masfromEvaluationAssessment1
List
)
{
this
.
empassessmentRoundListCheckbox
.
push
({
checkbox
:
false
,
item
})
this
.
empassessmentRoundListCheckbox
.
push
({
checkbox
:
false
,
item
})
this
.
competencyTopicIds
.
push
(
item
.
groupAssessment1
?.
pmsTopic
?.
pmsTopicId
)
this
.
competencyTopicIds
.
push
(
item
.
groupAssessment1
?.
pmsTopic
?.
pmsTopicId
)
this
.
indicatorChange
();
this
.
indicatorChange
();
...
...
src/app/shared/components/sidebar/sidebar.component.html
View file @
1de53efd
...
@@ -34,31 +34,34 @@
...
@@ -34,31 +34,34 @@
'
open
'
:
menuItem
.
active
,
'
open
'
:
menuItem
.
active
,
'
active
'
:
menuItem
.
selected
,}"
>
'
active
'
:
menuItem
.
selected
,}"
>
<!-- head title -->
<!-- head title -->
<span
*
ngIf=
"menuItem.headTitle"
class=
"category-name"
>
{{menuItem.headTitle}}
</span>
<span
*
ngIf=
"menuItem.headTitle"
class=
"category-name"
>
{{menuItem.headTitle
| translate
}}
</span>
<!-- has-Link -->
<!-- has-Link -->
<a
class=
"side-menu__item"
[
routerLink
]="!
menuItem
.
type
?
null
:
[
menuItem
.
path
]"
<a
class=
"side-menu__item"
[
routerLink
]="!
menuItem
.
type
?
null
:
[
menuItem
.
path
]"
routerLinkActive=
"active"
*
ngIf=
"menuItem.type === 'link'"
(
click
)="
setNavActive
(
menuItem
)"
>
routerLinkActive=
"active"
*
ngIf=
"menuItem.type === 'link'"
(
click
)="
setNavActive
(
menuItem
)"
>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<span
class=
"side-menu__label"
>
{{menuItem.title}}
</span>
<span
class=
"side-menu__label"
>
{{menuItem.title
| translate
}}
</span>
</a>
</a>
<!-- has-empty -->
<!-- has-empty -->
<a
class=
"side-menu__item"
href=
"javascript:;"
*
ngIf=
"menuItem.type === 'empty'"
<a
class=
"side-menu__item"
href=
"javascript:;"
*
ngIf=
"menuItem.type === 'empty'"
(
click
)="
setNavActive
(
menuItem
)"
>
(
click
)="
setNavActive
(
menuItem
)"
>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<span
class=
"side-menu__label"
>
{{menuItem.title}}
</span>
<span
class=
"side-menu__label"
>
{{menuItem.title
| translate
}}
</span>
</a>
</a>
<!-- has-Sub -->
<!-- has-Sub -->
<a
class=
"side-menu__item with-sub cursor-pointer"
[
routerLink
]="
menuItem
.
type
?
null:
[
menuItem
.
path
]"
<a
class=
"side-menu__item with-sub cursor-pointer"
[
routerLink
]="
menuItem
.
type
?
null:
[
menuItem
.
path
]"
[
ngClass
]="{
active:
menuItem
.
selected
}"
*
ngIf=
"menuItem.type === 'sub'"
[
ngClass
]="{
active:
menuItem
.
selected
}"
*
ngIf=
"menuItem.type === 'sub'"
(
click
)="
toggleNavActive
(
menuItem
)"
>
(
click
)="
toggleNavActive
(
menuItem
)"
>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<img
*
ngIf=
"menuItem.icon"
[
src
]="
menuItem
.
icon
"
class=
"side-menu__icon"
width=
"20"
height=
"20"
alt=
"icon"
/>
<span
class=
"side-menu__label"
>
{{menuItem.title}}
</span>
<span
class=
"side-menu__label"
>
{{menuItem.title
| translate
}}
</span>
<span
class=
"badge {{menuItem.badgeClass}} side-badge"
<span
class=
"badge {{menuItem.badgeClass}} side-badge"
*
ngIf=
"menuItem.badgeClass && menuItem.badgeValue"
>
*
ngIf=
"menuItem.badgeClass && menuItem.badgeValue"
>
{{menuItem.badgeValue}}
{{menuItem.badgeValue
| translate
}}
</span>
</span>
<i
class=
"ri ri-arrow-right-s-line side-menu__angle"
></i>
<i
class=
"ri ri-arrow-right-s-line side-menu__angle"
></i>
</a>
</a>
...
@@ -66,7 +69,7 @@
...
@@ -66,7 +69,7 @@
<!-- 2nd Level menu -->
<!-- 2nd Level menu -->
<ul
class=
"slide-menu child1"
*
ngIf=
"menuItem.children"
<ul
class=
"slide-menu child1"
*
ngIf=
"menuItem.children"
[
ngStyle
]="{
display:
menuItem
.
active
?
'
block
'
:
'
none
'
}"
>
[
ngStyle
]="{
display:
menuItem
.
active
?
'
block
'
:
'
none
'
}"
>
<li
class=
"slide side-menu__label1"
><a
href=
"javascript:void(0)"
>
{{menuItem.title}}
</a></li>
<li
class=
"slide side-menu__label1"
><a
href=
"javascript:void(0)"
>
{{menuItem.title
| translate
}}
</a></li>
<ng-container
*
ngFor=
"let childrenItem of menuItem.children"
>
<ng-container
*
ngFor=
"let childrenItem of menuItem.children"
>
<li
*
ngIf=
"childrenItem.show"
class=
"slide"
activeMenuItems
<li
*
ngIf=
"childrenItem.show"
class=
"slide"
activeMenuItems
[
ngClass
]="{'
is-expanded
'
:
childrenItem
.
active
,
active:
childrenItem
.
active
,
'
sub-slide
'
:
childrenItem
.
type =
==
'
sub
'}"
>
[
ngClass
]="{'
is-expanded
'
:
childrenItem
.
active
,
active:
childrenItem
.
active
,
'
sub-slide
'
:
childrenItem
.
type =
==
'
sub
'}"
>
...
@@ -75,18 +78,18 @@
...
@@ -75,18 +78,18 @@
[
routerLink
]="!
childrenItem
.
type
?
null
:
[
childrenItem
.
path
]
"
routerLinkActive=
"active"
[
routerLink
]="!
childrenItem
.
type
?
null
:
[
childrenItem
.
path
]
"
routerLinkActive=
"active"
[
routerLinkActiveOptions
]="{
exact:
true
}"
*
ngIf=
"childrenItem.type === 'link'"
[
routerLinkActiveOptions
]="{
exact:
true
}"
*
ngIf=
"childrenItem.type === 'link'"
(
click
)="
setNavActive
(
childrenItem
)"
>
(
click
)="
setNavActive
(
childrenItem
)"
>
{{childrenItem.title}}
{{childrenItem.title
| translate
}}
</a>
</a>
<!-- empty -->
<!-- empty -->
<a
class=
"side-menu__item !white-space-normal"
href=
"javascript:;"
<a
class=
"side-menu__item !white-space-normal"
href=
"javascript:;"
*
ngIf=
"childrenItem.type === 'empty' "
(
click
)="
setNavActive
(
childrenItem
)"
>
*
ngIf=
"childrenItem.type === 'empty' "
(
click
)="
setNavActive
(
childrenItem
)"
>
{{childrenItem.title }}
{{childrenItem.title
| translate
}}
</a>
</a>
<!-- sub -->
<!-- sub -->
<a
class=
"side-menu__item !white-space-normal"
[
ngClass
]="{
active:
childrenItem
.
selected
}"
<a
class=
"side-menu__item !white-space-normal"
[
ngClass
]="{
active:
childrenItem
.
selected
}"
[
routerLink
]="
childrenItem
.
type
?
null
:
[
childrenItem
.
path
]"
*
ngIf=
"childrenItem.type === 'sub'"
[
routerLink
]="
childrenItem
.
type
?
null
:
[
childrenItem
.
path
]"
*
ngIf=
"childrenItem.type === 'sub'"
(
click
)="
toggleNavActive
(
childrenItem
)"
>
(
click
)="
toggleNavActive
(
childrenItem
)"
>
<span
class=
""
>
{{childrenItem.title}}
</span>
<span
class=
""
>
{{childrenItem.title
| translate
}}
</span>
<i
class=
"ri ri-arrow-right-s-line side-menu__angle"
></i>
<i
class=
"ri ri-arrow-right-s-line side-menu__angle"
></i>
</a>
</a>
<!-- 3rd Level menu -->
<!-- 3rd Level menu -->
...
@@ -101,11 +104,11 @@
...
@@ -101,11 +104,11 @@
<a
class=
"side-menu__item"
routerLinkActive=
"active"
<a
class=
"side-menu__item"
routerLinkActive=
"active"
[
routerLink
]="!
childrenSubItem
.
type
?
null
:
[
childrenSubItem
.
path
]"
[
routerLink
]="!
childrenSubItem
.
type
?
null
:
[
childrenSubItem
.
path
]"
*
ngIf=
"childrenSubItem.type === 'link'"
[
routerLinkActiveOptions
]="{
exact
:
true
}"
>
*
ngIf=
"childrenSubItem.type === 'link'"
[
routerLinkActiveOptions
]="{
exact
:
true
}"
>
{{childrenSubItem.title}} {{localdata['synto-dir']}}
{{childrenSubItem.title
| translate
}} {{localdata['synto-dir']}}
</a>
</a>
<!-- empty -->
<!-- empty -->
<a
class=
"side-menu__item"
href=
"javascript:;"
*
ngIf=
"childrenSubItem.type === 'empty'"
>
<a
class=
"side-menu__item"
href=
"javascript:;"
*
ngIf=
"childrenSubItem.type === 'empty'"
>
{{childrenSubItem.title}}
{{childrenSubItem.title
| translate
}}
</a>
</a>
</li>
</li>
</ng-container>
</ng-container>
...
...
src/app/shared/model/appraisal-competency.model.ts
View file @
1de53efd
...
@@ -738,7 +738,7 @@ export interface AppraisalCompentencyModel2 {
...
@@ -738,7 +738,7 @@ export interface AppraisalCompentencyModel2 {
apsapprove3
:
Apsapprove3
apsapprove3
:
Apsapprove3
apsapprove4
:
Apsapprove4
apsapprove4
:
Apsapprove4
apsapprove5
:
Apsapprove5
apsapprove5
:
Apsapprove5
masfromEvaluationAssessment1
lList
:
MasfromEvaluationAssessment1l
List
[]
masfromEvaluationAssessment1
List
:
masfromEvaluationAssessment1
List
[]
currentStep
:
string
currentStep
:
string
lastStep
:
string
lastStep
:
string
checkStep
:
string
checkStep
:
string
...
@@ -1411,7 +1411,7 @@ export interface Time06 {
...
@@ -1411,7 +1411,7 @@ export interface Time06 {
hourD
:
number
hourD
:
number
}
}
export
interface
MasfromEvaluationAssessment1l
List
{
export
interface
masfromEvaluationAssessment1
List
{
plId
:
string
plId
:
string
companyId
:
string
companyId
:
string
lineNo
:
number
lineNo
:
number
...
...
src/app/shared/model/competency.model.ts
View file @
1de53efd
...
@@ -46,7 +46,7 @@ export interface Competency {
...
@@ -46,7 +46,7 @@ export interface Competency {
comType
:
string
comType
:
string
currentStep
:
string
currentStep
:
string
lastStep
:
string
lastStep
:
string
masfromEvaluationAssessment1
lList
:
MasfromEvaluationAssessment1l
List
[]
masfromEvaluationAssessment1
List
:
masfromEvaluationAssessment1
List
[]
masfromEvaluationRound
:
MasfromEvaluationRound
masfromEvaluationRound
:
MasfromEvaluationRound
masfromStatusType
:
MasfromStatusType
masfromStatusType
:
MasfromStatusType
personalLevel
:
PersonalLevel2
personalLevel
:
PersonalLevel2
...
@@ -694,7 +694,7 @@ export interface Time06 {
...
@@ -694,7 +694,7 @@ export interface Time06 {
time0id
:
string
time0id
:
string
}
}
export
interface
MasfromEvaluationAssessment1l
List
{
export
interface
masfromEvaluationAssessment1
List
{
apsapprove1Comment
:
string
apsapprove1Comment
:
string
apsapprove1Date
:
string
apsapprove1Date
:
string
apsapprove1Status
:
string
apsapprove1Status
:
string
...
@@ -734,6 +734,8 @@ export interface MasfromEvaluationAssessment1lList {
...
@@ -734,6 +734,8 @@ export interface MasfromEvaluationAssessment1lList {
weightedTotalBoss
:
number
weightedTotalBoss
:
number
weightedTotal
:
number
weightedTotal
:
number
masfromEvaluationAssessment2List
:
MasfromEvaluationAssessment2List
[]
masfromEvaluationAssessment2List
:
MasfromEvaluationAssessment2List
[]
scoreGab
:
string
scoreGabBoss
:
string
}
}
export
interface
MasfromEvaluationAssessment2List
{
export
interface
MasfromEvaluationAssessment2List
{
...
...
src/app/shared/model/evaluation-form.modal.ts
View file @
1de53efd
import
{
MasfromEvaluationAssessment1l
List
}
from
"./pms-masfrom-evaluation-list.model"
import
{
masfromEvaluationAssessment1
List
}
from
"./pms-masfrom-evaluation-list.model"
export
interface
EvaluationModal
{
export
interface
EvaluationModal
{
personalLevel
:
PersonalLevel
personalLevel
:
PersonalLevel
...
@@ -13,7 +13,7 @@ import { MasfromEvaluationAssessment1lList } from "./pms-masfrom-evaluation-list
...
@@ -13,7 +13,7 @@ import { MasfromEvaluationAssessment1lList } from "./pms-masfrom-evaluation-list
apsapprove5
:
Apsapprove5
apsapprove5
:
Apsapprove5
masfromTypeList
:
MasfromTypeList
[]
masfromTypeList
:
MasfromTypeList
[]
masfromTopic
:
MasfromTopic
[]
masfromTopic
:
MasfromTopic
[]
masfromEvaluationAssessment1
lList
:
MasfromEvaluationAssessment1l
List
[]
masfromEvaluationAssessment1
List
:
masfromEvaluationAssessment1
List
[]
}
}
export
interface
PersonalLevel
{
export
interface
PersonalLevel
{
...
...
src/app/shared/model/pms-masfrom-evaluation-list.model.ts
View file @
1de53efd
...
@@ -26,7 +26,7 @@ export interface PmsMasfromEvaluationFullModel {
...
@@ -26,7 +26,7 @@ export interface PmsMasfromEvaluationFullModel {
apsapprove3Score
:
any
apsapprove3Score
:
any
apsapprove4Score
:
any
apsapprove4Score
:
any
apsapprove5Score
:
any
apsapprove5Score
:
any
masfromEvaluationAssessment1
lList
:
MasfromEvaluationAssessment1l
List
[]
masfromEvaluationAssessment1
List
:
masfromEvaluationAssessment1
List
[]
}
}
export
interface
PersonalLevel
{
export
interface
PersonalLevel
{
...
@@ -671,7 +671,7 @@ export interface PmsMasfromEvaluationFullModel {
...
@@ -671,7 +671,7 @@ export interface PmsMasfromEvaluationFullModel {
hourD
:
number
hourD
:
number
}
}
export
interface
MasfromEvaluationAssessment1l
List
{
export
interface
masfromEvaluationAssessment1
List
{
companyId
?:
string
companyId
?:
string
weight
?:
number
weight
?:
number
scoreTopicExpectation
:
any
scoreTopicExpectation
:
any
...
...
src/app/shared/services/navservice.ts
View file @
1de53efd
...
@@ -148,7 +148,7 @@ export class NavService implements OnDestroy {
...
@@ -148,7 +148,7 @@ export class NavService implements OnDestroy {
getAdminMenu
()
{
getAdminMenu
()
{
return
[
return
[
{
{
title
:
'Dashboard'
,
title
:
'
menu.
Dashboard'
,
type
:
'link'
,
type
:
'link'
,
selected
:
true
,
selected
:
true
,
active
:
true
,
active
:
true
,
...
@@ -171,7 +171,7 @@ export class NavService implements OnDestroy {
...
@@ -171,7 +171,7 @@ export class NavService implements OnDestroy {
// ],
// ],
// },
// },
{
{
title
:
'
จัดการข้อมูลองค์กร
'
,
title
:
'
menu.Organization
'
,
type
:
'sub'
,
type
:
'sub'
,
selected
:
false
,
selected
:
false
,
active
:
false
,
active
:
false
,
...
@@ -180,12 +180,12 @@ export class NavService implements OnDestroy {
...
@@ -180,12 +180,12 @@ export class NavService implements OnDestroy {
show
:
true
,
show
:
true
,
icon
:
'assets/img/icons-menu/enterprise-data-management.png'
,
icon
:
'assets/img/icons-menu/enterprise-data-management.png'
,
children
:
[
children
:
[
{
id
:
'm21'
,
path
:
'admin/company-registration'
,
title
:
'
ทะเบียนบริษัท
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm21'
,
path
:
'admin/company-registration'
,
title
:
'
menu.Company
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm22'
,
path
:
'admin/job-description'
,
title
:
'
ข้อมูลลักษณะงาน
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm22'
,
path
:
'admin/job-description'
,
title
:
'
menu.JobDescription
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm23'
,
path
:
'admin/employee-registration'
,
title
:
'
ทะเบียนพนักงาน
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm23'
,
path
:
'admin/employee-registration'
,
title
:
'
menu.Employee
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm24'
,
path
:
'admin/day-type-registry'
,
title
:
'
ทะเบียนประเภทวัน
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm24'
,
path
:
'admin/day-type-registry'
,
title
:
'
menu.LeaveType
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm25'
,
path
:
'admin/account-settings'
,
title
:
'
ตั้งค่าชื่อผู้ใช้
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm25'
,
path
:
'admin/account-settings'
,
title
:
'
menu.UserSetting
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm26'
,
path
:
'admin/role-permission-config'
,
title
:
'
กำหนดสิทธิการเข้าใช้งาน
'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm26'
,
path
:
'admin/role-permission-config'
,
title
:
'
menu.AccessPermissions
'
,
type
:
'link'
,
show
:
true
},
],
],
},
},
{
{
...
...
src/app/shared/services/pms-evaluation-assessment.service.ts
View file @
1de53efd
...
@@ -8,7 +8,7 @@ import { AppraisalModel } from '../model/appraisal.model';
...
@@ -8,7 +8,7 @@ import { AppraisalModel } from '../model/appraisal.model';
import
{
AppraisalRoundModel
}
from
'../model/appraisal-aps.model'
;
import
{
AppraisalRoundModel
}
from
'../model/appraisal-aps.model'
;
import
{
EvaluationModal
}
from
'../model/evaluation-form.modal'
;
import
{
EvaluationModal
}
from
'../model/evaluation-form.modal'
;
import
{
PmsMasfromEvaluationModel
}
from
'../model/pms-masfrom-evaluation.model'
;
import
{
PmsMasfromEvaluationModel
}
from
'../model/pms-masfrom-evaluation.model'
;
import
{
MasfromEvaluationAssessment1l
List
,
PmsMasfromEvaluationFullModel
}
from
'../model/pms-masfrom-evaluation-list.model'
;
import
{
masfromEvaluationAssessment1
List
,
PmsMasfromEvaluationFullModel
}
from
'../model/pms-masfrom-evaluation-list.model'
;
@
Injectable
({
@
Injectable
({
providedIn
:
'root'
providedIn
:
'root'
...
@@ -27,11 +27,11 @@ export class PmsEvaluationAssessmentService {
...
@@ -27,11 +27,11 @@ export class PmsEvaluationAssessmentService {
getApsassessy
(
evaluationRoundId
:
string
,
apsassessy
:
string
,
apsyear
:
string
):
Observable
<
EvaluationModal
>
{
getApsassessy
(
evaluationRoundId
:
string
,
apsassessy
:
string
,
apsyear
:
string
):
Observable
<
EvaluationModal
>
{
return
this
.
http
.
get
<
EvaluationModal
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
+
"/"
+
apsassessy
+
"/"
+
apsyear
)
return
this
.
http
.
get
<
EvaluationModal
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
+
"/"
+
apsassessy
+
"/"
+
apsyear
)
}
}
getApsassessyMini
(
evaluationRoundId
:
string
,
apsassessy
:
string
,
apsyear
:
string
):
Observable
<
MasfromEvaluationAssessment1l
List
[]
>
{
getApsassessyMini
(
evaluationRoundId
:
string
,
apsassessy
:
string
,
apsyear
:
string
):
Observable
<
masfromEvaluationAssessment1
List
[]
>
{
return
this
.
http
.
get
<
MasfromEvaluationAssessment1l
List
[]
>
(
this
.
urlApi
+
"/mini/"
+
evaluationRoundId
+
"/"
+
apsassessy
+
"/"
+
apsyear
)
return
this
.
http
.
get
<
masfromEvaluationAssessment1
List
[]
>
(
this
.
urlApi
+
"/mini/"
+
evaluationRoundId
+
"/"
+
apsassessy
+
"/"
+
apsyear
)
}
}
getIndicators
(
jobCodeId
:
string
):
Observable
<
MasfromEvaluationAssessment1l
List
[]
>
{
getIndicators
(
jobCodeId
:
string
):
Observable
<
masfromEvaluationAssessment1
List
[]
>
{
return
this
.
http
.
get
<
MasfromEvaluationAssessment1l
List
[]
>
(
this
.
urlApi
+
"/pms-topic/list/"
+
jobCodeId
)
return
this
.
http
.
get
<
masfromEvaluationAssessment1
List
[]
>
(
this
.
urlApi
+
"/pms-topic/list/"
+
jobCodeId
)
}
}
post
(
body
:
PmsMasfromEvaluationFullModel
):
Observable
<
AlertModel
>
{
post
(
body
:
PmsMasfromEvaluationFullModel
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
,
body
)
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
,
body
)
...
...
src/app/shared/sharedmodule.ts
View file @
1de53efd
...
@@ -20,8 +20,7 @@ import { HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
...
@@ -20,8 +20,7 @@ import { HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
import
{
ConfigPermissionService
}
from
'./services/config-permission.service'
;
import
{
ConfigPermissionService
}
from
'./services/config-permission.service'
;
import
{
HttpRequestInterceptor
}
from
'./services/http-request.interceptor'
;
import
{
HttpRequestInterceptor
}
from
'./services/http-request.interceptor'
;
import
{
FileService
}
from
'./services/file.service'
;
import
{
FileService
}
from
'./services/file.service'
;
import
{
TranslateModule
,
TranslateLoader
}
from
'@ngx-translate/core'
;
import
{
TranslateModule
}
from
'@ngx-translate/core'
;
import
{
TranslateJsonLoader
}
from
'../translate-json.loader'
;
@
NgModule
({
@
NgModule
({
...
@@ -44,13 +43,7 @@ import { TranslateJsonLoader } from '../translate-json.loader';
...
@@ -44,13 +43,7 @@ import { TranslateJsonLoader } from '../translate-json.loader';
SimplebarAngularModule
,
SimplebarAngularModule
,
ColorPickerModule
,
ColorPickerModule
,
FormsModule
,
FormsModule
,
TranslateModule
.
forRoot
({
TranslateModule
loader
:
{
provide
:
TranslateLoader
,
useClass
:
TranslateJsonLoader
,
deps
:
[
HttpClient
]
}
})
],
],
exports
:
[
exports
:
[
...
...
src/assets/i18n/en.json
View file @
1de53efd
{
{
"Thai (TH)"
:
"ไทย (TH)"
,
"Thai (TH)"
:
"ไทย (TH)"
,
"English (US)"
:
"อังกฤษ (US)"
"English (US)"
:
"อังกฤษ (US)"
,
"menu"
:
{
"Dashboard"
:
"Dashboard"
,
"Organization"
:
"Organization"
,
"Company"
:
"Company"
,
"JobDescription"
:
"JobDescription"
,
"Employee"
:
"Employee"
,
"LeaveType"
:
"LeaveType"
,
"UserSetting"
:
"UserSetting"
,
"AccessPermissions"
:
"AccessPermissions"
},
"SearchByNoOrName"
:
"Search by No. or Name"
,
"Import"
:
"Import"
,
"Add"
:
"Add"
,
"Delete"
:
"Delete"
,
"Print"
:
"Print"
,
"ExcelExport"
:
"Excel Export"
,
"CsvExport"
:
"CSV Export"
,
"Selected"
:
"Selected"
,
"CompanyCode"
:
"Company Code"
,
"CompanyDescThai"
:
"Company Desc. (Thai)"
,
"CompanyDescEng"
:
"Company Desc. (Eng)"
,
"Action"
:
"Action"
,
"Item"
:
"Item"
}
}
\ No newline at end of file
src/assets/i18n/th.json
View file @
1de53efd
{
{
"Thai (TH)"
:
"ไทย (TH)"
,
"Thai (TH)"
:
"ไทย (TH)"
,
"English (US)"
:
"อังกฤษ (US)"
"English (US)"
:
"อังกฤษ (US)"
,
"menu"
:
{
"Dashboard"
:
"แดชบอร์ด"
,
"Organization"
:
"จัดการข้อมูลองค์กร"
,
"Company"
:
"ทะเบียนบริษัท"
,
"JobDescription"
:
"ข้อมูลลักษณะงาน"
,
"Employee"
:
"ทะเบียนพนักงาน"
,
"LeaveType"
:
"ทะเบียนประเภทวัน"
,
"UserSetting"
:
"ตั้งค่าผู้ใช้งาน"
,
"AccessPermissions"
:
"กำหนดสิทธิการเข้าใช้งาน"
},
"SearchByNoOrName"
:
"ค้นหาตามรหัสหรือชื่อ"
,
"Import"
:
"นำเข้า"
,
"Add"
:
"เพิ่ม"
,
"Delete"
:
"ลบ"
,
"Print"
:
"พิมพ์"
,
"ExcelExport"
:
"ส่งออก Excel"
,
"CsvExport"
:
"ส่งออก CSV"
,
"Selected"
:
"เลือก"
,
"CompanyCode"
:
"รหัสบริษัท"
,
"CompanyDescThai"
:
"รายละเอียดบริษัท (ไทย)"
,
"CompanyDescEng"
:
"รายละเอียดบริษัท (อังกฤษ)"
,
"Action"
:
"การจัดการ"
,
"Item"
:
"รายการ"
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment