시스템관리 페이지 추가

This commit is contained in:
yangsh
2025-12-11 16:48:03 +09:00
parent 533d6b5d6b
commit 7324d2d9ba
38 changed files with 5291 additions and 188 deletions

View File

@@ -25,7 +25,6 @@ class Menu extends BaseController
$params = [];
$total = $this->menuModel->getTotalCount();
$datas = $this->menuModel->getMenuList($params);
@@ -133,93 +132,37 @@ class Menu extends BaseController
}
// private function buildTree(array $items, $parentId = 'ROOT', int $level = 0): array
// {
// $branch = [];
// 메뉴정보저장
public function saveMenu()
{
try {
// $lft = 1;
// foreach ($items as $k => $item) {
$data = [
'mnu_pid' => $this->request->getPost('mnu_pid'),
'mnu_id' => $this->request->getPost('mnu_id'),
'mnu_nm' => $this->request->getPost('mnu_nm'),
'mnu_url' => $this->request->getPost('mnu_url'),
'mnu_tp' => $this->request->getPost('mnu_tp'),
'view_odr' => $this->request->getPost('view_odr'),
'use_yn' => $this->request->getPost('use_yn'),
'usr_sq' => session('usr_sq'),
];
// // 현재 parentId의 자식인지 확인
// if ($item['mnu_pid'] === $parentId) {
// $item['lft'] = $lft;
// INSERT UPDATE menu
$this->menuModel->saveMenu($data);
// if ($item['mnu_tp'] === 'R') {
// $item['isLeaf'] = false;
// $item['rgt'] = 1 + (63 * 2 + 1);
// } else if ($item['mnu_tp'] === 'D') {
// $item['level'] = 1;
// $item['menu_tp'] = 'D';
// $item['menu_tp_nm'] = '디렉토리';
// $item['iconCls'] = 'ui-icon-folder-open';
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
// $subCnt = 0;
// foreach ($items as $item2):
// if (strpos($item2['mnu_id'], $item['mnu_id'] . '.') === 0) {
// $subCnt++;
// }
// endforeach;
// $item['rgt'] = $lft + ($subCnt * 2) + 1;
// if ($subCnt === 0) {
// $item['isLeaf'] = true;
// } else {
// $item['isLeaf'] = false;
// }
// } else if ($item['mnu_tp'] == 'P') {
// $item['level'] = 2;
// $item['menu_tp'] = 'R';
// $item['menu_tp_nm'] = '화면';
// $item['iconCls'] = 'ui-icon-document';
// }
// // else {
// // // 예: 루트 R 같은 경우
// // $item['menu_tp'] = $item['mnu_tp'];
// // $item['menu_tp_nm'] = ($item['mnu_tp'] === 'R') ? '루트' : '메뉴';
// // $item['iconCls'] = 'ui-icon-home';
// // }
// // 자식 찾기 (⚠️ 여기 반드시 $this->buildTree)
// // $children = $this->buildTree($items, $item['mnu_id'], $level + 1);
// // if (!empty($children)) {
// // // 자식 정렬 (view_odr → mnu_id 순)
// // usort($children, function ($a, $b) {
// // $ao = $a['view_odr'] ?? 0;
// // $bo = $b['view_odr'] ?? 0;
// // if ($ao == $bo) {
// // return strcmp($a['mnu_id'], $b['mnu_id']);
// // }
// // return $ao <=> $bo;
// // });
// // $item['children'] = $children;
// // }
// $branch[] = $item;
// }
// $lft++;
// }
// // 현재 레벨도 정렬 (view_odr → mnu_id 순)
// usort($branch, function ($a, $b) {
// $ao = $a['view_odr'] ?? 0;
// $bo = $b['view_odr'] ?? 0;
// if ($ao == $bo) {
// return strcmp($a['mnu_id'], $b['mnu_id']);
// }
// return $ao <=> $bo;
// });
// return $branch;
// }
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
}