From 5c2726541941b394bcd7b387d3b718bfe03ef3d8 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Mon, 5 Jun 2023 11:22:10 -0300 Subject: [PATCH] criada a tela perfil_screen.dart --- lib/models/aluno_model.dart | 17 ++++++ lib/screens/perfil_screen.dart | 72 ++++++++++++++++++++++++ lib/screens/seleciona_filho_screen.dart | 24 ++++---- lib/screens/situacao_escolar_screen.dart | 10 +++- lib/widgets/alert_default.dart | 40 +++++++++++++ lib/widgets/drawer_custom.dart | 63 +++++++++++++++++---- lib/widgets/item_drawer.dart | 8 ++- lib/widgets/item_perfil.dart | 26 +++++++++ 8 files changed, 228 insertions(+), 32 deletions(-) create mode 100644 lib/models/aluno_model.dart create mode 100644 lib/screens/perfil_screen.dart create mode 100644 lib/widgets/alert_default.dart create mode 100644 lib/widgets/item_perfil.dart diff --git a/lib/models/aluno_model.dart b/lib/models/aluno_model.dart new file mode 100644 index 0000000..50570c1 --- /dev/null +++ b/lib/models/aluno_model.dart @@ -0,0 +1,17 @@ +class AlunoModel{ + String nome; + String foto; + String ra; + String escola; + int idade; + int anoEscolar; + + AlunoModel({ + required this.nome, + required this.foto, + required this.ra, + required this.escola, + required this.idade, + required this.anoEscolar, +}); +} \ No newline at end of file diff --git a/lib/screens/perfil_screen.dart b/lib/screens/perfil_screen.dart new file mode 100644 index 0000000..0f62519 --- /dev/null +++ b/lib/screens/perfil_screen.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/models/aluno_model.dart'; +import 'package:rkm_educa_app/utils/colors.dart'; +import 'package:rkm_educa_app/widgets/alert_default.dart'; +import 'package:rkm_educa_app/widgets/appbar_custom.dart'; +import 'package:rkm_educa_app/widgets/drawer_custom.dart'; +import 'package:rkm_educa_app/widgets/text_custom.dart'; + +import '../widgets/item_perfil.dart'; + +class PerfilScreen extends StatefulWidget { + AlunoModel alunoModel; + + PerfilScreen({ + required this.alunoModel +}); + + @override + State createState() => _PerfilScreenState(); +} + +class _PerfilScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarCustom().appbar(context, 'PERFIL'), + drawer: DrawerCustom(alunoModel: widget.alunoModel), + body: ListView( + padding: EdgeInsets.symmetric(vertical: 50,horizontal: 20), + children: [ + CircleAvatar( + radius: 70, + child: ClipRRect( + borderRadius:BorderRadius.circular(70), + child: Image.asset(widget.alunoModel.foto), + ) + ), + SizedBox(height: 25,), + ItemPerfil(texto: widget.alunoModel.nome,titulo: 'Nome',), + ItemPerfil(texto: widget.alunoModel.idade.toString()+' anos',titulo: 'Idade',), + ItemPerfil(texto: widget.alunoModel.anoEscolar.toString(),titulo: 'Ano Escolar',), + ItemPerfil(texto: widget.alunoModel.ra,titulo: 'RA',), + Row( + children: [ + ItemPerfil(texto: widget.alunoModel.escola,titulo: 'Escola',), + IconButton( + onPressed: ()=> + AlertDefault().alert( + context, + '', + 'Fechar', + Column( + mainAxisSize: MainAxisSize.min, + children: [ + ItemPerfil(texto: 'José Oliveira', titulo: 'Diretor(a)'), + ItemPerfil(texto: 'Luiz Araújo', titulo: 'Coordenador(a)'), + ItemPerfil(texto: '', titulo: 'Tefelones:'), + ItemPerfil(texto: 'Coordenação - (15) 3275 - 1234', titulo: ''), + ItemPerfil(texto: 'Secretaroa - (15) 3275 - 1234', titulo: ''), + ], + ), + ), + icon: Icon(Icons.visibility,color: PaletteColors.grey), + padding: EdgeInsets.all(0), + ) + ], + ), + ], + ), + ); + } +} diff --git a/lib/screens/seleciona_filho_screen.dart b/lib/screens/seleciona_filho_screen.dart index 7bae652..00f6685 100644 --- a/lib/screens/seleciona_filho_screen.dart +++ b/lib/screens/seleciona_filho_screen.dart @@ -1,14 +1,10 @@ -import 'dart:convert'; - import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/models/aluno_model.dart'; import 'package:rkm_educa_app/screens/situacao_escolar_screen.dart'; import 'package:rkm_educa_app/widgets/appbar_custom.dart'; -import '../controllers/main_controllers.dart'; import '../utils/colors.dart'; import '../widgets/buttom_custom.dart'; -import '../widgets/input_text.dart'; import '../widgets/snackBars.dart'; -import 'package:http/http.dart' as http; import '../widgets/text_custom.dart'; @@ -21,10 +17,10 @@ class SelecionaFilhoScreen extends StatefulWidget { class _SelecionaFilhoScreenState extends State { - String? select; - List alunos = [ - "Maria da Silva", - "João da Silva" + AlunoModel? alunoModel; + List alunos = [ + AlunoModel(nome: "Maria da Silva", foto: "assets/images/aluna.jpeg", ra: '000.000.000-08', escola: 'EMEI Profª Therezinha de Jesus Alguz', idade: 14, anoEscolar: 2023), + AlunoModel(nome: "João da Silva", foto: "assets/images/aluno.jpeg", ra: '000.000.000-10', escola: 'EMEI Profª Ernestina Loureiro Miranda', idade: 12, anoEscolar: 2023), ]; @override @@ -63,13 +59,13 @@ class _SelecionaFilhoScreenState extends State { padding: const EdgeInsets.all(8.0), child: TextCustom(text: 'Selecione'), ), - value: select, + value: alunoModel, items: alunos.map((value) => DropdownMenuItem( value: value, child: Padding( padding: const EdgeInsets.all(8.0), child: TextCustom( - text: value, + text: value.nome, color: Colors.black54, ), ), @@ -77,7 +73,7 @@ class _SelecionaFilhoScreenState extends State { ).toList(), onChanged: (value){ setState(() { - select = value!; + alunoModel = value!; }); }, ), @@ -95,10 +91,10 @@ class _SelecionaFilhoScreenState extends State { colorButton: PaletteColors.primaryColor, colorBorder: PaletteColors.primaryColor, onPressed: () { - if(select!=null){ + if(alunoModel!=null){ Navigator.push( context, - MaterialPageRoute(builder: (context) => SituacaoEscolarScreen()), + MaterialPageRoute(builder: (context) => SituacaoEscolarScreen(alunoModel: alunoModel!,)), ); }else{ showSnackBar(context, 'Selecione um estudante para avançar', Colors.red); diff --git a/lib/screens/situacao_escolar_screen.dart b/lib/screens/situacao_escolar_screen.dart index 01d23ce..72f190a 100644 --- a/lib/screens/situacao_escolar_screen.dart +++ b/lib/screens/situacao_escolar_screen.dart @@ -1,11 +1,15 @@ import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/models/aluno_model.dart'; import 'package:rkm_educa_app/utils/colors.dart'; import 'package:rkm_educa_app/widgets/text_custom.dart'; - import '../widgets/drawer_custom.dart'; class SituacaoEscolarScreen extends StatefulWidget { - const SituacaoEscolarScreen({Key? key}) : super(key: key); + AlunoModel alunoModel; + + SituacaoEscolarScreen({ + required this.alunoModel + }); @override State createState() => _SituacaoEscolarScreenState(); @@ -30,7 +34,7 @@ class _SituacaoEscolarScreenState extends State { ) ], ), - drawer: DrawerCustom(), + drawer: DrawerCustom(alunoModel: widget.alunoModel), body: ListView( children: [ Center( diff --git a/lib/widgets/alert_default.dart b/lib/widgets/alert_default.dart new file mode 100644 index 0000000..e174e9c --- /dev/null +++ b/lib/widgets/alert_default.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/utils/colors.dart'; +import 'package:rkm_educa_app/widgets/buttom_custom.dart'; +import 'package:rkm_educa_app/widgets/text_custom.dart'; + +class AlertDefault{ + alert(BuildContext context,String title,String textButtom,Widget subtitle,) { + + double width = MediaQuery.of(context).size.width; + double height = MediaQuery.of(context).size.height; + + return showDialog( + context: context, + builder: (context){ + return AlertDialog( + title: TextCustom( + text: title, + color: Colors.black54, + textAlign: TextAlign.center, + fontWeight: FontWeight.bold, + ), + content: subtitle, + actions: [ + ButtonCustom( + onPressed: ()=>Navigator.pop(context), + text: textButtom, + widthCustom: 0.2, + heightCustom: 0.05, + size: 14, + colorText: Colors.white, + colorBorder: PaletteColors.grey, + colorButton: PaletteColors.grey, + ) + ], + actionsAlignment: MainAxisAlignment.center, + ); + } + ); + } +} \ No newline at end of file diff --git a/lib/widgets/drawer_custom.dart b/lib/widgets/drawer_custom.dart index b585051..1a96109 100644 --- a/lib/widgets/drawer_custom.dart +++ b/lib/widgets/drawer_custom.dart @@ -1,13 +1,17 @@ import 'package:flutter/material.dart'; import 'package:line_icons/line_icons.dart'; +import 'package:rkm_educa_app/models/aluno_model.dart'; import 'package:rkm_educa_app/screens/login_screen.dart'; +import 'package:rkm_educa_app/screens/perfil_screen.dart'; import 'package:rkm_educa_app/utils/colors.dart'; import 'package:rkm_educa_app/widgets/text_custom.dart'; - import 'item_drawer.dart'; class DrawerCustom extends StatelessWidget { - const DrawerCustom({Key? key}) : super(key: key); + AlunoModel alunoModel; + DrawerCustom({ + required this.alunoModel +}); @override Widget build(BuildContext context) { @@ -23,32 +27,67 @@ class DrawerCustom extends StatelessWidget { radius: 70, child: ClipRRect( borderRadius:BorderRadius.circular(70), - child: Image.asset("assets/images/aluna.jpeg"), + child: Image.asset(alunoModel.foto), ) ), Padding( padding: const EdgeInsets.all(8.0), - child: TextCustom(text: 'Maria da Silva',fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.center), + child: TextCustom(text: alunoModel.nome,fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.center), ), Container( height: height*0.5, child: ListView( children: [ - ItemDrawer(icone: LineIcons.userCircle,texto: 'Perfil',), + ItemDrawer( + icone: LineIcons.userCircle, + texto: 'Perfil', + onPressed: ()=> Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => PerfilScreen(alunoModel: alunoModel,)), + ), + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.clipboardList,texto: 'Boletim Escolar',), + ItemDrawer( + icone: LineIcons.clipboardList, + texto: 'Boletim Escolar', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.fileContract,texto: 'Histórico Escolar',), + ItemDrawer( + icone: LineIcons.fileContract, + texto: 'Histórico Escolar', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.checkSquareAlt,texto: 'Chamadas / Presenças',), + ItemDrawer( + icone: LineIcons.checkSquareAlt, + texto: 'Chamadas / Presenças', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.calendarAlt,texto: 'Agenda Escolar',), + ItemDrawer( + icone: LineIcons.calendarAlt, + texto: 'Agenda Escolar', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.calendarTimes,texto: 'Eventos Escolares',), + ItemDrawer( + icone: LineIcons.calendarTimes, + texto: 'Eventos Escolares', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.mobilePhone,texto: 'Contatos',), + ItemDrawer( + icone: LineIcons.mobilePhone, + texto: 'Contatos', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), - ItemDrawer(icone: LineIcons.bus,texto: 'Passe',), + ItemDrawer( + icone: LineIcons.bus, + texto: 'Passe', + onPressed: (){}, + ), Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ], ), diff --git a/lib/widgets/item_drawer.dart b/lib/widgets/item_drawer.dart index 0eef516..a67b820 100644 --- a/lib/widgets/item_drawer.dart +++ b/lib/widgets/item_drawer.dart @@ -6,10 +6,12 @@ import '../utils/colors.dart'; class ItemDrawer extends StatelessWidget { IconData icone; String texto; + var onPressed; ItemDrawer({ - required this.texto, - required this.icone + required this.texto, + required this.icone, + required this.onPressed }); @override @@ -19,7 +21,7 @@ class ItemDrawer extends StatelessWidget { padding: EdgeInsets.symmetric(horizontal: width*0.07), alignment: Alignment.centerLeft, child: TextButton.icon( - onPressed: (){}, + onPressed: onPressed, icon: Icon(icone,color: PaletteColors.grey,), label: TextCustom(text: texto,size: 16.0,) ), diff --git a/lib/widgets/item_perfil.dart b/lib/widgets/item_perfil.dart new file mode 100644 index 0000000..1b64070 --- /dev/null +++ b/lib/widgets/item_perfil.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/widgets/text_custom.dart'; + +class ItemPerfil extends StatelessWidget { + String texto; + String titulo; + + ItemPerfil({ + required this.texto, + required this.titulo, +}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: Row( + children: [ + TextCustom(text: titulo,size: 14.0,fontWeight: FontWeight.bold,), + SizedBox(width: 10,), + TextCustom(text: texto,size: 14.0), + ], + ), + ); + } +}