welcome_page.dart 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import 'package:flutter/material.dart';
  2. import 'package:fooddeliveryapp/pages/table.dart';
  3. import 'package:provider/provider.dart';
  4. import 'staff_info_page.dart';
  5. import 'login_page.dart';
  6. import '../model/user.dart';
  7. class WelcomePage extends StatelessWidget {
  8. static const routeName = '/welcome';
  9. @override
  10. Widget build(BuildContext context) {
  11. return Scaffold(
  12. appBar: AppBar(
  13. automaticallyImplyLeading: false,
  14. title: Text("点餐App"),
  15. ),
  16. body: Consumer<UserStatus>(builder: (context, userStatus, child) {
  17. return Column(
  18. children: [
  19. GestureDetector(
  20. child: IndexCard("顾客", "开始自主点餐,并进行结算"),
  21. onTap: () {
  22. if (userStatus.value)
  23. Navigator.pushNamed(context, TablePage.routeName);
  24. else
  25. Navigator.pushNamed(context, LoginPage.routeName);
  26. },
  27. ),
  28. GestureDetector(
  29. child: IndexCard("员工", "设备员工信息"),
  30. onTap: () {
  31. if (userStatus.value)
  32. Navigator.pushNamed(context, StaffInfoPage.routeName);
  33. else
  34. Navigator.pushNamed(context, LoginPage.routeName);
  35. })
  36. ],
  37. );
  38. }),
  39. );
  40. }
  41. }
  42. class IndexCard extends StatelessWidget {
  43. final String title;
  44. final String description;
  45. IndexCard(this.title, this.description);
  46. @override
  47. Widget build(BuildContext context) {
  48. return Container(
  49. padding: EdgeInsets.fromLTRB(12, 12, 12, 0),
  50. child: Card(
  51. color: Colors.amber,
  52. elevation: 10,
  53. child: Container(
  54. padding: EdgeInsets.fromLTRB(15, 15, 15, 15),
  55. child: Column(
  56. mainAxisSize: MainAxisSize.min,
  57. children: [
  58. Row(
  59. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  60. children: [
  61. Text(
  62. title,
  63. style: TextStyle(fontSize: 30),
  64. ),
  65. Text(title),
  66. Text(title)
  67. ],
  68. ),
  69. Row(
  70. children: [
  71. Icon(Icons.border_color),
  72. Text(description)
  73. ],
  74. )
  75. ],
  76. ),
  77. )),
  78. );
  79. }
  80. }