Commit 3c3ffaf1 by Ooh-Ao

sss

parent 3f337714
......@@ -71,3 +71,12 @@ async def delete_project_member(db: AsyncSession, pmId: UUID):
await db.commit()
return {"message": "ProjectMember deleted successfully"}
async def get_projects_by_member_id(db: AsyncSession, memberId: UUID):
"""
ดึงรายการ ProjectMember ทั้งหมดที่ memberId นี้สังกัดอยู่
"""
result = await db.execute(
select(ProjectMember).where(ProjectMember.memberId == memberId)
)
return result.scalars().all()
\ No newline at end of file
......@@ -11,7 +11,8 @@ from ..controllers.project_member_controller import (
get_all_project_members,
get_project_member_by_id,
update_project_member,
delete_project_member
delete_project_member,
get_projects_by_member_id
)
from ..schemas.project_member_schema import (
ProjectMemberCreate,
......@@ -64,3 +65,14 @@ async def delete_pm_endpoint(
db: AsyncSession = Depends(get_db)
):
return await delete_project_member(db, pmId)
@router.get("/member/{memberId}", response_model=List[ProjectMemberResponse])
async def get_projects_for_member(
memberId: UUID,
db: AsyncSession = Depends(get_db)
):
"""
ดึงรายการ ProjectMember ทั้งหมดที่ memberId คนนี้สังกัดอยู่
"""
pms = await get_projects_by_member_id(db, memberId)
return pms
\ No newline at end of file
<app-page-header [title]="'จัดการบริษัท'" [activeTitle]="'ผู้ดูแลระบบ'" [title1]="'จัดการบริษัท'"></app-page-header>
<app-page-header [title]="'จัดการโครงการ'" [activeTitle]="'ผู้ดูแลระบบ'" [title1]="'จัดการโครงการ'"></app-page-header>
<div class="grid grid-cols-12 gap-6">
......@@ -15,15 +15,15 @@
translate}}
</a>
<a href="javascript:void(0);" class="hs-dropdown-toggle ti-btn ti-btn-success-full me-2" *ngIf="someSelected"
<!-- <a href="javascript:void(0);" class="hs-dropdown-toggle ti-btn ti-btn-success-full me-2" *ngIf="someSelected"
(click)="adjustSelect(1)"><i class="ri-user-follow-line font-semibold align-middle"></i>{{ 'Active' |
translate}}
</a>
<a href="javascript:void(0);" class="hs-dropdown-toggle ti-btn ti-btn-secondary-full me-2"
</a> -->
<!-- <a href="javascript:void(0);" class="hs-dropdown-toggle ti-btn ti-btn-secondary-full me-2"
*ngIf="someSelected" (click)="adjustSelect(0)"><i
class="ri-user-unfollow-line font-semibold align-middle"></i>{{ 'Unactive' |
translate}}
</a>
</a> -->
<a href="javascript:void(0);" class="hs-dropdown-toggle ti-btn ti-btn-danger-full me-2" *ngIf="someSelected"
......@@ -31,11 +31,11 @@
translate}}
</a>
<div>
<input class="form-control form-control" type="text" placeholder="ค้นหาบริษัท"
<input class="form-control form-control" type="text" placeholder="ค้นหาโครงการ"
aria-label=".form-control-sm example" [(ngModel)]='searchTerm'>
</div>
<!-- <div>
<input class="form-control form-control" type="text" placeholder="กรองตามบริษัท"
<input class="form-control form-control" type="text" placeholder="กรองตามโครงการ"
aria-label=".form-control-sm example" [(ngModel)]='searchTerm'>
</div> -->
<!-- <a href="javascript:void(0);" class="ti-btn ti-btn-primary-full !py-1 !px-2" aria-expanded="false">
......@@ -56,11 +56,11 @@
<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">บริษัท</th>
<th scope="col" class="text-start">รหัสย่อบริษัท</th>
<th scope="col" class="text-start">ข้อมูลบริษัท</th>
<th scope="col" class="text-start">{{"Status" | translate}}</th>
<th scope="col" class="text-start">{{"Update Date" | translate}}</th>
<th scope="col" class="text-start">โครงการ</th>
<!-- <th scope="col" class="text-start">รหัสย่อโครงการ</th> -->
<th scope="col" class="text-start">ข้อมูลโครงการ</th>
<!-- <th scope="col" class="text-start">{{"Status" | translate}}</th>
<th scope="col" class="text-start">{{"Update Date" | translate}}</th> -->
<th scope="col" class="text-start"></th>
</tr>
</thead>
......@@ -69,7 +69,7 @@
<tr class="border border-defaultborder dark:border-defaultborder/10">
<td class="product-checkbox"><input class="form-check-input" type="checkbox"
[checked]="selectedItems.get(item.companyId)" (change)="onCheckboxChange(item.companyId)"
[checked]="selectedItems.get(item.projectId!)" (change)="onCheckboxChange(item.projectId!)"
aria-label="..." value="">
</td>
<td>
......@@ -79,34 +79,34 @@
</span>
<div class="ms-2">
<p class="font-semibold mb-0 flex items-center text-primary"><a
routerLink="/company/home/{{item.companyId}}" routerLinkActive="active">
{{item.companyName}}</a></p>
<p class="text-[0.75rem] text-muted mb-0">{{item.companyId}}</p>
routerLink="/company/home/{{item.projectId}}" routerLinkActive="active">
{{item.project_name}}</a></p>
<p class="text-[0.75rem] text-muted mb-0">{{item.projectId}}</p>
</div>
</div>
</td>
<!-- <td>
<div class="flex">
<div class="ms-2">
<p class="font-semibold mb-0 flex items-center text-primary"><a routerLink="/company/home/{{item.companyId}}" routerLinkActive="active">
{{item.companyName}}</a></p>
<p class="text-[0.75rem] text-muted mb-0">{{item.companyId}}</p>
<p class="font-semibold mb-0 flex items-center text-primary"><a routerLink="/company/home/{{item.projectId}}" routerLinkActive="active">
{{item.project_name}}</a></p>
<p class="text-[0.75rem] text-muted mb-0">{{item.projectId}}</p>
</div>
</div>
</td> -->
<td> {{item.companyCode}}</td>
<!-- <td> {{item.companyCode}}</td> -->
<td>
<div>
<span class="block mb-1"><i
class="ri-home-line me-2 align-middle text-[.875rem] text-[#8c9097] dark:text-white/50 inline-flex"></i>{{item.companyInfo}}</span>
class="ri-home-line me-2 align-middle text-[.875rem] text-[#8c9097] dark:text-white/50 inline-flex"></i>{{item.project_desc}}</span>
</div>
</td>
<td> <span
<!-- <td> <span
class="badge bg-{{ item.status == 1 ? 'primary' : 'danger'}} text-white">{{item.getStatus()}}</span>
</td>
<td><span class="badge bg-info/10 text-primary"><i class="bi bi-clock me-1"></i>{{item.updatedAt | date
</td> -->
<!-- <td><span class="badge bg-info/10 text-primary"><i class="bi bi-clock me-1"></i>{{item.updatedAt | date
: 'medium'}}</span></td>
<td>
<td> -->
<td>
<div class="flex flex-row items-center !gap-2 ">
......@@ -202,58 +202,53 @@
</div>
<div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'ชื่อบริษัท' | translate}}</label>
<label for="deal-title" class="form-label">{{'ชื่อโครงการ' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder=""
[(ngModel)]="selectModel.companyName">
<div class="text-danger" *ngIf="!selectModel.companyName">
[(ngModel)]="selectModel.project_name">
<div class="text-danger" *ngIf="!selectModel.project_name">
{{'Please fill in information' | translate}}
</div>
</div>
<div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'รหัสบริษัท' | translate}}</label>
<!-- <div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'รหัสโครงการ' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder=""
[(ngModel)]="selectModel.companyCode">
<div class="text-danger" *ngIf="!selectModel.companyCode">
{{'Please fill in information' | translate}}
</div>
</div>
</div> -->
<div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'ข้อมูลบริษัท' | translate}}</label>
<label for="deal-title" class="form-label">{{'ข้อมูลโครงการ' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder=""
[(ngModel)]="selectModel.companyInfo">
<div class="text-danger" *ngIf="!selectModel.companyInfo">
[(ngModel)]="selectModel.project_desc">
<div class="text-danger" *ngIf="!selectModel.project_desc">
{{'Please fill in information' | translate}}
</div>
</div>
<div class="xl:col-span-12 col-span-12">
<!-- <div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'ที่อยู่' | translate}}</label>
<textarea type="text" class="form-control" id="deal-title" placeholder=""
[(ngModel)]="selectModel.address"></textarea>
</div>
<div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'เจ้าของ' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder="" [(ngModel)]="selectModel.ownerName">
</div>
</div> -->
<div class="xl:col-span-12 col-span-12">
<!-- <div class="xl:col-span-12 col-span-12">
<label for="deal-title" class="form-label">{{'เบอร๋ติดต่อ' | translate}}</label>
<input type="text" class="form-control" id="deal-title" placeholder="" [(ngModel)]="selectModel.contact">
</div>
</div> -->
<div class="xl:col-span-12 col-span-12">
<!-- <div class="xl:col-span-12 col-span-12">
<label class="form-label">{{'Status' | translate}}</label>
<ng-select name="choices-multiple-remove-button2" id="choices-multiple-remove-button2" placeholder=""
[(ngModel)]="selectModel.status">
<ng-option [value]="0">{{'Pending' | translate}}</ng-option>
<ng-option [value]="1" selected>{{'Public' | translate}}</ng-option>
</ng-select>
</div>
</div> -->
</div>
</div>
......
......@@ -3,7 +3,6 @@ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { SharedModule } from '../../../shared/shared.module';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { CompanyModel } from '../../models/company.model';
import swal from 'sweetalert';
import { CompanyService } from '../../services/company.service';
import { MatPaginator } from '@angular/material/paginator';
......@@ -14,6 +13,8 @@ import { FileUploadModule } from 'ng2-file-upload';
import { FileItem, FileUploader, ParsedResponseHeaders } from "ng2-file-upload";
import { environment } from '../../../../environments/environment';
import { TokenService } from '../../../shared/services/token.service';
import { ProjectService } from '../../services/project.service';
import { ProjectModel } from '../../models/project.model';
@Component({
selector: 'app-company-manage',
......@@ -37,11 +38,11 @@ export class CompanyManageComponent {
action = "new";
allSelected = false;
someSelected = false;
itemsList: CompanyModel[] = []
filterList: CompanyModel[] = []
selectModel: CompanyModel = new CompanyModel()
itemsList: ProjectModel[] = []
filterList: ProjectModel[] = []
selectModel: ProjectModel = new ProjectModel()
selectedItems = new Map<string, boolean>();
empList: CompanyModel[] = []
empList: ProjectModel[] = []
descName = 'engName'
pageIndex = 0;
uploaderProfile: FileUploader | undefined;
......@@ -61,7 +62,7 @@ export class CompanyManageComponent {
}
_searchTerm = "";
constructor(private comService: CompanyService, public translate: TranslateService, private tokenService: TokenService) {
constructor(private projectService: ProjectService, public translate: TranslateService, private tokenService: TokenService) {
this.uploadConfig()
}
......@@ -117,7 +118,7 @@ export class CompanyManageComponent {
}
ngOnInit(): void {
this.comService.getLists().subscribe(result => {
this.projectService.getLists().subscribe(result => {
this.itemsList = result
this.updatePagedItems()
})
......@@ -126,17 +127,13 @@ export class CompanyManageComponent {
filter(v: string) {
return this.itemsList?.filter(
(x) =>
x.companyId?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.companyName?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.companyCode?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.companyInfo?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.address.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.ownerName.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.getStatus().toLowerCase().indexOf(v.toLowerCase()) !== -1
x.projectId?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.project_name?.toLowerCase().indexOf(v.toLowerCase()) !== -1 ||
x.project_desc?.toLowerCase().indexOf(v.toLowerCase()) !== -1
);
}
delete(item: CompanyModel) {
delete(item: ProjectModel) {
swal({
title: "Are you sure?",
text: "You won't be able to revert this!",
......@@ -147,7 +144,7 @@ export class CompanyManageComponent {
})
.then((willDelete: any) => {
if (willDelete) {
this.comService.delete(item).subscribe(result => {
this.projectService.delete(item).subscribe(result => {
swal("Save Success!!", "บันทึกข้อมูลสำเร็จ", "success");
this.ngOnInit()
})
......@@ -158,17 +155,13 @@ export class CompanyManageComponent {
new() {
this.action = 'add'
this.selectModel = new CompanyModel()
this.selectModel.status = 1;
this.selectModel.address = "";
this.selectModel.latitude = 0.00
this.selectModel.longitude = 0.00
this.selectModel = new ProjectModel()
this.selectModel.picture = ""
}
view(item: CompanyModel) {
view(item: ProjectModel) {
this.action = 'edit'
this.selectModel = new CompanyModel(item)
this.selectModel = new ProjectModel(item)
console.log(this.selectModel)
}
......@@ -183,14 +176,14 @@ export class CompanyManageComponent {
.then((willDelete: any) => {
if (willDelete) {
if (this.action == 'add') {
this.comService.save(this.selectModel).subscribe(result => {
this.projectService.save(this.selectModel).subscribe(result => {
console.log(result)
swal("Save Success!!", "บันทึกข้อมูลสมาชิก", "success");
this.ngOnInit()
this.childModal?.nativeElement.click()
})
} else if (this.action == 'edit') {
this.comService.update(this.selectModel).subscribe(result => {
this.projectService.update(this.selectModel).subscribe(result => {
console.log(result)
swal("Update Success!!", "บันทึกข้อมูลสมาชิก", "success");
this.ngOnInit()
......@@ -215,25 +208,25 @@ export class CompanyManageComponent {
this.allSelected = event.target.checked;
this.selectedItems.clear();
this.itemsList.forEach(item => {
this.selectedItems.set(item.companyId, this.allSelected);
this.selectedItems.set(item.projectId!, this.allSelected);
});
this.someSelected = this.itemsList.some(item => this.selectedItems.get(item.companyId));
this.someSelected = this.itemsList.some(item => this.selectedItems.get(item.projectId!));
}
onCheckboxChange(companyId: string) {
const isSelected = this.selectedItems.get(companyId) || false;
this.selectedItems.set(companyId, !isSelected);
this.allSelected = this.itemsList.every(item => this.selectedItems.get(item.companyId));
this.someSelected = this.itemsList.some(item => this.selectedItems.get(item.companyId));
onCheckboxChange(projectId: string) {
const isSelected = this.selectedItems.get(projectId) || false;
this.selectedItems.set(projectId, !isSelected);
this.allSelected = this.itemsList.every(item => this.selectedItems.get(item.projectId!));
this.someSelected = this.itemsList.some(item => this.selectedItems.get(item.projectId!));
}
deleteSelect() {
let employeeInfo = '';
this.selectedItems.forEach((isSelected, companyId) => {
this.selectedItems.forEach((isSelected, projectId) => {
if (isSelected) {
const item = this.itemsList.find(item => item.companyId === companyId);
const item = this.itemsList.find(item => item.projectId === projectId);
if (item) {
employeeInfo += `${this.translate.instant('บริษัท')}: ${item.companyName}\n`;
employeeInfo += `${this.translate.instant('บริษัท')}: ${item.project_name}\n`;
}
}
});
......@@ -247,11 +240,11 @@ export class CompanyManageComponent {
})
.then((willDelete: any) => {
if (willDelete) {
this.selectedItems.forEach((isSelected, companyId) => {
this.selectedItems.forEach((isSelected, projectId) => {
if (isSelected) {
const item = this.itemsList.find(item => item.companyId === companyId);
const item = this.itemsList.find(item => item.projectId === projectId);
if (item) {
this.comService.delete(item).subscribe(result => {
this.projectService.delete(item).subscribe(result => {
swal("Save Success!!", "บันทึกข้อมูลสำเร็จ", "success");
this.ngOnInit();
});
......@@ -262,41 +255,41 @@ export class CompanyManageComponent {
});
}
adjustSelect(status: number) {
let title = "Are you sure?"
let employeeInfo = ''; // ตัวแปรสำหรับเก็บข้อมูลพนักงาน
this.selectedItems.forEach((isSelected, memberId) => {
if (isSelected) {
const company = this.itemsList.find(company => company.companyId === memberId);
if (company) {
employeeInfo += `${this.translate.instant('Fullname')}: ${company.companyName}\n`;
}
}
});
swal({
title: title,
text: employeeInfo,
icon: "warning",
dangerMode: false,
buttons: ["Cancel", "Confirm"],
})
.then((willDelete: any) => {
if (willDelete) {
this.selectedItems.forEach((isSelected, companyId) => {
if (isSelected) {
const company = this.itemsList.find(company => company.companyId === companyId);
if (company) {
company.status = status
this.comService.update(company).subscribe(result => {
swal("Save Success!!", "บันทึกข้อมูลสำเร็จ", "success");
this.ngOnInit();
});
}
}
});
}
// adjustSelect(status: number) {
// let title = "Are you sure?"
// let employeeInfo = ''; // ตัวแปรสำหรับเก็บข้อมูลพนักงาน
// this.selectedItems.forEach((isSelected, memberId) => {
// if (isSelected) {
// const company = this.itemsList.find(project => project.projectId === memberId);
// if (project) {
// employeeInfo += `${this.translate.instant('Fullname')}: ${project.projectName}\n`;
// }
// }
// });
// swal({
// title: title,
// text: employeeInfo,
// icon: "warning",
// dangerMode: false,
// buttons: ["Cancel", "Confirm"],
// })
// .then((willDelete: any) => {
// if (willDelete) {
// this.selectedItems.forEach((isSelected, projectId) => {
// if (isSelected) {
// const project = this.itemsList.find(project => project.projectId === projectId);
// if (project) {
// project.status = status
// this.projectService.update(project).subscribe(result => {
// swal("Save Success!!", "บันทึกข้อมูลสำเร็จ", "success");
// this.ngOnInit();
// });
// }
// }
// });
// }
});
}
// });
// }
}
import { TranslateService } from "@ngx-translate/core";
import { BaseModel } from "./base.model";
export class ProjectMemberModel extends BaseModel {
pm_id: string;
user_id: string;
projectId: string;
role_in_project: string;
created_at: string;
updated_at: string;
constructor(data?: Partial<ProjectMemberModel>, translateService?: TranslateService) {
super(data, translateService);
this.pm_id = data?.pm_id ?? '';
this.user_id = data?.user_id ?? '';
this.projectId = data?.projectId ?? '';
this.role_in_project = data?.role_in_project ?? '';
this.created_at = data?.created_at ?? new Date().toISOString();
this.updated_at = data?.updated_at ?? new Date().toISOString();
}
}
import { environment } from "../../../environments/environment";
export class ProjectModel {
projectId?: string;
picture: string;
project_name: string;
project_desc?: string;
start_date: string;
end_date: string;
// created_at: string;
// updated_at: string;
constructor(data?: Partial<ProjectModel>) {
this.picture = data?.picture ?? '';
this.projectId = data?.projectId
this.project_name = data?.project_name ?? '';
this.project_desc = data?.project_desc ?? '';
this.start_date = data?.start_date!
this.end_date = data?.end_date!
// this.created_at = data?.created_at!
// this.updated_at = data?.updated_at!
}
getPicture(): string {
return this.picture ? environment.baseUrl + '/images/' + this.picture : './assets/images/faces/9.jpg'
}
}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map, tap, switchMap, filter, reduce } from "rxjs/operators";
import { ProjectMemberModel } from '../models/project-members';
@Injectable({
providedIn: 'root'
})
export class ProjectMemberService {
apiBaseUrl = "/project-members";
constructor(
private http: HttpClient
) { }
getById(id: string) {
return this.http
.get<ProjectMemberModel>(this.apiBaseUrl + "/" + id)
.pipe(map((e) => new ProjectMemberModel(e)));
}
getLists() {
return this.http
.get<ProjectMemberModel[]>(this.apiBaseUrl)
.pipe(
map((e) => e.map((e) => new ProjectMemberModel(e)))
);
}
save(body: ProjectMemberModel) {
return this.http.post<{
"message": string,
"user": ProjectMemberModel
}>(this.apiBaseUrl, new ProjectMemberModel(body));
}
update(body: ProjectMemberModel) {
return this.http.put<{
"message": string,
"user": ProjectMemberModel
}>(this.apiBaseUrl + "/" + body.user_id, new ProjectMemberModel(body));
}
delete(body: ProjectMemberModel) {
return this.http.delete<{
"message": string,
"user": ProjectMemberModel
}>(this.apiBaseUrl + "/" + body.user_id);
}
getCompanyAdmin(memberId: string) {
return this.http
.get<ProjectMemberModel[]>(this.apiBaseUrl + "/member/" + memberId)
.pipe(
map((e) => e.map((e) => new ProjectMemberModel(e)))
);
}
}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map, tap, switchMap, filter, reduce } from "rxjs/operators";
import { ProjectModel } from '../models/project.model';
@Injectable({
providedIn: 'root'
})
export class ProjectService {
apiBaseUrl = "/projects";
constructor(
private http: HttpClient
) { }
getById(id: string) {
return this.http
.get<ProjectModel>(this.apiBaseUrl + "/" + id)
.pipe(map((e) => new ProjectModel(e)));
}
getLists() {
return this.http
.get<ProjectModel[]>(this.apiBaseUrl)
.pipe(
map((e) => e.map((e) => new ProjectModel(e)))
);
}
save(body: ProjectModel) {
return this.http.post<{
"message": string,
"user": ProjectModel
}>(this.apiBaseUrl, new ProjectModel(body));
}
update(body: ProjectModel) {
return this.http.put<{
"message": string,
"user": ProjectModel
}>(this.apiBaseUrl + "/" + body.projectId, new ProjectModel(body));
}
delete(body: ProjectModel) {
return this.http.delete<{
"message": string,
"user": ProjectModel
}>(this.apiBaseUrl + "/" + body.projectId);
}
}
......@@ -18,6 +18,7 @@ import { LoginModel } from '../../shared/user-auth.model';
import { HttpClientModule } from '@angular/common/http';
import { Validators } from 'ngx-editor';
import { EmployeeService } from '../../DPU/services/employee.service';
import { ProjectMemberService } from '../../DPU/services/project-members.service';
@Component({
selector: 'app-login',
......@@ -44,7 +45,7 @@ export class LoginComponent {
private routes: Router,
private formBuilder: FormBuilder,
public authService: AuthService,
private empServie: EmployeeService
private projectMember: ProjectMemberService
) {
localStorage.clear()
}
......@@ -123,15 +124,13 @@ export class LoginComponent {
this.tokenService.saveToken(result.access_token);
// this.tokenService.saveRefreshToken(result.refreshToken);
this.tokenService.saveUser(result);
if (result.member.status == 1) {
if (result.member.role == 99) {
if (result.member.role == 99 || result.member.role == 1) {
this.routes.navigate(['/admin/member-manage'])
} else {
this.adminCompanyList(result.member.memberId)
}
} else {
this.error = 'ไม่สามารถใช้งานได้กรุณาติดต่อผู้ให้บริการ'
}
// this.routes.navigate(['/admin/member-manage'])
}, (error) => {
this.showLoader = false;
......@@ -141,9 +140,9 @@ export class LoginComponent {
}
adminCompanyList(memberId: string) {
this.empServie.getCompanyAdmin(memberId).subscribe(result => {
this.projectMember.getCompanyAdmin(memberId).subscribe(result => {
if (result.length > 0) {
this.routes.navigate(['/company/home/'+result[0].companyId])
this.routes.navigate(['/company/home/' + result[0].projectId])
}
else {
this.error = 'คุณไม่มีสิทธิ์ใช้งานในส่วนนี้'
......
......@@ -54,7 +54,7 @@ export class NavService implements OnDestroy {
public fullScreen = false;
active: any;
constructor(private router: Router , private tokenService : TokenService) {
constructor(private router: Router, private tokenService: TokenService) {
this.setScreenWidth(window.innerWidth);
fromEvent(window, 'resize')
.pipe(debounceTime(1000), takeUntil(this.unsubscriber))
......@@ -91,32 +91,66 @@ export class NavService implements OnDestroy {
MENUITEMS: Menu[] = []
getCommonMenu() {
return [
// Dashboard
{ headTitle: 'ผู้ดูแลระบบ' },
// return [
// // Dashboard
// { headTitle: 'ผู้ดูแลระบบ' },
// {
// icon: 'user',
// path: '/admin/member-manage',
// title: 'จัดการสมาชิก',
// type: 'link',
// },
// {
// icon: 'buildings',
// path: '/admin/manage-companys',
// title: 'จัดการบริษัท',
// type: 'link',
// },
// {
// icon: 'user-check',
// path: '/admin/admin-manage',
// title: 'จัดการสิทธิ์ผู้ดูแลระบบ',
// type: 'link',
// },
// // { headTitle: 'User Management' },
// ];
return [{ headTitle: 'Admin' },
{ path: '/admin/home', title: 'หน้าแรก', type: 'link' },
{
icon: 'user',
path: '/admin/member-manage',
title: 'จัดการสมาชิก',
type: 'link',
},
title: 'การจัดการ',
type: 'sub',
selected: false,
Menusub: true,
active: false,
children: [
{ path: '/admin/member-manage', title: 'การจัดการสมาชิก', type: 'link' },
{ path: '/admin/product-management', title: 'การจัดการอุปกรณ์', type: 'link' },
{
icon: 'buildings',
path: '/admin/manage-companys',
title: 'จัดการบริษัท',
title: 'การจัดการโครงการ',
type: 'link',
},
],
}, {
title: 'การเบิกคืนอุปกรณ์',
type: 'sub',
selected: false,
Menusub: true,
active: false,
children: [
{ path: '/admin/borrow-management', title: 'การจัดการการเบิก', type: 'link' },
{ path: '/admin/approve-borrow', title: 'อนุมัติการเบิก', type: 'link' },
{ path: '/admin/return-borrow', title: 'อนุมัติการคืน', type: 'link' },
{
icon: 'user-check',
path: '/admin/admin-manage',
title: 'จัดการสิทธิ์ผู้ดูแลระบบ',
path: '/admin/history-product',
title: 'ประวัติการทำรายการ',
type: 'link',
},
// { headTitle: 'User Management' },
];
],
}]
}
getCompanyMenu() {
......
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