import 'package:crmweb/AnasayfaPk/AnasayfaPage.dart'; import 'package:crmweb/GenelAyarlarPk/GenelAyarlarPage.dart'; import 'package:crmweb/HkisteklerPk/HkistekPage.dart'; import 'package:crmweb/SabitText.dart'; import 'package:crmweb/TanimlamalarPk/ArizaTanimPk/AltArizaIstekTanimPage.dart'; import 'package:crmweb/TanimlamalarPk/ArizaTanimPk/ArizaIstekTanimPage.dart'; import 'package:crmweb/TanimlamalarPk/HkTanimPk/HkAltIstekTanimPage.dart'; import 'package:crmweb/TanimlamalarPk/HkTanimPk/HkAnaIstekTanimPage.dart'; import 'package:crmweb/TanimlamalarPk/TeknikServisPersonelTanimPage.dart'; import 'package:flutter/material.dart';
import 'TeknikServisArizaPk/TeknikServisArizaPage.dart';
void main() { runApp(MyApp()); }
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Always Open Menu Demo', theme: ThemeData.light(), debugShowCheckedModeBanner: false, home: MyHomePage(), ); } }
class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); }
class _MyHomePageState extends State<MyHomePage> { String _contentTitle = 'Home'; // Başlangıç içerik başlığı
void _changeContentTitle(String newTitle) { setState(() { _contentTitle = newTitle; }); }
@override Widget build(BuildContext context) { return Scaffold( body: Row( children: [ NavigationMenu(onSelect: _changeContentTitle), Expanded( child: Center( child: bodyContent(), ), ), ], ), ); }
Widget bodyContent() { switch (_contentTitle) { case SabitText.teknikservisarizalar: return TeknikServisArizaPage(); case SabitText.hkistekler: return HkistekPage(); case SabitText.arizaistektanim: return ArizaIstekTanimPage(); case SabitText.altarizaistektanim: return AltArizaIstekTanimPage(); case SabitText.hkanaistektanim: return HkAnaIstekTanimPage(); case SabitText.hkaltistektanim: return HkAltIstekTanimPage(); case SabitText.teknikservispersoneltanim: return TeknikServisPersonelTanimPage(); case SabitText.genelAyarlar: return GenelAyarlarPage(); case SabitText.anasayfa: return AnasayfaPage(); default: return AnasayfaPage(); } } }
class NavigationMenu extends StatelessWidget { final Function(String) onSelect;
NavigationMenu({required this.onSelect});
@override Widget build(BuildContext context) { return Container( width: 300, child: ListView( children: <Widget>[ Container( height: 70, color: Colors.blue, child: ListTile( leading: Icon( Icons.business, color: Colors.white, ), onTap: () { onSelect(SabitText.anasayfa); }, //contentPadding: EdgeInsets.all(0), title: Text( "RMOS CRM WEB",textAlign: TextAlign.center, style: TextStyle( fontSize: 24, fontWeight: FontWeight.bold, color: Colors.white), ), subtitle: Text("v0.0.1",textAlign: TextAlign.center, style: TextStyle( fontSize: 17, fontWeight: FontWeight.bold, color: Colors.white),), ), ), _buildTile( SabitText.teknikservisarizalar, Icon( Icons.announcement, color: Colors.amber, )), _buildTile( SabitText.hkistekler, Icon( Icons.api, color: Colors.lightBlue, )), Card( child: ExpansionTile( leading: Icon(Icons.settings_applications_rounded), title: Text('TANIMLAMALAR'), children: [ _buildExpansionTile( 'Arıza Tanımları', [SabitText.arizaistektanim, SabitText.altarizaistektanim], true), _buildExpansionTile( 'HK İstek Tanımları', [SabitText.hkanaistektanim, SabitText.hkaltistektanim], true), _buildTile( SabitText.teknikservispersoneltanim, Icon( Icons.people, color: Colors.amberAccent, )), ], ), ), _buildTile( SabitText.genelAyarlar, Icon( Icons.settings, color: Colors.black, )), ], ), ); }
Widget _buildTile(String title, Icon icon) { return Card( child: Container( child: ListTile( leading: icon, title: Text(title), onTap: () { onSelect(title); }, ), ), ); }
Widget _buildExpansionTile( String title, List<String> children, bool soldanKaysin) { return Padding( padding: soldanKaysin == true ? EdgeInsets.only(left: 20) : EdgeInsets.only(left: 0), child: Card( child: Container( child: ExpansionTile( title: Text(title), children: children .map((child) => Padding( padding: const EdgeInsets.only(left: 20), // Sadece çocukları kaydır child: Card( child: ListTile( leading: Icon( Icons.arrow_forward_rounded, color: Colors.amber.shade800, ), title: Text(child), onTap: () { onSelect(child); }, ), ), )) .toList(), ), ), ), ); } }
|