어드민 메뉴 목록 추가/수정에 접근 가능 최소 회원 레벨 항목 추가

This commit is contained in:
2026-01-20 20:07:02 +09:00
parent 4baaeb3c1d
commit c544c2375f
2 changed files with 21 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ export interface AdminMenu {
menuName: string; menuName: string;
iconName?: string; iconName?: string;
menuUrl?: string; menuUrl?: string;
level: number;
} }
// 페이징 정보 인터페이스 // 페이징 정보 인터페이스

View File

@@ -170,6 +170,7 @@ const AdminMenuManagement: React.FC = () => {
menuName: '', menuName: '',
iconName: '', iconName: '',
menuUrl: '', menuUrl: '',
level: 1000,
}); });
// 현재 보고 있는 부모 메뉴 seq (0이면 최상위) // 현재 보고 있는 부모 메뉴 seq (0이면 최상위)
@@ -329,6 +330,7 @@ const AdminMenuManagement: React.FC = () => {
menuName: '', menuName: '',
iconName: '', iconName: '',
menuUrl: '', menuUrl: '',
level: 1000,
}); });
setModalVisible(true); setModalVisible(true);
}; };
@@ -364,7 +366,7 @@ const AdminMenuManagement: React.FC = () => {
const { name, value } = e.target; const { name, value } = e.target;
setFormData((prev) => ({ setFormData((prev) => ({
...prev, ...prev,
[name]: name === 'parentSeq' || name === 'menuOrder' ? parseInt(value) || 0 : value, [name]: name === 'parentSeq' || name === 'menuOrder' || name === 'level' ? parseInt(value) || 0 : value,
})); }));
}; };
@@ -485,6 +487,9 @@ const AdminMenuManagement: React.FC = () => {
{!isCompact && ( {!isCompact && (
<CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: '60px' }}></CTableHeaderCell> <CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: '60px' }}></CTableHeaderCell>
)} )}
{!isCompact && (
<CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: '80px' }}></CTableHeaderCell>
)}
<CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: isCompact ? 'auto' : '180px' }}> </CTableHeaderCell> <CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: isCompact ? 'auto' : '180px' }}> </CTableHeaderCell>
{!isCompact && ( {!isCompact && (
<CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: 'auto' }}>URL</CTableHeaderCell> <CTableHeaderCell className="bg-body-tertiary text-center" style={{ width: 'auto' }}>URL</CTableHeaderCell>
@@ -518,6 +523,9 @@ const AdminMenuManagement: React.FC = () => {
)} )}
</CTableDataCell> </CTableDataCell>
)} )}
{!isCompact && (
<CTableDataCell className="text-center">{menu.level}</CTableDataCell>
)}
<CTableDataCell className="text-center"> <CTableDataCell className="text-center">
<div <div
style={{ style={{
@@ -753,6 +761,17 @@ const AdminMenuManagement: React.FC = () => {
placeholder="/admin/example (선택사항)" placeholder="/admin/example (선택사항)"
/> />
</div> </div>
<div className="mb-3">
<CFormLabel htmlFor="level"> </CFormLabel>
<CFormInput
type="number"
id="level"
name="level"
value={formData.level}
onChange={handleInputChange}
placeholder="메뉴 접근에 필요한 최소 회원 레벨을 입력하세요 (기본 1000)"
/>
</div>
</CForm> </CForm>
</CModalBody> </CModalBody>
<CModalFooter> <CModalFooter>