import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'dart:async';
import 'order_management_page/order_detail_page.dart';
import 'order_detail/order_detail.dart';
import '../showDialog.dart';
import '../util/models.dart';
import '../util/api.dart';
import '../util/util.dart';
class OrderManagementPage extends StatefulWidget {
  final Widget child;

  OrderManagementPage({
    Key key,
    this.child
  }): super(key: key);

  _OrderManagementPageState createState() => _OrderManagementPageState();
}

class _OrderManagementPageState extends State < OrderManagementPage > with AutomaticKeepAliveClientMixin {

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Scaffold(
        appBar: AppBar(
          title: Text('订单管理', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(36)), ),
          centerTitle: true,
          backgroundColor: Color.fromRGBO(64, 98, 254, 1),
        ),
        body: Container(
          decoration: BoxDecoration(
            color: Color.fromRGBO(246, 246, 254, 1)
          ),
          child: QueryWidget()

        ),
        resizeToAvoidBottomPadding: false //键盘弹出，页面不跟随向上滑动,防止出现溢出错误
      )
    );
  }
  @override
  bool get wantKeepAlive => true;
}

class QueryWidget extends StatefulWidget { //搜索栏
  final Widget child;

  QueryWidget({
    Key key,
    this.child
  }): super(key: key);

  _QueryWidgetState createState() => _QueryWidgetState();
}

class _QueryWidgetState extends State < QueryWidget > {
  //单号的输入框控制器
  TextEditingController _orderController = TextEditingController();
  ScrollController _scrollController = ScrollController();

  GlobalKey _globalKey = GlobalKey(); //搜索栏key
  List < bool > statusList = [true, false, false];
  double inputPostX = 0;
  double inputPostY = 0;
  double inputWidth = 0;
  double inputHeight = 0;
  bool showStatus = true; //提示层显示状态
  String _orderNo = "";
  int orderStatus = 1; //0:代收单，1：待取件，2:运途中:已完成
  int page = 1;
  bool hasNextPage = true;
  List < FromStatusGetOrderList > orderList = [];
  List likeOrderNoList = [];
  var timer;
  bool loadMoreStatus = true;


