Commit c4db3a6a by Natthaphat Pankiang

การจัดการข้อมูลองค์กร > ตั้งค่าผู้ใช้งาน > กำหนดรหัสผ่าน

parent 0ab005e7
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<ul class="nav-tabs"> <ul class="nav-tabs">
<li class="nav-item" *ngFor="let item of [{id:'tab1',text:'สร้างชื่อผู้ใช้งาน'}, <li class="nav-item" *ngFor="let item of [{id:'tab1',text:'สร้างชื่อผู้ใช้งาน'},
{id:'tab2',text:'กำหนดรหัสผ่าน'}, {id:'tab2',text:'กำหนดรหัสผ่าน'},
{id:'tab3',text:'จัดการผู้ใช้งาน (PL)'}]" (click)="changeTab(item)"> {id:'tab3',text:'จัดการผู้ใช้งาน'}]" (click)="changeTab(item)">
<a [class.active]="activeTab === item.id" class="nav-link">{{item.text}}</a> <a [class.active]="activeTab === item.id" class="nav-link">{{item.text}}</a>
</li> </li>
</ul> </ul>
...@@ -20,6 +20,12 @@ ...@@ -20,6 +20,12 @@
(sendPathTitle)="pathTitle=$event"></app-employee-group-unit> (sendPathTitle)="pathTitle=$event"></app-employee-group-unit>
</div> </div>
</div> </div>
<div *ngIf="activeTab === 'tab2'" class="tab-pane">
<div class="mt-5">
<app-set-a-password [pathTitle]="pathTitle"
(sendPathTitle)="pathTitle=$event"></app-set-a-password>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
<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="f && l">
<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[
['CC01','620010','จรูญ', 'เทพทมาศ','ใช้งาน'],
['CC02','592530','มานะ', 'มิณนา','ใช้งาน'],
['CC03','5812142','ชาญชัย', 'โพธิ์สุข','ใช้งาน'],
['FC01','6125365','อดิศร', 'สมสัย','ใช้งาน'],
['FC02','5211475','ธนศักดิ์', 'ตาศรี','ใช้งาน'],
['KC01','525258','สุทธิชา', 'สิบประเสริฐ','ใช้งาน'],
['KC02','647589','ศรสุข', 'ยอดสิงห์','ใช้งาน']];let i = index">
<td style="font-size: 12px; " class="body-table-left">
<input type="checkbox" style="margin-right: 20px; transform:scale(0.7)">
{{item[0]}}
</td>
<td style="text-align: center; font-size: 12px;">{{item[1]}}</td>
<td style="text-align: center; font-size: 12px;">{{item[2]}}</td>
<td style="text-align: center; font-size: 12px;">{{item[3]}}</td>
<td style="text-align: center; font-size: 12px;">{{item[4]}}</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>
<div class="body-content">
<ul class="nav-tabs">
<div class="px-1 py-1 bg-white rounded-2 shadow justify-content-center align-items-center">
<div class="box-body">
<nav class="pagination-style-3 overflow-auto">
<ul class="ti-pagination">
<li>
<a aria-label="anchor" class="page-link" href="javascript:void(0);">
<i class="ri-arrow-left-s-line align-middle rtl:rotate-180"></i>
</a>
</li>
<li><a class="page-link active" href="javascript:void(0);" aria-current="page">1</a></li>
<li><a class="page-link" href="javascript:void(0);">2</a></li>
<li><a class="page-link" href="javascript:void(0);">3</a></li>
<li><a class="page-link" href="javascript:void(0);">4</a></li>
<li><a class="page-link" href="javascript:void(0);">5</a></li>
<li><a class="page-link" href="javascript:void(0);">...</a></li>
<li><a class="page-link" href="javascript:void(0);">31</a></li>
<li>
<a aria-label="anchor" class="page-link" href="javascript:void(0);">
<i class="ri-arrow-right-s-line align-middle rtl:rotate-180"></i>
</a>
</li>
</ul>
</nav>
</div>
</div>
</ul>
<ul class="nav-tabs">
<p>Show 1 to 10 of 50 items</p>
</ul>
</div>
/* สไตล์ของแถบเมนู */
.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
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-set-a-password',
templateUrl: './set-a-password.component.html',
styleUrls: ['./set-a-password.component.scss']
})
export class SetAPasswordComponent {
@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;
}
}
...@@ -36,6 +36,7 @@ import { EmployeeCategories } from '../job-description/employee-categories/emplo ...@@ -36,6 +36,7 @@ import { EmployeeCategories } from '../job-description/employee-categories/emplo
import { AccountSettingsComponent } from '../account-settings/account-settings.component'; import { AccountSettingsComponent } from '../account-settings/account-settings.component';
import { UserSettingsComponent } from '../account-settings/user-settings/user-settings.component'; import { UserSettingsComponent } from '../account-settings/user-settings/user-settings.component';
import { EmployeeLevel } from '../job-description/employee-level/employee-level.component'; import { EmployeeLevel } from '../job-description/employee-level/employee-level.component';
import { SetAPasswordComponent } from '../account-settings/set-a-password/set-a-password.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -69,6 +70,7 @@ import { EmployeeLevel } from '../job-description/employee-level/employee-level. ...@@ -69,6 +70,7 @@ import { EmployeeLevel } from '../job-description/employee-level/employee-level.
AccountSettingsComponent, AccountSettingsComponent,
UserSettingsComponent, UserSettingsComponent,
EmployeeLevel, EmployeeLevel,
SetAPasswordComponent
], ],
imports: [ imports: [
CommonModule, CommonModule,
......
...@@ -1604,7 +1604,7 @@ select option:active, ...@@ -1604,7 +1604,7 @@ select option:active,
color: rgb(255 255 255 / var(--tw-text-opacity)); color: rgb(255 255 255 / var(--tw-text-opacity));
} }
.box-body{ .box-body{
padding: 1.5rem; padding: 0rem;
} }
.box-footer{ .box-footer{
border-bottom-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment