parent
dfba8efc18
commit
4f50eff731
@ -0,0 +1,17 @@
|
||||
package go.kr.project.biz.totalInfo.mapper;
|
||||
|
||||
import go.kr.project.biz.totalInfo.model.TotalInfoDto;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface TotalInfoMapper {
|
||||
|
||||
void updateCpMain(@Param("mmCode") String mmCode, TotalInfoDto.Request.Edit totalInfoDto);
|
||||
void updateCpAnswer(@Param("mmCode") String mmCode, TotalInfoDto.Request.Edit totalInfoDto);
|
||||
|
||||
int updateState(@Param("mmCode") String mmCode, @Param("state") String state);
|
||||
|
||||
int insertCpOwner(TotalInfoDto.Request.Edit totalInfoDto);
|
||||
|
||||
}
|
||||
@ -1,9 +1,13 @@
|
||||
package go.kr.project.biz.totalInfo.service;
|
||||
|
||||
import go.kr.project.biz.totalInfo.model.TotalInfoDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface TotalInfoService {
|
||||
|
||||
TotalInfoDto.Response.TotalInfoResult findTotalInfo(String mmCode);
|
||||
|
||||
void updateTotalInfo(String mmCode, TotalInfoDto.Request.Edit totalInfoDto) throws Exception;
|
||||
|
||||
void updateState(String mmCode, String state);
|
||||
}
|
||||
|
||||
@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="go.kr.project.biz.totalInfo.mapper.TotalInfoMapper">
|
||||
|
||||
|
||||
<update id="updateCpMain"
|
||||
parameterType="go.kr.project.biz.totalInfo.model.TotalInfoDto$Request$Edit">
|
||||
|
||||
UPDATE cp_main
|
||||
SET
|
||||
MM_LAWGB = ${mmLawgb}
|
||||
MM_SGTEL = ${mmSgtel},
|
||||
MM_SGPOS = ${mmSgpos},
|
||||
MM_KEUM1 = ${mmKeum1}
|
||||
WHERE
|
||||
MM_CODE = #{mmCode}
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<update id="updateCpAnswer"
|
||||
parameterType="go.kr.project.biz.totalInfo.model.TotalInfoDto$Request$Edit">
|
||||
|
||||
UPDATE cp_answer
|
||||
SET
|
||||
AS_STATE = ${asState}
|
||||
WHERE
|
||||
MM_CODE = #{mmCode}
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<update id="updateState">
|
||||
|
||||
UPDATE cp_main
|
||||
SET
|
||||
MM_STATE = ${state}
|
||||
WHERE
|
||||
MM_CODE = #{mmCode}
|
||||
|
||||
</update>
|
||||
|
||||
<insert id="insertCpOwner"
|
||||
parameterType="go.kr.project.biz.totalInfo.model.TotalInfoDto$Request$Edit">
|
||||
|
||||
insert into cp_owner
|
||||
(
|
||||
OM_CODE,
|
||||
OM_SGGCODE,
|
||||
OM_NAME,
|
||||
OM_NO1,
|
||||
OM_JNO,
|
||||
OM_NOGB,
|
||||
OM_JUSO,
|
||||
OM_BUNJI,
|
||||
OM_ZIP,
|
||||
OM_DORO_CODE,
|
||||
OM_BLD_POSITION,
|
||||
OM_BLD_NO1,
|
||||
OM_BLD_NO2,
|
||||
OM_BLD_ADMNO,
|
||||
OM_INGB,
|
||||
OM_INDT,
|
||||
OM_BDCODE
|
||||
) VALUES (
|
||||
#{mmCode},
|
||||
#{omSggcode},
|
||||
#{omName},
|
||||
#{omNo1},
|
||||
#{omJno},
|
||||
#{omNogb},
|
||||
#{omJuso},
|
||||
#{omBunji},
|
||||
#{omZip},
|
||||
#{omDoroCode},
|
||||
#{omBldPosition},
|
||||
#{omBldNo1},
|
||||
#{omBldNo2},
|
||||
#{omBldAdmno},
|
||||
#{omIngb},
|
||||
#{omIndt},
|
||||
#{omBdcode}
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,187 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<!-- TOAST UI 이미지 에디터 CSS -->
|
||||
<link rel="stylesheet" href="<c:url value='/plugins/tui-color-picker/tui-color-picker.min.css' />" />
|
||||
<link rel="stylesheet" href="<c:url value='/plugins/tui-image-editor/tui-image-editor.css' />" />
|
||||
|
||||
<!-- 라이브러리 순서대로 로드 -->
|
||||
<script src="<c:url value='/plugins/fabric.js/fabric.min.js' />"></script>
|
||||
<script src="<c:url value='/plugins/tui-color-picker/tui-color-picker.min.js' />"></script>
|
||||
<script src="<c:url value='/plugins/tui-image-editor/tui-image-editor.min.js' />"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="<c:url value='/xit/xit-imageModify.css' />" />
|
||||
|
||||
|
||||
<div id="photoDialog" style="display:none;">
|
||||
|
||||
<section id="section8" class="main_bars">
|
||||
<div class="bgs-main">
|
||||
<section id="section5">
|
||||
<div class="sub_title">이미지 편집 (TOAST UI)</div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
<div class="contants_body">
|
||||
<div class="gs_booking">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="box_column">
|
||||
<!-- 이미지 에디터 컨테이너 -->
|
||||
<div class="tui-image-editor-warapper" style="width: 100%; height: 700px;">
|
||||
<div id="tui-image-editor"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%-- <!-- 🔹 보기 모드 -->--%>
|
||||
<%-- <div id="photoViewMode">--%>
|
||||
<%-- <img id="photoDialogImg"--%>
|
||||
<%-- src=""--%>
|
||||
<%-- alt="사진 보기"--%>
|
||||
<%-- style="max-width:100%; height:auto; display:block; margin:0 auto;">--%>
|
||||
|
||||
<%-- <div style="text-align:right; margin-top:8px;">--%>
|
||||
<%-- <button type="button" id="btnPhotoEdit" class="btn btn-light">사진 편집</button>--%>
|
||||
<%-- <button type="button" id="btnPhotoClose" class="btn btn-light">닫기</button>--%>
|
||||
<%-- </div>--%>
|
||||
<%-- </div>--%>
|
||||
|
||||
<%-- <!-- 🔹 편집 모드 -->--%>
|
||||
<%-- <div id="photoEditMode" style="display:none;">--%>
|
||||
<%-- <div class="edit-canvas-wrap">--%>
|
||||
<%-- <!-- 나중에 cropperjs 붙일 이미지 or canvas -->--%>
|
||||
<%-- <img id="photoEditImg"--%>
|
||||
<%-- src=""--%>
|
||||
<%-- alt="편집 대상"--%>
|
||||
<%-- style="max-width:100%; height:auto; display:block; margin:0 auto;">--%>
|
||||
<%-- </div>--%>
|
||||
|
||||
<%-- <div class="edit-toolbar" style="text-align:right; margin-top:8px;">--%>
|
||||
<%-- <!-- 여기부터는 예시 버튼들. 나중에 기능 붙이면 됨 -->--%>
|
||||
<%-- <button type="button" id="btnEditRotate" class="btn btn-light">회전</button>--%>
|
||||
<%-- <button type="button" id="btnEditApply" class="btn btn-light">적용</button>--%>
|
||||
<%-- <button type="button" id="btnEditCancel" class="btn btn-light">취소</button>--%>
|
||||
<%-- </div>--%>
|
||||
<%-- </div>--%>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
let photoDialogFn = {
|
||||
photoMode: "view", // "view" | "edit"
|
||||
|
||||
setPhotoMode: (mode) => {
|
||||
photoDialogFn.photoMode = mode;
|
||||
|
||||
if (mode === "view") {
|
||||
$("#photoViewMode").show();
|
||||
$("#photoEditMode").hide();
|
||||
} else if (mode === "edit") {
|
||||
$("#photoViewMode").hide();
|
||||
$("#photoEditMode").show();
|
||||
}
|
||||
},
|
||||
|
||||
init: () => {
|
||||
// ...
|
||||
},
|
||||
|
||||
btnSet: (infoState) => {
|
||||
// ...
|
||||
},
|
||||
|
||||
eventListener: () => {
|
||||
|
||||
|
||||
/** 🔹 썸네일 더블클릭 → 보기 모드로 다이얼로그 오픈 */
|
||||
$("#photoThumbs").on("dblclick", "img", function () {
|
||||
const src = $(this).attr("src");
|
||||
|
||||
// 보기/편집 둘 다 같은 src를 기본으로 사용
|
||||
$("#photoDialogImg").attr("src", src);
|
||||
$("#photoEditImg").attr("src", src);
|
||||
|
||||
photoDialogFn.setPhotoMode("view");
|
||||
$("#photoDialog").dialog("open");
|
||||
});
|
||||
|
||||
/** 🔹 보기 모드에서 "사진 편집" 버튼 */
|
||||
$("#btnPhotoEdit").on("click", () => {
|
||||
photoDialogFn.setPhotoMode("edit");
|
||||
|
||||
// 여기서 cropperjs 또는 편집 초기화 로직 들어가면 됨
|
||||
// ex)
|
||||
// const image = document.getElementById("photoEditImg");
|
||||
// if (!fnBiz._cropper) {
|
||||
// fnBiz._cropper = new Cropper(image, {...});
|
||||
// }
|
||||
});
|
||||
|
||||
/** 🔹 보기 모드에서 "닫기" 버튼 */
|
||||
$("#btnPhotoClose").on("click", () => {
|
||||
$("#photoDialog").dialog("close");
|
||||
});
|
||||
|
||||
/** 🔹 편집 모드 "취소" → 다시 보기 모드로 */
|
||||
$("#btnEditCancel").on("click", () => {
|
||||
// 편집 취소 시, 보기 모드로 되돌리기
|
||||
photoDialogFn.setPhotoMode("view");
|
||||
// 필요하면 cropper 리셋/삭제
|
||||
// if (fnBiz._cropper) {
|
||||
// fnBiz._cropper.destroy();
|
||||
// fnBiz._cropper = null;
|
||||
// }
|
||||
});
|
||||
|
||||
/** 🔹 편집 모드 "적용" */
|
||||
$("#btnEditApply").on("click", () => {
|
||||
// 여기서 편집 적용 → 서버 저장 or preview 반영 등
|
||||
// 예: cropper.getCroppedCanvas().toDataURL() 등
|
||||
|
||||
// 일단은 그냥 보기 모드로만 전환
|
||||
photoDialogFn.setPhotoMode("view");
|
||||
});
|
||||
|
||||
/** 🔹 편집 모드 "회전" (예시) */
|
||||
$("#btnEditRotate").on("click", () => {
|
||||
// 나중에 cropper 붙이면:
|
||||
// if (photoDialogFn._cropper) {
|
||||
// photoDialogFn._cropper.rotate(90);
|
||||
// }
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(function () {
|
||||
|
||||
|
||||
$("#photoDialog").dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
resizable: true,
|
||||
// width: "auto",
|
||||
width: 1000,
|
||||
maxHeight: 800,
|
||||
show: { effect: "slide", direction: "right", duration: 200 },
|
||||
hide: { effect: "slide", direction: "right", duration: 200 },
|
||||
title: "사진 보기",
|
||||
open: function () {
|
||||
// 다이얼로그 내용 스크롤 맨 위로
|
||||
const $content = $(this); // .ui-dialog-content
|
||||
$content.scrollTop(0);
|
||||
$(this).dialog("widget").focus();
|
||||
|
||||
// 혹시 부모 컨테이너에 스크롤이 잡히는 경우까지 대비
|
||||
const $wrapper = $content.closest(".ui-dialog");
|
||||
$wrapper.scrollTop(0);
|
||||
$(this).dialog("widget").focus();
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
Loading…
Reference in New Issue