Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Tia-dev
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
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
Dida Adams Arizona
Tia-dev
Commits
68e319a1
Commit
68e319a1
authored
Oct 02, 2020
by
Deni Rinaldi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+++
parent
bfe70c4c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
416 additions
and
344 deletions
+416
-344
Images.js
src/assets/Images.js
+4
-1
dot-done.svg
src/assets/dot-done.svg
+6
-0
dot-open.svg
src/assets/dot-open.svg
+6
-0
dot-overdue.svg
src/assets/dot-overdue.svg
+6
-0
BudgetTahunan.js
src/container/BudgetTahunan.js
+7
-7
CreateManagementDoc.js
src/container/DocumentManagement/CreateManagementDoc.js
+204
-199
HomePage.js
src/container/HomePage.js
+183
-137
No files found.
src/assets/Images.js
View file @
68e319a1
...
@@ -51,7 +51,10 @@ const Images = {
...
@@ -51,7 +51,10 @@ const Images = {
camera
:
require
(
'./camera.svg'
),
camera
:
require
(
'./camera.svg'
),
meeting
:
require
(
'./meeting.jpg'
),
meeting
:
require
(
'./meeting.jpg'
),
triputraBlack
:
require
(
'./triputra-black.jpg'
),
triputraBlack
:
require
(
'./triputra-black.jpg'
),
delete
:
require
(
'./delete.svg'
)
delete
:
require
(
'./delete.svg'
),
dotDone
:
require
(
'./dot-done.svg'
),
dotOverdue
:
require
(
'./dot-overdue.svg'
),
dotOpen
:
require
(
'./dot-open.svg'
),
}
}
...
...
src/assets/dot-done.svg
0 → 100644
View file @
68e319a1
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"10"
height=
"10"
viewBox=
"0 0 10 10"
>
<g
fill=
"none"
fill-rule=
"evenodd"
transform=
"translate(-7 -7)"
>
<path
d=
"M0 0H24V24H0z"
/>
<circle
cx=
"12"
cy=
"12"
r=
"4.5"
fill=
"#69D56E"
stroke=
"#4CAF51"
/>
</g>
</svg>
src/assets/dot-open.svg
0 → 100644
View file @
68e319a1
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"10"
height=
"10"
viewBox=
"0 0 10 10"
>
<g
fill=
"none"
fill-rule=
"evenodd"
transform=
"translate(-7 -7)"
>
<path
d=
"M0 0H24V24H0z"
/>
<circle
cx=
"12"
cy=
"12"
r=
"4.5"
fill=
"#D8D8D8"
stroke=
"#B1B1B1"
/>
</g>
</svg>
src/assets/dot-overdue.svg
0 → 100644
View file @
68e319a1
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"10"
height=
"10"
viewBox=
"0 0 10 10"
>
<g
fill=
"none"
fill-rule=
"evenodd"
transform=
"translate(-7 -7)"
>
<path
d=
"M0 0H24V24H0z"
/>
<circle
cx=
"12"
cy=
"12"
r=
"4.5"
fill=
"#F65A4C"
stroke=
"#CF392C"
/>
</g>
</svg>
src/container/BudgetTahunan.js
View file @
68e319a1
...
@@ -752,7 +752,7 @@ export default class BudgetTahunan extends Component {
...
@@ -752,7 +752,7 @@ export default class BudgetTahunan extends Component {
{
this
.
state
.
visibleBudgetTahunan
&&
(
{
this
.
state
.
visibleBudgetTahunan
&&
(
<
div
>
<
div
>
<
div
className
=
{
"main-color"
}
style
=
{{
height
:
78
,
display
:
'flex'
,
alignItems
:
'center'
,
paddingLeft
:
20
}}
>
<
div
className
=
{
"main-color"
}
style
=
{{
height
:
78
,
display
:
'flex'
,
alignItems
:
'center'
,
paddingLeft
:
20
}}
>
<
Typography
style
=
{{
fontSize
:
'16px'
,
color
:
'white'
}}
>
Master
Budget
Submission
&
CAT
Submission
<
/Typography
>
<
Typography
style
=
{{
fontSize
:
'16px'
,
color
:
'white'
}}
>
Master
Budget
&
CAT
Submission
<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
padding
:
20
,
width
:
'100%'
}}
>
<
Paper
style
=
{{
paddingTop
:
10
}}
>
<
Paper
style
=
{{
paddingTop
:
10
}}
>
...
@@ -890,27 +890,27 @@ export default class BudgetTahunan extends Component {
...
@@ -890,27 +890,27 @@ export default class BudgetTahunan extends Component {
<
/div
>
<
/div
>
{
this
.
state
.
isApprover
===
true
?
{
this
.
state
.
isApprover
===
true
?
this
.
state
.
lastStatus
===
'WAITING FOR REVIEW'
?
this
.
state
.
lastStatus
===
'WAITING FOR REVIEW'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
/div> : this.state.lastStatus === 'WAITING FOR YOUR APPROVAL'
?
<
/div> : this.state.lastStatus === 'WAITING FOR YOUR APPROVAL'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
/div> : nul
l
<
/div> : nul
l
:
:
this
.
state
.
lastStatus
===
'SUBMITTED'
?
this
.
state
.
lastStatus
===
'SUBMITTED'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
span
>
{
this
.
state
.
lastStatus
}
<
/span
>
<
/div>
:
<
/div>
:
this
.
state
.
lastStatus
===
'WAITING FOR APPROVAL'
?
this
.
state
.
lastStatus
===
'WAITING FOR APPROVAL'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
{
`
${
this
.
state
.
lastStatus
}
-
${
this
.
state
.
pic
}
`
}
<
/span
>
<
span
>
{
`
${
this
.
state
.
lastStatus
}
-
${
this
.
state
.
pic
}
`
}
<
/span
>
<
/div>
:
<
/div>
:
this
.
state
.
lastStatus
===
'REVISION'
?
this
.
state
.
lastStatus
===
'REVISION'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
NEED
REVISION
<
/span
>
<
span
>
NEED
REVISION
<
/span
>
<
/div>
:
<
/div>
:
this
.
state
.
lastStatus
===
'APPROVED'
?
this
.
state
.
lastStatus
===
'APPROVED'
?
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
}}
>
<
div
style
=
{{
width
:
'100%'
,
padding
:
'10px 20px'
,
backgroundColor
:
'yellow'
,
textAlign
:
'center'
,
marginTop
:
20
}}
>
<
span
>
APPROVED
<
/span
>
<
span
>
APPROVED
<
/span
>
<
/div> : nul
l
<
/div> : nul
l
}
}
...
...
src/container/DocumentManagement/CreateManagementDoc.js
View file @
68e319a1
...
@@ -44,7 +44,7 @@ export default class CreateManagementDoc extends Component {
...
@@ -44,7 +44,7 @@ export default class CreateManagementDoc extends Component {
messageAlert
:
''
,
messageAlert
:
''
,
fileType
:
''
,
fileType
:
''
,
konfirmasi
:
false
,
konfirmasi
:
false
,
docId
:
''
,
docId
:
''
,
sizeUpload
:
"1"
,
sizeUpload
:
"1"
,
disabledPeriode
:
false
disabledPeriode
:
false
}
}
...
@@ -59,7 +59,7 @@ export default class CreateManagementDoc extends Component {
...
@@ -59,7 +59,7 @@ export default class CreateManagementDoc extends Component {
console
.
log
(
this
.
props
.
name
)
console
.
log
(
this
.
props
.
name
)
}
}
getFileSize
(){
getFileSize
()
{
let
body
=
{
let
body
=
{
group
:
'MAX_FILE_SIZE'
,
group
:
'MAX_FILE_SIZE'
,
company_id
:
0
,
company_id
:
0
,
...
@@ -69,7 +69,7 @@ export default class CreateManagementDoc extends Component {
...
@@ -69,7 +69,7 @@ export default class CreateManagementDoc extends Component {
console
.
log
(
response
);
console
.
log
(
response
);
if
(
response
.
data
)
{
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
if
(
response
.
data
.
status
===
"success"
)
{
if
(
response
.
data
.
data
.
length
==
0
)
{
if
(
response
.
data
.
data
.
length
==
0
)
{
this
.
setState
({
this
.
setState
({
sizeUpload
:
"1"
sizeUpload
:
"1"
})
})
...
@@ -184,7 +184,7 @@ export default class CreateManagementDoc extends Component {
...
@@ -184,7 +184,7 @@ export default class CreateManagementDoc extends Component {
})
})
}
}
getMonth
(){
getMonth
()
{
api
.
create
().
getMonthTransaction
().
then
(
response
=>
{
api
.
create
().
getMonthTransaction
().
then
(
response
=>
{
let
dateNow
=
new
Date
let
dateNow
=
new
Date
// let bulan = format(dateNow, 'MMMM')
// let bulan = format(dateNow, 'MMMM')
...
@@ -226,19 +226,24 @@ export default class CreateManagementDoc extends Component {
...
@@ -226,19 +226,24 @@ export default class CreateManagementDoc extends Component {
let
fileObj
=
event
let
fileObj
=
event
let
length
=
event
.
name
.
split
(
"."
).
length
let
length
=
event
.
name
.
split
(
"."
).
length
let
fileType
=
event
.
name
.
split
(
"."
)[
length
-
1
]
let
fileType
=
event
.
name
.
split
(
"."
)[
length
-
1
]
ExcelRenderer
(
fileObj
,
(
err
,
resp
)
=>
{
console
.
log
(
fileType
)
// console.log(fileType)
if
(
fileType
===
'zip'
)
{
if
(
err
)
{
this
.
setState
({
file
:
event
,
fileType
:
String
(
fileType
)
})
console
.
log
(
err
);
}
else
{
}
ExcelRenderer
(
fileObj
,
(
err
,
resp
)
=>
{
else
{
console
.
log
(
fileType
)
this
.
setState
({
file
:
event
,
fileType
:
String
(
fileType
)
})
if
(
err
)
{
}
console
.
log
(
err
);
})
}
else
{
this
.
setState
({
file
:
event
,
fileType
:
String
(
fileType
)
})
}
})
}
}
}
validasi
()
{
validasi
()
{
if
(
this
.
state
.
disabledPeriode
===
true
){
if
(
this
.
state
.
disabledPeriode
===
true
)
{
if
(
R
.
isNil
(
this
.
state
.
getPerusahaan
))
{
if
(
R
.
isNil
(
this
.
state
.
getPerusahaan
))
{
this
.
setState
({
errorPerusahaan
:
true
,
msgErrorPerusahaan
:
'Company Cannot be Empty'
})
this
.
setState
({
errorPerusahaan
:
true
,
msgErrorPerusahaan
:
'Company Cannot be Empty'
})
}
else
if
(
R
.
isNil
(
this
.
state
.
getDocument
))
{
}
else
if
(
R
.
isNil
(
this
.
state
.
getDocument
))
{
...
@@ -254,17 +259,17 @@ export default class CreateManagementDoc extends Component {
...
@@ -254,17 +259,17 @@ export default class CreateManagementDoc extends Component {
formData
.
append
(
"extension"
,
this
.
state
.
fileType
);
formData
.
append
(
"extension"
,
this
.
state
.
fileType
);
formData
.
append
(
"documentPeriode"
,
null
);
formData
.
append
(
"documentPeriode"
,
null
);
formData
.
append
(
"documentMonth"
,
null
);
formData
.
append
(
"documentMonth"
,
null
);
this
.
setState
({
formData
},
()
=>
{
this
.
setState
({
formData
},
()
=>
{
this
.
props
.
createDocument
(
this
.
state
.
formData
,
this
.
props
.
setting_id
,
this
.
props
.
name
)
this
.
props
.
createDocument
(
this
.
state
.
formData
,
this
.
props
.
setting_id
,
this
.
props
.
name
)
})
})
var
object
=
{};
var
object
=
{};
formData
.
forEach
(
function
(
value
,
key
)
{
formData
.
forEach
(
function
(
value
,
key
)
{
object
[
key
]
=
value
;
object
[
key
]
=
value
;
});
});
var
json
=
JSON
.
stringify
(
object
);
var
json
=
JSON
.
stringify
(
object
);
console
.
log
(
object
)
console
.
log
(
object
)
}
}
}
else
{
}
else
{
if
(
R
.
isNil
(
this
.
state
.
getPerusahaan
))
{
if
(
R
.
isNil
(
this
.
state
.
getPerusahaan
))
{
this
.
setState
({
errorPerusahaan
:
true
,
msgErrorPerusahaan
:
'Company Cannot be Empty'
})
this
.
setState
({
errorPerusahaan
:
true
,
msgErrorPerusahaan
:
'Company Cannot be Empty'
})
...
@@ -272,7 +277,7 @@ export default class CreateManagementDoc extends Component {
...
@@ -272,7 +277,7 @@ export default class CreateManagementDoc extends Component {
this
.
setState
({
errorDocument
:
true
,
msgErrorDocument
:
'Category Cannot be Empty'
})
this
.
setState
({
errorDocument
:
true
,
msgErrorDocument
:
'Category Cannot be Empty'
})
}
else
if
(
R
.
isNil
(
this
.
state
.
periode
))
{
}
else
if
(
R
.
isNil
(
this
.
state
.
periode
))
{
this
.
setState
({
errorPeriode
:
true
,
msgErrorPeriode
:
'Period Cannot be Empty'
})
this
.
setState
({
errorPeriode
:
true
,
msgErrorPeriode
:
'Period Cannot be Empty'
})
}
else
if
(
R
.
isNil
(
this
.
state
.
monthId
))
{
}
else
if
(
R
.
isNil
(
this
.
state
.
monthId
))
{
this
.
setState
({
errorMonth
:
true
,
msgErrorMonth
:
'Month Cannot be Empty'
})
this
.
setState
({
errorMonth
:
true
,
msgErrorMonth
:
'Month Cannot be Empty'
})
}
}
else
if
(
R
.
isNil
(
this
.
state
.
file
))
{
else
if
(
R
.
isNil
(
this
.
state
.
file
))
{
...
@@ -286,15 +291,15 @@ export default class CreateManagementDoc extends Component {
...
@@ -286,15 +291,15 @@ export default class CreateManagementDoc extends Component {
formData
.
append
(
"extension"
,
this
.
state
.
fileType
);
formData
.
append
(
"extension"
,
this
.
state
.
fileType
);
formData
.
append
(
"documentPeriode"
,
this
.
state
.
periode
.
periode
);
formData
.
append
(
"documentPeriode"
,
this
.
state
.
periode
.
periode
);
formData
.
append
(
"documentMonth"
,
this
.
state
.
monthId
.
month_id
);
formData
.
append
(
"documentMonth"
,
this
.
state
.
monthId
.
month_id
);
this
.
setState
({
formData
},
()
=>
{
this
.
setState
({
formData
},
()
=>
{
this
.
props
.
createDocument
(
this
.
state
.
formData
,
this
.
props
.
setting_id
,
this
.
props
.
name
)
this
.
props
.
createDocument
(
this
.
state
.
formData
,
this
.
props
.
setting_id
,
this
.
props
.
name
)
})
})
}
}
}
}
}
}
deleteFile
(
e
){
deleteFile
(
e
)
{
this
.
setState
({
file
:
null
})
this
.
setState
({
file
:
null
})
}
}
closeAlert
()
{
closeAlert
()
{
...
@@ -304,196 +309,196 @@ export default class CreateManagementDoc extends Component {
...
@@ -304,196 +309,196 @@ export default class CreateManagementDoc extends Component {
render
()
{
render
()
{
return
(
return
(
<
div
>
<
div
>
<
div
className
=
"test app-popup-show"
>
<
div
className
=
"test app-popup-show"
>
<
div
className
=
"popup-content background-white border-radius"
style
=
{{
borderRadius
:
8
}}
>
<
div
className
=
"popup-content background-white border-radius"
style
=
{{
borderRadius
:
8
}}
>
<
div
className
=
"popup-panel grid grid-2x main-color"
style
=
{{
height
:
64
,
borderTopRightRadius
:
8
,
borderTopLeftRadius
:
8
}}
>
<
div
className
=
"popup-panel grid grid-2x main-color"
style
=
{{
height
:
64
,
borderTopRightRadius
:
8
,
borderTopLeftRadius
:
8
}}
>
<
div
className
=
"col-1"
style
=
{{
maxWidth
:
"inherit"
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
div
className
=
"col-1"
style
=
{{
maxWidth
:
"inherit"
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
div
className
=
"popup-title"
>
<
div
className
=
"popup-title"
>
<
span
style
=
{{
color
:
'#fff'
,
fontSize
:
16
,
fontWeight
:
'bold'
}}
>
Create
<
/span
>
<
span
style
=
{{
color
:
'#fff'
,
fontSize
:
16
,
fontWeight
:
'bold'
}}
>
Create
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"col-2 content-right"
style
=
{{
maxWidth
:
"inherit"
,
alignSelf
:
'center'
}}
>
<
div
className
=
"col-2 content-right"
style
=
{{
maxWidth
:
"inherit"
,
alignSelf
:
'center'
}}
>
<
button
<
button
type
=
"button"
type
=
"button"
className
=
"btn btn-circle btn-white"
className
=
"btn btn-circle btn-white"
onClick
=
{()
=>
this
.
props
.
onClickClose
()}
onClick
=
{()
=>
this
.
props
.
onClickClose
()}
>
>
<
img
src
=
{
Images
.
close
}
/
>
<
img
src
=
{
Images
.
close
}
/
>
<
/button
>
<
/button
>
<
/div
>
<
/div
>
<
div
className
=
"grid grid-2x grid-mobile-none gap-15px"
style
=
{{
paddingLeft
:
20
,
paddingRight
:
20
,
paddingTop
:
20
}}
>
<
div
className
=
"column-1"
>
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
<
Autocomplete
{...
this
.
state
.
perusahaan
}
// debug
clearOnEscape
id
=
"tipe"
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
getPerusahaan
:
newInputValue
},
()
=>
this
.
clearMessage
())}
renderInput
=
{(
params
)
=>
<
TextField
{...
params
}
error
=
{
this
.
state
.
errorPerusahaan
}
helperText
=
{
this
.
state
.
msgErrorPerusahaan
}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
label
=
"Company Name"
/>
}
value
=
{
this
.
state
.
getPerusahaan
}
/
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"column-2"
>
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
<
div
className
=
"grid grid-2x grid-mobile-none gap-15px"
style
=
{{
paddingLeft
:
20
,
paddingRight
:
20
,
paddingTop
:
20
}}
>
<
Autocomplete
<
div
className
=
"column-1"
>
{...
this
.
state
.
document
}
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
// debug
<
Autocomplete
clearOnEscape
{...
this
.
state
.
perusahaan
}
id
=
"tipe"
// debug
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
getDocument
:
newInputValue
},
clearOnEscape
()
=>
newInputValue
===
null
?
this
.
setState
({
disabledPeriode
:
false
})
id
=
"tipe"
:
newInputValue
.
document_category_name
===
'Manual Book TIA 4.0'
?
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
getPerusahaan
:
newInputValue
},
()
=>
this
.
clearMessage
())}
this
.
setState
({
disabledPeriode
:
true
},
()
=>
this
.
clearMessage
())
renderInput
=
{(
params
)
=>
:
this
.
setState
({
disabledPeriode
:
false
},
()
=>
this
.
clearMessage
())
<
TextField
{...
params
}
)}
error
=
{
this
.
state
.
errorPerusahaan
}
renderInput
=
{(
params
)
=>
helperText
=
{
this
.
state
.
msgErrorPerusahaan
}
<
TextField
{...
params
}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
error
=
{
this
.
state
.
errorDocument
}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
helperText
=
{
this
.
state
.
msgErrorDocument
}
label
=
"Company Name"
/>
}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
value
=
{
this
.
state
.
getPerusahaan
}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
/
>
label
=
"Category"
/>
}
<
/div
>
value
=
{
this
.
state
.
getDocument
}
/
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"column-2"
>
{
/* {String(this.props.name).includes('Manual Book TIA') ? false : ( */
}
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
{
this
.
state
.
disabledPeriode
===
false
?
<
Autocomplete
<
div
className
=
"column-1"
>
{...
this
.
state
.
document
}
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
// debug
<
Autocomplete
clearOnEscape
{...
this
.
state
.
listMonth
}
id
=
"tipe"
// debug
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
getDocument
:
newInputValue
},
clearOnEscape
()
=>
newInputValue
===
null
?
this
.
setState
({
disabledPeriode
:
false
})
id
=
"month"
:
newInputValue
.
document_category_name
===
'Manual Book TIA 4.0'
?
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
monthId
:
newInputValue
},
()
=>
this
.
clearMessage
())}
this
.
setState
({
disabledPeriode
:
true
},
()
=>
this
.
clearMessage
())
style
=
{{
width
:
250
}}
:
this
.
setState
({
disabledPeriode
:
false
},
()
=>
this
.
clearMessage
())
renderInput
=
{(
params
)
=>
)}
<
TextField
{...
params
}
label
=
"Period Month"
margin
=
"normal"
style
=
{{
marginTop
:
7
}}
renderInput
=
{(
params
)
=>
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
<
TextField
{...
params
}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
error
=
{
this
.
state
.
errorDocument
}
error
=
{
this
.
state
.
errorMonth
}
helperText
=
{
this
.
state
.
msgErrorDocument
}
helperText
=
{
this
.
state
.
msgErrorMonth
}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
/>
}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
value
=
{
this
.
state
.
monthId
}
label
=
"Category"
/>
}
/
>
value
=
{
this
.
state
.
getDocument
}
/
>
<
/div
>
<
/div
>
<
/div
>
{
/* {String(this.props.name).includes('Manual Book TIA') ? false : ( */
}
{
this
.
state
.
disabledPeriode
===
false
?
<
div
className
=
"column-1"
>
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
<
Autocomplete
{...
this
.
state
.
listMonth
}
// debug
clearOnEscape
id
=
"month"
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
monthId
:
newInputValue
},
()
=>
this
.
clearMessage
())}
style
=
{{
width
:
250
}}
renderInput
=
{(
params
)
=>
<
TextField
{...
params
}
label
=
"Period Month"
margin
=
"normal"
style
=
{{
marginTop
:
7
}}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
error
=
{
this
.
state
.
errorMonth
}
helperText
=
{
this
.
state
.
msgErrorMonth
}
/>
}
value
=
{
this
.
state
.
monthId
}
/
>
<
/div
>
<
/div
>
// )}
// {String(this.props.name).includes('Manual Book TIA') ? false : (
:
true
}
{
this
.
state
.
disabledPeriode
===
false
?
<
div
className
=
"column-2"
>
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
<
Autocomplete
{...
this
.
state
.
listPeriode
}
// debug
clearOnEscape
id
=
"periode"
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
periode
:
newInputValue
},
()
=>
this
.
clearMessage
())}
style
=
{{
width
:
250
}}
renderInput
=
{(
params
)
=>
<
TextField
{...
params
}
label
=
"Period Year"
margin
=
"normal"
style
=
{{
marginTop
:
7
}}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
error
=
{
this
.
state
.
errorPeriode
}
helperText
=
{
this
.
state
.
msgErrorPeriode
}
/>
}
value
=
{
this
.
state
.
periode
}
/
>
<
/div
>
<
/div
>
// )}
:
true
}
<
/div
>
<
/div
>
// )}
<
div
style
=
{{
paddingLeft
:
30
,
paddingRight
:
30
,
paddingTop
:
10
}}
>
// {String(this.props.name).includes('Manual Book TIA') ? false : (
<
UploadFile
:
true
}
type
=
{
this
.
state
.
uploadStatus
}
{
this
.
state
.
disabledPeriode
===
false
?
percentage
=
{
this
.
state
.
percentage
}
<
div
className
=
"column-2"
>
result
=
{
this
.
state
.
result
}
<
div
style
=
{{
padding
:
10
,
borderRadius
:
5
}}
>
acceptedFiles
=
{[
"xls"
,
"xlsx"
,
"pdf"
,
"PDF"
,
"docx"
,
"doc"
,
"pptx"
,
"ppt"
,
"ods"
,
"odf"
,
"zip"
]}
<
Autocomplete
intent
=
{
"management"
}
{...
this
.
state
.
listPeriode
}
onHandle
=
{(
dt
)
=>
{
// debug
this
.
fileHandler
(
dt
)
clearOnEscape
this
.
setState
({
uploadStatus
:
'idle'
,
percentage
:
'0'
})
id
=
"periode"
}}
onChange
=
{(
event
,
newInputValue
)
=>
this
.
setState
({
periode
:
newInputValue
},
()
=>
this
.
clearMessage
())}
onDelete
=
{(
e
)
=>
{
style
=
{{
width
:
250
}}
this
.
deleteFile
(
e
)
renderInput
=
{(
params
)
=>
}}
<
TextField
{...
params
}
label
=
"Period Year"
margin
=
"normal"
style
=
{{
marginTop
:
7
}}
onUpload
=
{()
=>
alert
(
'sukses'
)}
InputProps
=
{{
...
params
.
InputProps
,
style
:
{
fontSize
:
11
}
}}
sizeUpload
=
{
Number
(
this
.
state
.
sizeUpload
)}
InputLabelProps
=
{{
style
:
{
fontSize
:
11
,
color
:
'#7e8085'
}
}}
/
>
error
=
{
this
.
state
.
errorPeriode
}
helperText
=
{
this
.
state
.
msgErrorPeriode
}
/>
}
value
=
{
this
.
state
.
periode
}
/
>
<
/div
>
<
/div
>
<
/div
>
// )}
<
div
className
=
"margin-top-10px"
style
=
{{
paddingLeft
:
30
,
paddingRight
:
30
,
borderRadius
:
5
,
paddingBottom
:
20
}}
>
:
true
}
<
TextField
<
/div
>
style
=
{{
width
:
'100%'
}}
<
div
style
=
{{
paddingLeft
:
30
,
paddingRight
:
30
,
paddingTop
:
10
}}
>
id
=
"description"
<
UploadFile
label
=
"Description"
type
=
{
this
.
state
.
uploadStatus
}
value
=
{
this
.
state
.
decription
}
percentage
=
{
this
.
state
.
percentage
}
inputProps
=
{{
result
=
{
this
.
state
.
result
}
min
:
0
,
acceptedFiles
=
{[
"xls"
,
"xlsx"
,
"pdf"
,
"PDF"
,
"docx"
,
"doc"
,
"pptx"
,
"ppt"
,
"ods"
,
"odf"
]}
style
:
{
intent
=
{
"management"
}
fontSize
:
11
onHandle
=
{(
dt
)
=>
{
}
this
.
fileHandler
(
dt
)
}}
this
.
setState
({
uploadStatus
:
'idle'
,
percentage
:
'0'
})
}}
onDelete
=
{(
e
)
=>
{
this
.
deleteFile
(
e
)
}}
onUpload
=
{()
=>
alert
(
'sukses'
)}
sizeUpload
=
{
Number
(
this
.
state
.
sizeUpload
)}
/
>
<
/div
>
<
div
className
=
"margin-top-10px"
style
=
{{
paddingLeft
:
30
,
paddingRight
:
30
,
borderRadius
:
5
,
paddingBottom
:
20
}}
>
<
TextField
style
=
{{
width
:
'100%'
}}
id
=
"description"
label
=
"Description"
value
=
{
this
.
state
.
decription
}
inputProps
=
{{
min
:
0
,
style
:
{
fontSize
:
11
}
}}
InputLabelProps
=
{{
InputLabelProps
=
{{
style
:
{
style
:
{
fontSize
:
11
,
fontSize
:
11
,
color
:
'#7e8085'
color
:
'#7e8085'
}
}
}}
}}
name
=
"Description"
name
=
"Description"
onChange
=
{(
e
)
=>
{
onChange
=
{(
e
)
=>
{
this
.
setState
({
this
.
setState
({
description
:
e
.
target
.
value
description
:
e
.
target
.
value
})
})
this
.
clearMessage
()
this
.
clearMessage
()
}}
}}
error
=
{
this
.
state
.
errorDesc
}
error
=
{
this
.
state
.
errorDesc
}
helperText
=
{
this
.
state
.
msgErrorDesc
}
helperText
=
{
this
.
state
.
msgErrorDesc
}
>
<
/TextField
>
<
/div
>
<
div
className
=
"border-top grid grid-2x"
style
=
{{
height
:
56
,
backgroundColor
:
'#f5f5f5'
,
paddingLeft
:
20
,
paddingRight
:
20
}}
>
<
div
className
=
"column-1"
style
=
{{
alignSelf
:
'center'
}}
>
<
button
type
=
"button"
onClick
=
{()
=>
this
.
props
.
onClickClose
()}
>
>
<
div
style
=
{{
width
:
102
,
height
:
30
,
border
:
'solid 1px #354960'
,
borderRadius
:
5
,
alignItems
:
'center'
,
display
:
'flex'
,
justifyContent
:
'center'
}}
>
<
/TextField
>
<
span
style
=
{{
color
:
'#354960'
,
fontSize
:
11
}}
>
Cancel
<
/span
>
<
/div
>
<
/button
>
<
/div
>
<
/div
>
<
div
className
=
"column-2"
style
=
{{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
alignItems
:
'center'
}}
>
<
div
className
=
"border-top grid grid-2x"
style
=
{{
height
:
56
,
backgroundColor
:
'#f5f5f5'
,
paddingLeft
:
20
,
paddingRight
:
20
}}
>
<
button
<
div
className
=
"column-1"
style
=
{{
alignSelf
:
'center'
}}
>
type
=
"button"
<
button
onClick
=
{()
=>
this
.
validasi
()}
type
=
"button"
>
onClick
=
{()
=>
this
.
props
.
onClickClose
()}
<
div
style
=
{{
width
:
102
,
height
:
30
,
backgroundColor
:
'#354960'
,
borderRadius
:
5
,
alignItems
:
'center'
,
display
:
'flex'
,
justifyContent
:
'center'
}}
>
>
<
span
style
=
{{
color
:
'#fff'
,
fontSize
:
11
}}
>
Save
<
/span
>
<
div
style
=
{{
width
:
102
,
height
:
30
,
border
:
'solid 1px #354960'
,
borderRadius
:
5
,
alignItems
:
'center'
,
display
:
'flex'
,
justifyContent
:
'center'
}}
>
<
/div
>
<
span
style
=
{{
color
:
'#354960'
,
fontSize
:
11
}}
>
Cancel
<
/span
>
<
/button
>
<
/div
>
<
/button
>
<
/div
>
<
div
className
=
"column-2"
style
=
{{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
alignItems
:
'center'
}}
>
<
button
type
=
"button"
onClick
=
{()
=>
this
.
validasi
()}
>
<
div
style
=
{{
width
:
102
,
height
:
30
,
backgroundColor
:
'#354960'
,
borderRadius
:
5
,
alignItems
:
'center'
,
display
:
'flex'
,
justifyContent
:
'center'
}}
>
<
span
style
=
{{
color
:
'#fff'
,
fontSize
:
11
}}
>
Save
<
/span
>
<
/div
>
<
/button
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
Snackbar
open
=
{
this
.
state
.
alert
}
autoHideDuration
=
{
6000
}
onClose
=
{()
=>
this
.
closeAlert
()}
>
<
Alert
onClose
=
{()
=>
this
.
closeAlert
()}
severity
=
{
this
.
state
.
tipeAlert
}
>
{
this
.
state
.
messageAlert
}
<
/Alert
>
<
/Snackbar
>
<
/div
>
<
/div
>
<
Snackbar
open
=
{
this
.
state
.
alert
}
autoHideDuration
=
{
6000
}
onClose
=
{()
=>
this
.
closeAlert
()}
>
<
Alert
onClose
=
{()
=>
this
.
closeAlert
()}
severity
=
{
this
.
state
.
tipeAlert
}
>
{
this
.
state
.
messageAlert
}
<
/Alert
>
<
/Snackbar
>
<
/div
>
<
/div
>
<
/div
>
)
)
}
}
...
...
src/container/HomePage.js
View file @
68e319a1
import
React
,
{
Component
}
from
'react'
;
import
React
,
{
Component
}
from
'react'
;
import
{
Typography
,
MuiThemeProvider
,
createMuiTheme
}
from
'@material-ui/core'
;
import
{
Typography
,
MuiThemeProvider
,
createMuiTheme
,
Paper
}
from
'@material-ui/core'
;
import
MUIDataTable
from
"mui-datatables"
;
import
MUIDataTable
from
"mui-datatables"
;
import
Images
from
'../assets/Images'
;
import
Images
from
'../assets/Images'
;
import
DonutChart
from
'react-d3-donut'
;
import
DonutChart
from
'react-d3-donut'
;
...
@@ -15,7 +15,13 @@ class HomePage extends Component {
...
@@ -15,7 +15,13 @@ class HomePage extends Component {
super
(
props
)
super
(
props
)
this
.
state
=
{
this
.
state
=
{
userData
:
null
,
userData
:
null
,
listDashboard
:
[]
listDashboard
:
[],
listMasterBudget
:
[
{
nama
:
'Triputra Agro Persada'
,
status
:
'complete'
},
{
nama
:
'Puninar Infinite Raya'
,
status
:
'complete'
},
{
nama
:
'Dharma Group'
,
status
:
'overdue'
},
{
nama
:
'Daya Group'
,
status
:
'open'
},
]
}
}
}
}
...
@@ -30,7 +36,15 @@ class HomePage extends Component {
...
@@ -30,7 +36,15 @@ class HomePage extends Component {
}
}
}
}
})
})
this
.
getDashboard
()
api
.
create
().
checkApprover
().
then
(
response
=>
{
console
.
log
(
response
);
if
(
response
.
data
.
data
.
is_approver
===
true
)
{
this
.
setState
({
isApprover
:
true
},
()
=>
this
.
getDashboard
())
}
else
{
this
.
setState
({
isApprover
:
false
})
}
})
}
}
componentDidUpdate
()
{
componentDidUpdate
()
{
...
@@ -64,7 +78,7 @@ class HomePage extends Component {
...
@@ -64,7 +78,7 @@ class HomePage extends Component {
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Link
to
=
{{
<
Link
to
=
{{
pathname
:
`/home/master-budget/`
,
pathname
:
`/home/master-budget/`
,
state
:
{
state
:
{
userType
:
'approver'
,
userType
:
'approver'
,
rawData
:
this
.
state
.
rawData
[
tableMeta
.
rowIndex
]
rawData
:
this
.
state
.
rawData
[
tableMeta
.
rowIndex
]
}
}
...
@@ -133,157 +147,189 @@ class HomePage extends Component {
...
@@ -133,157 +147,189 @@ class HomePage extends Component {
}]
}]
return
(
return
(
<
div
style
=
{{
flex
:
1
,
backgroundColor
:
'#f8f8f8'
}}
>
<
div
style
=
{{
flex
:
1
,
backgroundColor
:
'#f8f8f8'
}}
>
<
div
className
=
{
"main-color"
}
style
=
{{
height
:
78
,
flex
:
1
,
display
:
'flex'
,
alignItems
:
'center'
,
paddingLeft
:
20
}}
>
{
this
.
state
.
isApprover
===
true
?
<
Typography
style
=
{{
fontSize
:
'24px'
,
color
:
'white'
}}
>
{
this
.
state
.
userData
===
null
?
''
:
`Welcome,
${
this
.
state
.
userData
.
fullname
}
!`
}
<
/Typography
>
<
/div
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Waiting
Your
Submission
<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
>
<
div
>
<
MuiThemeProvider
theme
=
{
getMuiTheme
()}
>
<
div
className
=
{
"main-color"
}
style
=
{{
height
:
78
,
flex
:
1
,
display
:
'flex'
,
alignItems
:
'center'
,
paddingLeft
:
20
}}
>
<
MUIDataTable
<
Typography
style
=
{{
fontSize
:
'24px'
,
color
:
'white'
}}
>
{
this
.
state
.
userData
===
null
?
''
:
`Welcome,
${
this
.
state
.
userData
.
fullname
}
!`
}
<
/Typography
>
data
=
{
this
.
state
.
listDashboard
}
<
/div
>
columns
=
{
columns
}
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
options
=
{
options
}
<
div
style
=
{{
display
:
'flex'
}}
>
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Waiting
Your
Submission
<
/Typography
>
<
/MuiThemeProvider
>
<
/div
>
<
div
style
=
{{
marginTop
:
20
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Status
Laporan
<
/Typography
>
<
div
style
=
{{
marginTop
:
10
,
display
:
'flex'
}}
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
marginRight
:
25
}}
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
}}
>
Budget
Tahunan
-
2021
<
/Typography
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
DonutChart
innerRadius
=
{
70
}
outerRadius
=
{
100
}
transition
=
{
true
}
pieClass
=
"pie1"
displayTooltip
=
{
true
}
strokeWidth
=
{
3
}
data
=
{
dataChart
}
/
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
red
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
marginRight
:
25
}}
>
<
/div
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
}}
>
Laporan
Bulanan
-
Oct
2020
<
/Typography
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
div
>
<
DonutChart
<
MuiThemeProvider
theme
=
{
getMuiTheme
()}
>
innerRadius
=
{
70
}
<
MUIDataTable
outerRadius
=
{
100
}
data
=
{
this
.
state
.
listDashboard
}
transition
=
{
true
}
columns
=
{
columns
}
pieClass
=
"pie5"
options
=
{
options
}
displayTooltip
=
{
true
}
strokeWidth
=
{
3
}
data
=
{
dataChart2
}
/
>
/
>
<
/
div
>
<
/
MuiThemeProvider
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
div
style
=
{{
marginTop
:
20
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Status
Laporan
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
div
style
=
{{
marginTop
:
10
,
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
marginRight
:
25
}}
>
<
img
src
=
{
Images
.
red
}
/
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
}}
>
Budget
Tahunan
-
2021
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
/div
>
<
DonutChart
<
/div
>
innerRadius
=
{
70
}
<
div
style
=
{{
width
:
'33%'
}}
>
outerRadius
=
{
100
}
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
transition
=
{
true
}
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
pieClass
=
"pie1"
<
div
style
=
{{
display
:
'flex'
}}
>
displayTooltip
=
{
true
}
<
img
src
=
{
Images
.
green
}
/
>
strokeWidth
=
{
3
}
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
data
=
{
dataChart
}
/
>
<
/div
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
red
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
marginRight
:
25
}}
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
}}
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
}}
>
Laporan
Bulanan
-
Oct
2020
<
/Typography
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
,
height
:
71
}}
>
Lainnya
<
/Typography
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
DonutChart
<
DonutChart
innerRadius
=
{
70
}
innerRadius
=
{
70
}
outerRadius
=
{
100
}
outerRadius
=
{
100
}
transition
=
{
true
}
transition
=
{
true
}
pieClass
=
"pie5"
pieClass
=
"pie2"
displayTooltip
=
{
true
}
displayTooltip
=
{
true
}
strokeWidth
=
{
3
}
strokeWidth
=
{
3
}
data
=
{
dataChart2
}
data
=
{
dataChart3
}
/
>
/
>
<
/div
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
red
}
/
>
<
img
src
=
{
Images
.
red
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
div
style
=
{{
width
:
280
,
height
:
400
,
padding
:
20
,
backgroundColor
:
'white'
,
borderRadius
:
6
,
border
:
'solid 1px #c4c4c4'
,
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
<
Typography
style
=
{{
color
:
'#4b4b4b'
,
fontSize
:
'24px'
,
fontWeight
:
'bold'
,
height
:
71
}}
>
Lainnya
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
DonutChart
<
img
src
=
{
Images
.
green
}
/
>
innerRadius
=
{
70
}
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
outerRadius
=
{
100
}
transition
=
{
true
}
pieClass
=
"pie2"
displayTooltip
=
{
true
}
strokeWidth
=
{
3
}
data
=
{
dataChart3
}
/
>
<
/div
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
width
:
'100%'
,
marginTop
:
10
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Submit
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
92.8
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
red
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>-
0.6
%<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
On
Time
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
6.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.7
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
div
style
=
{{
width
:
'33%'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'15px'
,
textAlign
:
'left'
}}
>
Overdue
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'20px'
,
textAlign
:
'left'
}}
>
1.1
%<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
Images
.
green
}
/
>
<
img
src
=
{
Images
.
green
}
/
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'14px'
,
textAlign
:
'left'
}}
>
0.1
%<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
:
<
div
>
<
div
className
=
{
"main-color"
}
style
=
{{
height
:
78
,
flex
:
1
,
display
:
'flex'
,
alignItems
:
'center'
,
paddingLeft
:
20
}}
>
<
Typography
style
=
{{
fontSize
:
'24px'
,
color
:
'white'
}}
>
{
this
.
state
.
userData
===
null
?
''
:
`Welcome,
${
this
.
state
.
userData
.
fullname
}
!`
}
<
/Typography
>
<
/div
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Task
That
Must
be
Done
<
/Typography
>
<
/div
>
<
/div
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
Paper
style
=
{{
width
:
400
,
padding
:
20
,
borderRadius
:
10
}}
>
<
Typography
style
=
{{
fontWeight
:
'bold'
,
textDecorationLine
:
'underline'
}}
>
Master
Budget
-
Oct
2020
(
1
/
4
)
<
/Typography
>
{
this
.
state
.
listMasterBudget
.
map
((
item
,
index
)
=>
{
return
(
<
div
style
=
{{
display
:
'flex'
,
justifyContent
:
'space-between'
,
marginTop
:
10
,
paddingLeft
:
10
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
img
src
=
{
item
.
status
===
"overdue"
?
Images
.
dotOverdue
:
item
.
status
===
"open"
?
Images
.
dotOpen
:
Images
.
dotDone
}
/
>
<
Typography
style
=
{{
marginLeft
:
10
,
color
:
'#5198ea'
,
fontSize
:
13
}}
>
{
item
.
nama
}
<
/Typography
>
<
/div
>
{
item
.
status
===
'overdue'
&&
(
<
div
style
=
{{
backgroundColor
:
'#f65a4c'
,
paddingRight
:
5
,
paddingLeft
:
5
,
borderRadius
:
5
,
alignSelf
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
11
,
color
:
'#fff'
}}
>
Overdue
<
/Typography
>
<
/div
>
)}
<
/div
>
)
})}
<
/Paper
>
<
/div
>
<
/div
>
}
<
/div
>
<
/div
>
);
);
}
}
...
...
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