|
...
|
...
|
@@ -5,6 +5,7 @@ import 'package:one_key/provider/user_model.dart'; |
|
|
|
import 'package:one_key/res/colors.dart';
|
|
|
|
import 'package:one_key/utils/utils.dart';
|
|
|
|
import 'package:one_key/widgets/h_empty_view.dart';
|
|
|
|
import 'package:one_key/widgets/system_app_bar.dart';
|
|
|
|
import 'package:one_key/widgets/v_empty_view.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:table_calendar/table_calendar.dart';
|
|
...
|
...
|
@@ -13,11 +14,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
import '../../app.dart';
|
|
|
|
|
|
|
|
class StoreTypeFillManagePage extends StatefulWidget {
|
|
|
|
int timeMills; //日期
|
|
|
|
int ddate_solt; //时段
|
|
|
|
|
|
|
|
StoreTypeFillManagePage({Key key, this.timeMills, this.ddate_solt})
|
|
|
|
: super(key: key);
|
|
|
|
StoreTypeFillManagePage({Key key}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
State<StatefulWidget> createState() {
|
|
...
|
...
|
@@ -41,6 +38,9 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
|
|
|
|
int timeIndex = 0; //当前时段
|
|
|
|
int enableIndex = 0; //最早可用时段
|
|
|
|
int timeMills;
|
|
|
|
|
|
|
|
List<String> fillTimes = [];
|
|
|
|
|
|
|
|
//早市,午市,晚市时间段
|
|
|
|
Map<String, String> daily = {"morning": "", "noon": "", "night": ""};
|
|
...
|
...
|
@@ -49,16 +49,30 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
List<SellerTableClassEntity> tables = [];
|
|
|
|
|
|
|
|
//已选包间数量
|
|
|
|
Map<int, int> roomNum = {0: 0, 1: 0, 2: 0, 3: 0};
|
|
|
|
// Map<int, int> roomNum = {0: 0, 1: 0, 2: 0, 3: 0};
|
|
|
|
|
|
|
|
//已选包间下标
|
|
|
|
List<int> rooms = [];
|
|
|
|
// List<int> rooms = [];
|
|
|
|
|
|
|
|
//获取店铺详情
|
|
|
|
_getStoreDetail() {
|
|
|
|
_initTime();
|
|
|
|
_currTimeIndex();
|
|
|
|
_getSellerTableClass();
|
|
|
|
_getTableFillUpDate();
|
|
|
|
}
|
|
|
|
|
|
|
|
_getTableFillUpDate() async {
|
|
|
|
Map<String, String> params = {
|
|
|
|
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
|
|
|
|
"type": 'month',
|
|
|
|
"date":
|
|
|
|
"${_selectDateTime.year}-${Utils.addZeroNumber(_selectDateTime.month)}"
|
|
|
|
};
|
|
|
|
StoreDetailModel detailModel =
|
|
|
|
Provider.of<StoreDetailModel>(context, listen: false);
|
|
|
|
fillTimes = await detailModel.getTableFillUpDate(context, params);
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
|
|
|
|
//当前选中时间段
|
|
...
|
...
|
@@ -90,18 +104,6 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
timeIndex = -1;
|
|
|
|
enableIndex = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (widget.timeMills != 0 && widget.ddate_solt != 0) {
|
|
|
|
_selectDateTime = DateTime.fromMillisecondsSinceEpoch(widget.timeMills);
|
|
|
|
timeIndex = widget.ddate_solt;
|
|
|
|
if (!Utils.isOneDay(_selectDateTime, DateTime.now())) {
|
|
|
|
//不是今天
|
|
|
|
enableIndex = 0;
|
|
|
|
}
|
|
|
|
widget.timeMills = 0;
|
|
|
|
widget.ddate_solt = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -120,10 +122,8 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
StoreDetailModel detailModel =
|
|
|
|
Provider.of<StoreDetailModel>(context, listen: false);
|
|
|
|
tables = await detailModel.getSellerTableClass(context, params);
|
|
|
|
for (int i = 0; i < tables.length; i++) {
|
|
|
|
roomNum[i] = 0;
|
|
|
|
}
|
|
|
|
rooms.clear();
|
|
|
|
// tables.any((element) => element.isFull == 1);
|
|
|
|
// rooms.clear();
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -134,7 +134,9 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
tables = [];
|
|
|
|
_calendarController = CalendarController();
|
|
|
|
_events = {};
|
|
|
|
_getStoreDetail();
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
|
|
|
_getStoreDetail();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
...
|
...
|
@@ -156,80 +158,16 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
daily = {"morning": morning, "noon": noon, "night": night};
|
|
|
|
}
|
|
|
|
|
|
|
|
//构建已选包间
|
|
|
|
_buildSelectRooms() {
|
|
|
|
List<Widget> selectRooms = [];
|
|
|
|
for (int i in rooms) {
|
|
|
|
selectRooms.add(Container(
|
|
|
|
margin: EdgeInsets.only(right: ScreenUtil().setWidth(10)),
|
|
|
|
child: Stack(
|
|
|
|
children: <Widget>[
|
|
|
|
Container(
|
|
|
|
width: ScreenUtil().setWidth(150),
|
|
|
|
height: ScreenUtil().setWidth(70),
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
right: ScreenUtil().setWidth(12),
|
|
|
|
top: ScreenUtil().setWidth(12)),
|
|
|
|
alignment: Alignment.center,
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
border: Border.all(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
width: ScreenUtil().setWidth(2)),
|
|
|
|
borderRadius:
|
|
|
|
BorderRadius.circular(ScreenUtil().setWidth(10))),
|
|
|
|
child: Text(
|
|
|
|
"${tables[i].name}",
|
|
|
|
maxLines: 1,
|
|
|
|
overflow: TextOverflow.ellipsis,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(30),
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Positioned(
|
|
|
|
top: 0,
|
|
|
|
right: 0,
|
|
|
|
child: GestureDetector(
|
|
|
|
onTap: () {
|
|
|
|
rooms.remove(i);
|
|
|
|
roomNum[i]--;
|
|
|
|
setState(() {});
|
|
|
|
},
|
|
|
|
child: Image.asset(
|
|
|
|
"assets/icon_clear.png",
|
|
|
|
width: ScreenUtil().setWidth(36),
|
|
|
|
height: ScreenUtil().setWidth(36),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
));
|
|
|
|
}
|
|
|
|
return selectRooms;
|
|
|
|
}
|
|
|
|
|
|
|
|
//构建时段
|
|
|
|
Widget _buildShiduan() {
|
|
|
|
return Container(
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
left: ScreenUtil().setWidth(30),
|
|
|
|
top: ScreenUtil().setWidth(80),
|
|
|
|
top: ScreenUtil().setWidth(60),
|
|
|
|
right: ScreenUtil().setWidth(30)),
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: <Widget>[
|
|
|
|
Text(
|
|
|
|
"预订时段",
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(36),
|
|
|
|
color: MyColours.color_333333,
|
|
|
|
fontWeight: FontWeight.bold),
|
|
|
|
),
|
|
|
|
VEmptyView(30),
|
|
|
|
Stack(
|
|
|
|
children: <Widget>[
|
|
|
|
Container(
|
|
...
|
...
|
@@ -439,6 +377,11 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
//解析返回显示的日期
|
|
|
|
_parseDateDay(DateTime dateTime) {
|
|
|
|
DateTime now = DateTime.now();
|
|
|
|
String dateTimeStr =
|
|
|
|
"${dateTime.year}-${Utils.addZeroNumber(dateTime.month)}-${Utils.addZeroNumber(dateTime.day)}";
|
|
|
|
if (fillTimes.length > 0 && fillTimes.contains(dateTimeStr)) {
|
|
|
|
return "置";
|
|
|
|
}
|
|
|
|
if (Utils.isOneDay(dateTime, now)) {
|
|
|
|
return "今";
|
|
|
|
} else if (Utils.isOneDay(dateTime, now.add(Duration(days: 1)))) {
|
|
...
|
...
|
@@ -454,10 +397,15 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
Widget build(BuildContext context) {
|
|
|
|
userModel = Provider.of<UserModel>(context, listen: false);
|
|
|
|
return Scaffold(
|
|
|
|
appBar: SystemAppBar(
|
|
|
|
userModel.user.sellername,
|
|
|
|
onTap: () {
|
|
|
|
Navigator.pop(context);
|
|
|
|
},
|
|
|
|
),
|
|
|
|
body: Consumer<StoreDetailModel>(
|
|
|
|
builder: (context, model, child) {
|
|
|
|
Widget widget = Container();
|
|
|
|
Container(
|
|
|
|
return Container(
|
|
|
|
width: double.infinity,
|
|
|
|
height: double.infinity,
|
|
|
|
color: MyColours.color_ffffff,
|
|
...
|
...
|
@@ -484,14 +432,13 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
availableGestures: AvailableGestures.none,
|
|
|
|
events: _events,
|
|
|
|
locale: "zh_CN",
|
|
|
|
initialCalendarFormat:
|
|
|
|
CalendarFormat.twoWeeks,
|
|
|
|
initialCalendarFormat: CalendarFormat.month,
|
|
|
|
headerStyle: HeaderStyle(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_F9F9F9),
|
|
|
|
headerPadding: EdgeInsets.zero,
|
|
|
|
formatButtonVisible: false,
|
|
|
|
centerHeaderTitle: true,
|
|
|
|
centerHeaderTitle: false,
|
|
|
|
titleTextBuilder: (dateTime, _) {
|
|
|
|
return dateTime.year.toString() +
|
|
|
|
"年-" +
|
|
...
|
...
|
@@ -652,32 +599,12 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
width: double.infinity,
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
left: ScreenUtil().setWidth(30),
|
|
|
|
top: ScreenUtil().setWidth(48),
|
|
|
|
top: ScreenUtil().setWidth(20),
|
|
|
|
right: ScreenUtil().setWidth(30)),
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: <Widget>[
|
|
|
|
Container(
|
|
|
|
height: ScreenUtil().setWidth(82),
|
|
|
|
child: Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.end,
|
|
|
|
children: <Widget>[
|
|
|
|
Text(
|
|
|
|
"选择包间",
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(36),
|
|
|
|
color: MyColours.color_333333,
|
|
|
|
fontWeight: FontWeight.bold),
|
|
|
|
),
|
|
|
|
HEmptyView(24),
|
|
|
|
Wrap(
|
|
|
|
children: _buildSelectRooms(),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
VEmptyView(30),
|
|
|
|
VEmptyView(60),
|
|
|
|
Selector<StoreDetailModel,
|
|
|
|
List<SellerTableClassEntity>>(
|
|
|
|
shouldRebuild: (pre, next) => true,
|
|
...
|
...
|
@@ -695,39 +622,57 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
itemBuilder: (context, index) {
|
|
|
|
return GestureDetector(
|
|
|
|
onTap: () {
|
|
|
|
if (tables[index]
|
|
|
|
.status
|
|
|
|
.toString() ==
|
|
|
|
"0") return;
|
|
|
|
if ((tables[index]
|
|
|
|
.status
|
|
|
|
.toString() ==
|
|
|
|
"1" &&
|
|
|
|
((tables[index].isFull !=
|
|
|
|
null &&
|
|
|
|
tables[index]
|
|
|
|
.isFull
|
|
|
|
.toString() ==
|
|
|
|
"1") ||
|
|
|
|
(tables[index]
|
|
|
|
.isorderFull !=
|
|
|
|
null &&
|
|
|
|
tables[index]
|
|
|
|
.isorderFull
|
|
|
|
.toString() ==
|
|
|
|
"1")))) return;
|
|
|
|
int selectNum = 0;
|
|
|
|
roomNum.forEach((index, value) {
|
|
|
|
selectNum += value;
|
|
|
|
});
|
|
|
|
if (selectNum >= 3) {
|
|
|
|
Utils.showToast("最多可选3个包间");
|
|
|
|
return;
|
|
|
|
// if (tables[index]
|
|
|
|
// .status
|
|
|
|
// .toString() ==
|
|
|
|
// "0") return;
|
|
|
|
// if ((tables[index]
|
|
|
|
// .status
|
|
|
|
// .toString() ==
|
|
|
|
// "1" &&
|
|
|
|
// ((tables[index].isFull !=
|
|
|
|
// null &&
|
|
|
|
// tables[index]
|
|
|
|
// .isFull
|
|
|
|
// .toString() ==
|
|
|
|
// "1") ||
|
|
|
|
// (tables[index]
|
|
|
|
// .isorderFull !=
|
|
|
|
// null &&
|
|
|
|
// tables[index]
|
|
|
|
// .isorderFull
|
|
|
|
// .toString() ==
|
|
|
|
// "1")))) return;
|
|
|
|
// int selectNum = 0;
|
|
|
|
// roomNum.forEach((index, value) {
|
|
|
|
// selectNum += value;
|
|
|
|
// });
|
|
|
|
// if (selectNum >= 3) {
|
|
|
|
// Utils.showToast("最多可选3个包间");
|
|
|
|
// return;
|
|
|
|
// }
|
|
|
|
// setState(() {
|
|
|
|
// roomNum[index]++;
|
|
|
|
// rooms.add(index);
|
|
|
|
// });
|
|
|
|
Map<String, String> params = {
|
|
|
|
"classid": tables[index].id,
|
|
|
|
"day": (DateTime.parse(
|
|
|
|
"${_selectDateTime.year}-${Utils.addZeroNumber(_selectDateTime.month)}-${Utils.addZeroNumber(_selectDateTime.day)} 00:00:00")
|
|
|
|
.millisecondsSinceEpoch /
|
|
|
|
1000)
|
|
|
|
.floor()
|
|
|
|
.toString(),
|
|
|
|
"interval":
|
|
|
|
(timeIndex + 1).toString()
|
|
|
|
};
|
|
|
|
if (tables[index].isFull == 1 &&
|
|
|
|
tables[index].fid != null) {
|
|
|
|
params['id'] =
|
|
|
|
tables[index].fid;
|
|
|
|
}
|
|
|
|
setState(() {
|
|
|
|
roomNum[index]++;
|
|
|
|
rooms.add(index);
|
|
|
|
});
|
|
|
|
model.setTableClassFull(
|
|
|
|
context, params, index);
|
|
|
|
},
|
|
|
|
child: Stack(
|
|
|
|
children: <Widget>[
|
|
...
|
...
|
@@ -750,12 +695,8 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
ScreenUtil()
|
|
|
|
.setWidth(10)),
|
|
|
|
border: Border.all(
|
|
|
|
color: roomNum[index] >
|
|
|
|
0
|
|
|
|
? MyColours
|
|
|
|
.color_199095
|
|
|
|
: MyColours
|
|
|
|
.color_cccccc,
|
|
|
|
color: MyColours
|
|
|
|
.color_cccccc,
|
|
|
|
width: ScreenUtil()
|
|
|
|
.setWidth(2)),
|
|
|
|
),
|
|
...
|
...
|
@@ -824,7 +765,10 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
Positioned(
|
|
|
|
right: 0,
|
|
|
|
top: 0,
|
|
|
|
child: roomNum[index] > 0
|
|
|
|
child: tables[index].isFull !=
|
|
|
|
null &&
|
|
|
|
tables[index].isFull >
|
|
|
|
0
|
|
|
|
? Container(
|
|
|
|
width: ScreenUtil()
|
|
|
|
.setWidth(92),
|
|
...
|
...
|
@@ -835,14 +779,7 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
decoration:
|
|
|
|
BoxDecoration(
|
|
|
|
color: MyColours
|
|
|
|
.color_F4FAFF,
|
|
|
|
border: Border.all(
|
|
|
|
color: MyColours
|
|
|
|
.color_199095,
|
|
|
|
width:
|
|
|
|
ScreenUtil()
|
|
|
|
.setWidth(
|
|
|
|
2)),
|
|
|
|
.color_dfdfdf,
|
|
|
|
borderRadius: BorderRadius.only(
|
|
|
|
topRight: Radius.circular(
|
|
|
|
ScreenUtil()
|
|
...
|
...
|
@@ -854,71 +791,18 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
10))),
|
|
|
|
),
|
|
|
|
child: Text(
|
|
|
|
"已选${roomNum[index]}",
|
|
|
|
"置满",
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize:
|
|
|
|
ScreenUtil()
|
|
|
|
.setSp(
|
|
|
|
24),
|
|
|
|
color: MyColours
|
|
|
|
.color_199095),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
fontSize:
|
|
|
|
ScreenUtil()
|
|
|
|
.setSp(
|
|
|
|
24),
|
|
|
|
color: MyColours
|
|
|
|
.color_333333,
|
|
|
|
),
|
|
|
|
))
|
|
|
|
: Container(),
|
|
|
|
),
|
|
|
|
(tables[index]
|
|
|
|
.status
|
|
|
|
.toString() ==
|
|
|
|
"1" &&
|
|
|
|
((tables[index].isFull !=
|
|
|
|
null &&
|
|
|
|
tables[index]
|
|
|
|
.isFull
|
|
|
|
.toString() ==
|
|
|
|
"1") ||
|
|
|
|
(tables[index]
|
|
|
|
.isorderFull !=
|
|
|
|
null &&
|
|
|
|
tables[index]
|
|
|
|
.isorderFull
|
|
|
|
.toString() ==
|
|
|
|
"1")))
|
|
|
|
? Positioned(
|
|
|
|
right: 0,
|
|
|
|
bottom: 0,
|
|
|
|
child: Container(
|
|
|
|
width: ScreenUtil()
|
|
|
|
.setWidth(90),
|
|
|
|
height: ScreenUtil()
|
|
|
|
.setWidth(76),
|
|
|
|
child: Container(
|
|
|
|
child: Text(
|
|
|
|
"订满",
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours
|
|
|
|
.color_999999,
|
|
|
|
fontSize:
|
|
|
|
ScreenUtil()
|
|
|
|
.setSp(
|
|
|
|
24)),
|
|
|
|
),
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
left: ScreenUtil()
|
|
|
|
.setWidth(
|
|
|
|
28),
|
|
|
|
top: ScreenUtil()
|
|
|
|
.setWidth(
|
|
|
|
28)),
|
|
|
|
),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
image: DecorationImage(
|
|
|
|
image: AssetImage(
|
|
|
|
"assets/icon_man.png"),
|
|
|
|
fit: BoxFit
|
|
|
|
.cover)),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
: Container()
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
...
|
...
|
@@ -938,57 +822,8 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> { |
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Offstage(
|
|
|
|
offstage: enableIndex > 2,
|
|
|
|
child: Container(
|
|
|
|
height: ScreenUtil().setWidth(116),
|
|
|
|
alignment: Alignment.center,
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
boxShadow: [
|
|
|
|
BoxShadow(
|
|
|
|
color: MyColours.color_EEF0F2,
|
|
|
|
blurRadius: ScreenUtil().setWidth(8))
|
|
|
|
]),
|
|
|
|
child: GestureDetector(
|
|
|
|
onTap: () {
|
|
|
|
if (rooms.length <= 0) {
|
|
|
|
Utils.showToast("请选择包间");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
width: ScreenUtil().setWidth(670),
|
|
|
|
height: ScreenUtil().setWidth(84),
|
|
|
|
decoration: rooms.length > 0
|
|
|
|
? BoxDecoration(
|
|
|
|
gradient: LinearGradient(colors: [
|
|
|
|
MyColours.color_2bb5b7,
|
|
|
|
MyColours.color_199095
|
|
|
|
]),
|
|
|
|
borderRadius: BorderRadius.circular(
|
|
|
|
ScreenUtil().setWidth(44)),
|
|
|
|
)
|
|
|
|
: BoxDecoration(
|
|
|
|
color: MyColours.color_cccccc,
|
|
|
|
borderRadius: BorderRadius.circular(
|
|
|
|
ScreenUtil().setWidth(44)),
|
|
|
|
),
|
|
|
|
alignment: Alignment.center,
|
|
|
|
child: Text(
|
|
|
|
"选好了",
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(36),
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
fontWeight: FontWeight.bold),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
));
|
|
|
|
return widget;
|
|
|
|
},
|
|
|
|
),
|
|
|
|
);
|
...
|
...
|
|