huxiaoqiang 4 роки тому
батько
коміт
42f9ef9674

+ 3 - 0
android/app/src/debug/AndroidManifest.xml

@@ -6,4 +6,7 @@
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 </manifest>

+ 3 - 0
android/app/src/main/AndroidManifest.xml

@@ -8,6 +8,9 @@
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 
     <application
         android:networkSecurityConfig="@xml/network_security_config"

+ 2 - 0
lib/beans/store_bean_entity.dart

@@ -30,6 +30,8 @@ class StoreBeanDataData with JsonConvert<StoreBeanDataData> {
 	String ownerName;
 	@JSONField(name: "owner_pic")
 	String ownerPic;
+	@JSONField(name: "hide_members")
+	bool hideMembers = true;
 	@JSONField(name: "fee_type")
 	int feeType;
 	String mobile;

+ 4 - 0
lib/generated/json/store_bean_entity_helper.dart

@@ -78,6 +78,9 @@ storeBeanDataDataFromJson(StoreBeanDataData data, Map<String, dynamic> json) {
 	if (json['owner_pic'] != null) {
 		data.ownerPic = json['owner_pic'].toString();
 	}
+	if (json['hide_members'] != null) {
+		data.hideMembers = json['hide_members'];
+	}
 	if (json['fee_type'] != null) {
 		data.feeType = json['fee_type'] is String
 				? int.tryParse(json['fee_type'])
@@ -136,6 +139,7 @@ Map<String, dynamic> storeBeanDataDataToJson(StoreBeanDataData entity) {
 	data['owner_uid'] = entity.ownerUid;
 	data['owner_name'] = entity.ownerName;
 	data['owner_pic'] = entity.ownerPic;
+	data['hide_members'] = entity.hideMembers;
 	data['fee_type'] = entity.feeType;
 	data['mobile'] = entity.mobile;
 	data['id'] = entity.id;

+ 1 - 0
lib/my_tools/dims.dart

@@ -41,6 +41,7 @@ var shopDims = [
   'address', //店铺地址
   'mobile', //联系电话
   'introduction', //店铺介绍
+  'hide_members',
   'notice'
 ];
 

+ 26 - 1
lib/paegs/gang_page/gang_in_page/gang_in_page.dart

@@ -1,3 +1,4 @@
+import 'dart:async';
 import 'dart:convert';
 import 'dart:math';
 
@@ -17,6 +18,7 @@ import 'package:bbyyy/my_tools/my_tools.dart';
 import 'package:bbyyy/my_tools/my_views.dart';
 import 'package:bbyyy/my_tools/pop_up_queue.dart';
 import 'package:bbyyy/paegs/chat_page/chat_page.dart';
+import 'package:bbyyy/paegs/gang_page/gang_in_page/gang_information_page/add_member_page/add_member_page.dart';
 import 'package:bbyyy/paegs/gang_page/gang_in_page/pay_to_the_helper_page/pay_to_the_helper_page.dart';
 import 'package:bbyyy/paegs/pay_page/order_information_page.dart';
 import 'package:flutter/cupertino.dart';
@@ -28,6 +30,7 @@ import 'package:url_launcher/url_launcher.dart';
 
 import 'gang_information_page/gang_information_page.dart';
 import 'initiate_collection_page/initiate_collection_page.dart';
+import 'package:qrscan/qrscan.dart' as scanner;
 
 class GangInPage extends StatefulWidget {
   MyShopBeanDataData data;
@@ -91,6 +94,27 @@ class _GangInPageState extends State<GangInPage> {
       body: Column(
         children: [
           MyViews().myAppBar(widget.data.shopName, context, [
+            Visibility(
+              visible: MyCookie().getUID()==widget.data.ownerUid,
+              child: IconButton(
+                  icon: Icon(Icons.qr_code_scanner),
+                  onPressed: () async {
+                    String cameraScanResult = await scanner.scan();
+                    if (cameraScanResult.isNotEmpty &&
+                        cameraScanResult != null &&
+                        cameraScanResult.length == 8) {
+                      Timer(Duration(milliseconds: 200), () {
+                        StoreBeanDataData store = StoreBeanDataData();
+                        store.ownerUid = widget.data.ownerUid;
+                        store.ownerName = widget.data.ownerName;
+                        store.uid = widget.data.shopUid;
+                        MyTools().toPage(context, AddMemberPage(store: store,qrUID: cameraScanResult,), (then){});
+                        MyTools().hideKeyboard(context);
+                        controller.requestRefresh();
+                      });
+                    }
+                  }),
+            ),
             Visibility(
               // visible: widget.data.ownerUid == MyCookie().getUID(),
               child: IconButton(
@@ -103,7 +127,8 @@ class _GangInPageState extends State<GangInPage> {
                       }
                     });
                   }),
-            )
+            ),
+
           ]),
           Container(
             color: MyColors.cF7F7F7,

+ 35 - 10
lib/paegs/gang_page/gang_in_page/gang_information_page/add_member_page/add_member_page.dart

@@ -14,14 +14,17 @@ import 'package:bbyyy/my_tools/my_views.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_svg/svg.dart';
 import 'package:pull_to_refresh/pull_to_refresh.dart';
+import 'package:qrscan/qrscan.dart' as scanner;
 
 class AddMemberPage extends StatefulWidget {
-  StoreBeanDataData store;
+  const AddMemberPage({Key key, this.store,this.qrUID}) : super(key: key);
 
-  AddMemberPage(this.store);
+  final StoreBeanDataData store;
+
+  final String qrUID;
 
   @override
-  _AddMemberPageState createState() => _AddMemberPageState(store);
+  _AddMemberPageState createState() => _AddMemberPageState();
 }
 
 class _AddMemberPageState extends State<AddMemberPage> {
@@ -30,11 +33,9 @@ class _AddMemberPageState extends State<AddMemberPage> {
   FocusNode _descriptionFocus = FocusNode();
   RefreshController controller = RefreshController();
   List<MyShopBeanDataData> data = [];
-  StoreBeanDataData store;
 
   List<UserBeanDataData> users = [];
 
-  _AddMemberPageState(this.store);
 
   @override
   void initState() {
@@ -44,19 +45,45 @@ class _AddMemberPageState extends State<AddMemberPage> {
       UserBeanDataData member = arg;
       add(member);
     });
+    Future.delayed(Duration.zero,(){
+      if(widget.qrUID.isNotEmpty&&widget.qrUID.length==8){
+        showInput = true;
+        _description.text = widget.qrUID;
+        controller.requestRefresh();
+      }
+    });
   }
+
   @override
   void dispose() {
     // TODO: implement dispose
     super.dispose();
     EventBus().off('addMember');
   }
+
   @override
   Widget build(BuildContext context) {
     return Scaffold(
       body: Column(
         children: [
-          MyViews().myAppBar('添加成员', context, []),
+          MyViews().myAppBar('添加成员', context, [
+            // IconButton(
+            //     icon: Icon(Icons.qr_code_scanner),
+            //     onPressed: () async {
+            //       String cameraScanResult = await scanner.scan();
+            //       if (cameraScanResult.isNotEmpty &&
+            //           cameraScanResult != null &&
+            //           cameraScanResult.length == 8) {
+            //         _description.text = cameraScanResult;
+            //         setState(() {
+            //           Timer(Duration(milliseconds: 200), () {
+            //             MyTools().hideKeyboard(context);
+            //             controller.requestRefresh();
+            //           });
+            //         });
+            //       }
+            //     })
+          ]),
           Expanded(
             child: Column(
               children: [
@@ -185,8 +212,8 @@ class _AddMemberPageState extends State<AddMemberPage> {
       'key': 'shop_user',
       'object': {
         'review_state': 1,
-        'user_uid':member.uid,
-        'shop_uid': store.uid,
+        'user_uid': member.uid,
+        'shop_uid': widget.store.uid,
         'role': shopUserMember
       }
     }, (response, hasError) {
@@ -196,6 +223,4 @@ class _AddMemberPageState extends State<AddMemberPage> {
       }
     }, (error) {});
   }
-
-
 }

+ 0 - 0
lib/paegs/gang_page/gang_in_page/gang_information_page/add_member_page/scan_page.dart


+ 99 - 0
lib/paegs/gang_page/gang_in_page/gang_information_page/add_template_page/add_template_page.dart

@@ -0,0 +1,99 @@
+import 'package:bbyyy/beans/my_shop_bean_entity.dart';
+import 'package:bbyyy/https/MyDio.dart';
+import 'package:bbyyy/my_tools/my_colors.dart';
+import 'package:bbyyy/my_tools/my_tools.dart';
+import 'package:bbyyy/my_tools/my_views.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class AddTemplatePage extends StatefulWidget {
+  const AddTemplatePage({Key key, this.shop}) : super(key: key);
+  final MyShopBeanDataData shop;
+
+  @override
+  _AddTemplatePageState createState() => _AddTemplatePageState();
+}
+
+class _AddTemplatePageState extends State<AddTemplatePage> {
+  TextEditingController controller = TextEditingController();
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      body: Column(
+        children: [
+          MyViews().myAppBar('添加模板', context, []),
+          SingleChildScrollView(
+            child: Column(
+              children: [
+                Container(
+                  margin:
+                      EdgeInsets.only(top: 10, bottom: 10, left: 10, right: 10),
+                  constraints: BoxConstraints(minHeight: 86),
+                  decoration: BoxDecoration(
+                    border: Border.all(color: MyColors.cE7E7E7, width: 1),
+                    borderRadius: BorderRadius.all(
+                      Radius.circular(4),
+                    ),
+                  ),
+                  child: TextField(
+                    controller: controller,
+                    maxLines: null,
+                    cursorColor: MyColors.cFF4233,
+                    cursorWidth: 1.0,
+                    onTap: () {},
+                    decoration: InputDecoration(
+                      border: InputBorder.none,
+                      disabledBorder: InputBorder.none,
+                      enabledBorder: InputBorder.none,
+                      focusedBorder: InputBorder.none,
+                      isDense: true,
+                      hintText: '请输入',
+                      hintStyle:
+                          TextStyle(color: MyColors.c999999, fontSize: 14),
+                      contentPadding:
+                          const EdgeInsets.fromLTRB(14, 4.5, 8, 4.5),
+                    ),
+                    style: TextStyle(
+                        color: MyColors.c333333,
+                        fontSize: 14,
+                        height: 1.3,
+                        letterSpacing: 0.2),
+                    onChanged: (t) {},
+                  ),
+                ),
+                GestureDetector(
+                  onTap: () {
+                    saveTemplate();
+                  },
+                  behavior: HitTestBehavior.translucent,
+                  child: Container(
+                    decoration: BoxDecoration(
+                      color: MyColors.cFF4233,
+                      borderRadius: BorderRadius.circular(20),
+                    ),
+                    height: 40,
+                    child: MyViews().myText('保存', Colors.white, 16),
+                    alignment: Alignment.center,
+                    margin: EdgeInsets.symmetric(horizontal: 15, vertical: 30),
+                  ),
+                )
+              ],
+            ),
+          ),
+        ],
+      ),
+    );
+  }
+
+  void saveTemplate() {
+    var object = {'template': controller.text.toString()};
+    MyDio().save({'key': 'order_template', 'object': object},
+        (response, hasError) {
+      if (!hasError) {
+        Navigator.pop(context);
+        showToast('保存成功');
+      }
+    }, (error) {});
+  }
+}

+ 281 - 205
lib/paegs/gang_page/gang_in_page/gang_information_page/gang_information_page.dart

@@ -25,6 +25,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter_svg/flutter_svg.dart';
 import 'package:pull_to_refresh/pull_to_refresh.dart';
 import 'package:url_launcher/url_launcher.dart';
+import 'add_template_page/add_template_page.dart';
 
 class GangInformationPage extends StatefulWidget {
   MyShopBeanDataData data;
@@ -41,6 +42,7 @@ class _GangInformationPageState extends State<GangInformationPage> {
   StoreBeanDataData store;
   RefreshController controller = RefreshController(initialRefresh: true);
   bool privacyProtection = false;
+  bool hideMember = true;
 
   _GangInformationPageState();
 
@@ -275,223 +277,254 @@ class _GangInformationPageState extends State<GangInformationPage> {
                         ),
                       ),
                     ),
-                    Container(
-                      padding: EdgeInsets.only(
-                        top: 9,
-                      ),
-                      height: MediaQuery.of(context).size.width /
-                              5 *
-                              ((member.length +
-                                          (widget.data.ownerUid ==
-                                                  MyCookie().getUID()
-                                              ? 2
-                                              : 0)) >
-                                      15
-                                  ? 3
-                                  : ((member.length +
-                                              (widget.data.ownerUid ==
-                                                      MyCookie().getUID()
-                                                  ? 2
-                                                  : 0)) /
-                                          5.0)
-                                      .ceil()) +
-                          44,
-                      color: Colors.white,
-                      child: Column(
-                        children: [
-                          Container(
-                            padding: EdgeInsets.symmetric(horizontal: 16),
-                            margin: EdgeInsets.only(bottom: 15),
-                            height: 20,
-                            child: Row(
-                              children: [
-                                Expanded(
-                                  child: Text(
-                                    '货帮成员',
-                                    style: TextStyle(
-                                        color: MyColors.c333333, fontSize: 15),
-                                  ),
-                                ),
-                                GestureDetector(
-                                  onTap: () {
-                                    MyTools().toPage(
-                                        context, MemberListPage(store, true),
-                                        (then) {
-                                      controller.requestRefresh();
-                                    });
-                                  },
-                                  behavior: HitTestBehavior.translucent,
-                                  child: Container(
-                                    margin: EdgeInsets.only(right: 10),
+                    Visibility(
+                      visible: MyCookie().getUID()==widget.data.ownerUid?true:!hideMember,
+                      child: Container(
+                        padding: EdgeInsets.only(
+                          top: 9,
+                        ),
+                        height: MediaQuery.of(context).size.width /
+                                5 *
+                                ((member.length +
+                                            (widget.data.ownerUid ==
+                                                    MyCookie().getUID()
+                                                ? 2
+                                                : 0)) >
+                                        15
+                                    ? 3
+                                    : ((member.length +
+                                                (widget.data.ownerUid ==
+                                                        MyCookie().getUID()
+                                                    ? 2
+                                                    : 0)) /
+                                            5.0)
+                                        .ceil()) +
+                            44,
+                        color: Colors.white,
+                        child: Column(
+                          children: [
+                            Container(
+                              padding: EdgeInsets.symmetric(horizontal: 16),
+                              margin: EdgeInsets.only(bottom: 15),
+                              height: 20,
+                              child: Row(
+                                children: [
+                                  Expanded(
                                     child: Text(
-                                      '查看${member.length}名货帮成员',
+                                      '货帮成员',
                                       style: TextStyle(
-                                          color: MyColors.c666666,
-                                          fontSize: 13),
+                                          color: MyColors.c333333, fontSize: 15),
                                     ),
                                   ),
-                                ),
-                                SvgPicture.asset('images/svg/箭头.svg')
-                              ],
+                                  GestureDetector(
+                                    onTap: () {
+                                      MyTools().toPage(
+                                          context, MemberListPage(store, true),
+                                          (then) {
+                                        controller.requestRefresh();
+                                      });
+                                    },
+                                    behavior: HitTestBehavior.translucent,
+                                    child: Container(
+                                      margin: EdgeInsets.only(right: 10),
+                                      child: Text(
+                                        '查看${member.length}名货帮成员',
+                                        style: TextStyle(
+                                            color: MyColors.c666666,
+                                            fontSize: 13),
+                                      ),
+                                    ),
+                                  ),
+                                  SvgPicture.asset('images/svg/箭头.svg')
+                                ],
+                              ),
                             ),
-                          ),
-                          Expanded(
-                            child: GridView.builder(
-                                gridDelegate:
-                                    SliverGridDelegateWithFixedCrossAxisCount(
-                                        crossAxisCount: 5,
-                                        childAspectRatio: 1,
-                                        mainAxisSpacing: 0,
-                                        crossAxisSpacing: 0),
-                                itemCount:
-                                    widget.data.ownerUid == MyCookie().getUID()
-                                        ? member.length + 2 > 15
-                                            ? 15
-                                            : member.length + 2
-                                        : member.length > 15
-                                            ? 15
-                                            : member.length,
-                                physics: NeverScrollableScrollPhysics(),
-                                padding: EdgeInsets.all(0),
-                                itemBuilder: (context, index) {
-                                  if (widget.data.ownerUid ==
-                                      MyCookie().getUID()) {
-                                    if (member.length + 2 > 15) {
-                                      if (index < 13) {
-                                        return MyViews().getMembersItem(
-                                            member[index], context);
-                                      } else if (index == 13) {
-                                        return GestureDetector(
-                                          onTap: () {
-                                            MyTools().toPage(context,
-                                                RemoveMemberPage(store),
-                                                (then) {
-                                              controller.requestRefresh();
-                                            });
-                                          },
-                                          behavior: HitTestBehavior.translucent,
-                                          child: Column(
-                                            children: [
-                                              SvgPicture.asset(
-                                                'images/svg/移除好友.svg',
-                                                height: 40,
-                                                width: 40,
-                                              ),
-                                              Container(
-                                                child: Text(
-                                                  '移除成员',
-                                                  style: TextStyle(
-                                                      color: MyColors.c666666,
-                                                      fontSize: 12),
-                                                ),
-                                                margin: EdgeInsets.only(top: 8),
-                                              )
-                                            ],
-                                          ),
-                                        );
-                                      } else {
-                                        return GestureDetector(
-                                          onTap: () {
-                                            MyTools().toPage(
-                                                context, AddMemberPage(store),
-                                                (then) {
-                                              controller.requestRefresh();
-                                            });
-                                          },
-                                          behavior: HitTestBehavior.translucent,
-                                          child: Column(
-                                            children: [
-                                              SvgPicture.asset(
-                                                'images/svg/邀请好友.svg',
-                                                height: 40,
-                                                width: 40,
-                                              ),
-                                              Container(
-                                                child: Text(
-                                                  '邀请成员',
-                                                  style: TextStyle(
-                                                      color: MyColors.c666666,
-                                                      fontSize: 12),
+                            Expanded(
+                              child: GridView.builder(
+                                  gridDelegate:
+                                      SliverGridDelegateWithFixedCrossAxisCount(
+                                          crossAxisCount: 5,
+                                          childAspectRatio: 1,
+                                          mainAxisSpacing: 0,
+                                          crossAxisSpacing: 0),
+                                  itemCount:
+                                      widget.data.ownerUid == MyCookie().getUID()
+                                          ? member.length + 2 > 15
+                                              ? 15
+                                              : member.length + 2
+                                          : member.length > 15
+                                              ? 15
+                                              : member.length,
+                                  physics: NeverScrollableScrollPhysics(),
+                                  padding: EdgeInsets.all(0),
+                                  itemBuilder: (context, index) {
+                                    if (widget.data.ownerUid ==
+                                        MyCookie().getUID()) {
+                                      if (member.length + 2 > 15) {
+                                        if (index < 13) {
+                                          return MyViews().getMembersItem(
+                                              member[index], context);
+                                        } else if (index == 13) {
+                                          return GestureDetector(
+                                            onTap: () {
+                                              MyTools().toPage(context,
+                                                  RemoveMemberPage(store),
+                                                  (then) {
+                                                controller.requestRefresh();
+                                              });
+                                            },
+                                            behavior: HitTestBehavior.translucent,
+                                            child: Column(
+                                              children: [
+                                                SvgPicture.asset(
+                                                  'images/svg/移除好友.svg',
+                                                  height: 40,
+                                                  width: 40,
                                                 ),
-                                                margin: EdgeInsets.only(top: 8),
-                                              )
-                                            ],
-                                          ),
-                                        );
-                                      }
-                                    } else {
-                                      if (index < member.length) {
-                                        return MyViews().getMembersItem(
-                                            member[index], context);
-                                      } else if (index == member.length) {
-                                        return GestureDetector(
-                                          onTap: () {
-                                            MyTools().toPage(context,
-                                                RemoveMemberPage(store),
-                                                (then) {
-                                              controller.requestRefresh();
-                                            });
-                                          },
-                                          behavior: HitTestBehavior.translucent,
-                                          child: Column(
-                                            children: [
-                                              SvgPicture.asset(
-                                                'images/svg/移除好友.svg',
-                                                height: 40,
-                                                width: 40,
-                                              ),
-                                              Container(
-                                                child: Text(
-                                                  '移除成员',
-                                                  style: TextStyle(
-                                                      color: MyColors.c666666,
-                                                      fontSize: 12),
+                                                Container(
+                                                  child: Text(
+                                                    '移除成员',
+                                                    style: TextStyle(
+                                                        color: MyColors.c666666,
+                                                        fontSize: 12),
+                                                  ),
+                                                  margin: EdgeInsets.only(top: 8),
+                                                )
+                                              ],
+                                            ),
+                                          );
+                                        } else {
+                                          return GestureDetector(
+                                            onTap: () {
+                                              MyTools().toPage(
+                                                  context, AddMemberPage(store: store),
+                                                  (then) {
+                                                controller.requestRefresh();
+                                              });
+                                            },
+                                            behavior: HitTestBehavior.translucent,
+                                            child: Column(
+                                              children: [
+                                                SvgPicture.asset(
+                                                  'images/svg/邀请好友.svg',
+                                                  height: 40,
+                                                  width: 40,
                                                 ),
-                                                margin: EdgeInsets.only(top: 8),
-                                              )
-                                            ],
-                                          ),
-                                        );
+                                                Container(
+                                                  child: Text(
+                                                    '邀请成员',
+                                                    style: TextStyle(
+                                                        color: MyColors.c666666,
+                                                        fontSize: 12),
+                                                  ),
+                                                  margin: EdgeInsets.only(top: 8),
+                                                )
+                                              ],
+                                            ),
+                                          );
+                                        }
                                       } else {
-                                        return GestureDetector(
-                                          onTap: () {
-                                            MyTools().toPage(
-                                                context, AddMemberPage(store),
-                                                (then) {
-                                              controller.requestRefresh();
-                                            });
-                                          },
-                                          behavior: HitTestBehavior.translucent,
-                                          child: Column(
-                                            children: [
-                                              SvgPicture.asset(
-                                                'images/svg/邀请好友.svg',
-                                                height: 40,
-                                                width: 40,
-                                              ),
-                                              Container(
-                                                child: Text(
-                                                  '邀请成员',
-                                                  style: TextStyle(
-                                                      color: MyColors.c666666,
-                                                      fontSize: 12),
+                                        if (index < member.length) {
+                                          return MyViews().getMembersItem(
+                                              member[index], context);
+                                        } else if (index == member.length) {
+                                          return GestureDetector(
+                                            onTap: () {
+                                              MyTools().toPage(context,
+                                                  RemoveMemberPage(store),
+                                                  (then) {
+                                                controller.requestRefresh();
+                                              });
+                                            },
+                                            behavior: HitTestBehavior.translucent,
+                                            child: Column(
+                                              children: [
+                                                SvgPicture.asset(
+                                                  'images/svg/移除好友.svg',
+                                                  height: 40,
+                                                  width: 40,
                                                 ),
-                                                margin: EdgeInsets.only(top: 8),
-                                              )
-                                            ],
-                                          ),
-                                        );
+                                                Container(
+                                                  child: Text(
+                                                    '移除成员',
+                                                    style: TextStyle(
+                                                        color: MyColors.c666666,
+                                                        fontSize: 12),
+                                                  ),
+                                                  margin: EdgeInsets.only(top: 8),
+                                                )
+                                              ],
+                                            ),
+                                          );
+                                        } else {
+                                          return GestureDetector(
+                                            onTap: () {
+                                              MyTools().toPage(
+                                                  context, AddMemberPage(store: store),
+                                                  (then) {
+                                                controller.requestRefresh();
+                                              });
+                                            },
+                                            behavior: HitTestBehavior.translucent,
+                                            child: Column(
+                                              children: [
+                                                SvgPicture.asset(
+                                                  'images/svg/邀请好友.svg',
+                                                  height: 40,
+                                                  width: 40,
+                                                ),
+                                                Container(
+                                                  child: Text(
+                                                    '邀请成员',
+                                                    style: TextStyle(
+                                                        color: MyColors.c666666,
+                                                        fontSize: 12),
+                                                  ),
+                                                  margin: EdgeInsets.only(top: 8),
+                                                )
+                                              ],
+                                            ),
+                                          );
+                                        }
                                       }
+                                    } else {
+                                      return MyViews()
+                                          .getMembersItem(member[index], context);
                                     }
-                                  } else {
-                                    return MyViews()
-                                        .getMembersItem(member[index], context);
-                                  }
-                                }),
-                          )
-                        ],
+                                  }),
+                            )
+                          ],
+                        ),
+                        margin: EdgeInsets.only(top: 3),
+                      ),
+                    ),
+                    Visibility(
+                      visible: widget.data.ownerUid==MyCookie().getUID(),
+                      child: GestureDetector(
+                        onTap: () {},
+                        behavior: HitTestBehavior.translucent,
+                        child: Container(
+                          child: Row(
+                            children: [
+                              Text(
+                                '店铺成员显示',
+                                style: TextStyle(
+                                    color: MyColors.c333333, fontSize: 15),
+                              ),
+                              CupertinoSwitch(
+                                  value: !hideMember,
+                                  onChanged: (v) {
+                                    modifyDisplayMembers();
+                                  }),
+                            ],
+                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                          ),
+                          padding:
+                          EdgeInsets.symmetric(horizontal: 16, vertical: 12),
+                          color: Colors.white,
+                          margin: EdgeInsets.only(top: 3),
+                        ),
                       ),
-                      margin: EdgeInsets.only(top: 3),
                     ),
                     // Container(
                     //   padding: EdgeInsets.only(
@@ -861,6 +894,32 @@ class _GangInformationPageState extends State<GangInformationPage> {
                         ),
                       ),
                     ),
+                    Visibility(
+                      visible: widget.data.ownerUid==MyCookie().getUID(),
+                      child: GestureDetector(
+                        onTap: () {
+                          MyTools().toPage(context, AddTemplatePage(shop: widget.data,), (then){});
+                        },
+                        behavior: HitTestBehavior.translucent,
+                        child: Container(
+                          child: Row(
+                            children: [
+                              Text(
+                                '添加模板',
+                                style: TextStyle(
+                                    color: MyColors.c333333, fontSize: 15),
+                              ),
+                              SvgPicture.asset('images/svg/箭头.svg'),
+                            ],
+                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                          ),
+                          padding:
+                          EdgeInsets.symmetric(horizontal: 16, vertical: 12),
+                          color: Colors.white,
+                          margin: EdgeInsets.only(top: 3),
+                        ),
+                      ),
+                    ),
                     /* Container(
                       height: 50,
                       color: Colors.white,
@@ -919,6 +978,7 @@ class _GangInformationPageState extends State<GangInformationPage> {
         StoreBeanEntity entity =
             StoreBeanEntity().fromJson(json.decode(response.data.toString()));
         store = entity.data.data[0];
+        hideMember = store.hideMembers;
         setState(() {});
       }
       endRe(controller);
@@ -949,4 +1009,20 @@ class _GangInformationPageState extends State<GangInformationPage> {
       setState(() {});
     }, (error) {});
   }
+
+  modifyDisplayMembers(){
+    MyDio().update({"key": "shop",
+      "values": {
+        "id": store.id,
+        "hide_members":!hideMember
+      }}, (response, hasError) {
+      if(!hasError){
+        showToast('修改成功');
+        hideMember = !hideMember;
+        setState(() {
+
+        });
+      }
+    }, (error) { });
+  }
 }

+ 29 - 11
lib/paegs/mine_page/my_information_page/my_information_page.dart

@@ -15,6 +15,8 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_svg/flutter_svg.dart';
 
+import 'my_qr_page.dart';
+
 class MyInformationPage extends StatefulWidget {
   @override
   _MyInformationPageState createState() => _MyInformationPageState();
@@ -206,20 +208,36 @@ class _MyInformationPageState extends State<MyInformationPage> {
                             padding: EdgeInsets.symmetric(horizontal: 15),
                             child: Row(
                               children: [
-                                Container(
-                                  child: Text(
-                                    'ID号',
-                                    style: TextStyle(
-                                        color: MyColors.c333333, fontSize: 15),
-                                  ),
-                                  margin: EdgeInsets.only(right: 28),
+                                Row(
+                                  children: [
+                                    Container(
+                                      child: Text(
+                                        'ID号',
+                                        style: TextStyle(
+                                            color: MyColors.c333333,
+                                            fontSize: 15),
+                                      ),
+                                      margin: EdgeInsets.only(right: 28),
+                                    ),
+                                    Text(
+                                      '${MyCookie().getUID()}',
+                                      style: TextStyle(
+                                          color: MyColors.c999999,
+                                          fontSize: 15),
+                                    )
+                                  ],
                                 ),
-                                Text(
-                                  '${MyCookie().getUID()}',
-                                  style: TextStyle(
-                                      color: MyColors.c999999, fontSize: 15),
+                                IconButton(
+                                  onPressed: () {
+                                    MyTools().toPage(context, MyQRPage(), (then){});
+                                  },
+                                  icon: Icon(
+                                    Icons.qr_code,
+                                    color: MyColors.c333333,
+                                  ),
                                 )
                               ],
+                              mainAxisAlignment: MainAxisAlignment.spaceBetween,
                             ),
                           ),
                         ],

+ 35 - 0
lib/paegs/mine_page/my_information_page/my_qr_page.dart

@@ -0,0 +1,35 @@
+import 'package:bbyyy/https/url.dart';
+import 'package:bbyyy/my_tools/my_colors.dart';
+import 'package:bbyyy/my_tools/my_cookie.dart';
+import 'package:bbyyy/my_tools/my_views.dart';
+import 'package:flutter/material.dart';
+import 'package:qr_flutter/qr_flutter.dart';
+
+class MyQRPage extends StatefulWidget {
+  const MyQRPage({Key key}) : super(key: key);
+
+  @override
+  _MyQRPageState createState() => _MyQRPageState();
+}
+
+class _MyQRPageState extends State<MyQRPage> {
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(body: Column(children: [
+      MyViews().myAppBar('我的二维码', context, []),
+      Container(
+        margin: EdgeInsets.only(top: 100,bottom: 50),
+        child: QrImage(
+          data: '${MyCookie().getUID()}',
+          version: QrVersions.auto,
+          size: 200.0,
+        ),
+      ),
+      Row(children: [
+        ClipRRect(child: MyViews().netImg(imgURL(MyCookie().getPic()), 30, 30),borderRadius: BorderRadius.circular(15),),
+        Container(width: 10,),
+        MyViews().myText(MyCookie().getName(), MyColors.c333333, 15),
+      ],mainAxisAlignment: MainAxisAlignment.center,)
+    ],),);
+  }
+}

+ 10 - 19
lib/paegs/root_page/root_page.dart

@@ -126,32 +126,23 @@ class _RootPageState extends State<RootPage> {
   }
 
   Future<void> getLocation() async {
-    var status = await Permission.location.status;
-    print('Permission.location.status--------------$status');
-    if (status.isDenied) {
+    var locationStatus = await Permission.location.status;
+    var cameraStatus = await Permission.camera.status;
+    print('Permission.location.status--------------$locationStatus');
+    print('Permission.camera.status--------------$cameraStatus');
+    if (locationStatus.isDenied) {
       await Permission.location.request().then((value) {
         print('Permission.location.request()-----$value');
       });
     }
+    if (cameraStatus.isDenied) {
+      await Permission.camera.request().then((value) {
+        print('Permission.camera.request()-----$value');
+      });
+    }
     await AMapLocationClient.startup(new AMapLocationOption(
         desiredAccuracy: CLLocationAccuracy.kCLLocationAccuracyHundredMeters));
     AMapLocationClient.onLocationUpate.listen((AMapLocation loc) {});
-    // await AMapLocationClient.getLocation(true).then((value) {
-    //   print('AMapLocation---------\n'
-    //       '${value.latitude}\n'
-    //       '${value.longitude}\n'
-    //       '${value.formattedAddress}\n'
-    //       '${value.country}\n'
-    //       '${value.province}\n'
-    //       '${value.city}\n'
-    //       '${value.district}\n'
-    //       '${value.citycode}\n'
-    //       '${value.adcode}\n'
-    //       '${value.street}\n'
-    //       '${value.number}\n'
-    //       '${value.POIName}\n'
-    //       '${value.AOIName}');
-    // });
   }
 
   //查询优惠券活动

+ 21 - 0
pubspec.lock

@@ -602,6 +602,27 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.6.5"
+  qr:
+    dependency: transitive
+    description:
+      name: qr
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.0"
+  qr_flutter:
+    dependency: "direct main"
+    description:
+      name: qr_flutter
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.0.0"
+  qrscan:
+    dependency: "direct main"
+    description:
+      name: qrscan
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.3.1"
   rational:
     dependency: transitive
     description:

+ 3 - 2
pubspec.yaml

@@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
 # Read more about iOS versioning at
 # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
-version: 1.0.91+1
+version: 1.0.92+1
 
 environment:
   sdk: ">=2.7.0 <3.0.0"
@@ -64,7 +64,8 @@ dependencies:
   amap_location: ^0.2.0
   permission_handler: ^6.1.3
   catcher: ^0.6.5
-
+  qr_flutter: ^4.0.0
+  qrscan: ^0.3.1
 
 dev_dependencies:
   flutter_test: