import 'package:farmer_client/utils/processStatus.dart';
import 'package:farmer_client/widgets/Bold.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';

import '../models/entities/OrderInfoModel.dart';
import 'package:intl/intl.dart';
import 'LinearGradientText.dart';

class TextCell extends StatelessWidget {
  String title;
  String? value;

  TextCell({Key? key, required this.title, this.value}):super(key: key);

  @override
  Widget build(BuildContext context) {
    return RichText(
      text: TextSpan(children: <InlineSpan>[
        TextSpan(
            text: title,
            style: const TextStyle(
                color: Color(0xff666666),
                fontSize: 16,
                fontWeight: FontWeight.bold)),
        TextSpan(
            text: value,
            style: const TextStyle(
                color: Color(0xff222222),
                fontSize: 16,
                fontWeight: FontWeight.bold)),
      ]),
    );
  }

}

class OrderListCard extends StatelessWidget {
  final OrderInfoModel item;
  late ProcessSign processSign;

  OrderListCard({Key? key, required this.item}) : super(key: key) {
    processSign = getProcessSign(getProcessStatus(item));
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 375.w,
      height: 345.h,
      margin: const 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: const EdgeInsets.fromLTRB(15, 20, 15, 0),
            width: 18.0,
            height: 275.h,
            child: const Image(
              image: AssetImage('images/ordersLeft.png'),
            ),
          ),
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Container(
                  width: 320.w,
                  margin: const EdgeInsets.fromLTRB(0, 10, 0, 15),
                  padding: const EdgeInsets.fromLTRB(0, 0, 0, 20),
                  decoration: const BoxDecoration(
                      border: Border(
                          bottom:
                          BorderSide(width: 0.5, color: Color(0x20000000)
                            // 0x17000000
                          ))),
                  child: GestureDetector(
                    child:
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        TextCell(title: '订单编号:', value: item.orderNo),
                        Bold(text: "详情 >>", fontSize: 16.sp, color: const Color(0xff222222)),
                      ],
                    ),
                    onTap: () {
                      Get.toNamed('/orderPageInfo', arguments: {
                        'id': item.orderId,
                        'title': processSign.label,
                        'styleColor': processSign.color
                      });
                    },
                  ),
                ),
                Expanded(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Padding(
                          padding: const EdgeInsets.fromLTRB(0, 0, 0, 15),
                          child: TextCell(title: '农机名称:', value: item.machineryName),
                        ),
                        Padding(
                          padding: const EdgeInsets.fromLTRB(0, 0, 0, 15),
                          child: TextCell(title: '作业面积:', value: item.amount.toString()),
                        ),
                        Padding(
                          padding: const EdgeInsets.fromLTRB(0, 0, 0, 15),
                          child: TextCell(title: '需求时间:', value: DateFormat("yyyy-MM-dd").format(
                              DateTime.parse(item.appointmentDate.toString()))),
                        ),
                        Padding(
                          padding: const EdgeInsets.fromLTRB(0, 0, 0, 15),
                          child: TextCell(title: '需求时间:', value: DateFormat("yyyy-MM-dd").format(
                              DateTime.parse(item.createDate.toString()))),
                        ),
                      ],
                    )),
                Container(
                  margin: const EdgeInsets.fromLTRB(0, 0, 0, 30),
                  padding: const 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>[
                          const TextSpan(
                              text: '订单状态:',
                              style: TextStyle(
                                  color: Color(0xff666666),
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                          TextSpan(
                              text: processSign.label,
                              style: TextStyle(
                                  color: processSign.color,
                                  fontSize: 16,
                                  fontWeight: FontWeight.bold)),
                        ]),
                      ),
                      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: const TextStyle(
                                      fontSize: 16,
                                      fontWeight: FontWeight.bold,
                                    )),
                                const TextSpan(
                                    text: "元",
                                    style: TextStyle(
                                      fontSize: 16,
                                      fontWeight: FontWeight.bold,
                                    )),
                              ]),
                            ),
                          ),
                        ],
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}