LocCodeChange.js 7.84 KB
Newer Older
Spark's avatar
Spark committed
1
import React, { useEffect, useState } from 'react'
Spark's avatar
Spark committed
2
import '../App.css'
Spark's avatar
Spark committed
3
import { Form, Button, Row, Col, Card } from 'react-bootstrap';
Spark's avatar
Spark committed
4
import axios from 'axios';
Spark's avatar
Spark committed
5
import Swal from 'sweetalert2'
6
import { callUserInfo } from '../utils/CheckDB';
Spark's avatar
Spark committed
7

Spark's avatar
Spark committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

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',
26
        maxWidth: '90%',
Spark's avatar
Spark committed
27
28
        justifyContent: 'center',
        margin: 'auto',
Spark's avatar
Spark committed
29
30
        padding: '0.5em',
        color: 'black'
Spark's avatar
Spark committed
31
32
33
34
    }

    const btnstyled2 = {
        background: 'white',
Spark's avatar
Spark committed
35
        width: '50%',
Spark's avatar
Spark committed
36
37
38
39
40
        borderWidth: '2px',
        color: 'rgb(110, 189, 142)',
        borderColor: 'rgba(195, 195, 195, 0.753)',
    }

Spark's avatar
Spark committed
41
42
43
44
45
46
47
48
49
50
    const [does, setDoes] = useState([])
    const [sggs, setSggs] = useState([])
    const [emds, setEmds] = useState([])
    const [sggsArray, setSggsArray] = useState([])
    const [emdsArray, setEmdsArray] = useState([])

    const doeSelect = document.getElementById('select-doe')
    const sggSelect = document.getElementById('select-sgg')
    const emdSelect = document.getElementById('select-emd')

51
    const saveCodeEmd = localStorage.getItem('code_emd')
Spark's avatar
Spark committed
52

53
    async function handleClickLoc() {
Spark's avatar
Spark committed
54
        if (doeSelect.options[doeSelect.selectedIndex].text !== '' && sggSelect.options[sggSelect.selectedIndex].text !== '시군구' && emdSelect.options[emdSelect.selectedIndex].text !== '읍면동') {
55
56
57
58
59
60
61
62
63

            await axios.post('/api/edit-profile', { loc_code: saveCodeEmd })
                .then(function (response) {
                    console.log('loc', response);
                })
            callUserInfo().then((res) => {
                console.log('11', res[0])
            })

Spark's avatar
Spark committed
64
65
66
67
68
69
70
            localStorage.setItem('code_doe', doeSelect.value)
            localStorage.setItem('name_doe', doeSelect.options[doeSelect.selectedIndex].text)
            localStorage.setItem('code_sgg', sggSelect.value)
            localStorage.setItem('name_sgg', sggSelect.options[sggSelect.selectedIndex].text)
            localStorage.setItem('code_emd', emdSelect.value)
            localStorage.setItem('name_emd', emdSelect.options[emdSelect.selectedIndex].text)

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
            // if (localStorage.getItem('name_emd')) {
            //     Swal.fire({
            //         title: '변경되었습니다.',
            //         text: '축하드립니다!👏',
            //         icon: 'success',
            //         customClass: 'swal-wide',
            //         confirmButtonText: '확인',
            //     }).then((res) => {
            //         if (res.isConfirmed) {
            //             window.location.reload()
            //         }
            //         else {
            //             window.location.reload()
            //         }
            //     })
            // }
Spark's avatar
Spark committed
87
        }
88
89
90
91
92
93
94
95
96
        // else {
        //     Swal.fire({
        //         title: '실패',
        //         text: '전부 선택해주세요',
        //         icon: 'error',
        //         customClass: 'swal-wide',
        //         confirmButtonText: '확인'
        //     })
        // }
Spark's avatar
Spark committed
97

Spark's avatar
Spark committed
98
99
    }

100

Spark's avatar
Spark committed
101
    async function getLocCode() {
102
        const res = await axios.get("/api/data/loccode")
Spark's avatar
Spark committed
103
        const local_codes = res.data.locCodes
Spark's avatar
Spark committed
104

Spark's avatar
Spark committed
105
106
        setDoes(local_codes.DOE)
        setSggs(local_codes.SGG)
Spark's avatar
Spark committed
107
        setEmds(local_codes.EMD)
Spark's avatar
Spark committed
108
    }
Spark's avatar
Spark committed
109

Spark's avatar
Spark committed
110
111
112
    useEffect(() => {
        getLocCode()
    }, [])
Spark's avatar
Spark committed
113

Spark's avatar
Spark committed
114
115
116
117
118
119
120
121

    function selectLocal() {
        sggs.map(function (sggvalue) {
            if (doeSelect.value == sggvalue['code_doe']) {
                setSggsArray(sggvalue['sgg'])
            }
        })
        emds.map(function (emdvalue) {
122
            if (sggSelect.value == emdvalue['code_sgg'] && doeSelect.value == emdvalue['code_doe']) {
Spark's avatar
Spark committed
123
124
                setEmdsArray(emdvalue['emd'])
            }
125
126
127
            else {
                return false
            }
Spark's avatar
Spark committed
128
129
130
131
        })
    }


Spark's avatar
Spark committed
132

Spark's avatar
Spark committed
133
134
135
136
    return (
        <Row className='text-center w-100 my-2'>
            <Card style={cardstyled}>
                <Card.Title id='impactTitle'>
Spark's avatar
Spark committed
137
                    지역 코드
Spark's avatar
Spark committed
138
139
                </Card.Title>
                <Card.Subtitle style={{ fontWeight: 'lighter' }}>
Spark's avatar
Spark committed
140
                    본인의 지역을 선택해주세요
Spark's avatar
Spark committed
141
142
                </Card.Subtitle>
                <hr />
Spark's avatar
Spark committed
143
                <Card.Text className='m-0'>
144
                    <Form style={inboxstyled} onChange={selectLocal}>
Spark's avatar
Spark committed
145
146
                        <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}>
147
                                <Row className='m-auto pb-3'>
Spark's avatar
Spark committed
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
                                    <Col md={4} xs={4} style={{ padding: '2px' }}>

                                        <Form.Control as='select' size="sm" id='select-doe'>
                                            <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'>
                                            <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'>
                                            <option selected disabled>읍면동</option>
                                            {
                                                emdsArray.map((emdvalue) => (
                                                    <option value={`${emdvalue["code_emd"]}`}>
                                                        {`${emdvalue["name_emd"]}`}
                                                    </option>
                                                ))
                                            }
                                        </Form.Control>
                                    </Col>
                                </Row>
                            </Form.Group>
Spark's avatar
Spark committed
189
190
                        </Row>
                    </Form>
Spark's avatar
Spark committed
191
192
193
194
195
196
                    <Row className='d-flex justify-content-center'>
                        <Button
                            variant='light' style={btnstyled2} onClick={handleClickLoc}>
                            확인
                        </Button>
                    </Row>
Spark's avatar
Spark committed
197
198
199
200
201
202
203
                </Card.Text>
            </Card>
        </Row>
    )
}

export default LocCodeChange;