Databases.php 수정
Some checks failed
Close Pull Request / main (pull_request_target) Has been cancelled

This commit is contained in:
2025-12-22 13:57:46 +09:00
59 changed files with 9612 additions and 107 deletions

View File

@@ -51,6 +51,7 @@
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/xlsx-js-style@1.2.0/dist/xlsx.full.min.js"></script>
<link href="/architectui/assets/styles/vendors.98288b227c064e6a107f.css" rel="stylesheet">
<link href="/architectui/assets/styles/main.98288b227c064e6a107f.css" rel="stylesheet">

View File

@@ -27,6 +27,123 @@
</div>
<?= $this->renderSection('modals') ?>
<script type="text/javascript">
const tpl = document.querySelector('.my-loader-template')
const usrLevel = <?= session('usr_level') != null ? session('usr_level') : '' ?>
// 실적 조회
function goStats() {
if ($("#statDate").val() === "") {
Swal.fire({
title: "일자를 선택해 주세요.",
icon: "warning",
draggable: true
});
return;
}
$.ajax({
url: '/home/viewStatData',
type: 'GET',
contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
data: { s_date: $("#statDate").val() },
beforeSend: function () {
blockUI.blockPage({
message: tpl
});
},
complete: function () {
blockUI.unblockPage();
},
error: function (xhr) {
console.error("에러", xhr);
},
success: function (data) {
var str = "";
if (String(usrLevel) === "62") {
str = '실적 - 홍보확인서 : ' + data.paper_cnt + ' 건';
} else if (String(usrLevel) === "61") {
str = '실적 - 전화확인 : ' + data.phone_cnt + ' 건';
} else if (String(usrLevel) === "8") {
var sum = Number(data.reg_open_cnt) + Number(data.reg_tempOpen_cnt) + Number(data.real_top_R) + Number(data.real_top_G);
var deung = (Number(data.reg_open_cnt) / sum * 100).toFixed(0);
var ga = (Number(data.reg_tempOpen_cnt) / sum * 100).toFixed(0);
var real = (Number(data.real_top_R) / sum * 100).toFixed(0);
var real_ga = (Number(data.real_top_G) / sum * 100).toFixed(0);
str = '실적 - 등기부등본 : ' + data.reg_open_cnt + ' 건' + ' (' + (deung = + deung || 0) + '%)'
+ ' | 가열람 : ' + data.reg_tempOpen_cnt + ' 건' + ' (' + (ga = + ga || 0) + '%)'
+ ' | 리얼탑 열람 : ' + data.real_top_R + ' 건' + ' (' + (real = + real || 0) + '%)'
+ ' | 리얼탑 기열람 : ' + data.real_top_G + ' 건' + ' (' + (real_ga = + real_ga || 0) + '%)'
} else if (String(usrLevel) === "1" || String(usrLevel) === "60") {
str = '실적 - 홍보확인서 : ' + data.paper_cnt + ' 건 | 전화확인 : ' + data.phone_cnt + ' 건 | 등기부등본 : ' + data.reg_open_cnt + ' 건 | 가열람 : ' + data.reg_tempOpen_cnt + ' 건 ';
}
$('#statView').text(str);
playSlideIn('#statView');
}
});
}
// 팩스조회
function clickFax() {
$.ajax({
url: '/home/getHomeFaxCount',
type: 'GET',
beforeSend: function () {
blockUI.blockPage({
message: tpl
});
},
complete: function () {
blockUI.unblockPage();
},
error: function (xhr) {
console.error("에러", xhr);
},
success: function (data) {
var total = parseInt(data.enfax_count) + parseInt(data.lgfax_count);
$('#fax1').text(data.base_time + '시 부터 : 엔팩스 ' + data.enfax_count + ' 건 | LG ' + data.lgfax_count + ' 건 | 총 ' + total + ' 건');
playSlideIn('#fax1');
}
});
}
function playSlideIn(selector) {
const $el = $(selector);
// 이전 애니메이션 클래스 제거
$el.removeClass('slide-in-left');
// 강제 리플로우(브라우저가 다시 계산하게 해서 애니메이션 재시작되도록)
// DOM 객체가 있는 경우에만
if ($el.length > 0 && $el[0]) {
void $el[0].offsetWidth;
}
// 새로 클래스 추가해서 애니메이션 시작
$el.addClass('slide-in-left');
// 애니메이션 끝나면 클래스 제거 (다음번에도 다시 재생되도록)
$el.one('animationend', function () {
$(this).removeClass('slide-in-left');
});
}
document.addEventListener("DOMContentLoaded", function () {
const today = new Date().toISOString().slice(0, 10);
document.getElementById("statDate").value = today;
});
</script>
</body>
</html>

View File

