[baozhangchao] 3 年之前
父節點
當前提交
4afd1c10b4

二進制
images/HomesNOImgaes.png 查看文件


二進制
images/HomesOFFImgaes.png 查看文件


二進制
images/MineNOImgaes.png 查看文件


二進制
images/MineOFFImgaes.png 查看文件


二進制
images/OrdersNOImgaes.png 查看文件


二進制
images/OrdersOFFImgaes.png 查看文件


二進制
images/icons/ListBack.png 查看文件


二進制
images/icons/deletes.png 查看文件


二進制
images/newsOFFImages.png 查看文件


二進制
images/newsONImages.png 查看文件


+ 89
- 0
lib/components/UI/DefaultButton.dart 查看文件

@@ -0,0 +1,89 @@
1
+import 'package:flutter/material.dart';
2
+
3
+
4
+
5
+class DefaultButton extends StatefulWidget {
6
+  //点击回调
7
+  final GestureTapCallback onPressed;
8
+  final String text;
9
+  final EdgeInsetsGeometry margin;
10
+  final double width;
11
+  final double height;
12
+  final double? fontSize;
13
+  final Color backColor;
14
+  final Color color;
15
+
16
+  EdgeInsetsGeometry marginDefault =
17
+  const EdgeInsets.fromLTRB(0, 90.0, 0, 30); //按钮默认的margin值
18
+
19
+  DefaultButton({
20
+    Key? key,
21
+    required this.onPressed,
22
+    required this.text,
23
+    required this.margin,
24
+    required this.width,
25
+    required this.height,
26
+    this.fontSize,
27
+    required this.backColor,
28
+    required this.color,
29
+  }) : super(key: key);
30
+
31
+  @override
32
+  State createState() {
33
+    if (margin == null) {
34
+      return _DefaultButtonState(onPressed, text, marginDefault,width,height,fontSize,backColor,color);
35
+    }
36
+    return _DefaultButtonState(onPressed, text, margin,width,height,fontSize,backColor,color);
37
+  }
38
+}
39
+
40
+class _DefaultButtonState extends State<DefaultButton> {
41
+  //点击回调
42
+  final GestureTapCallback onPressed;
43
+  final String text;
44
+  final EdgeInsetsGeometry margin;
45
+  final double width;
46
+  final double height;
47
+  final double? fontSize;
48
+  final Color backColor;
49
+  final Color color;
50
+  _DefaultButtonState(
51
+      this.onPressed,
52
+      this.text,
53
+      this.margin,
54
+      this.width,
55
+      this.height,
56
+      this.fontSize,
57
+      this.backColor,
58
+      this.color
59
+      );
60
+
61
+  @override
62
+  Widget build(BuildContext context) {
63
+    Widget _SectionBtn = Container(
64
+      margin: margin,
65
+      child: SizedBox(
66
+        width: width,
67
+        height: height,
68
+        child: RaisedButton(
69
+          color: backColor,
70
+          disabledColor: const Color(0xF5F6F7ff),
71
+          disabledTextColor: const Color(0xF5F6F7ff),
72
+          colorBrightness: Brightness.dark,
73
+          shape:
74
+          RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)),
75
+          child: Text(text,style:  TextStyle(
76
+              fontSize: fontSize,
77
+              color: color,
78
+          ),),
79
+          textColor: Colors.white,
80
+          onPressed: onPressed,
81
+        ),
82
+      ),
83
+    );
84
+
85
+    return _SectionBtn;
86
+  }
87
+
88
+}
89
+

+ 1
- 0
lib/models/Store.dart 查看文件

@@ -0,0 +1 @@
1
+// TODO Implement this library.

+ 15
- 0
lib/models/User.dart 查看文件

@@ -0,0 +1,15 @@
1
+
2
+import 'package:farmer_client/models/entities/person.dart';
3
+import 'package:get/get.dart';
4
+
5
+class User extends GetxController {
6
+  Person? _person;
7
+  Person? get person => _person;
8
+  set person (Person? p) {
9
+    _person = p;
10
+    update();
11
+  }
12
+
13
+  bool get isLogin => _person != null;
14
+
15
+}

+ 62
- 0
lib/pages/Information/ArticleInfo.dart 查看文件

