Преглед изворни кода

Merge branch 'databank' of http://wcollector.idatabank.com:5230/dbs289/LifeCenter into databank

huiwonseo пре 4 година
родитељ
комит
9c5047a542

+ 3 - 0
src/main/java/com/lemon/lifecenter/common/LifeCenterInterCeptor.java

@@ -55,6 +55,9 @@ public class LifeCenterInterCeptor extends HandlerInterceptorAdapter {
         }
         
         if( url.contains( "/mobile" ) ) {
+            if (url.contains("/mobile/helper")) {
+                return true;
+            }
             if( !url.equals( "/mobile/login" ) && !url.equals( "/mobile/check" ) && !url.equals("/mobile/logout") ) {
                 if( sesMId == null ) {
                     if (request.getParameter("redirectUrl") == null) {

+ 7 - 0
src/main/java/com/lemon/lifecenter/controller/MobileLoginController.java

@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.MessageSource;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -58,6 +59,12 @@ public class MobileLoginController extends LifeCenterController {
     @Autowired
     MessageSource messageSource;
     
+    @GetMapping("/helper")
+    public ModelAndView helper() {
+        ModelAndView mv = setMobileMV("login/helper");
+        return mv;
+    }
+    
     @RequestMapping("/login")
     public ModelAndView login(@RequestParam(value="redirectUrl", required=false, defaultValue="") String redirectUrl) {
         CenterInfoDTO dto = new CenterInfoDTO();

+ 123 - 0
src/main/webapp/WEB-INF/jsp/mobile/login/helper.jsp

@@ -0,0 +1,123 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>자가치료자 환자용 모바일 앱 설치 안내</title>
+
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" integrity="sha512-NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w==" crossorigin="anonymous" referrerpolicy="no-referrer">
+    
+    <link rel="stylesheet" href="/resources/css/mobile/helper.css">
+</head>
+<body>
+    <div id="container">
+        <h1>자가치료자 환자용 모바일 앱 설치 안내</h1>
+    
+        <dl class="enquiry">
+            <dt>
+                자가치료자 환자용 모바일 앱 사용 문의 : <a href="tel:1661-8308">1661-8308</a> <span>(운영 시간 : 평일 및 주말·휴일 09시 ~18시)</span>
+            </dt>
+            <dd>상담원이 통화 중인 경우 통화가 가능한 전화번호를 남겨주시면, 상담원이 순차적으로 회신드립니다.</dd>
+        </dl>
+    
+        <h2>환자용 모바일 앱 로그인 방법</h2>
+        <div class="logininfo">
+            <dl>
+                <dt>안드로이드폰</dt>
+                <dd>
+                    <img src="/resources/images/mobile/helper/ico-playstore.png" alt=""> 선택 후, <strong>'생활치료센터'</strong> 검색해서
+                    <span><img src="images/ico-app-google.png" alt=""> 앱 설치</span>
+                    <p>또는 설치 주소 : <a href="https://bit.ly/3hHWJ7w" target="_blank">https://bit.ly/3hHWJ7w</a></p>
+                </dd>
+            </dl>
+            <dl>
+                <dt>아이폰</dt>
+                <dd>
+                    <img src="/resources/images/mobile/helper/ico-appstore.png" alt="">선택 후, <strong>'생활치료센터'</strong> 검색해서
+                    <span><img src="images/ico-app-apple.png" alt=""> 앱 설치</span>
+                    <p>또는 설치 주소 : <a href="https://apple.co/3wLpGUv" target="_blank">https://apple.co/3wLpGUv</a></p>
+                </dd>
+            </dl>
+        </div>
+    
+        <div class="hr"></div>
+
+        <h2>환자용 모바일 앱 로그인 방법</h2>
+        <div class="thumbox">
+            <div class="img"><img src="/resources/images/mobile/helper/img01-1.png" alt=""></div>
+            <div class="cont">
+                <ol>
+                    <li>전체를 선택 후 제일 하단의 <strong>"자가치료자"</strong> 선택</li>
+                    <li>자가치료 관할 시·도 전담팀 선택</li>
+                    <li>관할 시·도 전담팀으로부터 전달받은 <strong>동호실번호 또는 아이디 입력</strong></li>
+                    <li>환자 본인의 <strong>생년월일 8자리 입력</strong>(예시:19710101)</li>
+                </ol>
+            </div>
+        </div>
+    
+        <div class="hr"></div>
+    
+        <h2>환자용 모바일 앱 주요 기능 사용 방법</h2>
+    
+        <h3>앱 초기 화면</h3>
+        <div class="thumbox">
+            <div class="img"><img src="/resources/images/mobile/helper/img02-1.png" alt=""></div>
+            <div class="cont">
+                <ol>
+                    <li>관할 시·도 전담팀 명 및 본인의 이름 표시</li>
+                    <li>체온, 산소포화도, 혈압 등 본인의 건강 정보를 기록</li>
+                    <li>본인의 문진 정보 입력 (최초 1회만 입력)</li>
+                    <li>본인이 입력한 건강정보기록 및 문진 정보 조회</li>
+                    <li>온라인 화상으로 의료진과 1:1 비대면 진료</li>
+                    <li>메시지 수신 내용 조회</li>
+                    <li>관할 시·도 전담팀 응급 전화 번호로 연결</li>
+                </ol>
+            </div>
+        </div>
+    
+        <h3>건강정보기록(활력징후) 화면</h3>
+        <div class="thumbox">
+            <div class="img"><img src="/resources/images/mobile/helper/img02-2.png" alt=""></div>
+            <div class="cont">
+                <ol>
+                    <li>현재 본인의 체온을 숫자로 입력</li>
+                    <li>기록하기 선택하면 입력한 정보가 기록으로 저장됨</li>
+                </ol>
+                <p>* 기록하기를 선택하면 기록이 정상적으로 저장되었다는 알림창이 생성되고 확인을 누르면 체온 입력창으로 돌아옴</p>
+            </div>
+        </div>
+    
+        <h3>건강정보기록(임상증상) 화면</h3>
+        <div class="thumbox">
+            <div class="img"><img src="/resources/images/mobile/helper/img02-3.png" alt=""></div>
+            <div class="cont">
+                <ol>
+                    <li>현재 본인에게 나타나는 증상이 있다면 모두 체크<br>(증상이 없는 경우에는 입력하지 않아도 됨)</li>
+                    <li>기록하기 선택하면 입력한 정보가 기록으로 저장됨</li>
+                </ol>
+                <p>* 기록하기를 선택하면 기록이 정상적으로 저장되었다는 알림창이 생성되고 확인을 누르면 임상증상 입력창으로 돌아옴</p>
+            </div>
+        </div>
+    
+        <h3>건강정보기록(정신건강) 화면</h3>
+        <div class="thumbox">
+            <div class="img"><img src="/resources/images/mobile/helper/img02-4.png" alt=""></div>
+            <div class="cont">
+                <ol>
+                    <li>정신건강 자가진단에 대한 체크 (모든 항목 필수 입력)</li>
+                    <li>기록하기 선택하면 입력한 정보가 기록으로 저장됨</li>
+                </ol>
+                <p>* 정신건강 자가진단은 <strong>입소일, 입소일 + 5일 총 2회 실시</strong></p>
+            </div>
+        </div>
+    </div>
+</body>
+</html>

+ 72 - 0
src/main/webapp/resources/css/mobile/helper.css

@@ -0,0 +1,72 @@
+body {padding: 0 24px; font-family: 'Noto Sans KR'; font-size: 0.938rem; color: #000;}
+
+#container {margin: 0 auto; max-width: 720px;}
+
+h1 {margin: 0; padding: 1.25rem 0; font-size: 1.5rem; line-height: 1.25; text-align: center;}
+h2 {position: relative; margin: 1.875rem 0 1.25rem; padding: 0 0 0 12px; font-size: 1.25rem; line-height: 1.5;}
+h2::before {content: " "; position: absolute; top: 0.35em; left: 0; width: 4px; height: 0.9em; background-color: #B0DBEC;}
+h3 {position: relative; margin: 1.25rem 0 1rem; padding: 0 0 0 30px;}
+h3::before {content: " "; position: absolute; top: 0.325em; left: 10px; width: 0; height: 0; border-style: solid; border-width: 7px 5.5px 0 5.5px; border-color: #000 transparent transparent transparent;}
+
+.hr {margin: 1.875rem 0; height: 1px; background-color: #F1F1F1;}
+
+.enquiry {margin: 0; padding: 1rem 1.25rem; border-radius: 8px; background-color: #FFDD00; line-height: 1.35;}
+.enquiry dt {margin: 0; padding: 0; font-weight: 700; font-size: 1rem;}
+.enquiry dt a {color: #004FCF;}
+.enquiry dt span {font-weight: normal;}
+.enquiry dd {margin: 10px 0 0 0; padding: 0;}
+
+.logininfo {display: flex; line-height: 1.5;}
+.logininfo dl {flex: 1 1 0px; margin: 0 1.25rem 0 0; padding: 1rem 1.25rem; border: 1px solid #5787C9; border-radius: 8px; background-color: #005AF50C;}
+.logininfo dl:nth-child(2n) {margin-right: 0;}
+.logininfo dl dt {font-weight: 700; font-size: 1rem; color: #325C96;}
+.logininfo dl dd {margin: 1rem 0 0 0; padding: 0;}
+.logininfo dl dd span {display: block; margin-top: 10px;}
+.logininfo dl dd img {position: relative; top: -0.1em; margin-right: 3px; height: 24px; vertical-align: middle;}
+.logininfo dl dd p {margin: 1.625rem 0 0;}
+.logininfo dl dd p a {color: #004FCF; text-decoration: underline;}
+
+.thumbox {display: flex; flex-flow: row wrap;}
+.thumbox .img {margin-right: 1.25rem; padding-top: 1.25rem; width: 48.61%; border-radius: 8px; background-color: #F6F6F6;}
+.thumbox .img img {display: block; margin: 0 auto; width: 208px;}
+.thumbox .cont {flex: 1 1 0px; padding: 2.5rem 0 0 0;}
+.thumbox .cont * {margin: 0; padding: 0; line-height: 1.5;}
+.thumbox .cont ol {counter-reset: section; list-style: none;}
+.thumbox .cont ol li {position: relative; margin-top: 0.75rem; padding-left: 20px; counter-increment: section;}
+.thumbox .cont ol li::before {content: counter(section); position: absolute; top: 0.175rem; left: 0; width: 16px; height: 16px; background-color: #FFDD00; border-radius: 16px; line-height: 16px; font-size: 10px; text-align: center;}
+.thumbox .cont ol li:first-child {margin-top: 0;}
+.thumbox .cont strong {color: #004FCF;}
+.thumbox .cont p {margin-top: 0.75rem; margin-bottom: 0; color: #3A71CB;}
+.thumbox + h3 {margin-top: 1.875rem;}
+
+@media (max-width: 720px) {
+    body {padding: 0 16px; font-size: 0.875rem;}
+
+    h1 {padding: 1rem 0; font-size: 1rem;}
+    h2 {margin: 1.25rem 0 0.75rem; font-size: 0.938rem;}
+    h2::before {top: 0.3em;}
+    h3 {margin: 1rem 0 0.75rem; padding: 0 0 0 22px;}
+    h3::before {top: 0.325em; left: 4px; border-width: 7px 5px 0 5px;}
+
+    .hr {margin: 1.5rem 0;}
+
+    .enquiry {padding: 0.75rem;}
+    .enquiry dt {font-size: 0.875rem;}
+    .enquiry dt span {display: block;}
+    .enquiry dd {margin-top: 8px;}
+    
+    .logininfo {display: block;}
+    .logininfo dl {margin: 0.75rem 0 0; padding: 0.75rem;}
+    .logininfo dl dt {font-size: 0.875rem;}
+    .logininfo dl dd {margin: 0.875rem 0 0 0;}
+    .logininfo dl dd span {display: inline;}
+    .logininfo dl dd p {margin-top: 0.875rem;}
+
+    .thumbox {display: block;}
+    .thumbox .img {margin-right: 0; padding-top: 1.5rem; width: auto;}
+    .thumbox .cont {padding: 0.75rem 0 0 0;}
+    .thumbox .cont ol li {margin-top: 0.5rem;}
+    .thumbox .cont ol li::before {top: 0.15rem;}
+    .thumbox .cont p {margin-top: 0.5rem;}
+    .thumbox + h3 {margin-top: 1.25rem;}
+}

BIN
src/main/webapp/resources/images/mobile/helper/ico-app-apple.png


BIN
src/main/webapp/resources/images/mobile/helper/ico-app-google.png


BIN
src/main/webapp/resources/images/mobile/helper/ico-appstore.png


BIN
src/main/webapp/resources/images/mobile/helper/ico-playstore.png


BIN
src/main/webapp/resources/images/mobile/helper/img01-1.png


BIN
src/main/webapp/resources/images/mobile/helper/img02-1.png


BIN
src/main/webapp/resources/images/mobile/helper/img02-2.png


BIN
src/main/webapp/resources/images/mobile/helper/img02-3.png


BIN
src/main/webapp/resources/images/mobile/helper/img02-4.png