messsage_item.dart 5.52 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/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.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(
              height: ScreenUtil().setWidth(290),
              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(
                        message.message_type=="10"?"在线预订":"取消预订",
                        style: TextStyle(
                            color: textColor,
                            fontSize: ScreenUtil().setSp(28)),
                      ),
                      Spacer(),
                      Text(
                        message.cdateStr,
                        style: TextStyle(
                            color: MyColours.color_999999,
                            fontSize: ScreenUtil().setSp(24)),
                      ),
                    ],
                  ),
                  VEmptyView(20),
                  message.message_type=="11"?
                  Text(
                    "${message.ddateStr}的${message.rnameStr}取消了预订",
                    style: TextStyle(
                        color: textColor,
                        fontSize: ScreenUtil().setSp(28)),
                  ):
                  Column(
                    mainAxisSize: MainAxisSize.min,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      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: 152,
                  height: 50,
                  fontSize: 30,
                  content:message.message_type=="10"?"立即处理":"立即查看",
                  state: 1,
                  onPress: () {
                    messageDialogModel.removeMessage(message.id);
                    if(message.message_type=="10"){
                      NavigatorUtil.goHandleOnlinePage(context,message.rid.toString(),message.id);
                    }else{
                      NavigatorUtil.goNotebookDetailPage(context,message.rid.toString());
                      bus.emit("remove_untreated_message", message.id);
                      Map<String, String> params = {
                        "sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
                        "id": message.id,
                        "status": "is_handle"
                      };
                      messageDialogModel.setMessageStatus(context,params);
                    }
                  },
                ),
              ),
            )
          ],
        )
    );
  }
}