Commit 7e8c6898c5cf14f3a7dd408cab884cf14042bc3b

Authored by wdn127929
1 parent 61b02798

分支2.1:上传经理资料和预定安排页UI调整---->上传图片组件化

@@ -16,6 +16,7 @@ import 'package:intl/date_symbol_data_local.dart'; @@ -16,6 +16,7 @@ import 'package:intl/date_symbol_data_local.dart';
16 import 'package:one_key/provider/notebook_detail_model.dart'; 16 import 'package:one_key/provider/notebook_detail_model.dart';
17 import 'package:one_key/provider/online_check_edit_provider.dart'; 17 import 'package:one_key/provider/online_check_edit_provider.dart';
18 import 'package:one_key/provider/tools.dart'; 18 import 'package:one_key/provider/tools.dart';
  19 +import 'package:one_key/provider/upload_img_provider.dart';
19 import 'package:one_key/utils/navigator_util.dart'; 20 import 'package:one_key/utils/navigator_util.dart';
20 import 'package:one_key/utils/utils.dart'; 21 import 'package:one_key/utils/utils.dart';
21 import 'package:provider/provider.dart'; 22 import 'package:provider/provider.dart';
@@ -65,6 +66,9 @@ Future<void> main() async { @@ -65,6 +66,9 @@ Future<void> main() async {
65 ChangeNotifierProvider<CouponProvider>( 66 ChangeNotifierProvider<CouponProvider>(
66 create: (_) => CouponProvider(), 67 create: (_) => CouponProvider(),
67 ), 68 ),
  69 + ChangeNotifierProvider<UploadImageProvider>(
  70 + create: (_) => UploadImageProvider(),
  71 + ),
68 ], 72 ],
69 child: MyApp(), 73 child: MyApp(),
70 )); 74 ));
1 import 'dart:convert'; 1 import 'dart:convert';
  2 +
2 import 'dart:io'; 3 import 'dart:io';
3 import 'dart:async'; 4 import 'dart:async';
4 5
@@ -10,6 +11,7 @@ import 'package:one_key/pages/online_check/photo_view_wiget.dart'; @@ -10,6 +11,7 @@ import 'package:one_key/pages/online_check/photo_view_wiget.dart';
10 import 'package:one_key/pages/online_check/progress.dart'; 11 import 'package:one_key/pages/online_check/progress.dart';
11 12
12 import 'package:one_key/provider/online_check_edit_provider.dart'; 13 import 'package:one_key/provider/online_check_edit_provider.dart';
  14 +import 'package:one_key/provider/upload_img_provider.dart';
