| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- import 'package:bot_toast/bot_toast.dart';
- import 'package:flutter/material.dart';
- import 'package:cached_network_image/cached_network_image.dart';
- import 'package:flutter/services.dart';
- import 'package:twong/api/index.dart';
- import 'package:twong/router/base.dart';
- import 'package:twong/utils/index.dart';
- import 'package:twong/config/style.dart';
- import 'package:twong/models/index.dart';
- import 'package:twong/widgets/app_bar.dart';
- import 'package:twong/widgets/cart_item.dart';
- import 'package:twong/widgets/order_utils.dart';
- class OrderDetailsPage extends StatefulWidget {
- final String orderId;
- OrderDetailsPage(this.orderId);
- @override
- State<StatefulWidget> createState() {
- return _OrderDetailsState();
- }
- }
- class _OrderDetailsState extends State<OrderDetailsPage> {
- OrderDetails _details;
- @override
- void initState() {
- super.initState();
- loadData();
- }
- void loadData() {
- Network.inst.getOrderDetails(widget.orderId).then((value){
- if(!mounted) return;
- setState(() {
- _details = value;
- });
- }).catchError((err, stack) {
- Navigator.pop(context);
- });
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: DAppBar("订单详情"),
- body: _details == null ? Center(child: Utils.loadingWidget)
- : SafeArea(child: Column(
- children: [
- Expanded(child: Container(
- color: DColors.back,
- child: ListView(
- physics: ClampingScrollPhysics(),
- children: [
- Container(
- height: 56.px,
- color: DColors.Main,
- padding: EdgeInsets.all(6.px),
- child: Row(
- children: [
- Container(
- width: 46.px,
- height: 46.px,
- margin: EdgeInsets.only(right: 12.px, left: 12.px),
- child: CachedNetworkImage(imageUrl: _details.status_pic),
- ),
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(child: Text(_details.orderStatus.msg,
- style: TextStyle(color: Colors.white,
- fontSize: 13.px))),
- Text("下单日期:${Utils.formatData(
- _details.add_time)}",
- style: TextStyle(color: Colors.white,
- fontSize: 11.px)),
- ]),
- ])),
- _buildAddress(),
- _buildProducts(),
- _buildInfo()
- ]),
- )),
- Container(
- height: 56.px,
- color: Colors.white,
- margin: EdgeInsets.only(right: 12.px),
- child: OrderUtils.buildButtons(details: _details),
- )
- ],
- )),
- );
- }
- Widget _buildAddress() {
- return Container(
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(6.px)
- ),
- padding: EdgeInsets.all(6.px),
- margin: EdgeInsets.only(left: 12.px, right: 12.px, top: 12.px),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Row(
- children: [
- Text(_details.real_name),
- Container(width: 22.px),
- Text(_details.user_phone)
- ],
- ),
- Text(_details.user_address)
- ],
- ),
- );
- }
- Widget _buildProducts() {
- List<Widget> widgets = List<Widget>();
- for(var item in _details.cartInfo) {
- widgets.add(InkWell(
- child: CartItem(item, action: _details.status == 2 ? Container(
- width: 58.px,
- height: 22.px,
- margin: EdgeInsets.only(left: 12.px),
- child: OutlineButton(
- onPressed: () {
- Navigator.pushNamed(context,
- RouteNames.orderComment, arguments: item);
- },
- shape: StadiumBorder(),
- highlightedBorderColor: Colors.transparent,
- borderSide: BorderSide(color: DColors.Main),
- child: Text("评价", style: TextStyle(
- color: DColors.Main, fontSize: 12.px))),
- ) : null),
- onTap: () { Navigator.pushNamed(context,
- RouteNames.productDetails, arguments: item.id); },
- ));
- widgets.add(Divider());
- }
- widgets.add(Container(
- child: Text("联系客服"),
- ));
- return Container(
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(6.px)
- ),
- padding: EdgeInsets.all(6.px),
- margin: EdgeInsets.only(left: 12.px, right: 12.px, top: 12.px),
- child: Column( children: widgets),
- );
- }
- Widget _buildInfo() {
- var style = TextStyle(color: Colors.grey);
- return Container(
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(6.px)
- ),
- padding: EdgeInsets.all(6.px),
- margin: EdgeInsets.only(left: 12.px, right: 12.px, top: 12.px),
- child: Column(
- children: [
- Container(padding: EdgeInsets.only(bottom: 6.px), child: Row(
- children: [
- Expanded(child: Text("订单编号:")),
- Text(_details.order_id, style: style),
- Container(
- width: 46.px,
- height: 20.px,
- margin: EdgeInsets.only(left: 12.px),
- child: OutlineButton(
- onPressed: () { Utils.copyText( _details.order_id); },
- shape: StadiumBorder(),
- highlightColor: Colors.transparent,
- highlightedBorderColor: Colors.grey,
- borderSide: BorderSide(color: Colors.grey),
- child: Text("复制", style: TextStyle(fontSize: 7.px))),
- )
- ],
- )),
- Container(padding: EdgeInsets.only(bottom: 6.px), child: Row(
- children: [
- Expanded(child: Text("下单时间:")),
- Text(Utils.formatData(_details.add_time), style: style),
- ],
- )),
- Container(padding: EdgeInsets.only(bottom: 6.px), child: Row(
- children: [
- Expanded(child: Text("订单类型:")),
- Text("普通订单", style: style),
- ],
- )),
- Container(padding: EdgeInsets.only(bottom: 6.px), child: Row(
- children: [
- Expanded(child: Text("支付状态:")),
- Text(_details.orderStatus.title, style: style),
- ],
- )),
- Row(
- children: [
- Expanded(child: Text("支付方式:")),
- Text(_details.orderStatus.payType, style: style),
- ],
- ),
- ],
- ),
- );
- }
- }
|