Commit 0db2f4ec578b209ce1015c13c491f1fbd72aa602

Authored by wdn127929
1 parent d94136f2

短信购买UI第一页

... ... @@ -34,6 +34,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
MyModel myModel;
ScrollController controller;
Version _version;
SmsInfoData smsInfoData;
@override
void initState() {
... ... @@ -96,7 +97,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
///获取短信余量
_getSmsInfo(context) async {
// myModel = Provider.of<MyModel>(context, listen: false);
await myModel.getSmsInfo(context);
smsInfoData = await myModel.getSmsInfo(context);
// setState(() {
// if (smsInfoData != null) {
// smsInfo = smsInfoData?.lastNum;
... ... @@ -309,7 +311,9 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
content:
myModel.smsInfo.isNotEmpty ? '剩余${myModel.smsInfo}条' : '',
callback: () {
Utils.goMiniProgramZm(context, "setting/sms");
// Utils.goMiniProgramZm(context, "setting/sms");
NavigatorUtil.goSmsManagePage(context,
smsInfoData: smsInfoData);
},
),
MyDivider(
... ... @@ -323,7 +327,6 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
callback: () {
// Utils.goMiniProgramZm(context, "roomtype/roomtype");
NavigatorUtil.goStoreTypeFillManagePage(context);
},
),
MyDivider(
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/sms_info.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/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 SmsManagerPage extends StatefulWidget {
final SmsInfoData infoData;
SmsManagerPage({Key key, this.infoData}) : super(key: key);
@override
_SmsManagerPageState createState() => _SmsManagerPageState();
}
class _SmsManagerPageState extends State<SmsManagerPage> {
@override
void initState() {
// TODO: implement initState
super.initState();
Utils.changeStatusColor(color: MyColours.color_199095);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: SystemAppBar(
'短信管理',
bgColor: MyColours.color_199095,
needWhite: true,
onTap: () {
EventBus().emit('changeStatusColor');
Navigator.pop(context);
},
),
body: NestedScrollView(
// controller: _scrollViewController,
headerSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
pinned: false,
floating: false,
leading: Container(),
expandedHeight: ScreenUtil().setWidth(320 + 40),
flexibleSpace: FlexibleSpaceBar(
collapseMode: CollapseMode.pin,
background: Consumer<MyModel>(builder:
(BuildContext context, MyModel model, Widget child) {
return Container(
width: double.infinity,
height: ScreenUtil().setHeight(320 + 30),
color: MyColours.color_199095,
child: Padding(
padding:
EdgeInsets.only(left: ScreenUtil().setWidth(30)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
VEmptyView(80),
Container(
height: ScreenUtil().setWidth(40),
child: Text(
'短信余量',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(30)),
),
),
VEmptyView(10),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
height: ScreenUtil().setWidth(40),
child: Text(
widget.infoData.lastNum,
style: TextStyle(
color: MyColours.color_ffffff,
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(36)),
)),
Container(
height: ScreenUtil().setWidth(30),
child: Text(
' 条',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(30)),
))
],
),
VEmptyView(80),
Stack(children: [
RoundButton(
text: '立即充值',
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
borderColor: Color.fromRGBO(255, 255, 255, 0.2),
width: ScreenUtil().setWidth(225),
height: ScreenUtil().setWidth(80),
textColor: MyColours.color_199095,
radius: ScreenUtil().setWidth(10),
fontSize: 28,
isBold: true,
imgWidth: 26,
onPressed: () {
// NavigatorUtil.goBaseInfoPage(context);
},
),
Positioned(
top: 0,
right: 0,
child: Container(
// padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(16),vertical: ScreenUtil().setWidth(4)),
padding: EdgeInsets.only(
left: ScreenUtil().setWidth(6)),
alignment: Alignment.center,
width: ScreenUtil().setWidth(34 * 2),
height: ScreenUtil().setWidth(30),
decoration: BoxDecoration(
// color: Colors.red,
image: DecorationImage(
image: ExactAssetImage(
Utils.getImgPath('sms_manager'),
),
fit: BoxFit.cover,
),
),
child: Text(
'特惠',
style: TextStyle(
color: MyColours.color_fefefe,
fontSize: ScreenUtil().setSp(24)),
)),
)
])
],
)),
);
}),
),
)
];
}, body: Consumer<MyModel>(
builder: (BuildContext context, MyModel model, Widget child) {
return MediaQuery.removePadding(
context: context,
child: SingleChildScrollView(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
VEmptyView(60),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MyDivider(ScreenUtil().setWidth(130),
ScreenUtil().setWidth(2)),
HEmptyView(40),
Text(
'常见问题说明',
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_333333),
),
HEmptyView(40),
MyDivider(ScreenUtil().setWidth(130),
ScreenUtil().setWidth(2))
],
),
VEmptyView(40),
Text(
"1.短信计费",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
fontWeight: FontWeight.bold),
),
Container(
margin: EdgeInsets.only(
top: ScreenUtil().setWidth(20),
bottom: ScreenUtil().setWidth(20)),
child: Text(
"· 短信计费统一根据三大运营商标注计算;\n· 当短信内容字符数≤70,短信按照一条计费;\n· 当短信内容字符数>70个字符时,按照每70个字符为一条短信;",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
),
strutStyle: StrutStyle(
forceStrutHeight: true,
height: 1,
leading: 0.3),
),
),
MyDivider(
double.infinity, ScreenUtil().setWidth(1)),
VEmptyView(40),
Text(
"2.短信统计",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
fontWeight: FontWeight.bold),
),
Container(
margin: EdgeInsets.only(
top: ScreenUtil().setWidth(20),
bottom: ScreenUtil().setWidth(20)),
child: Text(
"· 短信统计只统计计费短信,与订单数量无关,一个订单可能会发送多条短信,则计费时按照多条短信计费;",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
),
strutStyle: StrutStyle(
forceStrutHeight: true,
height: 1,
leading: 0.3),
),
),
MyDivider(
double.infinity, ScreenUtil().setWidth(1)),
VEmptyView(40),
Text(
"3.充值说明",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
fontWeight: FontWeight.bold),
),
Container(
margin: EdgeInsets.only(
top: ScreenUtil().setWidth(20),
bottom: ScreenUtil().setWidth(20)),
child: Text(
"· 短信统一在订座商户小程序上进行充值,充值记录和详细使用情况统一在小程序上查看。",
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
),
strutStyle: StrutStyle(
forceStrutHeight: true,
height: 1,
leading: 0.3),
),
),
]))));
})));
}
}
... ...
... ... @@ -3,6 +3,7 @@ import 'package:one_key/models/seller_table_class_entity.dart';
import 'package:one_key/provider/store_detail_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/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
... ... @@ -400,10 +401,14 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> {
appBar: SystemAppBar(
userModel.user.sellername,
onTap: () {
EventBus().emit('changeStatusColor');
Navigator.pop(context);
},
),
body: Consumer<StoreDetailModel>(
body: WillPopScope(onWillPop: () async {
EventBus().emit('changeStatusColor');
return true;
}, child: Consumer<StoreDetailModel>(
builder: (context, model, child) {
return Container(
width: double.infinity,
... ... @@ -843,7 +848,7 @@ class StoreTypeFillManagePageState extends State<StoreTypeFillManagePage> {
],
));
},
),
)),
);
}
}
... ...
... ... @@ -4,6 +4,7 @@ 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/sms_info.dart';
import 'package:one_key/models/statics_model.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/res/colors.dart';
... ... @@ -341,4 +342,12 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.store_type_fill_manage_page}",
replace: replace);
}
/// 短信充值
static Future<dynamic> goSmsManagePage(BuildContext context,
{replace = false, SmsInfoData smsInfoData}) {
return _navigateTo(context,
"${Routes.sms_manager_page}?smsInfoData=${FluroConvertUtils.object2string(smsInfoData)}",
replace: replace);
}
}
... ...
... ... @@ -5,6 +5,7 @@ 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/sms_info.dart';
import 'package:one_key/models/statics_model.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/pages/coupon/coupon_detail_page.dart';
... ... @@ -39,6 +40,7 @@ import 'package:one_key/pages/my/contant_page.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/my/sms_manager.dart';
import 'package:one_key/pages/my/store_type_fill_manage_page.dart';
import 'package:one_key/pages/notebook/statistics_page.dart';
import 'package:one_key/pages/notebook/statistics_sms_page.dart';
... ... @@ -523,3 +525,14 @@ var storeTypeFillManagePageHandler = new Handler(
// return ChangeNotifierProvider<UploadImageProvider>(
// create: (_) => UploadImageProvider(), child: EnterStoreFrontPhotoPage());
});
///短信充值
var smsManagerPageHandler = new Handler(
handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
SmsInfoData data = SmsInfoData.fromJson(json.decode(
FluroConvertUtils.fluroCnParamsDecode(params["smsInfoData"].first)));
return ChangeNotifierProvider<MyModel>(
create: (_) => MyModel(), child: SmsManagerPage(infoData: data));
// return ChangeNotifierProvider<UploadImageProvider>(
// create: (_) => UploadImageProvider(), child: EnterStoreFrontPhotoPage());
});
... ...
... ... @@ -48,6 +48,7 @@ class Routes {
static String statistics_sms_page = "/statistics_sms_page"; //统计页发短信
static String store_type_fill_manage_page =
"/store_type_fill_manage_page"; //包间置满管理
static String sms_manager_page = "/sms_manager_page"; //短信充值
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -103,5 +104,6 @@ class Routes {
router.define(statistics_sms_page, handler: statisticsSmsPageHandler);
router.define(store_type_fill_manage_page,
handler: storeTypeFillManagePageHandler);
router.define(sms_manager_page, handler: smsManagerPageHandler);
}
}
... ...