Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mySkill-x
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
mySkill-x
Commits
6161cddf
Commit
6161cddf
authored
Apr 16, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
สร้างชื่อผู้ใช้งาน
parent
2b0c2692
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
57 deletions
+68
-57
user-settings.component.html
...count-settings/user-settings/user-settings.component.html
+0
-0
user-settings.component.ts
...account-settings/user-settings/user-settings.component.ts
+68
-57
No files found.
src/app/components/company-components/account-settings/user-settings/user-settings.component.html
View file @
6161cddf
This diff is collapsed.
Click to expand it.
src/app/components/company-components/account-settings/user-settings/user-settings.component.ts
View file @
6161cddf
import
{
ChangeDetectorRef
,
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
import
{
ChangeDetectorRef
,
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
import
{
ColumnModel
}
from
'@syncfusion/ej2-grids'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
'src/app/shared/model/employee.model'
;
import
{
EmployeeModel
,
MyEmployeeModel
}
from
'src/app/shared/model/employee.model'
;
import
{
LevelModel
,
MyLevelModel
}
from
'src/app/shared/model/level.model'
;
import
{
LevelModel
,
MyLevelModel
}
from
'src/app/shared/model/level.model'
;
...
@@ -20,24 +21,52 @@ export interface DataModal {
...
@@ -20,24 +21,52 @@ export interface DataModal {
export
class
UserSettingsComponent
{
export
class
UserSettingsComponent
{
selectedFile
:
File
|
null
=
null
;
selectedFile
:
File
|
null
=
null
;
selectedFileName
:
string
=
'กรุณาเลือกไฟล์'
;
selectedFileName
:
string
=
'กรุณาเลือกไฟล์'
;
currentModal
:
'add'
|
'edit'
|
'delete'
|
'deleteGroup'
=
"add"
currentModal
:
'add'
|
'edit'
|
'delete'
=
"add"
currentPage
=
1
search
=
""
page
=
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
);
modal
:
DataModal
=
{
modal
:
DataModal
=
{
search
:
""
,
search
:
""
,
currentPage
:
1
,
currentPage
:
1
,
page
:
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
)
page
:
Array
.
from
({
length
:
1
},
(
_
,
i
)
=>
i
+
1
)
}
}
numDataListChecked
=
0
isDataListChecked
=
false
isDataListCheckedAll
=
false
companyId
=
""
companyId
=
""
user
:
{
loading
:
boolean
,
select
:
UserModel
,
dataList
:
{
check
:
boolean
,
data
:
UserModel
}
[]
}
=
{
loading
:
false
,
select
:
new
MyUserModel
(),
dataList
:
[]
}
user
:
{
loading
:
boolean
,
select
:
UserModel
,
dataList
:
UserModel
[]
}
=
{
loading
:
false
,
select
:
new
MyUserModel
(),
dataList
:
[]
}
employee
:
{
loading
:
boolean
,
select
:
EmployeeModel
,
dataList
:
{
check
:
boolean
,
data
:
EmployeeModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyEmployeeModel
(),
dataList
:
[]
}
employee
:
{
loading
:
boolean
,
select
:
EmployeeModel
,
dataList
:
{
check
:
boolean
,
data
:
EmployeeModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyEmployeeModel
(),
dataList
:
[]
}
role
:
{
loading
:
boolean
,
select
:
RoleModel
,
dataList
:
{
check
:
boolean
,
data
:
RoleModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyRoleModel
(),
dataList
:
[]
}
role
:
{
loading
:
boolean
,
select
:
RoleModel
,
dataList
:
{
check
:
boolean
,
data
:
RoleModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyRoleModel
(),
dataList
:
[]
}
level
:
{
loading
:
boolean
,
select
:
LevelModel
,
dataList
:
{
check
:
boolean
,
data
:
LevelModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyLevelModel
(),
dataList
:
[]
}
level
:
{
loading
:
boolean
,
select
:
LevelModel
,
dataList
:
{
check
:
boolean
,
data
:
LevelModel
}[]
}
=
{
loading
:
false
,
select
:
new
MyLevelModel
(),
dataList
:
[]
}
search
=
""
columns
:
ColumnModel
[]
=
[{
field
:
"usernameId"
,
headerText
:
"ชื่อล็อกอิน"
,
type
:
"string"
,
isPrimaryKey
:
true
,
},
{
field
:
"empId"
,
headerText
:
"รหัสพนักงาน"
,
type
:
"string"
},
{
field
:
"employee.fname"
,
headerText
:
"ชื่อ"
,
type
:
"string"
},
{
field
:
"employee.lname"
,
headerText
:
"นามสกุล"
,
type
:
"string"
},
{
field
:
"status"
,
headerText
:
"สถานะ"
,
type
:
"string"
}]
searchSettings
=
{
fields
:
[
'usernameId'
,
'empId'
,
'fname'
,
'lname'
,
'status'
],
operator
:
'contains'
,
ignoreCase
:
false
}
selectedItems
:
{
key
:
string
,
count
:
number
,
data
:
Map
<
string
,
boolean
>
}
=
{
key
:
''
,
count
:
0
,
data
:
new
Map
<
string
,
boolean
>
()
};
constructor
(
private
toastr
:
ToastrService
,
constructor
(
private
toastr
:
ToastrService
,
private
cdr
:
ChangeDetectorRef
,
private
cdr
:
ChangeDetectorRef
,
private
userService
:
UserService
,
private
userService
:
UserService
,
...
@@ -66,7 +95,6 @@ export class UserSettingsComponent {
...
@@ -66,7 +95,6 @@ export class UserSettingsComponent {
next
:
response
=>
{
next
:
response
=>
{
this
.
level
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyLevelModel
(
x
)
}))
this
.
level
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyLevelModel
(
x
)
}))
this
.
level
.
loading
=
false
this
.
level
.
loading
=
false
this
.
searchChange
()
this
.
cdr
.
detectChanges
()
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
},
error
:
error
=>
{
this
.
level
.
loading
=
false
this
.
level
.
loading
=
false
...
@@ -92,7 +120,6 @@ export class UserSettingsComponent {
...
@@ -92,7 +120,6 @@ export class UserSettingsComponent {
next
:
response
=>
{
next
:
response
=>
{
this
.
role
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyRoleModel
(
x
)
}))
this
.
role
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyRoleModel
(
x
)
}))
this
.
role
.
loading
=
false
this
.
role
.
loading
=
false
this
.
searchChange
()
this
.
cdr
.
detectChanges
()
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
},
error
:
error
=>
{
this
.
role
.
loading
=
false
this
.
role
.
loading
=
false
...
@@ -118,7 +145,6 @@ export class UserSettingsComponent {
...
@@ -118,7 +145,6 @@ export class UserSettingsComponent {
next
:
response
=>
{
next
:
response
=>
{
this
.
employee
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyEmployeeModel
(
x
)
}))
this
.
employee
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyEmployeeModel
(
x
)
}))
this
.
employee
.
loading
=
false
this
.
employee
.
loading
=
false
this
.
searchChange
()
this
.
cdr
.
detectChanges
()
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
},
error
:
error
=>
{
this
.
employee
.
loading
=
false
this
.
employee
.
loading
=
false
...
@@ -142,11 +168,13 @@ export class UserSettingsComponent {
...
@@ -142,11 +168,13 @@ export class UserSettingsComponent {
this
.
user
.
loading
=
true
this
.
user
.
loading
=
true
this
.
userService
.
getList
().
subscribe
({
this
.
userService
.
getList
().
subscribe
({
next
:
response
=>
{
next
:
response
=>
{
this
.
user
.
dataList
=
response
.
map
(
x
=>
({
check
:
false
,
data
:
new
MyUserModel
(
x
)
}))
this
.
user
.
dataList
=
response
.
map
(
x
=>
{
this
.
isDataListCheckedAll
=
false
this
.
selectedItems
.
data
.
set
(
x
.
usernameId
,
false
)
this
.
dataListCheckAll
()
return
new
MyUserModel
({
...
x
,
status
:
x
.
status
==
'1'
?
'ใช้งาน'
:
'ไม่ใช้งาน'
})
})
this
.
selectedItems
.
key
=
'usernameId'
this
.
selectedItems
.
count
=
0
this
.
user
.
loading
=
false
this
.
user
.
loading
=
false
this
.
searchChange
()
this
.
cdr
.
detectChanges
()
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
},
error
:
error
=>
{
this
.
user
.
loading
=
false
this
.
user
.
loading
=
false
...
@@ -154,17 +182,21 @@ export class UserSettingsComponent {
...
@@ -154,17 +182,21 @@ export class UserSettingsComponent {
}
}
})
})
}
}
userListFilter
()
{
return
this
.
user
.
dataList
.
filter
(
x
=>
{
searchModalChange
(
dataList
:
any
[])
{
const
data
=
x
.
data
this
.
modal
.
currentPage
=
1
const
match
=
data
.
usernameId
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
||
this
.
modal
.
page
=
Array
.
from
({
length
:
Math
.
ceil
(
dataList
.
length
/
10
)
},
(
_
,
i
)
=>
i
+
1
);
data
.
empId
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
||
this
.
cdr
.
markForCheck
()
data
.
employee
.
thFullName
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
return
match
})
}
}
selectUser
(
data
?:
UserModel
)
{
selectUser
(
data
?:
UserModel
)
{
this
.
user
.
select
=
new
MyUserModel
({
...
data
,
companyId
:
data
?.
companyId
||
this
.
companyId
,
status
:
data
?.
status
||
'0'
})
if
(
data
)
{
this
.
user
.
select
=
new
MyUserModel
({
...
data
,
companyId
:
data
?.
companyId
||
this
.
companyId
,
status
:
data
.
status
==
'ใช้งาน'
?
'1'
:
'0'
})
}
else
if
(
this
.
currentModal
==
'add'
)
{
this
.
user
.
select
=
new
MyUserModel
({
companyId
:
this
.
companyId
,
status
:
'0'
})
}
else
if
(
this
.
currentModal
==
'edit'
)
{
this
.
user
.
select
=
new
MyUserModel
({
usernameId
:
this
.
user
.
select
.
usernameId
,
companyId
:
this
.
companyId
,
status
:
'0'
})
}
}
}
onFileSelected
(
event
:
any
)
{
onFileSelected
(
event
:
any
)
{
this
.
selectedFile
=
event
.
target
.
files
.
length
>
0
?
event
.
target
.
files
[
0
]
:
null
;
this
.
selectedFile
=
event
.
target
.
files
.
length
>
0
?
event
.
target
.
files
[
0
]
:
null
;
...
@@ -239,11 +271,8 @@ export class UserSettingsComponent {
...
@@ -239,11 +271,8 @@ export class UserSettingsComponent {
let
body
:
UserModel
|
UserModel
[]
let
body
:
UserModel
|
UserModel
[]
switch
(
this
.
currentModal
)
{
switch
(
this
.
currentModal
)
{
case
(
'delete'
):
{
case
(
'delete'
):
{
body
=
[
new
MyUserModel
(
this
.
user
.
select
)]
const
selectedKeys
=
Array
.
from
(
this
.
selectedItems
.
data
.
keys
());
break
;
body
=
this
.
user
.
dataList
.
filter
(
x
=>
selectedKeys
.
includes
(
x
.
usernameId
)
&&
this
.
selectedItems
.
data
.
get
(
x
.
usernameId
)).
map
(
x
=>
new
MyUserModel
({
...
x
,
status
:
x
.
status
==
'ใช้งาน'
?
'1'
:
'0'
}))
}
case
(
'deleteGroup'
):
{
body
=
this
.
user
.
dataList
.
filter
(
x
=>
x
.
check
).
map
(
x
=>
new
MyUserModel
(
x
.
data
))
break
;
break
;
}
}
default
:
{
default
:
{
...
@@ -255,7 +284,6 @@ export class UserSettingsComponent {
...
@@ -255,7 +284,6 @@ export class UserSettingsComponent {
if
(
response
.
success
)
{
if
(
response
.
success
)
{
this
.
showAlert
(
response
.
message
,
'success'
)
this
.
showAlert
(
response
.
message
,
'success'
)
this
.
getUserList
()
this
.
getUserList
()
this
.
searchChange
()
}
else
{
}
else
{
this
.
showAlert
(
response
.
message
,
'error'
)
this
.
showAlert
(
response
.
message
,
'error'
)
this
.
user
.
loading
=
false
this
.
user
.
loading
=
false
...
@@ -268,16 +296,7 @@ export class UserSettingsComponent {
...
@@ -268,16 +296,7 @@ export class UserSettingsComponent {
}
}
})
})
}
}
searchChange
()
{
this
.
currentPage
=
1
this
.
page
=
Array
.
from
({
length
:
Math
.
ceil
(
this
.
userListFilter
().
length
/
10
)
},
(
_
,
i
)
=>
i
+
1
);
this
.
dataListCheck
()
}
searchModalChange
(
dataList
:
any
[])
{
this
.
modal
.
currentPage
=
1
this
.
modal
.
page
=
Array
.
from
({
length
:
Math
.
ceil
(
dataList
.
length
/
10
)
},
(
_
,
i
)
=>
i
+
1
);
this
.
cdr
.
markForCheck
()
}
selectDataModal
(
target
:
{
[
key
:
string
]:
any
},
field
:
string
,
data
:
any
)
{
selectDataModal
(
target
:
{
[
key
:
string
]:
any
},
field
:
string
,
data
:
any
)
{
target
[
field
]
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
target
[
field
]
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
}
}
...
@@ -298,26 +317,18 @@ export class UserSettingsComponent {
...
@@ -298,26 +317,18 @@ export class UserSettingsComponent {
})
})
}
}
dataListCheckAll
()
{
const
selectAll
=
this
.
isDataListCheckedAll
;
checkPrimary
()
{
this
.
user
.
dataList
.
filter
(
x
=>
{
return
this
.
user
.
dataList
.
find
(
x
=>
x
.
usernameId
==
this
.
user
.
select
.
usernameId
)
const
data
=
x
.
data
const
match
=
data
.
usernameId
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
||
data
.
empId
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
||
data
.
employee
.
thFullName
.
toLowerCase
().
includes
(
this
.
search
.
toLowerCase
())
return
match
}).
forEach
(
x
=>
x
.
check
=
selectAll
);
this
.
dataListCheck
();
}
}
dataListCheck
()
{
numSelectItem
()
{
const
dataCheck
=
this
.
userListFilter
();
const
selectedKeys
=
Array
.
from
(
this
.
selectedItems
.
data
.
keys
());
this
.
isDataListCheckedAll
=
dataCheck
.
length
?
dataCheck
.
every
(
x
=>
x
.
check
)
:
false
;
const
num
=
this
.
user
.
dataList
.
filter
(
x
=>
selectedKeys
.
includes
(
x
.
usernameId
)
&&
this
.
selectedItems
.
data
.
get
(
x
.
usernameId
)).
length
this
.
numDataListChecked
=
this
.
user
.
dataList
.
filter
(
x
=>
x
.
check
).
length
;
return
num
this
.
isDataListChecked
=
Boolean
(
this
.
numDataListChecked
)
}
}
checkPrimary
(
)
{
onSelectItemChange
(
arg
:
any
)
{
return
this
.
user
.
dataList
.
find
(
x
=>
x
.
data
.
usernameId
==
this
.
user
.
select
.
usernameId
)
this
.
selectedItems
=
arg
}
}
}
}
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