ajustes de inputs com apenas numeros, mascaras, textos

This commit is contained in:
Reginaldo
2024-02-09 16:14:44 -03:00
parent a94bff8ebd
commit 8cf5569840
10 changed files with 176 additions and 79 deletions

View File

@@ -15,7 +15,7 @@ class ConstVariable{
'PE','PI','PO','PR','QH','RJ','RM','RN','RO','RR','RN','RO','RR','RS','SC','SE','SF','SJ','SP','TA','TO',
'VC','XX','ZU','-','--',''];
List<String> itensProceduresStart = [
'ATENDIMENTO INDIVIDUAL',
'ATEND. INDIVIDUAL',
'VISTA DOMICILIAR'
];
List<String> listNationality =[
@@ -106,33 +106,33 @@ class ConstVariable{
List serviceHomeCheckConditionlist = [
'ACAMADO',
'DOMICILIADO',
'ÚLCERAS / FERIDAS (GRAU III OU IV)',
'ACOMPANHAMENTO NUTRICIONAL',
'USO DE SONDA NASO-GRÁSTRICA - SNG',
'USO DE SONDA NASO-ENTERAL - SNE',
'USO DE GASTRONOMIA',
'USO DE COLOSTOMIA',
'USO DE CISTOSTOMIA',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'ACOMPANHAMENTO PRÉ-OPERATÓRIO',
'ACOMPANHAMENTO PÓS-OPERATÓRIO',
'ACOMP.NUTRICIONAL',
'ACOMP.PÓS-OPERATÓRIO',
'ACOMP.PRÉ-OPERATÓRIO',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CUIDADOS PALIATIVOS NÃO ONCOLÓGICO',
'CUIDADOS PALIATIVOS ONCOLÓGICO',
'CUIDADOS PALIATIVOS NÃO-ONCOLÓGICO',
'OXIGENOTERAPIA DOMICILIAR',
'USO DE TRAQUEOSTOMIA',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIENE BUCAL',
'SUPORTE VENTILATÓRIO NÃO INVASICO - CPAP',
'SUPORTE VENTILATÓRIO NÃO INVASICO - BIPAP',
'DIÁLISE PERITONIAL',
'PARACENTESE',
'DOMICILIADO',
'MEDICAÇÃO PARENTERAL',
'OXIGENOTERAPIA DOMICILIAR',
'PARACENTESE',
'REABILITAÇÃO DOMICILIAR',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - BIPAP',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - CPAP',
'ÚLCERAS / FERIDAS (GRAU III OU IV)',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIÊNE BRÔNQUICA',
'USO DE CISTOSTOMIA',
'USO DE COLOSTOMIA',
'USO DE GASTROSTOMIA',
'USO DE SONDA NASOENTERAL - SNE',
'USO DE SONDA NASOGRÁSTRICA - SNG',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'USO DE TRAQUEOSTOMIA',
];
List serviceHomeCheckProclist = [
'ACOMPANHAMENTO DE PACIENTE EM REABILITAÇÃO',
'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA',
@@ -140,16 +140,16 @@ class ConstVariable{
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
'SONDAGEM GÁSTRICA',
'ATENDIMENTO MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'TERAPIA DE REIDRATAÇÃO ORAL',
'ATENDIMENTO/ACOMPANHAMENTO EM REABILITAÇÃO NAS MÚLTIPLS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTAL',
'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTERAL',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIF/NÃO ESPECIFICADA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS',
@@ -168,12 +168,12 @@ class ConstVariable{
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL OU CONGÊNERES'),
DropDownDataModel(cod: 10,title: 'UNIDADE SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'HOSPITAL'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATENDIMENTO'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATEND.'),
DropDownDataModel(cod: 13,title: 'CACON/UNACON'),
];
List<DropDownDataModel> typeService = [
DropDownDataModel(cod: 7,title: 'ATENDIMENTO PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATENDIMENTO NÃO PROGRAMADO'),
DropDownDataModel(cod: 7,title: 'ATEND. PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATEND. NÃO PROGRAMADO'),
DropDownDataModel(cod: 9,title: 'VISITA DOMICILIAR PÓS ÓBITO'),
];
List<DropDownDataModel> typeModelService = [
@@ -191,7 +191,7 @@ class ConstVariable{
'CONSULTA AGENDADA',
'DEMANDA ESPONTÂNEA - ESCUTA INICIAL/ORIENTAÇÃO',
'DEMANDA ESPONTÂNEA - CONSULTA NO DIA',
'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA',
'DEMANDA ESPONTÂNEA - ATEND. DE EMERGÊNCIA',
];
List<DropDownDataModel> listBreed = [
DropDownDataModel(cod: 4, title: 'AMARELA'),
@@ -465,7 +465,7 @@ class ConstVariable{
DropDownDataModel(cod: 4, title: 'AFONICA'),
DropDownDataModel(cod: 5, title: 'AUDITIVA'),
DropDownDataModel(cod:10, title: 'FISICA'),
DropDownDataModel(cod: 2, title: 'IGNORADO'),
// DropDownDataModel(cod: 2, title: 'IGNORADO'),
DropDownDataModel(cod: 6, title: 'INTELECTUAL'),
DropDownDataModel(cod: 7, title: 'MOTORA'),
DropDownDataModel(cod: 8, title: 'MULTIPLA'),

View File

@@ -76,7 +76,7 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
// print(tableINNERJOINCIDADAO_DOMICILIO);
await DBQuerys().cadIndividuais().then((response)async{
tableCADASTROS_INDIVIDUAIS = response;
// print(tableCADASTROS_INDIVIDUAIS);
print(tableCADASTROS_INDIVIDUAIS);
await DBQuerys().atendsIndivCompl().then((response)async{
tableATENDS_INDIV_COMPL = response;
// print(tableATENDS_INDIV_COMPL);
@@ -253,6 +253,9 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
});
print(urlAPI);
print(mode);
print(nameCityApi);
setState(() {});
}
@@ -418,7 +421,7 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username,)), (Route<dynamic> route) => false),
),
):Container(),
done?Padding(

View File

@@ -150,6 +150,7 @@ class _HomeScreenState extends State<HomeScreen> {
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}',
onTap: ()async {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
print(showResults[index]['CD_USUARIO_SUS']);
Navigator.push(
context,
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),

View File

@@ -418,7 +418,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'ID_LOGR_TIPO' : idTipo,
'NOME_LOGR' : selectStreet,
'CEP_LOGR' : cepController.text.isNotEmpty?int.parse(cepController.text):0,
'NUMERO_LOGR' : numberController.text.isNotEmpty?int.parse(numberController.text):0,
'NUMERO_LOGR' : numberController.text.isNotEmpty && numberController.text!='N/A'?int.parse(numberController.text):0,
'LOTEAMENTO_LOGR' : selectSubdivision,
'COMPL_LOGR' : complementController.text,
'PONTO_REFERENCIA' : referencePointController.text,
@@ -627,7 +627,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
observationController.text = widget.listData[0]['OBSERVACOES'];
CPFController.text = widget.listData[0]['CPF'].toString();
CNSController.text = widget.listData[0]['CNS'];
voterController.text = widget.listData[0]['TITULO_ELEITOR'].toString()??'';
voterController.text = widget.listData[0]['TITULO_ELEITOR']==null?'':widget.listData[0]['TITULO_ELEITOR'].toString()??'';
RGController.text = widget.listData[0]['RG_NUMERO'].toString()=='null'?'':widget.listData[0]['RG_NUMERO'].toString();
RGComplementController.text = widget.listData[0]['RG_COMPLEMENTO'].toString();
selectRGUF = widget.listData[0]['RG_UF']??'';
@@ -1464,7 +1464,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {
checkBoxNumber = value!;
if(checkBoxNumber){
numberController.text = '0';
numberController.text = 'N/A';
}else{
numberController.clear();
}
@@ -1569,9 +1569,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'Telefone - DDD',
widthInput: width*0.7,
widthSubtitle: width*0.7,
maxLength: 3,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1579,11 +1582,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Telefone (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Telefone(Só Números)',
maxLength: 8,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1594,8 +1600,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
maxLength: 3,
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1603,11 +1612,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Celular (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Celular (Só Números)',
maxLength: 9,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1615,11 +1627,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Recado - DDD',
errorInput: 'Campo Obrigatório',
labelInput: 'Recado - DDD',
maxLength: 3,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1627,11 +1642,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Recado (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Recado (Só Números)',
maxLength: 9,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1644,6 +1662,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.emailAddress,
onChanged: (v)=>setState((){}),
),
],
@@ -1719,7 +1738,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
maxLength: 14,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CpfInputFormatter()
],
onChanged: (v)async{
if(CPFController.text.isNotEmpty){
checkCPF = await MainControllers().validaCPF(v,editing);
@@ -1740,8 +1765,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
maxLength: 15,
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)async{
//783107557570002
if(CNSController.text.isNotEmpty){
@@ -1772,11 +1800,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'RG',
errorInput: 'Campo Obrigatório',
labelInput: 'RG',
maxLength: 8,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1786,9 +1817,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'RG - Complemento',
widthInput: width*0.7,
widthSubtitle: width*0.7,
maxLength: 1,
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(
@@ -1981,6 +2015,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(

View File

@@ -99,6 +99,9 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
bool HIGIENE_BUCAL = false;
bool OUTROS_HIGIENE = false;
bool CNS_VALIDO = false;
bool FIBROMIALGIA = false;
bool TRANSTORNO_ESPECTRO_AUTISTA = false;
bool edit = false;
bool editing = false;
bool mandatory = false;
@@ -221,23 +224,21 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
loadCadIndividual()async{
ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
print(widget.listData[0]['ID_USUARIO_CADASTRO']);
Database db = await DbSqliteLoad().intialDB();
print(widget.listData[0]['ID_CAD_INDIVIDUAL']);
print(ID_CIDADAO);
await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{
// print(CD_USUARIO_SUS);
if(dataCitizen.length != 0) {
ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO'];
print(dataCitizen[0]['ID_RESP_CADASTRO']);
// print(dataCitizen[0]['FIBROMIALGIA']);
// print(dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']);
TIPO_SALVAR = 'update';
showTab = true;
FORA_AREA = dataCitizen[0]['FORA_AREA'] == 1 ? true : false;
ID_EQUIPE = dataCitizen[0]['ID_EQUIPE']??0;
STATUS_CADASTRO = dataCitizen[0]['STATUS_CADASTRO'] == null? false : dataCitizen[0]['STATUS_CADASTRO'] == 1 ? true : false;
RESPONSAVEL_FAMILIAR = dataCitizen[0]['RESPONSAVEL_FAMILIAR'] == 1 ? true : false;
FIBROMIALGIA = dataCitizen[0]['FIBROMIALGIA']==1?true:false;
TRANSTORNO_ESPECTRO_AUTISTA = dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']==1?true:false;
if(dataCitizen[0]['INE']!=null){
INE = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['ID_AREA_CIDADAO']} - Microárea : ${dataCitizen[0]['ID_MICROAREA_CIDADAO']}';
INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}';
@@ -438,7 +439,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
});
if(ID_PROFISSIONAL!=0){
await DBQuerys().buscaProfissionalCadInd(ID_PROFISSIONAL).then((value)async{
print(value);
// print(value);
USUARIO_RESP_CADASTRO.text = value['NOME_PROFISSIONAL'];
//aguardando unidade
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(value['ID_UNIDADE']);
@@ -515,6 +516,8 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'TUBERCULOSE' : TUBERCULOSE?1:2,
'CANCER' : CANCER?1:2,
'INTERNACAO' : INTERNACAO?1:2,
'FIBROMIALGIA' : FIBROMIALGIA?1:2,
'TRANSTORNO_ESPECTRO_AUTISTA': TRANSTORNO_ESPECTRO_AUTISTA?1:2,
'MOTIVO' : MOTIVO.text,
'DOENCA_CARDIACA' : DOENCA_CARDIACA_COD,
'PROBLEMA_RINS' : PROBLEMA_RINS_COD,
@@ -1177,6 +1180,18 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
value: CANCER,
onChanged: !editing?null: (value)=>setState(()=>CANCER = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Fibromialgia',
value: FIBROMIALGIA ,
onChanged: !editing?null: (value)=>setState(()=>FIBROMIALGIA = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Transtorno Espectro Autista',
value: TRANSTORNO_ESPECTRO_AUTISTA,
onChanged: !editing?null: (value)=>setState(()=>TRANSTORNO_ESPECTRO_AUTISTA = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Internação nos Últimos 12 Meses',

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/screens/home_screen.dart';
@@ -533,10 +534,11 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
)
);
return CheckBoxSubtitle(
ontap:DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true),
subtitle: tipoVisitaModel[index].subtitle,
checkbox:tipoVisitaModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>tipoVisitaModel[index].check=value),
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoVisitaModel[index].check=value),
);
}
),
@@ -548,8 +550,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: VACINA,
subtitle1: 'CONSULTA',
subtitle2: 'VACINA',
onChanged1: (value)=>setState(()=>CONSULTA=value),
onChanged2: (value)=>setState(()=>VACINA=value),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONSULTA=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>VACINA=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>VACINA?VACINA=false:VACINA=true),
),
CheckBoxTwoSubtitle(
width: width*0.7,
@@ -557,8 +561,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: CONDICIONALIDADES,
subtitle1: 'EXAME',
subtitle2: 'CONDICIONALIDADES',
onChanged1: (value)=>setState(()=>EXAME=value),
onChanged2: (value)=>setState(()=>CONDICIONALIDADES=value),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>EXAME=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONDICIONALIDADES=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>EXAME?EXAME=false:EXAME=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true),
),
TitleContainers(title: 'Controle Ambiental',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
CheckBoxTwoSubtitle(
@@ -567,8 +573,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: ACAO_MECANICA,
subtitle1: 'AÇÃO EDUCATIVA',
subtitle2: 'AÇÃO MECÂNICA',
onChanged1: (value)=>setState(()=>ACAO_EDUCATIVA=value),
onChanged2: (value)=>setState(()=>ACAO_MECANICA=value),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>ACAO_EDUCATIVA=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>ACAO_MECANICA=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>ACAO_EDUCATIVA?ACAO_EDUCATIVA=false:ACAO_EDUCATIVA=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>ACAO_MECANICA?ACAO_MECANICA=false:ACAO_MECANICA=true),
),
CheckBoxTwoSubtitle(
width: width*0.7,
@@ -576,8 +584,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: TRATAMENTO_FOCAL,
subtitle1: 'IMÓVEL COM FOCO',
subtitle2: 'TRATAMENTO FOCAL',
onChanged1: (value)=>setState(()=>IMOVEL_FOCO=value),
onChanged2: (value)=>setState(()=>TRATAMENTO_FOCAL=value),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>IMOVEL_FOCO=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>TRATAMENTO_FOCAL=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>IMOVEL_FOCO?IMOVEL_FOCO=false:IMOVEL_FOCO=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>TRATAMENTO_FOCAL?TRATAMENTO_FOCAL=false:TRATAMENTO_FOCAL=true),
),
TitleContainers(title: 'Acompanhamento',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
Container(
@@ -597,7 +607,7 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
subtitle: tipoAcompanhamentoModel[index].subtitle,
checkbox:tipoAcompanhamentoModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value),
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value),
);
}
),
@@ -656,6 +666,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: true,
maxLength: 7,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -668,6 +681,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: true,
maxLength: 4,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
],

View File

@@ -9,31 +9,36 @@ class CheckBoxSubtitle extends StatelessWidget {
bool checkbox;
var onChanged;
double fontSize;
var ontap;
CheckBoxSubtitle({
this.width = double.infinity,
required this.checkbox,
required this.subtitle,
required this.onChanged,
this.fontSize = 14
this.fontSize = 14,
this.ontap = null
});
@override
Widget build(BuildContext context) {
return Container(
width: width,
child: Row(
children: [
Checkbox(
value: checkbox,
onChanged: onChanged
),
Container(
width: width,
child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,)
),
],
return GestureDetector(
onTap: ontap,
child: Container(
width: width,
child: Row(
children: [
Checkbox(
value: checkbox,
onChanged: onChanged
),
Container(
width: width,
child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,maxLines: 2,)
),
],
),
),
);
}

View File

@@ -11,6 +11,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
bool checkbox2;
var onChanged1;
var onChanged2;
var ontap1;
var ontap2;
CheckBoxTwoSubtitle({
this.width = double.infinity,
@@ -20,6 +22,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
required this.subtitle2,
required this.onChanged1,
required this.onChanged2,
this.ontap1 = null,
this.ontap2 = null,
});
@override
@@ -33,18 +37,24 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
value: checkbox1,
onChanged: onChanged1
),
Container(
width: width/2.5,
child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,)
GestureDetector(
onTap: ontap1,
child: Container(
width: width/2.5,
child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,)
),
),
Spacer(),
Checkbox(
value: checkbox2,
onChanged: onChanged2
),
Container(
width: width/3,
child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54)
GestureDetector(
onTap: ontap2,
child: Container(
width: width/3,
child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54)
),
),
],
),

