Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

杨树贤 / kefu_server

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
BlameHistoryPermalink
Switch branch/tag
  • kefu_server
  • ui
  • kefu_flutter
  • lib
  • widgets
  • workorder_message.dart
  • chenxianqi's avatar
    add flutter_kefu ui · 80b91a2f
    chenxianqi committed 5 years ago
    80b91a2f
workorder_message.dart 3.82 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
import 'package:flutter/material.dart';
import 'package:kefu_flutter/workorder/create.dart';
import '../models/im_message.dart';
import 'date_widget.dart';
import 'im_avatar.dart';

class WorkorderMessage extends StatelessWidget {
  WorkorderMessage({this.message});
  final ImMessage message;
  @override
  Widget build(BuildContext context) {
    ThemeData themeData = Theme.of(context);
    bool isDark = themeData.brightness == Brightness.dark;

    Widget _avatar() {
      return ImAvatar(
        avatar: message.avatar,
      );
    }

    // _goToCreateWprkOrder
    void _goToCreateWprkOrder() {
      Navigator.push(
          context, MaterialPageRoute(builder: (context) => CreateWorkOrder()));
    }

    Widget msgWidget() {
      return Container(
        margin: EdgeInsets.only(bottom: 15.0),
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.start,
          mainAxisAlignment: MainAxisAlignment.start,
          children: <Widget>[
            _avatar(),
            Padding(
              padding: EdgeInsets.only(left: 7.0, right: 0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Row(
                    crossAxisAlignment: CrossAxisAlignment.end,
                    children: <Widget>[
                      Container(
                          margin: EdgeInsets.only(top: 3.0),
                          constraints: BoxConstraints(maxWidth: 290.0),
                          padding: EdgeInsets.symmetric(
                              horizontal: 10.0, vertical: 5.0),
                          decoration: BoxDecoration(
                              color: isDark
                                  ? themeData.dividerColor
                                  : Colors.white,
                              boxShadow: [
                                BoxShadow(
                                  offset: Offset(0.0, 3.0),
                                  color: Colors.black26.withAlpha(5),
                                  blurRadius: 4.0,
                                ),
                                BoxShadow(
                                  offset: Offset(0.0, 3.0),
                                  color: Colors.black26.withAlpha(5),
                                  blurRadius: 4.0,
                                ),
                              ],
                              borderRadius:
                                  BorderRadius.all(Radius.circular(3.0))),
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.start,
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: <Widget>[
                              Text("${message.payload}",
                                  style: themeData.textTheme.title.copyWith(
                                      color: themeData.textTheme.title.color,
                                      fontSize: 15.0)),
                              GestureDetector(
                                onTap: _goToCreateWprkOrder,
                                child: Text(
                                  "创建工单",
                                  style: TextStyle(
                                      fontSize: 15.0,
                                      color: themeData.primaryColor),
                                ),
                              )
                            ],
                          ))
                    ],
                  ),
                ],
              ),
            ),
          ],
        ),
      );
    }

    return Column(
      children: <Widget>[
        Offstage(
          offstage: !message.isShowDate,
          child: DateWidget(
            date: message.timestamp,
          ),
        ),
        msgWidget()
      ],
    );
  }
}