Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
students
eue
Commits
bcab544f
Commit
bcab544f
authored
Aug 20, 2021
by
KangMin An
Browse files
Update : Chart 시간 표시 수정. 예측 온도 전달.
parent
ea3ce4bf
Changes
3
Hide whitespace changes
Inline
Side-by-side
client/src/components/ChartTabs.js
View file @
bcab544f
...
...
@@ -56,14 +56,13 @@ function ChartTabs() {
let
date
=
new
Date
(
new
Date
(
userWeather
[
i
].
collected_at
).
getTime
()
);
let
hour
=
date
.
getHours
();
let
minute
=
date
.
getMinutes
();
let
f_date
=
`
${
hour
<
10
?
`0
${
hour
}
`
:
hour
}
:
${
minute
<
10
?
`0
${
minute
}
`
:
minute
}
`
;
tempLabelArray
.
push
(
`
${
date
.
getHours
()}
:
${
date
.
getMinutes
()
<
10
?
`0
${
date
.
getMinutes
()}
`
:
date
.
getMinutes
()
}
`
);
tempLabelArray
.
push
(
f_date
);
labelArray
.
push
(
`
${
date
.
getHours
()}
:
${
date
.
getMinutes
()}
`
);
}
for
(
let
j
=
0
;
j
<
userWeatherPredict
.
length
;
j
++
)
{
...
...
@@ -71,15 +70,18 @@ function ChartTabs() {
let
date
=
new
Date
(
new
Date
(
userWeatherPredict
[
j
].
collected_at
).
getTime
()
);
tempLabelArray
.
push
(
`
${
date
.
getHours
()}
:
${
date
.
getMinutes
()
<
10
?
`0
${
date
.
getMinutes
()}
`
:
date
.
getMinutes
()
}
`
);
let
hour
=
date
.
getHours
();
let
minute
=
date
.
getMinutes
();
let
f_date
=
`
${
hour
<
10
?
`0
${
hour
}
`
:
hour
}
:
${
minute
<
10
?
`0
${
minute
}
`
:
minute
}
`
;
tempLabelArray
.
push
(
f_date
);
}
console
.
log
(
tempLabelArray
);
console
.
log
(
userWeather
);
console
.
log
(
userWeatherPredict
);
setTemp
(
tempArray
);
setHumi
(
humiArray
);
setPress
(
pressArray
);
...
...
@@ -107,23 +109,18 @@ function ChartTabs() {
windspeedArray
.
push
(
outWeather
[
i
].
wind_speed
);
let
date
=
new
Date
(
new
Date
(
outWeather
[
i
].
collected_at
).
getTime
());
tempLabelArray
.
push
(
`
${
date
.
getHours
()}
:
${
date
.
getMinutes
()
<
10
?
`0
${
date
.
getMinutes
()}
`
:
date
.
getMinutes
()
}
`
);
labelArray
.
push
(
`
${
date
.
getHours
()}
:
${
date
.
getMinutes
()
<
10
?
`0
${
date
.
getMinutes
()}
`
:
date
.
getMinutes
()
}
`
);
let
hour
=
date
.
getHours
();
let
minute
=
date
.
getMinutes
();
let
f_date
=
`
${
hour
<
10
?
`0
${
hour
}
`
:
hour
}
:
${
minute
<
10
?
`0
${
minute
}
`
:
minute
}
`
;
tempLabelArray
.
push
(
f_date
);
labelArray
.
push
(
f_date
);
}
console
.
log
(
tempLabelArray
);
setTemp
(
tempArray
);
setHumi
(
humiArray
);
setPress
(
pressArray
);
...
...
client/src/components/LocCodeChange.js
View file @
bcab544f
import
React
,
{
useEffect
,
useState
}
from
'
react
'
import
'
../App.css
'
import
{
Form
,
Button
,
Row
,
Col
,
Card
}
from
'
react-bootstrap
'
;
import
axios
from
'
axios
'
;
import
Swal
from
'
sweetalert2
'
import
{
callUserInfo
}
from
'
../utils/CheckDB
'
;
import
{
routesClient
}
from
'
../routesClient
'
;
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
"
../App.css
"
;
import
{
Form
,
Button
,
Row
,
Col
,
Card
}
from
"
react-bootstrap
"
;
import
axios
from
"
axios
"
;
import
Swal
from
"
sweetalert2
"
;
import
{
callUserInfo
}
from
"
../utils/CheckDB
"
;
import
{
routesClient
}
from
"
../routesClient
"
;
function
LocCodeChange
()
{
const
cardstyled
=
{
margin
:
'
auto
'
,
padding
:
'
1em
'
,
display
:
'
flex
'
,
justifyContent
:
'
center
'
,
width
:
'
100%
'
,
borderWidth
:
'
3px
'
,
borderRadius
:
'
20px
'
,
borderColor
:
'
rgb(110, 189, 142)
'
,
color
:
'
#04AB70
'
}
const
inboxstyled
=
{
display
:
'
flex
'
,
flexDirection
:
'
column
'
,
maxWidth
:
'
90%
'
,
justifyContent
:
'
center
'
,
margin
:
'
auto
'
,
padding
:
'
0.5em
'
,
color
:
'
black
'
}
const
btnstyled2
=
{
background
:
'
white
'
,
width
:
'
50%
'
,
borderWidth
:
'
2px
'
,
color
:
'
rgb(110, 189, 142)
'
,
borderColor
:
'
rgba(195, 195, 195, 0.753)
'
,
const
cardstyled
=
{
margin
:
"
auto
"
,
padding
:
"
1em
"
,
display
:
"
flex
"
,
justifyContent
:
"
center
"
,
width
:
"
100%
"
,
borderWidth
:
"
3px
"
,
borderRadius
:
"
20px
"
,
borderColor
:
"
rgb(110, 189, 142)
"
,
color
:
"
#04AB70
"
,
};
const
inboxstyled
=
{
display
:
"
flex
"
,
flexDirection
:
"
column
"
,
maxWidth
:
"
90%
"
,
justifyContent
:
"
center
"
,
margin
:
"
auto
"
,
padding
:
"
0.5em
"
,
color
:
"
black
"
,
};
const
btnstyled2
=
{
background
:
"
white
"
,
width
:
"
50%
"
,
borderWidth
:
"
2px
"
,
color
:
"
rgb(110, 189, 142)
"
,
borderColor
:
"
rgba(195, 195, 195, 0.753)
"
,
};
const
[
does
,
setDoes
]
=
useState
([]);
// DOE
const
[
sggs
,
setSggs
]
=
useState
([]);
// SGG
const
[
emds
,
setEmds
]
=
useState
([]);
// EMD
const
[
sggsArray
,
setSggsArray
]
=
useState
([]);
// DOE 와 SGG 내의 code_doe 같을 때 => sgg 값
const
[
emdsArray
,
setEmdsArray
]
=
useState
([]);
// SGG 과 EMD 내의 code_sgg && DOE 와 EMD 내의 code_doe => emd 값
const
doeSelect
=
document
.
getElementById
(
"
select-doe
"
);
const
sggSelect
=
document
.
getElementById
(
"
select-sgg
"
);
const
emdSelect
=
document
.
getElementById
(
"
select-emd
"
);
// Local code 받아오기
useEffect
(()
=>
{
async
function
getLocCode
()
{
const
res
=
await
axios
.
get
(
routesClient
.
localdata
);
const
local_codes
=
res
.
data
.
contents
.
loc_code
;
setDoes
(
local_codes
.
DOE
);
setSggs
(
local_codes
.
SGG
);
setEmds
(
local_codes
.
EMD
);
}
const
[
does
,
setDoes
]
=
useState
([])
// DOE
const
[
sggs
,
setSggs
]
=
useState
([])
// SGG
const
[
emds
,
setEmds
]
=
useState
([])
// EMD
const
[
sggsArray
,
setSggsArray
]
=
useState
([])
// DOE 와 SGG 내의 code_doe 같을 때 => sgg 값
const
[
emdsArray
,
setEmdsArray
]
=
useState
([])
// SGG 과 EMD 내의 code_sgg && DOE 와 EMD 내의 code_doe => emd 값
const
doeSelect
=
document
.
getElementById
(
'
select-doe
'
)
const
sggSelect
=
document
.
getElementById
(
'
select-sgg
'
)
const
emdSelect
=
document
.
getElementById
(
'
select-emd
'
)
// Local code 받아오기
useEffect
(()
=>
{
async
function
getLocCode
()
{
const
res
=
await
axios
.
get
(
routesClient
.
localdata
)
const
local_codes
=
res
.
data
.
contents
.
loc_code
setDoes
(
local_codes
.
DOE
)
setSggs
(
local_codes
.
SGG
)
setEmds
(
local_codes
.
EMD
)
}
getLocCode
()
},
[])
function
selectLocal
()
{
sggs
.
map
(
function
(
sggvalue
)
{
if
(
Number
(
doeSelect
.
value
)
===
sggvalue
[
'
code_doe
'
])
{
setSggsArray
(
sggvalue
[
'
sgg
'
])
getLocCode
();
},
[]);
function
selectLocal
()
{
sggs
.
map
(
function
(
sggvalue
)
{
if
(
Number
(
doeSelect
.
value
)
===
sggvalue
[
"
code_doe
"
])
{
setSggsArray
(
sggvalue
[
"
sgg
"
]);
}
});
emds
.
map
(
function
(
emdvalue
)
{
if
(
Number
(
sggSelect
.
value
)
===
emdvalue
[
"
code_sgg
"
]
&&
Number
(
doeSelect
.
value
)
===
emdvalue
[
"
code_doe
"
]
)
{
setEmdsArray
(
emdvalue
[
"
emd
"
]);
}
});
}
async
function
handleSubmit
(
event
)
{
event
.
preventDefault
();
if
(
doeSelect
.
options
[
doeSelect
.
selectedIndex
].
text
!==
"
도
"
&&
sggSelect
.
options
[
sggSelect
.
selectedIndex
].
text
!==
"
시군구
"
&&
emdSelect
.
options
[
emdSelect
.
selectedIndex
].
text
!==
"
읍면동
"
)
{
const
saveCodeEmd
=
emdSelect
.
value
;
await
axios
.
post
(
routesClient
.
edit
,
{
loc_code
:
saveCodeEmd
});
// loccal code 수정
callUserInfo
().
then
((
res
)
=>
{
console
.
log
(
"
loc_code
"
,
res
[
0
].
loc_code
);
if
(
res
[
0
].
loc_code
)
{
Swal
.
fire
({
title
:
"
변경되었습니다.
"
,
text
:
"
축하드립니다!👏
"
,
icon
:
"
success
"
,
customClass
:
"
swal-wide
"
,
confirmButtonText
:
"
확인
"
,
}).
then
((
res
)
=>
{
if
(
res
.
isConfirmed
)
{
window
.
location
.
reload
();
}
else
{
window
.
location
.
reload
();
}
})
emds
.
map
(
function
(
emdvalue
)
{
if
((
Number
(
sggSelect
.
value
)
===
emdvalue
[
'
code_sgg
'
])
&&
(
Number
(
doeSelect
.
value
)
===
emdvalue
[
'
code_doe
'
]))
{
setEmdsArray
(
emdvalue
[
'
emd
'
])
}
})
}
async
function
handleSubmit
(
event
)
{
event
.
preventDefault
()
if
(
doeSelect
.
options
[
doeSelect
.
selectedIndex
].
text
!==
'
도
'
&&
sggSelect
.
options
[
sggSelect
.
selectedIndex
].
text
!==
'
시군구
'
&&
emdSelect
.
options
[
emdSelect
.
selectedIndex
].
text
!==
'
읍면동
'
)
{
const
saveCodeEmd
=
emdSelect
.
value
await
axios
.
post
(
routesClient
.
edit
,
{
loc_code
:
saveCodeEmd
})
// loccal code 수정
callUserInfo
().
then
((
res
)
=>
{
console
.
log
(
'
loc_code
'
,
res
[
0
].
loc_code
)
if
(
res
[
0
].
loc_code
)
{
Swal
.
fire
({
title
:
'
변경되었습니다.
'
,
text
:
'
축하드립니다!👏
'
,
icon
:
'
success
'
,
customClass
:
'
swal-wide
'
,
confirmButtonText
:
'
확인
'
,
}).
then
((
res
)
=>
{
if
(
res
.
isConfirmed
)
{
window
.
location
.
replace
(
'
/
'
)
}
else
{
window
.
location
.
replace
(
'
/
'
)
}
})
}
})
}
else
{
Swal
.
fire
({
title
:
'
실패
'
,
text
:
'
전부 선택해주세요
'
,
icon
:
'
error
'
,
customClass
:
'
swal-wide
'
,
confirmButtonText
:
'
확인
'
})
});
}
});
}
else
{
Swal
.
fire
({
title
:
"
실패
"
,
text
:
"
전부 선택해주세요
"
,
icon
:
"
error
"
,
customClass
:
"
swal-wide
"
,
confirmButtonText
:
"
확인
"
,
});
}
return
(
<
Row
className
=
'
text-center w-100 my-2
'
>
<
Card
style
=
{
cardstyled
}
>
<
Card
.
Title
id
=
'
impactTitle
'
>
지역
코드
<
/Card.Title
>
<
Card
.
Subtitle
style
=
{{
fontWeight
:
'
lighter
'
}}
>
본인의
지역을
선택해주세요
<
/Card.Subtitle
>
<
hr
/>
<
Card
.
Text
className
=
'
m-0
'
>
<
Form
style
=
{
inboxstyled
}
onSubmit
=
{
handleSubmit
}
>
<
Row
md
=
{
12
}
xs
=
{
12
}
className
=
'
m-auto w-100 d-flex justify-content-center
'
style
=
{{
padding
:
'
0
'
,
display
:
'
flex
'
,
justifyContent
:
'
center
'
,
width
:
'
100%
'
}}
>
<
Form
.
Group
className
=
'
m-auto w-100
'
style
=
{
btnstyled2
}
onChange
=
{
selectLocal
}
>
<
Row
className
=
'
m-auto pb-3
'
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
'
2px
'
}}
>
<
Form
.
Control
as
=
'
select
'
size
=
"
sm
"
id
=
'
select-doe
'
required
>
<
option
selected
disabled
>
도
<
/option
>
{
does
.
map
((
doevalue
)
=>
(
<
option
value
=
{
`
${
doevalue
[
"
code_doe
"
]}
`
}
>
{
`
${
doevalue
[
"
name_doe
"
]}
`
}
<
/option
>
))
}
<
/Form.Control
>
<
/Col
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
'
2px
'
}}
>
<
Form
.
Control
as
=
'
select
'
size
=
"
sm
"
id
=
'
select-sgg
'
required
>
<
option
selected
disabled
>
시군구
<
/option
>
{
sggsArray
.
map
((
sggvalue
)
=>
(
<
option
value
=
{
`
${
sggvalue
[
"
code_sgg
"
]}
`
}
>
{
`
${
sggvalue
[
"
name_sgg
"
]}
`
}
<
/option
>
))
}
<
/Form.Control
>
<
/Col
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
'
2px
'
}}
>
<
Form
.
Control
as
=
'
select
'
size
=
"
sm
"
id
=
'
select-emd
'
required
>
<
option
selected
disabled
>
읍면동
<
/option
>
{
emdsArray
.
map
((
emdvalue
)
=>
(
<
option
value
=
{
`
${
emdvalue
[
"
code_emd
"
]}
`
}
>
{
`
${
emdvalue
[
"
name_emd
"
]}
`
}
<
/option
>
))
}
<
/Form.Control
>
<
/Col
>
<
/Row
>
<
/Form.Group
>
<
Button
variant
=
'
light
'
style
=
{
btnstyled2
}
type
=
'
submit
'
>
확인
<
/Button
>
<
/Row
>
<
/Form
>
<
/Card.Text
>
<
/Card
>
<
/Row
>
)
}
return
(
<
Row
className
=
"
text-center w-100 my-2
"
>
<
Card
style
=
{
cardstyled
}
>
<
Card
.
Title
id
=
"
impactTitle
"
>
지역
코드
<
/Card.Title
>
<
Card
.
Subtitle
style
=
{{
fontWeight
:
"
lighter
"
}}
>
본인의
지역을
선택해주세요
<
/Card.Subtitle
>
<
hr
/>
<
Card
.
Text
className
=
"
m-0
"
>
<
Form
style
=
{
inboxstyled
}
onSubmit
=
{
handleSubmit
}
>
<
Row
md
=
{
12
}
xs
=
{
12
}
className
=
"
m-auto w-100 d-flex justify-content-center
"
style
=
{{
padding
:
"
0
"
,
display
:
"
flex
"
,
justifyContent
:
"
center
"
,
width
:
"
100%
"
,
}}
>
<
Form
.
Group
className
=
"
m-auto w-100
"
style
=
{
btnstyled2
}
onChange
=
{
selectLocal
}
>
<
Row
className
=
"
m-auto pb-3
"
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
"
2px
"
}}
>
<
Form
.
Control
as
=
"
select
"
size
=
"
sm
"
id
=
"
select-doe
"
required
>
<
option
selected
disabled
>
도
<
/option
>
{
does
.
map
((
doevalue
)
=>
(
<
option
value
=
{
`
${
doevalue
[
"
code_doe
"
]}
`
}
>
{
`
${
doevalue
[
"
name_doe
"
]}
`
}
<
/option
>
))}
<
/Form.Control
>
<
/Col
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
"
2px
"
}}
>
<
Form
.
Control
as
=
"
select
"
size
=
"
sm
"
id
=
"
select-sgg
"
required
>
<
option
selected
disabled
>
시군구
<
/option
>
{
sggsArray
.
map
((
sggvalue
)
=>
(
<
option
value
=
{
`
${
sggvalue
[
"
code_sgg
"
]}
`
}
>
{
`
${
sggvalue
[
"
name_sgg
"
]}
`
}
<
/option
>
))}
<
/Form.Control
>
<
/Col
>
<
Col
md
=
{
4
}
xs
=
{
4
}
style
=
{{
padding
:
"
2px
"
}}
>
<
Form
.
Control
as
=
"
select
"
size
=
"
sm
"
id
=
"
select-emd
"
required
>
<
option
selected
disabled
>
읍면동
<
/option
>
{
emdsArray
.
map
((
emdvalue
)
=>
(
<
option
value
=
{
`
${
emdvalue
[
"
code_emd
"
]}
`
}
>
{
`
${
emdvalue
[
"
name_emd
"
]}
`
}
<
/option
>
))}
<
/Form.Control
>
<
/Col
>
<
/Row
>
<
/Form.Group
>
<
Button
variant
=
"
light
"
style
=
{
btnstyled2
}
type
=
"
submit
"
>
확인
<
/Button
>
<
/Row
>
<
/Form
>
<
/Card.Text
>
<
/Card
>
<
/Row
>
);
}
export
default
LocCodeChange
;
\ No newline at end of file
export
default
LocCodeChange
;
server/src/controllers/dataController.js
View file @
bcab544f
...
...
@@ -156,13 +156,15 @@ export const getUserWeatherData = async (req, res) => {
pyprocess
.
stdout
.
on
(
"
data
"
,
(
data
)
=>
{
let
weather_predict
=
[];
const
str_result
=
data
.
toString
();
let
temp_predict
=
str_result
.
trim
();
let
temp_predict
=
data
.
toString
();
temp_predict
=
temp_predict
.
replace
(
"
]]
"
,
""
);
temp_predict
=
temp_predict
.
replace
(
"
[[
"
,
""
);
temp_predict
=
temp_predict
.
trim
();
temp_predict
=
temp_predict
.
split
(
"
"
);
temp_predict
=
temp_predict
.
filter
((
val
)
=>
val
.
length
>
0
);
let
date_10m
=
new
Date
(
weather
[
weather
.
length
-
1
][
"
collected_at
"
]);
date_10m
.
setMinutes
(
date_10m
.
getMinutes
()
+
10
);
...
...
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