Update: 2026-08-02 22:51:18

This commit is contained in:
Hamza-Ayed
2026-08-02 22:51:18 +03:00
parent c9af364cbc
commit 2c962bf80a
39 changed files with 627 additions and 191 deletions
@@ -1,3 +1,4 @@
import 'package:siro_admin/constant/theme.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
@@ -342,7 +343,7 @@ class _MapTabState extends State<_MapTab> with AutomaticKeepAliveClientMixin {
label: 'إيرادات اليوم',
value: _fmt(revToday),
sub: '${revChange >= 0 ? '+' : ''}${revChange.toStringAsFixed(1)}% عن الأمس',
subColor: revChange >= 0 ? const Color(0xFF10B981) : cs.error,
subColor: revChange >= 0 ? cs.success : cs.error,
icon: Icons.attach_money_rounded,
),
_StatCard(
@@ -380,7 +381,7 @@ class _MapTabState extends State<_MapTab> with AutomaticKeepAliveClientMixin {
(v) => setState(() => showGap = v)),
_LayerChip('كثافة الطلب', showHeatmap, Colors.orange,
(v) => setState(() => showHeatmap = v)),
_LayerChip('مواقع الكباتن', showSupply, const Color(0xFF10B981),
_LayerChip('مواقع الكباتن', showSupply, cs.success,
(v) => setState(() => showSupply = v)),
_LayerChip('أسعار المنافسين', showPricing, cs.tertiary,
(v) => setState(() => showPricing = v)),
@@ -409,7 +410,7 @@ class _MapTabState extends State<_MapTab> with AutomaticKeepAliveClientMixin {
point: LatLng(lat, lng),
color: gap > 0
? Colors.redAccent.withValues(alpha: 0.3 + intensity * 0.5)
: const Color(0xFF10B981).withValues(alpha: 0.4),
: cs.success.withValues(alpha: 0.4),
borderStrokeWidth: 0,
radius: 12 + intensity * 8,
));
@@ -442,7 +443,7 @@ class _MapTabState extends State<_MapTab> with AutomaticKeepAliveClientMixin {
if (lat == 0 || lng == 0) continue;
markers.add(CircleMarker(
point: LatLng(lat, lng),
color: const Color(0xFF10B981).withValues(alpha: 0.5),
color: cs.success.withValues(alpha: 0.5),
borderStrokeWidth: 1,
borderColor: Colors.white.withValues(alpha: 0.4),
radius: 6 + supply.clamp(0, 10).toDouble(),
@@ -561,7 +562,7 @@ class _MapTabState extends State<_MapTab> with AutomaticKeepAliveClientMixin {
if (statuses.isEmpty) return const SizedBox.shrink();
final colors = {
'Finished': const Color(0xFF10B981),
'Finished': cs.success,
'wait': cs.tertiary,
'started': cs.tertiary,
'arrived': cs.primary,
@@ -701,7 +702,7 @@ class _MarketTab extends StatelessWidget {
cs.error,
cs.tertiary,
cs.tertiary,
const Color(0xFF10B981),
cs.success,
cs.primary,
];
final hours = <String>{};
@@ -940,7 +941,7 @@ class _FleetTab extends StatelessWidget {
cs.tertiary,
cs.tertiary,
cs.primary,
const Color(0xFF10B981),
cs.success,
cs.onSurfaceVariant,
const Color(0xFFfd79a8),
];
@@ -994,7 +995,7 @@ class _FleetTab extends StatelessWidget {
return FlSpot(
e.key.toDouble(), _toDouble(e.value['company_profit']));
}).toList(),
color: const Color(0xFF10B981),
color: cs.success,
barWidth: 2,
dotData: const FlDotData(show: false),
isCurved: true,
@@ -1109,7 +1110,7 @@ class _GrowthTab extends StatelessWidget {
final pct = ((last - prev) / prev * 100).toStringAsFixed(1);
weekChange = '${double.parse(pct) >= 0 ? '+' : ''}$pct% عن الأسبوع السابق';
weekColor =
double.parse(pct) >= 0 ? const Color(0xFF10B981) : cs.error;
double.parse(pct) >= 0 ? cs.success : cs.error;
}
}