기록 이미지 복수개 입력 할 수 있도록 수정

dev_bert
kyebyungha 3 years ago
parent 0f281a656c
commit f4f071fcdc

@ -33,6 +33,7 @@ public interface M_Bf_daily_nutritionBO {
public abstract int delete_bf_daily_nutrition_single(DataMap paramMap) throws Exception;
public abstract int delete_bf_daily_nutrition_multi(DataMap paramMap) throws Exception;
public abstract int delete_bf_daily_nutrition(DataMap paramMap) throws Exception;
public abstract int delete_bf_daily_nutrition_img(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_homemade_list(DataMap paramMap) throws Exception;
public abstract int select_homemade_list_count(DataMap paramMap) throws Exception;

@ -257,14 +257,23 @@ public class M_Bf_daily_nutritionBOImpl extends AbstractBOManager implements M_B
DataMap dm = new DataMap();
dm.put("dn_no", paramMap.get("dn_no"));
dm.put("file_tp", "10"); //육아기록
generalDAO.delete("delete_bf_daily_nutrition_img_by_b_no", dm); //삭제
dm.put("rep_img_yn", "N");
//generalDAO.delete("delete_bf_daily_nutrition_img_by_b_no", dm); //삭제
generalDAO.update("update_bf_daily_nutrition_img_by_b_no", dm); //대표 이미지수정
if(list_file_key.size()>0) { //추가
for(int idx = 0; idx < list_file_key.size(); idx++){
dm.put("file_seq", list_file_key.get(idx));
if((idx+1) == paramMap.getInt("repReordImg") ) {
dm.put("rep_img_yn","Y");
}
generalDAO.insert("insert_bf_daily_nutrition_img_by_b_no", dm);
}
}
dm.put("rep_img_yn", "Y");
dm.put("file_seq", paramMap.get("repReordImg"));
generalDAO.update("update_bf_daily_nutrition_img_by_b_no", dm); //대표 이미지수정
if(paramMap.get("list_mt_file_seq") !=null) { //기존 내용
list_file_key = (ArrayList) paramMap.get("list_mt_file_seq");
if(list_file_key.size()>0) {
@ -354,6 +363,33 @@ public class M_Bf_daily_nutritionBOImpl extends AbstractBOManager implements M_B
return result;
}
public int delete_bf_daily_nutrition_img(DataMap paramMap) throws Exception{
int result = 0;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
generalDAO.startTransaction();
DataMap dm = new DataMap();
dm.put("dn_no", paramMap.get("dn_no"));
dm.put("file_tp", "10"); //육아기록
dm.put("rep_img_yn", "N");
result = generalDAO.update("update_bf_daily_nutrition_img_by_b_no", dm); //대표 이미지수정
result = generalDAO.delete("delete_bf_daily_nutrition_img_by_b_no", paramMap);
dm.put("rep_img_yn", "Y");
dm.put("file_seq", paramMap.get("repReordImg"));
result = generalDAO.update("update_bf_daily_nutrition_img_by_b_no", dm); //대표 이미지수정
generalDAO.commitTransaction();
} catch (SQLException e) {
throw e;
}finally{
generalDAO.endTransaction();
}
return result;
}
public int delete_bf_daily_nutrition_multi(DataMap paramMap) throws Exception{
int result = 0;

@ -258,18 +258,21 @@ public class M_Bf_daily_nutritionController extends AbstractControllerManager{
ArrayList<String> list_hosp_file_key = new ArrayList<String>();
int[] arr_thumbnail_size = new int[]{300};
boolean[] arr_thumbnail_watermark = new boolean[]{false};
int fileSeq = 0;
HashMap<String, FileMeta> mapFileMeta = fileAgent.uploadImage(paramMap,arr_thumbnail_size, arr_thumbnail_watermark, request, response, ConstantCode.DIR_WATERMARK_IMG, ConstantCode.DIR_WATERMARK_TXT);
if(mapFileMeta != null){
for(Entry<String, FileMeta> entry : mapFileMeta.entrySet()){
String key = entry.getKey();
FileMeta fileMeta = entry.getValue();
if(fileMeta != null){
if(key.equals("append_src_img_file") || key.equals("append_300_img_file") )
paramMap.put(key, fileMeta.getMt_file_seq());
else if(key.startsWith("append_src"))
list_file_key.add(String.valueOf(fileMeta.getMt_file_seq()));
else if(key.startsWith("append_hosp_img"))
if(key.startsWith("append_nutrition_file")) {
fileSeq = Integer.parseInt(key.replace("append_nutrition_file", ""));
if(fileSeq == paramMap.getInt("repReordImg") )
paramMap.put("append_src_img_file", fileMeta.getMt_file_seq());
list_file_key.add(String.valueOf(fileMeta.getMt_file_seq()));
}else if(key.startsWith("append_hosp_img")) {
list_hosp_file_key.add(String.valueOf(fileMeta.getMt_file_seq()));
}
}
}
paramMap.put("list_file_key", list_file_key);
@ -383,6 +386,38 @@ public class M_Bf_daily_nutritionController extends AbstractControllerManager{
return result;
}
@RequestMapping(value="ajax_delete_bf_daily_nutrition_img", method=RequestMethod.GET)
@ResponseBody
public HashMap<String, Object> delete_bf_daily_nutrition_img(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response
, RedirectAttributes redirectAttributes) {
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
HashMap<String, Object> result = new HashMap<String, Object>();
result.put("RESULT", ConstantResultCode.RESULT_INIT);
try {
boolean is_login = gmUtil.setSessionForMobileMember(request, paramMap);
if(is_login == false) {
result.put("RESULT", ConstantResultCode.RESULT_SESSION_OUT);
}else{
if(RenaStringUtil.isNullOrEmpty(paramMap,"dn_no") || RenaStringUtil.isNullOrEmpty(paramMap,"file_seq")) {
result.put("RESULT", ConstantResultCode.RESULT_NEED_PARAMS);
}else {
bf_daily_nutritionBO.delete_bf_daily_nutrition_img(paramMap);
result.put("RESULT", ConstantResultCode.RESULT_SUCCESS);
}
}
} catch (Exception ex1) {
ex1.printStackTrace();
result.put("RESULT", ConstantResultCode.RESULT_EXCEPTION);
result.put("msg", ex1.getMessage());
}
return result;
}
@RequestMapping(value="delete_bf_daily_nutrition_single")
public String delete_bf_daily_nutrition_single(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response

@ -563,6 +563,7 @@
,tmf.mt_file_type
,tmf.height
,tmf.width
,tba.rep_img_yn
FROM tbl_bf_daily_nutrition_attach tba
LEFT JOIN tbl_mt_file tmf ON tmf.mt_file_seq = tba.file_seq
WHERE tba.dn_no = #dn_no#
@ -803,18 +804,33 @@
,file_seq
,file_tp
,reg_dt
,rep_img_yn
) VALUES (
#dn_no#
,#file_seq#
,#file_tp#
,NOW()
,#rep_img_yn#
)
</insert>
<delete id="delete_bf_daily_nutrition_img_by_b_no" parameterClass="dataMap">
<update id="update_bf_daily_nutrition_img_by_b_no" parameterClass="dataMap">
UPDATE tbl_bf_daily_nutrition_attach
SET rep_img_yn = #rep_img_yn#
WHERE dn_no = #dn_no#
and file_tp = CAST(#file_tp# as INTEGER)
<isNotEmpty property="file_seq">
and file_seq = CAST(#file_seq# as INTEGER)
</isNotEmpty>
</update>
<delete id="delete_bf_daily_nutrition_img_by_b_no" parameterClass="dataMap">
DELETE FROM tbl_bf_daily_nutrition_attach
WHERE dn_no = #dn_no#
and file_tp = #file_tp#
and file_tp = CAST(#file_tp# as INTEGER)
<isNotEmpty property="file_seq">
and file_seq = CAST(#file_seq# as INTEGER)
</isNotEmpty>
</delete>

@ -71,9 +71,9 @@
</div>
<!-- nutrition_kinds_btn -->
<!-- nutrition_kinds_btn --> <!-- save.submit();-->
<div class="nutrition_kinds_btn nutrition_common">
<a href="javascript:save.submit();" name="btnSave">기록완료</a>
<a href="javascript:$('#sharedPop').addClass('open');" name="btnSave">기록완료</a>
</div>
<!-- //nutrition_kinds_btn -->
@ -141,6 +141,7 @@
<input type="hidden" id="achievement" name="rest_rs" value="${model['rm']['achievement']!}" />
<input type="hidden" id="memoArr" name="memoArr" value="${model['rm']['memoArr']!}" />
<input type="hidden" id="share_tp" name="share_tp" value="${model['rm']['share_tp']!}" />
</form>
</div>
@ -179,7 +180,16 @@
$('#selectbox03').text('');
$('#selectbox04').text('');
},
submit_y : function(){
debugger;
$("#share_tp").val('Y');
save.submit();
},
submit_n : function(){
debugger;
$("#share_tp").val('N');
save.submit();
},
submit : function(){
var memo = $("#memoArr").val();
$(".memo_btn>button").each( function(idx, ele) {

@ -1,16 +1,21 @@
<#include "/m/include/index_top.ftl">
<style>
/* nutrition_camera 이미지불러오기 */
.nutrition_camera { padding-top:35px; background: url(../img/main/main_cont_img_camera_bg01.png)no-repeat top center/18px auto; }
.nutrition_camera .nutrition_camera_box { padding-bottom:40px; background: url(../img/main/main_cont_img_camera_bg03.png)no-repeat bottom center/18px auto; }
.nutrition_camera input { display:none; }
.nutrition_camera .img_preview { position:relative; overflow:hidden; width:150px; height:120px; margin:0 auto; background:#fff; border:5px solid #fff; border-radius:20px; box-shadow: 0 0 6px rgba(0, 0, 0, 0.2); }
.nutrition_camera .img_preview label { display:block; width:100%; height:auto; }
.nutrition_camera .img_preview img { position: absolute; width:100%; height:100%; top: 50%; left: 50%; transform: translate(-50%, -50%); }
</style>
<body>
<!-- modal-wrapper : 커뮤니티 공유 팝업 -->
<div id="sharedPop" class="modal-wrapper">
<div class="modal_content" style="width: calc(100% - 80px);max-width:800px;">
<div class="center_title">기록을 커뮤니티에 공유하시겠습니까?</div>
<div class="container_y_n">
<button class="btn_y_n" onclick="javascript:save.submit_y();" >예</button>
<button class="btn_y_n" onclick="javascript:save.submit_n();">아니오</button>
</div>
</div>
<div class="modal_layer"></div>
</div>
<!-- //modal-wrapper -->
<!-- wrap -->
<div class="wrap" id="view_sn_nutrition_powderedmilk">
<!-- header_sub -->
@ -38,62 +43,75 @@
</div>
</div>
<!-- //nutrition_header_child -->
<!-- nutrition_camera -->
<!--
<div class="nutrition_camera">
<div class="nutrition_camera_box">
<div id="img_preview" class="img_preview">
<p><label for="img"><img src="<#if model['rm']['append_300_img_file']?exists>${URL_ROOT}/file/get_img.do?mt_file_seq=${model['rm']['append_300_img_file']}<#else>${URL_STATIC_ROOT}/m/img/main/main_cont_img_camera.png</#if>" alt="사진영역" /></label></p>
</div>
<input type="file" id="img" name="append_src_img_file">
</div>
</div>
-->
<!-- //nutrition_camera -->
<div class="nutrition_camera">
<div class="take_time w_div">
<div class="img_wrap add_pic_list_wrap">
<#assign pick_img_index = 0>
<#if model['lm_img_lst']?has_content>
<#assign pick_img_index = model['lm_img_lst']?size>
<div class="add_pic_list_box">
<#list model['lm_img_lst'] as item_img>
<div class="add_pic_list_item">
<div class="input_file_upload">
<input type="hidden" id="mt_file_seq_${item_img?counter}" name="mt_file_seq" value="${item_img['mt_file_seq']!}" class="form-control ">
<div id="add_thumb" class="add_thumb">
<img src="${URL_ROOT}/file/get.do?mt_file_seq=${item_img['mt_file_seq']!}" alt="사진추가하기">
</div>
<button type="button" id="" class="ibtn_x off" style="display:inline">삭제</button>
</div>
</div>
</#list>
</div>
<#else>
<!--이미지 추가-->
<div class="add_pic_list_box">
<div class="add_pic_list_item">
<div class="input_file_upload">
<input type="file" id="append_src_img_file_0" name="append_src_img_file_0" accept="image/*;capture=camera" class="upfile"> <button type="button" class="btn_upfile"></button>
<div id="add_thumb" class="add_thumb">
<img src="${URL_STATIC_ROOT}/m/img/community/upload_img.jpg" alt="사진추가하기">
</div>
<button type="button" id="" class="ibtn_x off">삭제</button>
</div>
</div>
</div>
<#assign pick_img_index = pick_img_index+1>
</#if>
<button type="button" id="add_pic_btn" name="" class="add_pic_btn" onclick="javascript:add_pick_file();">
사진 추가하기 버튼 <span></span> <span></span>
</button>
</div>
</div>
</div>
<!-- nutrition_camera -->
<div class="nutrition_camera">
<div class="nutrition_camera_box">
<div class="swiper-container">
<ul class="swiper-wrapper">
<li class="swiper-slide">
<div class="input_file_upload img_preview">
<label for="append_src_img_file01" class="img_label">
<img id="img_preview01" src="${URL_ROOT}/m/img/main/main_cont_img_camera.png" alt="사진영역" />
</label>
<button type="button" id="btn_delImg01" class="ibtn_x" style="display:none">삭제</button>
<input type="radio" id="append_src_img_star01" name="append_src_img_star" class="star">
<label for="append_src_img_star01">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16">
<path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/>
</svg>
</label>
</div>
</li>
<li class="swiper-slide">
<div class="input_file_upload img_preview">
<label for="append_src_img_file02" class="img_label">
<img id="img_preview02" src="${URL_ROOT}/m/img/main/main_cont_img_camera.png" alt="사진영역" />
</label>
<button type="button" id="btn_delImg02" class="ibtn_x" style="display:none">삭제</button>
<input type="radio" id="append_src_img_star02" name="append_src_img_star" class="star">
<label for="append_src_img_star02">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16">
<path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/>
</svg>
</label>
</div>
</li>
<li class="swiper-slide">
<div class="input_file_upload img_preview">
<label for="append_src_img_file03" class="img_label">
<img id="img_preview03" src="${URL_ROOT}/m/img/main/main_cont_img_camera.png" alt="사진영역" />
</label>
<button type="button" id="btn_delImg03" class="ibtn_x" style="display:none">삭제</button>
<input type="radio" id="append_src_img_star03" name="append_src_img_star" class="star">
<label for="append_src_img_star03">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16">
<path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/>
</svg>
</label>
</div>
</li>
</ul>
</div>
<input type="file" id="append_src_img_file01" name="append_nutrition_file1">
<input type="file" id="append_src_img_file02" name="append_nutrition_file2">
<input type="file" id="append_src_img_file03" name="append_nutrition_file3">
<input type="hidden" id="mt_file_seq01" name="mt_file_seq1">
<input type="hidden" id="mt_file_seq02" name="mt_file_seq2">
<input type="hidden" id="mt_file_seq03" name="mt_file_seq3">
<input type="hidden" id="repReordImg" name="repReordImg" value='1' />
<div class="pagination_container">
<div class="swiper-pagination"></div>
</div>
</div>
</div>
<!-- //nutrition_camera -->
<div class="description1">
* 표시된 사진이 공유 시 대표사진으로 설정됩니다.
</div>
<div class="set_list_wrap" style="display:none">
<#list model['music_list'] as item>
@ -112,27 +130,20 @@
<script>
var pick_img_index = "${pick_img_index!'0'}";
function add_pick_file(){
if($(".add_pic_list_item").length > 2) {
Swal.fire({text: '이미지는 3개 까지만 가능합니다.'});
return;
}
var add_pic_tags = '<div class="add_pic_list_item">' +
'<div class="input_file_upload">' +
'<input type="file" id="append_src_img_file_' + pick_img_index + '" name="append_src_img_file_' + pick_img_index + '" accept="image/*;capture=camera" class="upfile">' +
'<button type="button" class="btn_upfile"></button>' +
'<div id="add_thumb" class="add_thumb">' +
'<img src="${URL_STATIC_ROOT}/m/img/community/upload_img.jpg" alt="사진추가하기">' +
'</div>'+
'<button type="button" id="" class="ibtn_x off">삭제</button> ' +
'</div>' +
'</div>';
$(".add_pic_list_box").append(add_pic_tags);
$('#pick_img_index').val(++pick_img_index);
}
var swiper = new Swiper('.swiper-container', {
slidesPerView: 'auto',
slidesPerGroup: 1,
spaceBetween: 10,
loopFillGroupWithBlank: true,
pagination: {
loop: false,
el: '.swiper-pagination',
clickable: true,
}
});
// 클래스 추가 삭제시
$(".li_check>li").click(function(e) {
e.stopPropagation();
@ -143,51 +154,78 @@
}
});
/*********사진 추가*********/
/*********Camera 및 사진 업로드*********/
$(function() {
// File Upload + Preview
$(document).on('click', '.input_file_upload .btn_upfile', function(){
$(this).siblings('.upfile').trigger('click');
});
$(document).on('click', '.input_file_upload .ibtn_x', function(){
$(this).parent().parent().remove();
});
$(document).on('change', ".input_file_upload input[type=file]", function(){
var file = $(this)[0].files[0];
//console.log(file.name + "\n" + file.type + "\n" + file.size + "\n" + file.lastModifiedDate); // upfile var
if ($(this).hasClass('file_mypage')) {
$(this).talkImage(file, '.add_thumb');
}else{
$(this).displayImage(file, '.add_thumb');
} $(this).siblings('.add_thumb').removeClass('off').siblings('.ibtn_x').removeClass('off');
// 사진 삭제
$(document).on('click', '#btn_delImg01, #btn_delImg02, #btn_delImg03', function(){
var imgSeq = this.id.replace('btn_delImg','');
if(Number($('#repReordImg').val()) == Number(imgSeq) ) {
Swal.fire({text: '대표이미지를 변경후 삭제해 주세요!'});
return;
}
$("#append_src_img_file"+imgSeq).val('');
$('#img_preview'+imgSeq).attr('src', "${URL_ROOT}/m/img/main/main_cont_img_camera.png");
$(this).hide();
// 파일이 번호가 있으면 삭제
if( $('#mt_file_seq'+imgSeq).val() !="") {
$.ajax({
url:'${URL_ROOT}/m/bf_daily_nutrition/ajax_delete_bf_daily_nutrition_img.do?1=1',
type:'get',
data: {
"dn_no" : ${model['rm']['dn_no']!}
,"file_tp" : '10'
,"file_seq": $('#mt_file_seq'+imgSeq).val()
,"repReordImg" : $('#repReordImg').val()
},
dataType:'json',
error:function(request,status,error){
console.log(status);
is_loading = false;
},
success:function(result){
console.log(result);
is_loading = false;
}
});
}
});
$(".bi-star-fill").on('click', function () {
$("#repReordImg").val(Number(this.parentNode.htmlFor.replace('append_src_img_star0','')));
});
$.fn.extend({
// Upload preview Function
displayImage : function(file, classname) {
if (typeof FileReader !== "undefined") {
$(this).siblings(classname).find('img').remove();
var container = $(this).siblings(classname),
img = document.createElement("img"),
reader;
img.setAttribute('width', '100%'),
img.setAttribute('height', '100%'),
container.append(img);
reader = new FileReader();
reader.onload = (function (theImg) {
return function (evt) {
theImg.src = evt.target.result;
};
}(img));
reader.readAsDataURL(file);
}
},
});
// nutrition_camera 이미지 업로드
$('#append_src_img_file01,#append_src_img_file02, #append_src_img_file03').on('change', function () {
var imgSeq = this.id.replace('append_src_img_file','');
ext = $(this).val().split('.').pop().toLowerCase(); //확장자
//배열에 추출한 확장자가 존재하는지 체크
if ($.inArray(ext, ['gif', 'png', 'jpg', 'jpeg']) == -1) {
resetFormElement($(this)); //폼 초기화
window.alert('이미지 파일이 아닙니다! (gif, png, jpg, jpeg 만 업로드 가능)');
} else {
file = this.files[0];
blobURL = window.URL.createObjectURL(file);
$('#img_preview'+imgSeq).attr('src', blobURL);
$('.img_preview').slideDown(); //업로드한 이미지 미리보기
$(this).slideUp(); //파일 양식 감춤
$("#btn_delImg"+imgSeq).show();
// $("#layer_nutirition_tp").show();
}
});
$("#append_src_img_star01").attr('checked', true);
<#if model['lm_img_lst']? has_content>
<#list model['lm_img_lst'] as item>
$("#img_preview0${item?counter}").attr("src", "${URL_ROOT}/file/get.do?mt_file_seq=${item['mt_file_seq']!}");
$("#mt_file_seq0${item?counter}").val("${item['mt_file_seq']!}");
$("#btn_delImg0${item?counter}").show();
<#if item['rep_img_yn']! == 'Y' >
$("#append_src_img_star0${item?counter}").attr('checked', true);
</#if>
</#list>
</#if>
});

@ -51,7 +51,7 @@
<button type="button" class="border_btn" onclick="addTime(-5);">-5분</button>
<button type="button" class="border_btn" onclick="addTime(-1);">-1분</button>
<button type="button" class="border_btn" onclick="addTime(1);">1분</button>
<button type="button" class="border_btn" onclick="addTime(5);">5분</button>
<button type="button" class="border_btn" onclick="addTime(5);">5분</button>
</div>
</div>
<!-- //시간 -->
@ -290,13 +290,14 @@
});
/* 셀렉트 박스 옵션 선택 */
$("body").on("click", ".selectlist p", function() {
var text = $(this).html();
$(this).parent().siblings().html(text)
$(this).parent().toggle();
$("#srv_unit").val(text);
});
/* 셀렉트 박스 이외 선택시 보이지 않게 하기 */
$("body").on("click", function(e) {
$(".selectlist").each(function() {

@ -13,22 +13,23 @@
<title>이유식당</title>
<link href="../css/style.css?1" rel="stylesheet" type="text/css" >
<link rel="stylesheet" href="${URL_STATIC_ROOT}/m/css/anypicker-all.min.css" />
<link rel="stylesheet" href="${URL_ROOT}/m/css/style.css?1" type="text/css" >
<link rel="stylesheet" href="${URL_ROOT}/m/css/anypicker-all.min.css" />
<link rel="stylesheet" href="${URL_ROOT}/m/css/swiper.min.css">
<link rel="stylesheet" href="${URL_ROOT}/m/css/sweetalert2.min.css" >
<script src="https://developers.kakao.com/sdk/js/kakao.js"></script>
<script src="${URL_STATIC_ROOT}/m/js/jquery-3.3.1.min.js"></script>
<script src="${URL_ROOT}/m/js/jquery-3.3.1.min.js"></script>
<script src="${URL_ROOT}/m/js/sweetalert2.all.min.js" type="text/javascript" ></script>
<script src="${URL_ROOT}/m/js/anypicker.min.js" type="text/javascript" ></script>
<script src="${URL_ROOT}/static/js/moment.js" type="text/javascript" ></script>
<script src="${URL_ROOT}/m/js/swiper.min.js"></script>
<link href="${URL_STATIC_ROOT}/m/css/sweetalert2.min.css" rel="stylesheet" >
<script src="${URL_STATIC_ROOT}/m/js/sweetalert2.all.min.js" type="text/javascript" ></script>
<script src="${URL_STATIC_ROOT}/m/js/anypicker.min.js" type="text/javascript" ></script>
<script src="${URL_STATIC_ROOT}/static/js/moment.js" type="text/javascript" ></script>
<script src="../js/common.js" type="text/javascript" ></script>
<script src="../js/util.js" type="text/javascript" ></script>
<script src="${URL_STATIC_ROOT}/static/renamaster/js/cookie.js"></script>
<script src="${URL_STATIC_ROOT}/static/renamaster/js/renamaster_map.js"></script>
<script src="${URL_STATIC_ROOT}/static/renamaster/js/renamaster_util.js"></script>
<script src="${URL_ROOT}/m/js/common.js" type="text/javascript" ></script>
<script src="${URL_ROOT}/m/js/util.js" type="text/javascript" ></script>
<script src="${URL_ROOT}/static/renamaster/js/cookie.js"></script>
<script src="${URL_ROOT}/static/renamaster/js/renamaster_map.js"></script>
<script src="${URL_ROOT}/static/renamaster/js/renamaster_util.js"></script>
<style>
body {-webkit-tap-highlight-color:transparent, -webkit-backface-visibility: hidden, overflow: hidden;}

Loading…
Cancel
Save