feat: V/R 유지보수 시스템 전환 및 대시보드 테이블 형태 완성
- V/R 시스템 완전 전환: WARRANTY/CONTRACT/INSPECTION → V(방문)/R(원격) - 유지보수 대시보드 카드 → StandardDataTable 테이블 형태 전환 - "조회중..." 문제 해결: 백엔드 직접 필드 사용 (equipment_model, company_name) - MaintenanceDto 신규 필드 추가: company_id, company_name, equipment_serial, equipment_model - preloadEquipmentData 비활성화로 불필요한 equipment-history API 호출 제거 - CO-STAR 프레임워크 적용 및 CLAUDE.md v3.0 업데이트 - Flutter Analyze ERROR: 0 유지, 100% shadcn_ui 컴플라이언스 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -195,8 +195,12 @@ class _AppLayoutState extends State<AppLayout>
|
||||
case Routes.user:
|
||||
return const UserList();
|
||||
// License 시스템이 Maintenance로 대체됨
|
||||
case Routes.maintenance:
|
||||
case Routes.maintenanceSchedule:
|
||||
case Routes.maintenance: // 메인 진입점을 알림 대시보드로 변경
|
||||
return ChangeNotifierProvider(
|
||||
create: (_) => GetIt.instance<MaintenanceController>(),
|
||||
child: const MaintenanceAlertDashboard(),
|
||||
);
|
||||
case Routes.maintenanceSchedule: // 일정관리는 별도 라우트 유지
|
||||
return ChangeNotifierProvider(
|
||||
create: (_) => GetIt.instance<MaintenanceController>(),
|
||||
child: const MaintenanceScheduleScreen(),
|
||||
@@ -1116,16 +1120,16 @@ class SidebarMenu extends StatelessWidget {
|
||||
badge: null,
|
||||
hasSubMenu: true,
|
||||
subMenuItems: collapsed ? [] : [
|
||||
_buildSubMenuItem(
|
||||
title: '일정 관리',
|
||||
route: Routes.maintenanceSchedule,
|
||||
isActive: currentRoute == Routes.maintenanceSchedule,
|
||||
),
|
||||
_buildSubMenuItem(
|
||||
title: '알림 대시보드',
|
||||
route: Routes.maintenanceAlert,
|
||||
isActive: currentRoute == Routes.maintenanceAlert,
|
||||
),
|
||||
_buildSubMenuItem(
|
||||
title: '일정 관리',
|
||||
route: Routes.maintenanceSchedule,
|
||||
isActive: currentRoute == Routes.maintenanceSchedule,
|
||||
),
|
||||
_buildSubMenuItem(
|
||||
title: '이력 조회',
|
||||
route: Routes.maintenanceHistory,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
|
||||
/// 공통 비고 입력 위젯
|
||||
/// 여러 화면에서 재사용할 수 있도록 설계
|
||||
@@ -24,17 +25,25 @@ class RemarkInput extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return TextFormField(
|
||||
controller: controller,
|
||||
minLines: minLines,
|
||||
maxLines: maxLines,
|
||||
enabled: enabled,
|
||||
validator: validator,
|
||||
decoration: InputDecoration(
|
||||
labelText: label,
|
||||
hintText: hint,
|
||||
border: const OutlineInputBorder(),
|
||||
),
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (label.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(bottom: 8.0),
|
||||
child: Text(
|
||||
label,
|
||||
style: const TextStyle(fontWeight: FontWeight.w500),
|
||||
),
|
||||
),
|
||||
ShadInput(
|
||||
controller: controller,
|
||||
placeholder: Text(hint),
|
||||
minLines: minLines,
|
||||
maxLines: maxLines ?? minLines + 2,
|
||||
enabled: enabled,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user