|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
|
import 'package:one_key/constant/state.dart';
|
|
|
|
import 'package:one_key/models/marketing_by_seller_model.dart';
|
|
|
|
import 'package:one_key/models/seller_info.dart';
|
|
|
|
import 'package:one_key/models/store_customer_home_model.dart';
|
|
|
|
import 'package:one_key/pages/my/customer_type/store_customer/bar_chart_page.dart';
|
|
|
|
import 'package:one_key/provider/customer_provider.dart';
|
|
|
|
import 'package:one_key/provider/user_model.dart';
|
|
|
|
import 'package:one_key/res/colors.dart';
|
|
|
|
import 'package:one_key/route/navigator_util.dart';
|
|
|
|
import 'package:one_key/utils/event_bus.dart';
|
|
|
|
import 'package:one_key/utils/utils.dart';
|
|
|
|
import 'package:one_key/widgets/MyDivider.dart';
|
|
|
|
import 'package:one_key/widgets/h_empty_view.dart';
|
|
|
|
import 'package:one_key/widgets/page_exception.dart';
|
|
|
|
import 'package:one_key/widgets/round_button.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 '../../../../utils/screen_util.dart';
|
|
|
|
import '../month_item.dart';
|
|
|
|
|
|
|
|
class StoreCustomerHomeLeftPage extends StatefulWidget {
|
|
|
|
StoreCustomerHomeLeftPage({Key key}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_StoreCustomerHomeLeftPageState createState() =>
|
|
|
|
_StoreCustomerHomeLeftPageState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _StoreCustomerHomeLeftPageState extends State<StoreCustomerHomeLeftPage> {
|
|
|
|
ScrollController _controller = ScrollController();
|
|
|
|
CustomerProvider customerProvider;
|
|
|
|
bool showWarning = false;
|
|
|
|
int year;
|
|
|
|
int month;
|
|
|
|
List<BarData> dataList = [
|
|
|
|
BarData(MyColours.color_8EBBBE, 200),
|
|
|
|
BarData(MyColours.color_8EBBBE, 8),
|
|
|
|
BarData(MyColours.color_8EBBBE, 15),
|
|
|
|
BarData(MyColours.color_8EBBBE, 5),
|
|
|
|
BarData(MyColours.color_8EBBBE, 2),
|
|
|
|
BarData(MyColours.color_8EBBBE, 2),
|
|
|
|
BarData(MyColours.color_8EBBBE, 18),
|
|
|
|
BarData(MyColours.color_8EBBBE, 168),
|
|
|
|
BarData(MyColours.color_8EBBBE, 15),
|
|
|
|
BarData(MyColours.color_8EBBBE, 5),
|
|
|
|
BarData(MyColours.color_8EBBBE, null ?? 0),
|
|
|
|
BarData(MyColours.color_8EBBBE, 0),
|
|
|
|
];
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
|
|
|
|
year = DateTime.now().year;
|
|
|
|
month = DateTime.now().month;
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
|
_getSellerGuestManage();
|
|
|
|
_getMarketingBySeller();
|
|
|
|
});
|
|
|
|
bus.on("refresh_store_customer_home", (arg) {
|
|
|
|
_getMarketingBySeller();
|
|
|
|
_getSellerGuestManage();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
void dispose() {
|
|
|
|
bus.off('refresh_store_customer_home');
|
|
|
|
// bus.off("refresh_coupon_list");
|
|
|
|
super.dispose();
|
|
|
|
}
|
|
|
|
|
|
|
|
///全店客情首页
|
|
|
|
_getSellerGuestManage() async {
|
|
|
|
StoreCustomerHomeSunModel model =
|
|
|
|
await customerProvider.getSellerGuestManage(context);
|
|
|
|
// setState(() {});
|
|
|
|
}
|
|
|
|
|
|
|
|
_getMarketingBySeller() async {
|
|
|
|
Map<String, String> params = {
|
|
|
|
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid
|
|
|
|
};
|
|
|
|
List<MarketingBySellerSunModel> list =
|
|
|
|
await customerProvider.getMarketingBySeller(context, params);
|
|
|
|
if (list != null && list.length > 0) {
|
|
|
|
bool temp = list.any((value) {
|
|
|
|
return value.finishedStatus == '0';
|
|
|
|
});
|
|
|
|
setState(() {
|
|
|
|
showWarning = temp;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
// await customerProvider.searchData(customerProvider.controller.text);
|
|
|
|
}
|
|
|
|
|
|
|
|
///活跃客户、沉睡客户、流失客户
|
|
|
|
Widget _percentWidget(String pnum, String btnTitle, String percent,
|
|
|
|
{String uid = ''}) {
|
|
|
|
return InkWell(
|
|
|
|
onTap: () async {
|
|
|
|
String index = '0';
|
|
|
|
if (btnTitle == '活跃') {
|
|
|
|
index = '1';
|
|
|
|
} else if (btnTitle == '60天未到店') {
|
|
|
|
index = '2';
|
|
|
|
} else if (btnTitle == '120天未到店') {
|
|
|
|
index = '3';
|
|
|
|
}
|
|
|
|
NavigatorUtil.goCustomerListPage(context, FromPage.FromPageHome, uid,
|
|
|
|
index: index);
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
height: w(90),
|
|
|
|
width: (ScreenUtil().screenWidth - ScreenUtil().setWidth(20)) / 3,
|
|
|
|
// height: (ScreenUtil().screenWidth - ScreenUtil().setWidth(20)) / 3,
|
|
|
|
child: Column(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
VEmptyView(30),
|
|
|
|
Container(
|
|
|
|
height: w(24),
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(pnum,
|
|
|
|
style: TextStyle(
|
|
|
|
color: btnTitle == '活跃'
|
|
|
|
? MyColours.color_199095
|
|
|
|
: btnTitle == '60天未到店'
|
|
|
|
? MyColours.color_E89243
|
|
|
|
: MyColours.color_E34D59,
|
|
|
|
fontSize: ScreenUtil().setSp(48),
|
|
|
|
fontWeight: FontWeight.bold)),
|
|
|
|
Text('位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: ScreenUtil().setSp(28),
|
|
|
|
))
|
|
|
|
],
|
|
|
|
)),
|
|
|
|
VEmptyView(20),
|
|
|
|
RoundButton(
|
|
|
|
onPressed: () async {
|
|
|
|
String index = '0';
|
|
|
|
if (btnTitle == '活跃') {
|
|
|
|
index = '1';
|
|
|
|
} else if (btnTitle == '60天未到店') {
|
|
|
|
index = '2';
|
|
|
|
} else if (btnTitle == '120天未到店') {
|
|
|
|
index = '3';
|
|
|
|
}
|
|
|
|
NavigatorUtil.goCustomerListPage(
|
|
|
|
context, FromPage.FromPageHome, uid,
|
|
|
|
index: index);
|
|
|
|
},
|
|
|
|
text: btnTitle,
|
|
|
|
fontSize: 24,
|
|
|
|
isBold: false,
|
|
|
|
textColor: MyColours.color_999999,
|
|
|
|
gradientStart: MyColours.color_ffffff,
|
|
|
|
gradientEnd: MyColours.color_ffffff,
|
|
|
|
borderColor: MyColours.color_ffffff,
|
|
|
|
height: ScreenUtil().setWidth(48),
|
|
|
|
// width: ScreenUtil().setWidth(160),
|
|
|
|
radius: ScreenUtil().setWidth(30),
|
|
|
|
),
|
|
|
|
// VEmptyView(16),
|
|
|
|
// percent == null
|
|
|
|
// ? SizedBox()
|
|
|
|
// : Text('${percent}%',
|
|
|
|
// style: TextStyle(
|
|
|
|
// color: MyColours.color_199095,
|
|
|
|
// fontSize: ScreenUtil().setSp(24),
|
|
|
|
// )),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
///活跃客户、沉睡客户、流失客户
|
|
|
|
// Widget _percentWidget(String pnum, String btnTitle, String percent,
|
|
|
|
// {String uid = ''}) {
|
|
|
|
// return InkWell(
|
|
|
|
// onTap: () async {
|
|
|
|
// String index = '0';
|
|
|
|
|
|
|
|
// if (btnTitle == '活跃') {
|
|
|
|
// index = '1';
|
|
|
|
// } else if (btnTitle == '60天未到店') {
|
|
|
|
// index = '2';
|
|
|
|
// } else if (btnTitle == '120天未到店') {
|
|
|
|
// index = '3';
|
|
|
|
// }
|
|
|
|
// if (btnTitle == '未分配') {
|
|
|
|
// NavigatorUtil.goCustomerListPage(
|
|
|
|
// context, FromPage.FromPageHome, uid,
|
|
|
|
// index: index, distribution: true);
|
|
|
|
// } else {
|
|
|
|
// NavigatorUtil.goCustomerListPage(
|
|
|
|
// context, FromPage.FromPageHome, uid,
|
|
|
|
// index: index);
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// child: Container(
|
|
|
|
// color: MyColours.color_ffffff,
|
|
|
|
// // height: ScreenUtil().setWidth(230),
|
|
|
|
// width: (ScreenUtil().screenWidth - ScreenUtil().setWidth(20)) / 3,
|
|
|
|
// height: (ScreenUtil().screenWidth - ScreenUtil().setWidth(20)) / 3,
|
|
|
|
// child: Column(
|
|
|
|
// mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
// children: [
|
|
|
|
// Row(
|
|
|
|
// mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
// children: [
|
|
|
|
// Text(pnum,
|
|
|
|
// style: TextStyle(
|
|
|
|
// color: MyColours.color_199095,
|
|
|
|
// fontSize: ScreenUtil().setSp(40),
|
|
|
|
// fontWeight: FontWeight.bold)),
|
|
|
|
// Text('位',
|
|
|
|
// style: TextStyle(
|
|
|
|
// color: MyColours.color_199095,
|
|
|
|
// fontSize: ScreenUtil().setSp(24),
|
|
|
|
// ))
|
|
|
|
// ],
|
|
|
|
// ),
|
|
|
|
// btnTitle == '' ? SizedBox() : VEmptyView(20),
|
|
|
|
// btnTitle == ''
|
|
|
|
// ? SizedBox()
|
|
|
|
// : InkWell(
|
|
|
|
// onTap: () async {
|
|
|
|
// String index = '0';
|
|
|
|
|
|
|
|
// if (btnTitle == '活跃客户') {
|
|
|
|
// index = '1';
|
|
|
|
// } else if (btnTitle == '沉睡客户') {
|
|
|
|
// index = '2';
|
|
|
|
// } else if (btnTitle == '流失客户') {
|
|
|
|
// index = '3';
|
|
|
|
// }
|
|
|
|
// if (btnTitle == '未分配') {
|
|
|
|
// NavigatorUtil.goCustomerListPage(
|
|
|
|
// context, FromPage.FromPageHome, uid,
|
|
|
|
// index: index, distribution: true);
|
|
|
|
// } else {
|
|
|
|
// NavigatorUtil.goCustomerListPage(
|
|
|
|
// context, FromPage.FromPageHome, uid,
|
|
|
|
// index: index);
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// child: Container(
|
|
|
|
// height: ScreenUtil().setWidth(45),
|
|
|
|
// width: ScreenUtil().setWidth(160),
|
|
|
|
// alignment: Alignment.center,
|
|
|
|
// padding: EdgeInsets.symmetric(horizontal: w(10)),
|
|
|
|
// decoration: BoxDecoration(
|
|
|
|
// color: MyColours.color_ffffff,
|
|
|
|
// border: Border.all(
|
|
|
|
// width: w(1),
|
|
|
|
// color: Color.fromRGBO(118, 118, 118, 1),
|
|
|
|
// ),
|
|
|
|
// borderRadius:
|
|
|
|
// BorderRadius.circular(ScreenUtil().setWidth(30)),
|
|
|
|
// ),
|
|
|
|
// child: Text(
|
|
|
|
// btnTitle,
|
|
|
|
// maxLines: 1,
|
|
|
|
// overflow: TextOverflow.ellipsis,
|
|
|
|
// style: TextStyle(
|
|
|
|
// color: MyColours.color_333333,
|
|
|
|
// fontSize: font(12)),
|
|
|
|
// ),
|
|
|
|
// ))
|
|
|
|
// // RoundButton(
|
|
|
|
// // onPressed: () async {
|
|
|
|
// // String index = '0';
|
|
|
|
|
|
|
|
// // if (btnTitle == '活跃客户') {
|
|
|
|
// // index = '1';
|
|
|
|
// // } else if (btnTitle == '沉睡客户') {
|
|
|
|
// // index = '2';
|
|
|
|
// // } else if (btnTitle == '流失客户') {
|
|
|
|
// // index = '3';
|
|
|
|
// // }
|
|
|
|
// // NavigatorUtil.goCustomerListPage(
|
|
|
|
// // context, FromPage.FromPageHome, uid,
|
|
|
|
// // index: index);
|
|
|
|
// // },
|
|
|
|
// // text: btnTitle,
|
|
|
|
// // fontSize: 24,
|
|
|
|
// // isBold: false,
|
|
|
|
// // textColor: MyColours.color_333333,
|
|
|
|
// // gradientStart: MyColours.color_ffffff,
|
|
|
|
// // gradientEnd: MyColours.color_ffffff,
|
|
|
|
// // borderColor: Color.fromRGBO(118, 118, 118, 1),
|
|
|
|
// // height: ScreenUtil().setWidth(45),
|
|
|
|
// // width: ScreenUtil().setWidth(160),
|
|
|
|
// // radius: ScreenUtil().setWidth(30),
|
|
|
|
// // ),
|
|
|
|
// ,
|
|
|
|
// VEmptyView(16),
|
|
|
|
// percent == null
|
|
|
|
// ? SizedBox()
|
|
|
|
// : Text('${percent}%',
|
|
|
|
// style: TextStyle(
|
|
|
|
// color: MyColours.color_199095,
|
|
|
|
// fontSize: ScreenUtil().setSp(24),
|
|
|
|
// )),
|
|
|
|
// ],
|
|
|
|
// ),
|
|
|
|
// ));
|
|
|
|
// }
|
|
|
|
|
|
|
|
Widget _chart() {
|
|
|
|
return Container(
|
|
|
|
// height: w(216),
|
|
|
|
padding: EdgeInsets.only(top: w(16), left: w(16), right: w(16)),
|
|
|
|
margin: EdgeInsets.all(w(10)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
borderRadius: BorderRadius.circular(r(8))),
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
setState(() {
|
|
|
|
year--;
|
|
|
|
});
|
|
|
|
// _getGuestReserve(showLoading: true);
|
|
|
|
},
|
|
|
|
child: Padding(
|
|
|
|
padding:
|
|
|
|
EdgeInsets.only(right: ScreenUtil().setWidth(20)),
|
|
|
|
child: Image.asset(
|
|
|
|
Utils.getImgPath('c_arrow_left'),
|
|
|
|
width: ScreenUtil().setWidth(24),
|
|
|
|
))),
|
|
|
|
Text(
|
|
|
|
'${year}年',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(32),
|
|
|
|
color: MyColours.color_000000),
|
|
|
|
),
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
if (year >= DateTime.now().year) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
setState(() {
|
|
|
|
year++;
|
|
|
|
});
|
|
|
|
// _getGuestReserve(showLoading: true);
|
|
|
|
},
|
|
|
|
child: Padding(
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
left: ScreenUtil().setWidth(20),
|
|
|
|
),
|
|
|
|
child: Image.asset(
|
|
|
|
Utils.getImgPath(year != DateTime.now().year
|
|
|
|
? 'c_arrow_right'
|
|
|
|
: 'c_arrow_right_gray'),
|
|
|
|
width: ScreenUtil().setWidth(24),
|
|
|
|
)))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(80),
|
|
|
|
Container(
|
|
|
|
width: double.infinity,
|
|
|
|
height: w(177),
|
|
|
|
child: LayoutBuilder(builder: (context, constraints) {
|
|
|
|
return BarChartWidget(
|
|
|
|
dataList: dataList,
|
|
|
|
);
|
|
|
|
}))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget _monthWidget() {
|
|
|
|
return Container(
|
|
|
|
margin: EdgeInsets.symmetric(horizontal: w(10)),
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(15), vertical: w(10)),
|
|
|
|
decoration: BoxDecoration(color: MyColours.color_ffffff),
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
if (month == 1) {
|
|
|
|
month = 12;
|
|
|
|
setState(() {});
|
|
|
|
} else {
|
|
|
|
setState(() {
|
|
|
|
month--;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// _getGuestReserve(showLoading: true);
|
|
|
|
},
|
|
|
|
child: Padding(
|
|
|
|
padding:
|
|
|
|
EdgeInsets.only(right: ScreenUtil().setWidth(20)),
|
|
|
|
child: Image.asset(
|
|
|
|
Utils.getImgPath('c_arrow_left'),
|
|
|
|
width: ScreenUtil().setWidth(24),
|
|
|
|
))),
|
|
|
|
Text(
|
|
|
|
'${month}月',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(40),
|
|
|
|
color: MyColours.color_515151),
|
|
|
|
),
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
if (month == 12) {
|
|
|
|
month = 1;
|
|
|
|
setState(() {});
|
|
|
|
} else {
|
|
|
|
setState(() {
|
|
|
|
month++;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// _getGuestReserve(showLoading: true);
|
|
|
|
},
|
|
|
|
child: Padding(
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
left: ScreenUtil().setWidth(20),
|
|
|
|
),
|
|
|
|
child: Image.asset(
|
|
|
|
Utils.getImgPath('c_arrow_right'),
|
|
|
|
width: ScreenUtil().setWidth(24),
|
|
|
|
)))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(20),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'预订',
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(18),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1089单',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190桌',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(15),
|
|
|
|
Wrap(
|
|
|
|
// crossAxisAlignment: WrapCrossAlignment.center,
|
|
|
|
// runAlignment: WrapAlignment.center,
|
|
|
|
// alignment: WrapAlignment.center,
|
|
|
|
runSpacing: w(5),
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'到店',
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(18),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1089单',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190桌',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190人',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190取消',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'到客97.2%',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(14),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(15),
|
|
|
|
MyDivider(
|
|
|
|
double.infinity,
|
|
|
|
w(1),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
VEmptyView(15),
|
|
|
|
Wrap(
|
|
|
|
// crossAxisAlignment: WrapCrossAlignment.start,
|
|
|
|
// runAlignment: WrapAlignment.center,
|
|
|
|
// alignment: WrapAlignment.center,
|
|
|
|
runSpacing: w(5),
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'有金额订单 6000',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'消费 9585800.00元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'人均 8885.58元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'桌均 95888.58元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'存酒 8位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'提前点餐 9位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(12),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'安排菜 9位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
decoration: TextDecoration.underline,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget _managerWidget(String pnum, String btnTitle, String percent,
|
|
|
|
{String uid = ''}) {
|
|
|
|
return Container(
|
|
|
|
// width: w(122),
|
|
|
|
height: w(116),
|
|
|
|
padding: EdgeInsets.symmetric(vertical: w(12), horizontal: w(10)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
),
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
Align(
|
|
|
|
alignment: Alignment.centerLeft,
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.symmetric(vertical: w(4), horizontal: w(5)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
borderRadius: BorderRadius.circular(r(3)),
|
|
|
|
border:
|
|
|
|
Border.all(color: MyColours.color_999999, width: w(1))),
|
|
|
|
child: Text(
|
|
|
|
btnTitle,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(12),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_999999),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
VEmptyView(20),
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
pnum,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(24),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_438E93),
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'位',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14), color: MyColours.color_000000),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'23',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_438E93),
|
|
|
|
),
|
|
|
|
MyDivider(
|
|
|
|
w(4),
|
|
|
|
w(1),
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'9',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_E89243),
|
|
|
|
),
|
|
|
|
MyDivider(
|
|
|
|
w(4),
|
|
|
|
w(1),
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'2',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_E34D59),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
customerProvider = Provider.of<CustomerProvider>(context, listen: false);
|
|
|
|
return Scaffold(
|
|
|
|
// backgroundColor: Color.fromRGBO(246, 248, 250, 1),
|
|
|
|
// appBar: SystemAppBar('全店客情', onTap: () {
|
|
|
|
// EventBus().emit('changeStatusColor');
|
|
|
|
// Navigator.pop(context);
|
|
|
|
// }),
|
|
|
|
body: WillPopScope(onWillPop: () async {
|
|
|
|
EventBus().emit('changeStatusColor');
|
|
|
|
return true;
|
|
|
|
}, child: Consumer<CustomerProvider>(builder: (context, model, _) {
|
|
|
|
if (model.pageStateStoreHome != PageState.Success) {
|
|
|
|
return ExceptionPage(
|
|
|
|
pageState: model.pageStateStoreHome,
|
|
|
|
callback: () {
|
|
|
|
// getTableList();
|
|
|
|
_getSellerGuestManage();
|
|
|
|
},
|
|
|
|
emptyMsg: "暂时没有全店客情哦",
|
|
|
|
emptyImg: "empty_search",
|
|
|
|
showMsg: "加载中,请稍后...",
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return Column(children: [
|
|
|
|
Expanded(
|
|
|
|
child: SingleChildScrollView(
|
|
|
|
controller: _controller,
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
VEmptyView(10),
|
|
|
|
Stack(
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
NavigatorUtil.goCustomerListPage(
|
|
|
|
context, FromPage.FromPageHome, '');
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
height: w(80),
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'${customerProvider.storeSunmodel.myCustomer}',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_438E93,
|
|
|
|
fontSize: ScreenUtil().setSp(64),
|
|
|
|
fontWeight: FontWeight.bold),
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
fontSize: ScreenUtil().setSp(32)),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
)),
|
|
|
|
Positioned(
|
|
|
|
top: ScreenUtil().setWidth(30),
|
|
|
|
right: ScreenUtil().setWidth(40),
|
|
|
|
child: InkWell(
|
|
|
|
onTap: () {
|
|
|
|
NavigatorUtil.goCustomerSetPage(context);
|
|
|
|
},
|
|
|
|
child: Image.asset(Utils.getImgPath('c_set'),
|
|
|
|
width: ScreenUtil().setWidth(40))))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
_percentWidget(
|
|
|
|
'${customerProvider.storeSunmodel.active.count}',
|
|
|
|
'活跃',
|
|
|
|
'${customerProvider.storeSunmodel.active.scale}'),
|
|
|
|
HEmptyView(10),
|
|
|
|
_percentWidget(
|
|
|
|
'${customerProvider.storeSunmodel.sleep.count}',
|
|
|
|
'60天未到店',
|
|
|
|
'${customerProvider.storeSunmodel.sleep.scale}'),
|
|
|
|
HEmptyView(10),
|
|
|
|
_percentWidget(
|
|
|
|
'${customerProvider.storeSunmodel.drain.count}',
|
|
|
|
'120天未到店',
|
|
|
|
'${customerProvider.storeSunmodel.drain.scale}'),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
// GridView.builder(
|
|
|
|
// controller: _controller,
|
|
|
|
// shrinkWrap: true,
|
|
|
|
// cacheExtent: ScreenUtil().setWidth(0),
|
|
|
|
// itemCount: 3,
|
|
|
|
// gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
// crossAxisCount: 3,
|
|
|
|
// childAspectRatio: 1,
|
|
|
|
// mainAxisSpacing: ScreenUtil().setWidth(10),
|
|
|
|
// crossAxisSpacing: ScreenUtil().setWidth(10)),
|
|
|
|
// itemBuilder: (BuildContext context, int index) {
|
|
|
|
// // locationState = state;
|
|
|
|
// return _percentWidget('1999', '活跃客户', '39.20');
|
|
|
|
// }),
|
|
|
|
// Row(
|
|
|
|
// children: [
|
|
|
|
// _percentWidget('19992', '活跃客户', '90.90'),
|
|
|
|
// HEmptyView(10),
|
|
|
|
// _percentWidget('19992', '沉睡客户', '90.90'),
|
|
|
|
// HEmptyView(10),
|
|
|
|
// _percentWidget('19992', '流失客户', '5.90'),
|
|
|
|
// ],
|
|
|
|
// ),
|
|
|
|
// Padding(
|
|
|
|
// padding: EdgeInsets.symmetric(
|
|
|
|
// vertical: ScreenUtil().setWidth(30)),
|
|
|
|
// child: Text(
|
|
|
|
// '客户经理',
|
|
|
|
// style: TextStyle(
|
|
|
|
// fontSize: ScreenUtil().setSp(28),
|
|
|
|
// color: MyColours.color_333333),
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
VEmptyView(10),
|
|
|
|
GridView.builder(
|
|
|
|
controller: _controller,
|
|
|
|
shrinkWrap: true,
|
|
|
|
cacheExtent: ScreenUtil().setWidth(0),
|
|
|
|
itemCount:
|
|
|
|
customerProvider.storeSunmodel.sellerUser.length + 1,
|
|
|
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
crossAxisCount: 3,
|
|
|
|
childAspectRatio: 1.05,
|
|
|
|
mainAxisSpacing: ScreenUtil().setWidth(10),
|
|
|
|
crossAxisSpacing: ScreenUtil().setWidth(10)),
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
// locationState = state;
|
|
|
|
if (index == 0) {
|
|
|
|
return _managerWidget(
|
|
|
|
'${customerProvider.storeSunmodel.distribution}',
|
|
|
|
'未分配经理',
|
|
|
|
null);
|
|
|
|
}
|
|
|
|
|
|
|
|
return _managerWidget(
|
|
|
|
'${customerProvider.storeSunmodel.sellerUser[index - 1].count}',
|
|
|
|
customerProvider.storeSunmodel.sellerUser[index - 1]
|
|
|
|
.account ==
|
|
|
|
null
|
|
|
|
? ''
|
|
|
|
: '${customerProvider.storeSunmodel.sellerUser[index - 1].nickName ?? customerProvider.storeSunmodel.sellerUser[index - 1].account}',
|
|
|
|
null,
|
|
|
|
uid: customerProvider
|
|
|
|
.storeSunmodel.sellerUser[index - 1].uid);
|
|
|
|
}),
|
|
|
|
VEmptyView(10),
|
|
|
|
ListView.builder(
|
|
|
|
shrinkWrap: true,
|
|
|
|
controller: _controller,
|
|
|
|
itemCount: 2,
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
return Container(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
vertical: w(12), horizontal: w(16)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
border: Border(
|
|
|
|
bottom: BorderSide(
|
|
|
|
color: index == 2 - 1
|
|
|
|
? MyColours.color_ffffff
|
|
|
|
: MyColours.color_E7E7E7,
|
|
|
|
width: w(1)))),
|
|
|
|
child: Row(
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
child: Text(
|
|
|
|
'7天内存酒超期:5位/7天内纪念日提醒:3位',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(16),
|
|
|
|
color: MyColours.color_515151),
|
|
|
|
)),
|
|
|
|
Text(
|
|
|
|
'创建营销计划',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(16),
|
|
|
|
color: MyColours.color_999999),
|
|
|
|
),
|
|
|
|
HEmptyView(20),
|
|
|
|
Image.asset(
|
|
|
|
Utils.getImgPath('arrow_right_new'),
|
|
|
|
width: w(12),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}),
|
|
|
|
_chart(),
|
|
|
|
// _monthWidget(),
|
|
|
|
|
|
|
|
ListView.builder(
|
|
|
|
itemCount: 10,
|
|
|
|
shrinkWrap: true,
|
|
|
|
controller: _controller,
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(10)),
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
return MonthItem();
|
|
|
|
}),
|
|
|
|
/**
|
|
|
|
ListView.builder(
|
|
|
|
itemCount: 10,
|
|
|
|
controller: _controller,
|
|
|
|
shrinkWrap: true,
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(10)),
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
return Container(
|
|
|
|
margin: EdgeInsets.only(bottom: w(10)),
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(10)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: MyColours.color_ffffff,
|
|
|
|
borderRadius: BorderRadius.only(
|
|
|
|
topRight: Radius.circular(r(8)),
|
|
|
|
bottomRight: Radius.circular(r(8))),
|
|
|
|
),
|
|
|
|
child: Row(
|
|
|
|
children: [
|
|
|
|
Container(
|
|
|
|
width: w(122),
|
|
|
|
padding: EdgeInsets.symmetric(vertical: w(5)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
border: Border(
|
|
|
|
right: BorderSide(
|
|
|
|
color: MyColours.color_f3f3f3,
|
|
|
|
width: w(1)))),
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
VEmptyView(24),
|
|
|
|
Align(
|
|
|
|
alignment: Alignment.centerLeft,
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
vertical: w(4), horizontal: w(5)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
borderRadius:
|
|
|
|
BorderRadius.circular(r(3)),
|
|
|
|
border: Border.all(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
width: w(1))),
|
|
|
|
child: Text(
|
|
|
|
'张珊珊',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(12),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_999999),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment:
|
|
|
|
MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'34',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(24),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_438E93),
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'位',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
color: MyColours.color_000000),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment:
|
|
|
|
MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'23',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_438E93),
|
|
|
|
),
|
|
|
|
MyDivider(
|
|
|
|
w(4),
|
|
|
|
w(1),
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'9',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_E89243),
|
|
|
|
),
|
|
|
|
MyDivider(
|
|
|
|
w(4),
|
|
|
|
w(1),
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
),
|
|
|
|
Text(
|
|
|
|
'2',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(14),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_E34D59),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(24),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Expanded(
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
top: w(5), bottom: w(5), left: w(10)),
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment:
|
|
|
|
MainAxisAlignment.spaceBetween,
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Column(
|
|
|
|
mainAxisAlignment:
|
|
|
|
MainAxisAlignment.start,
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'预订',
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(12),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1089单',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190桌',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'到店',
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(12),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1089单',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190桌',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'1089人',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'1190取消',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'到客90.1%',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_515151,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'有金额订单数 25',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'总消费 25800元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'人均 103.2元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'桌均 860元',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Row(
|
|
|
|
crossAxisAlignment:
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'存酒 1位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'提前点餐 9位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
MyDivider(
|
|
|
|
w(1),
|
|
|
|
w(15),
|
|
|
|
color: MyColours.color_DBDBDB,
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Text(
|
|
|
|
'安排菜 9位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: font(
|
|
|
|
(10),
|
|
|
|
)),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
Image.asset(
|
|
|
|
Utils.getImgPath('arrow_right_new'),
|
|
|
|
width: w(12),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
})
|
|
|
|
*/
|
|
|
|
],
|
|
|
|
),
|
|
|
|
)),
|
|
|
|
Container(
|
|
|
|
color: MyColours.color_FAFAFA,
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
top: w(13), bottom: w(26), left: w(45), right: (45)),
|
|
|
|
child: Stack(
|
|
|
|
children: [
|
|
|
|
RoundButton(
|
|
|
|
onPressed: () {
|
|
|
|
NavigatorUtil.goMarketingRecordsPage(
|
|
|
|
context, FromPage.FromPageStoreCustomer);
|
|
|
|
},
|
|
|
|
text: '历史营销记录',
|
|
|
|
fontSize: 32,
|
|
|
|
isBold: true,
|
|
|
|
// margin: EdgeInsets.only(
|
|
|
|
// top: w(13),
|
|
|
|
// bottom: w(26),
|
|
|
|
// left: w(45),
|
|
|
|
// right: (45)),
|
|
|
|
textColor: MyColours.color_F8F9FD,
|
|
|
|
gradientStart: MyColours.color_199095,
|
|
|
|
gradientEnd: MyColours.color_199095,
|
|
|
|
borderColor: MyColours.color_199095,
|
|
|
|
height: ScreenUtil().setWidth(86),
|
|
|
|
// width: ScreenUtil().setWidth(260),
|
|
|
|
radius: ScreenUtil().setWidth(10),
|
|
|
|
),
|
|
|
|
showWarning
|
|
|
|
? Positioned(
|
|
|
|
right: ScreenUtil().setWidth(30),
|
|
|
|
top: ScreenUtil().setWidth(45 / 2),
|
|
|
|
child: Image.asset(
|
|
|
|
Utils.getImgPath('warning'),
|
|
|
|
width: ScreenUtil().setWidth(35),
|
|
|
|
))
|
|
|
|
: SizedBox()
|
|
|
|
],
|
|
|
|
))
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
})),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|