table_item.dart
4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:one_key/widgets/v_empty_view.dart';
class TableItem extends StatefulWidget{
final t.Table table;
final bool canSelected;//是否能选中
final ValueChanged onSelected;
TableItem(this.table,{this.onSelected,this.canSelected=false});
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new TableItemState();
}
}
class TableItemState extends State<TableItem>{
@override
Widget build(BuildContext context) {
// TODO: implement build
t.Table table=widget.table;
return GestureDetector(
onTap: (){
if(widget.canSelected&&table.signStr.isEmpty){
setState(() {
table.selected=!(table.selected??false);
});
widget.onSelected(table);
}
},
child: Container(
width: ScreenUtil().setWidth(150),
height: ScreenUtil().setHeight(183),
margin:EdgeInsets.all( ScreenUtil().setWidth(9)),
decoration: BoxDecoration(
color: MyColours.color_a8e2e4,
borderRadius: BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8)))
),
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Positioned(
left: 0,
top: 0,
child: table.tidStr==null?Container():Container(
width: ScreenUtil().setWidth(60),
height: ScreenUtil().setHeight(27),
alignment: Alignment.center,
decoration: BoxDecoration(
color: MyColours.color_63a6d1,
borderRadius: BorderRadius.only(topLeft: Radius.circular(ScreenUtil().setWidth(8)),topRight: Radius.circular(ScreenUtil().setWidth(8)),bottomRight: Radius.circular(ScreenUtil().setWidth(8)))
),
child: Text(table.tidStr,style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(19),decoration: TextDecoration.none)),
),
),
Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(table.name,style: TextStyle(color: MyColours.color_131313,fontSize: ScreenUtil().setSp(26),decoration: TextDecoration.none),),
VEmptyView(5),
Text((table.reserver==null||table.reserver.isEmpty)?table.tableNum:table.reserver,style: TextStyle(color: (table.reserver==null||table.reserver.isEmpty)?MyColours.color_777777:MyColours.color_2bb5b7,fontSize: ScreenUtil().setSp(22),decoration: TextDecoration.none),overflow: TextOverflow.ellipsis,),
VEmptyView(5),
Text(table.lowStr,style: TextStyle(color: MyColours.color_777777,fontSize: ScreenUtil().setSp(22),decoration: TextDecoration.none),overflow: TextOverflow.ellipsis,)
],
),
),
Positioned(
bottom: 0,
left: 0,
right: 0,
child: table.signStr.isEmpty?Container():Container(
width: ScreenUtil().setWidth(150),
height: ScreenUtil().setHeight(46),
alignment: Alignment.center,
decoration: BoxDecoration(
color:MyColours.color_89c0b7,
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(ScreenUtil().setWidth(8)),bottomRight: Radius.circular(ScreenUtil().setWidth(8)))
),
child: Text(table.signStr,style: TextStyle(color:MyColours.color_ffffff,fontSize: ScreenUtil().setSp(24),decoration: TextDecoration.none),),
),
),
Positioned(
top: 0,
right: 0,
child: !(table.selected??false)?Container():Image.asset("assets/icon_selected.png",width: ScreenUtil().setWidth(27),height: ScreenUtil().setWidth(27),)
)
],
),
),
);
}
}