🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / flutter web admin panel kullanımı

1-) FLUTTER - flutter web admin panel kullanımı

 

 

bu güzel gibi : https://pub.dev/packages/side_navigation/example

 

 

Example daki kodu al direkt çalıştır

 

 

flutter pub add side_navigation

 

 

import 'package:crmweb/AnasayfaPk/AnasayfaPage.dart';
import 'package:flutter/material.dart';
import 'package:side_navigation/side_navigation.dart';

void main() {
  runApp(
    
MaterialApp(
      theme:
ThemeData.dark(),debugShowCheckedModeBanner: false,
      home:  
MainView(),
    ),
  );
}

class MainView extends StatefulWidget {
   MainView({Key? key}) :
super(key: key);

  
@override
  
_MainViewState createState() => _MainViewState();
}

class _MainViewState extends State<MainView> {
  
/// Views to display
  
List<Widget> views =  [
    
AnasayfaPage(),
    
Center(
      child:
Text('Account'),
    ),
    
Center(
      child:
Text('Ayarlar'),
    ),
  ];

  
/// The currently selected index of the bar
  
int selectedIndex = 0;

  
@override
  
Widget build(BuildContext context) {
    
return Scaffold(
      
/// You can use an AppBar if you want to
      //appBar: AppBar(
      //  title:  Text('App'),
      //),

      // The row is needed to display the current view
      
body: Row(
        children: [
          
/// Pretty similar to the BottomNavigationBar!
          
SideNavigationBar(
            selectedIndex:
selectedIndex,
            items:  [
              
SideNavigationBarItem(
                icon: Icons.
dashboard,
                label:
'Anasayfa',
              ),
              
SideNavigationBarItem(
                icon: Icons.
person,
                label:
'Account',
              ),


              
SideNavigationBarItem(
                icon: Icons.
settings,
                label:
'Ayarlar',
              ),


            ],

            header:
SideNavigationBarHeader(
                image:
CircleAvatar(
                  child:
Icon(Icons.account_balance),
                ),
                title:
Text('RMOS CRM WEB'),
                subtitle:
Text('')
            ),
            footer:
SideNavigationBarFooter(
                label:
Text('v0.0.1')
            ),
            onTap: (index) {
              setState(() {
                
selectedIndex = index;
              });
            },
          ),

          
/// Make it take the rest of the available width
          
Expanded(
            child:
views.elementAt(selectedIndex),
          )
        ],
      ),
    );
  }
}

 

 

 

İKİNCİ PANEL

https://pub.dev/packages/flutter_inner_drawer/install

 

ÜÇÜNCÜ DİĞER

 

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(),
          ),
        ),
      ),
    );
  }
}



 

 

 

 2023 Kasım 02 Perşembe
 226