From 8dee43f2b7ba1dba03fb2ad753818d07cce13de4 Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Thu, 4 Feb 2021 09:54:13 +0800 Subject: [PATCH] update radio box logical --- lib/pages/life_pay/life_pay_page.dart | 83 ++++++++++--------- .../life_pay/widget/life_pay_detail_page.dart | 21 ++--- 2 files changed, 55 insertions(+), 49 deletions(-) diff --git a/lib/pages/life_pay/life_pay_page.dart b/lib/pages/life_pay/life_pay_page.dart index 7a687947..60a2c16e 100644 --- a/lib/pages/life_pay/life_pay_page.dart +++ b/lib/pages/life_pay/life_pay_page.dart @@ -37,20 +37,19 @@ class SelectList { class _LifePayPageState extends State { EasyRefreshController _controller; - List selectItems = []; + // List selectItems = []; List _selectYears = []; - List _models; - bool get isAllSelect => _models.length == _selectYears.length; + List _models = []; - int _getLength(LifePayModel model) { - int count = 0; - model.dailyPaymentTypeVos.forEach((element) { - element.detailedVoList.forEach((element) { - count++; - }); - }); - return count; - } + // int _getLength(LifePayModel model) { + // int count = 0; + // model.dailyPaymentTypeVos.forEach((element) { + // element.detailedVoList.forEach((element) { + // count++; + // }); + // }); + // return count; + // } @override void initState() { @@ -125,29 +124,35 @@ class _LifePayPageState extends State { children: [ GestureDetector( onTap: () { - if (selectItems[index].selected.length == - _getLength(model)) { - selectItems[index].value = false; - selectItems[index].selected.clear(); + // if (selectItems[index].selected.length == + // _getLength(model)) { + // selectItems[index].value = false; + // selectItems[index].selected.clear(); + // _selectYears.remove(index); + // } else { + // selectItems[index].value = true; + // _selectYears.add(index); + // for (var i = 0; i < model.dailyPaymentTypeVos.length; i++) { + // for (var j = 0; + // i < + // model + // .dailyPaymentTypeVos[i].detailedVoList.length; + // i++) { + // String id = model.dailyPaymentTypeVos[i].id.toString() + + // model.dailyPaymentTypeVos[i].detailedVoList[j] + // .groupId + // .toString(); + // if (!selectItems[index].selected.contains(id)) { + // selectItems[index].selected.add(id); + // } + // } + // } + // } + // setState(() {}); + if (_selectYears.contains(index)) { _selectYears.remove(index); } else { - selectItems[index].value = true; _selectYears.add(index); - for (var i = 0; i < model.dailyPaymentTypeVos.length; i++) { - for (var j = 0; - i < - model - .dailyPaymentTypeVos[i].detailedVoList.length; - i++) { - String id = model.dailyPaymentTypeVos[i].id.toString() + - model.dailyPaymentTypeVos[i].detailedVoList[j] - .groupId - .toString(); - if (!selectItems[index].selected.contains(id)) { - selectItems[index].selected.add(id); - } - } - } } setState(() {}); }, @@ -220,7 +225,7 @@ class _LifePayPageState extends State { onTap: () { LifePayDetailPage( model: _models[index], - selectItems: selectItems[index].selected, + // selectItems: selectItems[index].selected, ).to(); }, child: Container( @@ -313,7 +318,7 @@ class _LifePayPageState extends State { // ), GestureDetector( onTap: () { - if (isAllSelect) { + if (_models.length == _selectYears.length) { _selectYears.clear(); } else { for (var i = 0; i < _models.length; i++) { @@ -329,13 +334,17 @@ class _LifePayPageState extends State { decoration: BoxDecoration( border: Border.all( width: 1.w, - color: isAllSelect ? kPrimaryColor : kDarkSubColor), - color: isAllSelect ? kPrimaryColor : Colors.transparent, + color: _models.length == _selectYears.length + ? kPrimaryColor + : kDarkSubColor), + color: _models.length == _selectYears.length + ? kPrimaryColor + : Colors.transparent, borderRadius: BorderRadius.circular(20.w)), curve: Curves.easeInOutCubic, width: 40.w, height: 40.w, - child: isAllSelect + child: _models.length == _selectYears.length ? Icon( CupertinoIcons.check_mark, size: 25.w, diff --git a/lib/pages/life_pay/widget/life_pay_detail_page.dart b/lib/pages/life_pay/widget/life_pay_detail_page.dart index 5f892842..c0d6a103 100644 --- a/lib/pages/life_pay/widget/life_pay_detail_page.dart +++ b/lib/pages/life_pay/widget/life_pay_detail_page.dart @@ -1,10 +1,8 @@ import 'package:akuCommunity/base/base_style.dart'; import 'package:akuCommunity/model/manager/life_pay_model.dart'; -import 'package:akuCommunity/pages/life_pay/life_pay_page.dart'; import 'package:akuCommunity/provider/user_provider.dart'; import 'package:akuCommunity/utils/bee_parse.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart'; -import 'package:akuCommunity/widget/buttons/bee_check_box.dart'; import 'package:akuCommunity/widget/buttons/bee_check_radio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -14,11 +12,9 @@ import 'package:provider/provider.dart'; class LifePayDetailPage extends StatefulWidget { final LifePayModel model; - final List selectItems; LifePayDetailPage({ Key key, this.model, - this.selectItems, }) : super(key: key); @override @@ -26,6 +22,7 @@ class LifePayDetailPage extends StatefulWidget { } class _LifePayDetailPageState extends State { + List _selectItems=[]; int get listLength { int count = 0; widget.model.dailyPaymentTypeVos.forEach((element) { @@ -37,7 +34,7 @@ class _LifePayDetailPageState extends State { } bool get isAllSelect { - return listLength == widget.selectItems.length; + return listLength == _selectItems.length; } Widget _buildTile(int groupId, int id, int years, int price) { @@ -46,17 +43,17 @@ class _LifePayDetailPageState extends State { GestureDetector( onTap: () { String item = id.toString() + groupId.toString(); - if (widget.selectItems.contains(item)) { - widget.selectItems.remove(item); + if (_selectItems.contains(item)) { + _selectItems.remove(item); } else { - widget.selectItems.add(item); + _selectItems.add(item); } setState(() {}); }, child: BeeCheckRadio( value: id.toString() + groupId.toString(), - groupValue: widget.selectItems)), + groupValue: _selectItems)), 24.w.widthBox, groupId == 1 ? '$years上半年'.text.black.size(28.sp).make() @@ -120,7 +117,7 @@ class _LifePayDetailPageState extends State { GestureDetector( onTap: () { if (isAllSelect) { - widget.selectItems.clear(); + _selectItems.clear(); } else { for (var i = 0; i < widget.model.dailyPaymentTypeVos.length; @@ -135,8 +132,8 @@ class _LifePayDetailPageState extends State { widget.model.dailyPaymentTypeVos[i] .detailedVoList[j].groupId .toString(); - if (!widget.selectItems.contains(id)) { - widget.selectItems.add(id); + if (!_selectItems.contains(id)) { + _selectItems.add(id); } } }