@@ -0,0 +1,62 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+
4
+class ArticleInfo extends StatelessWidget {
5
+  const ArticleInfo({Key? key}) : super(key: key);
6
+
7
+  @override
8
+  Widget build(BuildContext context) {
9
+    return Scaffold(
10
+        resizeToAvoidBottomInset: false,
11
+        appBar: AppBar(
12
+          title: Text('资讯'),
13
+          leading: Icon(Icons.arrow_back_ios),
14
+          // backgroundColor: Colors.transparent,
15
+          centerTitle: true,
16
+        ),
17
+        body: Container(
18
+          padding: EdgeInsets.fromLTRB(15, 30, 15, 50),
19
+
20
+          child: Column(
21
+            children: [
22
+              Container(
23
+                alignment: Alignment.center,
24
+                child:  Row(
25
+                  mainAxisAlignment: MainAxisAlignment.center,
26
+                  children: [
27
+                    Image(image: AssetImage('images/icons/decorate.png'),width: 17,),
28
+                    Text('我是22222222222标题',
29
+                    style: TextStyle(
30
+                      fontSize: 17.sp,
31
+                      fontWeight: FontWeight.bold,
32
+
33
+                    ),
34
+                    ),
35
+                    Image(image: AssetImage('images/icons/decorate.png'),width: 17),
36
+
37
+                  ],
38
+                ),
39
+              ),
40
+              Container(
41
+                padding: EdgeInsets.fromLTRB(0, 20, 0, 10),
42
+                width: 344.w,
43
+                child: Text('gr一年之计在于春,连日来,农业生产工作正在热火朝天的进行着:农技人员走村串户指导农户春耕生产,大型拖拉机忙着翻垦农田,植保无人机 ',
44
+                style: TextStyle(
45
+                  fontSize: 14.sp
46
+                ),
47
+                ) ,
48
+              ),
49
+              Container(
50
+                padding: EdgeInsets.fromLTRB(0, 10, 0,10),
51
+                child: Image(image: AssetImage('images/cars.png'),width:320.w,height:260.w,fit: BoxFit.fill,),
52
+
53
+              )
54
+
55
+
56
+            ],
57
+          ),
58
+        ),
59
+    );
60
+
61
+  }
62
+}

+ 141
- 0
lib/pages/Information/index.dart 查看文件

@@ -0,0 +1,141 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+import 'package:get/get.dart';
4
+import 'package:get/get_core/src/get_main.dart';
5
+
6
+class Information extends StatefulWidget {
7
+  const Information({Key? key}) : super(key: key);
8
+
9
+  @override
10
+  State<Information> createState() => _InformationState();
11
+}
12
+
13
+class _InformationState extends State<Information> {
14
+  @override
15
+  Widget build(BuildContext context) {
16
+    return Scaffold(
17
+      resizeToAvoidBottomInset: false,
18
+      appBar: AppBar(
19
+        title: Text('资讯'),
20
+        leading: Icon(Icons.arrow_back_ios),
21
+        // backgroundColor: Colors.transparent,
22
+        centerTitle: true,
23
+      ),
24
+      body: ListView(
25
+        children: [
26
+          // ListTile用不好
27
+
28
+          GestureDetector(
29
+            child:
30
+            Container(
31
+                padding: EdgeInsets.fromLTRB(0, 30, 0, 30),
32
+                width: 310.w,
33
+                decoration: const BoxDecoration(
34
+                    border:Border(
35
+                        bottom:
36
+                        BorderSide(width: 0.5, color: Color(0x20000000)
37
+                          // 0x17000000
38
+                        ))
39
+                ),
40
+                child: Row(
41
+                  children: [
42
+                    Container(
43
+                      margin: EdgeInsets.fromLTRB(15, 0, 11, 0),
44
+                      width: 100,
45
+                      height: 100,
46
+                      decoration: BoxDecoration(
47
+                        image:  DecorationImage(
48
+                          image: AssetImage('images/cars.png'),
49
+                          fit: BoxFit.cover,
50
+                        ),
51
+
52
+                        borderRadius: BorderRadius.circular(12),
53
+                      ),
54
+                    )
55
+                    ,
56
+                    Column(
57
+                      crossAxisAlignment: CrossAxisAlignment.start,
58
+                      children: [
59
+                        Container(
60
+                          width: 240.w,
61
+                          padding: EdgeInsets.fromLTRB(0, 0, 0, 30),
62
+                          child: Text("我我就是一个标题,什阿三大苏打333萨达萨达萨达v么特不是",
63
+                              softWrap: true,
64
+                              maxLines: 2,
65
+                              textAlign: TextAlign.left,
66
+                              overflow: TextOverflow.ellipsis,
67
+                              style: TextStyle(
68
+                                fontSize: 17.sp, fontWeight: FontWeight.bold,)),
69
+                        ),
70
+                        Container(
71
+                          child: Text('2022-02-09'),
72
+                        )
73
+                      ],
74
+                    )
75
+                  ],
76
+                )
77
+            ),
78
+            onTap: () {
79
+              Get.toNamed('/ArticleInfo');
80
+            },
81
+          ),
82
+          GestureDetector(
83
+            child:
84
+            Container(
85
+                padding: EdgeInsets.fromLTRB(0, 30, 0, 30),
86
+                width: 310.w,
87
+                decoration: const BoxDecoration(
88
+                    border:Border(
89
+                        bottom:
90
+                        BorderSide(width: 0.5, color: Color(0x20000000)
91
+                          // 0x17000000
92
+                        ))
93
+                ),
94
+                child: Row(
95
+                  children: [
96
+                    Container(
97
+                      margin: EdgeInsets.fromLTRB(15, 0, 11, 0),
98
+                      width: 100,
99
+                      height: 100,
100
+                      decoration: BoxDecoration(
101
+                        image:  DecorationImage(
102
+                          image: AssetImage('images/cars.png'),
103
+                          fit: BoxFit.cover,
104
+                        ),
105
+
106
+                        borderRadius: BorderRadius.circular(12),
107
+                      ),
108
+                    )
109
+                    ,
110
+                    Column(
111
+                      crossAxisAlignment: CrossAxisAlignment.start,
112
+                      children: [
113
+                        Container(
114
+                          width: 240.w,
115
+                          padding: EdgeInsets.fromLTRB(0, 0, 0, 30),
116
+                          child: Text("我我就是一个标题,什阿三大苏打333萨达萨达萨达v么特不是",
117
+                              softWrap: true,
118
+                              maxLines: 2,
119
+                              textAlign: TextAlign.left,
120
+                              overflow: TextOverflow.ellipsis,
121
+                              style: TextStyle(
122
+                                fontSize: 17.sp, fontWeight: FontWeight.bold,)),
123
+                        ),
124
+                        Container(
125
+                          child: Text('2022-02-09'),
126
+                        )
127
+                      ],
128
+                    )
129
+                  ],
130
+                )
131
+            ),
132
+            onTap: () {
133
+              print('进入资讯详情');
134
+            },
135
+          )
136
+
137
+        ],
138
+      ),
139
+    );
140
+  }
141
+}