  @override
  void initState() {
    super.initState();
    switchOrderFromStatus(orderStatus, page);
    _scrollController.addListener(() {
      if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {
        if (loadMoreStatus) {
          page = ++page;
          getMoreOrder(orderStatus, page);
        }
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: < Widget > [
        Container(
          child: Column(
            children: < Widget > [
              Container(
                color: Colors.white,
                height: ScreenUtil.getInstance().setHeight(222),
                padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), 0),
                child: Column(
                  children: < Widget > [
                    Container(
                      key: _globalKey,
                      height: ScreenUtil.getInstance().setHeight(100),
                      decoration: BoxDecoration(
                        border: Border.all(color: Color.fromRGBO(204, 204, 204, 1), width: 1),
                        borderRadius: BorderRadius.all(Radius.circular(5))
                      ),
                      child: Row(
                        children: < Widget > [
                          Expanded(
                            child: TextField(
                              controller: _orderController,
                              keyboardType: TextInputType.number,
                              autocorrect: true,
                              decoration: InputDecoration(
                                border: InputBorder.none,
                                hintText: "输入运单号后6位查询物流",
                                hintStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(26), color: Color.fromRGBO(155, 155, 155, 1)),
                                contentPadding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(30), 0, ScreenUtil.getInstance().setWidth(30), 0)
                              ),
                              onTap: () {
                                RenderObject inputObj = _globalKey.currentContext.findRenderObject();
                                setState(() {
                                  inputWidth = inputObj.paintBounds.size.width;
                                  inputHeight = inputObj.paintBounds.size.height;
                                  inputPostX = inputObj.getTransformTo(null).getTranslation().x;
                                  inputPostY = ScreenUtil.getInstance().setWidth(20) + inputHeight;
                                });
                              },
                              onChanged: ((value) {
                                setState(() {
                                  _orderNo = value;
                                });
                                if (timer != null) {
                                  timer.cancel();
                                }
                                timer = Timer(Duration(milliseconds: 500), () {
                                  if (_orderNo.length >= 6) {
                                    orderNoLike(_orderNo, orderStatus).then((resp) {
                                      if (isNotError(context, resp)) {
                                        LikeOrderNo tempObj = LikeOrderNo.fromJson(resp.data);
                                        if (tempObj.data.length > 0) {
                                          setState(() {
                                            likeOrderNoList = tempObj.data;
                                            showStatus = false;
                                          });
                                        }
                                      }
                                    });
                                  } else {
                                    setState(() {
                                      showStatus = true;
                                    });
                                  }
                                });

                              }),
                              onEditingComplete: () {
                                FocusScope.of(context).requestFocus(FocusNode());
                                setState(() {
                                  showStatus = true;
                                });
                              },
                            ),
                          ),
                          IconButton(
                            icon: Image.asset('lib/images/icon_saoyisao.png',
                              width: ScreenUtil.getInstance().setWidth(38),
                              height: ScreenUtil.getInstance().setHeight(36),
                            ),
                            onPressed: () {},
                          ),
                          GestureDetector(
                            child: Container(
                              width: ScreenUtil.getInstance().setWidth(120),
                              decoration: BoxDecoration(
                                border: Border(left: BorderSide.merge(BorderSide(color: Color.fromRGBO(204, 204, 204, 1), width: 1), BorderSide(color: Color.fromRGBO(204, 204, 204, 1), width: 0)), )
                              ),
                              child: Center(
                                child: Text("查询", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(26), color: Color.fromRGBO(64, 98, 254, 1)), ),
                              ),
                            ),
                            onTap: () {
                              print("查询");
                            }
                          ),
                        ],
                      ),
                    ),
                    Container(
                      height: ScreenUtil.getInstance().setHeight(100),
                      child: Container(
                        padding: EdgeInsets.only(top: ScreenUtil.getInstance().setHeight(25)),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.spaceAround,
                          children: < Widget > [
                            GestureDetector(
                              child: Container(
                                height: ScreenUtil.getInstance().setHeight(80),
                                decoration: BoxDecoration(
                                  border: statusList[0] ? Border(bottom: BorderSide.merge(BorderSide(color: Colors.black, width: 1), BorderSide(color: Colors.black, width: 0)), ) : Border()
                                ),
                                child: Center(
                                  child: Text("待取件", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: statusList[0] ? Colors.black : Color.fromRGBO(155, 155, 155, 1)), ),
                                )
                              ),
                              onTap: () {
                                if (statusList[0]) {
                                  return;
                                } else {
                                  setState(() {
                                    statusList = [true, false, false];
                                    orderStatus = 1;
                                  });
                                  switchOrderFromStatus(orderStatus, page);
                                }
                              },
                            ),
                            GestureDetector(
                              child: Container(
                                height: ScreenUtil.getInstance().setHeight(80),
                                decoration: BoxDecoration(
                                  border: statusList[1] ? Border(bottom: BorderSide.merge(BorderSide(color: Colors.black, width: 1), BorderSide(color: Colors.black, width: 0)), ) : Border()
                                ),
                                child: Center(
                                  child: Text("运途中", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: statusList[1] ? Colors.black : Color.fromRGBO(155, 155, 155, 1)), ),
                                )
                              ),
                              onTap: () {
                                if (statusList[1]) {
                                  return;
                                } else {
                                  setState(() {
                                    statusList = [false, true, false];
                                    orderStatus = 2;
                                  });
                                  switchOrderFromStatus(orderStatus, page);
                                }
                              },
                            ),
                            GestureDetector(
                              child: Container(
                                height: ScreenUtil.getInstance().setHeight(80),
                                decoration: BoxDecoration(
                                  border: statusList[2] ? Border(bottom: BorderSide.merge(BorderSide(color: Colors.black, width: 1), BorderSide(color: Colors.black, width: 0)), ) : Border()
                                ),
                                child: Center(
                                  child: Text("已完成", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: statusList[2] ? Colors.black : Color.fromRGBO(155, 155, 155, 1)), ),
                                )
                              ),
                              onTap: () {
                                if (statusList[2]) {
                                  return;
                                } else {
                                  setState(() {
                                    statusList = [false, false, true];
                                    orderStatus = 3;
                                  });
                                  switchOrderFromStatus(orderStatus, page);
                                }
                              },
                            ),
                          ],
                        )
                      )
                    ),
                  ],
                )
              ),
              Expanded(
                child: Container(
                  padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), ScreenUtil.getInstance().setWidth(20), 0),
                  child: orderList == null ? Center(
                    child: _getMoreWidget()
                  ) : orderList.length == 0 ?
                  Center(
                    child: Text('暂无订单'),
                  ) :
                  RefreshIndicator(
                    onRefresh: refreshOrder,
                    child: ListView.builder(
                      physics: AlwaysScrollableScrollPhysics(),
                      controller: _scrollController,
                      itemCount: orderList.length + 1,
                      itemBuilder: (BuildContext context, int index) {
                        if (index < orderList.length) {
                          return _cardWiget(orderList[index], index);
                        }
                        if (hasNextPage) {
                          return _getMoreWidget();
                        } else {
                          return _noMoreWidegt();
                        }
                      },
                    )
                  )

                ),
              )
            ],
          )
        ),
        Positioned(
          left: inputPostX,
          top: inputPostY,
          child: Offstage(
            offstage: showStatus,
            child:
            Container(
              width: inputWidth,
              height: ScreenUtil.getInstance().setHeight(320),
              margin: EdgeInsets.only(top: ScreenUtil.getInstance().setHeight(1)),
              decoration: BoxDecoration(
                color: Color.fromRGBO(244, 248, 251, 1),
                border: Border.all(color: Color.fromRGBO(204, 204, 204, 1), width: 1),
                borderRadius: BorderRadius.all(Radius.circular(5))
              ),
              child: ListView.builder(
                itemCount: likeOrderNoList.length,
                itemBuilder: (BuildContext context, int index) {
                  return InkWell(
                    child: Padding(
                      padding: EdgeInsets.all(10),
                      child: Text(likeOrderNoList[index]),
                    ),
                    onTap: () {
                      setState(() {
                        page = 1;
                        _orderNo = likeOrderNoList[index];
                      });
                      fromStatusGetOrderList(orderStatus, page, likeOrderNoList[index]).then((resp) {
                        if (isNotError(context, resp)) {
                          FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
                          setState(() {
                            orderList = tempObj.data.items;
                            hasNextPage = tempObj.data.hasNextPage;
                          });
                        }
                      });
                      setState(() {
                        _orderController.text = likeOrderNoList[index];
                        showStatus = true;
                        FocusScope.of(context).requestFocus(FocusNode());
                      });
                    },
                  );
                },
              ),
            ),
          )
        )
      ],
    );
  }
  Widget _cardWiget(FromStatusGetOrderList obj, int index) {
    Map < int, String > statusMap = {
      1: '待取货',
      2: '运途中',
      3: '已签收',
      4: '已拒收',
      5: '已作废'
    };
    return InkWell(
      child: Card(
        color: Colors.white,
        child: Container(
          padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(20)),
          child: Column(
            children: < Widget > [
              Padding(
                padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(30)),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: < Widget > [
                    Text('订单号：${obj.orderNo}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(102, 102, 102, 1)), ),
                    Text('${statusMap[obj.orderStatus]}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(126, 211, 33, 1)), ),
                  ],
                )
              ),
              Padding(
                padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
                child: Row(
                  children: < Widget > [
                    Text('${obj.sendCompanyName} --> ${obj.receiptCompanyName}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30)), ),
                  ],
                )
              ),
              Padding(
                padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(15)),
                child: Row(
                  children: < Widget > [
                    SizedBox(
                      width: ScreenUtil.getInstance().setWidth(355),
                      child: Text('货物名称：${obj.goods}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                    ),
                    Text('代收款：${obj.goodsAgencyFund/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                  ],
                ),
              ),
              Padding(
                padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(30)),
                child: Row(
                  children: < Widget > [
                    SizedBox(
                      width: ScreenUtil.getInstance().setWidth(355),
                      child: Text('货物件数：${obj.goodsQuantity}件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                    ),
                    Text('运费：${obj.goodsFreight/100}元', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(155, 155, 155, 1)), ),
                  ],
                ),
              ),
              Padding(
                padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
                child: Container(
                  height: ScreenUtil.getInstance().setHeight(1),
                  color: Color.fromRGBO(223, 223, 223, 1),
                ),
              ),
              orderStatus == 1 ? _status1Fun(obj, index) : orderStatus == 2 ? _status2Fun(obj, index) : _status3Fun(obj, index)
            ],
          ),
        )
      ),
      onTap: () {
        Navigator.push(
          context,
          MaterialPageRoute(
            builder: (BuildContext context) {
              return OrderDetailsPage(orderNo: obj.orderNo);
            })
        );
      },
    );
  }
  Widget _status1Fun(FromStatusGetOrderList obj, int index) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: < Widget > [
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('作废', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认作废', childCallback: (val) {
                    if (val) {
                      myUpdataOrder(obj.orderNo, 5, index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("作废");
          },
        ),
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('寄件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认寄件', childCallback: (val) {
                    if (val) {
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (BuildContext context) {
                            return OrderDetailPage(orderNo: obj.orderNo);
                          })
                      ).then((resp) {
                        if (resp == true) {
                          deleteOrder(index);
                        }
                      });
                    } else {
                      return;
                    }
                  },
                );
              });
            print("寄件");
          },
        ),
      ],
    );
  }
  Widget _status2Fun(FromStatusGetOrderList obj, int index) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: < Widget > [
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('作废', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认作废', childCallback: (val) {
                    if (val) {
                      myUpdataOrder(obj.orderNo, 5, index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("作废");
          },
        ),
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('拒收', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认拒收', childCallback: (val) {
                    if (val) {
                      myUpdataOrder(obj.orderNo, 4, index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("拒收");
          },
        ),
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('签收', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认签收', childCallback: (val) {
                    if (val) {
                      myUpdataOrder(obj.orderNo, 3, index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("签收");
          },
        ),
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('改单', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认改单', childCallback: (val) {
                    if (val) {
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (BuildContext context) {
                            return OrderDetailPage(orderNo: obj.orderNo);
                          })
                      ).then((resp) {
                        if (resp == true) {
                          switchOrderFromStatus(orderStatus, page);
                        }
                      });
                    } else {
                      return;
                    }
                  },
                );
              });
            print("改单");
          },
        ),
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('打印', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认打印', childCallback: (val) {
                    if (val) {
                      //widget.callback(widget.index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("打印");
          },
        ),
      ],
    );
  }
  Widget _status3Fun(FromStatusGetOrderList obj, int index) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.end,
      children: < Widget > [
        InkWell(
          child: Container(
            width: ScreenUtil.getInstance().setWidth(94),
            height: ScreenUtil.getInstance().setHeight(48),
            decoration: BoxDecoration(
              color: Color.fromRGBO(239, 243, 249, 1),
              borderRadius: BorderRadius.all(Radius.circular(4.0))
            ),
            child: Center(
              child: Text('打印', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(24), color: Color.fromRGBO(64, 98, 254, 1))),
            ),
          ),
          onTap: () {
            showDialog < Null > (
              context: context, //BuildContext对象
              barrierDismissible: false,
              builder: (BuildContext context) {
                return new LoadingDialog( //调用对话框
                  text: '是否确认打印', childCallback: (val) {
                    if (val) {
                      //widget.callback(widget.index);
                    } else {
                      return;
                    }
                  },
                );
              });
            print("打印");
          },
        ),
      ],
    );
  }

  Widget _getMoreWidget() {
    return Center(
      child: Padding(
        padding: EdgeInsets.all(10.0),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: < Widget > [
            Text(
              '加载中...',
              style: TextStyle(fontSize: 16.0),
            ),
            Container(
              width: ScreenUtil.getInstance().setWidth(50),
              height: ScreenUtil.getInstance().setHeight(50),
              child: CircularProgressIndicator()
            )

          ],
        ),
      ),
    );
  }

  Widget _noMoreWidegt() {
    return Center(
      child: Padding(
        padding: EdgeInsets.all(10.0),
        child: Text(
          '没有更多数据了...',
          style: TextStyle(fontSize: 16.0),
        ),
      ),
    );
  }

  switchOrderFromStatus(int orderStatus, int page) {
    setState(() {
      orderList = null;
    });
    page = 1;
    fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
      if (isNotError(context, resp)) {
        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
        setState(() {
          orderList = tempObj.data.items;
          hasNextPage = tempObj.data.hasNextPage;
        });
      }
    });
  }
  getMoreOrder(int orderStatus, int page) {
    if (!hasNextPage) {
      return;
    }
    loadMoreStatus = false;
    fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
      if (isNotError(context, resp)) {
        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
        setState(() {
          orderList.addAll(tempObj.data.items);
          hasNextPage = tempObj.data.hasNextPage;
        });
        loadMoreStatus = true;
      } else {
        loadMoreStatus = true;
      }
    });
  }

  deleteOrder(int index) {
    setState(() {
      orderList.removeAt(index);
    });
    if (orderList.length < 4) {
      if (hasNextPage) {
        setState(() {
          page = ++page;
        });
        getMoreOrder(orderStatus, page);
      }
    }
  }
  myUpdataOrder(String myOrderNo, int myOrderStatus, int index) {
    updataOrderStatus(myOrderNo, myOrderStatus).then((resp) {
      if (isNotError(context, resp)) {
        deleteOrder(index);
      }
    });
  }
  Future refreshOrder() async {
    page = 1;
    await fromStatusGetOrderList(orderStatus, page, _orderNo).then((resp) {
      if (isNotError(context, resp)) {
        FromStatusGetOrderObj tempObj = FromStatusGetOrderObj.fromJson(resp.data);
        setState(() {
          orderList = tempObj.data.items;
          hasNextPage = tempObj.data.hasNextPage;
        });
      }
    });
  }
}