import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/store.dart'; import 'package:huixiang/retrofit/data/user_info.dart'; import 'package:huixiang/utils/min.dart'; import 'package:huixiang/view_widget/item_title.dart'; import 'package:huixiang/view_widget/round_button.dart'; import 'package:huixiang/view_widget/separator.dart'; import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart'; import 'package:shared_preferences/shared_preferences.dart'; class UnionDetailsPage extends StatefulWidget { final Map arguments; UnionDetailsPage({this.arguments}); @override State createState() { return _UnionDetailsPage(); } } class _UnionDetailsPage extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Color(0xFFF7F7F7), elevation: 0, leading: GestureDetector( onTap: () { Navigator.of(context).pop(); }, child: Container( alignment: Alignment.centerRight, margin: EdgeInsets.only(left: 10), padding: EdgeInsets.all(6), child: Icon( Icons.arrow_back_ios, color: Colors.black, size: 24, ), ), ), titleSpacing: 2, leadingWidth: 56, ), body: Column( children: [ Expanded( child: SingleChildScrollView( physics: BouncingScrollPhysics(), child: Column( children: [ AspectRatio( aspectRatio: 1, child: GestureDetector( onTap: () { Navigator.of(context) .pushNamed('/router/store_detail_page'); }, child: Container( margin: EdgeInsets.fromLTRB(16, 20, 16, 8), padding: EdgeInsets.fromLTRB(10, 20, 10, 14), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(8)), boxShadow: [ BoxShadow( color: Colors.black.withAlpha(25), offset: Offset(0, 1), blurRadius: 12, spreadRadius: 0) ]), child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.start, children: [ AspectRatio( aspectRatio: 1.8, child: buildSwiper(), ), Expanded( child: Container( margin: EdgeInsets.only( left: 10, right: 10, top: 16), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Text( "百年川椒汉街店", style: TextStyle( fontSize: 16, color: Colors.black, fontWeight: FontWeight.bold), ), Icon( Icons.keyboard_arrow_right, size: 20, color: Colors.black, ), Expanded( child: Container( alignment: Alignment.centerRight, child: Text( "116/人", style: TextStyle( fontSize: 14, color: Color(0xFF353535), ), ), )) ], ), Text( "武昌区楚河汉界第一街区万达总部\n国际C座对面", maxLines: 2, style: TextStyle( color: Color(0xFF353535), fontSize: 12), ), Row( children: [ RoundButton( text: S.of(context).kongtiao, backgroup: Color(0xFFFF7A1A), padding: EdgeInsets.only( left: 2, right: 2), fontSize: 10, ), SizedBox( width: 8, ), RoundButton( text: "WiFi", backgroup: Color(0xFFFF7A1A), padding: EdgeInsets.only( left: 2, right: 2), fontSize: 10, ), SizedBox( width: 8, ), RoundButton( text: S.of(context).tingchewei, backgroup: Color(0xFFFF7A1A), padding: EdgeInsets.only( left: 2, right: 2), fontSize: 10, ), ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.end, children: [ Expanded( child: Text( S .of(context) .yingyeshijian("2015.09.06"), style: TextStyle( color: Color(0xFF353535), fontSize: 12, ), )), SizedBox( width: 16, ), Image.asset( "assets/image/icon_union_location.png", width: 24, height: 24, ), SizedBox( width: 16, ), Image.asset( "assets/image/icon_union_call.png", width: 24, height: 24, ) ], ), ], ), ), flex: 1, ) ], ), ), ), ), Container( margin: EdgeInsets.only(top: 20, bottom: 20), child: ItemTitle( text: S.of(context).youhuiquan, imgPath: "assets/image/icon_union_coupons.png", ), ), Container( height: 109, child: ListView.builder( itemCount: 5, physics: BouncingScrollPhysics(), scrollDirection: Axis.horizontal, itemBuilder: (context, position) { return Container( width: MediaQuery.of(context).size.width * 0.784, margin: EdgeInsets.only(left: 6), child: AspectRatio( aspectRatio: 2.86, child: Stack( children: [ Image.asset( "assets/image/icon_union_coupons_bg.png", fit: BoxFit.fill, width: double.infinity, height: double.infinity, ), Container( padding: EdgeInsets.only( left: 24, right: 24, bottom: 17, top: 11), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( child: Image.network( "https://t7.baidu.com/it/u=136439029,1848397702&fm=193&f=GIF", width: 40, height: 40, fit: BoxFit.contain, ), alignment: Alignment.center, ), Container( margin: EdgeInsets.only( top: 12, bottom: 12, left: 24, right: 24), child: MySeparator( width: 1, height: 5, color: Color(0xFF979797), ), ), Expanded( child: Container( margin: EdgeInsets.only( bottom: 12, top: 12), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "百年川椒", style: TextStyle( fontSize: 10, fontWeight: FontWeight.bold, color: Color(0xFF727272), ), ), Text( S .of(context) .manlijiandaijinquan(30, 5), overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 14, fontWeight: FontWeight.bold, color: Color(0xFFFF7A1A), ), ), Text( S .of(context) .youxiaoqizhi("2021.01.03"), style: TextStyle( fontSize: 8, color: Color(0xFFA29E9E), ), ), ], ), )), Container( margin: EdgeInsets.only(bottom: 12), height: 25, child: RoundButton( text: S.of(context).lingqu, textColor: Colors.white, backgroup: Color(0xFF32A060), padding: EdgeInsets.fromLTRB(8, 4, 8, 4), fontSize: 12, ), ), ], ), ) ], ), ), ); }), ), Container( margin: EdgeInsets.only(top: 20, bottom: 20), child: ItemTitle( text: S.of(context).xindianhuodong, imgPath: "assets/image/icon_union_start_store.png", ), ), Container( padding: EdgeInsets.only(left: 10, right: 10), margin: EdgeInsets.only(bottom: 30), child: AspectRatio( aspectRatio: 2.0, child: buildSwiper2Bottom(), ), ) ], ), ), flex: 1, ), InkWell( onTap: _startMin, child: Container( padding: EdgeInsets.only(top: 16, bottom: 16), decoration: BoxDecoration( color: Color(0xFFD8D8D8), borderRadius: BorderRadius.only( topLeft: Radius.circular(4), topRight: Radius.circular(4))), alignment: Alignment.center, child: Text( S.of(context).diancan, style: TextStyle( fontSize: 16, color: Color(0xFFA0A0A0), fontWeight: FontWeight.bold), ), ), ), ], ), ); } _startMin() async { if (!(await Min.isInitialize())) { await Min.initialize(); } Min.clickListener(); if (!(await Min.isExistsApp("__UNI__ACD00DA"))) { await Min.reloadWgt("__UNI__ACD00DA", "/storage/emulated/0/Android/data/com.zsw.huixiang/files/__UNI__ACD00DA.wgt"); } SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); String token = sharedPreferences.getString("token"); String userId = sharedPreferences.getString("userId"); String nickname = sharedPreferences.getString("nick"); String mobile = sharedPreferences.getString("mobile"); String user = sharedPreferences.getString('user'); UserInfo userInfo = UserInfo.fromJson(jsonDecode(user)); Min.startMin("__UNI__ACD00DA", { "token": "Bearer $token", "shopId": widget.arguments["id"], "tenantCode": widget.arguments["tenantCode"], "uid": userId, "userInfo": { "nickname": nickname, "headimg": userInfo.headimg, "balance": userInfo.balance, "money": userInfo.money, "phone": mobile, "isBind": userInfo.isBind, }, }); } Widget buildSwiper2Bottom() { return Container( child: Swiper( pagination: SwiperPagination( alignment: Alignment.bottomCenter, builder: DotSwiperPaginationBuilder( size: 8, activeSize: 8, space: 5, activeColor: Colors.white, color: Colors.white.withAlpha(76), ), ), itemBuilder: (context, position) { return Container( margin: EdgeInsets.only(left: 10, right: 10), child: ClipRRect( borderRadius: BorderRadius.circular(8), child: Image.network( "https://t7.baidu.com/it/u=1492471725,655950677&fm=193&f=GIF", fit: BoxFit.cover, ), ), ); }, itemCount: 3, ), ); } Widget buildSwiper() { return Container( child: Swiper( pagination: SwiperPagination( alignment: Alignment.bottomCenter, builder: DotSwiperPaginationBuilder( size: 8, activeSize: 8, space: 5, activeColor: Colors.white, color: Colors.white.withAlpha(76))), itemBuilder: (context, position) { return Container( margin: EdgeInsets.only(left: 10, right: 10), child: ClipRRect( borderRadius: BorderRadius.circular(4), child: Image.network( "https://t7.baidu.com/it/u=1492471725,655950677&fm=193&f=GIF", fit: BoxFit.cover, ), ), ); }, itemCount: 3), ); } }