View File

@@ -15,6 +15,8 @@ class InputText extends StatelessWidget {
int maxLines;
Color colorBorder;
var onChanged;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputText({
required this.controller,
@@ -27,7 +29,9 @@ class InputText extends StatelessWidget {
this.maxLines = 1,
this.colorBorder = ColorPalette.black54,
this.onChanged = null,
});
this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override
Widget build(BuildContext context) {
@@ -39,9 +43,8 @@ class InputText extends StatelessWidget {
keyboardType: textInputType,
maxLines: maxLines,
onChanged: onChanged,
inputFormatters: [
FormatText()
],
maxLength: maxLength,
inputFormatters: inputFormatters,
obscureText: this.obscure,
controller: this.controller,
style: TextStyle(

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/widgets/title_input.dart';
import '../config/color_palette.dart';
import '../controllers/format_txt.dart';
import 'error_default.dart';
import 'input_text.dart';
@@ -20,6 +22,8 @@ class InputWithSubtitle extends StatelessWidget {
int maxLines;
Color colorBorder;
String typeInput;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputWithSubtitle({
required this.subtitle,
@@ -36,8 +40,10 @@ class InputWithSubtitle extends StatelessWidget {
this.maxLines = 1,
this.colorBorder = ColorPalette.white,
required this.onChanged,
this.widthError = 0.7
});
this.widthError = 0.7,
this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override
Widget build(BuildContext context) {
@@ -57,6 +63,8 @@ class InputWithSubtitle extends StatelessWidget {
maxLines:maxLines,
colorBorder: colorBorder,
onChanged: onChanged,
maxLength: maxLength,
inputFormatters: inputFormatters,
),
typeInput=='normal'&&(enabled&&mandatory) && (labelInput=='Nome' && splited.length<=1) ?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),
typeInput!='normal'&&(enabled&&mandatory)&& errorInput!=''?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),