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
f691b4f5
Commit
f691b4f5
authored
Nov 21, 2024
by
kantavee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tab ตั้งค่าผู้ใช้งาน เเละ tab อื่นๆ
parent
5db87453
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
330 additions
and
0 deletions
+330
-0
account-settings.component.html
...mponents/account-settings/account-settings.component.html
+26
-0
account-settings.component.scss
...mponents/account-settings/account-settings.component.scss
+43
-0
account-settings.component.ts
...components/account-settings/account-settings.component.ts
+17
-0
user-settings.component.html
...count-settings/user-settings/user-settings.component.html
+153
-0
user-settings.component.scss
...count-settings/user-settings/user-settings.component.scss
+60
-0
user-settings.component.ts
...account-settings/user-settings/user-settings.component.ts
+18
-0
dashboard-routing.module.ts
src/app/components/dashboard/dashboard-routing.module.ts
+2
-0
dashboard.module.ts
src/app/components/dashboard/dashboard.module.ts
+4
-0
navservice.ts
src/app/shared/services/navservice.ts
+7
-0
No files found.
src/app/components/account-settings/account-settings.component.html
0 → 100644
View file @
f691b4f5
<app-page-header
[
pathTitle
]="
pathTitle
"
></app-page-header>
<div
class=
"bg-card-white"
>
</div>
<div
class=
"block-main-content"
>
<div
class=
"head-title"
>
ตั้งค่าชื่อผู้ใช้งาน
</div>
<div
class=
"body-content"
>
<ul
class=
"nav-tabs"
>
<li
class=
"nav-item"
*
ngFor=
"let item of [{id:'tab1',text:'สร้างชื่อผู้ใช้งาน'},
{id:'tab2',text:'กำหนดรหัสผ่าน'},
{id:'tab3',text:'จัดการผู้ใช้งาน (PL)'}]"
(
click
)="
changeTab
(
item
)"
>
<a
[
class
.
active
]="
activeTab =
==
item
.
id
"
class=
"nav-link"
>
{{item.text}}
</a>
</li>
</ul>
<div
class=
"tab-content"
>
<div
*
ngIf=
"activeTab === 'tab1'"
class=
"tab-pane"
>
<div
class=
"mt-5"
>
<app-employee-group-unit
[
pathTitle
]="
pathTitle
"
(
sendPathTitle
)="
pathTitle=
$event"
></app-employee-group-unit>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/account-settings/account-settings.component.scss
0 → 100644
View file @
f691b4f5
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
border-bottom
:
2px
solid
#ccc
;
/* เส้นใต้ */
border-top
:
2px
solid
#ccc
;
width
:
100%
;
cursor
:
pointer
;
border-top
:
2px
solid
#ccc
;
}
.nav-item
{
list-style
:
none
;
margin-right
:
40px
;
/* ช่องว่างระหว่างเมนู */
}
.nav-link
{
text-decoration
:
none
;
padding
:
10px
20px
;
display
:
inline-block
;
font-size
:
medium
;
text-align
:
left
;
padding-left
:
0px
;
padding-right
:
0px
;
}
.nav-link
:hover
{
background-color
:
#f0f0f0
;
/* เปลี่ยนสีเมื่อ hover */
}
.nav-link.active
{
color
:
#569bf5
;
/* สีตัวอักษรในสถานะ active */
font-size
:
medium
;
border-bottom
:
3
.5px
solid
#569bf5
;
/* เส้นใต้ */
}
.tab-content
{
margin-top
:
20px
;
}
.tab-pane.active
{
display
:
block
;
}
src/app/components/account-settings/account-settings.component.ts
0 → 100644
View file @
f691b4f5
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-account-settings'
,
templateUrl
:
'./account-settings.component.html'
,
styleUrls
:
[
'./account-settings.component.scss'
]
})
export
class
AccountSettingsComponent
{
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ตั้งค่าผู้ใช้งาน'
,
'สร้างรหัสผู้ใช้งาน'
]
activeTab
:
string
=
'tab1'
;
// ฟังก์ชันในการเปลี่ยนแท็บ
changeTab
(
tab
:
{
id
:
string
,
text
:
string
})
{
this
.
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ตั้งค่าผู้ใช้งาน'
,
tab
.
text
]
this
.
activeTab
=
tab
.
id
}
}
src/app/components/account-settings/user-settings/user-settings.component.html
0 → 100644
View file @
f691b4f5
<div
class=
"flex justify-end"
>
<div
class=
"px-1"
>
<div
class=
"input-wrapper"
>
<input
type=
"text"
class=
"ti-form-input"
placeholder=
"Search by No. or Name"
/>
<div
class=
"icon"
>
<i
class=
"ri-search-line"
></i>
</div>
</div>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-blue-light"
><i
class=
"ri-add-line"
></i>
Add
</button>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-red-light"
><i
class=
"ri-delete-bin-6-line"
></i>
Delete
</button>
</div>
<div
class=
"px-1"
>
<button
type=
"button"
class=
"button-yellow-light"
>
<svg
width=
"16"
height=
"16"
viewBox=
"-2.4 -2.4 28.80 28.80"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
stroke=
"#E7A927"
transform=
"matrix(1, 0, 0, 1, 0, 0)"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke=
"#ffffff"
stroke-width=
"2.4"
>
<path
d=
"M12 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 18.5C20.5 18.5 19.5 16.5 16 16.5C12.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 18.5C3.5 18.5 4.5 16.5 8 16.5C11.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5C20.5 6.5 19.5 4.5 16 4.5C12.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5C3.5 6.5 4.5 4.5 8 4.5C11.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
>
</path>
</g>
<g
id=
"SVGRepo_iconCarrier"
>
<path
d=
"M12 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5V18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 18.5C20.5 18.5 19.5 16.5 16 16.5C12.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 18.5C3.5 18.5 4.5 16.5 8 16.5C11.5 16.5 12 18.5 12 18.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M20.5 6.5C20.5 6.5 19.5 4.5 16 4.5C12.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
></path>
<path
d=
"M3.5 6.5C3.5 6.5 4.5 4.5 8 4.5C11.5 4.5 12 6.5 12 6.5"
stroke=
"#E7A927"
stroke-linecap=
"round"
>
</path>
</g>
</svg>
Help
</button>
</div>
</div>
<div
class=
"body-content"
>
<ul
style=
"margin-left: 20px;"
class=
"nav-tabs"
>
<li
class=
"nav-item"
>
<a
[
class
.
active
]="
true
"
class=
"nav-link active"
style=
"font-size: medium;"
>
นำเข้าข้อมูล
</a>
</li>
<li
class=
"nav-item-text flex items-end"
>
<a
class=
"nav-link-text"
style=
"font-size: medium;"
>
ดาวโหลดตัวอย่างไฟล์
</a>
</li>
</ul>
<div
*
ngIf=
"true"
class=
"tab-pane"
>
<div
class=
"overflow-auto shadow-gray-smoke"
>
<table
class=
"ti-custom-table ti-custom-table-head"
>
<thead
class=
"bg-gray-50 dark:bg-black/20"
>
<tr
style=
"height: 60px;"
>
<ng-container
*
ngFor=
"let item of ['รหัสประเภทพนักงาน','รายละเอียด(ไทย) *','รายละเอียด(อังกฤษ)','Action']; let f = first; let l = last; let i = index"
>
<th
scope=
"col"
class=
"relative head-table"
[
class
.!
text-center
]="
f
||
l
"
[
ngStyle
]="
f
?
{'
width
.
px
'
:
200
,
'
text-align
'
:
'
center
'}
:
{}"
>
<span>
{{ item }}
</span>
<div
class=
"absolute top-1/2 transform -translate-y-1/2 right-0"
*
ngIf=
"!l&&!f&&i!==2"
>
<svg
class=
"head-table-icon"
xmlns=
"http://www.w3.org/2000/svg"
width=
"50"
height=
"16"
fill=
"currentColor"
viewBox=
"0 0 16 16"
>
<path
d=
"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"
>
</path>
</svg>
</div>
</th>
</ng-container>
</tr>
</thead>
<tbody>
<tr
*
ngFor=
"let item of[
['พนักงานประจำรายเดือน', 'พนักงานประจำรายเดือน'],
['พนักงานประจำรายวัน', 'พนักงานประจำรายวัน']];let i = index"
>
<td
style=
"font-size: 12px; "
class=
"body-table-left"
>
<input
type=
"checkbox"
style=
"margin-right: 20px; transform:scale(0.7)"
>
{{0+""+(i+1)}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[0]}}
</td>
<td
style=
"text-align: center; font-size: 12px;"
>
{{item[1]}}
</td>
<td
class=
"body-table-center"
>
<div
class=
"px-1"
>
<svg
width=
"16"
height=
"16"
viewBox=
"0 0 24 24"
id=
"Layer_1"
data-name=
"Layer 1"
xmlns=
"http://www.w3.org/2000/svg"
fill=
"#64748b"
stroke=
"#64748b"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
></g>
<g
id=
"SVGRepo_iconCarrier"
>
<defs>
<style>
.cls-1
{
fill
:
none
;
stroke
:
#64748b
;
stroke-miterlimit
:
10
;
stroke-width
:
1.91px
;
}
</style>
</defs>
<polyline
class=
"cls-1"
points=
"20.59 12 20.59 22.5 1.5 22.5 1.5 3.41 12.96 3.41"
>
</polyline>
<path
class=
"cls-1"
d=
"M12,15.82l-4.77.95L8.18,12l9.71-9.71A2.69,2.69,0,0,1,19.8,1.5h0a2.7,2.7,0,0,1,2.7,2.7h0a2.69,2.69,0,0,1-.79,1.91Z"
>
</path>
</g>
</svg>
</div>
<div
class=
"px-1"
>
<svg
width=
"16"
height=
"16"
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
stroke=
"#64748b"
>
<g
id=
"SVGRepo_bgCarrier"
stroke-width=
"0"
></g>
<g
id=
"SVGRepo_tracerCarrier"
stroke-linecap=
"round"
stroke-linejoin=
"round"
></g>
<g
id=
"SVGRepo_iconCarrier"
>
<path
d=
"M1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25V3.75ZM22.5 5.25C22.9142 5.25 23.25 4.91421 23.25 4.5C23.25 4.08579 22.9142 3.75 22.5 3.75V5.25ZM1.5 5.25H22.5V3.75H1.5V5.25Z"
fill=
"#64748b"
></path>
<path
d=
"M9.75 1.5V0.75V1.5ZM8.25 3H7.5H8.25ZM7.5 4.5C7.5 4.91421 7.83579 5.25 8.25 5.25C8.66421 5.25 9 4.91421 9 4.5H7.5ZM15 4.5C15 4.91421 15.3358 5.25 15.75 5.25C16.1642 5.25 16.5 4.91421 16.5 4.5H15ZM15.75 3H16.5H15.75ZM14.25 0.75H9.75V2.25H14.25V0.75ZM9.75 0.75C9.15326 0.75 8.58097 0.987053 8.15901 1.40901L9.21967 2.46967C9.36032 2.32902 9.55109 2.25 9.75 2.25V0.75ZM8.15901 1.40901C7.73705 1.83097 7.5 2.40326 7.5 3H9C9 2.80109 9.07902 2.61032 9.21967 2.46967L8.15901 1.40901ZM7.5 3V4.5H9V3H7.5ZM16.5 4.5V3H15V4.5H16.5ZM16.5 3C16.5 2.40326 16.2629 1.83097 15.841 1.40901L14.7803 2.46967C14.921 2.61032 15 2.80109 15 3H16.5ZM15.841 1.40901C15.419 0.987053 14.8467 0.75 14.25 0.75V2.25C14.4489 2.25 14.6397 2.32902 14.7803 2.46967L15.841 1.40901Z"
fill=
"#64748b"
></path>
<path
d=
"M9 17.25C9 17.6642 9.33579 18 9.75 18C10.1642 18 10.5 17.6642 10.5 17.25H9ZM10.5 9.75C10.5 9.33579 10.1642 9 9.75 9C9.33579 9 9 9.33579 9 9.75H10.5ZM10.5 17.25V9.75H9V17.25H10.5Z"
fill=
"#64748b"
></path>
<path
d=
"M13.5 17.25C13.5 17.6642 13.8358 18 14.25 18C14.6642 18 15 17.6642 15 17.25H13.5ZM15 9.75C15 9.33579 14.6642 9 14.25 9C13.8358 9 13.5 9.33579 13.5 9.75H15ZM15 17.25V9.75H13.5V17.25H15Z"
fill=
"#64748b"
></path>
<path
d=
"M18.865 21.124L18.1176 21.0617L18.1176 21.062L18.865 21.124ZM17.37 22.5L17.3701 21.75H17.37V22.5ZM6.631 22.5V21.75H6.63093L6.631 22.5ZM5.136 21.124L5.88343 21.062L5.88341 21.0617L5.136 21.124ZM4.49741 4.43769C4.46299 4.0249 4.10047 3.71818 3.68769 3.75259C3.2749 3.78701 2.96818 4.14953 3.00259 4.56231L4.49741 4.43769ZM20.9974 4.56227C21.0318 4.14949 20.7251 3.78698 20.3123 3.75259C19.8995 3.7182 19.537 4.02495 19.5026 4.43773L20.9974 4.56227ZM18.1176 21.062C18.102 21.2495 18.0165 21.4244 17.878 21.5518L18.8939 22.6555C19.3093 22.2732 19.5658 21.7486 19.6124 21.186L18.1176 21.062ZM17.878 21.5518C17.7396 21.6793 17.5583 21.75 17.3701 21.75L17.3699 23.25C17.9345 23.25 18.4785 23.0379 18.8939 22.6555L17.878 21.5518ZM17.37 21.75H6.631V23.25H17.37V21.75ZM6.63093 21.75C6.44274 21.75 6.26142 21.6793 6.12295 21.5518L5.10713 22.6555C5.52253 23.0379 6.06649 23.25 6.63107 23.25L6.63093 21.75ZM6.12295 21.5518C5.98449 21.4244 5.89899 21.2495 5.88343 21.062L4.38857 21.186C4.43524 21.7486 4.69172 22.2732 5.10713 22.6555L6.12295 21.5518ZM5.88341 21.0617L4.49741 4.43769L3.00259 4.56231L4.38859 21.1863L5.88341 21.0617ZM19.5026 4.43773L18.1176 21.0617L19.6124 21.1863L20.9974 4.56227L19.5026 4.43773Z"
fill=
"#64748b"
></path>
</g>
</svg>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
\ No newline at end of file
src/app/components/account-settings/user-settings/user-settings.component.scss
0 → 100644
View file @
f691b4f5
/* สไตล์ของแถบเมนู */
.nav-tabs
{
display
:
flex
;
width
:
100%
;
cursor
:
pointer
;
margin-bottom
:
10px
;
}
.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
;
}
\ No newline at end of file
src/app/components/account-settings/user-settings/user-settings.component.ts
0 → 100644
View file @
f691b4f5
import
{
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-user-settings'
,
templateUrl
:
'./user-settings.component.html'
,
styleUrls
:
[
'./user-settings.component.scss'
]
})
export
class
UserSettingsComponent
{
@
Input
()
pathTitle
=
[
'การจัดการข้อมูลองค์กร'
,
'ตั้งค่าผู้ใช้งาน'
,
'สร้างรหัสผู้ใช้งาน'
]
@
Output
()
sendPathTitle
:
EventEmitter
<
string
[]
>
=
new
EventEmitter
<
string
[]
>
();
activeTab
:
string
=
'tab1'
;
// กำหนด tab เริ่มต้น
// ฟังก์ชันในการเปลี่ยนแท็บ
changeTab
(
tab
:
{
id
:
string
,
text
:
string
})
{
this
.
sendPathTitle
.
emit
([
'การจัดการข้อมูลองค์กร'
,
'ตั้งค่าผู้ใช้งาน'
,
tab
.
text
])
this
.
activeTab
=
tab
.
id
;
}
}
src/app/components/dashboard/dashboard-routing.module.ts
View file @
f691b4f5
...
...
@@ -14,6 +14,7 @@ import { StocksComponent } from './stocks/stocks.component';
import
{
CourseComponent
}
from
'./course/course.component'
;
import
{
CompanyRegistrationComponent
}
from
'../company-registration/company-registration.component'
;
import
{
JobDescriptionComponent
}
from
'../job-description/job-description.component'
;
import
{
AccountSettingsComponent
}
from
'../account-settings/account-settings.component'
;
const
routes
:
Routes
=
[
{
path
:
""
,
...
...
@@ -34,6 +35,7 @@ const routes: Routes = [
// myComponent
{
path
:
"company-registration"
,
component
:
CompanyRegistrationComponent
},
{
path
:
"job-description"
,
component
:
JobDescriptionComponent
},
{
path
:
"account-settings"
,
component
:
AccountSettingsComponent
},
]
}
];
...
...
src/app/components/dashboard/dashboard.module.ts
View file @
f691b4f5
...
...
@@ -33,6 +33,8 @@ import { JobDescriptionComponent } from '../job-description/job-description.comp
import
{
PositionUnitComponent
}
from
'../job-description/position/position-unit.component'
;
import
{
EmployeeGroupUnit
}
from
'../job-description/employee-group-unit/employee-group-unit.component'
;
import
{
EmployeeCategories
}
from
'../job-description/employee-categories/employee-categories.component'
;
import
{
AccountSettingsComponent
}
from
'../account-settings/account-settings.component'
;
import
{
UserSettingsComponent
}
from
'../account-settings/user-settings/user-settings.component'
;
@
NgModule
({
declarations
:
[
SalesComponent
,
...
...
@@ -62,6 +64,8 @@ import { EmployeeCategories } from '../job-description/employee-categories/emplo
PositionUnitComponent
,
EmployeeGroupUnit
,
EmployeeCategories
,
AccountSettingsComponent
,
UserSettingsComponent
,
],
imports
:
[
CommonModule
,
...
...
src/app/shared/services/navservice.ts
View file @
f691b4f5
...
...
@@ -101,6 +101,13 @@ export class NavService implements OnDestroy {
active
:
false
,
path
:
'/job-description'
},
{
title
:
'ตั้งค่าชื่อผู้ใช้'
,
type
:
'link'
,
selected
:
false
,
active
:
false
,
path
:
'/account-settings'
},
...
...
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