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
222cee4e
Commit
222cee4e
authored
Jan 06, 2025
by
Natthaphat Pankiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
การจัดการรายละเอียดงาน > โครงสร้างสายการบังคับบัญชา
parent
86c263d1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
272 additions
and
4 deletions
+272
-4
dashboard-routing.module.ts
src/app/components/dashboard/dashboard-routing.module.ts
+3
-0
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+4
-0
command-structure.component.html
...onents/command-structure/command-structure.component.html
+26
-0
command-structure.component.scss
...onents/command-structure/command-structure.component.scss
+0
-0
command-structure.component.ts
...mponents/command-structure/command-structure.component.ts
+10
-0
sub-command-structure.component.html
...ub-command-structure/sub-command-structure.component.html
+0
-0
sub-command-structure.component.scss
...ub-command-structure/sub-command-structure.component.scss
+150
-0
sub-command-structure.component.ts
.../sub-command-structure/sub-command-structure.component.ts
+74
-0
work-detail.component.html
...ponents/job-detail/work-detail/work-detail.component.html
+4
-4
navservice.ts
src/app/shared/services/navservice.ts
+1
-0
No files found.
src/app/components/dashboard/dashboard-routing.module.ts
View file @
222cee4e
...
...
@@ -29,6 +29,8 @@ import { IdpDevelopmentPlanComponent } from '../competency-assessment/idp-develo
import
{
JobCompetencyComponent
}
from
'../job-detail-components/job-competency/job-competency.component'
;
import
{
JobQualificationsComponent
}
from
'../job-detail-components/job-qualifications/job-qualifications.component'
;
import
{
JobDetailComponent
}
from
'../job-detail-components/job-detail/job-detail.component'
;
import
{
CommandStructureComponent
}
from
'../job-detail-components/command-structure/command-structure.component'
;
const
routes
:
Routes
=
[
...
...
@@ -64,6 +66,7 @@ const routes: Routes = [
{
path
:
"job-competency"
,
title
:
'ความรู้ ทักษะ ความสามารถในตำเเหน่งงาน'
,
component
:
JobCompetencyComponent
},
{
path
:
"job-qualifications"
,
title
:
'คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่'
,
component
:
JobQualificationsComponent
},
{
path
:
"job-detail"
,
title
:
'รายละเอียดของงาน'
,
component
:
JobDetailComponent
},
{
path
:
"command-structure"
,
title
:
'โครงสร้างสายการบังคับบัญชา'
,
component
:
CommandStructureComponent
},
]
}
];
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
222cee4e
...
...
@@ -77,6 +77,8 @@ import { JobQualificationsComponent } from '../job-detail-components/job-qualifi
import
{
SubJobQualificationsComponent
}
from
'../job-detail-components/job-qualifications/sub-job-qualifications/sub-job-qualifications.component'
;
import
{
JobDetailComponent
}
from
'../job-detail-components/job-detail/job-detail.component'
;
import
{
WorkDetailComponent
}
from
'../job-detail-components/job-detail/work-detail/work-detail.component'
;
import
{
SubCommandStructureComponent
}
from
'../job-detail-components/command-structure/sub-command-structure/sub-command-structure.component'
;
import
{
CommandStructureComponent
}
from
'../job-detail-components/command-structure/command-structure.component'
;
@
NgModule
({
...
...
@@ -138,6 +140,8 @@ import { WorkDetailComponent } from '../job-detail-components/job-detail/work-de
SubJobQualificationsComponent
,
JobDetailComponent
,
WorkDetailComponent
,
CommandStructureComponent
,
SubCommandStructureComponent
,
],
imports
:
[
CommonModule
,
...
...
src/app/components/job-detail-components/command-structure/command-structure.component.html
0 → 100644
View file @
222cee4e
<app-page-header
[
pathTitle
]="
pathTitle
"
></app-page-header>
<div
class=
"bg-card-white"
>
</div>
<div
class=
"block-main-content"
>
<div
class=
"font-size-18px font-weight-700 pt-1.5rem text-primary px-2rem"
>
โครงสร้างสายการบังคับบัญชา
</div>
<div
class=
"page pt-0.75rem"
>
<div
class=
"border-b border-gray-200 dark:border-white/10 px-2rem"
>
<nav
class=
"-mb-0.5 flex space-x-6 rtl:space-x-reverse"
>
<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 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary active"
href=
"javascript:void(0);"
id=
"underline-item-1"
data-hs-tab=
"#underline-1"
aria-controls=
"underline-1"
(
click
)="
pathTitle =
['การจัดการรายละเอียดงาน','โครงสร้างสายการบังคับบัญชา']"
>
โครงสร้างสายการบังคับบัญชา
</a>
</nav>
</div>
<div
class=
"mt-3 px-2rem"
>
<div
id=
"underline-1"
role=
"tabpanel"
aria-labelledby=
"underline-item-1"
>
<app-sub-command-structure></app-sub-command-structure>
</div>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/job-detail-components/command-structure/command-structure.component.scss
0 → 100644
View file @
222cee4e
src/app/components/job-detail-components/command-structure/command-structure.component.ts
0 → 100644
View file @
222cee4e
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-command-structure'
,
templateUrl
:
'./command-structure.component.html'
,
styleUrls
:
[
'./command-structure.component.scss'
]
})
export
class
CommandStructureComponent
{
pathTitle
=
[
'การจัดการรายละเอียดงาน'
,
'โครงสร้างสายการบังคับบัญชา'
]
}
src/app/components/job-detail-components/command-structure/sub-command-structure/sub-command-structure.component.html
0 → 100644
View file @
222cee4e
This diff is collapsed.
Click to expand it.
src/app/components/job-detail-components/command-structure/sub-command-structure/sub-command-structure.component.scss
0 → 100644
View file @
222cee4e
.button-clear
{
position
:
absolute
;
top
:
96px
;
z-index
:
1
;
right
:
41vw
;
}
.button-help
{
position
:
absolute
;
top
:
0px
;
z-index
:
1
;
right
:
0vw
;
margin
:
4
.2rem
;
margin-right
:
10px
;
/* เพิ่มใหม่ 12/16*/
}
table
.ti-custom-table
th
{
height
:
60px
;
}
table
.ti-custom-table
thead
{
height
:
50px
;
}
table
.ti-custom-table
thead
th
span
{
font-size
:
12px
;
font-weight
:
bold
;
}
a
.custom-link
{
padding
:
10px
40px
;
/* ปรับ padding ให้เพิ่มขนาด */
}
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
width
:
100%
;
cursor
:
pointer
;
margin-bottom
:
10px
;
height
:
20%
;
}
.nav-item
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link
{
text-decoration
:
none
;
padding
:
10px
20px
;
display
:
inline-block
;
font-size
:
large
;
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
#ccc
;
border-radius
:
5px
5px
0px
0px
;
}
.nav-link
:hover
{
background-color
:
#f0f0f0
;
/* เปลี่ยนสีเมื่อ hover */
}
.nav-link.active
{
color
:
#ffffff
;
/* สีตัวอักษรในสถานะ active */
font-size
:
large
;
border-bottom
:
3
.5px
solid
rgb
(
var
(
--
color-primary
));
/* เส้นใต้ */
background-color
:
rgb
(
var
(
--
color-primary
));
border-width
:
2px
2px
0px
2px
;
border-style
:
solid
;
border-color
:
rgb
(
var
(
--
color-primary
));
border-radius
:
5px
5px
0px
0px
;
}
.tab-content
{
margin-top
:
20px
;
}
.tab-pane.active
{
display
:
block
;
}
.nav-item-text
{
list-style
:
none
;
margin-right
:
10px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link-text
{
text-decoration
:
none
;
display
:
inline-block
;
font-size
:
large
;
color
:
#569bf5
;
border-bottom
:
2px
solid
#569bf5
;
line-height
:
0
.8
;
}
.ti-pagination
.page-link.active
{
background-color
:
#569bf5
;
color
:
white
;
border-radius
:
50%
;
padding
:
8px
12px
;
}
.box-body
{
padding
:
0rem
;
}
.page
{
min-height
:
0vh
;
}
.ti-modal
{
overflow
:
hidden
;
}
.header-title-type
{
width
:
100%
;
min-height
:
50px
;
/* ใช้ min-height เพื่อให้มีความยืดหยุ่น */
// margin-top: 50px;
// margin-bottom: 16px;
justify-content
:
space-between
;
/* จัดเรียงองค์ประกอบภายใน */
align-items
:
center
;
/* จัดกลางแนวตั้ง */
padding-top
:
50px
;
padding-bottom
:
1rem
;
}
// .icon-container {
// display: inline-flex;
// align-items: center;
// justify-content: center;
// width: 20px; /* ปรับขนาดตามต้องการ */
// height: 20px; /* ปรับขนาดตามต้องการ */
// border: 2px solid #2196F3; /* กรอบสีน้ำเงิน */
// border-radius: 5px; /* มุมโค้งมนเล็กน้อย */
// background-color: #E3F2FD; /* พื้นหลังสีฟ้าอ่อน */
// margin-bottom: 10px; /* เว้นระยะห่างจาก textarea */
// }
// .icon-container i {
// font-size: 10px; /* ขนาดไอคอน */
// color: #2196F3; /* สีไอคอน */
// }
.icon-container
{
display
:
flex
;
gap
:
1px
;
/* ระยะห่างระหว่างไอคอน */
}
.icon-container
i
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
width
:
20px
;
/* ขนาดกรอบ */
height
:
20px
;
border
:
2px
solid
#2196F3
;
/* สีกรอบ */
border-radius
:
4px
;
/* มุมโค้งมน */
background-color
:
#E3F2FD
;
/* พื้นหลังสีฟ้าอ่อน */
color
:
#2196F3
;
/* สีไอคอน */
font-size
:
10px
;
/* ขนาดไอคอน */
}
src/app/components/job-detail-components/command-structure/sub-command-structure/sub-command-structure.component.ts
0 → 100644
View file @
222cee4e
import
{
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
{
JobModel
,
MyJobModel
}
from
'src/app/shared/model/job.model'
;
@
Component
({
selector
:
'app-sub-command-structure'
,
templateUrl
:
'./sub-command-structure.component.html'
,
styleUrls
:
[
'./sub-command-structure.component.scss'
]
})
export
class
SubCommandStructureComponent
{
currentPage
=
1
page
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
jobList
:
JobModel
[]
=
[]
job
:
JobModel
=
new
MyJobModel
({})
search
=
""
constructor
(
private
toastr
:
ToastrService
)
{
}
ngOnInit
():
void
{
}
searchChange
()
{
this
.
currentPage
=
1
this
.
page
=
Array
.
from
({
length
:
Math
.
ceil
(
this
.
jobListFilter
().
length
/
10
)
},
(
_
,
i
)
=>
i
+
1
);
}
jobListFilter
()
{
return
this
.
jobList
.
filter
(
x
=>
x
.
jobid
.
toLowerCase
().
includes
(
this
.
search
)
||
x
.
tdesc
.
toLowerCase
().
includes
(
this
.
search
)
||
x
.
edesc
.
toLowerCase
().
includes
(
this
.
search
))
}
selectJob
(
job
:
JobModel
)
{
// this.showSuccess()
this
.
job
=
new
MyJobModel
(
job
)
}
showSuccessAdd
()
{
this
.
toastr
.
success
(
'บันทึกข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
showSuccessEdit
()
{
this
.
toastr
.
success
(
'เเก้ไขข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
showSuccessDelete
()
{
this
.
toastr
.
success
(
'ลบข้อมูลสำเร็จ'
,
'เเจ้งเตือน'
,
{
timeOut
:
3000
,
positionClass
:
'toast-top-right'
,
});
}
addBu1
()
{
// this.bu1Service.post(this.bu1).subscribe((response:any) => {
// if (response.success) {
// this.getBu1List()
// }
// })
}
deleteJob
(
job
:
JobModel
)
{
// this.bu1Service.delete(new MyBu1Model(bu1)).subscribe((response:any) => {
// if (response.success) {
// this.getBu1List()
// }
// })
}
}
\ No newline at end of file
src/app/components/job-detail-components/job-detail/work-detail/work-detail.component.html
View file @
222cee4e
...
...
@@ -249,10 +249,10 @@
value=
"001"
>
<label
for=
"input-label"
class=
"ti-form-label mt-2rem"
>
ชื่อลักษณะงาน (ไทย)*
</label>
<input
type=
"text"
id=
"input-label"
class=
"ti-form-input h-10 bg-input-readonly"
readonly
value=
""
>
value=
"
Department Manager 1
"
>
<label
for=
"input-label"
class=
"ti-form-label mt-2rem"
>
ชื่อลักษณะงาน (อังกฤษ)
</label>
<input
type=
"text"
id=
"input-label"
class=
"ti-form-input h-10 bg-input-readonly"
readonly
value=
""
>
value=
"
Department Manager 1
"
>
<div
class=
"flex space-x-4 justify-center"
>
<!-- label และ textarea แรก -->
<div
class=
"flex flex-col w-full"
>
...
...
@@ -323,7 +323,7 @@
<div
class=
"flex justify-end mt-3rem mb-1rem space-x-4"
>
<button
type=
"button"
class=
"hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"
data-hs-overlay=
"#work-detail-
alert-add-modal
"
>
data-hs-overlay=
"#work-detail-
modal-edit
"
>
ย้อนกลับ
</button>
<a
class=
"ti-btn ti-btn-success"
href=
"javascript:void(0);"
...
...
@@ -359,7 +359,7 @@
<div
class=
"flex justify-end mt-2rem mb-1rem"
>
<button
type=
"button"
class=
"hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"
data-hs-overlay=
"#work-detail-
alert-add-modal
"
>
data-hs-overlay=
"#work-detail-
modal-edit
"
>
ย้อนกลับ
</button>
<a
class=
"ti-btn ti-btn-success"
href=
"javascript:void(0);"
...
...
src/app/shared/services/navservice.ts
View file @
222cee4e
...
...
@@ -104,6 +104,7 @@ export class NavService implements OnDestroy {
active
:
false
,
children
:
[
{
path
:
'/job-detail-management'
,
title
:
'ข้อมูลทั่วไป'
,
type
:
'link'
},
{
path
:
'/command-structure'
,
title
:
'โครงสร้างสายการบังคับบัญชา'
,
type
:
'link'
},
{
path
:
'/job-detail'
,
title
:
'รายละเอียดของงาน'
,
type
:
'link'
},
{
path
:
'/job-qualifications'
,
title
:
'คุณสมบัติที่จำเป็นต่อการปฏิบัติหน้าที่'
,
type
:
'link'
},
{
path
:
'/job-competency'
,
title
:
'ความรู้ ทักษะ ความสามารถในตำเเหน่งงาน'
,
type
:
'link'
},
...
...
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