Commit 102ad3eb03b7ab0c49109e35d5d9dcccf80ca6b3

Authored by “gaiyaguang”
2 parents 4cade740 9ffa252c

Merge branch 'v1.2+' of http://123.56.79.57/xt/Flutter-ReserveApp into v1.2+

... ... @@ -43,8 +43,8 @@ android {
applicationId "com.naji.one_key"
minSdkVersion 21
targetSdkVersion 28
versionCode 117
versionName "1.1.7"
versionCode 118
versionName "1.1.8"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
... ...
class MyError extends Error{
final int type;
MyError({this.type=1});//1 ConnectivityError 2 ConnectivityTimeOut
}
... ...
/**
* 页面状态
*/
enum PageState{
Loading,//加载中
ConnectivityTimeOut,//请求超时
ConnectivityError,//请求错误
Empty,//空页面
First,
Success//成功
}
... ...
... ... @@ -3,6 +3,7 @@ import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/loading.dart';
... ... @@ -173,10 +174,10 @@ class DioUtil {
CancelToken cancelToken,
bool showLoading = true}) async {
bool connectivity = await Utils.checkConnectiviy();
// if(!connectivity){
if (!connectivity) {
// Utils.showToast("网络错误,请稍后重试");
// return new Future.error("网络错误,请稍后重试");
// }
throw MyError(type: 1);
}
if (showLoading) Loading.showLoading(context);
try {
Response response = await _dio.request(path,
... ... @@ -236,9 +237,11 @@ class DioUtil {
Loading.hideLoading(context);
}
if (error is DioError && error.type == DioErrorType.CONNECT_TIMEOUT) {
Utils.showToast("网络链接超时,请稍后重试");
// Utils.showToast("网络链接超时,请稍后重试");
}
if (error.type != DioErrorType.CANCEL) {
throw MyError(type: 2);
}
throw error;
}
}
... ...
... ... @@ -21,6 +21,8 @@ import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:one_key/utils/event_bus.dart';
import '../../app.dart';
class HandleOnlinePage extends StatefulWidget {
final String rid;
final String mid;
... ... @@ -45,6 +47,10 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
Manager manager = Manager();
bool isCallTel=false;
String formatPhone="";//格式客户号码
@override
void initState() {
// TODO: implement initState
... ... @@ -56,6 +62,15 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
setState(() {
//未处理
cusmanText = detailEntity.cusman.isEmpty ? "请选择" : detailEntity.cusman;
formatPhone=detailEntity.phone;
if(App.sp.getString("is_call_tel")!=null&&App.sp.getString("is_call_tel")=="1"){
isCallTel=true;
}else{
isCallTel=false;
if(detailEntity.phone.isNotEmpty&&detailEntity.phone.length==11&&(detailEntity.status=="0"||detailEntity.status=="6")){
formatPhone=detailEntity.phone.substring(0,3)+"****"+detailEntity.phone.substring(7);
}
}
});
if (detailEntity.status != "0") {
//已处理
... ... @@ -68,6 +83,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
managers = await detailModel.getManagers(context);
}
});
}
//设置当前客户经理
... ... @@ -148,7 +164,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
};
bool success =
await detailModel.setReserveStatus(context, params, showLoading: true);
if (success) {
if (success!=null&&success) {
bus.emit("refresh_book_list");
}
}
... ... @@ -164,9 +180,12 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
detailModel.setMessageStatus(context, params);
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return SafeArea(
child: WillPopScope(
child: detailEntity == null
... ... @@ -268,7 +287,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
RowMultiText(
"客户姓名", detailEntity.rnameStr),
RowMultiText(
"客户电话", detailEntity.phone),
"客户电话", formatPhone),
RowMultiText("备注信息",
detailEntity.cusdem ?? ""),
MyDivider(double.infinity,
... ... @@ -357,7 +376,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
int.parse(detailEntity.ddate) *
1000,
detailEntity.ddate_solt);
if (map['tid'] != null) {
if (map!=null&&map['tid'] != null) {
setReserveStatus("5",
tid: map['tid']);
}
... ... @@ -393,34 +412,42 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
_showRefuseDialog();
},
)),
MyDivider(
ScreenUtil().setWidth(2),
ScreenUtil().setHeight(52),
color: MyColours.color_199095,
),
Expanded(
child: GestureDetector(
child: Center(
child: Text(
"联系顾客",
style: TextStyle(
color:
MyColours.color_199095,
fontSize:
ScreenUtil().setSp(34)),
),
Offstage(
offstage: !isCallTel,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
MyDivider(
ScreenUtil().setWidth(2),
ScreenUtil().setHeight(52),
color: MyColours.color_199095,
),
Expanded(
child: GestureDetector(
child: Center(
child: Text(
"联系顾客",
style: TextStyle(
color:
MyColours.color_199095,
fontSize:
ScreenUtil().setSp(34)),
),
),
onTap: () {
if (detailEntity.phone != null &&
detailEntity
.phone.isNotEmpty) {
Utils.goPhone(
detailEntity.phone);
} else {
Utils.showToast("没有客户电话!");
}
},
)),
],
),
onTap: () {
if (detailEntity.phone != null &&
detailEntity
.phone.isNotEmpty) {
Utils.goPhone(
detailEntity.phone);
} else {
Utils.showToast("没有客户电话!");
}
},
)),
)
],
),
)
... ...
... ... @@ -28,6 +28,8 @@ import 'package:one_key/models/table.dart' as t;
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import '../../app.dart';
class NotebookDetailPage extends StatefulWidget {
final String rid;
final String mid;
... ... @@ -61,6 +63,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
StateSetter _cancelState;
ScrollController _scrollController;
String formatPhone="";
@override
void initState() {
// TODO: implement initState
... ... @@ -114,6 +119,13 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
});
setState(() {
cusmanText = detailEntity.cusman.isEmpty ? "请选择" : detailEntity.cusman;
formatPhone=detailEntity.phone;
if(App.sp.getString("is_call_tel")!=null&&App.sp.getString("is_call_tel")=="1"){
}else{
if(detailEntity.phone.isNotEmpty&&detailEntity.phone.length==11&&(detailEntity.status=="0"||detailEntity.status=="6")){
formatPhone=detailEntity.phone.substring(0,3)+"****"+detailEntity.phone.substring(7);
}
}
});
if (detailEntity.status == "4") {
setMessageStatus();
... ... @@ -526,7 +538,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
)),
RowMultiText("客户姓名", detailEntity.rnameStr),
RowMultiText(
"客户电话", detailEntity.phone ?? ""),
"客户电话", formatPhone),
Offstage(
offstage: detailEntity.cusdem == '' ||
detailEntity.cusdem == null,
... ...
... ... @@ -90,6 +90,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
if (Platform.isIOS && param != null) {
notifyParam = json.decode(param['custom'].toString());
}
LogUtil.v(param.toString());
if (notifyParam != null && notifyParam.isNotEmpty) {
switch (notifyParam["messageType"]) {
case "10":
... ... @@ -247,7 +248,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
super.didChangeAppLifecycleState(state);
switch (state) {
case AppLifecycleState.resumed: //应用前台可见
// getUntreatedMessage();
getUntreatedMessage();
break;
case AppLifecycleState.inactive:
print('inactive');
... ...
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
import 'package:one_key/utils/event_bus.dart';
... ... @@ -55,11 +57,15 @@ class MessageLeftPageState extends State<MessageLeftPage> {
// TODO: implement build
return Consumer<MessageModel>(
builder: (context,model,_){
if(!model.connect_timeout){
return Center(
child: ErrorPage(callback: (){
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
getUntreatedMessage();
},),
},
emptyMsg: "暂时没有未处理的消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
}else{
return EasyRefresh.custom(
... ...
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
class MessageRightPage extends StatefulWidget{
... ... @@ -50,11 +52,15 @@ class MessageRightPageState extends State<MessageRightPage>{
// TODO: implement build
return Consumer<MessageModel>(
builder: (context,model,_){
if(!model.connect_timeout){
return Center(
child: ErrorPage(callback: (){
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
getTreatedMessage();
},),
},
emptyMsg: "暂时没有已处理的消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
}else{
return EasyRefresh.custom(
... ...
... ... @@ -2,6 +2,7 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/notebook/notebook_item_widget.dart';
import 'package:one_key/provider/notebook_model.dart';
import 'package:one_key/provider/update_model.dart';
... ... @@ -15,6 +16,7 @@ import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
class NoteBookPage extends StatefulWidget {
... ... @@ -412,13 +414,15 @@ class NoteBookPageState extends State<NoteBookPage> {
_buildListTitle(),
Expanded(child: Consumer<NoteBookModel>(
builder: (context, model, _) {
if (model.connect_timeout) {
return Center(
child: ErrorPage(
callback: () {
_getReserveList();
},
),
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
_getReserveList();
},
emptyMsg: "暂时没有预订哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return EasyRefresh.custom(
... ...
... ... @@ -59,7 +59,7 @@ class ContactModel{
"data":jsonEncode(callLogs)
};
BaseResp<String> baseResp = await DioUtil()
.request<String>(context, Method.get, HttpUrl.upload_contact,
.request<String>(context, Method.get, HttpUrl.upload_contact,showLoading: false,
data: params,options: Options(method: Method.post,contentType: ContentType.parse("application/x-www-form-urlencoded")))
.catchError((error) {
print(error.toString());
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
... ... @@ -13,18 +15,30 @@ class MessageModel extends ChangeNotifier{
List<Message> untreatedMsgs=[];//未处理在线预订消息
List<Message> treatedMsgs=[];//已处理在线预订消息
bool connect_timeout=true;
PageState pageState = PageState.Loading;
//获取未处理在线预订消息
getUntreatedMsg(BuildContext context,Map<String,String> params) async {
connect_timeout=true;
pageState = PageState.Loading;
notifyListeners();
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_message_list,
data: params)
data: params,showLoading: false)
.catchError((error) {
print(error.toString());
connect_timeout=false;
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if (baseResp!=null&&baseResp.code == Constant.status_success) {
... ... @@ -42,20 +56,39 @@ class MessageModel extends ChangeNotifier{
}
return true;
});
if (untreatedMsgs.isEmpty) {
pageState = PageState.Empty;
} else {
pageState = PageState.Success;
}
notifyListeners();
}
}
//获取未处理在线预订消息
getTreatedMsg(BuildContext context,Map<String,String> params) async {
connect_timeout=true;
notifyListeners();
if (params["offset"] == "0") {
pageState = PageState.Loading;
notifyListeners();
}
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_message_list,
data: params)
data: params,showLoading: false)
.catchError((error) {
print(error.toString());
connect_timeout=false;
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if (baseResp!=null&&baseResp.code == Constant.status_success) {
... ... @@ -74,6 +107,11 @@ class MessageModel extends ChangeNotifier{
}
return true;
});
if (treatedMsgs.isEmpty) {
pageState = PageState.Empty;
} else {
pageState = PageState.Success;
}
notifyListeners();
}
}
... ...
... ... @@ -61,7 +61,7 @@ class NotebookDetailModel extends ChangeNotifier {
}
//安排在线预订
setReserveStatus(BuildContext context, Map<String, String> params,
Future<bool> setReserveStatus(BuildContext context, Map<String, String> params,
{ifPush = true, showLoading = false}) async {
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
... ... @@ -70,6 +70,7 @@ class NotebookDetailModel extends ChangeNotifier {
.catchError((error) {
print(error.toString());
});
if(baseResp==null) return false;
if (baseResp.code == Constant.status_success) {
if (ifPush) {
NavigatorUtil.goNotebookDetailPage(context, params["rid"],
... ... @@ -78,6 +79,7 @@ class NotebookDetailModel extends ChangeNotifier {
return true;
} else {
Utils.showToast(baseResp.msg);
return false;
}
}
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
... ... @@ -14,18 +16,30 @@ class NoteBookModel extends ChangeNotifier{
String total="";//一天统计
bool connect_timeout=false;
PageState pageState = PageState.Loading;
//获取已预订订单
Future<List<Notebook>> getReserveList(BuildContext context,Map<String,String> params) async {
connect_timeout=false;
pageState = PageState.Loading;
notifyListeners();
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_reserve_list,
data: params,showLoading: true)
data: params,showLoading: false)
.catchError((error) {
print(error.toString());
connect_timeout=true;
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if(baseResp==null)return null;
... ... @@ -34,6 +48,11 @@ class NoteBookModel extends ChangeNotifier{
notebooks=baseResp.data.map<Notebook>((value){
return Notebook.fromJson(value);
}).toList();
if (notebooks.isEmpty) {
pageState = PageState.Empty;
} else {
pageState = PageState.Success;
}
}else{
Utils.showToast(baseResp.msg??"");
}
... ...
... ... @@ -39,7 +39,7 @@ class UpdateModel {
"make":make,//3 android 4 ios
};
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.check_update, data: params)
.request<List>(context, Method.get, HttpUrl.check_update, data: params,showLoading: false)
.catchError((error) {
print(error.toString());
if(showToast){
... ...
... ... @@ -103,6 +103,7 @@ class UserModel with ChangeNotifier {
user['night'] = daily['night'];
_saveUserInfo(User.fromJson(user));
App.sp.setBool("isLogin", true);
App.sp.setString("is_call_tel", seller['is_call_tel'].toString());
NavigatorUtil.goHomePage(context);
return null;
}
... ... @@ -111,7 +112,7 @@ class UserModel with ChangeNotifier {
///初始化推送token
userTokenInit(BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.user_token_init,
.request<dynamic>(context, Method.get, HttpUrl.user_token_init,showLoading: false,
data: params)
.catchError((error) {
print(error.toString());
... ...
... ... @@ -19,6 +19,11 @@ class Utils {
Fluttertoast.showToast(msg: msg, gravity: ToastGravity.CENTER);
}
//本地图片资源路径
static String getImgPath(String name, {String format: 'png'}) {
return 'assets/$name.$format';
}
//给数字前面加0
static String addZeroNumber(int num) {
return num < 10 ? "0" + num.toString() : num.toString();
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/v_empty_view.dart';
class EmptyPage extends StatefulWidget {
final String content;
final String imgname;
const EmptyPage({Key key, this.content, this.imgname = "bg_error"}) : super(key: key);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new EmptyPageState();
}
}
class EmptyPageState extends State<EmptyPage> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Container(
width: double.infinity,
height: double.infinity,
child: Stack(
children: <Widget>[
Container(
width: double.infinity,
height: double.infinity,
margin: EdgeInsets.only(top: ScreenUtil().setWidth(132)),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Image.asset(
Utils.getImgPath(widget.imgname),
width: ScreenUtil().setWidth(520),
height: ScreenUtil().setWidth(384),
),
VEmptyView(40),
Text(
widget.content ?? "数据为空",
textAlign: TextAlign.center,
strutStyle: StrutStyle(leading: ScreenUtil().setWidth(1)),
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_353535),
)
],
),
),
],
)
);
}
}
... ...
... ... @@ -4,10 +4,12 @@ import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/v_empty_view.dart';
class ErrorPage extends StatefulWidget{
final String content;
final VoidCallback callback;
const ErrorPage({Key key, this.callback}) : super(key: key);
const ErrorPage({Key key, this.callback,this.content="哎呀~网络好像走失了呢"}) : super(key: key);
@override
State<StatefulWidget> createState() {
... ... @@ -24,32 +26,31 @@ class ErrorPageState extends State<ErrorPage>{
return Container(
width: double.infinity,
height: double.infinity,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Image.asset("assets/bg_error.png",width: ScreenUtil().setWidth(311),height: ScreenUtil().setWidth(215),),
VEmptyView(40),
Text("哎呀~网络好像走失了呢",style: TextStyle(fontSize: ScreenUtil().setSp(32),color: MyColours.color_353535),),
VEmptyView(20),
widget.callback!=null?GestureDetector(
onTap: widget.callback,
child: Container(
width: ScreenUtil().setWidth(148),
height: ScreenUtil().setWidth(58),
decoration: BoxDecoration(
color: MyColours.color_2bb5b7,
borderRadius: BorderRadius.all(Radius.circular(ScreenUtil().setWidth(12)))
),
child: Center(
child: Text("点击刷新",style: TextStyle(fontSize: ScreenUtil().setSp(30),color: MyColours.color_ffffff),),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
VEmptyView(120),
Image.asset("assets/bg_error.png",width: ScreenUtil().setWidth(520),height: ScreenUtil().setWidth(384),),
VEmptyView(40),
Text("${widget.content}",style: TextStyle(fontSize: ScreenUtil().setSp(28),color: MyColours.color_353535),),
VEmptyView(20),
widget.callback!=null?GestureDetector(
onTap: widget.callback,
child: Container(
width: ScreenUtil().setWidth(152),
height: ScreenUtil().setWidth(58),
decoration: BoxDecoration(
color: MyColours.app_main,
borderRadius: BorderRadius.all(Radius.circular(ScreenUtil().setWidth(28)))
),
):Container()
],
),
),
child: Center(
child: Text("点击刷新",style: TextStyle(fontSize: ScreenUtil().setSp(28),color: MyColours.color_ffffff),),
),
),
):Container()
],
)
);
}
}
\ No newline at end of file
}
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/page_empty.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_loading.dart';
class ExceptionPage extends StatefulWidget {
final PageState pageState;
final VoidCallback callback;
final String emptyMsg;
final String emptyImg;
final String showMsg;
final Color defalutColor;
const ExceptionPage(
{Key key,
this.pageState = PageState.Loading,
this.callback,
this.emptyMsg = "数据为空",
this.emptyImg = 'bg_error',
this.showMsg = '',
this.defalutColor = MyColours.color_ffffff})
: super(key: key);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return ExceptionPageState();
}
}
class ExceptionPageState extends State<ExceptionPage> {
@override
Widget build(BuildContext context) {
// TODO: implement build
Widget page = ErrorPage(
content: "哎呀~网络好像走失了呢",
callback: widget.callback,
);
switch (widget.pageState) {
case PageState.Loading:
page = LoadingPage(
defalutColor: widget.defalutColor, showMsg: widget.showMsg);
break;
case PageState.ConnectivityTimeOut:
page = ErrorPage(
content: "请求超时啦~刷新一下看看",
callback: widget.callback,
);
break;
case PageState.ConnectivityError:
page = ErrorPage(
content: "哎呀~网络好像走失了呢",
callback: widget.callback,
);
break;
case PageState.Empty:
page = EmptyPage(
content: widget.emptyMsg,
imgname: widget.emptyImg,
);
break;
case PageState.First:
page = Container(
width: 0,
height: 10,
color: Colors.blue,
);
break;
default:
page = ErrorPage(
content: "哎呀~网络好像走失了呢",
callback: widget.callback,
);
break;
}
return page;
}
}
... ...
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/v_empty_view.dart';
class LoadingPage extends StatefulWidget {
final Color defalutColor;
final String showMsg;
const LoadingPage(
{Key key, this.defalutColor = MyColours.color_ffffff, this.showMsg})
: super(key: key);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return LoadingPageState();
}
}
class LoadingPageState extends State<LoadingPage> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
backgroundColor: widget.defalutColor,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
width: ScreenUtil().setWidth(80),
height: ScreenUtil().setWidth(80),
child: CupertinoActivityIndicator()),
VEmptyView(30),
Text(
widget.showMsg,
style: TextStyle(
color: MyColours.color_666666,
fontSize: ScreenUtil().setSp(24)),
)
],
),
),
);
}
}
... ...