123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- 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,
- )),
- ]),
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- );
- }
- }
|