import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';

import '../models/entities/OrderListAll.dart';
import '../pages/OrderConfirmation/index.dart';
import '../pages/orderInfo/index.dart';
import 'package:intl/intl.dart';
import 'LinearGradientText.dart';

class OrderListCard extends StatefulWidget {
  final OrderListAll item;
  const OrderListCard({Key? key, required this.item}) : super(key: key);

  @override
  _OrderListCardPages createState() => _OrderListCardPages(item);
}

class StyleObj {
  String title;
  Color styleColor;
  StyleObj({required this.title, required this.styleColor});
}

class _OrderListCardPages extends State<OrderListCard> {
  final OrderListAll item;

  _OrderListCardPages(this.item);

  StyleObj orderStates() {
    if (item.payStatus == 0) {
      return StyleObj(title: '待付款', styleColor: Color(0xFF51D4FF));
    } else if (item.payStatus == 1 &&
        item.workStatus == 0 &&
        item.dispatchStatus == 0) {
      return StyleObj(title: '已付款', styleColor: Color(0xFFFF703B));
    } else if (item.payStatus == 1 &&
        item.dispatchStatus == 1 &&
        item.workStatus == 0) {
      return StyleObj(title: '待作业', styleColor: Color(0xFFFF703B));
    } else if (item.payStatus == 1 &&
        (item.workStatus == 1 || item.workStatus == 2)) {
      return StyleObj(title: '进行中', styleColor: Color(0xFF44F68B));
    } else if (item.workStatus == 3 && item.isEvaluated == 0) {
      return StyleObj(title: '待评价', styleColor: Color(0xFF51D4FF));
    }
    if (item.workStatus == 3 &&
        item.isEvaluated == 1 &&
        item.dispatchStatus == 1) {
      return StyleObj(title: '已完成', styleColor: Color(0xFFFF703B));
    } else if (item.payStatus == -1 &&
        item.workStatus == 0 &&
        item.isRefund == 1) {
      return StyleObj(title: '已退单', styleColor: Color(0xFFFF703B));
    } else if (item.payStatus == 3 &&
        (item.dispatchStatus == 1 || item.dispatchStatus == 0)) {
      return StyleObj(title: '退单申请中', styleColor: Color(0xFFFF703B));
    } else {
      return StyleObj(title: '异常', styleColor: Color(0xFFFF0000));
    }
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 375.w,
      height: 345.h,
      margin: EdgeInsets.fromLTRB(0, 0, 0, 20),
      decoration: const BoxDecoration(color: Colors.white, boxShadow: [
        BoxShadow(
            color: Colors.black12,
            offset: Offset(0.0, 15.0), //阴影xy轴偏移量
            blurRadius: 15.0, //阴影模糊程度
            spreadRadius: 1.0 //阴影扩散程度
            )
      ]),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.start,
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Container(
            margin: EdgeInsets.fromLTRB(15, 20, 15, 0),
            width: 18.0,
            height: 275.h,
            child: Image(
              image: AssetImage('images/ordersLeft.png'),
            ),
          ),
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Container(
                  width: 320.w,
                  margin: EdgeInsets.fromLTRB(0, 10, 0, 15),
                  padding: EdgeInsets.fromLTRB(0, 0, 0, 20),
                  decoration: const BoxDecoration(
                      border: Border(
                          bottom:
                              BorderSide(width: 0.5, color: Color(0x20000000)
                                  // 0x17000000
                                  ))),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Container(
                        child: RichText(
                          text: TextSpan(children: <InlineSpan>[
                            TextSpan(
                                text: '订单编号:',
                                style: TextStyle(
                                    color: Color(0xff666666),
                                    fontSize: 16,
                                    fontWeight: FontWeight.bold)),
                            TextSpan(
                                text: item.orderNo,
                                style: TextStyle(
                                    color: Color(0xff222222),
                                    fontSize: 16,
                                    fontWeight: FontWeight.bold)),
                          ]),
                        ),
                      ),
                      GestureDetector(
                        child: const Text('详情 >>',
                            style: TextStyle(
                              color: Color(0xff222222),
                              fontSize: 16,
                              fontWeight: FontWeight.bold,
                            )),
                        onTap: () {
                          print('进入详情');
                          Get.toNamed('/orderPageInfo', arguments: {
                            'id': item.orderId,
                            'title': orderStates().title,
                            'styleColor': orderStates().styleColor
                          });
                        },
                      )
                    ],
                  ),
                ),
                Expanded(
                    child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Padding(
                      padding: EdgeInsets.fromLTRB(0, 0, 0, 15),
                      child: RichText(
                        text: TextSpan(children: <InlineSpan>[
                          TextSpan(
                              text: '农机名称:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: item.machineryName,
                              style: TextStyle(
                                  color: Color(0xff222222),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.fromLTRB(0, 0, 0, 15),
                      child: RichText(
                        text: TextSpan(children: <InlineSpan>[
                          TextSpan(
                              text: '作业面积:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: item.amount.toString(),
                              style: TextStyle(
                                  color: Color(0xff222222),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.fromLTRB(0, 0, 0, 15),
                      child: RichText(
                        text: TextSpan(children: <InlineSpan>[
                          TextSpan(
                              text: '需求时间:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: DateFormat("yyyy-MM-dd").format(
                                  DateTime.parse(
                                      item.appointmentDate.toString())),
                              style: TextStyle(
                                  color: Color(0xff222222),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.fromLTRB(0, 0, 0, 4),
                      child: RichText(
                        text: TextSpan(children: <InlineSpan>[
                          TextSpan(
                              text: '下单时间:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: DateFormat("yyyy-MM-dd").format(
                                  DateTime.parse(item.createDate.toString())),
                              style: TextStyle(
                                  color: Color(0xff222222),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                    ),
                  ],
                )),
                Container(
                  margin: EdgeInsets.fromLTRB(0, 0, 0, 30),
                  padding: EdgeInsets.fromLTRB(0, 20, 0, 0),
                  decoration: const BoxDecoration(
                      border: Border(
                          top: BorderSide(
                              width: 0.5, color: Color(0x20000000)))),
                  width: 320.w,
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      RichText(
                        text: TextSpan(children: <InlineSpan>[
                          TextSpan(
                              text: '订单状态:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: orderStates().title,
                              style: TextStyle(
                                  color: orderStates().styleColor,
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                      Container(
                        child: Row(
                          children: [
                            const Text('费用:',
                                style: TextStyle(
                                    color: Color(0xff666666),
                                    fontSize: 16,
                                    fontWeight: FontWeight.bold)),
                            LinearGradientText(
                              colors: const <Color>[
                                Color(0xFFFA7878),
                                Color(0xFFB61515),
                              ],
                              child: RichText(
                                text: TextSpan(children: <InlineSpan>[
                                  TextSpan(
                                      text: ((item.charges ?? 0) / 100)
                                          .toString(),
                                      style: TextStyle(
                                        fontSize: 16,
                                        fontWeight: FontWeight.bold,
                                      )),
                                  TextSpan(
                                      text: "元",
                                      style: TextStyle(
                                        fontSize: 16,
                                        fontWeight: FontWeight.bold,
                                      )),
                                ]),
                              ),
                            ),
                          ],
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}