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
038a89a0
Commit
038a89a0
authored
Oct 01, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ข้อมูลลักษณะงาน (JD)
parent
e70c95d7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
103 additions
and
28 deletions
+103
-28
error404.component.html
...uthentication/errorpages/error404/error404.component.html
+1
-1
dashboard-routing.module.ts
src/app/components/dashboard/dashboard-routing.module.ts
+2
-2
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+2
-2
job-description-emp.component.html
...ts/job-description-emp/job-description-emp.component.html
+0
-0
job-description-emp.component.scss
...ts/job-description-emp/job-description-emp.component.scss
+0
-0
job-description-emp.component.ts
...ents/job-description-emp/job-description-emp.component.ts
+60
-0
job-description-ess.component.ts
...ents/job-description-ess/job-description-ess.component.ts
+0
-21
job-code.model.ts
src/app/shared/model/job-code.model.ts
+17
-0
jobcode.service.ts
src/app/shared/services/jobcode.service.ts
+4
-0
navservice.ts
src/app/shared/services/navservice.ts
+1
-0
en.json
src/assets/i18n/en.json
+8
-1
th.json
src/assets/i18n/th.json
+8
-1
No files found.
src/app/components/authentication/errorpages/error404/error404.component.html
View file @
038a89a0
...
...
@@ -8,7 +8,7 @@
<p
class=
"mt-3 text-2xl font-bold text-gray-800 dark:text-white"
>
Oops, something went wrong.
</p>
<p
class=
"text-gray-600 dark:text-white/70"
>
Sorry, we couldn't find your page.
</p>
<div
class=
"mt-5 flex flex-col justify-center items-center gap-2 sm:flex-row sm:gap-3"
>
<a
class=
"w-full sm:w-auto inline-flex justify-center items-center gap-x-3 text-center bg-primary hover:bg-primary border border-transparent text-white text-sm font-medium rounded-sm focus:outline-none focus:ring-0 focus:ring-primary focus:ring-offset-0 focus:ring-offset-white transition py-2 px-3 dark:focus:ring-offset-white/10"
href=
"/
dashboard/sales
"
>
<a
class=
"w-full sm:w-auto inline-flex justify-center items-center gap-x-3 text-center bg-primary hover:bg-primary border border-transparent text-white text-sm font-medium rounded-sm focus:outline-none focus:ring-0 focus:ring-primary focus:ring-offset-0 focus:ring-offset-white transition py-2 px-3 dark:focus:ring-offset-white/10"
href=
"/
#/ess/my-skill-x-module
"
>
<i
class=
"ri-arrow-left-line"
></i>
Get Back to Home
</a>
...
...
src/app/components/dashboard/dashboard-routing.module.ts
View file @
038a89a0
...
...
@@ -56,9 +56,9 @@ import { EssProfileComponent } from '../ess-profile/ess-profile.component';
import
{
ExcelReportComponent
}
from
'../excel-report/excel-report.component'
;
import
{
SettingIndividualKpiComponent
}
from
'../setting-individual-kpi/setting-individual-kpi.component'
;
import
{
SettingIndividualKpiSupervisorComponent
}
from
'../setting-individual-kpi-supervisor/setting-individual-kpi-supervisor.component'
;
import
{
JobDescriptionEssComponent
}
from
'../job-description-ess/job-description-ess.component'
;
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'
;
...
...
@@ -130,7 +130,7 @@ const routes: Routes = [
{
path
:
"ess/self-setting-individual-kpi"
,
title
:
'แก้ไข Individual KPI ตนเอง'
,
component
:
SettingIndividualKpiComponent
},
{
path
:
"ess/supervisor-setting-individual-kpi"
,
title
:
'แก้ไข Individual KPI โดยหัวหน้า'
,
component
:
SettingIndividualKpiSupervisorComponent
},
{
path
:
"
ess/job-description"
,
title
:
'รายละเอียดของงาน'
,
component
:
JobDescriptionEss
Component
},
{
path
:
"
admin/job-description-emp"
,
title
:
'รายละเอียดของงาน'
,
component
:
JobDescriptionEmp
Component
},
]
}
];
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
038a89a0
...
...
@@ -204,12 +204,12 @@ import {
}
from
'@syncfusion/ej2-angular-grids'
;
import
{
SettingIndividualKpiComponent
}
from
'../setting-individual-kpi/setting-individual-kpi.component'
;
import
{
SettingIndividualKpiSupervisorComponent
}
from
'../setting-individual-kpi-supervisor/setting-individual-kpi-supervisor.component'
;
import
{
JobDescriptionEssComponent
}
from
'../job-description-ess/job-description-ess.component'
;
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
{
CompetencyDefineEvaluationFactorsComponent
}
from
'../competency-assessment/competency-evaluation-factors/competency-define-evaluation-factors/competency-define-evaluation-factors.component'
;
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'
;
export
const
MY_DATE_FORMATS
=
{
parse
:
{
...
...
@@ -358,7 +358,7 @@ export class CustomDateAdapter extends NativeDateAdapter {
PivotSyncfutionComponent
,
SettingIndividualKpiComponent
,
SettingIndividualKpiSupervisorComponent
,
JobDescriptionE
ss
Component
,
JobDescriptionE
mp
Component
,
MoneyInputDirective
],
imports
:
[
TranslateModule
,
...
...
src/app/components/job-description-e
ss/job-description-ess
.component.html
→
src/app/components/job-description-e
mp/job-description-emp
.component.html
View file @
038a89a0
This diff is collapsed.
Click to expand it.
src/app/components/job-description-e
ss/job-description-ess
.component.scss
→
src/app/components/job-description-e
mp/job-description-emp
.component.scss
View file @
038a89a0
File moved
src/app/components/job-description-emp/job-description-emp.component.ts
0 → 100644
View file @
038a89a0
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-job-description-emp'
,
templateUrl
:
'./job-description-emp.component.html'
,
styleUrls
:
[
'./job-description-emp.component.scss'
]
})
export
class
JobDescriptionEmpComponent
{
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
src/app/components/job-description-ess/job-description-ess.component.ts
deleted
100644 → 0
View file @
e70c95d7
import
{
ViewportScroller
}
from
'@angular/common'
;
import
{
ChangeDetectorRef
,
Component
}
from
'@angular/core'
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
'src/app/shared/model/employee.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
{
FileService
}
from
'src/app/shared/services/file.service'
;
export
interface
BiModel
{
name
:
string
,
tools
:
string
[],
degree
:
string
}
@
Component
({
selector
:
'app-job-description-ess'
,
templateUrl
:
'./job-description-ess.component.html'
,
styleUrls
:
[
'./job-description-ess.component.scss'
]
})
export
class
JobDescriptionEssComponent
{
}
\ No newline at end of file
src/app/shared/model/job-code.model.ts
View file @
038a89a0
...
...
@@ -52,6 +52,7 @@ export interface JobCodeModel {
jl
:
JlModel
supervisorJobCode
:
SupervisorJobCodeModel
expectation
:
number
|
null
positionInJob
:
PositionInJobModel
[]
}
export
class
MyJobCodeModel
implements
JobCodeModel
{
...
...
@@ -98,6 +99,7 @@ export class MyJobCodeModel implements JobCodeModel {
jl
:
JlModel
supervisorJobCode
:
SupervisorJobCodeModel
expectation
:
number
|
null
positionInJob
:
PositionInJobModel
[]
constructor
(
data
:
Partial
<
JobCodeModel
>
)
{
this
.
jobcodeId
=
data
.
jobcodeId
||
""
this
.
companyId
=
data
.
companyId
||
""
...
...
@@ -142,11 +144,26 @@ export class MyJobCodeModel implements JobCodeModel {
this
.
jl
=
new
MyJlModel
(
data
?.
jl
)
this
.
supervisorJobCode
=
new
MySupervisorJobCodeModel
(
data
?.
supervisorJobCode
)
this
.
expectation
=
data
?.
expectation
??
null
this
.
positionInJob
=
(
data
?.
positionInJob
||
[]).
map
(
e
=>
new
MyPositionInJobModel
(
e
))
}
}
export
interface
PositionInJobModel
{
countPosition
:
number
position
:
PositionModel
}
export
class
MyPositionInJobModel
implements
PositionInJobModel
{
countPosition
:
number
position
:
PositionModel
constructor
(
data
?:
Partial
<
PositionInJobModel
>
)
{
this
.
countPosition
=
data
?.
countPosition
??
0
this
.
position
=
new
MyPositionModel
(
data
?.
position
||
{})
}
}
export
interface
SupervisorJobCodeModel
{
jobCodeId
:
string
tdesc
:
string
...
...
src/app/shared/services/jobcode.service.ts
View file @
038a89a0
...
...
@@ -4,6 +4,7 @@ import { Observable } from 'rxjs';
import
{
environment
}
from
'src/environments/environment'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
JobcodeModel
}
from
'../model/jobcode.model'
;
import
{
JobCodeModel
}
from
'../model/job-code.model'
;
@
Injectable
({
providedIn
:
'root'
})
...
...
@@ -12,6 +13,9 @@ export class JobcodeService {
urlApi
=
environment
.
baseUrl
+
this
.
api
constructor
(
private
http
:
HttpClient
)
{
}
getEmp
():
Observable
<
JobCodeModel
>
{
return
this
.
http
.
get
<
JobCodeModel
>
(
this
.
urlApi
+
"/emp"
)
}
getById
(
plId
:
string
):
Observable
<
JobcodeModel
>
{
return
this
.
http
.
get
<
JobcodeModel
>
(
this
.
urlApi
+
"/"
+
plId
)
}
...
...
src/app/shared/services/navservice.ts
View file @
038a89a0
...
...
@@ -186,6 +186,7 @@ export class NavService implements OnDestroy {
{
id
:
'm24'
,
path
:
'admin/day-type-registry'
,
title
:
'menu.LeaveType'
,
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
:
'menu.AccessPermissions'
,
type
:
'link'
,
show
:
true
},
{
id
:
'm27'
,
path
:
'admin/job-description-emp'
,
title
:
'ข้อมูลลักษณะงาน (JD)'
,
type
:
'link'
,
show
:
true
},
],
},
{
...
...
src/assets/i18n/en.json
View file @
038a89a0
...
...
@@ -196,5 +196,11 @@
"ExcelReport"
:
"Excel Report"
,
"EvaluationPeriod"
:
"Evaluation Period"
,
"JobDescription(JD)"
:
"Job Description (JD)"
,
"NoteIfYouDoNotSelectAJDLevelTheSystemWillSelectAll"
:
"Note: If you do not select a JD level, The system will select all."
"NoteIfYouDoNotSelectAJDLevelTheSystemWillSelectAll"
:
"Note: If you do not select a JD level, The system will select all."
,
"Part 1 : General Information"
:
"Part 1 : General Information"
,
"Part 2 : Organization Chart"
:
"Part 2 : Organization Chart"
,
"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"
}
\ No newline at end of file
src/assets/i18n/th.json
View file @
038a89a0
...
...
@@ -199,5 +199,11 @@
"ExcelReport"
:
"รายงาน"
,
"EvaluationPeriod"
:
"แก้ไขรอบการประเมิน"
,
"JobDescription(JD)"
:
"ลักษณะงาน (JD)"
,
"NoteIfYouDoNotSelectAJDLevelTheSystemWillSelectAll"
:
"หมายเหตุ ถ้าไม่เลือกระดับ JD ระบบจะทำการเลือกทั้งหมด"
"NoteIfYouDoNotSelectAJDLevelTheSystemWillSelectAll"
:
"หมายเหตุ ถ้าไม่เลือกระดับ JD ระบบจะทำการเลือกทั้งหมด"
,
"Part 1 : General Information"
:
"ส่วนที่ 1 : ข้อมูลทั่วไป"
,
"Part 2 : Organization Chart"
:
"ส่วนที่ 2 : โครงสร้างสายการบังคับบัญชา"
,
"Part 3 : Job Detail"
:
"ส่วนที่ 3 : รายละเอียดของงาน"
,
"Part 4 : Job Specification"
:
"ส่วนที่ 4 : คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่"
,
"Part 5 : Job Competency"
:
"ส่วนที่ 5 : ความรู้ ทักษะ ความสามารถในตำแหน่งงาน"
,
"Part 6 : Key Performance Indicators: KPIs"
:
"ส่วนที่ 6 : ตัวชี้วัดของตำแหน่งงาน"
}
\ 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