+ 11
- 0
lib/pages/TabBar/Information_page.dart 查看文件

@@ -0,0 +1,11 @@
1
+import 'package:flutter/material.dart';
2
+
3
+class InformationPage extends StatelessWidget {
4
+  @override
5
+  Widget build(BuildContext context) {
6
+    // TODO: implement build
7
+    return Scaffold(
8
+      body: Center(child: Text('资讯')),
9
+    );
10
+  }
11
+}

+ 11
- 0
lib/pages/TabBar/Mine_page.dart 查看文件

@@ -0,0 +1,11 @@
1
+import 'package:flutter/material.dart';
2
+
3
+class MinePage extends StatelessWidget {
4
+  @override
5
+  Widget build(BuildContext context) {
6
+    // TODO: implement build
7
+    return Scaffold(
8
+      body: Center(child: Text('我的')),
9
+    );
10
+  }
11
+}

+ 11
- 0
lib/pages/TabBar/Orders_page.dart 查看文件

@@ -0,0 +1,11 @@
1
+import 'package:flutter/material.dart';
2
+
3
+class OrdersPage extends StatelessWidget {
4
+  @override
5
+  Widget build(BuildContext context) {
6
+    // TODO: implement build
7
+    return Scaffold(
8
+      body: Center(child: Text('订单')),
9
+    );
10
+  }
11
+}

+ 10
- 0
lib/pages/TabBar/home_page.dart 查看文件

@@ -0,0 +1,10 @@
1
+import 'package:flutter/material.dart';
2
+
3
+class HomePage extends StatelessWidget {
4
+  @override
5
+  Widget build(BuildContext context) {
6
+    return Scaffold(
7
+      body: Center(child: Text('首页')),
8
+    );
9
+  }
10
+}

+ 71
- 0
lib/pages/TabBar/index_page.dart 查看文件

@@ -0,0 +1,71 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter/cupertino.dart';
3
+import 'home_page.dart';
4
+import 'Information_page.dart';
5
+import 'Mine_page.dart';
6
+import 'Orders_page.dart';
7
+
8
+class IndexPage extends StatefulWidget {
9
+  _IndexPageState createState() => _IndexPageState();
10
+}
11
+
12
+class _IndexPageState extends State<IndexPage> {
13
+
14
+
15
+  final List<BottomNavigationBarItem> bottomTabs = [
16
+     BottomNavigationBarItem(
17
+      icon: Icon(CupertinoIcons.home),
18
+      title: Text('首页'),
19
+    ),
20
+     BottomNavigationBarItem(
21
+      icon: Icon(CupertinoIcons.search),
22
+      title: Text('资讯'),
23
+
24
+    ),
25
+     BottomNavigationBarItem(
26
+      icon: Icon(CupertinoIcons.shopping_cart),
27
+      title: Text('订单'),
28
+
29
+    ),
30
+     BottomNavigationBarItem(
31
+      icon: Icon(CupertinoIcons.profile_circled),
32
+      title: Text('我的'),
33
+    ),
34
+  ];
35
+
36
+  final List tabBodies = [
37
+    HomePage(),
38
+    InformationPage(),
39
+    OrdersPage(),
40
+    MinePage(),
41
+  ];
42
+
43
+  int currentIndex = 0;
44
+  var currentPage;
45
+
46
+  @override
47
+  void initState() {
48
+    super.initState();
49
+    currentPage = tabBodies[currentIndex];
50
+  }
51
+
52
+  @override
53
+  Widget build(BuildContext context) {
54
+    // TODO: implement build
55
+    return Scaffold(
56
+      backgroundColor: Color.fromRGBO(244, 245, 245, 1),
57
+      bottomNavigationBar: BottomNavigationBar(
58
+        type: BottomNavigationBarType.fixed,
59
+        currentIndex: currentIndex,
60
+        items: bottomTabs,
61
+        onTap: (index){
62
+          setState(() {
63
+            currentIndex = index;
64
+            currentPage = tabBodies[currentIndex];
65
+          });
66
+        },
67
+      ),
68
+      body: currentPage,
69
+    );
70
+  }
71
+}

