feat: 리포트 첫 진입 자동조회 + 글자 확대(탭·대메뉴 포함, 버튼 고정)
- 수급 계획·반품/파기 현황·기간별 봉투 수불 현황: 첫 진입에도 기본 조건 자동 조회 - 글자 확대 시 탭 텍스트·상단 대메뉴(font-size)도 확대, A−/A+ 버튼은 위치·크기 고정 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2560,7 +2560,8 @@ class SalesReport extends BaseController
|
||||
return redirect()->to(work_area_home_url())->with('error', '지자체를 선택해 주세요.');
|
||||
}
|
||||
|
||||
$queried = $this->request->getGet('search') === '1';
|
||||
// 첫 진입(search 파라미터 없음)에도 기본 조건(이번 달·불출)으로 자동 조회해 바로 표시한다.
|
||||
$queried = ($this->request->getGet('search') ?? '1') === '1';
|
||||
$startDate = (string) ($this->request->getGet('start_date') ?? date('Y-m-01'));
|
||||
$endDate = (string) ($this->request->getGet('end_date') ?? date('Y-m-d'));
|
||||
if ($startDate > $endDate) {
|
||||
@@ -3189,7 +3190,8 @@ class SalesReport extends BaseController
|
||||
$salesScope = 'all';
|
||||
}
|
||||
|
||||
$queried = $this->request->getGet('search') === '1';
|
||||
// 첫 진입(search 파라미터 없음)에도 기본 조건(오늘·40일·ALL)으로 자동 조회해 바로 표시한다.
|
||||
$queried = ($this->request->getGet('search') ?? '1') === '1';
|
||||
$built = (new \App\Libraries\BagSupplyPlanBuilder())->build(
|
||||
$lgIdx,
|
||||
$refDate,
|
||||
|
||||
@@ -3302,7 +3302,8 @@ SQL);
|
||||
public function flow(): string
|
||||
{
|
||||
$lgIdx = $this->lgIdx();
|
||||
$queried = $this->request->getGet('search') === '1'
|
||||
// 첫 진입(search 파라미터 없음)에도 기본 조건(이번 달·전체)으로 자동 조회해 바로 표시한다.
|
||||
$queried = ($this->request->getGet('search') ?? '1') === '1'
|
||||
|| $this->request->getGet('start_date') !== null
|
||||
|| $this->request->getGet('end_date') !== null;
|
||||
|
||||
|
||||
@@ -170,13 +170,17 @@ tailwind.config = {
|
||||
// 글씨 크기 조절(A−/A+) — 본문 + 상단 대메뉴 + 좌측 사이드바에 zoom 적용. 사이트/워크스페이스와 배율 공유.
|
||||
(function () {
|
||||
var FONT_KEY = 'jrj_font_scale';
|
||||
var scaleSelectors = ['.portal-header', '.sidebar', '.work-main'];
|
||||
// 상단 헤더는 제외 → A−/A+ 버튼이 커지거나 밀리지 않아 연속 클릭이 편하다.
|
||||
var scaleSelectors = ['.sidebar', '.work-main'];
|
||||
function curScale() { var s = parseInt(localStorage.getItem(FONT_KEY) || '100', 10); return (s >= 70 && s <= 150) ? s : 100; }
|
||||
function applyScale(s) {
|
||||
s = Math.min(150, Math.max(70, s));
|
||||
try { localStorage.setItem(FONT_KEY, String(s)); } catch (e) {}
|
||||
var z = s / 100;
|
||||
scaleSelectors.forEach(function (sel) { var el = document.querySelector(sel); if (el) el.style.zoom = z; });
|
||||
// 상단 대메뉴는 font-size 만 키운다(바 높이 48px 고정 → A−/A+ 버튼이 안 밀림).
|
||||
var topnav = document.querySelector('.portal-top-nav');
|
||||
if (topnav) topnav.style.fontSize = (0.875 * z).toFixed(4) + 'rem';
|
||||
var pct = document.getElementById('wsFontPct'); if (pct) pct.textContent = s + '%';
|
||||
}
|
||||
applyScale(curScale());
|
||||
|
||||
@@ -264,15 +264,19 @@ tailwind.config = {
|
||||
document.addEventListener('mousemove', function (e) { if (!dragging) return; var w = window.innerWidth - e.clientX; drawer.style.width = Math.min(window.innerWidth * 0.92, Math.max(300, w)) + 'px'; });
|
||||
document.addEventListener('mouseup', function () { if (!dragging) return; dragging = false; ov.style.display = 'none'; document.body.style.userSelect = ''; });
|
||||
|
||||
// 글씨 크기 조절 — 본문 + 상단 대메뉴 + 좌측 사이드바(메뉴)에 zoom 적용.
|
||||
// 글씨 크기 조절 — 본문 + 좌측 사이드바에 zoom 적용.
|
||||
// 상단 헤더는 제외 → A−/A+ 버튼이 커지거나 밀리지 않아 연속 클릭이 편하다.
|
||||
var FONT_KEY = 'jrj_font_scale';
|
||||
var scaleSelectors = ['.portal-header', '.sidebar', '.work-main'];
|
||||
var scaleSelectors = ['.sidebar', '.work-main'];
|
||||
function curScale() { var s = parseInt(localStorage.getItem(FONT_KEY) || '100', 10); return (s >= 70 && s <= 150) ? s : 100; }
|
||||
function applyScale(s) {
|
||||
s = Math.min(150, Math.max(70, s));
|
||||
try { localStorage.setItem(FONT_KEY, String(s)); } catch (e) {}
|
||||
var z = s / 100;
|
||||
scaleSelectors.forEach(function (sel) { var el = document.querySelector(sel); if (el) el.style.zoom = z; });
|
||||
// 상단 대메뉴는 font-size 만 키운다(바 높이 48px 고정 → A−/A+ 버튼이 안 밀림).
|
||||
var topnav = document.querySelector('.portal-top-nav');
|
||||
if (topnav) topnav.style.fontSize = (0.875 * z).toFixed(4) + 'rem';
|
||||
var pct = document.getElementById('wsFontPct'); if (pct) pct.textContent = s + '%';
|
||||
}
|
||||
applyScale(curScale());
|
||||
|
||||
@@ -490,10 +490,13 @@ if ($effectiveLgIdx) {
|
||||
var pct = document.getElementById('wsFontPct'); if (pct) pct.textContent = s + '%';
|
||||
// 탭(iframe) 내용
|
||||
Object.keys(tabs).forEach(function (k) { try { tabs[k].frame.contentDocument.documentElement.style.zoom = z; } catch (e) {} });
|
||||
// 셸 메뉴(상단 대메뉴 + 좌측 사이드바)도 함께 확대
|
||||
['.portal-header', '.sidebar'].forEach(function (sel) {
|
||||
// 좌측 사이드바 + 탭 바 텍스트도 함께 확대.
|
||||
['.sidebar', '#wsTabBar'].forEach(function (sel) {
|
||||
var el = document.querySelector(sel); if (el) el.style.zoom = z;
|
||||
});
|
||||
// 상단 대메뉴는 font-size 만 키운다(바 높이 48px 고정 → A−/A+ 버튼이 안 밀림).
|
||||
var topnav = document.querySelector('.portal-top-nav');
|
||||
if (topnav) topnav.style.fontSize = (0.875 * z).toFixed(4) + 'rem';
|
||||
}
|
||||
(function () {
|
||||
setFontScale(curFontScale()); // 저장된 배율을 셸 메뉴에도 적용(초기 로드)
|
||||
|
||||
Reference in New Issue
Block a user