프로젝트 최초 커밋

This commit is contained in:
JiWoong Sul
2025-07-02 17:45:44 +09:00
commit e346f83c97
235 changed files with 23139 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
import 'package:flutter/material.dart';
import 'package:superport/screens/common/theme_tailwind.dart';
import 'package:superport/screens/common/layout_components.dart';
// 대시보드 통계 카드 그리드 위젯 (SRP, 재사용성)
class StatsGrid extends StatelessWidget {
final int totalCompanies;
final int totalUsers;
final int totalLicenses;
final int totalEquipmentIn;
final int totalEquipmentOut;
const StatsGrid({
super.key,
required this.totalCompanies,
required this.totalUsers,
required this.totalLicenses,
required this.totalEquipmentIn,
required this.totalEquipmentOut,
});
@override
Widget build(BuildContext context) {
return GridView.count(
crossAxisCount: 3,
crossAxisSpacing: 16,
mainAxisSpacing: 16,
shrinkWrap: true,
childAspectRatio: 2.5,
physics: const NeverScrollableScrollPhysics(),
children: [
MetronicStatsCard(
title: '등록된 회사',
value: '$totalCompanies',
icon: Icons.business,
iconBackgroundColor: AppThemeTailwind.info,
showTrend: true,
trendPercentage: 2.5,
isPositiveTrend: true,
),
MetronicStatsCard(
title: '등록된 사용자',
value: '$totalUsers',
icon: Icons.person,
iconBackgroundColor: AppThemeTailwind.primary,
showTrend: true,
trendPercentage: 3.7,
isPositiveTrend: true,
),
MetronicStatsCard(
title: '유효 라이센스',
value: '$totalLicenses',
icon: Icons.vpn_key,
iconBackgroundColor: AppThemeTailwind.secondary,
),
MetronicStatsCard(
title: '총 장비 입고',
value: '$totalEquipmentIn',
icon: Icons.input,
iconBackgroundColor: AppThemeTailwind.success,
showTrend: true,
trendPercentage: 1.8,
isPositiveTrend: true,
),
MetronicStatsCard(
title: '총 장비 출고',
value: '$totalEquipmentOut',
icon: Icons.output,
iconBackgroundColor: AppThemeTailwind.warning,
),
MetronicStatsCard(
title: '현재 재고',
value: '${totalEquipmentIn - totalEquipmentOut}',
icon: Icons.inventory_2,
iconBackgroundColor: AppThemeTailwind.danger,
showTrend: true,
trendPercentage: 0.7,
isPositiveTrend: false,
),
],
);
}
}