13 import 'package:one_key/res/colors.dart'; 15 import 'package:one_key/res/colors.dart';
14 import 'package:one_key/utils/dialog_util.dart'; 16 import 'package:one_key/utils/dialog_util.dart';
15 import 'package:one_key/utils/misc.dart'; 17 import 'package:one_key/utils/misc.dart';
@@ -25,7 +27,6 @@ import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart'; @@ -25,7 +27,6 @@ import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart';
25 import './dispose.dart'; 27 import './dispose.dart';
26 import 'package:photo_manager/photo_manager.dart'; 28 import 'package:photo_manager/photo_manager.dart';
27 29
28 -final int MAX_IMAGE_NUMBER = 5;  
29 typedef void OnPickImageCallback( 30 typedef void OnPickImageCallback(
30 double maxWidth, double maxHeight, int quality); 31 double maxWidth, double maxHeight, int quality);
31 32
@@ -33,11 +34,13 @@ class ImgPickerWidget extends StatefulWidget { @@ -33,11 +34,13 @@ class ImgPickerWidget extends StatefulWidget {
33 final ScrollController scrollController; 34 final ScrollController scrollController;
34 final Color borderColor; 35 final Color borderColor;
35 final ValueChanged onChange; 36 final ValueChanged onChange;
  37 + final int maxImageNumber;
36 ImgPickerWidget( 38 ImgPickerWidget(
37 {Key key, 39 {Key key,
38 this.scrollController, 40 this.scrollController,
39 this.borderColor = Colors.blue, 41 this.borderColor = Colors.blue,
40 - this.onChange}) 42 + this.onChange,
  43 + this.maxImageNumber = 5})
41 : super(key: key); 44 : super(key: key);
42 45
43 @override 46 @override
@@ -46,7 +49,8 @@ class ImgPickerWidget extends StatefulWidget { @@ -46,7 +49,8 @@ class ImgPickerWidget extends StatefulWidget {
46 49
47 class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { 50 class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
48 final picker = ImagePicker(); 51 final picker = ImagePicker();
49 - OnlineCheckEditProvider _onlineCheckEditProvider; 52 + // OnlineCheckEditProvider _onlineCheckEditProvider;
  53 + UploadImageProvider _uploadImageProvider;
50 54
51 // 用户输入的文件名 55 // 用户输入的文件名
52 String key; 56 String key;
@@ -81,14 +85,14 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -81,14 +85,14 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
81 UploadImgModel imgModel = UploadImgModel(); 85 UploadImgModel imgModel = UploadImgModel();
82 imgModel.file = File(pickedFile.path); 86 imgModel.file = File(pickedFile.path);
83 imgModel.process = 0.01; 87 imgModel.process = 0.01;
84 - _onlineCheckEditProvider.imageList.add(imgModel); 88 + _uploadImageProvider.imageList.add(imgModel);
85 } else { 89 } else {
86 print('No image selected.'); 90 print('No image selected.');
87 } 91 }
88 }); 92 });
89 if (pickedFile != null) { 93 if (pickedFile != null) {
90 startUpload(File(pickedFile.path), 94 startUpload(File(pickedFile.path),
91 - _onlineCheckEditProvider.imageList.length - 1, true); 95 + _uploadImageProvider.imageList.length - 1, true);
92 } 96 }
93 } 97 }
94 98
@@ -112,7 +116,8 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -112,7 +116,8 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
112 // the check box disable color 116 // the check box disable color
113 itemRadio: 0.88, 117 itemRadio: 0.88,
114 // the content item radio 118 // the content item radio
115 - maxSelected: MAX_IMAGE_NUMBER - _onlineCheckEditProvider.imageList.length, 119 + maxSelected:
  120 + widget.maxImageNumber - _uploadImageProvider.imageList.length,