+ 1
- 0
lib/pages/TabBar/member_page.dart 查看文件

@@ -0,0 +1 @@
1
+// TODO Implement this library.

+ 1
- 0
lib/pages/TabBar/widgets/home/widgets/headers.dart 查看文件

@@ -11,6 +11,7 @@ class TypeHeader extends StatefulWidget {
11 11
   State<TypeHeader> createState() => _TypeHeaderState();
12 12
 }
13 13
 
14
+
14 15
 class _TypeHeaderState extends State<TypeHeader> {
15 16
   @override
16 17
   Widget build(BuildContext context) {

+ 11
- 0
lib/pages/home/index.dart 查看文件

@@ -0,0 +1,11 @@
1
+
2
+import 'package:flutter/material.dart';
3
+
4
+class Home extends StatelessWidget {
5
+  @override
6
+  Widget build(BuildContext context) {
7
+    // controller.person
8
+    return const Scaffold(body: Text("首页"),);
9
+  }
10
+
11
+}

+ 109
- 0
lib/pages/home2.dart 查看文件

@@ -0,0 +1,109 @@
1
+import 'package:flutter/cupertino.dart';
2
+import 'package:flutter/material.dart';
3
+import 'package:get/get.dart';
4
+import 'package:flutter_screenutil/flutter_screenutil.dart';
5
+
6
+class Home extends StatefulWidget {
7
+  const Home({Key? key}) : super(key: key);
8
+
9
+  @override
10
+  _Home createState() => _Home();
11
+}
12
+
13
+class _Home extends State<Home> {
14
+  List images = [
15
+    ['images/index/index.png', 'images/index/indexActive.png'],
16
+    ['images/index/job.png', 'images/index/jobActive.png'],
17
+    ['images/index/user.png', 'images/index/userActive.png'],
18
+  ];
19
+
20
+  final List _titles = ['首页', '订单列表', '个人中心'];
21
+  int _currentIndex = 0;
22
+  final tabTextStyleSelected =
23
+  TextStyle(color: const Color(0xFF06B03B),fontSize: 15.sp,fontWeight: FontWeight.bold); //选线卡选中字体颜色
24
+  final tabTextStyleNormal =
25
+  TextStyle(color: const Color(0xFF323232),fontSize: 15.sp,fontWeight: FontWeight.bold); //选项卡未选中字体颜色
26
+  int _tabIndex = 0; //选项卡下标
27
+
28
+  var _body = [Text('我是首页'), Text('我是订单列表'), Text('我是个人中心')];
29
+  TextStyle getTabTextStyle(int curIndex) {
30
+    //设置tabbar 选中和未选中的状态文本
31
+    if (curIndex == _tabIndex) {
32
+      return tabTextStyleSelected;
33
+    }
34
+    return tabTextStyleNormal;
35
+  }
36
+
37
+  Image getTabIcon(int curIndex) {
38
+    //设置tabbar选中和未选中的状态图标
39
+    if (curIndex == _tabIndex) {
40
+      return Image.asset(
41
+        images[curIndex][1],
42
+        width: 20.w,
43
+        height: 20.w,
44
+      );
45
+    }
46
+    return Image.asset(
47
+      images[curIndex][0],
48
+      width: 20.w,
49
+      height: 20.w,
50
+    );
51
+  }
52
+
53
+  Image getTabImage(path) {
54
+    return Image.asset(path, width: 26.w, height: 26.w);
55
+  }
56
+
57
+  // 切换底部选项卡,标题的变化设置
58
+  Text getTabTitle(int curIndex) {
59
+    return Text(_titles[curIndex], style: getTabTextStyle(curIndex));
60
+  }
61
+
62
+  @override
63
+  Widget build(BuildContext context) {
64
+    return Scaffold(
65
+      appBar: AppBar(
66
+        elevation: 0,
67
+        centerTitle: true,
68
+        backgroundColor: Colors.white,
69
+        title: Text(
70
+          '首页',
71
+          style: TextStyle(
72
+              color: Colors.black,
73
+              fontSize: 17.sp,
74
+              letterSpacing: 2,
75
+              fontWeight: FontWeight.bold
76
+          ),
77
+        ),
78
+      ),
79
+      body: _body[_tabIndex],
80
+      bottomNavigationBar: Container(
81
+        height: 65.h,
82
+
83
+        child: Row(
84
+          mainAxisAlignment: MainAxisAlignment.spaceAround,
85
+          children: [
86
+            Column(
87
+              children: [
88
+                getTabIcon(0),
89
+                getTabTitle(0)
90
+              ],
91
+            ),
92
+            Column(
93
+              children: [
94
+                getTabIcon(1),
95
+                getTabTitle(1)
96
+              ],
97
+            ),
98
+            Column(
99
+              children: [
100
+                getTabIcon(2),
101
+                getTabTitle(2)
102
+              ],
103
+            ),
104
+          ],
105
+        ),
106
+      ),
107
+    );
108
+  }
109
+}

+ 86
- 0
lib/pages/main/index.dart 查看文件

@@ -0,0 +1,86 @@
1
+import 'package:farmer_client/pages/main/widgets/OtherColumn.dart';
2
+import 'package:farmer_client/pages/main/widgets/UserAddress.dart';
3
+import 'package:farmer_client/pages/main/widgets/UserInfo.dart';
4
+import 'package:flutter/material.dart';
5
+import 'package:flutter_screenutil/flutter_screenutil.dart';
6
+
7
+
8
+class MainPage extends StatefulWidget {
9
+  const MainPage({Key? key}) : super(key: key);
10
+
11
+  @override
12
+  State<MainPage> createState() => _MainPageState();
13
+}
14
+
15
+class _MainPageState extends State<MainPage> {
16
+  @override
17
+  Widget build(BuildContext context) {
18
+    return Scaffold(
19
+      resizeToAvoidBottomInset: false,
20
+      appBar:  AppBar(
21
+        title:  Text('我的'),
22
+        leading:  Icon(Icons.arrow_back_ios),
23
+        // backgroundColor: Colors.transparent,
24
+        centerTitle: true,
25
+
26
+      ),
27
+      body:Container(
28
+        alignment: Alignment.center,
29
+        child:   ListView(
30
+          children: [
31
+            Column(
32
+              children: [
33
+                UserInfo(),//头部,头像手机号姓名
34
+                UserAddress(),//用户地址
35
+                OtherColumn(),//功能菜单栏
36
+                Container(
37
+                  height: 70.h,
38
+                  margin: EdgeInsets.only(top: 0, bottom: 40.0),
39
+                  alignment: Alignment.bottomCenter,
40
+                  decoration:  BoxDecoration(
41
+                    boxShadow: [
42
+                      BoxShadow(
43
+                        blurRadius: 10, //阴影范围
44
+                        spreadRadius: 0.1, //阴影浓度
45
+                        color: Colors.grey.withOpacity(0.2), //阴影颜色
46
+                      ),
47
+                    ],
48
+                  ),
49
+                  child: SizedBox(
50
+                    width: 315.w,
51
+                    height: 49.h,
52
+                    child: ElevatedButton(
53
+                      onPressed: () {
54
+                        // _handelSubmit();
55
+                        print('用户点击了支付啊阿松大撒地方');
56
+                      },
57
+                      child: const Text(
58
+                        "退出登陆",
59
+                        style: TextStyle(
60
+                            fontSize: 18,
61
+                            color: Colors.black,
62
+                            fontWeight: FontWeight.bold),
63
+                      ),
64
+                      style: ButtonStyle(
65
+                        elevation: MaterialStateProperty.all(0),
66
+                        backgroundColor:
67
+                        MaterialStateProperty.all(const Color(0xFFFFFFFF)),
68
+                        shape: MaterialStateProperty.all(
69
+                            const RoundedRectangleBorder(
70
+                                borderRadius:
71
+                                BorderRadius.all(Radius.circular(24.4)))),
72
+                      ),
73
+                    ),
74
+                  ),
75
+                ),
76
+              ],
77
+            ),
78
+          ],
79
+        )
80
+
81
+      )
82
+
83
+
84
+    );
85
+  }
86
+}

+ 155
- 0
lib/pages/main/widgets/OtherColumn.dart 查看文件

@@ -0,0 +1,155 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+
4
+class OtherColumn extends StatelessWidget {
5
+  const OtherColumn({Key? key}) : super(key: key);
6
+
7
+  @override
8
+  Widget build(BuildContext context) {
9
+    return  Container(
10
+        alignment: Alignment.center,
11
+        width: 345.w,
12
+        margin: EdgeInsets.fromLTRB(0, 15.w, 0, 15.w),
13
+        decoration: BoxDecoration(
14
+          borderRadius: BorderRadius.circular(30),
15
+          color: Colors.white,
16
+          boxShadow: [
17
+            BoxShadow(
18
+              blurRadius: 10, //阴影范围
19
+              spreadRadius: 0.1, //阴影浓度
20
+              color: Colors.grey.withOpacity(0.2), //阴影颜色
21
+            ),
22
+          ],
23
+        ),
24
+        child: Column(
25
+          children: [
26
+            Container(
27
+                margin: EdgeInsets.fromLTRB(0, 30.w, 0, 20.w),
28
+                alignment: Alignment.topLeft,
29
+                decoration: const BoxDecoration(
30
+                    border: Border(
31
+                        left: BorderSide(width: 5, color: Color(0xff000000)
32
+                            // 0x17000000
33
+                            ))),
34
+                child: Padding(
35
+                  padding: EdgeInsets.fromLTRB(12.w, 0, 0, 0),
36
+                  child: Text(
37
+                    '地址信息',
38
+                    style: TextStyle(
39
+                      color: Color(0xff333333),
40
+                      fontWeight: FontWeight.bold,
41
+                      fontSize: 17.sp,
42
+                    ),
43
+                  ),
44
+                )),
45
+            Container(
46
+              child: Column(
47
+                children: [
48
+                  Container(
49
+                    height: 45.w,
50
+                    width: 310.w,
51
+                    margin: EdgeInsets.fromLTRB(0, 10.w, 0, 0),
52
+
53
+                    decoration: const BoxDecoration(
54
+                        border:Border(
55
+                            bottom:
56
+                            BorderSide(width: 0.5, color: Color(0x20000000)
57
+                              // 0x17000000
58
+                            ))
59
+                    ),
60
+
61
+                    child: ListTile(
62
+                      contentPadding: EdgeInsets.symmetric(horizontal: 0.0),
63
+                      // 这边使用了contentPadding
64
+                      leading: Image(
65
+                        image: AssetImage('images/aboutUs.png'),
66
+                        width: 18.w,
67
+                        height: 21.w,
68
+                      ),
69
+                      title: Transform(
70
+                        transform: Matrix4.translationValues(-20, 0.0, 0.0),
71
+                        child: Text("版本更新",
72
+                            style: TextStyle(
73
+                                fontSize: 17.sp, color: Color(0xff333333))),
74
+                      ),
75
+                      trailing: Image(
76
+                        image: AssetImage('images/userRight.png'),
77
+                        width: 10.w,
78
+                        height: 18.w,
79
+                      ),
80
+                    ),
81
+                  ),
82
+                  Container(
83
+                    margin: EdgeInsets.fromLTRB(0, 10.w, 0, 0),
84
+                    width: 310.w,
85
+                    height: 45.w,
86
+                    decoration: const BoxDecoration(
87
+                        border:Border(
88
+                            bottom:
89
+                            BorderSide(width: 0.5, color: Color(0x20000000)
90
+                              // 0x17000000
91
+                            ))
92
+                    ),
93
+
94
+                    child: ListTile(
95
+                      contentPadding: EdgeInsets.symmetric(horizontal: 0.0),
96
+
97
+                      leading: Image(
98
+                        image: AssetImage('images/versionUpdate.png'),
99
+                        width: 18.w,
100
+                        height: 21.w,
101
+                      ),
102
+                      title: Transform(
103
+                        transform: Matrix4.translationValues(-20, 0.0, 0.0),
104
+                        child: Text("用户协议及隐私政策",
105
+                            style: TextStyle(
106
+                                fontSize: 17.sp, color: Color(0xff333333))),
107
+                      ),
108
+                      trailing: Image(
109
+                        image: AssetImage('images/userRight.png'),
110
+                        width: 10.w,
111
+                        height: 18.w,
112
+                      ),
113
+                    ),
114
+                  ),
115
+                  Container(
116
+                    margin: EdgeInsets.fromLTRB(0, 10.w, 0, 20.w),
117
+                    width: 310.w,
118
+                    height: 45.w,
119
+                    decoration: const BoxDecoration(
120
+                        border:Border(
121
+                            bottom:
122
+                            BorderSide(width: 0.5, color: Color(0x20000000)
123
+                              // 0x17000000
124
+                            ))
125
+                    ),
126
+
127
+                    child: ListTile(
128
+                      contentPadding: EdgeInsets.symmetric(horizontal: 0.0),
129
+
130
+                      leading: Image(
131
+                        image: AssetImage('images/feedbacks.png'),
132
+                        width: 18.w,
133
+                        height: 21.w,
134
+                      ),
135
+                      title: Transform(
136
+                        transform: Matrix4.translationValues(-20, 0.0, 0.0),
137
+                        child: Text("意见反馈",
138
+                            style: TextStyle(
139
+                                fontSize: 17.sp, color: Color(0xff333333))),
140
+                      ),
141
+                      trailing: Image(
142
+                        image: AssetImage('images/userRight.png'),
143
+                        width: 10.w,
144
+                        height: 18.w,
145
+                      ),
146
+                    ),
147
+                  ),
148
+
149
+                ],
150
+              ),
151
+            )
152
+          ],
153
+        ));
154
+  }
155
+}

+ 98
- 0
lib/pages/main/widgets/UserAddress.dart 查看文件

@@ -0,0 +1,98 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+
4
+class UserAddress extends StatelessWidget {
5
+  const UserAddress({Key? key}) : super(key: key);
6
+
7
+  @override
8
+  Widget build(BuildContext context) {
9
+    return Container(
10
+        alignment: Alignment.center,
11
+        height: 123.w,
12
+        width: 345.w,
13
+        margin: EdgeInsets.fromLTRB(0, 15.w, 0, 15.w),
14
+        decoration: BoxDecoration(
15
+          borderRadius: BorderRadius.circular(30),
16
+          color: Colors.white,
17
+          boxShadow: [
18
+            BoxShadow(
19
+              blurRadius: 10, //阴影范围
20
+              spreadRadius: 0.1, //阴影浓度
21
+              color: Colors.grey.withOpacity(0.2), //阴影颜色
22
+            ),
23
+          ],
24
+        ),
25
+        child: Column(
26
+          children: [
27
+            Container(
28
+                margin: EdgeInsets.fromLTRB(0, 30.w, 0, 20.w),
29
+                alignment: Alignment.topLeft,
30
+                decoration: const BoxDecoration(
31
+                    border: Border(
32
+                        left: BorderSide(width: 5, color: Color(0xff000000)
33
+                            // 0x17000000
34
+                            ))),
35
+                child: Padding(
36
+                  padding: EdgeInsets.fromLTRB(12.w, 0, 0, 0),
37
+                  child: Text(
38
+                    '地址信息',
39
+                    style: TextStyle(
40
+                      color: Color(0xff333333),
41
+                      fontWeight: FontWeight.bold,
42
+                      fontSize: 17.sp,
43
+                    ),
44
+                  ),
45
+                )),
46
+            Row(
47
+              mainAxisAlignment: MainAxisAlignment.spaceBetween,
48
+              children: [
49
+                Container(
50
+                  child: Row(
51
+                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
52
+                    children: [
53
+                      Padding(
54
+                        padding: EdgeInsets.fromLTRB(17.w, 0, 10.w, 0),
55
+                        child: Image(
56
+                          image: AssetImage('images/gpsImgae.png'),
57
+                          width: 12.w,
58
+                        ),
59
+                      ),
60
+                      Container(
61
+                        width: 260,
62
+                        child: GestureDetector(
63
+                          child: Text(
64
+                            '请填写详细地址请填写详细地址请填写详细地址',
65
+                            softWrap: true,
66
+                            maxLines: 1,
67
+                            textAlign: TextAlign.left,
68
+                            overflow: TextOverflow.ellipsis,
69
+                            style: TextStyle(
70
+                              fontWeight: FontWeight.bold,
71
+                              fontSize: 17,
72
+                            ),
73
+                          ),
74
+                          onTap: () {
75
+                            print('修改地址');
76
+                          },
77
+                        ),
78
+                      )
79
+                    ],
80
+                  ),
81
+                ),
82
+                Container(
83
+                  alignment: Alignment.center,
84
+                  padding: EdgeInsets.fromLTRB(0, 0, 30.w, 0),
85
+                  child: Text(
86
+                    '>>',
87
+                    style: TextStyle(
88
+                      fontWeight: FontWeight.bold,
89
+                      fontSize: 17,
90
+                    ),
91
+                  ),
92
+                ),
93
+              ],
94
+            ),
95
+          ],
96
+        ));
97
+  }
98
+}

+ 111
- 0
lib/pages/main/widgets/UserInfo.dart 查看文件

@@ -0,0 +1,111 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+
4
+class UserInfo extends StatelessWidget {
5
+  const UserInfo({Key? key}) : super(key: key);
6
+
7
+  @override
8
+  Widget build(BuildContext context) {
9
+    return Container(
10
+      margin: EdgeInsets.only(top: 20.0, bottom: 0.0),
11
+
12
+      alignment: Alignment.center,
13
+      height: 173.w,
14
+      width: 345.w,
15
+      decoration: BoxDecoration(
16
+        image: const DecorationImage(
17
+          image: AssetImage("images/mineBack.png"),
18
+          fit: BoxFit.cover,
19
+        ),
20
+        borderRadius: BorderRadius.circular(10),
21
+      ),
22
+      child: Stack(
23
+        fit: StackFit.expand,
24
+        children: [
25
+          Positioned(
26
+            top: 0,
27
+            right: 0,
28
+            child: Container(
29
+                alignment: Alignment.center,
30
+                height: 24.w,
31
+                width: 93.w,
32
+                decoration: const BoxDecoration(
33
+                  borderRadius: BorderRadius.only(
34
+                      bottomLeft: Radius.circular(20),
35
+                      topRight: Radius.circular(20)),
36
+                  color: Color(0x30000000),
37
+                ),
38
+                child: GestureDetector(
39
+                  child: const Text(
40
+                    '修改个人信息',
41
+                    style: TextStyle(color: Colors.white),
42
+                  ),
43
+                  onTap: () {
44
+                    print('修改个人信息');
45
+                  },
46
+                )),
47
+          ),
48
+          Row(
49
+            children: [
50
+              Column(
51
+                mainAxisAlignment: MainAxisAlignment.center,
52
+                children: [
53
+                  Container(
54
+                    decoration: BoxDecoration(
55
+                      shape: BoxShape.circle,
56
+                      border: Border.all(
57
+                        color: Colors.white,
58
+                        width: 2,
59
+                      ),
60
+                    ),
61
+                    margin: EdgeInsets.fromLTRB(30, 0, 15, 0),
62
+                    alignment: Alignment.center,
63
+                    child: Image.asset(
64
+                      "images/userMoren.png",
65
+                      width: 63.w,
66
+                    ),
67
+                  ),
68
+                ],
69
+              ),
70
+              Container(
71
+                child: Column(
72
+                  mainAxisAlignment: MainAxisAlignment.center,
73
+                  crossAxisAlignment: CrossAxisAlignment.start,
74
+                  children: [
75
+                    Container(
76
+                      margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
77
+                      child: Text(
78
+                        '符西西',
79
+                        style: TextStyle(
80
+                          color: Colors.white,
81
+                          fontSize: 17,
82
+                        ),
83
+                      ),
84
+                    ),
85
+                    Container(
86
+                      margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
87
+                      child: Text(
88
+                        '17775000245',
89
+                        style: TextStyle(
90
+                          color: Colors.white,
91
+                          fontSize: 17,
92
+                        ),
93
+                      ),
94
+                    ),
95
+                    // const Text(
96
+                    //      '点击登陆',
97
+                    //      style: TextStyle(
98
+                    //        color: Colors.white,
99
+                    //        fontSize: 17,
100
+                    //      ),
101
+                    //    ),
102
+                  ],
103
+                ),
104
+              ),
105
+            ],
106
+          ),
107
+        ],
108
+      ),
109
+    );
110
+  }
111
+}

+ 70
- 0
lib/pages/order/index.dart 查看文件

@@ -0,0 +1,70 @@
1
+import 'package:flutter/material.dart';
2
+import 'package:flutter_screenutil/flutter_screenutil.dart';
3
+
4
+import '../../widgets/OrderInfoCard.dart';
5
+
6
+
7
+
8
+
9
+
10
+class OrderPage extends StatefulWidget {
11
+  const OrderPage({Key? key}) : super(key: key);
12
+
13
+  @override
14
+  State<OrderPage> createState() => _OrderPageState();
15
+}
16
+
17
+class _OrderPageState extends State<OrderPage> {
18
+  @override
19
+  Widget build(BuildContext context) {
20
+    return Scaffold(
21
+      resizeToAvoidBottomInset: false,
22
+      appBar:  AppBar(
23
+        title:  Text('订单'),
24
+        leading:  Icon(Icons.arrow_back_ios),
25
+        backgroundColor: Color(0xff2b9270),
26
+        // backgroundColor: Colors.transparent,
27
+        centerTitle: true,
28
+
29
+      ),
30
+      body:      Column(
31
+        children: [
32
+          OrderInfoCard(),
33
+
34
+          Container(
35
+            height: 130.h,
36
+            margin: EdgeInsets.only(top: 20.0, bottom: 0.0),
37
+            alignment: Alignment.bottomCenter,
38
+            child: SizedBox(
39
+              width: 315.w,
40
+              height: 49.h,
41
+              child: ElevatedButton(
42
+                onPressed: () {
43
+                  // _handelSubmit();
44
+                  print('用户点击了支付啊阿松大撒地方');
45
+                },
46
+                child: const Text(
47
+                  "支付",
48
+                  style: TextStyle(
49
+                      fontSize: 18,
50
+                      color: Colors.white,
51
+                      fontWeight: FontWeight.bold),
52
+                ),
53
+                style: ButtonStyle(
54
+                  elevation: MaterialStateProperty.all(0),
55
+                  backgroundColor:
56
+                  MaterialStateProperty.all(const Color(0xFFFF703B)),
57
+                  shape: MaterialStateProperty.all(
58
+                      const RoundedRectangleBorder(
59
+                          borderRadius:
60
+                          BorderRadius.all(Radius.circular(24.4)))),
61
+                ),
62
+              ),
63
+            ),
64
+          ),
65
+        ],
66
+      ),
67
+    );
68
+
69
+  }
70
+}