messsage_item.dart 4.11 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';

class MessageItem extends StatelessWidget {

  final Message message;
  final bool isTreated;
  final VoidCallback callback;
  MessageItem(this.message,{this.isTreated=false,this.callback});

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    Color textColor=isTreated?MyColours.color_999999:MyColours.color_353535;
    MessageDialogModel messageDialogModel=Provider.of<MessageDialogModel>(context,listen: false);
    return GestureDetector(
        onTap: (){
          if(isTreated){
            NavigatorUtil.goNotebookDetailPage(context,message.rid.toString());
          }
        },
        child: Stack(
          children: <Widget>[
            Container(
              margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(39),vertical: ScreenUtil().setWidth(12)),
              padding: EdgeInsets.fromLTRB(
                  ScreenUtil().setWidth(12),
                  ScreenUtil().setWidth(45),
                  ScreenUtil().setWidth(21),
                  ScreenUtil().setWidth(43)),
              decoration: BoxDecoration(
                  color: MyColours.color_fefefe,
                  borderRadius:
                  BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8)))),
              child:Column(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Row(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: <Widget>[
                      Text(
                        "在线预订",
                        style: TextStyle(
                            color: textColor,
                            fontSize: ScreenUtil().setSp(28)),
                      ),
                      Spacer(),
                      Text(
                        message.cdateStr,
                        style: TextStyle(
                            color: MyColours.color_999999,
                            fontSize: ScreenUtil().setSp(24)),
                      ),
                    ],
                  ),
                  VEmptyView(20),
                  Text(
                    "包间需求:${message.room_demand}",
                    style: TextStyle(
                        color: textColor,
                        fontSize: ScreenUtil().setSp(28)),
                  ),
                  VEmptyView(10),
                  Text(
                    "就餐时间:${message.ddateStr}",
                    style: TextStyle(
                        color: textColor,
                        fontSize: ScreenUtil().setSp(28)),
                  ),
                  VEmptyView(10),
                  Text(
                    "预订人:${message.rnameStr}",
                    style: TextStyle(
                        color: textColor,
                        fontSize: ScreenUtil().setSp(28)),
                  ),
                ],
              ),
            ),
            Positioned(
              right: ScreenUtil().setWidth(60),
              bottom: ScreenUtil().setWidth(55),
              child:Offstage(
                offstage: isTreated?true:false,
                child: CommonButton(
                  width: 160,
                  height: 48,
                  fontSize: 28,
                  content: "立即处理",
                  state: 1,
                  onPress: () {
                    messageDialogModel.removeMessage(message.id);
                    NavigatorUtil.goHandleOnlinePage(context,message.rid.toString(),message.id);
                  },
                ),
              ),
            )
          ],
        )
    );
  }
}