tabbar
This commit is contained in:
@@ -1,21 +1,34 @@
|
||||
import 'package:cashier_reserve/common/base/ui.dart';
|
||||
import 'package:cashier_reserve/common/base/ui_model.dart';
|
||||
import 'package:cashier_reserve/common/channel/call_log_model.dart';
|
||||
import 'package:cashier_reserve/common/print/print.dart';
|
||||
import 'package:cashier_reserve/home/reserve_left_content_view.dart';
|
||||
import 'package:cashier_reserve/home/reserve_right_content_view.dart';
|
||||
import 'package:cashier_reserve/home/reserve_view_model.dart';
|
||||
|
||||
import '../common/base/provider.dart';
|
||||
|
||||
class ReserveView extends BaseUI {
|
||||
class ReserveView extends BaseUI with TickerProviderStateMixin {
|
||||
TabController? tabController;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
tabController?.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget buildBody(BuildContext context) {
|
||||
ReserveViewModel provider =
|
||||
getProvider(context, listen: false) as ReserveViewModel;
|
||||
return Column(
|
||||
children: [
|
||||
_buildTopDateBar(context, provider),
|
||||
Expanded(child: _buildContentView(context, provider)),
|
||||
],
|
||||
|
||||
return SizedBox(
|
||||
width: double.infinity,
|
||||
child: Column(
|
||||
children: [
|
||||
_buildTopDateBar(context, provider),
|
||||
Expanded(child: _buildContentView(context, provider)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -101,160 +114,31 @@ class ReserveView extends BaseUI {
|
||||
}
|
||||
|
||||
Widget _buildContentView(BuildContext context, ReserveViewModel provider) {
|
||||
if ((provider.tableAreaList?.length ?? 0) > 0) {
|
||||
if (tabController == null) {
|
||||
tabController =
|
||||
TabController(vsync: this, length: provider.tableAreaList!.length);
|
||||
} else {
|
||||
if (tabController!.length != provider.tableAreaList!.length) {
|
||||
tabController!.dispose();
|
||||
tabController = TabController(
|
||||
vsync: this, length: provider.tableAreaList!.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
return Row(
|
||||
children: [
|
||||
_buildLeftContent(context, provider),
|
||||
Expanded(child: _buildRightContent(context, provider)),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildLeftContent(BuildContext context, ReserveViewModel provider) {
|
||||
yjPrint("callLogs length: ${provider.callLogs?.length}");
|
||||
return Column(
|
||||
children: [
|
||||
ReserveLeftContentView(provider: provider),
|
||||
Expanded(
|
||||
child: SizedBox(
|
||||
width: 430,
|
||||
child: ListView.builder(
|
||||
itemCount: provider.callLogs?.length ?? 0,
|
||||
itemBuilder: (context, index) {
|
||||
return _buildCallRecordItem(context, provider.callLogs?[index]);
|
||||
},
|
||||
child: ReserveRightContentView(
|
||||
provider: provider,
|
||||
tabController: tabController,
|
||||
),
|
||||
)),
|
||||
Container(
|
||||
padding: const EdgeInsets.fromLTRB(20, 10, 20, 15),
|
||||
child: InkWell(
|
||||
onTap: () {},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
color: const Color(0xff318AFE),
|
||||
),
|
||||
width: 300,
|
||||
height: 36,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
'images/reserve/create.png',
|
||||
width: 20,
|
||||
height: 20,
|
||||
),
|
||||
const SizedBox(
|
||||
width: 5,
|
||||
),
|
||||
const Text(
|
||||
"创建订单",
|
||||
style: TextStyle(color: Colors.white, fontSize: 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildRightContent(BuildContext context, ReserveViewModel provider) {
|
||||
return Container();
|
||||
}
|
||||
|
||||
/// _buildCallRecordItem 通话记录item
|
||||
Widget _buildCallRecordItem(BuildContext context, CallLogModel? model) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.fromLTRB(15, 15, 15, 5),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
(model?.type ?? 0) == 3
|
||||
? "images/reserve/phone_fail.png"
|
||||
: "images/reserve/phone_suc.png",
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
Text(
|
||||
model?.time ?? "",
|
||||
style:
|
||||
const TextStyle(color: Color(0xff999999), fontSize: 12),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
model?.name ?? "未知电话",
|
||||
style:
|
||||
const TextStyle(color: Color(0xff333333), fontSize: 14),
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
model?.number ?? "",
|
||||
style: const TextStyle(
|
||||
color: Color(0xff333333), fontSize: 14),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 15,
|
||||
),
|
||||
const Text(
|
||||
"已消费0单",
|
||||
style:
|
||||
TextStyle(color: Color(0xff333333), fontSize: 14),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 15,
|
||||
),
|
||||
const Text(
|
||||
"已撤0单",
|
||||
style:
|
||||
TextStyle(color: Color(0xff333333), fontSize: 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
const Expanded(child: SizedBox()),
|
||||
InkWell(
|
||||
onTap: () {},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
border:
|
||||
Border.all(color: const Color(0xff318AFE), width: 1),
|
||||
),
|
||||
padding: const EdgeInsets.fromLTRB(20, 7, 20, 7),
|
||||
child: const Text(
|
||||
"处理",
|
||||
style: TextStyle(color: Color(0xff318AFE), fontSize: 14),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Container(
|
||||
height: 1,
|
||||
color: const Color(0xffededed),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDateItem(BuildContext context, ReserveViewModel provider) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
|
||||
Reference in New Issue
Block a user