Commit c59625c74e04f901e2cedd68c9c5c986a403fc95

Authored by gaiyaguang
1 parent 46ddf41a

1.版本更新弹框;2.联系客服;3.帮助与反馈

1.91 KB | W: | H:

1.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
@@ -25,6 +25,8 @@ PODS: @@ -25,6 +25,8 @@ PODS:
25 - jpush_flutter (0.0.2): 25 - jpush_flutter (0.0.2):
26 - Flutter 26 - Flutter
27 - JPush 27 - JPush
  28 + - package_info (0.0.1):
  29 + - Flutter
28 - path_provider (0.0.1): 30 - path_provider (0.0.1):
29 - Flutter 31 - Flutter
30 - path_provider_macos (0.0.1): 32 - path_provider_macos (0.0.1):
@@ -59,6 +61,7 @@ DEPENDENCIES: @@ -59,6 +61,7 @@ DEPENDENCIES:
59 - fluwx (from `.symlinks/plugins/fluwx/ios`) 61 - fluwx (from `.symlinks/plugins/fluwx/ios`)
60 - install_plugin (from `.symlinks/plugins/install_plugin/ios`) 62 - install_plugin (from `.symlinks/plugins/install_plugin/ios`)
61 - jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`) 63 - jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
  64 + - package_info (from `.symlinks/plugins/package_info/ios`)
62 - path_provider (from `.symlinks/plugins/path_provider/ios`) 65 - path_provider (from `.symlinks/plugins/path_provider/ios`)
63 - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) 66 - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
64 - permission_handler (from `.symlinks/plugins/permission_handler/ios`) 67 - permission_handler (from `.symlinks/plugins/permission_handler/ios`)
@@ -97,6 +100,8 @@ EXTERNAL SOURCES: @@ -97,6 +100,8 @@ EXTERNAL SOURCES:
97 :path: ".symlinks/plugins/install_plugin/ios" 100 :path: ".symlinks/plugins/install_plugin/ios"
98 jpush_flutter: 101 jpush_flutter:
99 :path: ".symlinks/plugins/jpush_flutter/ios" 102 :path: ".symlinks/plugins/jpush_flutter/ios"
  103 + package_info:
  104 + :path: ".symlinks/plugins/package_info/ios"
100 path_provider: 105 path_provider:
101 :path: ".symlinks/plugins/path_provider/ios" 106 :path: ".symlinks/plugins/path_provider/ios"
102 path_provider_macos: 107 path_provider_macos:
@@ -131,6 +136,7 @@ SPEC CHECKSUMS: @@ -131,6 +136,7 @@ SPEC CHECKSUMS:
131 JCore: d75c0306dc99875d323d23e5a063b3a3ef22335a 136 JCore: d75c0306dc99875d323d23e5a063b3a3ef22335a
132 JPush: 9468c84a3809dc3ac2fc1c89c6d1d6c858a91bf5 137 JPush: 9468c84a3809dc3ac2fc1c89c6d1d6c858a91bf5
133 jpush_flutter: 69133df35eaf9135e540549b154d992c44f8ee44 138 jpush_flutter: 69133df35eaf9135e540549b154d992c44f8ee44
  139 + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
134 path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d 140 path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d
135 path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 141 path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
136 permission_handler: f615215121f43c1640d2b8500d4ad749512828a8 142 permission_handler: f615215121f43c1640d2b8500d4ad749512828a8
@@ -159,164 +159,169 @@ class HandleOnlinePageState extends State<HandleOnlinePage> { @@ -159,164 +159,169 @@ class HandleOnlinePageState extends State<HandleOnlinePage> {
159 Expanded( 159 Expanded(
160 child: DefaultTextStyle(style: TextStyle(decoration: TextDecoration.none), child: Container( 160 child: DefaultTextStyle(style: TextStyle(decoration: TextDecoration.none), child: Container(
161 color: MyColours.color_ffffff, 161 color: MyColours.color_ffffff,
162 - child: SingleChildScrollView(  
163 - child: Container(  
164 - color: MyColours.color_ffffff,  
165 - padding:  
166 - EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(43)),  
167 - child: Column(  
168 - children: <Widget>[  
169 - RowMultiText("用餐时段", detailEntity.ddateMd),  
170 - Stack(  
171 - alignment: Alignment.center, 162 + child: Column(
  163 + children: <Widget>[
  164 + SingleChildScrollView(
  165 + child: Container(
  166 + color: MyColours.color_ffffff,
  167 + padding:
  168 + EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(43)),
  169 + child: Column(
172 children: <Widget>[ 170 children: <Widget>[
173 - Column( 171 + RowMultiText("用餐时段", detailEntity.ddateMd),
  172 + Stack(
  173 + alignment: Alignment.center,
174 children: <Widget>[ 174 children: <Widget>[
175 - RowMultiText("用餐时间", detailEntity.ddateHm),  
176 - Offstage(  
177 - offstage: detailEntity.type=="0"?false:true,  
178 - child: RowMultiText("用餐人数", detailEntity.pnum),  
179 - ) 175 + Column(
  176 + children: <Widget>[
  177 + RowMultiText("用餐时间", detailEntity.ddateHm),
  178 + Offstage(
  179 + offstage: detailEntity.type=="0"?false:true,
  180 + child: RowMultiText("用餐人数", detailEntity.pnum),
  181 + )
  182 + ],
  183 + ),
  184 + Image.asset(detailEntity.statuImgAssets,width: ScreenUtil().setWidth(100),height: ScreenUtil().setWidth(30),)
180 ], 185 ],
181 ), 186 ),
182 - Image.asset(detailEntity.statuImgAssets,width: ScreenUtil().setWidth(100),height: ScreenUtil().setWidth(30),)  
183 - ],  
184 - ),  
185 - RowMultiText("包间需求", (detailEntity.demands.length.toString()+"个")??""),  
186 - Align(  
187 - alignment: Alignment.centerRight,  
188 - child: Offstage(  
189 - offstage: detailEntity.demands.length>0?false:true,  
190 - child: Container(  
191 - height: ScreenUtil().setHeight(210),  
192 - child: ListView.builder(itemBuilder: (BuildContext contxt,int index){  
193 - return NeedItem(detailEntity.demands[index]);  
194 - },itemCount: detailEntity.demands.length,shrinkWrap: true,scrollDirection: Axis.horizontal,),  
195 - ),  
196 - )  
197 - ),  
198 - RowMultiText("客户姓名", detailEntity.rnameStr),  
199 - RowMultiText("客户电话", detailEntity.phone),  
200 - MyDivider(double.infinity, ScreenUtil().setHeight(1)),  
201 - Container(  
202 - color: MyColours.color_ffffff,  
203 - width: double.infinity,  
204 - height: ScreenUtil().setHeight(80),  
205 - alignment: Alignment.center,  
206 - child: Stack(  
207 - alignment: Alignment.center,  
208 - children: <Widget>[  
209 - Positioned(  
210 - left: 0,  
211 - child: Text(  
212 - "客户经理",  
213 - style: TextStyle(  
214 - color: MyColours.color_828282,  
215 - fontSize: ScreenUtil().setSp(30)),  
216 - ),  
217 - ),  
218 - Positioned(  
219 - right: 0,  
220 - child: GestureDetector(  
221 - onTap: () async {  
222 - List<String> list=[];  
223 - for(Manager manager in managers){  
224 - list.add(manager.roleUserName);  
225 - }  
226 - DialogUtil.showSelectCusmanDialog(context,list).then((value){  
227 - setState(() {  
228 - cusmanText=managers[value.first].userName;  
229 - });  
230 - _setCurrManager();  
231 - });  
232 - },  
233 - child: Text(  
234 - cusmanText,  
235 - style: TextStyle(  
236 - color: MyColours.color_353535,  
237 - fontSize: ScreenUtil().setSp(30),  
238 - decoration: TextDecoration.underline, 187 + RowMultiText("包间需求", (detailEntity.demands.length.toString()+"个")??""),
  188 + Align(
  189 + alignment: Alignment.centerRight,
  190 + child: Offstage(
  191 + offstage: detailEntity.demands.length>0?false:true,
  192 + child: Container(
  193 + height: ScreenUtil().setHeight(210),
  194 + child: ListView.builder(itemBuilder: (BuildContext contxt,int index){
  195 + return NeedItem(detailEntity.demands[index]);
  196 + },itemCount: detailEntity.demands.length,shrinkWrap: true,scrollDirection: Axis.horizontal,),
  197 + ),
  198 + )
  199 + ),
  200 + RowMultiText("客户姓名", detailEntity.rnameStr),
  201 + RowMultiText("客户电话", detailEntity.phone),
  202 + RowMultiText("备注信息",detailEntity.cusdem??""),
  203 + MyDivider(double.infinity, ScreenUtil().setHeight(1)),
  204 + Container(
  205 + color: MyColours.color_ffffff,
  206 + width: double.infinity,
  207 + height: ScreenUtil().setHeight(80),
  208 + alignment: Alignment.center,
  209 + child: Stack(
  210 + alignment: Alignment.center,
  211 + children: <Widget>[
  212 + Positioned(
  213 + left: 0,
  214 + child: Text(
  215 + "客户经理",
  216 + style: TextStyle(
  217 + color: MyColours.color_828282,
  218 + fontSize: ScreenUtil().setSp(30)),
239 ), 219 ),
240 ), 220 ),
241 - ),  
242 - )  
243 - ],  
244 - ), 221 + Positioned(
  222 + right: 0,
  223 + child: GestureDetector(
  224 + onTap: () async {
  225 + List<String> list=[];
  226 + for(Manager manager in managers){
  227 + list.add(manager.roleUserName);
  228 + }
  229 + DialogUtil.showSelectCusmanDialog(context,list).then((value){
  230 + setState(() {
  231 + cusmanText=managers[value.first].userName;
  232 + });
  233 + _setCurrManager();
  234 + });
  235 + },
  236 + child: Text(
  237 + cusmanText,
  238 + style: TextStyle(
  239 + color: MyColours.color_353535,
  240 + fontSize: ScreenUtil().setSp(30),
  241 + decoration: TextDecoration.underline,
  242 + ),
  243 + ),
  244 + ),
  245 + )
  246 + ],
  247 + ),
  248 + ),
  249 + ],
  250 + )),
  251 + ),
  252 + Container(
  253 + margin: EdgeInsets.only(top: ScreenUtil().setHeight(30),bottom: ScreenUtil().setHeight(30)),
  254 + child: Column(
  255 + children: <Widget>[
  256 + CommonButton(
  257 + content: "安排包间",
  258 + width: 669,
  259 + height: 76,
  260 + fontSize: 34,
  261 + onPress: () async {
  262 + String tid=await NavigatorUtil.goSelectTablePage(context,widget.rid,int.parse(detailEntity.ddate)*1000,detailEntity.ddate_solt);
  263 + if(tid!=null){
  264 + setReserveStatus("5",tid:tid);
  265 + }
  266 + },
245 ), 267 ),
  268 + VEmptyView(20),
246 Container( 269 Container(
247 - margin: EdgeInsets.only(top: ScreenUtil().setHeight(206)),  
248 - child: Column( 270 + width: ScreenUtil().setWidth(669),
  271 + height: ScreenUtil().setHeight(76),
  272 + decoration: BoxDecoration(
  273 + border: Border.all(color: MyColours.color_199095),
  274 + borderRadius: BorderRadius.circular(
  275 + ScreenUtil().setWidth(5)),
  276 + ),
  277 + child: Row(
  278 + crossAxisAlignment: CrossAxisAlignment.center,
249 children: <Widget>[ 279 children: <Widget>[
250 - CommonButton(  
251 - content: "安排包间",  
252 - width: 669,  
253 - height: 76,  
254 - fontSize: 34,  
255 - onPress: () async {  
256 - String tid=await NavigatorUtil.goSelectTablePage(context,widget.rid,int.parse(detailEntity.ddate)*1000,detailEntity.ddate_solt);  
257 - if(tid!=null){  
258 - setReserveStatus("5",tid:tid);  
259 - }  
260 - }, 280 + Expanded(
  281 + child: GestureDetector(
  282 + child: Center(
  283 + child: Text(
  284 + "拒绝订单",
  285 + style: TextStyle(
  286 + color: MyColours.color_199095,
  287 + fontSize: ScreenUtil().setSp(34)),
  288 + ),
  289 + ),
  290 + onTap: () {
  291 + _showRefuseDialog();
  292 + },
  293 + )),
  294 + MyDivider(
  295 + ScreenUtil().setWidth(2),
  296 + ScreenUtil().setHeight(52),
  297 + color: MyColours.color_199095,
261 ), 298 ),
262 - VEmptyView(20),  
263 - Container(  
264 - width: ScreenUtil().setWidth(669),  
265 - height: ScreenUtil().setHeight(76),  
266 - decoration: BoxDecoration(  
267 - border: Border.all(color: MyColours.color_199095),  
268 - borderRadius: BorderRadius.circular(  
269 - ScreenUtil().setWidth(5)),  
270 - ),  
271 - child: Row(  
272 - crossAxisAlignment: CrossAxisAlignment.center,  
273 - children: <Widget>[  
274 - Expanded(  
275 - child: GestureDetector(  
276 - child: Center(  
277 - child: Text(  
278 - "拒绝订单",  
279 - style: TextStyle(  
280 - color: MyColours.color_199095,  
281 - fontSize: ScreenUtil().setSp(34)),  
282 - ),  
283 - ),  
284 - onTap: () {  
285 - _showRefuseDialog();  
286 - },  
287 - )),  
288 - MyDivider(  
289 - ScreenUtil().setWidth(2),  
290 - ScreenUtil().setHeight(52),  
291 - color: MyColours.color_199095, 299 + Expanded(
  300 + child: GestureDetector(
  301 + child: Center(
  302 + child: Text(
  303 + "联系顾客",
  304 + style: TextStyle(
  305 + color: MyColours.color_199095,
  306 + fontSize: ScreenUtil().setSp(34)),
  307 + ),
292 ), 308 ),
293 - Expanded(  
294 - child: GestureDetector(  
295 - child: Center(  
296 - child: Text(  
297 - "联系顾客",  
298 - style: TextStyle(  
299 - color: MyColours.color_199095,  
300 - fontSize: ScreenUtil().setSp(34)),  
301 - ),  
302 - ),  
303 - onTap: () {  
304 - if(detailEntity.phone!=null&&detailEntity.phone.isNotEmpty){  
305 - Utils.goPhone(detailEntity.phone);  
306 - }else{  
307 - Utils.showToast("没有客户电话!");  
308 - }  
309 - },  
310 - )),  
311 - ],  
312 - ),  
313 - ) 309 + onTap: () {
  310 + if(detailEntity.phone!=null&&detailEntity.phone.isNotEmpty){
  311 + Utils.goPhone(detailEntity.phone);
  312 + }else{
  313 + Utils.showToast("没有客户电话!");
  314 + }
  315 + },
  316 + )),
314 ], 317 ],
315 ), 318 ),
316 ) 319 )
317 ], 320 ],
318 - )),  
319 - ), 321 + ),
  322 + )
  323 + ],
  324 + )
320 )), 325 )),
321 ) 326 )
322 ], 327 ],
@@ -90,7 +90,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -90,7 +90,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
90 showBack: true, 90 showBack: true,
91 ), 91 ),
92 Expanded( 92 Expanded(
93 - child: DefaultTextStyle(style: TextStyle(decoration: TextDecoration.none), overflow:TextOverflow.ellipsis,child: Container( 93 + child: DefaultTextStyle(style: TextStyle(decoration: TextDecoration.none),child: Container(
94 color: MyColours.color_ffffff, 94 color: MyColours.color_ffffff,
95 child: SingleChildScrollView( 95 child: SingleChildScrollView(
96 child: Container( 96 child: Container(
@@ -149,7 +149,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -149,7 +149,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
149 ) 149 )
150 ), 150 ),
151 RowMultiText("客户姓名", detailEntity.rnameStr), 151 RowMultiText("客户姓名", detailEntity.rnameStr),
152 - RowMultiText("客户电话", detailEntity.phone), 152 + RowMultiText("客户电话", detailEntity.phone??""),
  153 + RowMultiText("备注信息",detailEntity.cusdem??""),
153 MyDivider(double.infinity, ScreenUtil().setHeight(1)), 154 MyDivider(double.infinity, ScreenUtil().setHeight(1)),
154 Container( 155 Container(
155 color: MyColours.color_ffffff, 156 color: MyColours.color_ffffff,
1 import 'package:flutter/material.dart'; 1 import 'package:flutter/material.dart';
2 import 'package:flutter_screenutil/flutter_screenutil.dart'; 2 import 'package:flutter_screenutil/flutter_screenutil.dart';
  3 +import 'package:one_key/provider/update_model.dart';
3 import 'package:one_key/provider/user_model.dart'; 4 import 'package:one_key/provider/user_model.dart';
4 import 'package:one_key/res/colors.dart'; 5 import 'package:one_key/res/colors.dart';
  6 +import 'package:one_key/utils/utils.dart';
  7 +import 'package:one_key/widgets/MyDivider.dart';
5 import 'package:one_key/widgets/app_bar.dart'; 8 import 'package:one_key/widgets/app_bar.dart';
6 import 'package:one_key/widgets/h_empty_view.dart'; 9 import 'package:one_key/widgets/h_empty_view.dart';
  10 +import 'package:one_key/widgets/my_item.dart';
7 import 'package:one_key/widgets/v_empty_view.dart'; 11 import 'package:one_key/widgets/v_empty_view.dart';
8 import 'package:provider/provider.dart'; 12 import 'package:provider/provider.dart';
9 13
@@ -16,6 +20,26 @@ class MyPage extends StatefulWidget{ @@ -16,6 +20,26 @@ class MyPage extends StatefulWidget{
16 } 20 }
17 21
18 class MyPageState extends State<MyPage>{ 22 class MyPageState extends State<MyPage>{
  23 +
  24 + String cur_version="";
  25 +
  26 + @override
  27 + void initState() {
  28 + // TODO: implement initState
  29 + super.initState();
  30 + Utils.getCurrVersion().then((version){
  31 + setState(() {
  32 + cur_version="v"+version;
  33 + });
  34 + });
  35 + }
  36 +
  37 + //检查版本更新
  38 + checkUpdate(){
  39 + UpdateModel updateModel=new UpdateModel();
  40 + updateModel.checkUpdate(context);
  41 + }
  42 +
19 @override 43 @override
20 Widget build(BuildContext context) { 44 Widget build(BuildContext context) {
21 // TODO: implement build 45 // TODO: implement build
@@ -28,39 +52,60 @@ class MyPageState extends State<MyPage>{ @@ -28,39 +52,60 @@ class MyPageState extends State<MyPage>{
28 MyAppBar("我的",showBack: false,backgroundColor: MyColours.color_2bb5b7,fontColor: MyColours.color_fefefe,), 52 MyAppBar("我的",showBack: false,backgroundColor: MyColours.color_2bb5b7,fontColor: MyColours.color_fefefe,),
29 Container( 53 Container(
30 width: double.infinity, 54 width: double.infinity,
31 - height: ScreenUtil().setHeight(396),  
32 - decoration: BoxDecoration(  
33 - color: MyColours.color_2bb5b7,  
34 - boxShadow: [BoxShadow(color: MyColours.color_2e000000,offset: Offset(.0,2.0))],  
35 - borderRadius: BorderRadius.only(bottomLeft: Radius.circular(ScreenUtil().setWidth(350)),bottomRight: Radius.circular(ScreenUtil().setWidth(350)))  
36 - ), 55 + height: ScreenUtil().setHeight(242),
  56 + alignment: Alignment.centerLeft,
  57 + padding: EdgeInsets.only(left: ScreenUtil().setWidth(40)),
  58 + color: MyColours.color_2bb5b7,
37 child: Consumer<UserModel>(builder: (BuildContext context,UserModel model,Widget child){ 59 child: Consumer<UserModel>(builder: (BuildContext context,UserModel model,Widget child){
38 return Column( 60 return Column(
39 - crossAxisAlignment: CrossAxisAlignment.center, 61 + crossAxisAlignment: CrossAxisAlignment.start,
40 children: <Widget>[ 62 children: <Widget>[
41 - VEmptyView(25),  
42 - Image.asset("assets/my_logo.png",width: ScreenUtil().setWidth(228),height: ScreenUtil().setWidth(228),),  
43 - VEmptyView(40),  
44 - Text(model.user.sellername,style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(32)),),  
45 - VEmptyView(12),  
46 - Text(model.user.account+" | "+model.user.role_name,style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(30)),) 63 + VEmptyView(38),
  64 + Text(model.user.sellername,style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(36)),),
  65 + VEmptyView(38),
  66 + Text(model.user.account+" | "+model.user.role_name,style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(30)),),
47 ], 67 ],
48 ); 68 );
49 },) 69 },)
50 ), 70 ),
  71 + VEmptyView(44),
  72 + MyItem(title:"联系客服",content:"09:00~21:00",callback: (){
  73 + Utils.goPhone("400-000-9690");
  74 + },),
  75 + MyDivider(double.infinity,ScreenUtil().setHeight(1),color: MyColours.color_f3f3f3,),
  76 + MyItem(title:"帮助与反馈",content:"",callback: (){
  77 + Utils.goHelp();
  78 + },),
  79 + MyDivider(double.infinity,ScreenUtil().setHeight(1),color: MyColours.color_f3f3f3),
  80 + GestureDetector(
  81 + onTap: checkUpdate,
  82 + child: Container(
  83 + width: double.infinity,
  84 + height: ScreenUtil().setHeight(122),
  85 + color: MyColours.color_ffffff,
  86 + padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
  87 + alignment: Alignment.center,
  88 + child: Row(
  89 + children: <Widget>[
  90 + Text("版本更新",style: TextStyle(fontSize: ScreenUtil().setSp(30),color: MyColours.color_353535),),
  91 + Spacer(),
  92 + Text(cur_version,style: TextStyle(fontSize: ScreenUtil().setSp(28),color: MyColours.color_666666),),
  93 + HEmptyView(20),
  94 + Image.asset("assets/arr_right_gray.png",width: ScreenUtil().setWidth(14),height: ScreenUtil().setWidth(22),)
  95 + ],
  96 + ),
  97 + ),
  98 + ),
  99 + MyDivider(double.infinity,ScreenUtil().setHeight(1),color: MyColours.color_f3f3f3,),
  100 + VEmptyView(40),
51 Consumer<UserModel>(builder: (BuildContext context,UserModel model,Widget child){ 101 Consumer<UserModel>(builder: (BuildContext context,UserModel model,Widget child){
52 return GestureDetector( 102 return GestureDetector(
53 onTap: (){ 103 onTap: (){
54 - model.loginOut(context, {"seller_code":model.user.sellercode,"account":model.user.account}); 104 + model.showLoginOutDialog(context);
55 }, 105 },
56 child: Container( 106 child: Container(
57 - height: ScreenUtil().setHeight(106),  
58 - margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20),vertical: ScreenUtil().setHeight(40)),  
59 - decoration: BoxDecoration(  
60 - color: MyColours.color_ffffff,  
61 - borderRadius: BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8))),  
62 - boxShadow: [BoxShadow(color: MyColours.color_14000000,offset: Offset(.0, 1.0))]  
63 - ), 107 + height: ScreenUtil().setHeight(122),
  108 + color: MyColours.color_ffffff,
64 child: Center( 109 child: Center(
65 child: Row( 110 child: Row(
66 mainAxisSize: MainAxisSize.min, 111 mainAxisSize: MainAxisSize.min,
@@ -68,7 +113,7 @@ class MyPageState extends State<MyPage>{ @@ -68,7 +113,7 @@ class MyPageState extends State<MyPage>{
68 children: <Widget>[ 113 children: <Widget>[
69 Image.asset("assets/icon_exist.png",width: ScreenUtil().setWidth(30),height: ScreenUtil().setWidth(30),), 114 Image.asset("assets/icon_exist.png",width: ScreenUtil().setWidth(30),height: ScreenUtil().setWidth(30),),
70 HEmptyView(18), 115 HEmptyView(18),
71 - Text("退出登录",style: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(34),)) 116 + Text("退出登录",style: TextStyle(color: MyColours.color_2bb5b7,fontSize: ScreenUtil().setSp(34),))
72 ], 117 ],
73 ), 118 ),
74 ), 119 ),
1 -  
2 import 'dart:io'; 1 import 'dart:io';
3 import 'dart:math'; 2 import 'dart:math';
4 3
@@ -8,101 +7,176 @@ import 'package:install_plugin/install_plugin.dart'; @@ -8,101 +7,176 @@ import 'package:install_plugin/install_plugin.dart';
8 import 'package:one_key/models/version.dart'; 7 import 'package:one_key/models/version.dart';
9 import 'package:one_key/net/dio_util.dart'; 8 import 'package:one_key/net/dio_util.dart';
10 import 'package:one_key/res/colors.dart'; 9 import 'package:one_key/res/colors.dart';
  10 +import 'package:one_key/widgets/MyDivider.dart';
  11 +import 'package:one_key/widgets/v_empty_view.dart';
11 import 'package:path_provider/path_provider.dart'; 12 import 'package:path_provider/path_provider.dart';
12 import 'package:permission_handler/permission_handler.dart'; 13 import 'package:permission_handler/permission_handler.dart';
13 14
14 -class UpdateModel{  
15 -  
16 - int _progress;//下载进度 15 +class UpdateModel {
  16 + int _progress; //下载进度
17 Function _setState; 17 Function _setState;
18 //检查更新 18 //检查更新
19 - Future<Version> checkUpdate(BuildContext context){  
20 - Future.delayed(new Duration(milliseconds: 1000),(){  
21 - if(Random().nextInt(10)>0){  
22 - Version version=Version.fromJson({  
23 - "version":"v1.0.3",  
24 - "file_url":"http://xt03.colorcun.com/uploads/20191105/67e38355c41528b24a97e9ac71a221ea.apk",  
25 - "content":"1.bug修复;\n2.功能更新;" 19 + checkUpdate(BuildContext context) {
  20 + Future.delayed(new Duration(milliseconds: 1000), () {
  21 + if (Random().nextInt(10) > 0) {
  22 + Version version = Version.fromJson({
  23 + "version": "v1.0.3",
  24 + "file_url":
  25 + "http://xt03.colorcun.com/uploads/20191105/67e38355c41528b24a97e9ac71a221ea.apk",
  26 + "content": "1.bug修复;\n2.功能更新;"
26 }); 27 });
27 showUpdateDialog(context, version); 28 showUpdateDialog(context, version);
28 } 29 }
29 }); 30 });
30 } 31 }
31 32
32 - //拒绝订单弹框  
33 - showUpdateDialog(BuildContext context,Version version){  
34 - showDialog(context: context,builder: (context){  
35 - return AlertDialog(  
36 - title: Text("版本更新${version.version}"),  
37 - titleTextStyle: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(32)),  
38 - content: Text("${version.content}"),  
39 - contentTextStyle:TextStyle(color: MyColours.color_828282,fontSize: ScreenUtil().setSp(28)),  
40 - actions: <Widget>[  
41 - FlatButton(  
42 - child: Text("取消",style: TextStyle(fontSize: ScreenUtil().setSp(32)),),  
43 - onPressed: (){  
44 - Navigator.of(context).pop();  
45 - },  
46 - ),  
47 - FlatButton(  
48 - child: Text("去更新",style: TextStyle(fontSize: ScreenUtil().setSp(32)),),  
49 - onPressed: () async {  
50 - Navigator.of(context).pop();  
51 - if(Platform.isAndroid){  
52 - downloadApk(context,version.file_url);  
53 - }else{  
54 - InstallPlugin.gotoAppStore("itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1510697490");  
55 - }  
56 - },  
57 - )  
58 - ],  
59 - );  
60 - }); 33 + //版本更新弹框
  34 + showUpdateDialog(BuildContext context, Version version) {
  35 + showDialog(
  36 + context: context,
  37 + builder: (context) {
  38 + Widget widget = Container(
  39 + decoration: BoxDecoration(
  40 + color: MyColours.color_ffffff,
  41 + borderRadius: BorderRadius.all(
  42 + Radius.circular(ScreenUtil().setWidth(30)))),
  43 + padding: EdgeInsets.only(top: ScreenUtil().setWidth(50)),
  44 + child: Column(
  45 + mainAxisSize: MainAxisSize.min,
  46 + crossAxisAlignment: CrossAxisAlignment.start,
  47 + children: <Widget>[
  48 + Container(
  49 + padding: EdgeInsets.symmetric(
  50 + horizontal: ScreenUtil().setWidth(60)),
  51 + child: Column(
  52 + mainAxisSize: MainAxisSize.min,
  53 + crossAxisAlignment: CrossAxisAlignment.start,
  54 + children: <Widget>[
  55 + Center(
  56 + child: Text(
  57 + "${version.version}版本更新啦",
  58 + style: TextStyle(
  59 + fontSize: ScreenUtil().setSp(36),
  60 + color: MyColours.color_353535),
  61 + ),
  62 + ),
  63 + VEmptyView(20),
  64 + Text(
  65 + version.content,
  66 + style: TextStyle(
  67 + fontSize: ScreenUtil().setSp(28),
  68 + color: MyColours.color_353535),
  69 + )
  70 + ],
  71 + ),
  72 + ),
  73 + VEmptyView(40),
  74 + MyDivider(double.infinity, ScreenUtil().setWidth(1)),
  75 + Container(
  76 + height: ScreenUtil().setWidth(94),
  77 + child: Row(
  78 + children: <Widget>[
  79 + Expanded(
  80 + child: GestureDetector(
  81 + onTap: () {
  82 + Navigator.of(context).pop();
  83 + },
  84 + child: Text(
  85 + "下次一定",
  86 + style: TextStyle(
  87 + fontSize: ScreenUtil().setSp(34),
  88 + color: MyColours.color_777777),
  89 + textAlign: TextAlign.center,
  90 + ),
  91 + ),
  92 + ),
  93 + MyDivider(ScreenUtil().setWidth(1),ScreenUtil().setWidth(94)),
  94 + Expanded(
  95 + child: GestureDetector(
  96 + onTap: () {
  97 + Navigator.of(context).pop();
  98 + if (Platform.isAndroid) {
  99 + downloadApk(context, version.file_url);
  100 + } else {
  101 + InstallPlugin.gotoAppStore(
  102 + "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1510697490");
  103 + }
  104 + },
  105 + child: Text(
  106 + "立即更新",
  107 + style: TextStyle(
  108 + fontSize: ScreenUtil().setSp(34),
  109 + color: MyColours.color_2bb5b7),
  110 + textAlign: TextAlign.center,
  111 + ),
  112 + ),
  113 + )
  114 + ],
  115 + ),
  116 + )
  117 + ],
  118 + ),
  119 + );
  120 + return Center(child: UnconstrainedBox(
  121 + constrainedAxis: Axis.vertical,
  122 + child: ConstrainedBox(
  123 + constraints: BoxConstraints(maxWidth: ScreenUtil().setWidth(560)),
  124 + child: DefaultTextStyle(
  125 + style: TextStyle(decoration: TextDecoration.none),
  126 + child: widget,
  127 + )
  128 + ),
  129 + ),);
  130 + return AlertDialog(
  131 + content: widget,
  132 + contentPadding: EdgeInsets.zero,
  133 + );
  134 + });
61 } 135 }
62 136
63 //下载更新版本 137 //下载更新版本
64 - Future<void> downloadApk(BuildContext context,String file_url) async { 138 + Future<void> downloadApk(BuildContext context, String file_url) async {
65 Map<PermissionGroup, PermissionStatus> permissions = 139 Map<PermissionGroup, PermissionStatus> permissions =
66 - await PermissionHandler().requestPermissions([PermissionGroup.storage]);  
67 - if(permissions[PermissionGroup.storage] == PermissionStatus.granted){  
68 - final dir=await getExternalStorageDirectory();  
69 - String savePath=dir.path+"/one_key";  
70 - DioUtil().download(file_url, savePath,onProgress: (received,total){  
71 - int progress=((received/total)*100).round();  
72 - _progress=progress;  
73 - _setState((){});  
74 - if(received==total){//下载完成  
75 - InstallPlugin.installApk(savePath,"com.naji.one_key"); 140 + await PermissionHandler().requestPermissions([PermissionGroup.storage]);
  141 + if (permissions[PermissionGroup.storage] == PermissionStatus.granted) {
  142 + final dir = await getExternalStorageDirectory();
  143 + String savePath = dir.path + "/one_key";
  144 + DioUtil().download(file_url, savePath, onProgress: (received, total) {
  145 + int progress = ((received / total) * 100).round();
  146 + _progress = progress;
  147 + _setState(() {});
  148 + if (received == total) {
  149 + //下载完成
  150 + InstallPlugin.installApk(savePath, "com.naji.one_key");
76 } 151 }
77 }); 152 });
78 } 153 }
79 } 154 }
80 155
81 //显示下载进度条 156 //显示下载进度条
82 - Function showDownloadProgress(BuildContext context){ 157 + Function showDownloadProgress(BuildContext context) {
83 showDialog( 158 showDialog(
84 context: context, 159 context: context,
85 barrierDismissible: false, 160 barrierDismissible: false,
86 builder: (context) { 161 builder: (context) {
87 return AlertDialog( 162 return AlertDialog(
88 content: StatefulBuilder(builder: (context, setState) { 163 content: StatefulBuilder(builder: (context, setState) {
89 - if(_progress==100){  
90 - Navigator.of(context).pop();  
91 -  
92 - }  
93 - _setState=setState;  
94 - return Column(  
95 - mainAxisSize: MainAxisSize.min,  
96 - children: <Widget>[  
97 - CircularProgressIndicator(),  
98 - Padding(  
99 - padding: EdgeInsets.only(top: 26),  
100 - child: Text("正在下载...${_progress}%"),  
101 - )  
102 - ],  
103 - );  
104 - })); 164 + if (_progress == 100) {
  165 + Navigator.of(context).pop();
  166 + }
  167 + _setState = setState;
  168 + return Column(
  169 + mainAxisSize: MainAxisSize.min,
  170 + children: <Widget>[
  171 + CircularProgressIndicator(),
  172 + Padding(
  173 + padding: EdgeInsets.only(top: 26),
  174 + child: Text("正在下载...${_progress}%"),
  175 + )
  176 + ],
  177 + );
  178 + }));
105 }); 179 });
106 return _setState; 180 return _setState;
107 } 181 }
108 -}  
  182 +}
1 import 'dart:convert'; 1 import 'dart:convert';
2 2
3 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
  4 +import 'package:flutter_screenutil/flutter_screenutil.dart';
4 import 'package:jpush_flutter/jpush_flutter.dart'; 5 import 'package:jpush_flutter/jpush_flutter.dart';
5 import 'package:one_key/constant/constant.dart'; 6 import 'package:one_key/constant/constant.dart';
6 import 'package:one_key/models/user.dart'; 7 import 'package:one_key/models/user.dart';
7 import 'package:one_key/net/base_resp.dart'; 8 import 'package:one_key/net/base_resp.dart';
8 import 'package:one_key/net/dio_util.dart'; 9 import 'package:one_key/net/dio_util.dart';
9 import 'package:one_key/net/http_url.dart'; 10 import 'package:one_key/net/http_url.dart';
  11 +import 'package:one_key/res/colors.dart';
10 import 'package:one_key/utils/log_util.dart'; 12 import 'package:one_key/utils/log_util.dart';
11 import 'package:one_key/utils/navigator_util.dart'; 13 import 'package:one_key/utils/navigator_util.dart';
12 import 'package:one_key/utils/utils.dart'; 14 import 'package:one_key/utils/utils.dart';
  15 +import 'package:one_key/widgets/MyDivider.dart';
  16 +import 'package:one_key/widgets/v_empty_view.dart';
13 17
14 import '../app.dart'; 18 import '../app.dart';
15 19
@@ -118,6 +122,88 @@ class UserModel with ChangeNotifier { @@ -118,6 +122,88 @@ class UserModel with ChangeNotifier {
118 } 122 }
119 } 123 }
120 124
  125 + //版本更新弹框
  126 + showLoginOutDialog(BuildContext pageContext) {
  127 + showDialog(
  128 + context: pageContext,
  129 + builder: (context) {
  130 + Widget widget = Container(
  131 + decoration: BoxDecoration(
  132 + color: MyColours.color_ffffff,
  133 + borderRadius: BorderRadius.all(
  134 + Radius.circular(ScreenUtil().setWidth(30)))),
  135 + padding: EdgeInsets.only(top: ScreenUtil().setWidth(88)),
  136 + child: Column(
  137 + mainAxisSize: MainAxisSize.min,
  138 + crossAxisAlignment: CrossAxisAlignment.start,
  139 + children: <Widget>[
  140 + Center(
  141 + child: Text(
  142 + "确定要退出登录吗?",
  143 + style: TextStyle(
  144 + fontSize: ScreenUtil().setSp(36),
  145 + color: MyColours.color_353535),
  146 + ),
  147 + ),
  148 + VEmptyView(66),
  149 + MyDivider(double.infinity, ScreenUtil().setWidth(1)),
  150 + Container(
  151 + height: ScreenUtil().setWidth(94),
  152 + child: Row(
  153 + children: <Widget>[
  154 + Expanded(
  155 + child: GestureDetector(
  156 + onTap: () {
  157 + Navigator.of(context).pop();
  158 + },
  159 + child: Text(
  160 + "取消",
  161 + style: TextStyle(
  162 + fontSize: ScreenUtil().setSp(34),
  163 + color: MyColours.color_777777),
  164 + textAlign: TextAlign.center,
  165 + ),
  166 + ),
  167 + ),
  168 + MyDivider(ScreenUtil().setWidth(1),ScreenUtil().setWidth(94)),
  169 + Expanded(
  170 + child: GestureDetector(
  171 + onTap: () {
  172 + Navigator.of(context).pop();
  173 + loginOut(pageContext, {"seller_code":user.sellercode,"account":user.account});
  174 + },
  175 + child: Text(
  176 + "确定",
  177 + style: TextStyle(
  178 + fontSize: ScreenUtil().setSp(34),
  179 + color: MyColours.color_2bb5b7),
  180 + textAlign: TextAlign.center,
  181 + ),
  182 + ),
  183 + )
  184 + ],
  185 + ),
  186 + )
  187 + ],
  188 + ),
  189 + );
  190 + return Center(child: UnconstrainedBox(
  191 + constrainedAxis: Axis.vertical,
  192 + child: ConstrainedBox(
  193 + constraints: BoxConstraints(maxWidth: ScreenUtil().setWidth(560)),
  194 + child: DefaultTextStyle(
  195 + style: TextStyle(decoration: TextDecoration.none),
  196 + child: widget,
  197 + )
  198 + ),
  199 + ),);
  200 + return AlertDialog(
  201 + content: widget,
  202 + contentPadding: EdgeInsets.zero,
  203 + );
  204 + });
  205 + }
  206 +
121 ///退出登录 207 ///退出登录
122 loginOut(BuildContext context, Map<String, String> params) async { 208 loginOut(BuildContext context, Map<String, String> params) async {
123 BaseResp<int> baseResp = await DioUtil() 209 BaseResp<int> baseResp = await DioUtil()
@@ -22,12 +22,14 @@ class MyColours { @@ -22,12 +22,14 @@ class MyColours {
22 static const Color color_828282=Color(0xff828282); 22 static const Color color_828282=Color(0xff828282);
23 static const Color color_a8e2e4=Color(0xffA8E2E4); 23 static const Color color_a8e2e4=Color(0xffA8E2E4);
24 static const Color color_63a6d1=Color(0xff63A6D1); 24 static const Color color_63a6d1=Color(0xff63A6D1);
  25 + static const Color color_666666=Color(0xff666666);
25 static const Color color_777777=Color(0xff777777); 26 static const Color color_777777=Color(0xff777777);
26 static const Color color_ea5750=Color(0xffEA5750); 27 static const Color color_ea5750=Color(0xffEA5750);
27 static const Color color_89c0b7=Color(0xff89C0B7); 28 static const Color color_89c0b7=Color(0xff89C0B7);
28 static const Color color_ededed=Color(0xffededed); 29 static const Color color_ededed=Color(0xffededed);
29 static const Color color_f7fdfd=Color(0xffF7FDFD); 30 static const Color color_f7fdfd=Color(0xffF7FDFD);
30 static const Color color_dbe3e3=Color(0xffdbe3e3); 31 static const Color color_dbe3e3=Color(0xffdbe3e3);
  32 + static const Color color_f3f3f3=Color(0xfff3f3f3);
31 static const Color color_f49a5e=Color(0xffF49A5E); 33 static const Color color_f49a5e=Color(0xffF49A5E);
32 static const Color color_ff0000=Color(0xffff0000); 34 static const Color color_ff0000=Color(0xffff0000);
33 static const Color color_000000=Color(0xff000000); 35 static const Color color_000000=Color(0xff000000);
@@ -3,11 +3,8 @@ import 'dart:convert'; @@ -3,11 +3,8 @@ import 'dart:convert';
3 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
4 import 'package:flutter_picker/flutter_picker.dart'; 4 import 'package:flutter_picker/flutter_picker.dart';
5 import 'package:flutter_screenutil/flutter_screenutil.dart'; 5 import 'package:flutter_screenutil/flutter_screenutil.dart';
6 -import 'package:one_key/models/message.dart';  
7 -import 'package:one_key/models/notebook.dart';  
8 import 'package:one_key/pages/message/message_dialog_item.dart'; 6 import 'package:one_key/pages/message/message_dialog_item.dart';
9 import 'package:one_key/provider/message_dialog_model.dart'; 7 import 'package:one_key/provider/message_dialog_model.dart';
10 -import 'package:one_key/provider/message_model.dart';  
11 import 'package:one_key/res/colors.dart'; 8 import 'package:one_key/res/colors.dart';
12 import 'package:one_key/utils/log_util.dart'; 9 import 'package:one_key/utils/log_util.dart';
13 import 'package:one_key/utils/navigator_util.dart'; 10 import 'package:one_key/utils/navigator_util.dart';
@@ -7,6 +7,7 @@ import 'package:fluttertoast/fluttertoast.dart'; @@ -7,6 +7,7 @@ import 'package:fluttertoast/fluttertoast.dart';
7 import 'package:flutter/services.dart'; 7 import 'package:flutter/services.dart';
8 import 'package:fluwx/fluwx.dart'; 8 import 'package:fluwx/fluwx.dart';
9 import 'package:one_key/utils/log_util.dart'; 9 import 'package:one_key/utils/log_util.dart';
  10 +import 'package:package_info/package_info.dart';
10 import 'package:url_launcher/url_launcher.dart'; 11 import 'package:url_launcher/url_launcher.dart';
11 12
12 class Utils { 13 class Utils {
@@ -76,6 +77,23 @@ class Utils { @@ -76,6 +77,23 @@ class Utils {
76 } 77 }
77 } 78 }
78 79
  80 + //跳转拨打电话页面
  81 + static goHelp() async {
  82 + String url="https://support.qq.com/product/152856";
  83 + if(await canLaunch(url)){
  84 + await launch(url);
  85 + }else{
  86 + LogUtil.e("Could not launch $url");
  87 + }
  88 + }
  89 +
  90 + //获取应用版本昊
  91 + static Future<String> getCurrVersion() async {
  92 + PackageInfo packageInfo=await PackageInfo.fromPlatform();
  93 + String version=packageInfo.version;
  94 + return version;
  95 + }
  96 +
79 //比较两个日期是否同一天 97 //比较两个日期是否同一天
80 static isOneDay(DateTime one,DateTime two){ 98 static isOneDay(DateTime one,DateTime two){
81 if(one.year==two.year&&one.month==two.month&&one.day==two.day)return true; 99 if(one.year==two.year&&one.month==two.month&&one.day==two.day)return true;
  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  3 +import 'package:one_key/res/colors.dart';
  4 +import 'package:one_key/widgets/h_empty_view.dart';
  5 +
  6 +class MyItem extends StatefulWidget{
  7 +
  8 + final String title;
  9 + final String content;
  10 + final VoidCallback callback;
  11 +
  12 + const MyItem({Key key, this.title, this.content, this.callback}) : super(key: key);
  13 +
  14 + @override
  15 + State<StatefulWidget> createState() {
  16 + // TODO: implement createState
  17 + return new MyItemState();
  18 + }
  19 +}
  20 +
  21 +class MyItemState extends State<MyItem>{
  22 +
  23 + @override
  24 + Widget build(BuildContext context) {
  25 + // TODO: implement build
  26 + return GestureDetector(
  27 + onTap: widget.callback,
  28 + child: Container(
  29 + width: double.infinity,
  30 + height: ScreenUtil().setHeight(122),
  31 + color: MyColours.color_ffffff,
  32 + padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
  33 + alignment: Alignment.center,
  34 + child: Row(
  35 + children: <Widget>[
  36 + Text(widget.title,style: TextStyle(fontSize: ScreenUtil().setSp(30),color: MyColours.color_353535),),
  37 + Spacer(),
  38 + Text(widget.content,style: TextStyle(fontSize: ScreenUtil().setSp(28),color: MyColours.color_666666),),
  39 + HEmptyView(20),
  40 + Image.asset("assets/arr_right_gray.png",width: ScreenUtil().setWidth(14),height: ScreenUtil().setWidth(22),)
  41 + ],
  42 + ),
  43 + ),
  44 + );
  45 + }
  46 +
  47 +}
@@ -15,7 +15,7 @@ class RowMultiText extends StatelessWidget{ @@ -15,7 +15,7 @@ class RowMultiText extends StatelessWidget{
15 return Container( 15 return Container(
16 color: MyColours.color_ffffff, 16 color: MyColours.color_ffffff,
17 width: double.infinity, 17 width: double.infinity,
18 - height: ScreenUtil().setHeight(80), 18 + padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(25)),
19 alignment: Alignment.center, 19 alignment: Alignment.center,
20 child: Row( 20 child: Row(
21 crossAxisAlignment: CrossAxisAlignment.center, 21 crossAxisAlignment: CrossAxisAlignment.center,
@@ -28,7 +28,7 @@ class RowMultiText extends StatelessWidget{ @@ -28,7 +28,7 @@ class RowMultiText extends StatelessWidget{
28 child: Container( 28 child: Container(
29 alignment: Alignment.centerRight, 29 alignment: Alignment.centerRight,
30 margin: EdgeInsets.only(left: ScreenUtil().setWidth(20)), 30 margin: EdgeInsets.only(left: ScreenUtil().setWidth(20)),
31 - child: Text(content,style: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(30)),maxLines:1,overflow: TextOverflow.ellipsis,), 31 + child: Text(content,style: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(30)),softWrap: true,textAlign: TextAlign.right,),
32 ), 32 ),
33 ) 33 )
34 ], 34 ],
@@ -485,6 +485,13 @@ packages: @@ -485,6 +485,13 @@ packages:
485 url: "https://pub.flutter-io.cn" 485 url: "https://pub.flutter-io.cn"
486 source: hosted 486 source: hosted
487 version: "1.9.2" 487 version: "1.9.2"
  488 + package_info:
  489 + dependency: "direct main"
  490 + description:
  491 + name: package_info
  492 + url: "https://pub.flutter-io.cn"
  493 + source: hosted
  494 + version: "0.4.0+18"
488 package_resolver: 495 package_resolver:
489 dependency: transitive 496 dependency: transitive
490 description: 497 description:
@@ -75,6 +75,8 @@ dependencies: @@ -75,6 +75,8 @@ dependencies:
75 # fake_push: ^0.5.4 75 # fake_push: ^0.5.4
76 # 安装apk 76 # 安装apk
77 install_plugin: ^2.0.1 77 install_plugin: ^2.0.1
  78 +# 获取应用版本信息
  79 + package_info: ^0.4.0+18
78 80
79 dev_dependencies: 81 dev_dependencies:
80 flutter_test: 82 flutter_test:
@@ -134,6 +136,8 @@ flutter: @@ -134,6 +136,8 @@ flutter:
134 - assets/invication_back.png 136 - assets/invication_back.png
135 - assets/icon_exist.png 137 - assets/icon_exist.png
136 - assets/my_logo.png 138 - assets/my_logo.png
  139 + - assets/arr_right_gray.png
  140 + - assets/bg_error.png
137 141
138 # assets: 142 # assets:
139 # - images/a_dot_burr.jpeg 143 # - images/a_dot_burr.jpeg