Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
BookingMyHrManagement
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
Chanachai
BookingMyHrManagement
Commits
d2625cfd
Commit
d2625cfd
authored
Mar 18, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
projectEmp
parent
6abfc78e
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
39 additions
and
782 deletions
+39
-782
project_member_controller.cpython-312.pyc
...ers/__pycache__/project_member_controller.cpython-312.pyc
+0
-0
project_member_controller.py
API-Fast/src/controllers/project_member_controller.py
+10
-9
project_member_schema.cpython-312.pyc
...schemas/__pycache__/project_member_schema.cpython-312.pyc
+0
-0
project_member_schema.py
API-Fast/src/schemas/project_member_schema.py
+2
-3
admin-manage.component.ts
...src/app/DPU/common/admin-manage/admin-manage.component.ts
+2
-2
common.module.ts
Web-Manage/src/app/DPU/common/common.module.ts
+0
-10
company-manage.component.html
...p/DPU/common/company-manage/company-manage.component.html
+1
-1
department.component.css
...p/DPU/common/employee/department/department.component.css
+0
-3
department.component.html
.../DPU/common/employee/department/department.component.html
+0
-164
department.component.ts
...pp/DPU/common/employee/department/department.component.ts
+0
-195
position.component.css
...c/app/DPU/common/employee/position/position.component.css
+0
-3
position.component.html
.../app/DPU/common/employee/position/position.component.html
+0
-172
position.component.ts
...rc/app/DPU/common/employee/position/position.component.ts
+0
-200
admin-project-equirement.component.ts
...-project-equirement/admin-project-equirement.component.ts
+2
-2
company-management.component.ts
...pp/DPU/company-management/company-management.component.ts
+7
-5
company-management.module.ts
...c/app/DPU/company-management/company-management.module.ts
+1
-1
home-installer.component.ts
...any-management/home-installer/home-installer.component.ts
+5
-4
sidebar.component.html
.../src/app/shared/components/sidebar/sidebar.component.html
+2
-2
sidebar.component.ts
...ge/src/app/shared/components/sidebar/sidebar.component.ts
+1
-1
token.service.ts
Web-Manage/src/app/shared/services/token.service.ts
+6
-5
No files found.
API-Fast/src/controllers/__pycache__/project_member_controller.cpython-312.pyc
View file @
d2625cfd
No preview for this file type
API-Fast/src/controllers/project_member_controller.py
View file @
d2625cfd
# myproject/controllers/project_member_controller.py
from
fastapi
import
HTTPException
from
sqlalchemy.ext.asyncio
import
AsyncSession
from
sqlalchemy
import
select
from
sqlalchemy.orm
import
selectinload
from
sqlalchemy.exc
import
SQLAlchemyError
from
uuid
import
UUID
...
...
@@ -25,15 +24,17 @@ async def create_project_member(db: AsyncSession, pm_in: ProjectMemberCreate):
raise
HTTPException
(
status_code
=
400
,
detail
=
str
(
e
.
orig
))
return
new_pm
# READ ALL
# READ ALL
(โหลดข้อมูลของ Project ด้วย)
async
def
get_all_project_members
(
db
:
AsyncSession
):
result
=
await
db
.
execute
(
select
(
ProjectMember
))
stmt
=
select
(
ProjectMember
)
.
options
(
selectinload
(
ProjectMember
.
project
))
result
=
await
db
.
execute
(
stmt
)
return
result
.
scalars
()
.
all
()
# READ ONE
# READ ONE
(โหลดข้อมูลของ Project ด้วย)
async
def
get_project_member_by_id
(
db
:
AsyncSession
,
pm_id
:
UUID
):
pm_db
=
await
db
.
get
(
ProjectMember
,
pm_id
)
return
pm_db
stmt
=
select
(
ProjectMember
)
.
options
(
selectinload
(
ProjectMember
.
project
))
.
where
(
ProjectMember
.
pmId
==
pm_id
)
result
=
await
db
.
execute
(
stmt
)
return
result
.
scalar_one_or_none
()
# UPDATE
async
def
update_project_member
(
db
:
AsyncSession
,
pm_id
:
UUID
,
pm_in
:
ProjectMemberCreate
):
...
...
@@ -72,8 +73,8 @@ async def delete_project_member(db: AsyncSession, pm_id: UUID):
return
{
"message"
:
"ProjectMember deleted successfully"
}
# READ Projects by MemberId
# READ Projects by MemberId
(โหลดข้อมูล Project ที่สัมพันธ์กับ ProjectMember ด้วย)
async
def
get_projects_by_member_id
(
db
:
AsyncSession
,
member_id
:
UUID
):
stmt
=
select
(
ProjectMember
)
.
where
(
ProjectMember
.
memberId
==
member_id
)
stmt
=
select
(
ProjectMember
)
.
options
(
selectinload
(
ProjectMember
.
project
))
.
where
(
ProjectMember
.
memberId
==
member_id
)
result
=
await
db
.
execute
(
stmt
)
return
result
.
scalars
()
.
all
()
API-Fast/src/schemas/__pycache__/project_member_schema.cpython-312.pyc
View file @
d2625cfd
No preview for this file type
API-Fast/src/schemas/project_member_schema.py
View file @
d2625cfd
...
...
@@ -3,6 +3,7 @@
from
pydantic
import
BaseModel
from
typing
import
Optional
from
uuid
import
UUID
from
.project_schema
import
ProjectResponse
# Import schema ของ Project
class
ProjectMemberBase
(
BaseModel
):
memberId
:
UUID
...
...
@@ -11,12 +12,10 @@ class ProjectMemberBase(BaseModel):
class
ProjectMemberCreate
(
ProjectMemberBase
):
projectId
:
UUID
class
ProjectMemberResponse
(
ProjectMemberBase
):
pmId
:
UUID
projectId
:
UUID
project
:
Optional
[
ProjectResponse
]
=
None
# เพิ่ม field นี้เพื่อแสดงข้อมูลของ Project
class
Config
:
orm_mode
=
True
Web-Manage/src/app/DPU/common/admin-manage/admin-manage.component.ts
View file @
d2625cfd
...
...
@@ -58,12 +58,12 @@ export class AdminManageComponent {
this
.
updatePagedItems
()
}
}
company
Id
=
""
project
Id
=
""
_searchTerm
=
""
;
isEdit
=
false
;
constructor
(
private
http
:
HttpClient
,
private
eqService
:
EquipmentService
,
public
translate
:
TranslateService
,
private
tokenService
:
TokenService
)
{
this
.
uploadConfig
()
this
.
companyId
=
this
.
tokenService
.
getSelectCompany
().
companyId
;
this
.
projectId
=
this
.
tokenService
.
getSelectCompany
().
projectId
!
;
}
@
ViewChild
(
'video'
)
video
:
ElementRef
;
...
...
Web-Manage/src/app/DPU/common/common.module.ts
View file @
d2625cfd
...
...
@@ -31,16 +31,6 @@ export const admin: Routes = [
},
//////////////emp/////////////////
{
path
:
'emp/department'
,
loadComponent
:
()
=>
import
(
'./employee/department/department.component'
).
then
((
m
)
=>
m
.
DepartmentComponent
),
},
{
path
:
'emp/position'
,
loadComponent
:
()
=>
import
(
'./employee/position/position.component'
).
then
((
m
)
=>
m
.
PositionComponent
),
},
{
path
:
'borrow-management'
,
loadComponent
:
()
=>
import
(
'./borrow-management/borrow-management.component'
).
then
((
m
)
=>
m
.
BorrowManagementComponent
),
...
...
Web-Manage/src/app/DPU/common/company-manage/company-manage.component.html
View file @
d2625cfd
...
...
@@ -75,7 +75,7 @@
<i
class=
"fe fe-more-vertical"
></i>
</a>
<ul
class=
"hs-dropdown-menu ti-dropdown-menu hidden"
>
<li><a
class=
"ti-dropdown-item"
routerLink=
"/
admin/manage-companys
/{{item.projectId}}"
><i
<li><a
class=
"ti-dropdown-item"
routerLink=
"/
company/home
/{{item.projectId}}"
><i
class=
"ri-eye-line align-middle me-1 inline-flex"
></i>
View
</a></li>
<li><a
class=
"ti-dropdown-item"
(
click
)="
view
(
item
)"
data-hs-overlay=
"#modal-detail"
><i
class=
"ri-edit-line align-middle me-1 inline-flex"
></i>
Edit
</a></li>
...
...
Web-Manage/src/app/DPU/common/employee/department/department.component.css
deleted
100644 → 0
View file @
6abfc78e
:host
{
display
:
block
;
}
Web-Manage/src/app/DPU/common/employee/department/department.component.html
deleted
100644 → 0
View file @
6abfc78e
<app-page-header
[
title
]="'
Department
'"
[
activeTitle
]="'จัดการบริษัท'"
[
title1
]="'
Department
'"
></app-page-header>
<div
class=
"grid grid-cols-12 gap-6"
>
<div
class=
"xl:col-span-12 col-span-12"
>
<div
class=
"box"
>
<div
class=
"box-header justify-between"
>
<div
class=
"box-title"
>
{{ 'All List' | translate}}
<span
class=
"badge bg-light text-default rounded-full ms-1 text-[0.75rem] align-middle"
>
{{itemsList.length}}
</span>
</div>
<div
class=
"flex flex-wrap gap-2"
>
<a
href=
"javascript:void(0);"
class=
"hs-dropdown-toggle ti-btn ti-btn-primary-full me-2"
(
click
)="
new
()"
data-hs-overlay=
"#modal-detail"
><i
class=
"ri-add-line font-semibold align-middle"
></i>
{{ 'Create' |
translate}}
</a>
<a
href=
"javascript:void(0);"
class=
"hs-dropdown-toggle ti-btn ti-btn-danger-full me-2"
*
ngIf=
"someSelected"
(
click
)="
deleteSelect
()"
><i
class=
"ri-delete-bin-line font-semibold align-middle"
></i>
{{ 'Delete' |
translate}}
</a>
<div>
<input
class=
"form-control form-control"
type=
"text"
placeholder=
"{{ 'Search' | translate}}"
aria-label=
".form-control-sm example"
[(
ngModel
)]='
searchTerm
'
>
</div>
</div>
</div>
<div
class=
"box-body"
>
<div
class=
"table-responsive"
>
<table
class=
"table whitespace-nowrap min-w-full ti-custom-table-hover"
>
<thead>
<tr
class=
"border-b border-defaultborder"
>
<th
scope=
"col"
class=
"!text-start"
>
<input
class=
"form-check-input check-all"
type=
"checkbox"
id=
"all-products"
(
change
)="
toggleAll
($
event
)"
[
checked
]="
allSelected
"
aria-label=
"..."
>
</th>
<th
scope=
"col"
class=
"text-start"
>
{{ 'ID' | translate}}
</th>
<th
scope=
"col"
class=
"text-start"
>
{{ 'ชื่อแผนก' | translate}}
</th>
<th
scope=
"col"
class=
"text-start"
></th>
</tr>
</thead>
<tbody>
@for(item of filterList;track filterList){
<tr
class=
"border border-defaultborder dark:border-defaultborder/10"
>
<td
class=
"product-checkbox"
><input
class=
"form-check-input"
type=
"checkbox"
[
checked
]="
selectedItems
.
get
(
item
.
departmentId
)"
(
change
)="
onCheckboxChange
(
item
.
departmentId
)"
aria-label=
"..."
value=
""
>
</td>
<td><span
class=
"font-semibold text-primary"
>
{{item.departmentId}}
</span></td>
<td>
{{item.thName}}
</td>
<td>
<div
class=
"flex flex-row items-center !gap-2 "
>
<a
aria-label=
"anchor"
(
click
)="
view
(
item
)"
data-hs-overlay=
"#modal-detail"
class=
"ti-btn ti-btn-wave !gap-0 !m-0 bg-info/10 text-info hover:bg-info hover:text-white hover:border-info"
><i
class=
"ri-pencil-line"
></i></a>
<a
aria-label=
"anchor"
href=
"javascript:void(0);"
(
click
)="
delete
(
item
)"
class=
"ti-btn ti-btn-wave product-btn !gap-0 !m-0 bg-danger/10 text-danger hover:bg-danger hover:text-white hover:border-danger"
><i
class=
"ri-delete-bin-line"
></i></a>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div
class=
"box-footer"
>
<div
class=
"flex items-center flex-wrap overflow-auto"
*
ngIf=
"filterList.length > 0"
>
<div
class=
"mb-2 sm:mb-0"
>
<div>
{{'Showing' | translate}} {{filterList.length}} {{'entries'
| translate}}
<i
class=
"bi bi-arrow-right ms-2 font-semibold"
></i>
</div>
</div>
<div
class=
"ms-auto"
>
<nav
aria-label=
"Page navigation"
>
<ul
class=
"ti-pagination mb-0"
>
<li
*
ngIf=
"pageIndex>0"
class=
"page-item {{pageIndex==0 ? 'disabled' : ''}}"
><a
class=
"page-link px-3 py-[0.375rem]"
(
click
)="
pageIndex =
pageIndex-1;updatePagedItems()"
>
{{'Previous' | translate}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"pageIndex-1>0"
(
click
)="
pageIndex =
pageIndex-2;updatePagedItems()"
>
{{pageIndex-1}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"pageIndex>0 && ((pageIndex-1)*10 < (searchTerm == '' ? itemsList.length : filterList.length))"
(
click
)="
pageIndex =
pageIndex-1;updatePagedItems()"
>
{{pageIndex}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link active px-3 py-[0.375rem]"
href=
"javascript:void(0);"
>
{{pageIndex +1}}
</a>
</li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"(pageIndex+1)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
(
click
)="
pageIndex =
pageIndex+1;updatePagedItems()"
>
{{pageIndex +2}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"(pageIndex+2)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
(
click
)="
pageIndex =
pageIndex+2;updatePagedItems()"
>
{{pageIndex +3}}
</a></li>
<li
*
ngIf=
"(pageIndex+1)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
(
click
)="
pageIndex =
pageIndex+1;updatePagedItems()"
>
{{'Next' |
translate}}
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Start:: Create Contact -->
<div
id=
"modal-detail"
class=
"hs-overlay hidden ti-modal [--overlay-backdrop:static]"
>
<div
class=
"hs-overlay-open:mt-7 ti-modal-box mt-0 ease-out"
>
<div
class=
"ti-modal-content"
>
<div
class=
"ti-modal-header"
>
<h6
class=
"modal-title text-[1rem] font-semibold text-defaulttextcolor"
id=
"mail-ComposeLabel"
>
{{ 'Create' |
translate }} {{ 'Department' | translate }}
</h6>
<button
type=
"button"
class=
"hs-dropdown-toggle !text-[1rem] !font-semibold !text-defaulttextcolor"
data-hs-overlay=
"#modal-detail"
#
closeModal
>
<span
class=
"sr-only"
>
{{'Close' | translate}}
</span>
<i
class=
"ri-close-line"
></i>
</button>
</div>
<div
class=
"ti-modal-body px-4"
>
<div
class=
"grid grid-cols-12 gap-4"
>
<div
class=
"xl:col-span-6 col-span-12"
>
<label
for=
"contact-lead-score"
class=
"form-label"
>
{{'Name (TH)' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"contact-lead-score"
placeholder=
""
[(
ngModel
)]="
selectModel
.
thName
"
>
<div
class=
"text-danger"
*
ngIf=
"!selectModel.thName"
>
{{'Please fill in information' | translate}}
</div>
</div>
<div
class=
"xl:col-span-6 col-span-12"
>
<label
for=
"contact-mail"
class=
"form-label"
>
{{'Name (EN)' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"contact-mail"
placeholder=
""
[(
ngModel
)]="
selectModel
.
engName
"
>
<div
class=
"text-danger"
*
ngIf=
"!selectModel.engName"
>
{{'Please fill in information' | translate}}
</div>
</div>
</div>
</div>
<div
class=
"ti-modal-footer"
>
<button
type=
"button"
class=
"hs-dropdown-toggle ti-btn ti-btn-light align-middle"
data-hs-overlay=
"#modal-detail"
>
{{'Cancel' | translate}}
</button>
<button
type=
"button"
[
disabled
]="!
selectModel
.
thName
||
!
selectModel
.
engName
"
class=
"ti-btn bg-primary text-white !font-medium {{!selectModel.thName || !selectModel.engName ? 'ti-btn-disabled' : ''}}"
(
click
)="
save
()"
>
{{'Save' |
translate}}
</button>
</div>
</div>
</div>
</div>
<!-- End:: Create Contact -->
Web-Manage/src/app/DPU/common/employee/department/department.component.ts
deleted
100644 → 0
View file @
6abfc78e
import
{
CommonModule
}
from
"@angular/common"
;
import
{
ChangeDetectionStrategy
,
Component
,
ElementRef
,
ViewChild
}
from
'@angular/core'
;
import
{
NgSelectModule
}
from
"@ng-select/ng-select"
;
import
{
TranslateModule
,
TranslateService
}
from
"@ngx-translate/core"
;
import
{
SharedModule
}
from
"../../../../shared/shared.module"
;
import
{
DepartmentService
}
from
"../../../services/department.service"
;
import
{
DepartmentModel
}
from
"../../../models/department.model"
;
import
{
FormsModule
}
from
"@angular/forms"
;
import
swal
from
'sweetalert'
;
import
{
MatPaginator
,
PageEvent
}
from
"@angular/material/paginator"
;
import
{
ActivatedRoute
}
from
"@angular/router"
;
import
{
TokenService
}
from
"../../../../shared/services/token.service"
;
@
Component
({
selector
:
'app-department'
,
standalone
:
true
,
imports
:
[
CommonModule
,
SharedModule
,
TranslateModule
,
NgSelectModule
,
FormsModule
,
MatPaginator
],
templateUrl
:
'./department.component.html'
,
styleUrl
:
'./department.component.css'
})
export
class
DepartmentComponent
{
@
ViewChild
(
'closeModal'
)
public
childModal
?:
ElementRef
;
@
ViewChild
(
'modalDetail'
)
public
modalDetail
?:
ElementRef
;
allSelected
=
false
;
someSelected
=
false
;
companyId
=
""
itemsList
:
DepartmentModel
[]
=
[]
filterList
:
DepartmentModel
[]
=
[];
selectModel
:
DepartmentModel
=
new
DepartmentModel
()
selectedItems
=
new
Map
<
string
,
boolean
>
();
pageIndex
=
0
;
isEdit
=
false
;
get
searchTerm
():
string
{
return
this
.
_searchTerm
;
}
set
searchTerm
(
val
:
string
)
{
this
.
pageIndex
=
0
;
this
.
allSelected
=
false
this
.
_searchTerm
=
val
;
if
(
val
!=
''
)
{
this
.
filterList
=
this
.
filter
(
val
);
}
else
{
this
.
updatePagedItems
()
}
}
_searchTerm
=
""
;
constructor
(
private
departmentService
:
DepartmentService
,
private
tokenService
:
TokenService
,
public
translate
:
TranslateService
)
{
this
.
companyId
=
this
.
tokenService
.
getSelectCompany
().
companyId
;;
this
.
getDepartment
()
}
getDepartment
()
{
this
.
departmentService
.
getLists
(
this
.
companyId
).
subscribe
(
result
=>
{
this
.
itemsList
=
result
this
.
updatePagedItems
()
})
}
filter
(
v
:
string
)
{
this
.
pageIndex
=
0
;
return
this
.
itemsList
?.
filter
(
(
x
)
=>
x
.
departmentId
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
||
x
.
thName
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
||
x
.
engName
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
);
}
delete
(
item
:
DepartmentModel
)
{
swal
({
title
:
"Are you sure?"
,
text
:
"You won't be able to revert this!"
,
icon
:
"warning"
,
timer
:
1000
,
dangerMode
:
true
,
buttons
:
[
"Cancel"
,
"Yes,Delete it!"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
departmentService
.
delete
(
item
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getDepartment
()
})
}
});
}
new
()
{
this
.
isEdit
=
false
this
.
selectModel
=
new
DepartmentModel
()
}
view
(
item
:
DepartmentModel
)
{
this
.
isEdit
=
true
;
this
.
selectModel
=
new
DepartmentModel
(
item
)
}
save
()
{
swal
({
title
:
"Are you sure?"
,
text
:
"คุณต้องการบันทึกหรือไม่"
,
icon
:
"warning"
,
dangerMode
:
false
,
buttons
:
[
"Cancel"
,
"Confirm"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
selectModel
.
companyId
=
this
.
companyId
if
(
!
this
.
isEdit
)
{
this
.
departmentService
.
save
(
this
.
selectModel
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getDepartment
()
this
.
childModal
?.
nativeElement
.
click
()
})
}
else
{
this
.
departmentService
.
update
(
this
.
selectModel
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getDepartment
()
this
.
childModal
?.
nativeElement
.
click
()
})
}
}
});
}
updatePagedItems
()
{
const
startIndex
=
this
.
pageIndex
*
10
;
const
endIndex
=
startIndex
+
10
;
this
.
filterList
=
this
.
itemsList
.
slice
(
startIndex
,
endIndex
);
}
toggleAll
(
event
:
any
)
{
this
.
allSelected
=
event
.
target
.
checked
;
this
.
selectedItems
.
clear
();
this
.
itemsList
.
forEach
(
item
=>
{
this
.
selectedItems
.
set
(
item
.
departmentId
,
this
.
allSelected
);
});
this
.
someSelected
=
this
.
itemsList
.
some
(
item
=>
this
.
selectedItems
.
get
(
item
.
departmentId
));
}
onCheckboxChange
(
departmentId
:
string
)
{
const
isSelected
=
this
.
selectedItems
.
get
(
departmentId
)
||
false
;
this
.
selectedItems
.
set
(
departmentId
,
!
isSelected
);
this
.
allSelected
=
this
.
itemsList
.
every
(
item
=>
this
.
selectedItems
.
get
(
item
.
departmentId
));
this
.
someSelected
=
this
.
itemsList
.
some
(
item
=>
this
.
selectedItems
.
get
(
item
.
departmentId
));
}
deleteSelect
()
{
let
employeeInfo
=
''
;
this
.
selectedItems
.
forEach
((
isSelected
,
departmentId
)
=>
{
if
(
isSelected
)
{
const
item
=
this
.
itemsList
.
find
(
item
=>
item
.
departmentId
===
departmentId
);
if
(
item
)
{
employeeInfo
+=
`
${
this
.
translate
.
instant
(
'ชื่อตำแหน่ง'
)}
:
${
item
.
getName
()}
\n`
;
}
}
});
swal
({
title
:
"Are you sure?"
,
text
:
employeeInfo
,
icon
:
"warning"
,
dangerMode
:
true
,
buttons
:
[
"Cancel"
,
"Yes, Delete it!"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
selectedItems
.
forEach
((
isSelected
,
departmentId
)
=>
{
if
(
isSelected
)
{
const
item
=
this
.
itemsList
.
find
(
item
=>
item
.
departmentId
===
departmentId
);
if
(
item
)
{
this
.
departmentService
.
delete
(
item
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getDepartment
();
});
}
}
});
}
});
}
}
Web-Manage/src/app/DPU/common/employee/position/position.component.css
deleted
100644 → 0
View file @
6abfc78e
:host
{
display
:
block
;
}
Web-Manage/src/app/DPU/common/employee/position/position.component.html
deleted
100644 → 0
View file @
6abfc78e
<app-page-header
[
title
]="'
Position
'"
[
activeTitle
]="'จัดการบริษัท'"
[
title1
]="'
Position
'"
></app-page-header>
<div
class=
"grid grid-cols-12 gap-6"
>
<div
class=
"xl:col-span-12 col-span-12"
>
<div
class=
"box"
>
<div
class=
"box-header justify-between"
>
<div
class=
"box-title"
>
{{ 'All List' | translate}}
<span
class=
"badge bg-light text-default rounded-full ms-1 text-[0.75rem] align-middle"
>
{{itemsList.length}}
</span>
</div>
<div
class=
"flex flex-wrap gap-2"
>
<a
href=
"javascript:void(0);"
class=
"hs-dropdown-toggle ti-btn ti-btn-primary-full me-2"
(
click
)="
new
()"
data-hs-overlay=
"#modal-detail"
><i
class=
"ri-add-line font-semibold align-middle"
></i>
{{ 'Create' |
translate}}
</a>
<a
href=
"javascript:void(0);"
class=
"hs-dropdown-toggle ti-btn ti-btn-danger-full me-2"
*
ngIf=
"someSelected"
(
click
)="
deleteSelect
()"
><i
class=
"ri-delete-bin-line font-semibold align-middle"
></i>
{{ 'Delete' |
translate}}
</a>
<div>
<input
class=
"form-control form-control"
type=
"text"
placeholder=
"{{ 'Search' | translate}}"
aria-label=
".form-control-sm example"
[(
ngModel
)]='
searchTerm
'
>
</div>
</div>
</div>
<div
class=
"box-body"
>
<div
class=
"table-responsive"
>
<table
class=
"table whitespace-nowrap min-w-full ti-custom-table-hover"
>
<thead>
<tr
class=
"border-b border-defaultborder"
>
<th
scope=
"col"
class=
"!text-start"
>
<input
class=
"form-check-input check-all"
type=
"checkbox"
id=
"all-products"
(
change
)="
toggleAll
($
event
)"
[
checked
]="
allSelected
"
aria-label=
"..."
>
</th>
<th
scope=
"col"
class=
"text-start"
>
{{ 'ID' | translate}}
</th>
<th
scope=
"col"
class=
"text-start"
>
{{ 'ชื่อตำแหน่ง' | translate}}
</th>
<!-- <th scope="col" class="text-start">{{ 'Name (EN)' | translate}}</th> -->
<th
scope=
"col"
class=
"text-start"
></th>
</tr>
</thead>
<tbody>
@for(item of filterList;track filterList){
<tr
class=
"border border-defaultborder dark:border-defaultborder/10"
>
<td
class=
"product-checkbox"
><input
class=
"form-check-input"
type=
"checkbox"
[
checked
]="
selectedItems
.
get
(
item
.
positionId
)"
(
change
)="
onCheckboxChange
(
item
.
positionId
)"
aria-label=
"..."
value=
""
>
</td>
<td><span
class=
"font-semibold text-primary"
>
{{item.positionId}}
</span></td>
<td>
{{item.thName}}
</td>
<td>
<div
class=
"flex flex-row items-center !gap-2 "
>
<a
aria-label=
"anchor"
(
click
)="
view
(
item
)"
data-hs-overlay=
"#modal-detail"
class=
"ti-btn ti-btn-wave !gap-0 !m-0 bg-info/10 text-info hover:bg-info hover:text-white hover:border-info"
><i
class=
"ri-pencil-line"
></i></a>
<a
aria-label=
"anchor"
href=
"javascript:void(0);"
(
click
)="
delete
(
item
)"
class=
"ti-btn ti-btn-wave product-btn !gap-0 !m-0 bg-danger/10 text-danger hover:bg-danger hover:text-white hover:border-danger"
><i
class=
"ri-delete-bin-line"
></i></a>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div
class=
"box-footer"
>
<div
class=
"flex items-center flex-wrap overflow-auto"
*
ngIf=
"filterList.length > 0"
>
<div
class=
"mb-2 sm:mb-0"
>
<div>
{{'Showing' | translate}} {{filterList.length}} {{'entries'
| translate}}
<i
class=
"bi bi-arrow-right ms-2 font-semibold"
></i>
</div>
</div>
<div
class=
"ms-auto"
>
<nav
aria-label=
"Page navigation"
>
<ul
class=
"ti-pagination mb-0"
>
<li
*
ngIf=
"pageIndex>0"
class=
"page-item {{pageIndex==0 ? 'disabled' : ''}}"
><a
class=
"page-link px-3 py-[0.375rem]"
(
click
)="
pageIndex =
pageIndex-1;updatePagedItems()"
>
{{'Previous' | translate}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"pageIndex-1>0"
(
click
)="
pageIndex =
pageIndex-2;updatePagedItems()"
>
{{pageIndex-1}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"pageIndex>0 && ((pageIndex-1)*10 < (searchTerm == '' ? itemsList.length : filterList.length))"
(
click
)="
pageIndex =
pageIndex-1;updatePagedItems()"
>
{{pageIndex}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link active px-3 py-[0.375rem]"
href=
"javascript:void(0);"
>
{{pageIndex +1}}
</a>
</li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"(pageIndex+1)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
(
click
)="
pageIndex =
pageIndex+1;updatePagedItems()"
>
{{pageIndex +2}}
</a></li>
<li
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
href=
"javascript:void(0);"
*
ngIf=
"(pageIndex+2)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
(
click
)="
pageIndex =
pageIndex+2;updatePagedItems()"
>
{{pageIndex +3}}
</a></li>
<li
*
ngIf=
"(pageIndex+1)*10 < (searchTerm == '' ? itemsList.length : filterList.length)"
class=
"page-item"
><a
class=
"page-link px-3 py-[0.375rem]"
(
click
)="
pageIndex =
pageIndex+1;updatePagedItems()"
>
{{'Next' |
translate}}
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Start:: Create Contact -->
<div
id=
"modal-detail"
class=
"hs-overlay hidden ti-modal [--overlay-backdrop:static]"
>
<div
class=
"hs-overlay-open:mt-7 ti-modal-box mt-0 ease-out"
>
<div
class=
"ti-modal-content"
>
<div
class=
"ti-modal-header"
>
<h6
class=
"modal-title text-[1rem] font-semibold text-defaulttextcolor"
id=
"mail-ComposeLabel"
>
{{ 'Create' |
translate }} {{ 'Position' | translate }}
</h6>
<button
type=
"button"
class=
"hs-dropdown-toggle !text-[1rem] !font-semibold !text-defaulttextcolor"
data-hs-overlay=
"#modal-detail"
#
closeModal
>
<span
class=
"sr-only"
>
{{'Close' | translate}}
</span>
<i
class=
"ri-close-line"
></i>
</button>
</div>
<div
class=
"ti-modal-body px-4"
>
<div
class=
"grid grid-cols-12 gap-4"
>
<!-- <div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'ID' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder="" [(ngModel)]="selectModel.positionId">
<div class="text-danger" *ngIf="!selectModel.positionId">
{{'Please fill in information' | translate}}
</div>
</div> -->
<div
class=
"xl:col-span-6 col-span-12"
>
<label
for=
"contact-lead-score"
class=
"form-label"
>
{{'Name (TH)' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"contact-lead-score"
placeholder=
""
[(
ngModel
)]="
selectModel
.
thName
"
>
<div
class=
"text-danger"
*
ngIf=
"!selectModel.thName"
>
{{'Please fill in information' | translate}}
</div>
</div>
<div
class=
"xl:col-span-6 col-span-12"
>
<label
for=
"contact-mail"
class=
"form-label"
>
{{'Name (EN)' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"contact-mail"
placeholder=
""
[(
ngModel
)]="
selectModel
.
engName
"
>
<div
class=
"text-danger"
*
ngIf=
"!selectModel.engName"
>
{{'Please fill in information' | translate}}
</div>
</div>
</div>
</div>
<div
class=
"ti-modal-footer"
>
<button
type=
"button"
class=
"hs-dropdown-toggle ti-btn ti-btn-light align-middle"
data-hs-overlay=
"#modal-detail"
>
{{'Cancel' | translate}}
</button>
<button
type=
"button"
[
disabled
]="!
selectModel
.
thName
||
!
selectModel
.
engName
"
class=
"ti-btn bg-primary text-white !font-medium {{!selectModel.thName || !selectModel.engName ? 'ti-btn-disabled' : ''}}"
(
click
)="
save
()"
>
{{'Save' |
translate}}
</button>
</div>
</div>
</div>
</div>
<!-- End:: Create Contact -->
Web-Manage/src/app/DPU/common/employee/position/position.component.ts
deleted
100644 → 0
View file @
6abfc78e
import
{
CommonModule
}
from
"@angular/common"
;
import
{
ChangeDetectionStrategy
,
Component
,
ElementRef
,
ViewChild
}
from
'@angular/core'
;
import
{
NgSelectModule
}
from
"@ng-select/ng-select"
;
import
{
TranslateModule
,
TranslateService
}
from
"@ngx-translate/core"
;
import
{
SharedModule
}
from
"../../../../shared/shared.module"
;
import
{
PositionService
}
from
"../../../services/position.service"
;
import
{
PositionModel
}
from
"../../../models/position.model"
;
import
{
FormsModule
}
from
"@angular/forms"
;
import
swal
from
'sweetalert'
;
import
{
MatPaginator
,
PageEvent
}
from
"@angular/material/paginator"
;
import
{
ActivatedRoute
}
from
"@angular/router"
;
import
{
TokenService
}
from
"../../../../shared/services/token.service"
;
@
Component
({
selector
:
'app-position'
,
standalone
:
true
,
imports
:
[
CommonModule
,
SharedModule
,
TranslateModule
,
NgSelectModule
,
FormsModule
,
MatPaginator
],
templateUrl
:
'./position.component.html'
,
styleUrl
:
'./position.component.css'
})
export
class
PositionComponent
{
@
ViewChild
(
'closeModal'
)
public
childModal
?:
ElementRef
;
@
ViewChild
(
'modalDetail'
)
public
modalDetail
?:
ElementRef
;
allSelected
=
false
;
someSelected
=
false
;
companyId
=
""
itemsList
:
PositionModel
[]
=
[]
filterList
:
PositionModel
[]
=
[];
selectModel
:
PositionModel
=
new
PositionModel
()
selectedItems
=
new
Map
<
string
,
boolean
>
();
pageIndex
=
0
;
isEdit
=
false
;
get
searchTerm
():
string
{
return
this
.
_searchTerm
;
}
set
searchTerm
(
val
:
string
)
{
this
.
pageIndex
=
0
;
this
.
allSelected
=
false
this
.
_searchTerm
=
val
;
if
(
val
!=
''
)
{
this
.
filterList
=
this
.
filter
(
val
);
}
else
{
this
.
updatePagedItems
()
}
}
_searchTerm
=
""
;
constructor
(
private
positionService
:
PositionService
,
private
tokenService
:
TokenService
,
public
translate
:
TranslateService
)
{
this
.
companyId
=
this
.
tokenService
.
getSelectCompany
().
companyId
;;
this
.
getPosition
()
}
ngOnInit
():
void
{
}
getPosition
()
{
this
.
positionService
.
getLists
(
this
.
companyId
).
subscribe
(
result
=>
{
this
.
itemsList
=
result
this
.
updatePagedItems
()
})
}
filter
(
v
:
string
)
{
this
.
pageIndex
=
0
;
return
this
.
itemsList
?.
filter
(
(
x
)
=>
x
.
positionId
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
||
x
.
thName
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
||
x
.
engName
?.
toLowerCase
().
indexOf
(
v
.
toLowerCase
())
!==
-
1
);
}
delete
(
item
:
PositionModel
)
{
swal
({
title
:
"Are you sure?"
,
text
:
"You won't be able to revert this!"
,
icon
:
"warning"
,
timer
:
1000
,
dangerMode
:
true
,
buttons
:
[
"Cancel"
,
"Yes,Delete it!"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
positionService
.
delete
(
item
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getPosition
()
})
}
});
}
new
()
{
this
.
isEdit
=
false
this
.
selectModel
=
new
PositionModel
()
}
view
(
item
:
PositionModel
)
{
this
.
isEdit
=
true
;
this
.
selectModel
=
new
PositionModel
(
item
)
}
save
()
{
swal
({
title
:
"Are you sure?"
,
text
:
"คุณต้องการบันทึกหรือไม่"
,
icon
:
"warning"
,
dangerMode
:
false
,
buttons
:
[
"Cancel"
,
"Confirm"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
selectModel
.
companyId
=
this
.
companyId
if
(
!
this
.
isEdit
)
{
this
.
positionService
.
save
(
this
.
selectModel
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getPosition
()
this
.
getPosition
()
this
.
childModal
?.
nativeElement
.
click
()
})
}
else
{
this
.
positionService
.
update
(
this
.
selectModel
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getPosition
()
this
.
getPosition
()
this
.
childModal
?.
nativeElement
.
click
()
})
}
}
});
}
updatePagedItems
()
{
const
startIndex
=
this
.
pageIndex
*
10
;
const
endIndex
=
startIndex
+
10
;
this
.
filterList
=
this
.
itemsList
.
slice
(
startIndex
,
endIndex
);
}
toggleAll
(
event
:
any
)
{
this
.
allSelected
=
event
.
target
.
checked
;
this
.
selectedItems
.
clear
();
this
.
itemsList
.
forEach
(
item
=>
{
this
.
selectedItems
.
set
(
item
.
positionId
,
this
.
allSelected
);
});
this
.
someSelected
=
this
.
itemsList
.
some
(
item
=>
this
.
selectedItems
.
get
(
item
.
positionId
));
}
onCheckboxChange
(
positionId
:
string
)
{
const
isSelected
=
this
.
selectedItems
.
get
(
positionId
)
||
false
;
this
.
selectedItems
.
set
(
positionId
,
!
isSelected
);
this
.
allSelected
=
this
.
itemsList
.
every
(
item
=>
this
.
selectedItems
.
get
(
item
.
positionId
));
this
.
someSelected
=
this
.
itemsList
.
some
(
item
=>
this
.
selectedItems
.
get
(
item
.
positionId
));
}
deleteSelect
()
{
let
employeeInfo
=
''
;
this
.
selectedItems
.
forEach
((
isSelected
,
positionId
)
=>
{
if
(
isSelected
)
{
const
item
=
this
.
itemsList
.
find
(
item
=>
item
.
positionId
===
positionId
);
if
(
item
)
{
employeeInfo
+=
`
${
this
.
translate
.
instant
(
'ชื่อตำแหน่ง'
)}
:
${
item
.
getName
()}
\n`
;
}
}
});
swal
({
title
:
"Are you sure?"
,
text
:
employeeInfo
,
icon
:
"warning"
,
dangerMode
:
true
,
buttons
:
[
"Cancel"
,
"Yes, Delete it!"
],
})
.
then
((
willDelete
:
any
)
=>
{
if
(
willDelete
)
{
this
.
selectedItems
.
forEach
((
isSelected
,
positionId
)
=>
{
if
(
isSelected
)
{
const
item
=
this
.
itemsList
.
find
(
item
=>
item
.
positionId
===
positionId
);
if
(
item
)
{
this
.
positionService
.
delete
(
item
).
subscribe
(
result
=>
{
swal
(
"Save Success!!"
,
"บันทึกข้อมูลสำเร็จ"
,
"success"
);
this
.
getPosition
();
});
}
}
});
}
});
}
}
Web-Manage/src/app/DPU/company-management/admin-project-equirement/admin-project-equirement.component.ts
View file @
d2625cfd
...
...
@@ -57,12 +57,12 @@ export class AdminProjectEquirementComponent {
this
.
updatePagedItems
()
}
}
company
Id
=
""
project
Id
=
""
_searchTerm
=
""
;
isEdit
=
false
;
constructor
(
private
http
:
HttpClient
,
private
eqService
:
EquipmentService
,
public
translate
:
TranslateService
,
private
tokenService
:
TokenService
)
{
this
.
uploadConfig
()
this
.
companyId
=
this
.
tokenService
.
getSelectCompany
().
companyId
;
this
.
projectId
=
this
.
tokenService
.
getSelectCompany
().
projectId
!
;
}
@
ViewChild
(
'video'
)
video
:
ElementRef
;
...
...
Web-Manage/src/app/DPU/company-management/company-management.component.ts
View file @
d2625cfd
...
...
@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
import
{
Router
,
ActivatedRoute
}
from
'@angular/router'
;
import
{
TokenService
}
from
'../../shared/services/token.service'
;
import
{
CompanyService
}
from
'../services/company.service'
;
import
{
ProjectService
}
from
'../services/project.service'
;
@
Component
({
selector
:
'app-company-management'
,
...
...
@@ -9,16 +10,17 @@ import { CompanyService } from '../services/company.service';
styleUrls
:
[
'./company-management.component.css'
]
})
export
class
InstallManagementComponent
implements
OnInit
{
company
Id
=
""
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
private
comService
:
Company
Service
,
private
tokenService
:
TokenService
)
{
project
Id
=
""
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
private
projectService
:
Project
Service
,
private
tokenService
:
TokenService
)
{
}
ngOnInit
()
{
this
.
companyId
=
this
.
route
.
snapshot
.
paramMap
.
get
(
'companyId'
)
!
;
this
.
comService
.
getById
(
this
.
companyId
).
subscribe
(
result
=>
{
this
.
projectId
=
this
.
route
.
snapshot
.
paramMap
.
get
(
'projectId'
)
!
;
this
.
projectService
.
getById
(
this
.
projectId
).
subscribe
(
result
=>
{
console
.
log
(
"SAVEEE"
)
this
.
tokenService
.
saveSelectCompany
(
result
);
// this.router.navigate(["/company"
,""
]);
// this.router.navigate(["/company"]);
})
}
}
Web-Manage/src/app/DPU/company-management/company-management.module.ts
View file @
d2625cfd
...
...
@@ -6,7 +6,7 @@ import { RouterModule, Routes } from '@angular/router';
export
const
companyRoutes
:
Routes
=
[
{
path
:
'company/home/:
company
Id'
,
path
:
'company/home/:
project
Id'
,
loadComponent
:
()
=>
import
(
'./home-installer/home-installer.component'
).
then
((
m
)
=>
m
.
HomeInstallerComponent
),
},
...
...
Web-Manage/src/app/DPU/company-management/home-installer/home-installer.component.ts
View file @
d2625cfd
...
...
@@ -6,6 +6,7 @@ import { TranslateModule } from '@ngx-translate/core';
import
{
ActivatedRoute
,
Router
}
from
'@angular/router'
;
import
{
CompanyService
}
from
'../../services/company.service'
;
import
{
TokenService
}
from
'../../../shared/services/token.service'
;
import
{
ProjectService
}
from
'../../services/project.service'
;
@
Component
({
selector
:
'app-home-installer'
,
...
...
@@ -15,10 +16,10 @@ import { TokenService } from '../../../shared/services/token.service';
styleUrls
:
[
'./home-installer.component.css'
]
})
export
class
HomeInstallerComponent
implements
OnInit
{
company
Id
=
""
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
private
comService
:
Company
Service
,
private
tokenService
:
TokenService
)
{
this
.
companyId
=
this
.
route
.
snapshot
.
paramMap
.
get
(
'company
Id'
)
!
;
this
.
comService
.
getById
(
this
.
company
Id
).
subscribe
(
result
=>
{
project
Id
=
""
constructor
(
private
router
:
Router
,
private
route
:
ActivatedRoute
,
private
projectService
:
Project
Service
,
private
tokenService
:
TokenService
)
{
this
.
projectId
=
this
.
route
.
snapshot
.
paramMap
.
get
(
'project
Id'
)
!
;
this
.
projectService
.
getById
(
this
.
project
Id
).
subscribe
(
result
=>
{
console
.
log
(
"SAVEEE"
)
this
.
tokenService
.
saveSelectCompany
(
result
);
// this.router.navigate(["/company"]);
...
...
Web-Manage/src/app/shared/components/sidebar/sidebar.component.html
View file @
d2625cfd
...
...
@@ -28,10 +28,10 @@
<img
[
src
]="
tokenService
.
getSelectCompany
().
getPicture
()"
alt=
""
>
</span>
<div
class=
"ms-2"
>
<h5
class=
"font-semibold mb-0 flex items-center"
><a>
{{tokenService.getSelectCompany().
companyN
ame}}
<i
<h5
class=
"font-semibold mb-0 flex items-center"
><a>
{{tokenService.getSelectCompany().
project_n
ame}}
<i
class=
"bi bi-check-circle-fill text-success text-base"
title=
"Verified company"
></i></a></h5>
<div
class=
"flex gap-2"
>
<p
class=
"mb-0 text-[#8c9097] dark:text-white/50"
>
{{tokenService.getSelectCompany().
companyC
ode}}
<p
class=
"mb-0 text-[#8c9097] dark:text-white/50"
>
{{tokenService.getSelectCompany().
project_c
ode}}
</p>
</div>
</div>
...
...
Web-Manage/src/app/shared/components/sidebar/sidebar.component.ts
View file @
d2625cfd
...
...
@@ -170,7 +170,7 @@ export class SidebarComponent {
changeMenu
()
{
if
(
this
.
isInstallerRoute
)
{
if
(
this
.
tokenService
.
getUser
().
member
.
role
==
1
){
if
(
this
.
tokenService
.
getUser
().
member
.
role
==
1
||
this
.
tokenService
.
getUser
().
member
.
role
==
99
){
this
.
menuitemsSubscribe$
=
this
.
navServices
.
items
.
subscribe
((
items
)
=>
{
this
.
menuItems
=
this
.
navServices
.
getProjectAdminMenu
();
});
...
...
Web-Manage/src/app/shared/services/token.service.ts
View file @
d2625cfd
...
...
@@ -5,6 +5,7 @@ import { jwtDecode } from "jwt-decode";
import
{
ProfileModel
,
UserModel
}
from
"../user-auth.model"
;
import
{
UserProfileModel
}
from
"../../DPU/models/user.model"
;
import
{
CompanyModel
}
from
"../../DPU/models/company.model"
;
import
{
ProjectModel
}
from
"../../DPU/models/project.model"
;
// import jwt_decode from "jwt-decode";
const
TOKEN_KEY
=
'auth-token'
;
...
...
@@ -77,17 +78,17 @@ export class TokenService {
return
new
UserProfileModel
();
}
public
saveSelectCompany
(
company
:
Company
Model
):
void
{
public
saveSelectCompany
(
company
:
Project
Model
):
void
{
window
.
localStorage
.
removeItem
(
COMPANY
);
window
.
localStorage
.
setItem
(
COMPANY
,
JSON
.
stringify
(
new
Company
Model
(
company
)));
window
.
localStorage
.
setItem
(
COMPANY
,
JSON
.
stringify
(
new
Project
Model
(
company
)));
}
public
getSelectCompany
():
Company
Model
{
public
getSelectCompany
():
Project
Model
{
const
company
=
window
.
localStorage
.
getItem
(
COMPANY
);
if
(
company
)
{
return
new
Company
Model
(
JSON
.
parse
(
company
));
return
new
Project
Model
(
JSON
.
parse
(
company
));
}
return
new
Company
Model
();
return
new
Project
Model
();
}
}
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