Showing
3 changed files
with
106 additions
and
12 deletions
| ... | @@ -38,7 +38,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -38,7 +38,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 38 | }).catch(err => { | 38 | }).catch(err => { |
| 39 | Alert.onError(err.response.data.error, () => null); | 39 | Alert.onError(err.response.data.error, () => null); |
| 40 | }) | 40 | }) |
| 41 | - } catch(e) { | 41 | + } catch(e : any) { |
| 42 | Alert.onError(e.response.data.error, () => null); | 42 | Alert.onError(e.response.data.error, () => null); |
| 43 | } | 43 | } |
| 44 | }; | 44 | }; |
| ... | @@ -55,11 +55,16 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -55,11 +55,16 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 55 | setModalUp(true); | 55 | setModalUp(true); |
| 56 | } | 56 | } |
| 57 | }) | 57 | }) |
| 58 | - } catch(e) { | 58 | + } catch(e : any) { |
| 59 | Alert.onError(e.response.data.error, () => setModalUp(false)); | 59 | Alert.onError(e.response.data.error, () => setModalUp(false)); |
| 60 | } | 60 | } |
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | + const onViewLicenseDetail = async (url : string) => { | ||
| 64 | + const licensePage : any = window.open(url); | ||
| 65 | + licensePage.focus(); | ||
| 66 | + }; | ||
| 67 | + | ||
| 63 | //회원 가입 수락 | 68 | //회원 가입 수락 |
| 64 | const onAcceptRequest = () => { | 69 | const onAcceptRequest = () => { |
| 65 | if(validate === 'W') { | 70 | if(validate === 'W') { |
| ... | @@ -78,7 +83,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -78,7 +83,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 78 | Alert.onSuccess('회원 등록이 완료되었습니다.', fetchData); | 83 | Alert.onSuccess('회원 등록이 완료되었습니다.', fetchData); |
| 79 | } | 84 | } |
| 80 | }) | 85 | }) |
| 81 | - } catch(e) { | 86 | + } catch(e : any) { |
| 82 | Alert.onError(e.response.data.error, () => setModalUp(false)); | 87 | Alert.onError(e.response.data.error, () => setModalUp(false)); |
| 83 | } | 88 | } |
| 84 | }; | 89 | }; |
| ... | @@ -96,7 +101,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -96,7 +101,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 96 | Alert.onSuccess('회원 등록이 취소되었습니다.', fetchData); | 101 | Alert.onSuccess('회원 등록이 취소되었습니다.', fetchData); |
| 97 | } | 102 | } |
| 98 | }) | 103 | }) |
| 99 | - } catch(e) { | 104 | + } catch(e : any) { |
| 100 | Alert.onError(e.response.data.error, () => setModalUp(false)); | 105 | Alert.onError(e.response.data.error, () => setModalUp(false)); |
| 101 | } | 106 | } |
| 102 | }; | 107 | }; |
| ... | @@ -118,7 +123,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -118,7 +123,7 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 118 | setValidate('W'); | 123 | setValidate('W'); |
| 119 | }); | 124 | }); |
| 120 | }) | 125 | }) |
| 121 | - } catch(e) { | 126 | + } catch(e : any) { |
| 122 | Alert.onError(e.response.data, () => { | 127 | Alert.onError(e.response.data, () => { |
| 123 | setModalUp(false); | 128 | setModalUp(false); |
| 124 | setValidate('W'); | 129 | setValidate('W'); |
| ... | @@ -138,6 +143,8 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { | ... | @@ -138,6 +143,8 @@ const ManagerMenuContainer = (props : ManagerMenuProps) => { |
| 138 | modalUp = {modalUp} | 143 | modalUp = {modalUp} |
| 139 | setModalUp = {setModalUp} | 144 | setModalUp = {setModalUp} |
| 140 | onViewDetailReq = {onViewDetailReq} | 145 | onViewDetailReq = {onViewDetailReq} |
| 146 | + onViewLicenseDetail = {onViewLicenseDetail} | ||
| 147 | + | ||
| 141 | validate = {validate} | 148 | validate = {validate} |
| 142 | onValidate = {onValidate} | 149 | onValidate = {onValidate} |
| 143 | 150 | ... | ... |
| ... | @@ -11,6 +11,8 @@ interface ManagerMenuProps { | ... | @@ -11,6 +11,8 @@ interface ManagerMenuProps { |
| 11 | modalUp : boolean; | 11 | modalUp : boolean; |
| 12 | setModalUp : any; | 12 | setModalUp : any; |
| 13 | onViewDetailReq : (arg0 : string) => void; | 13 | onViewDetailReq : (arg0 : string) => void; |
| 14 | + onViewLicenseDetail : (arg0 : string) => void; | ||
| 15 | + | ||
| 14 | validate : string; | 16 | validate : string; |
| 15 | onValidate : () => void; | 17 | onValidate : () => void; |
| 16 | 18 | ||
| ... | @@ -32,9 +34,23 @@ const ManagerMenuPresenter = (props : ManagerMenuProps) => { | ... | @@ -32,9 +34,23 @@ const ManagerMenuPresenter = (props : ManagerMenuProps) => { |
| 32 | <styled.ModalBodyWrapper> | 34 | <styled.ModalBodyWrapper> |
| 33 | <styled.ModalBodyLeftAndRight> | 35 | <styled.ModalBodyLeftAndRight> |
| 34 | <styled.ModalInfoWrapper> | 36 | <styled.ModalInfoWrapper> |
| 35 | - <styled.ModalInfoExplain>의사 자격 번호</styled.ModalInfoExplain> | 37 | + <styled.DoctorLicenseViewWrapper> |
| 38 | + <styled.ModalInfoExplain> | ||
| 39 | + 의사 자격 번호 | ||
| 40 | + </styled.ModalInfoExplain> | ||
| 41 | + <styled.DoctorLicenseViewButton onClick = {() => props.onViewLicenseDetail(props.doctorDetail.info.doctorLicense)}> | ||
| 42 | + 자격정보 확인 | ||
| 43 | + </styled.DoctorLicenseViewButton> | ||
| 44 | + </styled.DoctorLicenseViewWrapper> | ||
| 45 | + <styled.ModalInfoNotice> | ||
| 46 | + * 자격 정보 확인 버튼을 눌러 정보를 확인하세요. | ||
| 47 | + <br/>* 정보 확인은 15분간 유효합니다. | ||
| 48 | + <br/>* 확인한 면허 번호를 입력 후 검증하세요. | ||
| 49 | + </styled.ModalInfoNotice> | ||
| 36 | <styled.ModalInfo> | 50 | <styled.ModalInfo> |
| 37 | - {props.doctorDetail.info.doctorLicense} | 51 | + <styled.DoctorLicenseViewInput |
| 52 | + placeholder = '의사 면허 번호' | ||
| 53 | + /> | ||
| 38 | <styled.ValidateButton | 54 | <styled.ValidateButton |
| 39 | onClick = {props.onValidate} | 55 | onClick = {props.onValidate} |
| 40 | disabled = {props.validate !== 'W'} | 56 | disabled = {props.validate !== 'W'} | ... | ... |
| ... | @@ -75,25 +75,96 @@ export const ModalInfoExplain = styled.div ` | ... | @@ -75,25 +75,96 @@ export const ModalInfoExplain = styled.div ` |
| 75 | 75 | ||
| 76 | letter-spacing : 1px; | 76 | letter-spacing : 1px; |
| 77 | 77 | ||
| 78 | + display : flex; | ||
| 79 | + flex-direction : row; | ||
| 80 | + justify-content : center; | ||
| 81 | + align-items : center; | ||
| 82 | + | ||
| 78 | border : none; | 83 | border : none; |
| 79 | border-bottom : 1px solid #337DFF; | 84 | border-bottom : 1px solid #337DFF; |
| 80 | 85 | ||
| 81 | color : #337DFF; | 86 | color : #337DFF; |
| 82 | - padding : 2px 5px; | 87 | + padding : 2px 1px; |
| 83 | `; | 88 | `; |
| 84 | 89 | ||
| 85 | export const ModalInfo = styled.div ` | 90 | export const ModalInfo = styled.div ` |
| 86 | - margin : 5px 0 20px 0; | 91 | + margin : 5px 0 10px 0; |
| 87 | - font-size : 20px; | 92 | + font-size : 13px; |
| 88 | - font-weight : 700; | 93 | + font-weight : 600; |
| 94 | + | ||
| 95 | + letter-spacing : 1px; | ||
| 89 | 96 | ||
| 90 | display : flex; | 97 | display : flex; |
| 91 | flex-direction : row; | 98 | flex-direction : row; |
| 92 | align-items : center; | 99 | align-items : center; |
| 93 | `; | 100 | `; |
| 94 | 101 | ||
| 102 | +export const ModalInfoNotice = styled.div ` | ||
| 103 | + font-size : 11px; | ||
| 104 | + color : #bbb; | ||
| 105 | + | ||
| 106 | + font-weight : 400; | ||
| 107 | + | ||
| 108 | + letter-spacing : 0px; | ||
| 109 | + | ||
| 110 | + margin : 5px 0 0px 0; | ||
| 111 | +`; | ||
| 112 | + | ||
| 113 | +export const DoctorLicenseViewWrapper = styled.div ` | ||
| 114 | + display : flex; | ||
| 115 | + flex-direction : row; | ||
| 116 | + | ||
| 117 | + justify-content : center; | ||
| 118 | + align-items : center; | ||
| 119 | + | ||
| 120 | + border : none; | ||
| 121 | + background-color : transparent; | ||
| 122 | +`; | ||
| 123 | + | ||
| 124 | +export const DoctorLicenseViewButton = styled.button ` | ||
| 125 | + margin : 5px 0 0 7px; | ||
| 126 | + | ||
| 127 | + border : 1px solid #343434; | ||
| 128 | + border-radius : 3px; | ||
| 129 | + background-color : #EAF2FF; | ||
| 130 | + padding : 2px 5px; | ||
| 131 | + | ||
| 132 | + display : flex; | ||
| 133 | + flex-direction : row; | ||
| 134 | + justify-content : center; | ||
| 135 | + align-items : center; | ||
| 136 | + | ||
| 137 | + cursor : pointer; | ||
| 138 | + transition : .25s all; | ||
| 139 | + | ||
| 140 | + &:hover { | ||
| 141 | + border : 1px solid #337DFF; | ||
| 142 | + background-color : #337DFF; | ||
| 143 | + color : #fff; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + font-size : 11px; | ||
| 147 | +`; | ||
| 148 | + | ||
| 149 | +export const DoctorLicenseViewInput = styled.input ` | ||
| 150 | + padding : 2px 1px; | ||
| 151 | + | ||
| 152 | + font-size : 11px; | ||
| 153 | + letter-spacing : 1px; | ||
| 154 | + color : #343434; | ||
| 155 | + | ||
| 156 | + border : none; | ||
| 157 | + border-bottom : 1px solid #343434; | ||
| 158 | + | ||
| 159 | + &::placeholder { | ||
| 160 | + color : #ccc; | ||
| 161 | + } | ||
| 162 | +`; | ||
| 163 | + | ||
| 95 | export const ValidateButton = styled.button<{validate : string}> ` | 164 | export const ValidateButton = styled.button<{validate : string}> ` |
| 96 | - margin : 0 0 0 15px; | 165 | + font-size : 11px; |
| 166 | + | ||
| 167 | + margin : 0 0 0 5px; | ||
| 97 | padding : 2px 5px; | 168 | padding : 2px 5px; |
| 98 | 169 | ||
| 99 | border-radius : 3px; | 170 | border-radius : 3px; | ... | ... |
-
Please register or login to post a comment