Commit b2582dd3996b53d494c95f57444387bacb19d1e8

Authored by wdn127929
1 parent 2164e88e

我的积分

Showing 51 changed files with 486 additions and 142 deletions
... ... @@ -21,7 +21,7 @@ import 'package:one_key/provider/online_check_edit_provider.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/tools.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import 'package:tpns_flutter_plugin/tpns_flutter_plugin.dart';
... ...
import 'package:json_annotation/json_annotation.dart';
part 'integral_model.g.dart';
@JsonSerializable()
class IntegralModel extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
IntegralSunModel data;
@JsonKey(name: 'msg')
String msg;
IntegralModel(
this.ret,
this.data,
this.msg,
);
factory IntegralModel.fromJson(Map<String, dynamic> srcJson) =>
_$IntegralModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$IntegralModelToJson(this);
}
@JsonSerializable()
class IntegralSunModel extends Object {
@JsonKey(name: 'myIntegral')
String myIntegral;
@JsonKey(name: 'Cumulative')
String cumulative;
@JsonKey(name: 'Converted')
String converted;
@JsonKey(name: 'reviewed')
String reviewed;
IntegralSunModel(
this.myIntegral,
this.cumulative,
this.converted,
this.reviewed,
);
factory IntegralSunModel.fromJson(Map<String, dynamic> srcJson) =>
_$IntegralSunModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$IntegralSunModelToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'integral_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
IntegralModel _$IntegralModelFromJson(Map<String, dynamic> json) {
return IntegralModel(
json['ret'] as int,
json['data'] == null
? null
: IntegralSunModel.fromJson(json['data'] as Map<String, dynamic>),
json['msg'] as String,
);
}
Map<String, dynamic> _$IntegralModelToJson(IntegralModel instance) =>
<String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg,
};
IntegralSunModel _$IntegralSunModelFromJson(Map<String, dynamic> json) {
return IntegralSunModel(
json['myIntegral'] as String,
json['Cumulative'] as String,
json['Converted'] as String,
json['reviewed'] as String,
);
}
Map<String, dynamic> _$IntegralSunModelToJson(IntegralSunModel instance) =>
<String, dynamic>{
'myIntegral': instance.myIntegral,
'Cumulative': instance.cumulative,
'Converted': instance.converted,
'reviewed': instance.reviewed,
};
... ...
... ... @@ -99,4 +99,6 @@ class HttpUrl {
"?service=App.Seller.GetUserData"; //添加商家信息和当前登录人的信息
static const String check_bind_phone =
"?service=App.User.CheckbindPhone"; //APP微信登录后检测是否绑定过手机号
static const String get_integral_list =
"?service=App.Activity.GetIntegralList"; //获取客户经理积分列表
}
... ...
... ... @@ -9,7 +9,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
... ...
... ... @@ -7,7 +7,7 @@ import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -7,7 +7,7 @@ import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/page_exception.dart';
... ...
... ... @@ -11,7 +11,7 @@ import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/upload_image_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
... ...
... ... @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
... ...
... ... @@ -6,7 +6,7 @@ import 'package:one_key/pages/online_check/img_picker_widget.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/upload_image_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/round_button.dart';
... ...
... ... @@ -3,7 +3,7 @@ import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/pages/online_check/img_picker_widget.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/upload_image_util.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
... ...
... ... @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -5,7 +5,7 @@ import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/route_handles.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
... ...
... ... @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -6,7 +6,7 @@ import 'package:amap_search_fluttify/amap_search_fluttify.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:permission_handler/permission_handler.dart';
// import 'package:demo/resources/custom_text_style.dart';
... ...
... ... @@ -11,7 +11,7 @@ import 'package:one_key/pages/online_check/progress.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/upload_image_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
... ...
... ... @@ -10,7 +10,7 @@ import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
... ...
... ... @@ -18,7 +18,7 @@ import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/triangle_custom_painter.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
... ...
... ... @@ -13,7 +13,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
... ...
... ... @@ -11,7 +11,7 @@ import 'package:one_key/provider/enter_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
... ...
... ... @@ -23,7 +23,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import 'package:tpns_flutter_plugin/tpns_flutter_plugin.dart';
... ...
... ... @@ -15,7 +15,7 @@ import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
... ...
... ... @@ -7,7 +7,7 @@ import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
... ...
... ... @@ -15,7 +15,7 @@ import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/round_button.dart';
... ...
... ... @@ -18,7 +18,7 @@ import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigate_service.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/v_empty_view.dart';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/provider/order_food_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
... ...
... ... @@ -5,7 +5,7 @@ import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/v_empty_view.dart';
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/provider/my_model.dart';
import 'package:one_key/res/colors.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/my_item.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';
class MyIntegralPage extends StatefulWidget {
final IntegralSunModel sunModel;
MyIntegralPage({Key key, this.sunModel}) : super(key: key);
@override
_MyIntegralPageState createState() => _MyIntegralPageState();
}
class _MyIntegralPageState extends State<MyIntegralPage> {
// MyModel myModel;
@override
void initState() {
super.initState();
Utils.changeStatusColor(color: MyColours.color_199095);
}
@override
Widget build(BuildContext context) {
// myModel = Provider.of<MyModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_f5f5f5,
appBar: SystemAppBar(
'我的积分',
bgColor: MyColours.color_199095,
needWhite: true,
onTap: () {
EventBus().emit('changeStatusColor');
Navigator.of(context).pop();
},
),
body: Container(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Stack(
clipBehavior: Clip.none,
children: [
Container(
height: ScreenUtil().setWidth(145 * 2),
color: MyColours.color_199095,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
VEmptyView(40),
Container(
alignment: Alignment.center,
width: double.infinity,
height: ScreenUtil().setWidth(56 * 2),
child: Text(
widget.sunModel?.myIntegral != null
? widget.sunModel.myIntegral
: '0',
style: TextStyle(
fontSize: ScreenUtil().setSp(80),
color: MyColours.color_fefefe,
fontWeight: FontWeight.bold),
)),
Container(
alignment: Alignment.center,
width: double.infinity,
height: ScreenUtil().setWidth(20 * 2),
child: Text(
'当前积分',
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: Color.fromRGBO(255, 255, 255, 0.6),
),
),
)
],
),
),
Positioned(
bottom: ScreenUtil().setWidth(-205 * 2 + 18 * 2),
left: ScreenUtil().setWidth(20),
right: ScreenUtil().setWidth(20),
child: Container(
padding: EdgeInsets.symmetric(
vertical: ScreenUtil().setWidth(20)),
// height: ScreenUtil().setWidth(205 * 2),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(ScreenUtil().setWidth(40)),
color: Colors.white),
child: Column(
children: [
MyItem(
title: '已兑换积分',
content: widget.sunModel?.converted != null
? widget.sunModel.converted
: '0',
needRadius: true,
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40)),
child: MyDivider(
double.infinity,
ScreenUtil().setWidth(2),
color: MyColours.color_f3f3f3,
)),
MyItem(
title: '累计积分',
content: widget.sunModel?.cumulative != null
? widget.sunModel.cumulative
: '0',
needRadius: true,
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40)),
child: MyDivider(
double.infinity,
ScreenUtil().setWidth(2),
color: MyColours.color_f3f3f3,
)),
MyItem(
title: '待审核积分',
content: widget.sunModel?.reviewed != null
? widget.sunModel.reviewed
: '0',
needRadius: true,
)
],
),
))
],
),
VEmptyView(434),
RoundButton(
onPressed: () async {},
text: '兑换',
fontSize: 34,
isBold: false,
height: ScreenUtil().setWidth(84),
width: ScreenUtil().setWidth(155 * 2),
radius: ScreenUtil().setWidth(10),
),
VEmptyView(100),
Padding(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
child: Text(
'积分规则:\n1.每成功创建一个内部预订的预订安排微信发送给客户并且客户打开后,获得10积分;\n2.每个餐厅每天每个时段预订安排发送总量不能超过现有桌位数;\n3.同一顾客同一时段的订单,积分只给最早创建内部预订的经理;\n4.订单创建人转发的预订安排,才可获得积分,转发他人创建的订单无效。',
style: TextStyle(
fontSize: ScreenUtil().setSp(24),
color: MyColours.color_999999,
height: 1.3)))
],
))));
}
}
... ...
... ... @@ -7,7 +7,7 @@ import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
... ... @@ -48,6 +48,9 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
WidgetsBinding.instance.addPostFrameCallback((_) async {
///获取短信余量
_getSmsInfo(context);
_getMyIntegral(context);
///获取积分
});
EventBus().on('changeStatusColor', (arg) {
Utils.changeStatusColor(color: Colors.transparent);
... ... @@ -95,6 +98,11 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
// });
}
///获取我的积分
_getMyIntegral(context) async {
await myModel.getMyIntegral(context);
}
//检查版本更新
checkUpdate() {
UpdateModel updateModel = new UpdateModel();
... ... @@ -124,7 +132,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
SliverAppBar(
pinned: false,
floating: false,
expandedHeight: ScreenUtil().setWidth(260),
expandedHeight: ScreenUtil().setWidth(260 + 40),
flexibleSpace: FlexibleSpaceBar(
collapseMode: CollapseMode.pin,
background: Consumer<UserModel>(builder:
... ... @@ -133,37 +141,69 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
children: [
Container(
width: double.infinity,
height: ScreenUtil().setHeight(260),
height: ScreenUtil().setHeight(260 + 30),
alignment: Alignment.centerLeft,
color: MyColours.color_199095,
),
Padding(
padding:
EdgeInsets.only(left: ScreenUtil().setWidth(40)),
EdgeInsets.only(left: ScreenUtil().setWidth(30)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VEmptyView(58),
Text(
model.user.sellername,
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(36)),
),
VEmptyView(28),
Text(
model.user.account +
" | " +
model.user.role_name,
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(30)),
Container(
height: ScreenUtil().setWidth(50),
child: Text(
model.user.sellername,
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(36)),
),
),
VEmptyView(30),
Container(
height: ScreenUtil().setWidth(40),
child: Text(
model.user.account +
" | " +
model.user.role_name,
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(30)),
)),
VEmptyView(20),
InkWell(
onTap: () {
NavigatorUtil.goMyIntegralPage(context,
sunModel: myModel.integralSunModel);
},
child: Container(
height: ScreenUtil().setWidth(48),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(8)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(24)),
border: Border.all(
width: ScreenUtil().setWidth(2),
color:
Color.fromRGBO(255, 255, 255, 0.2)),
color: Color.fromRGBO(255, 255, 255, 0.1)),
child: Text(
'积分${myModel.integralSunModel != null && myModel.integralSunModel.myIntegral != null ? myModel.integralSunModel?.myIntegral : '0'}',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(22)),
),
),
)
],
)),
Positioned(
right: ScreenUtil().setWidth(40),
bottom: ScreenUtil().setWidth(70),
bottom: ScreenUtil().setWidth(120),
child: RoundButton(
image: Utils.getImgPath('edit'),
text: '编辑',
... ...
... ... @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/v_empty_view.dart';
... ...
... ... @@ -6,7 +6,7 @@ import 'package:one_key/provider/order_food_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.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';
... ...
... ... @@ -12,7 +12,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/upload_image_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/provider/table_manager_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/area_item.dart';
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/models/sms_info.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
... ... @@ -12,6 +13,7 @@ import 'package:provider/provider.dart';
class MyModel extends ChangeNotifier {
String smsInfo = '';
IntegralSunModel integralSunModel;
/// 短信余量查询及套餐查询接口
Future<SmsInfoData> getSmsInfo(BuildContext context) async {
... ... @@ -54,4 +56,41 @@ class MyModel extends ChangeNotifier {
}
}
}
/// 获取客户经理积分列表
Future<IntegralSunModel> getMyIntegral(BuildContext context) async {
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid
};
try {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_integral_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
if (baseResp?.code == Constant.status_success) {
integralSunModel = IntegralModel.fromJson(baseResp.responseData).data;
} else {
print('查询失败');
}
notifyListeners();
return integralSunModel;
} catch (error) {
if (error is MyError) {
switch (error.type) {
case 1:
print('错误');
break;
case 2:
print('超时');
break;
default:
print('错误');
break;
}
}
}
}
}
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
... ...
... ... @@ -11,7 +11,7 @@ import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
... ...
... ... @@ -8,7 +8,7 @@ import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/loading.dart';
... ...
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/table_list.dart';
... ... @@ -284,4 +285,12 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.complete_create_store}",
replace: replace);
}
/// 我的积分页面
static Future<dynamic> goMyIntegralPage(BuildContext context,
{replace = false, IntegralSunModel sunModel}) {
return _navigateTo(context,
"${Routes.my_integral_page}?sunModel=${FluroConvertUtils.object2string(sunModel)}",
replace: replace);
}
}
... ...
... ... @@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/pages/coupon/coupon_detail_page.dart';
... ... @@ -33,6 +34,7 @@ import 'package:one_key/pages/login/web_page.dart';
import 'package:one_key/pages/message/message_order_menu.dart';
import 'package:one_key/pages/my/base_info.dart';
import 'package:one_key/pages/my/book_time_set.dart';
import 'package:one_key/pages/my/my_integral_page.dart';
import 'package:one_key/pages/my/receive_orders_time_set.dart';
import 'package:one_key/pages/my/remark_manager_page.dart';
import 'package:one_key/pages/online_check/invoice_detail_page.dart';
... ... @@ -45,6 +47,7 @@ import 'package:one_key/provider/base_info_provider.dart';
import 'package:one_key/provider/book_set_time_model.dart';
import 'package:one_key/provider/choose_table_model.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/my_model.dart';
import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/order_food_provider.dart';
... ... @@ -418,3 +421,14 @@ var completeCreateStorePageHandler = new Handler(
return CompleteCreateStorePage();
});
///我的积分
var myIntegralPageHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
IntegralSunModel sunModel = IntegralSunModel.fromJson(json
.decode(FluroConvertUtils.fluroCnParamsDecode(params["sunModel"].first)));
// String urlStr = FluroConvertUtils.fluroCnParamsDecode(params["urlStr"].first);
return ChangeNotifierProvider<MyModel>(
create: (_) => MyModel(), child: MyIntegralPage(sunModel: sunModel));
});
... ...
... ... @@ -41,6 +41,7 @@ class Routes {
static String enter_store_front_photo = "/enter_store_front_photo"; //门头照片
static String enter_store_environment = "/enter_store_environment"; //店铺环境
static String complete_create_store = "/complete_create_store"; //创建店铺完成
static String my_integral_page = "/my_integral_page"; //我的积分
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -89,7 +90,8 @@ class Routes {
handler: enterStoreEnvironmentPageHandler);
router.define(complete_create_store,
handler: completeCreateStorePageHandler);
router.define(my_integral_page,
handler: myIntegralPageHandler);
}
}
... ...
... ... @@ -10,7 +10,7 @@ import 'package:one_key/pages/message/message_dialog_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/common_button.dart';
... ...
... ... @@ -15,7 +15,7 @@ import 'package:one_key/pages/login/web_page.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/widgets/loading.dart';
import 'package:package_info/package_info.dart';
import 'package:permission_handler/permission_handler.dart';
... ...
... ... @@ -7,8 +7,14 @@ class MyItem extends StatefulWidget {
final String title;
final String content;
final VoidCallback callback;
final bool needRadius;
const MyItem({Key key, this.title, this.content, this.callback})
const MyItem(
{Key key,
this.title,
this.content,
this.callback,
this.needRadius = false})
: super(key: key);
@override
... ... @@ -25,9 +31,12 @@ class MyItemState extends State<MyItem> {
return GestureDetector(
onTap: widget.callback,
child: Container(
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
widget.needRadius ? ScreenUtil().setWidth(40) : 0)),
width: double.infinity,
height: ScreenUtil().setHeight(122),
color: MyColours.color_ffffff,
padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
alignment: Alignment.center,
child: Row(
... ... @@ -46,11 +55,13 @@ class MyItemState extends State<MyItem> {
color: MyColours.color_666666),
),
HEmptyView(20),
Image.asset(
"assets/arr_right_gray.png",
width: ScreenUtil().setWidth(14),
height: ScreenUtil().setWidth(22),
)
widget.needRadius
? Container()
: Image.asset(
"assets/arr_right_gray.png",
width: ScreenUtil().setWidth(14),
height: ScreenUtil().setWidth(22),
)
],
),
),
... ...
... ... @@ -11,6 +11,8 @@ class SystemAppBar extends StatelessWidget implements PreferredSizeWidget {
final bool showLeading;
final GestureTapCallback onTapRight;
final String leftTitle;
final Color bgColor;
final bool needWhite;
const SystemAppBar(this.title,
{Key key,
... ... @@ -18,12 +20,15 @@ class SystemAppBar extends StatelessWidget implements PreferredSizeWidget {
this.onTap,
this.onTapRight,
this.showLeading = true,
this.bgColor = MyColours.color_ffffff,
this.needWhite = false,
this.leftTitle = ''})
: super(key: key);
@override
Widget build(BuildContext context) {
return AppBar(
backgroundColor: bgColor,
elevation: 0,
leadingWidth:
leftTitle != '' ? ScreenUtil().setWidth(84 * 2 + 40 + 10) : 56,
... ... @@ -37,7 +42,9 @@ class SystemAppBar extends StatelessWidget implements PreferredSizeWidget {
child: Row(
children: <Widget>[
Image.asset(
"assets/icon_back.png",
needWhite
? "assets/icon_white.png"
: "assets/icon_back.png",
width: ScreenUtil().setWidth(20),
height: ScreenUtil().setWidth(31),
),
... ... @@ -58,7 +65,7 @@ class SystemAppBar extends StatelessWidget implements PreferredSizeWidget {
title: Text(
title,
style: TextStyle(
color: MyColours.color_353535,
color: needWhite ? MyColours.color_fefefe : MyColours.color_353535,
fontSize: ScreenUtil().setSp(34),
decoration: TextDecoration.none),
),
... ...
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.flutter-io.cn"
source: hosted
version: "14.0.0"
amap_core_fluttify:
dependency: transitive
description:
... ... @@ -35,7 +42,7 @@ packages:
name: analyzer
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.36.4"
version: "0.41.2"
args:
dependency: transitive
description:
... ... @@ -70,14 +77,14 @@ packages:
name: build
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.6"
version: "1.6.2"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.1+1"
version: "0.4.6"
build_daemon:
dependency: transitive
description:
... ... @@ -91,21 +98,21 @@ packages:
name: build_resolvers
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.1"
version: "1.5.3"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.6.9"
version: "1.11.5"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.1"
version: "6.1.10"
built_collection:
dependency: transitive
description:
... ... @@ -155,6 +162,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.10.1"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.0"
clock:
dependency: transitive
description:
... ... @@ -239,13 +253,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.5"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.16.2"
cupertino_icons:
dependency: "direct main"
description:
... ... @@ -259,7 +266,7 @@ packages:
name: dart_style
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.9"
version: "1.3.12"
decimal:
dependency: transitive
description:
... ... @@ -322,7 +329,7 @@ packages:
name: file
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.2.1"
version: "6.1.0"
fixnum:
dependency: transitive
description:
... ... @@ -436,13 +443,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.12"
front_end:
dependency: transitive
description:
name: front_end
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.19"
get_it:
dependency: "direct main"
description:
... ... @@ -456,7 +456,7 @@ packages:
name: glob
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
version: "2.0.1"
graphs:
dependency: transitive
description:
... ... @@ -464,13 +464,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.0"
html:
dependency: transitive
description:
name: html
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.14.0+4"
http:
dependency: transitive
description:
... ... @@ -540,28 +533,14 @@ packages:
name: json_annotation
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
json_model:
dependency: "direct dev"
description:
name: json_model
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.2"
version: "3.1.1"
json_serializable:
dependency: "direct dev"
description:
name: json_serializable
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
kernel:
dependency: transitive
description:
name: kernel
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.19"
version: "3.5.1"
latlng:
dependency: transitive
description:
... ... @@ -604,20 +583,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.4"
node_interop:
dependency: transitive
description:
name: node_interop
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
node_io:
dependency: transitive
description:
name: node_io
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
octo_image:
dependency: transitive
description:
... ... @@ -646,13 +611,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.3"
package_resolver:
dependency: transitive
description:
name: package_resolver
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.10"
path:
dependency: transitive
description:
... ... @@ -715,7 +673,7 @@ packages:
name: pedantic
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.9.0"
version: "1.11.0"
permission_handler:
dependency: "direct main"
description:
... ... @@ -757,7 +715,7 @@ packages:
name: platform
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.1"
version: "3.0.0"
plugin_platform_interface:
dependency: transitive
description:
... ... @@ -778,7 +736,7 @@ packages:
name: process
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.13"
version: "4.2.1"
provider:
dependency: "direct main"
description:
... ... @@ -923,7 +881,7 @@ packages:
name: source_gen
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.4+4"
version: "0.9.10+3"
source_span:
dependency: transitive
description:
... ... @@ -1149,7 +1107,7 @@ packages:
name: xdg_directories
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0"
version: "0.1.2"
yaml:
dependency: transitive
description:
... ...
... ... @@ -27,7 +27,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
json_annotation: ^2.0.0
json_annotation: ^3.1.0
# 状态管理
provider: ^4.0.4
# Sp存储
... ... @@ -122,10 +122,10 @@ dev_dependencies:
flutter_test:
sdk: flutter
json_model: ^0.0.2
# json_model: ^0.0.2
build_runner: ^1.0.0
json_serializable: ^2.0.0
build_runner: ^1.11.5
json_serializable: ^3.5.1
# For information on the generic Dart part of this file, see the
... ...