criada a tela perfil_screen.dart

This commit is contained in:
Reginaldo
2023-06-05 11:22:10 -03:00
parent 8623f372b7
commit 5c27265419
8 changed files with 228 additions and 32 deletions

View File

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

View File

@@ -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<PerfilScreen> createState() => _PerfilScreenState();
}
class _PerfilScreenState extends State<PerfilScreen> {
@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),
)
],
),
],
),
);
}
}

View File

@@ -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<SelecionaFilhoScreen> {
String? select;
List<String> alunos = [
"Maria da Silva",
"João da Silva"
AlunoModel? alunoModel;
List<AlunoModel> 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<SelecionaFilhoScreen> {
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<SelecionaFilhoScreen> {
).toList(),
onChanged: (value){
setState(() {
select = value!;
alunoModel = value!;
});
},
),
@@ -95,10 +91,10 @@ class _SelecionaFilhoScreenState extends State<SelecionaFilhoScreen> {
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);

View File

@@ -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<SituacaoEscolarScreen> createState() => _SituacaoEscolarScreenState();
@@ -30,7 +34,7 @@ class _SituacaoEscolarScreenState extends State<SituacaoEscolarScreen> {
)
],
),
drawer: DrawerCustom(),
drawer: DrawerCustom(alunoModel: widget.alunoModel),
body: ListView(
children: [
Center(

View File

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

View File

@@ -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),),
],
),

View File

@@ -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,)
),

View File

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