Files

601 lines
25 KiB
PHP

<?php include_once __DIR__ . '/asset_urls.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google tag (gtag.js) -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>주요기능</title>
<link rel="stylesheet" href="../css/reset.css" />
<link rel="stylesheet" href="../css/font.css" />
<link rel="stylesheet" href="../css/style.css" />
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css" />
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<script type="text/javascript" src="../js/common.js"></script>
<script type="text/javascript" src="../js/popup.js"></script>
<script type="text/javascript" src="../js/primary.js"></script>
<script>
function goto(id) {
console.log('로그발생');
document.getElementById(id).scrollIntoView({
behavior: "instant"
});
}
</script>
</head>
<body>
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
<!-- //Header -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<!-- 컨텐츠 시작 -->
<div class="container primary">
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
<section class="intro">
<div class="top js__dark">
<h2 data-aos="fade-down" data-aos-duration="1000">주요기능</h2>
<span>쉽고 편리하게 작업 할 수 있는 다양한 기능 탑재</span>
</div>
<div class="keyword">
<i class="egbim_obj k"></i>
<span>수많은 명령어들을 기능별로 그룹화하여<br><br class="brk">
페이지별로 한눈에 볼수 있게 제공</span>
<p>EG-BIM에는 1000여개가 넘는 수많은 기능과<br class="brk"> 명령어가 있습니다. <br>
사용자가 찾기 쉽고 사용하기 쉽게<br class="brk"> 기능별 페이지를 구성하여 제공합니다.</p>
</div>
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
<div class="dia_circles_wrap">
<div class="circle_core"><span>명령어<br>전체보기</span></div>
<div class="circle_dots">
<div class="dot"></div>
<div class="dot"></div>
<div class="dot"></div>
</div>
</div>
<div class="dia_element e01">
<i></i>
<span class="dia_tit">디스플레이/ 보조기능<br><em>My Setting</em></span>
</div>
<div class="dia_element e02">
<i></i>
<span class="dia_tit">Draw/Edit +<br class="brk"> 분야별 특화명령어<br><em>명령어그룹</em></span>
</div>
<div class="dia_element e03">
<i></i>
<span class="dia_tit"><em>for Civil</em><br>특화명령어</span>
</div>
</div>
</section>
<section class="route js__mouse_area">
<div class="fix">
<ul class="subs">
<li>
<span class="sub_tit">작업환경을<br class="brk"> 내스타일에 맞게 설정</span>
<span class="mid_tit">My Setting</span>
<span class="sub_text">
작업공간의 색상 및 마우스 기능 설정 등 기본적인 Setting 항목과 그리드 및 스냅 등 <br>
작업 중 수시로 변경해야하는 ON/OFF 항목으로 페이지를 구분하여 제공합니다.
</span>
</li>
<li>
<span class="sub_tit">Draw/Edit 명령어와 특화명령어가<br class="brk"> 기본으로 제공되는</span>
<span class="mid_tit"><em>명령어그룹</em></span>
<span class="sub_text">
수많은 명령어들을 도형, 편집 등 기능별로 그룹화하여 제공 및 <br>
별도 설치하여 사용하였던 분야별 특화명령어를 기본으로 제공
</span>
</li>
<li>
<span class="sub_tit">도로 및 구조의<br class="brk"> 특정 설계도면 작업을 위한</span>
<span class="mid_tit"><em>for Civil</em></span>
<span class="sub_text">
설계도면 중 도로 분야의 도로 선형 및 횡단 작업을 위한 명령어와<br>
구조분야의 철근배근 및 철근상세도, 집계표 작업을 위한 명령어 제공
</span>
</li>
</ul>
<div class="content">
<!-- <div class="scroll_m">SCROLL</div> -->
<ul class="tabs js__mouse_not">
<li class="tabs_li"><a onclick="window.goto('sec1')">
<b>My Setting</b>
<ul>
<li>디스플레이/마우스</li>
<li>보조기능</li>
</ul>
</a></li>
<li class="tabs_li"><a onclick="window.goto('sec2')">
<b>Command</b>
<ul>
<li>도형</li>
<li>수정</li>
<li>편집</li>
<li>문자</li>
<li>치수/연산</li>
<li>블록</li>
<li>레이어</li>
<li>뷰</li>
<li>선택/조회</li>
</ul>
</a></li>
<li class="tabs_li"><a onclick="window.goto('sec3')">
<b>for Civil</b>
<ul>
<li>선형/횡단</li>
<li>구조/배근</li>
</ul>
</a></li>
</ul>
<ul class="imgs">
<li><a><img src="<?php echo egbim_img_url('primary_route_01.png'); ?>" alt=""></a></li>
<li><a><img src="<?php echo egbim_img_url('primary_route_02.png'); ?>" alt=""></a></li>
<li><a><img src="<?php echo egbim_img_url('primary_route_03.png'); ?>" alt=""></a></li>
</ul>
</div>
</div>
<div id="sec1"></div>
<div id="sec2"></div>
<div id="sec3"></div>
</section>
<section class="layout_fix_left process">
<div class="left" data-aos="fade-right" data-aos-duration="1000" data-aos-offest="-180">
<div class="bg js__fixLeft_bg on"></div>
<div class="bg js__fixLeft_bg"></div>
<div class="bg js__fixLeft_bg"></div>
<span class="mid_tit js__fixLeft_tit on">
<font class="num">01. </font><em>스타일 상세보기창</em>
</span>
<span class="mid_tit js__fixLeft_tit">
<font class="num">02. </font><em>블록창</em>
</span>
<span class="mid_tit js__fixLeft_tit">
<font class="num">03. </font><em>인쇄창</em>
</span>
</div>
<div class="right js__fixLeft_secs">
<span class="mid_tit m" style="display: none;">
<font class="num">01. </font>스타일 상세보기창
</span>
<div id="content1" class="style">
<span class="sub_tit">
선, 문자, 치수의<br class="brk"> 상세 스타일의 생성 및 수정
</span>
<div class="sub_text">
사용하고 있는 스타일의 목록을 보여주며 상세한 미리보기창과 설정가능한 모든 옵션사항을 보여줍니다. <br>새로운 스타일을 생성하거나 수정할 수 있는 기능을 제공합니다.
</div>
<div class="sub_figs">
<div class="imgs">
<img src="<?php echo egbim_img_url('style_img_01.png'); ?>" alt="">
</div>
<div class="text">
<b>선 스타일</b>
<ul>
<li>선꼴, 블록, 문자 등을 조합하여 원하는 선스타일을 제작</li>
<li>미리보기창에서 선간격, 블록 및 문자간격 등 설정</li>
<li>건설CALS의 표준 선꼴을 제공</li>
</ul>
</div>
</div>
<div class="sub_figs">
<div class="imgs">
<img src="<?php echo egbim_img_url('style_img_02.png'); ?>" alt="">
</div>
<div class="text">
<b>문자 스타일</b>
<ul>
<li>사용가능한 글꼴을 그룹화하여 제공</li>
<li>미리보기창에서 크기,기울기 등 형상에 대한 옵션 설정</li>
</ul>
</div>
</div>
<div class="sub_figs">
<div class="imgs">
<img src="<?php echo egbim_img_url('style_img_03.png'); ?>" alt="">
</div>
<div class="text">
<b>치수 스타일</b>
<ul>
<li>치수선 형상 및 값에 대한 상세 옵션을 기능별로 구분</li>
<li>이미지와 함께 표현 하여 이해도를 높임</li>
</ul>
</div>
</div>
</div>
<span class="mid_tit m" style="display: none;">
<font class="num">02. </font>블록창
</span>
<div id="content2" class="block">
<span class="sub_tit">
효율적인 작업을 위해<br class="brk"> 블록 라이브러리와 통합 블록창을 제공
</span>
<div class="sub_text">
<span>
다양한 종류의 블록을 라이브러리 형태로 쉽게 찾을 수 있게 제공하며,<br>
블록의 생성과 함께 속성정보 확인 및 수정 등 관리 할 수 있는 통합블록창을 제공합니다.
</span>
</div>
<div class="sub_figs">
<div class="imgs">
<div class="fig01"><span>블록 라이브러리</span></div>
<div class="fig02"><span>블록 상세창</span></div>
<i></i>
</div>
<div class="text">
<b>블록 라이브러리와 연결</b>
<ul>
<li>일반블록, 속성블록, 외부블록(참조)을 하나의 관리창 안에서 확인 및 수정기능 제공</li>
<li>블록 라이브러리와 연계하여 원하는 블록을 쉽게 찾아 추가</li>
</ul>
</div>
</div>
</div>
<span class="mid_tit m" style="display: none;">
<font class="num">03. </font>인쇄창
</span>
<div id="content3" class="print_area">
<span class="sub_tit">
도곽인식기능으로 도면마다<br class="brk"> 영역지정 없이 한번에 편리하게 인쇄
</span>
<div class="sub_text">
도곽영역을 자동으로 인식하여 한 파일 안에 여러장의 도면도, 긴 도면도 문제 없이 쉽게 출력 할 수 있습니다.
</div>
<div class="sub_figs">
<div class="imgs">
<div class="fig01"><span>여러장 도면 인쇄</span></div>
<div class="fig02"><span>길이가 긴 도면 인쇄</span></div>
</div>
<div class="text">
<b>인쇄영역 자동지정 및 도곽영역 및 스케일 자동인식</b>
<ul>
<li>인쇄영역을 일일이 지정하거나 용지길이를 조정할 필요없이 자동으로 인쇄영역을 잡아주는 기능</li>
<li>도곽인식기능으로 여러장의 도면도, 길이가 긴 도면도 관계없이 한번에 출력 가능</li>
<li>사용자가 지정한 블록도 인쇄영역으로 지정 가능</li>
</ul>
</div>
</div>
</div>
</div>
</section>
</div>
<!-- //컨텐츠 시작 -->
<!-- FOOTER -->
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
<!-- //FOOTER -->
</div>
<script>
AOS.init();
const lenis = new Lenis()
lenis.on('scroll', (e) => {
// console.log(e)
})
lenis.on('scroll', ScrollTrigger.update)
gsap.ticker.add((time) => {
lenis.raf(time * 1000)
})
gsap.ticker.lagSmoothing(0)
</script>
</body>
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//descope 로그인, 로그아웃 js
function updateHeaderMenu() {
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
// role 체크 예시 (로그인 시 저장해놓은 값)
var isAdmin = sessionStorage.getItem('userRole') === 'super';
if (isLoggedIn) {
$('.my_join2, .my_login2').show();
$('.my_join, .my_login').hide();
// 마이페이지/관리자 메뉴 동적 출력
if (isAdmin) {
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
} else {
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
}
} else {
$('.my_join2, .my_login2').hide();
$('.my_join, .my_login').show();
$('#my_join2').html(""); // 혹시모를 내용 초기화
}
}
function descopeLogout() {
fetch('/egbim/skin/member/basic/descope_logout.php', {
method: 'POST',
credentials: 'include' // PHPSESSID 쿠키 전송
})
.then(res => {
if (!res.ok) throw new Error('서버 로그아웃 실패');
// 1) 로컬 저장소 정리
// sessionStorage.removeItem("refreshJwt");
// sessionStorage.removeItem("sessionJwt");
// sessionStorage.removeItem("userRole");
// sessionStorage.removeItem("userName");
// sessionStorage.removeItem("loginId");
sessionStorage.clear();
localStorage.clear();
// 2) UI 갱신
updateHeaderMenu();
// 3) 로그인 페이지로 이동
window.location.href = '/egbim/index.php';
})
.catch(err => {
console.error(err);
alert('로그아웃 중 오류가 발생했습니다.');
});
}
$(document).ready(function() {
// 기존에 있던 updateHeaderMenu() 호출 뒤에
$('#my_login2 a').off('click').on('click', function(e){
e.preventDefault();
descopeLogout();
});
});
$(document).ready(function() {
updateHeaderMenu();
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
});
//descope login
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
$.ajax({
url : '/egbim/skin/member/basic/descope_login.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
dataType : "json",
success : function(res){
if(res.status === "ok") {
// 토큰 저장
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
sessionStorage.setItem("sessionJwt", res.sessionJwt);
// ✅ 사용자 정보 저장
if (res.user) {
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
sessionStorage.setItem("userName", res.user.name || '');
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
sessionStorage.setItem("phone", res.user.phone || '');
}
// ✅ 추가: 관리자 등 정보 저장
if(res.user && res.user.roleNames && res.user.roleNames[0])
sessionStorage.setItem("userRole", res.user.roleNames[0]);
else
sessionStorage.removeItem("userRole");
// ✅ 로그인 후 메뉴 갱신
updateHeaderMenu();
// UI 처리
$('.popup_wrap').hide();
$('body').css('overflow', '');
lenis.start();
// alert('로그인 하셨습니다.');
} else {
alert(res.message || "로그인 실패");
// 🔴 실패 횟수에 따라 안내 배너 교체
if (res.failCount && res.failCount >= 8) {
updateLoginBanner("fail");
}
}
},
error : function(err){
alert(err.statusText || "통신 오류");
}
});
});
// ✅ 배너 교체 함수
function updateLoginBanner(type = "default") {
const $banner = $('#login_notice_banner');
if (!$banner.length) return;
if (type === "default") {
$banner.css({ background: "#063e01ff", color: "#fff" });
$banner.find("strong").text("[로그인 시스템 변경 안내]");
$banner.find("p.left").html(`
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
`);
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
}
if (type === "fail") {
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
$banner.find("strong").text("[로그인 시도 제한 안내]");
$banner.find("p.left").html(`
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
10회 이상 실패 시 계정이 잠금 처리됩니다.
`);
$banner.find("p:last").text("");
}
}
//회원가입 약관동의
// $('#fregister button[type=submit]').click(function(e){
// e.preventDefault();
// let agree11 = $('#agree11').val();
// let agree21 = $('#agree21').val();
// $.ajax({
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
// type : "POST",
// datatype : "json",
// contentType: 'application/json; charset=utf-8',
// data : {
// 'agree11' : agree11,
// 'agree21' : agree21
// },
// success : function(data){
// var ss='';
// for(i=0; i<data.length; i++){
// ss=ss + data[i];
// }
// },
// error : function(err){
// alert(err);
// }
// });
// });
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
function getQueryString(name) {
const intro = document.querySelector('.intro_wrap');
intro.style.display = "none";
const mainMask = document.querySelector('.main_mask');
mainMask.classList.add('skip');
// mainMask.style.aimation = 'none';
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(name);
}
$(document).ready(function() {
const popupParam = getQueryString('popup');
if (popupParam === 'signup') {
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
$('#pop_agreement').show(); // 팝업 보여주기
// 스크롤 잠금 (사용 중이면)
$('body').css('overflow', 'hidden');
if (typeof lenis !== 'undefined') {
lenis.stop();
}
}
// 팝업 닫기 버튼 이벤트 연결
$('#pop_agreement .btn_close').on('click', function() {
$('#pop_agreement').hide();
$('body').css('overflow', '');
if (typeof lenis !== 'undefined') {
lenis.start();
}
});
});
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
$(document).ready(function() {
const urlParams = new URLSearchParams(window.location.search);
const popup = urlParams.get('popup');
const token = urlParams.get('t');
if (popup === 'pwreset') {
// 팝업 전체 열기
$('#pop_search').show();
$('body').css('overflow', 'hidden');
// 내부 컨텐츠 모두 숨기기
$('#pop_search .popup_contents_wrap').hide();
if (token) {
// 토큰이 있으면 비밀번호 재설정 단계
if (!sessionStorage.getItem('pwreset_shown')) {
$('#password_reset').show();
sessionStorage.setItem('pwreset_shown', '1');
}
} else {
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
$('#pop_search .popup_contents_wrap').first().show();
}
}
// 닫기 버튼
$('#pop_search .btn_close').on('click', function() {
$('#pop_search').hide();
$('body').css('overflow', '');
});
});
</script>