사용자 매뉴얼·번호알기·gov-portal 대시보드와 메뉴 동선·수불 리포트를 보강한다.
- 사용자 매뉴얼: league/commonmark 기반 bag/manual(로그인 전용), ManualRenderer + Config\Manual manifest, 콘텐츠 8종, E2E - 번호알기(봉투번호확인): bag/number-lookup, BagNumberLookup, E2E - gov-portal 대시보드 시안(기본/strip)·기본코드관리 화면 - 메뉴 관리: 등록·수정 후 메뉴 화면 유지, 수정 버튼 클릭 시 상단 스크롤 - 수불/분석 리포트(LOT 수불·반품/파기·수급계획·추이) 표시 보강 - .gitignore: docs/ → /docs/ 앵커링(최상위 개발문서만 제외, app/Docs는 추적) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Libraries\GovPortalCodeKindsPage;
|
||||
use App\Models\LocalGovernmentModel;
|
||||
|
||||
class Home extends BaseController
|
||||
@@ -118,6 +119,107 @@ class Home extends BaseController
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공공 포털형(국가재난관리정보시스템 스타일) 메인 시안.
|
||||
* URL: /dashboard/gov-portal — 기능은 요약 대시보드와 동일, UI만 별도 레이아웃.
|
||||
*/
|
||||
public function dashboardGovPortal()
|
||||
{
|
||||
if (! session()->get('logged_in')) {
|
||||
return redirect()->to(base_url('login'));
|
||||
}
|
||||
|
||||
helper('admin');
|
||||
|
||||
return view('home/dashboard_gov_portal', gov_portal_dashboard_view_data($this->resolveLgLabel(), 'base'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 공공 포털형 변형 — 가로 MY MENU·와이드 맵·KPI 띠. URL: /dashboard/gov-portal-strip
|
||||
*/
|
||||
public function dashboardGovPortalStrip()
|
||||
{
|
||||
if (! session()->get('logged_in')) {
|
||||
return redirect()->to(base_url('login'));
|
||||
}
|
||||
|
||||
helper('admin');
|
||||
|
||||
return view('home/_dashboard_gov_portal_strip_layout', array_merge(
|
||||
gov_portal_dashboard_view_data($this->resolveLgLabel(), 'strip'),
|
||||
['stripInnerView' => 'home/_dashboard_gov_portal_strip_home_inner']
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 공공 포털형(기본) — 기본 코드관리 UI 시안. URL: /dashboard/gov-portal/code-kinds
|
||||
*/
|
||||
public function dashboardGovPortalCodeKinds()
|
||||
{
|
||||
return $this->renderGovPortalCodeKinds('base');
|
||||
}
|
||||
|
||||
/**
|
||||
* 공공 포털형(변형 strip) — 기본 코드관리 UI 시안. URL: /dashboard/gov-portal-strip/code-kinds
|
||||
*/
|
||||
public function dashboardGovPortalStripCodeKinds()
|
||||
{
|
||||
return $this->renderGovPortalCodeKinds('strip');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \CodeIgniter\HTTP\RedirectResponse|string
|
||||
*/
|
||||
private function renderGovPortalCodeKinds(string $variant)
|
||||
{
|
||||
if (! session()->get('logged_in')) {
|
||||
return redirect()->to(base_url('login'));
|
||||
}
|
||||
|
||||
helper('admin');
|
||||
|
||||
$portalPath = gov_portal_code_kinds_portal_path($variant);
|
||||
$lgIdx = admin_effective_lg_idx();
|
||||
$level = (int) session()->get('mb_level');
|
||||
$filters = [
|
||||
'q_code' => $this->request->getGet('q_code'),
|
||||
'q_name' => $this->request->getGet('q_name'),
|
||||
'q_state' => $this->request->getGet('q_state'),
|
||||
];
|
||||
$builder = new GovPortalCodeKindsPage();
|
||||
$ckIdx = (int) ($this->request->getGet('ck_idx') ?? 0);
|
||||
$pageData = $builder->buildPageData($lgIdx, $level, $lgIdx, $ckIdx, $filters);
|
||||
|
||||
if ($ckIdx === 0 && $pageData['codeKinds'] !== []) {
|
||||
$pageData = $builder->buildPageData(
|
||||
$lgIdx,
|
||||
$level,
|
||||
$lgIdx,
|
||||
(int) $pageData['codeKinds'][0]->ck_idx,
|
||||
$filters
|
||||
);
|
||||
}
|
||||
|
||||
$viewData = array_merge(
|
||||
gov_portal_dashboard_view_data($this->resolveLgLabel(), $variant),
|
||||
$pageData,
|
||||
[
|
||||
'govActiveChildHref' => $portalPath,
|
||||
'pageBaseUrl' => site_url($portalPath),
|
||||
]
|
||||
);
|
||||
|
||||
if ($variant === 'strip') {
|
||||
return view('home/_dashboard_gov_portal_strip_layout', array_merge($viewData, [
|
||||
'stripInnerView' => 'home/_gov_portal_code_kinds_body',
|
||||
'stripIncludeWorkCss' => true,
|
||||
'stripShowProfileLinks' => true,
|
||||
]));
|
||||
}
|
||||
|
||||
return view('home/dashboard_gov_portal_code_kinds', $viewData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 재고 조회(수불) 화면 (목업)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user