Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
myAppraisal
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
myAppraisal
Commits
deaf15f9
Commit
deaf15f9
authored
Mar 05, 2025
by
Nakarin Luankla
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
การประเมินจัดการประสิทธิภาพ
รอบการประเมิน PMS
parent
fd68d956
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
137 additions
and
16 deletions
+137
-16
edit-define-document-form.component.ts
...fine-document-form/edit-define-document-form.component.ts
+3
-2
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+4
-0
edit-evaluation-form.component.html
.../edit-evaluation-form/edit-evaluation-form.component.html
+15
-14
edit-evaluation-form.component.ts
...rm/edit-evaluation-form/edit-evaluation-form.component.ts
+0
-0
pms-masfrom-evaluation-list.model.ts
src/app/shared/model/pms-masfrom-evaluation-list.model.ts
+0
-0
pms-masfrom-evaluation.model.ts
src/app/shared/model/pms-masfrom-evaluation.model.ts
+3
-0
pms-evaluation-assessment.service.ts
src/app/shared/services/pms-evaluation-assessment.service.ts
+61
-0
pms-evaluation-cycle.service.ts
src/app/shared/services/pms-evaluation-cycle.service.ts
+37
-0
pms-masfrom-evaluation.service.ts
src/app/shared/services/pms-masfrom-evaluation.service.ts
+14
-0
No files found.
src/app/components/competency-assessment/evaluation-cycle-manager/define-document-form/edit-define-document-form/edit-define-document-form.component.ts
View file @
deaf15f9
...
...
@@ -183,7 +183,8 @@ export class EditDefineDocumentFormComponent {
this
.
empassessmentRoundList
=
response
this
.
empassessmentRoundListCheckbox
=
this
.
empassessmentRoundList
.
map
(
item
=>
({
checkbox
:
false
,
item
}))
this
.
checkTopic
();
this
.
searchEmpassessmentListFilterChange
()
this
.
searchEmpassessmentListFilterChange
();
this
.
getIndicators
();
this
.
cdr
.
detectChanges
();
},
error
:
err
=>
{
...
...
@@ -341,7 +342,7 @@ export class EditDefineDocumentFormComponent {
this
.
apsassessy
=
apsassessy
this
.
getApsassessy
()
this
.
getApsassessyMini
();
this
.
getIndicators
();
}
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
deaf15f9
...
...
@@ -153,6 +153,8 @@ import { EvaluationAssessmentService } from 'src/app/shared/services/evaluation-
import
{
AppraisalService
}
from
'src/app/shared/services/appraisal.service'
;
import
{
DayTypeRegistryComponent
}
from
'../company-components/day-type-registry/day-type-registry.component'
;
import
{
EventgrpService
}
from
'src/app/shared/services/eventgrp.service'
;
import
{
PmsEvaluationCycleService
}
from
'src/app/shared/services/pms-evaluation-cycle.service'
;
import
{
PmsEvaluationAssessmentService
}
from
'src/app/shared/services/pms-evaluation-assessment.service'
;
export
const
MY_DATE_FORMATS
=
{
parse
:
{
...
...
@@ -336,6 +338,8 @@ export class CustomDateAdapter extends NativeDateAdapter {
EvaluationAssessmentService
,
AppraisalService
,
EventgrpService
,
PmsEvaluationCycleService
,
PmsEvaluationAssessmentService
,
{
provide
:
HTTP_INTERCEPTORS
,
useClass
:
HttpRequestInterceptor
,
...
...
src/app/components/performance-management-evaluation/evaluation-cycle-performance/document-form/edit-evaluation-form/edit-evaluation-form.component.html
View file @
deaf15f9
...
...
@@ -74,12 +74,12 @@
<tr
*
ngFor=
"let item of assessmentListFilter() | slice:((currentPage-1) * this.pageSize) : (((currentPage-1) * this.pageSize) + this.pageSize);let i = index"
>
<td
class=
"flex justify-center items-center"
>
{{item.
masfromEvaluationRound.e
valuationRoundId}}
</td>
{{item.
pmsMasfromEvaluationRound.pmsE
valuationRoundId}}
</td>
<td>
{{item.apsassessy.fname}} {{item.apsassessy.lname}}
</td>
<td
class=
"text-center"
>
{{item.apsassessy.position.tdesc}}
</td>
<td
class=
"text-center"
>
{{item.personalLevel.tdesc}}
</td>
<td
class=
"flex justify-center items-center space-x-2"
>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-xl px-1"
*
ngIf=
"item.active"
(
click
)="
openAddRoundModel
(
item
.
masfromEvaluationRound
.
e
valuationRoundId
,
item
.
apsassessy
.
employeeId
,
item
,'
form-pm-emp
')"
></i>
<i
class=
"ti ti-edit cursor-pointer i-gray fs-xl px-1"
*
ngIf=
"item.active"
(
click
)="
openAddRoundModel
(
item
.
pmsMasfromEvaluationRound
.
pmsE
valuationRoundId
,
item
.
apsassessy
.
employeeId
,
item
,'
form-pm-emp
')"
></i>
<input
type=
"checkbox"
id=
"hs-small-switch{{i+1}}"
[(
ngModel
)]="
item
.
active
"
class=
"ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 dark:checked:bg-green-600 checked:before:bg-green-200 dark:checked:before:bg-green-200 shrink-0 w-11 h-6 before:w-5 before:h-5"
>
</td>
...
...
@@ -169,12 +169,12 @@
<div
class=
"col-span-1"
>
<input
type=
"text"
id=
"input-label"
class=
"py-2 px-3 ltr:pr-11 rtl:pl-11 ti-form-input rounded-md ltr:rounded-r-md rtl:rounded-l-md focus:z-10 bg-input-readonly"
readonly
value=
"{{selectEmp
.masfromEvaluationRound.e
valuationRoundId}}"
>
readonly
value=
"{{selectEmp
?.pmsMasfromEvaluationRound?.pmsE
valuationRoundId}}"
>
</div>
<div
class=
"col-span-1"
>
<input
type=
"text"
id=
"input-label"
class=
"py-2 px-3 ltr:pr-11 rtl:pl-11 ti-form-input rounded-md ltr:rounded-r-md rtl:rounded-l-md focus:z-10 bg-input-readonly"
readonly
value=
"{{selectEmp
.apsassessy.fname}} {{selectEmp.apsassessy
.lname}}"
>
readonly
value=
"{{selectEmp
?.apsassessy?.fname}} {{selectEmp?.apsassessy?
.lname}}"
>
</div>
</div>
</div>
...
...
@@ -238,9 +238,9 @@
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['','รหัส
สมรรถนะ','ชื่อสมรรถนะ','ระดับความหวัง
','การจัดการ']; let f = first; let l = last; let i = index"
>
*
ngFor=
"let item of ['','รหัส
','ชื่อหัวข้อ','ประเภท','น้ำหนัก
','การจัดการ']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
[
class
.!
text-center
]="
f
||
l
||
item =
==
'
ระดับความหวัง
'"
>
[
class
.!
text-center
]="
f
||
l
||
item =
==
'
ประเภท
'"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
</th>
</ng-container>
...
...
@@ -267,14 +267,15 @@
<tr
*
ngFor=
"let item of empassessmentListFilter() | slice:((currentPageRound-1) * pageSizeRound) : (((currentPageRound-1) * pageSizeRound) + pageSizeRound);let i = index"
>
<td
class=
"text-center"
>
<input
type=
"checkbox"
class=
"ti-form-checkbox cursor-pointer"
id=
"checkbox-{{item.item.groupAssessment1.
competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competency
TopicId}}"
[(
ngModel
)]="
item
.
checkbox
"
(
change
)="
checkempassessmentRoundListCheckbox
()"
>
id=
"checkbox-{{item.item.groupAssessment1.
pmsTopic.pms
TopicId}}"
[(
ngModel
)]="
item
.
checkbox
"
(
change
)="
checkempassessmentRoundListCheckbox
()"
>
</td>
<td>
<label
for=
"checkbox-{{item.item.groupAssessment1.
competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competencyTopicId}}"
>
{{item.item.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competency
TopicId}}
</label>
for=
"checkbox-{{item.item.groupAssessment1.
pmsTopic.pmsTopicId}}"
>
{{item.item.groupAssessment1.pmsTopic.pms
TopicId}}
</label>
</td>
<td
>
{{item.item.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.tdesc}}
</td>
<td
class=
"!text-center"
>
{{item.item.groupAssessment1.competencyIndicatorsCourses1Mini.lineNo}}
</td>
<td
>
{{item.item.groupAssessment1.pmsTopic.tdesc}}
</td>
<td
class=
"!text-center"
>
{{item.item.groupAssessment1.pmsTopic.pmsType.tdesc}}
</td>
<td
class=
"!text-center"
><input
type=
"text"
class=
"form-control"
oninput=
"this.value = this.value.replace(/[^0-9]/g, '')"
[(
ngModel
)]="
item
.
item
.
weight
"
style=
"width: 60px;"
></td>
<td
class=
"flex justify-center"
>
<i
class=
"ti ti-trash cursor-pointer i-gray fs-l px-1"
(
click
)="
deleteFormOne
(
item
.
item
);"
></i>
</td>
...
...
@@ -381,7 +382,7 @@
<thead>
<tr>
<ng-container
*
ngFor=
"let item of ['รหัส','ชื่อ
ประเภท','ความคาดหวัง
','การจัดการ']; let f = first; let l = last; let i = index"
>
*
ngFor=
"let item of ['รหัส','ชื่อ
หัวข้อ','ประเภท
','การจัดการ']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative px-10px py-10px bg-soft-secondary text-primary"
[
class
.!
text-center
]="
f
||
l
"
>
<span
class=
"text-sm"
>
{{ item }}
</span>
...
...
@@ -409,9 +410,9 @@
</thead>
<tbody>
<tr
*
ngFor=
"let item of filterIndicators() | slice:((currentPageIndicator-1) * pageSizeIndicator) : (((currentPageIndicator-1) * pageSizeIndicator) + pageSizeIndicator);let i = index"
>
<td>
{{item.groupAssessment1.
competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competency
TopicId}}
</td>
<td
>
{{item.groupAssessment1.
competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competency
Topic.tdesc}}
</td>
<td
class=
"!text-center"
>
{{item.groupAssessment1.
competencyIndicatorsCourses1Mini.lineNo
}}
</td>
<td>
{{item.groupAssessment1.
pmsTopic.pms
TopicId}}
</td>
<td
>
{{item.groupAssessment1.
pms
Topic.tdesc}}
</td>
<td
class=
"!text-center"
>
{{item.groupAssessment1.
pmsTopic.pmsType.tdesc
}}
</td>
<td
class=
"flex justify-center"
>
<div
class=
"px-1"
>
<button
type=
"button"
(
click
)="
addIndicators
(
item
)"
...
...
src/app/components/performance-management-evaluation/evaluation-cycle-performance/document-form/edit-evaluation-form/edit-evaluation-form.component.ts
View file @
deaf15f9
This diff is collapsed.
Click to expand it.
src/app/shared/model/pms-masfrom-evaluation-list.model.ts
0 → 100644
View file @
deaf15f9
This diff is collapsed.
Click to expand it.
src/app/shared/model/pms-masfrom-evaluation.model.ts
View file @
deaf15f9
...
...
@@ -9,6 +9,7 @@ export interface PmsMasfromEvaluationModel {
apsPeriodStart
:
string
apsPeriodEnd
:
string
statusCode
:
StatusCodeModel
active
:
boolean
}
export
class
MyPmsMasfromEvaluationModel
implements
PmsMasfromEvaluationModel
{
...
...
@@ -20,6 +21,7 @@ export class MyPmsMasfromEvaluationModel implements PmsMasfromEvaluationModel {
apsPeriodStart
:
string
apsPeriodEnd
:
string
statusCode
:
StatusCodeModel
active
:
boolean
constructor
(
data
?:
Partial
<
PmsMasfromEvaluationModel
>
)
{
this
.
pmsEvaluationRoundId
=
data
?.
pmsEvaluationRoundId
||
""
;
this
.
companyId
=
data
?.
companyId
||
""
;
...
...
@@ -28,6 +30,7 @@ export class MyPmsMasfromEvaluationModel implements PmsMasfromEvaluationModel {
this
.
apsyear
=
data
?.
apsyear
||
""
;
this
.
apsPeriodStart
=
data
?.
apsPeriodStart
||
""
;
this
.
apsPeriodEnd
=
data
?.
apsPeriodEnd
||
""
;
this
.
active
=
data
?.
active
||
false
this
.
statusCode
=
new
MyStatusCodeModel
(
data
?.
statusCode
)
}
...
...
src/app/shared/services/pms-evaluation-assessment.service.ts
0 → 100644
View file @
deaf15f9
import
{
HttpClient
,
HttpHeaders
}
from
'@angular/common/http'
;
import
{
Injectable
}
from
'@angular/core'
;
import
{
Observable
}
from
'rxjs'
;
import
{
environment
}
from
'src/environments/environment'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
EvaluationCycleModel
}
from
'../model/evaluation-cycle.model'
;
import
{
AppraisalModel
}
from
'../model/appraisal.model'
;
import
{
AppraisalRoundModel
}
from
'../model/appraisal-aps.model'
;
import
{
EvaluationModal
}
from
'../model/evaluation-form.modal'
;
import
{
PmsMasfromEvaluationModel
}
from
'../model/pms-masfrom-evaluation.model'
;
import
{
MasfromEvaluationAssessment1lList
,
PmsMasfromEvaluationFullModel
}
from
'../model/pms-masfrom-evaluation-list.model'
;
@
Injectable
({
providedIn
:
'root'
})
export
class
PmsEvaluationAssessmentService
{
api
=
"/pms-evaluation-assessment"
urlApi
=
environment
.
baseUrl
+
this
.
api
constructor
(
private
http
:
HttpClient
)
{
}
getList
():
Observable
<
EvaluationCycleModel
[]
>
{
return
this
.
http
.
get
<
EvaluationCycleModel
[]
>
(
this
.
urlApi
+
"/lists"
)
}
getById
(
evaluationRoundId
:
string
):
Observable
<
PmsMasfromEvaluationFullModel
[]
>
{
return
this
.
http
.
get
<
PmsMasfromEvaluationFullModel
[]
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
)
}
getApsassessy
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
EvaluationModal
>
{
return
this
.
http
.
get
<
EvaluationModal
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
getApsassessyMini
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
MasfromEvaluationAssessment1lList
[]
>
{
return
this
.
http
.
get
<
MasfromEvaluationAssessment1lList
[]
>
(
this
.
urlApi
+
"/mini/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
getIndicators
(
plId
:
string
):
Observable
<
MasfromEvaluationAssessment1lList
[]
>
{
return
this
.
http
.
get
<
MasfromEvaluationAssessment1lList
[]
>
(
this
.
urlApi
+
"/pms-topic/list/"
+
plId
)
}
post
(
body
:
AppraisalModel
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
,
body
)
}
postList
(
body
:
any
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
+
"/create-list"
,
body
)
}
delete
(
body
:
EvaluationCycleModel
|
EvaluationCycleModel
[]):
Observable
<
AlertModel
>
{
const
options
=
{
headers
:
new
HttpHeaders
({
"Content-Type"
:
"application/json"
,
}),
body
:
body
};
return
this
.
http
.
delete
<
AlertModel
>
(
this
.
urlApi
,
options
)
}
deletemMini
(
body
:
AppraisalRoundModel
[],
apsassessy
:
string
,
evaluationRoundId
:
string
):
Observable
<
AlertModel
>
{
const
options
=
{
headers
:
new
HttpHeaders
({
"Content-Type"
:
"application/json"
,
}),
body
:
body
};
return
this
.
http
.
delete
<
AlertModel
>
(
this
.
urlApi
+
'/delete-mini'
+
"/"
+
apsassessy
+
"/"
+
evaluationRoundId
,
options
)
}
}
src/app/shared/services/pms-evaluation-cycle.service.ts
0 → 100644
View file @
deaf15f9
import
{
HttpClient
,
HttpHeaders
}
from
'@angular/common/http'
;
import
{
Injectable
}
from
'@angular/core'
;
import
{
Observable
}
from
'rxjs'
;
import
{
environment
}
from
'src/environments/environment'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
EvaluationCycleModel
}
from
'../model/evaluation-cycle.model'
;
@
Injectable
({
providedIn
:
'root'
})
export
class
PmsEvaluationCycleService
{
api
=
"/pms-evaluation-round"
urlApi
=
environment
.
baseUrl
+
this
.
api
constructor
(
private
http
:
HttpClient
)
{
}
getList
():
Observable
<
EvaluationCycleModel
[]
>
{
return
this
.
http
.
get
<
EvaluationCycleModel
[]
>
(
this
.
urlApi
+
"/lists"
)
}
getById
(
evaluationRoundId
:
string
):
Observable
<
EvaluationCycleModel
>
{
return
this
.
http
.
get
<
EvaluationCycleModel
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
)
}
getApsassessy
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
EvaluationCycleModel
>
{
return
this
.
http
.
get
<
EvaluationCycleModel
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
post
(
body
:
EvaluationCycleModel
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
,
body
)
}
delete
(
body
:
EvaluationCycleModel
|
EvaluationCycleModel
[]):
Observable
<
AlertModel
>
{
const
options
=
{
headers
:
new
HttpHeaders
({
"Content-Type"
:
"application/json"
,
}),
body
:
body
};
return
this
.
http
.
delete
<
AlertModel
>
(
this
.
urlApi
,
options
)
}
}
src/app/shared/services/pms-masfrom-evaluation.service.ts
View file @
deaf15f9
...
...
@@ -31,4 +31,18 @@ export class PmsMasfromEvaluationCycleService {
};
return
this
.
http
.
delete
<
AlertModel
>
(
this
.
urlApi
,
options
)
}
getApsassessy
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
any
>
{
return
this
.
http
.
get
<
any
>
(
this
.
urlApi
+
"/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
getApsassessyMini
(
evaluationRoundId
:
string
,
apsassessy
:
string
):
Observable
<
any
[]
>
{
return
this
.
http
.
get
<
any
[]
>
(
this
.
urlApi
+
"/mini/"
+
evaluationRoundId
+
"/"
+
apsassessy
)
}
postList
(
body
:
any
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
+
"/create-list"
,
body
)
}
getIndicators
(
plId
:
string
):
Observable
<
any
[]
>
{
return
this
.
http
.
get
<
any
[]
>
(
this
.
urlApi
+
"/indicators/list/"
+
plId
)
}
}
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