116 // max picker image count 121 // max picker image count
117 // provider: I18nProvider.english, 122 // provider: I18nProvider.english,
118 provider: I18nProvider.chinese, 123 provider: I18nProvider.chinese,
@@ -146,10 +151,10 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -146,10 +151,10 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
146 UploadImgModel imgModel = UploadImgModel(); 151 UploadImgModel imgModel = UploadImgModel();
147 imgModel.file = File(file.absolute.path); 152 imgModel.file = File(file.absolute.path);
148 imgModel.process = 0.01; 153 imgModel.process = 0.01;
149 - _onlineCheckEditProvider.imageList.add(imgModel); 154 + _uploadImageProvider.imageList.add(imgModel);
150 }); 155 });
151 startUpload(File(file.absolute.path), 156 startUpload(File(file.absolute.path),
152 - _onlineCheckEditProvider.imageList.length - 1, false); 157 + _uploadImageProvider.imageList.length - 1, false);
153 } 158 }
154 } 159 }
155 } 160 }
@@ -166,8 +171,8 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -166,8 +171,8 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
166 // 添加整体进度监听 171 // 添加整体进度监听
167 putController.addProgressListener((percent) { 172 putController.addProgressListener((percent) {
168 print('${index}任务进度变化:进度:${percent.toStringAsFixed(4)}'); 173 print('${index}任务进度变化:进度:${percent.toStringAsFixed(4)}');
169 - _onlineCheckEditProvider.imageList[index].process = percent;  
170 - _onlineCheckEditProvider.notifyListeners(); 174 + _uploadImageProvider.imageList[index].process = percent;
  175 + _uploadImageProvider.notifyListeners();
171 }); 176 });
172 // 添加实际发送进度订阅 177 // 添加实际发送进度订阅
173 putController.addSendProgressListener((percent) { 178 putController.addSendProgressListener((percent) {
@@ -176,9 +181,9 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -176,9 +181,9 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
176 print('${index}实际发送变化:进度:${percent.toStringAsFixed(4)}'); 181 print('${index}实际发送变化:进度:${percent.toStringAsFixed(4)}');
177 }); 182 });
178 if (token == null || token == '') { 183 if (token == null || token == '') {
179 - await _onlineCheckEditProvider.getQiniuInfo(context, {}); 184 + await _uploadImageProvider.getQiniuInfo(context, {});
180 } 185 }
181 - var usedToken = _onlineCheckEditProvider.qiniuInfoSunModel.token; 186 + var usedToken = _uploadImageProvider.qiniuInfoSunModel.token;
182 if (usedToken == null || usedToken == '') { 187 if (usedToken == null || usedToken == '') {
183 print('token 不能为空'); 188 print('token 不能为空');
184 return; 189 return;
@@ -196,15 +201,15 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -196,15 +201,15 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
196 ..then((PutResponse response) { 201 ..then((PutResponse response) {
197 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}'); 202 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}');
198 print('------------------------'); 203 print('------------------------');
199 - String imgUrl = _onlineCheckEditProvider.qiniuInfoSunModel.domain + 204 + String imgUrl = _uploadImageProvider.qiniuInfoSunModel.domain +
200 '/' + 205 '/' +
201 response.rawData['key']; 206 response.rawData['key'];
202 - _onlineCheckEditProvider.imageList[index].process = 1;  
203 - _onlineCheckEditProvider.imageList[index].qiniuUrl = imgUrl; 207 + _uploadImageProvider.imageList[index].process = 1;
  208 + _uploadImageProvider.imageList[index].qiniuUrl = imgUrl;
204 // 取消当前任务 209 // 取消当前任务
205 putController.cancel(); 210 putController.cancel();
206 // _image 211 // _image
207 - _onlineCheckEditProvider.notifyListeners(); 212 + _uploadImageProvider.notifyListeners();
208 }) 213 })
209 ..catchError((dynamic error) { 214 ..catchError((dynamic error) {
210 if (error is StorageError) { 215 if (error is StorageError) {
@@ -405,59 +410,20 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -405,59 +410,20 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
405 410
406 @override 411 @override
407 Widget build(BuildContext context) { 412 Widget build(BuildContext context) {
408 - _onlineCheckEditProvider =  
409 - Provider.of<OnlineCheckEditProvider>(context, listen: true);  
410 - return Container(  
411 - width: double.infinity,  
412 - decoration: BoxDecoration(  
413 - color: Colors.white, borderRadius: BorderRadius.circular(10)),  
414 - child: Column(  
415 - crossAxisAlignment: CrossAxisAlignment.start,  
416 - children: <Widget>[  
417 - Container(  
418 - height: ScreenUtil().setWidth(53 * 2),  
419 - width: double.infinity,  
420 - decoration: BoxDecoration(  
421 - color: MyColours.color_FAFAFA,  
422 - borderRadius: BorderRadius.only(  
423 - topLeft: Radius.circular(10),  
424 - topRight: Radius.circular(10)),  
425 - ),  
426 - child: Padding(  
427 - padding: EdgeInsets.fromLTRB(  
428 - ScreenUtil().setWidth(20),  
429 - ScreenUtil().setWidth(36),  
430 - ScreenUtil().setWidth(20),  
431 - ScreenUtil().setWidth(26)),  
432 - child: Text(  
433 - '消费清单(选填)',  
434 - style: TextStyle(  
435 - fontSize: ScreenUtil().setSp(32),  
436 - color: MyColours.color_353535,  
437 - fontWeight: FontWeight.bold),  
438 - ),  
439 - )),  
440 - Padding(  
441 - padding: EdgeInsets.all(ScreenUtil().setWidth(40)),  
442 - child: _getGridImg(  
443 - _onlineCheckEditProvider.imageList.length < MAX_IMAGE_NUMBER  
444 - ? _onlineCheckEditProvider.imageList.length + 1  
445 - : _onlineCheckEditProvider.imageList.length,  
446 - context,  
447 - _onlineCheckEditProvider.imageList.length == MAX_IMAGE_NUMBER  
448 - ? true  
449 - : false),  
450 - )  
451 - // _getGridImg(1, context)  
452 - ],  
453 - ),  
454 - ); 413 + _uploadImageProvider =
  414 + Provider.of<UploadImageProvider>(context, listen: true);
  415 + return _getGridImg(
  416 + _uploadImageProvider.imageList.length < widget.maxImageNumber
  417 + ? _uploadImageProvider.imageList.length + 1
  418 + : _uploadImageProvider.imageList.length,
  419 + context,
  420 + _uploadImageProvider.imageList.length == widget.maxImageNumber
  421 + ? true
  422 + : false);
455 } 423 }
456 424
457 /// 九宫格 425 /// 九宫格
458 Widget _getGridImg(count, context, isLinjie) { 426 Widget _getGridImg(count, context, isLinjie) {
459 - OnlineCheckEditProvider _provider =  
460 - Provider.of<OnlineCheckEditProvider>(context, listen: false);  
461 return GridView.builder( 427 return GridView.builder(
462 controller: widget.scrollController, 428 controller: widget.scrollController,
463 // padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)), 429 // padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
@@ -475,9 +441,9 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -475,9 +441,9 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
475 childAspectRatio: 1.0), 441 childAspectRatio: 1.0),
476 itemBuilder: (BuildContext context, int index) { 442 itemBuilder: (BuildContext context, int index) {
477 //Widget Function(BuildContext context, int index) 443 //Widget Function(BuildContext context, int index)
478 - var linjie = MAX_IMAGE_NUMBER; 444 + var linjie = widget.maxImageNumber;
479 if (isLinjie) { 445 if (isLinjie) {
480 - linjie = MAX_IMAGE_NUMBER - 1; 446 + linjie = widget.maxImageNumber - 1;
481 } 447 }
482 if (index == count - 1 && index < linjie) { 448 if (index == count - 1 && index < linjie) {
483 return InkWell( 449 return InkWell(
@@ -513,25 +479,24 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -513,25 +479,24 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
513 )), 479 )),
514 ); 480 );
515 } 481 }
516 - return _provider.imageList.length < 1 482 + return _uploadImageProvider.imageList.length < 1
517 ? Text('') 483 ? Text('')
518 : InkWell( 484 : InkWell(
519 onTap: () { 485 onTap: () {
520 - if (_onlineCheckEditProvider.imageList[index].process ==  
521 - 1) {  
522 - _onlineCheckEditProvider.imageQiniuUrlList = [];  
523 - if (_onlineCheckEditProvider.imageList[index].qiniuUrl != 486 + if (_uploadImageProvider.imageList[index].process == 1) {
  487 + _uploadImageProvider.imageQiniuUrlList = [];
  488 + if (_uploadImageProvider.imageList[index].qiniuUrl !=
524 null) { 489 null) {
525 for (int i = 0; 490 for (int i = 0;
526 - i < _onlineCheckEditProvider.imageList.length; 491 + i < _uploadImageProvider.imageList.length;
527 i++) { 492 i++) {
528 - _onlineCheckEditProvider.imageQiniuUrlList.add(  
529 - _onlineCheckEditProvider.imageList[i].qiniuUrl); 493 + _uploadImageProvider.imageQiniuUrlList
  494 + .add(_uploadImageProvider.imageList[i].qiniuUrl);
530 } 495 }
531 496
532 ///没有上传完成的不可以点击 497 ///没有上传完成的不可以点击
533 - _showPhotoView(  
534 - context, index, _provider.imageQiniuUrlList); 498 + _showPhotoView(context, index,
  499 + _uploadImageProvider.imageQiniuUrlList);
535 } 500 }
536 } 501 }
537 }, 502 },
@@ -541,13 +506,15 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -541,13 +506,15 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
541 alignment: Alignment.topRight, 506 alignment: Alignment.topRight,
542 children: [ 507 children: [
543 Image.file( 508 Image.file(
544 - _provider.imageList[index].file, 509 + _uploadImageProvider.imageList[index].file,
545 fit: BoxFit.cover, 510 fit: BoxFit.cover,
546 width: ScreenUtil().setWidth(100 * 2), 511 width: ScreenUtil().setWidth(100 * 2),
547 height: ScreenUtil().setWidth(100 * 2), 512 height: ScreenUtil().setWidth(100 * 2),
548 ), 513 ),
549 Offstage( 514 Offstage(
550 - offstage: _provider.imageList[index].process < 1, 515 + offstage:
  516 + _uploadImageProvider.imageList[index].process <
  517 + 1,
551 child: GestureDetector( 518 child: GestureDetector(
552 child: Image.asset( 519 child: Image.asset(
553 Utils.getImgPath("delete"), 520 Utils.getImgPath("delete"),
@@ -557,12 +524,16 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -557,12 +524,16 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
557 onTap: () { 524 onTap: () {
558 //点击删除按钮 525 //点击删除按钮
559 setState(() { 526 setState(() {
560 - _provider.imageList.removeWhere((element) =>  
561 - element == _provider.imageList[index]);  
562 - _provider.imageQiniuUrlList.removeWhere( 527 + _uploadImageProvider.imageList.removeWhere(
563 (element) => 528 (element) =>
564 element == 529 element ==
565 - _provider.imageQiniuUrlList[index]); 530 + _uploadImageProvider
  531 + .imageList[index]);
  532 + _uploadImageProvider.imageQiniuUrlList
  533 + .removeWhere((element) =>
  534 + element ==
  535 + _uploadImageProvider
  536 + .imageQiniuUrlList[index]);
566 }); 537 });
567 }, 538 },
568 ), 539 ),
@@ -570,8 +541,10 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> { @@ -570,8 +541,10 @@ class _ImgPickerWidgetState extends DisposableState<ImgPickerWidget> {
570 ], 541 ],
571 ), 542 ),
572 Offstage( 543 Offstage(
573 - offstage: _provider.imageList[index].process == 1,  
574 - child: Progress(_provider.imageList[index].process), 544 + offstage:
  545 + _uploadImageProvider.imageList[index].process == 1,
  546 + child: Progress(
  547 + _uploadImageProvider.imageList[index].process),
575 ) 548 )
576 ], 549 ],
577 )); 550 ));
@@ -4,6 +4,7 @@ import 'package:one_key/pages/online_check/photo_view_wiget.dart'; @@ -4,6 +4,7 @@ import 'package:one_key/pages/online_check/photo_view_wiget.dart';
4 import 'package:one_key/provider/message_dialog_model.dart'; 4 import 'package:one_key/provider/message_dialog_model.dart';
5 import 'package:one_key/provider/online_check_edit_provider.dart'; 5 import 'package:one_key/provider/online_check_edit_provider.dart';
6 import 'package:one_key/provider/order_food_provider.dart'; 6 import 'package:one_key/provider/order_food_provider.dart';
  7 +import 'package:one_key/provider/upload_img_provider.dart';
7 import 'package:one_key/provider/user_model.dart'; 8 import 'package:one_key/provider/user_model.dart';
8 import 'package:one_key/res/colors.dart'; 9 import 'package:one_key/res/colors.dart';
9 import 'package:one_key/utils/event_bus.dart'; 10 import 'package:one_key/utils/event_bus.dart';
@@ -26,6 +27,7 @@ class OnlineCheckDetailPage extends StatefulWidget { @@ -26,6 +27,7 @@ class OnlineCheckDetailPage extends StatefulWidget {
26 class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> { 27 class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> {
27 OnlineCheckEditProvider _onlineCheckEditProvider; 28 OnlineCheckEditProvider _onlineCheckEditProvider;
28 OrderFoodProvider _orderFoodProvider; 29 OrderFoodProvider _orderFoodProvider;
  30 + UploadImageProvider _uploadImageProvider;
29 bool arrowStatus = true; // true合住 false展开 31 bool arrowStatus = true; // true合住 false展开
30 32
31 @override 33 @override
@@ -65,7 +67,7 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> { @@ -65,7 +67,7 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> {
65 ///获取七牛云token 67 ///获取七牛云token
66 /// 68 ///
67 _getQiniuInfo() async { 69 _getQiniuInfo() async {
68 - await _onlineCheckEditProvider.getQiniuInfo(context, {}); 70 + await _uploadImageProvider.getQiniuInfo(context, {});
69 } 71 }
70 72
71 ///接口获取桌位信息 73 ///接口获取桌位信息
@@ -562,6 +564,8 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> { @@ -562,6 +564,8 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> {
562 _onlineCheckEditProvider = 564 _onlineCheckEditProvider =
563 Provider.of<OnlineCheckEditProvider>(context, listen: true); 565 Provider.of<OnlineCheckEditProvider>(context, listen: true);
564 _orderFoodProvider = Provider.of<OrderFoodProvider>(context, listen: true); 566 _orderFoodProvider = Provider.of<OrderFoodProvider>(context, listen: true);
  567 + _uploadImageProvider =
  568 + Provider.of<UploadImageProvider>(context, listen: true);
565 return Scaffold( 569 return Scaffold(
566 backgroundColor: MyColours.color_f5f5f5, 570 backgroundColor: MyColours.color_f5f5f5,
567 appBar: SystemAppBar( 571 appBar: SystemAppBar(
@@ -7,6 +7,7 @@ import 'package:one_key/provider/message_dialog_model.dart'; @@ -7,6 +7,7 @@ import 'package:one_key/provider/message_dialog_model.dart';
7 import 'package:one_key/provider/notebook_detail_model.dart'; 7 import 'package:one_key/provider/notebook_detail_model.dart';
8 import 'package:one_key/provider/online_check_edit_provider.dart'; 8 import 'package:one_key/provider/online_check_edit_provider.dart';
9 import 'package:one_key/provider/order_food_provider.dart'; 9 import 'package:one_key/provider/order_food_provider.dart';
  10 +import 'package:one_key/provider/upload_img_provider.dart';
10 import 'package:one_key/provider/user_model.dart'; 11 import 'package:one_key/provider/user_model.dart';
11 import 'package:one_key/res/colors.dart'; 12 import 'package:one_key/res/colors.dart';
12 import 'package:one_key/utils/dialog_util.dart'; 13 import 'package:one_key/utils/dialog_util.dart';
@@ -37,6 +38,7 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -37,6 +38,7 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
37 FocusNode _focusNode = FocusNode(); 38 FocusNode _focusNode = FocusNode();
38 OnlineCheckEditProvider _onlineCheckEditProvider; 39 OnlineCheckEditProvider _onlineCheckEditProvider;
39 OrderFoodProvider _orderFoodProvider; 40 OrderFoodProvider _orderFoodProvider;
  41 + UploadImageProvider _uploadImageProvider;
40 int btnState = -1; 42 int btnState = -1;
41 bool arrowStatus = true; // true合住 false展开 43 bool arrowStatus = true; // true合住 false展开
42 NotebookDetailModel detailModel; 44 NotebookDetailModel detailModel;
@@ -65,8 +67,8 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -65,8 +67,8 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
65 @override 67 @override
66 void dispose() { 68 void dispose() {
67 _focusNode.unfocus(); 69 _focusNode.unfocus();
68 - _onlineCheckEditProvider.imageList = [];  
69 - _onlineCheckEditProvider.imageQiniuUrlList = []; 70 + _uploadImageProvider.imageList = [];
  71 + _uploadImageProvider.imageQiniuUrlList = [];
70 super.dispose(); 72 super.dispose();
71 } 73 }
72 74
@@ -119,15 +121,15 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -119,15 +121,15 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
119 .substring(1, _editingController.text.length) 121 .substring(1, _editingController.text.length)
120 .trim(); 122 .trim();
121 } 123 }
122 - for (int i = 0; i < _onlineCheckEditProvider.imageList.length; i++) {  
123 - _onlineCheckEditProvider.imageQiniuUrlList  
124 - .add(_onlineCheckEditProvider.imageList[i].qiniuUrl); 124 + for (int i = 0; i < _uploadImageProvider.imageList.length; i++) {
  125 + _uploadImageProvider.imageQiniuUrlList
  126 + .add(_uploadImageProvider.imageList[i].qiniuUrl);
125 } 127 }
126 UserModel userModel = Provider.of<UserModel>(context, listen: false); 128 UserModel userModel = Provider.of<UserModel>(context, listen: false);
127 Map<String, String> params = { 129 Map<String, String> params = {
128 "price": price, 130 "price": price,
129 "rid": widget.rid, 131 "rid": widget.rid,
130 - 'bill_list': json.encode(_onlineCheckEditProvider.imageQiniuUrlList) 132 + 'bill_list': json.encode(_uploadImageProvider.imageQiniuUrlList)
131 }; 133 };
132 print(params); 134 print(params);
133 //明天完成 桌位名称信息 135 //明天完成 桌位名称信息
@@ -146,7 +148,7 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -146,7 +148,7 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
146 ///获取七牛云token 148 ///获取七牛云token
147 /// 149 ///
148 _getQiniuInfo() async { 150 _getQiniuInfo() async {
149 - await _onlineCheckEditProvider.getQiniuInfo(context, {}); 151 + await _uploadImageProvider.getQiniuInfo(context, {});
150 } 152 }
151 153
152 ///顶部logo 154 ///顶部logo
@@ -498,6 +500,8 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -498,6 +500,8 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
498 _onlineCheckEditProvider = 500 _onlineCheckEditProvider =
499 Provider.of<OnlineCheckEditProvider>(context, listen: true); 501 Provider.of<OnlineCheckEditProvider>(context, listen: true);
500 _orderFoodProvider = Provider.of<OrderFoodProvider>(context, listen: true); 502 _orderFoodProvider = Provider.of<OrderFoodProvider>(context, listen: true);
  503 + _uploadImageProvider =
  504 + Provider.of<UploadImageProvider>(context, listen: true);
501 return Scaffold( 505 return Scaffold(
502 backgroundColor: MyColours.color_f5f5f5, 506 backgroundColor: MyColours.color_f5f5f5,
503 appBar: SystemAppBar( 507 appBar: SystemAppBar(
@@ -560,8 +564,56 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -560,8 +564,56 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
560 ), 564 ),
561 ), 565 ),
562 VEmptyView(20), 566 VEmptyView(20),
563 - ImgPickerWidget(  
564 - scrollController: _scrollController), 567 + Container(
  568 + width: double.infinity,
  569 + decoration: BoxDecoration(
  570 + color: Colors.white,
  571 + borderRadius:
  572 + BorderRadius.circular(10)),
  573 + child: Column(
  574 + crossAxisAlignment:
  575 + CrossAxisAlignment.start,
  576 + children: <Widget>[
  577 + Container(
  578 + height:
  579 + ScreenUtil().setWidth(53 * 2),
  580 + width: double.infinity,
  581 + decoration: BoxDecoration(
  582 + color: MyColours.color_FAFAFA,
  583 + borderRadius: BorderRadius.only(
  584 + topLeft: Radius.circular(10),
  585 + topRight:
  586 + Radius.circular(10)),
  587 + ),
  588 + child: Padding(
  589 + padding: EdgeInsets.fromLTRB(
  590 + ScreenUtil().setWidth(20),
  591 + ScreenUtil().setWidth(36),
  592 + ScreenUtil().setWidth(20),
  593 + ScreenUtil().setWidth(26)),
  594 + child: Text(
  595 + '消费清单(选填)',
  596 + style: TextStyle(
  597 + fontSize:
  598 + ScreenUtil().setSp(32),
  599 + color:
  600 + MyColours.color_353535,
  601 + fontWeight:
  602 + FontWeight.bold),
  603 + ),
  604 + )),
  605 + Padding(
  606 + padding: EdgeInsets.all(
  607 + ScreenUtil().setWidth(40)),
  608 + child: ImgPickerWidget(
  609 + scrollController:
  610 + _scrollController),
  611 + )
  612 + // _getGridImg(1, context)
  613 + ],
  614 + ),
  615 + ),
  616 +
565 VEmptyView(20), 617 VEmptyView(20),
566 _customInfoWidget() 618 _customInfoWidget()
567 ], 619 ],
@@ -12,34 +12,34 @@ import 'package:one_key/net/http_url.dart'; @@ -12,34 +12,34 @@ import 'package:one_key/net/http_url.dart';
12 import 'package:one_key/utils/utils.dart'; 12 import 'package:one_key/utils/utils.dart';
13 13
14 class OnlineCheckEditProvider extends ChangeNotifier { 14 class OnlineCheckEditProvider extends ChangeNotifier {
15 - List<UploadImgModel> imageList = []; //图片信息列表  
16 - List<String> imageQiniuUrlList = []; //七牛云地址列表  
17 - QiniuInfoSunModel qiniuInfoSunModel; 15 + // List<UploadImgModel> imageList = []; //图片信息列表
  16 + // List<String> imageQiniuUrlList = []; //七牛云地址列表
  17 + // QiniuInfoSunModel qiniuInfoSunModel;
18 OrderInfoSunModel orderInfoSunModel; 18 OrderInfoSunModel orderInfoSunModel;
19 List<NewReserveListSunModel> reserveList = []; 19 List<NewReserveListSunModel> reserveList = [];
20 20
21 /// 获取七牛上传token信息 21 /// 获取七牛上传token信息
22 - Future<QiniuInfoSunModel> getQiniuInfo(  
23 - BuildContext context, Map<String, String> params,  
24 - {isShowLoading = true}) async {  
25 - BaseResp<Map<String, dynamic>> baseResp = await DioUtil()  
26 - .request<Map<String, dynamic>>(  
27 - context, Method.get, HttpUrl.get_qiniu_info,  
28 - data: params, showLoading: false)  
29 - .catchError((error) {});  
30 - if (baseResp.code == Constant.status_success) {  
31 - if (baseResp.data.isEmpty) {  
32 - } else {  
33 - //解析解析  
34 - qiniuInfoSunModel = QiniuInfoModel.fromJson(baseResp.responseData).data;  
35 - return qiniuInfoSunModel;  
36 - }  
37 - } else {  
38 - if (baseResp != null) {  
39 - Utils.showToast(baseResp.msg ?? "");  
40 - }  
41 - }  
42 - } 22 + // Future<QiniuInfoSunModel> getQiniuInfo(
  23 + // BuildContext context, Map<String, String> params,
  24 + // {isShowLoading = true}) async {
  25 + // BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
  26 + // .request<Map<String, dynamic>>(
  27 + // context, Method.get, HttpUrl.get_qiniu_info,
  28 + // data: params, showLoading: false)
  29 + // .catchError((error) {});
  30 + // if (baseResp.code == Constant.status_success) {
  31 + // if (baseResp.data.isEmpty) {
  32 + // } else {
  33 + // //解析解析
  34 + // qiniuInfoSunModel = QiniuInfoModel.fromJson(baseResp.responseData).data;
  35 + // return qiniuInfoSunModel;
  36 + // }
  37 + // } else {
  38 + // if (baseResp != null) {
  39 + // Utils.showToast(baseResp.msg ?? "");
  40 + // }
  41 + // }
  42 + // }
43 43
44 ///获取账单详情 44 ///获取账单详情
45 getOrderInfo(BuildContext context, Map<String, String> params, 45 getOrderInfo(BuildContext context, Map<String, String> params,
  1 +
  2 +import 'package:flutter/material.dart';
  3 +import 'package:one_key/constant/constant.dart';
  4 +import 'package:one_key/models/qiniu_info_model.dart';
  5 +import 'package:one_key/models/upload_img_model.dart';
  6 +import 'package:one_key/net/base_resp.dart';
  7 +import 'package:one_key/net/dio_util.dart';
  8 +import 'package:one_key/net/http_url.dart';
  9 +import 'package:one_key/utils/utils.dart';
  10 +
  11 +class UploadImageProvider extends ChangeNotifier {
  12 + List<UploadImgModel> imageList = []; //图片信息列表
  13 + List<String> imageQiniuUrlList = []; //七牛云地址列表
  14 + QiniuInfoSunModel qiniuInfoSunModel;
  15 +
  16 +
  17 + /// 获取七牛上传token信息
  18 + Future<QiniuInfoSunModel> getQiniuInfo(
  19 + BuildContext context, Map<String, String> params,
  20 + {isShowLoading = true}) async {
  21 + BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
  22 + .request<Map<String, dynamic>>(
  23 + context, Method.get, HttpUrl.get_qiniu_info,
  24 + data: params, showLoading: false)
  25 + .catchError((error) {});
  26 + if (baseResp.code == Constant.status_success) {
  27 + if (baseResp.data.isEmpty) {
  28 + } else {
  29 + //解析解析
  30 + qiniuInfoSunModel = QiniuInfoModel.fromJson(baseResp.responseData).data;
  31 + return qiniuInfoSunModel;
  32 + }
  33 + } else {
  34 + if (baseResp != null) {
  35 + Utils.showToast(baseResp.msg ?? "");
  36 + }
  37 + }
  38 + }
  39 +
  40 +}