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 { 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: [ 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: [ 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: [ 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: [ 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: [ 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: [ 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(0xFFFA7878), Color(0xFFB61515), ], child: RichText( text: TextSpan( children: [ TextSpan( text:( (item.charges??0)/100).toString(), style: TextStyle( fontSize: 16, fontWeight: FontWeight.bold, )), TextSpan( text: "元", style: TextStyle( fontSize: 16, fontWeight: FontWeight.bold, )), ] ), ), ), ], ), ), ], ), ), ], ), ), ], ), ); } }