@@ -33,75 +33,6 @@
<div class="scrollbar-sidebar">
<div class="app-sidebar__inner">
<ul class="vertical-nav-menu">
<!-- <li class="app-sidebar__heading">Dashboards</li>
<li>
<a href="index.html">
<i class="metismenu-icon pe-7s-rocket"></i>
DASHBOARD
</a>
</li> -->
<!--
<li class="app-sidebar__heading">UI Components</li>
<li>
<a href="#">
<i class="metismenu-icon pe-7s-diamond"></i>
Elements
<i class="metismenu-state-icon pe-7s-angle-down caret-left"></i>
</a>
<ul>
<li>
<a href="elements-buttons-standard.html">
<i class="metismenu-icon"></i>
Buttons
</a>
</li>
<li>
<a href="elements-dropdowns.html">
<i class="metismenu-icon">
</i>Dropdowns
</a>
</li>
<li>
<a href="elements-icons.html">
<i class="metismenu-icon">
</i>Icons
</a>
</li>
<li>
<a href="elements-badges-labels.html">
<i class="metismenu-icon">
</i>Badges
</a>
</li>
<li>
<a href="elements-cards.html">
<i class="metismenu-icon">
</i>Cards
</a>
</li>
<li>
<a href="elements-list-group.html">
<i class="metismenu-icon">
</i>List Groups
</a>
</li>
<li>
<a href="elements-navigation.html">
<i class="metismenu-icon">
</i>Navigation Menus
</a>
</li>
<li>
<a href="elements-utilities.html">
<i class="metismenu-icon">
</i>Utilities
</a>
</li>
</ul>
</li>
-->
<li class="app-sidebar__heading">컨펌스
<?php
@@ -155,22 +86,36 @@
</li>
<?php $path = strtok($_SERVER['REQUEST_URI'], '?'); ?>
<?php foreach ($mMenu as $menu): ?>
<li>
<?php if ($menu["mnu_pid"] == '0') { ?>
<a href="#">
<?php
// 이 부모(menu)의 자식 중 현재 path와 일치하는 메뉴가 있는지 체크
$hasActiveChild = false;
foreach ($sMenu as $subMenu) {
if ($menu["mnu_id"] == $subMenu["mnu_pid"] && $path === $subMenu["mnu_url"]) {
$hasActiveChild = true;
break;
}
}
?>
<li class="<?= $hasActiveChild ? 'mm-active' : '' ?>">
<?php if ($menu["mnu_pid"] == '0'): ?>
<a href="#" class="<?= $hasActiveChild ? 'mm-active' : '' ?>">
<i class="metismenu-icon <?= $icons[$menu['mnu_id']] ?>"></i>
<?= $menu["mnu_nm"] ?>
<i class="metismenu-state-icon pe-7s-angle-down caret-left"></i>
</a>
<?php } ?>
<?php endif; ?>
<ul>
<?php foreach ($sMenu as $subMenu): ?>
<?php if ($menu["mnu_id"] == $subMenu["mnu_pid"]): ?>
<li>
<a href="<?= $subMenu["mnu_url"] ?>">
<a href="<?= $subMenu["mnu_url"] ?>"
class="<?= $path === $subMenu['mnu_url'] ? 'mm-active' : '' ?>">
<i class="metismenu-icon"></i>
<?= $subMenu["mnu_nm"] ?>
</a>
@@ -183,6 +128,7 @@
<?php endforeach; ?>
</ul>
</div>
</div>

View File

@@ -1,3 +1,48 @@
<style>
.no-wrap {
white-space: nowrap;
}
.header-divider {
width: 1px;
height: 22px;
background-color: rgba(0, 0, 0, 0);
margin: 0 10px;
}
.gap-2 {
gap: 1.5rem !important;
}
.top-stat-text,
.top-fax-text {
color: #000;
max-width: 520px;
/* white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 400px; */
font-size: 0.8rem;
}
/* 애니메이션 클래스 */
.slide-in-left {
animation: slideInLeft 0.5s ease-out;
}
@keyframes slideInLeft {
from {
transform: translateX(-40px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
</style>
<div class="app-header header-shadow">
<div class="app-header__logo">
<div class="logo-src"></div>
@@ -31,6 +76,25 @@
</span>
</div>
<div class="app-header__content">
<div class="app-header-left d-flex flex-column flex-lg-row align-items-start align-items-lg-center gap-2">
<!-- 통계 -->
<div class="d-flex align-items-center gap-2 flex-nowrap">
<input type="date" class="form-control form-control-sm iText hasDatepicker" name="statDate"
id="statDate" style="width: 120px;">
<span onclick="goStats()" class="text-muted" style="cursor:pointer;">조회</span>
<span id="statView" class="top-stat-text">
</span>
</div>
<div class="header-divider d-none d-lg-block"></div>
<!-- 팩스 -->
<div class="d-flex align-items-center gap-2">
<span onclick="clickFax()" class="text-muted" style="cursor:pointer;"> </span>
<span id="fax1" class="top-fax-text">
</span>
</div>
</div>
<!-- <div class="app-header-left">
<div class="search-wrapper">
<div class="input-holder">