order_express.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import 'package:flutter/material.dart';
  2. import 'package:twong/api/index.dart';
  3. import 'package:twong/config/style.dart';
  4. import 'package:twong/utils/index.dart';
  5. import 'package:twong/models/index.dart';
  6. import 'package:twong/widgets/app_bar.dart';
  7. import 'package:twong/widgets/cart_item.dart';
  8. class OrderExpressPage extends StatefulWidget {
  9. final dynamic data;
  10. OrderExpressPage(this.data);
  11. @override
  12. State<StatefulWidget> createState() {
  13. return _OrderExpressState();
  14. }
  15. }
  16. class _OrderExpressState extends State<OrderExpressPage> {
  17. Express info;
  18. @override
  19. void initState() {
  20. super.initState();
  21. loadData();
  22. }
  23. void loadData() async {
  24. Network.inst.getOrderExpress(widget.data.order_id).then((value) {
  25. setState(() {
  26. info = value;
  27. });
  28. });
  29. }
  30. @override
  31. Widget build(BuildContext context) {
  32. return Scaffold(
  33. appBar: DAppBar("物流信息"),
  34. backgroundColor: DColors.back,
  35. body: Container(
  36. margin: EdgeInsets.only(left: 12.px, right: 12.px),
  37. child: ListView(
  38. physics: ClampingScrollPhysics(),
  39. children: [
  40. _buildProducts(),
  41. Divider(),
  42. _buildExpress(),
  43. ])
  44. )
  45. );
  46. }
  47. Widget _buildProducts() {
  48. List<Widget> widgets = List<Widget>();
  49. for (var item in widget.data.cartInfo) {
  50. Log.d(item.id);
  51. widgets.add(CartItem(item));
  52. }
  53. return Container(
  54. child: Column(children: widgets),
  55. padding: EdgeInsets.all(6.px),
  56. margin: EdgeInsets.only(top: 6.px),
  57. decoration: BoxDecoration(
  58. color: Colors.white,
  59. borderRadius: BorderRadius.circular(6.px)
  60. ),
  61. );
  62. }
  63. Widget _buildExpress() {
  64. return Container(
  65. padding: EdgeInsets.all(6.px),
  66. decoration: BoxDecoration(
  67. color: Colors.white,
  68. borderRadius: BorderRadius.circular(6.px)
  69. ),
  70. child: info == null ? Center(child: Utils.loadingWidget) : Row(
  71. children: [
  72. Container(
  73. margin: EdgeInsets.only(right: 12.px),
  74. child: Icon(Icons.explicit),
  75. ),
  76. Expanded(child: Column(
  77. crossAxisAlignment: CrossAxisAlignment.start,
  78. children: [
  79. RichText(text: TextSpan(
  80. text: "物流公司: ",
  81. style: TextStyle(color: Colors.black, fontSize: 12.px),
  82. children: [
  83. TextSpan(
  84. text: info.order.delivery_name,
  85. style: TextStyle(color: Colors.grey, fontSize: 11.px),
  86. )
  87. ]
  88. )),
  89. RichText(text: TextSpan(
  90. text: "快递单号: ",
  91. style: TextStyle(color: Colors.black, fontSize: 12.px),
  92. children: [
  93. TextSpan(
  94. text: info.order.delivery_id,
  95. style: TextStyle(color: Colors.grey, fontSize: 11.px),
  96. )
  97. ]
  98. ))
  99. ],
  100. )),
  101. Container(
  102. width: 56.px,
  103. height: 21.px,
  104. child: OutlineButton(
  105. onPressed: () { Utils.copyText(info.order.delivery_id); },
  106. child: Text("复制", style: TextStyle(fontSize: 10.px))),
  107. )
  108. ],
  109. ),
  110. );
  111. }
  112. }