Commit 213320f4d8859c41c424c4d68e22bec3b9d650bb

Authored by wdn127929
1 parent f73c7b19

更新dio最新版本

@@ -12,6 +12,7 @@ import 'package:fluwx/fluwx.dart'; @@ -12,6 +12,7 @@ import 'package:fluwx/fluwx.dart';
12 import 'package:one_key/pages/detail/handle_online_page.dart'; 12 import 'package:one_key/pages/detail/handle_online_page.dart';
13 import 'package:one_key/provider/message_dialog_model.dart'; 13 import 'package:one_key/provider/message_dialog_model.dart';
14 import 'package:intl/date_symbol_data_local.dart'; 14 import 'package:intl/date_symbol_data_local.dart';
  15 +import 'package:one_key/provider/online_check_edit_provider.dart';
15 import 'package:one_key/provider/tools.dart'; 16 import 'package:one_key/provider/tools.dart';
16 import 'package:one_key/utils/navigator_util.dart'; 17 import 'package:one_key/utils/navigator_util.dart';
17 import 'package:one_key/utils/utils.dart'; 18 import 'package:one_key/utils/utils.dart';
@@ -49,6 +50,9 @@ Future<void> main() async { @@ -49,6 +50,9 @@ Future<void> main() async {
49 ChangeNotifierProvider<MessageDialogModel>( 50 ChangeNotifierProvider<MessageDialogModel>(
50 create: (_) => MessageDialogModel()..init(), 51 create: (_) => MessageDialogModel()..init(),
51 ), 52 ),
  53 + ChangeNotifierProvider<OnlineCheckEditProvider>(
  54 + create: (_) => OnlineCheckEditProvider(),
  55 + ),
52 ], 56 ],
53 child: MyApp(), 57 child: MyApp(),
54 )); 58 ));
@@ -95,7 +99,7 @@ class MyAppState extends State<MyApp> { @@ -95,7 +99,7 @@ class MyAppState extends State<MyApp> {
95 //初始化dio 99 //初始化dio
96 initDio() { 100 initDio() {
97 DioUtil.openDebug(); 101 DioUtil.openDebug();
98 - Options options = DioUtil.getDefOptions(); 102 + BaseOptions options = DioUtil.getDefOptions();
99 options.baseUrl = HttpUrl.server_address; 103 options.baseUrl = HttpUrl.server_address;
100 HttpConfig config = new HttpConfig( 104 HttpConfig config = new HttpConfig(
101 options: options, status: "ret", code: "ret", msg: "msg", data: "data"); 105 options: options, status: "ret", code: "ret", msg: "msg", data: "data");
@@ -2,6 +2,8 @@ import 'dart:convert'; @@ -2,6 +2,8 @@ import 'dart:convert';
2 import 'dart:io'; 2 import 'dart:io';
3 3
4 import 'package:dio/dio.dart'; 4 import 'package:dio/dio.dart';
  5 +import 'package:dio/dio.dart';
  6 +import 'package:dio/dio.dart';
5 import 'package:flutter/material.dart'; 7 import 'package:flutter/material.dart';
6 import 'package:one_key/constant/error.dart'; 8 import 'package:one_key/constant/error.dart';
7 import 'package:one_key/utils/utils.dart'; 9 import 'package:one_key/utils/utils.dart';
@@ -53,8 +55,10 @@ class HttpConfig { @@ -53,8 +55,10 @@ class HttpConfig {
53 /// BaseResp [T data]字段 key, 默认:data. 55 /// BaseResp [T data]字段 key, 默认:data.
54 String data; 56 String data;
55 57
  58 + // /// Options.
  59 + // Options options;
56 /// Options. 60 /// Options.
57 - Options options; 61 + BaseOptions options;
58 62
59 /// 详细使用请查看dio官网 https://github.com/flutterchina/dio/blob/flutter/README-ZH.md#Https证书校验. 63 /// 详细使用请查看dio官网 https://github.com/flutterchina/dio/blob/flutter/README-ZH.md#Https证书校验.
60 /// PEM证书内容. 64 /// PEM证书内容.
@@ -89,7 +93,8 @@ class DioUtil { @@ -89,7 +93,8 @@ class DioUtil {
89 String _dataKey = "data"; 93 String _dataKey = "data";
90 94
91 /// Options. 95 /// Options.
92 - Options _options = getDefOptions(); 96 + // Options _options = getDefOptions();
  97 + BaseOptions _options = getDefOptions();
93 98
94 /// PEM证书内容. 99 /// PEM证书内容.
95 String _pem; 100 String _pem;
@@ -126,7 +131,7 @@ class DioUtil { @@ -126,7 +131,7 @@ class DioUtil {
126 _dio.options.headers.addAll(_headers); 131 _dio.options.headers.addAll(_headers);
127 } 132 }
128 133
129 - /// set Config. 134 + // / set Config.
130 void setConfig(HttpConfig config) { 135 void setConfig(HttpConfig config) {
131 _statusKey = config.status ?? _statusKey; 136 _statusKey = config.status ?? _statusKey;
132 _codeKey = config.code ?? _codeKey; 137 _codeKey = config.code ?? _codeKey;
@@ -136,27 +141,27 @@ class DioUtil { @@ -136,27 +141,27 @@ class DioUtil {
136 _pem = config.pem ?? _pem; 141 _pem = config.pem ?? _pem;
137 if (_dio != null) { 142 if (_dio != null) {
138 _dio.options = _options; 143 _dio.options = _options;
139 - if (_pem != null) {  
140 - _dio.onHttpClientCreate = (HttpClient client) {  
141 - client.badCertificateCallback =  
142 - (X509Certificate cert, String host, int port) {  
143 - if (cert.pem == _pem) {  
144 - // 证书一致,则放行  
145 - return true;  
146 - }  
147 - return false;  
148 - };  
149 - };  
150 - }  
151 - if (_pKCSPath != null) {  
152 - _dio.onHttpClientCreate = (HttpClient client) {  
153 - SecurityContext sc = new SecurityContext();  
154 - //file为证书路径  
155 - sc.setTrustedCertificates(_pKCSPath, password: _pKCSPwd);  
156 - HttpClient httpClient = new HttpClient(context: sc);  
157 - return httpClient;  
158 - };  
159 - } 144 + // if (_pem != null) {
  145 + // _dio.onHttpClientCreate = (HttpClient client) {
  146 + // client.badCertificateCallback =
  147 + // (X509Certificate cert, String host, int port) {
  148 + // if (cert.pem == _pem) {
  149 + // // 证书一致,则放行
  150 + // return true;
  151 + // }
  152 + // return false;
  153 + // };
  154 + // };
  155 + // }
  156 + // if (_pKCSPath != null) {
  157 + // _dio.onHttpClientCreate = (HttpClient client) {
  158 + // SecurityContext sc = new SecurityContext();
  159 + // //file为证书路径
  160 + // sc.setTrustedCertificates(_pKCSPath, password: _pKCSPwd);
  161 + // HttpClient httpClient = new HttpClient(context: sc);
  162 + // return httpClient;
  163 + // };
  164 + // }
160 } 165 }
161 } 166 }
162 167
@@ -222,7 +227,7 @@ class DioUtil { @@ -222,7 +227,7 @@ class DioUtil {
222 Loading.hideLoading(context); 227 Loading.hideLoading(context);
223 return new Future.error(new DioError( 228 return new Future.error(new DioError(
224 response: response, 229 response: response,
225 - message: "data parsing exception...", 230 + error: "data parsing exception...",
226 type: DioErrorType.RESPONSE, 231 type: DioErrorType.RESPONSE,
227 )); 232 ));
228 } 233 }
@@ -230,7 +235,7 @@ class DioUtil { @@ -230,7 +235,7 @@ class DioUtil {
230 Loading.hideLoading(context); 235 Loading.hideLoading(context);
231 return new Future.error(new DioError( 236 return new Future.error(new DioError(
232 response: response, 237 response: response,
233 - message: "statusCode: $response.statusCode, service error", 238 + error: "statusCode: $response.statusCode, service error",
234 type: DioErrorType.RESPONSE, 239 type: DioErrorType.RESPONSE,
235 )); 240 ));
236 } on DioError catch (error) { 241 } on DioError catch (error) {
@@ -290,14 +295,14 @@ class DioUtil { @@ -290,14 +295,14 @@ class DioUtil {
290 } catch (e) { 295 } catch (e) {
291 return new Future.error(new DioError( 296 return new Future.error(new DioError(
292 response: response, 297 response: response,
293 - message: "data parsing exception...", 298 + error: "data parsing exception...",
294 type: DioErrorType.RESPONSE, 299 type: DioErrorType.RESPONSE,
295 )); 300 ));
296 } 301 }
297 } 302 }
298 return new Future.error(new DioError( 303 return new Future.error(new DioError(
299 response: response, 304 response: response,
300 - message: "statusCode: $response.statusCode, service error", 305 + error: "statusCode: $response.statusCode, service error",
301 type: DioErrorType.RESPONSE, 306 type: DioErrorType.RESPONSE,
302 )); 307 ));
303 } 308 }
@@ -309,13 +314,13 @@ class DioUtil { @@ -309,13 +314,13 @@ class DioUtil {
309 Future<Response> download( 314 Future<Response> download(
310 String urlPath, 315 String urlPath,
311 savePath, { 316 savePath, {
312 - OnDownloadProgress onProgress, 317 + ProgressCallback onProgress,
313 CancelToken cancelToken, 318 CancelToken cancelToken,
314 data, 319 data,
315 Options options, 320 Options options,
316 }) { 321 }) {
317 return _dio.download(urlPath, savePath, 322 return _dio.download(urlPath, savePath,
318 - onProgress: onProgress, 323 + onReceiveProgress: onProgress,
319 cancelToken: cancelToken, 324 cancelToken: cancelToken,
320 data: data, 325 data: data,
321 options: options); 326 options: options);
@@ -341,14 +346,14 @@ class DioUtil { @@ -341,14 +346,14 @@ class DioUtil {
341 } 346 }
342 347
343 /// merge Option. 348 /// merge Option.
344 - void _mergeOption(Options opt) { 349 + void _mergeOption(BaseOptions opt) {
345 _options.method = opt.method ?? _options.method; 350 _options.method = opt.method ?? _options.method;
346 _options.headers = (new Map.from(_options.headers))..addAll(opt.headers); 351 _options.headers = (new Map.from(_options.headers))..addAll(opt.headers);
347 _options.baseUrl = opt.baseUrl ?? _options.baseUrl; 352 _options.baseUrl = opt.baseUrl ?? _options.baseUrl;
348 _options.connectTimeout = opt.connectTimeout ?? _options.connectTimeout; 353 _options.connectTimeout = opt.connectTimeout ?? _options.connectTimeout;
349 _options.receiveTimeout = opt.receiveTimeout ?? _options.receiveTimeout; 354 _options.receiveTimeout = opt.receiveTimeout ?? _options.receiveTimeout;
350 _options.responseType = opt.responseType ?? _options.responseType; 355 _options.responseType = opt.responseType ?? _options.responseType;
351 - _options.data = opt.data ?? _options.data; 356 + // _options.data = opt.data ?? _options.data;
352 _options.extra = (new Map.from(_options.extra))..addAll(opt.extra); 357 _options.extra = (new Map.from(_options.extra))..addAll(opt.extra);
353 _options.contentType = opt.contentType ?? _options.contentType; 358 _options.contentType = opt.contentType ?? _options.contentType;
354 _options.validateStatus = opt.validateStatus ?? _options.validateStatus; 359 _options.validateStatus = opt.validateStatus ?? _options.validateStatus;
@@ -374,13 +379,13 @@ class DioUtil { @@ -374,13 +379,13 @@ class DioUtil {
374 } 379 }
375 380
376 /// get Options Str. 381 /// get Options Str.
377 - String _getOptionsStr(Options request) { 382 + String _getOptionsStr(path) {
378 return "method: " + 383 return "method: " +
379 - request.method + 384 + _dio.options.method +
380 " baseUrl: " + 385 " baseUrl: " +
381 - request.baseUrl + 386 + _dio.options.baseUrl +
382 " path: " + 387 " path: " +
383 - request.path; 388 + path;
384 } 389 }
385 390
386 /// print Data Str. 391 /// print Data Str.
@@ -403,17 +408,16 @@ class DioUtil { @@ -403,17 +408,16 @@ class DioUtil {
403 } 408 }
404 409
405 /// create new dio. 410 /// create new dio.
406 - static Dio createNewDio([Options options]) { 411 + static Dio createNewDio([BaseOptions options]) {
407 options = options ?? getDefOptions(); 412 options = options ?? getDefOptions();
408 Dio dio = new Dio(options); 413 Dio dio = new Dio(options);
409 return dio; 414 return dio;
410 } 415 }
411 416
412 /// get Def Options. 417 /// get Def Options.
413 - static Options getDefOptions() {  
414 - Options options = new Options();  
415 - options.contentType =  
416 - ContentType.parse("application/x-www-form-urlencoded"); 418 + static BaseOptions getDefOptions() {
  419 + BaseOptions options = new BaseOptions();
  420 + options.contentType = 'application/json; charset=utf-8';
417 options.connectTimeout = 1000 * 10; //默认10s 421 options.connectTimeout = 1000 * 10; //默认10s
418 options.receiveTimeout = 1000 * 10; //默认10s 422 options.receiveTimeout = 1000 * 10; //默认10s
419 return options; 423 return options;
@@ -57,6 +57,8 @@ class MessageItem extends StatelessWidget { @@ -57,6 +57,8 @@ class MessageItem extends StatelessWidget {
57 context, message.rid.toString()); 57 context, message.rid.toString());
58 } else if (message.message_type == "12") { 58 } else if (message.message_type == "12") {
59 //在线买单消息查看 59 //在线买单消息查看
  60 + NavigatorUtil.goOnlineCheckEditPage(context,
  61 + rid: '${message.rid}');
60 } 62 }
61 } 63 }
62 }, 64 },
@@ -189,8 +191,10 @@ class MessageItem extends StatelessWidget { @@ -189,8 +191,10 @@ class MessageItem extends StatelessWidget {
189 await messageDialogModel.setMessageStatus( 191 await messageDialogModel.setMessageStatus(
190 context, params); 192 context, params);
191 bus.emit("refresh_untreated_num"); //刷新未读消息数目 193 bus.emit("refresh_untreated_num"); //刷新未读消息数目
192 - } else if (message.message_type == "12") { 194 + } else if ('${message.message_type}' == "12") {
193 //在线买单消息 去处理 跳转在线买单处理页面 195 //在线买单消息 去处理 跳转在线买单处理页面
  196 + NavigatorUtil.goOnlineCheckEditPage(context,
  197 + rid: '${message.rid}');
194 } 198 }
195 }, 199 },
196 ), 200 ),
  1 +import 'dart:io';
  2 +
  3 +import 'package:flutter/material.dart';
  4 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  5 +import 'package:image_picker/image_picker.dart';
  6 +import 'package:one_key/provider/online_check_edit_provider.dart';
  7 +import 'package:one_key/res/colors.dart';
  8 +import 'package:one_key/utils/utils.dart';
  9 +import 'package:provider/provider.dart';
  10 +
  11 +final int MAX_IMAGE_NUMBER = 9;
  12 +
  13 +class ImgPickerWidget extends StatelessWidget {
  14 + final ScrollController scrollController;
  15 + final Color borderColor;
  16 + final ValueChanged onChange;
  17 + ImgPickerWidget(
  18 + {Key key,
  19 + this.scrollController,
  20 + this.borderColor = Colors.blue,
  21 + this.onChange})
  22 + : super(key: key);
  23 +
  24 + //相册 相机
  25 + Future _getFromPictureOrCamera(context, imageSource) async {
  26 + // File image = await ImagePicker.pickImage(
  27 + // source: imageSource,
  28 + // );
  29 + // if (image != null) {
  30 + // _provider.imageList.add(image);
  31 + // _provider.notifyListeners();
  32 + // }
  33 + // _provider.uploadTravelReleaseImg(image);
  34 + }
  35 +
  36 + Future _openModalBottomSheet(context) async {
  37 + final option = await showModalBottomSheet(
  38 + context: context,
  39 + builder: (BuildContext context) {
  40 + return Container(
  41 + height: 200.0,
  42 + child: Column(
  43 + children: <Widget>[
  44 + ListTile(
  45 + title: Text('拍照', textAlign: TextAlign.center),
  46 + onTap: () {
  47 + _getFromPictureOrCamera(context, ImageSource.camera);
  48 + Navigator.pop(context);
  49 + },
  50 + ),
  51 + ListTile(
  52 + title: Text('从相册选择', textAlign: TextAlign.center),
  53 + onTap: () {
  54 + _getFromPictureOrCamera(context, ImageSource.gallery);
  55 + Navigator.pop(context);
  56 + },
  57 + ),
  58 + ListTile(
  59 + title: Text('取消', textAlign: TextAlign.center),
  60 + onTap: () {
  61 + Navigator.pop(context, '取消');
  62 + },
  63 + ),
  64 + ],
  65 + ),
  66 + );
  67 + });
  68 + }
  69 +
  70 + _getGridImg(count, context, isLinjie) {
  71 + OnlineCheckEditProvider _provider =
  72 + Provider.of<OnlineCheckEditProvider>(context, listen: false);
  73 + return GridView.builder(
  74 + controller: scrollController,
  75 + // padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
  76 + shrinkWrap: true,
  77 + itemCount: count,
  78 + //SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
  79 + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  80 + //横轴元素个数
  81 + crossAxisCount: 3,
  82 + //纵轴间距
  83 + mainAxisSpacing: 20.0,
  84 + //横轴间距
  85 + crossAxisSpacing: 10.0,
  86 + //子组件宽高长度比例
  87 + childAspectRatio: 1.0),
  88 + itemBuilder: (BuildContext context, int index) {
  89 + //Widget Function(BuildContext context, int index)
  90 + var linjie = MAX_IMAGE_NUMBER;
  91 + if (isLinjie) {
  92 + linjie = MAX_IMAGE_NUMBER - 1;
  93 + }
  94 + if (index == count - 1 && index < linjie) {
  95 + return InkWell(
  96 + onTap: () {
  97 + _openModalBottomSheet(context);
  98 + },
  99 + child: Container(
  100 + width: ScreenUtil().setWidth(90 * 2),
  101 + height: ScreenUtil().setWidth(90 * 2),
  102 + decoration: BoxDecoration(
  103 + border: Border.all(
  104 + color: MyColours.color_E0E0E0,
  105 + width: ScreenUtil().setWidth(2)),
  106 + color: Theme.of(context).backgroundColor),
  107 + child: Column(
  108 + children: [
  109 + Image.asset(
  110 + Utils.getImgPath('add_image'),
  111 + width: ScreenUtil().setWidth(32),
  112 + height: ScreenUtil().setWidth(32),
  113 + )
  114 + ],
  115 + )),
  116 + );
  117 + }
  118 + return _provider.imageList.length < 1
  119 + ? Text('')
  120 + : Image.file(_provider.imageList[index], fit: BoxFit.cover);
  121 + });
  122 + }
  123 +
  124 + @override
  125 + Widget build(BuildContext context) {
  126 + OnlineCheckEditProvider _provider =
  127 + Provider.of<OnlineCheckEditProvider>(context, listen: true);
  128 + return Container(
  129 + width: double.infinity,
  130 + decoration: BoxDecoration(
  131 + color: Colors.white, borderRadius: BorderRadius.circular(10)),
  132 + child: Column(
  133 + crossAxisAlignment: CrossAxisAlignment.start,
  134 + children: <Widget>[
  135 + Container(
  136 + height: ScreenUtil().setWidth(53 * 2),
  137 + width: double.infinity,
  138 + decoration: BoxDecoration(
  139 + color: MyColours.color_FAFAFA,
  140 + borderRadius: BorderRadius.only(
  141 + topLeft: Radius.circular(10),
  142 + topRight: Radius.circular(10)),
  143 + ),
  144 + child: Padding(
  145 + padding: EdgeInsets.fromLTRB(
  146 + ScreenUtil().setWidth(20),
  147 + ScreenUtil().setWidth(36),
  148 + ScreenUtil().setWidth(20),
  149 + ScreenUtil().setWidth(26)),
  150 + child: Text(
  151 + '消费清单(选填)',
  152 + style: TextStyle(
  153 + fontSize: ScreenUtil().setSp(32),
  154 + color: MyColours.color_353535,
  155 + fontWeight: FontWeight.bold),
  156 + ),
  157 + )),
  158 + Padding(
  159 + padding: EdgeInsets.all(ScreenUtil().setWidth(40)),
  160 + child: _getGridImg(
  161 + _provider.imageList.length < MAX_IMAGE_NUMBER
  162 + ? _provider.imageList.length + 1
  163 + : _provider.imageList.length,
  164 + context,
  165 + _provider.imageList.length == MAX_IMAGE_NUMBER ? true : false),
  166 + )
  167 + // _getGridImg(1, context)
  168 + ],
  169 + ),
  170 + );
  171 + }
  172 +}
  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter_screenutil/screenutil.dart';
  3 +import 'package:one_key/pages/online_check/ImgPickerWidget.dart';
  4 +import 'package:one_key/res/colors.dart';
  5 +import 'package:one_key/utils/navigator_util.dart';
  6 +import 'package:one_key/utils/utils.dart';
  7 +import 'package:one_key/widgets/MyDivider.dart';
  8 +import 'package:one_key/widgets/h_empty_view.dart';
  9 +import 'package:one_key/widgets/system_app_bar.dart';
  10 +import 'package:one_key/widgets/v_empty_view.dart';
  11 +
  12 +class OnlineCheckEditPage extends StatefulWidget {
  13 + final bool fromNotify;
  14 + OnlineCheckEditPage({Key key, this.fromNotify = false}) : super(key: key);
  15 +
  16 + @override
  17 + _OnlineCheckEditPageState createState() => _OnlineCheckEditPageState();
  18 +}
  19 +
  20 +class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
  21 + ScrollController _scrollController = ScrollController();
  22 + TextEditingController _editingController = TextEditingController();
  23 + FocusNode _focusNode = FocusNode();
  24 +
  25 + @override
  26 + void initState() {
  27 + super.initState();
  28 + _focusNode.addListener(() {
  29 + if (_focusNode.hasFocus) {
  30 + //有焦点
  31 + _editingController.text = '¥';
  32 + } else {
  33 + //失去焦点
  34 + _editingController.text = '';
  35 + }
  36 + });
  37 + }
  38 +
  39 + ///顶部logo
  40 + Widget _getLogoWidget() {
  41 + return Column(
  42 + children: [
  43 + Image.asset(
  44 + Utils.getImgPath('check'),
  45 + width: ScreenUtil().setWidth(37 * 2),
  46 + height: ScreenUtil().setWidth(33 * 2),
  47 + ),
  48 + VEmptyView(12),
  49 + Container(
  50 + height: ScreenUtil().setWidth(44),
  51 + alignment: Alignment.center,
  52 + child: Text(
  53 + '顾客申请买单',
  54 + style: TextStyle(
  55 + fontSize: ScreenUtil().setSp(32),
  56 + color: MyColours.color_353535,
  57 + fontWeight: FontWeight.bold),
  58 + ),
  59 + )
  60 + ],
  61 + );
  62 + }
  63 +
  64 + ///桌位信息、应收金额
  65 + Widget _getTabAndMoneyInfoWidget() {
  66 + return Container(
  67 + decoration: BoxDecoration(
  68 + color: Colors.white,
  69 + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10))),
  70 + child: Column(
  71 + children: [
  72 + Container(
  73 + padding: EdgeInsets.symmetric(
  74 + horizontal: ScreenUtil().setWidth(40),
  75 + vertical: ScreenUtil().setWidth(36)),
  76 + child: Row(
  77 + children: [
  78 + Text(
  79 + '桌位信息',
  80 + style: TextStyle(
  81 + fontSize: ScreenUtil().setSp(32),
  82 + color: MyColours.color_707070),
  83 + ),
  84 + Spacer(),
  85 + Text(
  86 + '[包间]秦皇岛',
  87 + style: TextStyle(
  88 + fontSize: ScreenUtil().setSp(32),
  89 + color: MyColours.color_353535),
  90 + )
  91 + ],
  92 + ),
  93 + ),
  94 + Padding(
  95 + padding:
  96 + EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20)),
  97 + child: MyDivider(
  98 + double.infinity,
  99 + ScreenUtil().setWidth(2),
  100 + color: MyColours.color_EEEEEE,
  101 + ),
  102 + ),
  103 + Container(
  104 + padding: EdgeInsets.symmetric(
  105 + horizontal: ScreenUtil().setWidth(40),
  106 + vertical: ScreenUtil().setWidth(36)),
  107 + child: Row(
  108 + children: [
  109 + Text(
  110 + '应收金额',
  111 + style: TextStyle(
  112 + fontSize: ScreenUtil().setSp(32),
  113 + color: MyColours.color_707070),
  114 + ),
  115 + // Spacer(),
  116 + HEmptyView(40),
  117 + Expanded(
  118 + flex: 1,
  119 + child: TextField(
  120 + maxLines: 1,
  121 + textAlign: TextAlign.end,
  122 + //输入文本的样式
  123 + style: TextStyle(
  124 + fontSize: ScreenUtil().setSp(34),
  125 + color: MyColours.color_353535),
  126 + controller: _editingController,
  127 + focusNode: _focusNode,
  128 + // textAlignVertical: TextAlignVertical.top,
  129 + decoration: InputDecoration(
  130 + hintText: "点击填写金额",
  131 + hintStyle: TextStyle(
  132 + color: MyColours.color_9C9C9C,
  133 + fontSize: ScreenUtil().setSp(32),
  134 + ),
  135 + // contentPadding:
  136 + // EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
  137 + border: InputBorder.none,
  138 + ),
  139 + onChanged: (value) {
  140 + print(value);
  141 + // currentRemark = value;
  142 + // print();
  143 + },
  144 + onEditingComplete: () {
  145 + print('fff');
  146 + _editingController.text = '';
  147 + // _needNode.unfocus();
  148 + },
  149 + // keyboardType: TextInputType.number,
  150 + ))
  151 + ],
  152 + ),
  153 + ),
  154 + ],
  155 + ),
  156 + );
  157 + }
  158 +
  159 + ///消费清单
  160 + @override
  161 + Widget build(BuildContext context) {
  162 + return Scaffold(
  163 + backgroundColor: MyColours.color_f5f5f5,
  164 + appBar: SystemAppBar(
  165 + '提前买单',
  166 + onTap: () {
  167 + if (widget.fromNotify) {
  168 + NavigatorUtil.goHomePage(context, initialIndex: 0);
  169 + } else {
  170 + Navigator.of(context).pop();
  171 + }
  172 + },
  173 + ),
  174 + body: SingleChildScrollView(
  175 + controller: _scrollController,
  176 + child: Padding(
  177 + padding: EdgeInsets.symmetric(
  178 + horizontal: ScreenUtil().setWidth(20),
  179 + vertical: ScreenUtil().setWidth(40)),
  180 + child: Column(
  181 + crossAxisAlignment: CrossAxisAlignment.start,
  182 + children: [
  183 + //图标
  184 + _getLogoWidget(),
  185 + VEmptyView(40),
  186 + _getTabAndMoneyInfoWidget(),
  187 + VEmptyView(10),
  188 + // 备注信息
  189 + Container(
  190 + padding: EdgeInsets.symmetric(
  191 + horizontal: ScreenUtil().setWidth(20)),
  192 + child: Text(
  193 + '*贾森基德款式经典福克斯肌肤快速反击',
  194 + style: TextStyle(
  195 + fontSize: ScreenUtil().setSp(28),
  196 + color: MyColours.color_FD5656),
  197 + ),
  198 + ),
  199 + VEmptyView(20),
  200 + ImgPickerWidget()
  201 + ],
  202 + )),
  203 + ),
  204 + );
  205 + }
  206 +}
@@ -63,8 +63,8 @@ class ContactModel { @@ -63,8 +63,8 @@ class ContactModel {
63 data: params, 63 data: params,
64 options: Options( 64 options: Options(
65 method: Method.post, 65 method: Method.post,
66 - contentType:  
67 - ContentType.parse("application/x-www-form-urlencoded"))) 66 + // contentType: "application/x-www-form-urlencoded"
  67 + ))
68 .catchError((error) { 68 .catchError((error) {
69 print(error.toString()); 69 print(error.toString());
70 }); 70 });
  1 +import 'package:flutter/material.dart';
  2 +
  3 +class OnlineCheckEditProvider extends ChangeNotifier {
  4 + List imageList = []; //图片数组
  5 +}
@@ -52,4 +52,9 @@ class MyColours { @@ -52,4 +52,9 @@ class MyColours {
52 static const Color color_0A0A0A = Color(0xff0A0A0A); 52 static const Color color_0A0A0A = Color(0xff0A0A0A);
53 static const Color color_fa5151 = Color(0xfffa5151); 53 static const Color color_fa5151 = Color(0xfffa5151);
54 static const Color color_F0F0F0 = Color(0xffF0F0F0); 54 static const Color color_F0F0F0 = Color(0xffF0F0F0);
  55 + static const Color color_707070 = Color(0xff707070);
  56 + static const Color color_EEEEEE = Color(0xffEEEEEE);
  57 + static const Color color_9C9C9C = Color(0xff9C9C9C);
  58 + static const Color color_FD5656 = Color(0xffFD5656);
  59 + static const Color color_FAFAFA = Color(0xffFAFAFA);
55 } 60 }
@@ -16,6 +16,7 @@ import 'package:one_key/pages/message/message_order_menu.dart'; @@ -16,6 +16,7 @@ import 'package:one_key/pages/message/message_order_menu.dart';
16 import 'package:one_key/pages/my/book_time_set.dart'; 16 import 'package:one_key/pages/my/book_time_set.dart';
17 import 'package:one_key/pages/my/receive_orders_time_set.dart'; 17 import 'package:one_key/pages/my/receive_orders_time_set.dart';
18 import 'package:one_key/pages/my/remark_manager_page.dart'; 18 import 'package:one_key/pages/my/remark_manager_page.dart';
  19 +import 'package:one_key/pages/online_check/online_check_edit_page.dart';
19 import 'package:one_key/pages/sms/sms_page.dart'; 20 import 'package:one_key/pages/sms/sms_page.dart';
20 import 'package:one_key/pages/table/select_table_page.dart'; 21 import 'package:one_key/pages/table/select_table_page.dart';
21 import 'package:one_key/pages/webview/webview_page.dart'; 22 import 'package:one_key/pages/webview/webview_page.dart';
@@ -174,3 +175,13 @@ var handleHasOrderFoodHandler = new Handler( @@ -174,3 +175,13 @@ var handleHasOrderFoodHandler = new Handler(
174 create: (_) => OrderFoodProvider(), 175 create: (_) => OrderFoodProvider(),
175 child: MessageHasOrderFoodPage(rid: rid, fromNotify: fromNotify)); 176 child: MessageHasOrderFoodPage(rid: rid, fromNotify: fromNotify));
176 }); 177 });
  178 +
  179 +///提前买单编辑页面
  180 +var handleOnlineCheckEditHandler = new Handler(
  181 + handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  182 + // String rid = params["rid"].first;
  183 + bool fromNotify = FluroConvertUtils.string2bool(params["fromNotify"].first);
  184 + return ChangeNotifierProvider<OrderFoodProvider>(
  185 + create: (_) => OrderFoodProvider(),
  186 + child: OnlineCheckEditPage(fromNotify: fromNotify));
  187 +});
@@ -19,6 +19,7 @@ class Routes { @@ -19,6 +19,7 @@ class Routes {
19 static String receive_orders_time_set = "/receive_orders_time_set"; //接单时间管理 19 static String receive_orders_time_set = "/receive_orders_time_set"; //接单时间管理
20 static String remark_manager = "/remark_manager"; //常用备注管理 20 static String remark_manager = "/remark_manager"; //常用备注管理
21 static String has_order_food = "/has_order_food"; //已点菜品 21 static String has_order_food = "/has_order_food"; //已点菜品
  22 + static String online_check_edit = "/online_check_edit"; //提前买单
22 23
23 static void configureRoutes(Router router) { 24 static void configureRoutes(Router router) {
24 router.notFoundHandler = new Handler( 25 router.notFoundHandler = new Handler(
@@ -41,6 +42,6 @@ class Routes { @@ -41,6 +42,6 @@ class Routes {
41 handler: handleReceiveOrdersTimeSetHandler); 42 handler: handleReceiveOrdersTimeSetHandler);
42 router.define(remark_manager, handler: handleRemarkManagerHandler); 43 router.define(remark_manager, handler: handleRemarkManagerHandler);
43 router.define(has_order_food, handler: handleHasOrderFoodHandler); 44 router.define(has_order_food, handler: handleHasOrderFoodHandler);
44 - 45 + router.define(online_check_edit, handler: handleOnlineCheckEditHandler);
45 } 46 }
46 } 47 }
@@ -128,4 +128,11 @@ class NavigatorUtil { @@ -128,4 +128,11 @@ class NavigatorUtil {
128 context, "${Routes.has_order_food}?rid=${rid}&fromNotify=${fromNotify}", 128 context, "${Routes.has_order_food}?rid=${rid}&fromNotify=${fromNotify}",
129 replace: replace); 129 replace: replace);
130 } 130 }
  131 +
  132 + /// 提前买单编辑页面
  133 + static void goOnlineCheckEditPage(BuildContext context,
  134 + {String rid, fromNotify = false, replace = false}) {
  135 + _navigateTo(context, "${Routes.online_check_edit}?fromNotify=${fromNotify}",
  136 + replace: replace);
  137 + }
131 } 138 }
@@ -62,7 +62,7 @@ class Utils { @@ -62,7 +62,7 @@ class Utils {
62 // 改变状态栏背景颜色,默认改变为透明 62 // 改变状态栏背景颜色,默认改变为透明
63 static changeStatusColor({Color color: Colors.white}) async { 63 static changeStatusColor({Color color: Colors.white}) async {
64 try { 64 try {
65 - await FlutterStatusbarcolor.setStatusBarColor(color, animate: true); 65 + await FlutterStatusbarcolor.setStatusBarColor(color, animate: false);
66 if (useWhiteForeground(color)) { 66 if (useWhiteForeground(color)) {
67 FlutterStatusbarcolor.setStatusBarWhiteForeground(true); 67 FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
68 } else { 68 } else {
@@ -8,6 +8,13 @@ packages: @@ -8,6 +8,13 @@ packages:
8 url: "https://pub.flutter-io.cn" 8 url: "https://pub.flutter-io.cn"
9 source: hosted 9 source: hosted
10 version: "0.36.4" 10 version: "0.36.4"
  11 + archive:
  12 + dependency: transitive
  13 + description:
  14 + name: archive
  15 + url: "https://pub.flutter-io.cn"
  16 + source: hosted
  17 + version: "2.0.13"
11 args: 18 args:
12 dependency: transitive 19 dependency: transitive
13 description: 20 description:
@@ -161,14 +168,14 @@ packages: @@ -161,14 +168,14 @@ packages:
161 name: connectivity_for_web 168 name: connectivity_for_web
162 url: "https://pub.flutter-io.cn" 169 url: "https://pub.flutter-io.cn"
163 source: hosted 170 source: hosted
164 - version: "0.3.1+2" 171 + version: "0.3.1+4"
165 connectivity_macos: 172 connectivity_macos:
166 dependency: transitive 173 dependency: transitive
167 description: 174 description:
168 name: connectivity_macos 175 name: connectivity_macos
169 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
170 source: hosted 177 source: hosted
171 - version: "0.1.0+5" 178 + version: "0.1.0+7"
172 connectivity_platform_interface: 179 connectivity_platform_interface:
173 dependency: transitive 180 dependency: transitive
174 description: 181 description:
@@ -190,13 +197,6 @@ packages: @@ -190,13 +197,6 @@ packages:
190 url: "https://pub.flutter-io.cn" 197 url: "https://pub.flutter-io.cn"
191 source: hosted 198 source: hosted
192 version: "2.1.1" 199 version: "2.1.1"
193 - cookie_jar:  
194 - dependency: transitive  
195 - description:  
196 - name: cookie_jar  
197 - url: "https://pub.flutter-io.cn"  
198 - source: hosted  
199 - version: "0.0.8"  
200 crypto: 200 crypto:
201 dependency: transitive 201 dependency: transitive
202 description: 202 description:
@@ -252,7 +252,7 @@ packages: @@ -252,7 +252,7 @@ packages:
252 name: dio 252 name: dio
253 url: "https://pub.flutter-io.cn" 253 url: "https://pub.flutter-io.cn"
254 source: hosted 254 source: hosted
255 - version: "1.0.17" 255 + version: "3.0.10"
256 easy_contact_picker: 256 easy_contact_picker:
257 dependency: "direct main" 257 dependency: "direct main"
258 description: 258 description:
@@ -327,14 +327,14 @@ packages: @@ -327,14 +327,14 @@ packages:
327 name: flutter_cache_manager 327 name: flutter_cache_manager
328 url: "https://pub.flutter-io.cn" 328 url: "https://pub.flutter-io.cn"
329 source: hosted 329 source: hosted
330 - version: "2.0.0" 330 + version: "2.1.0"
331 flutter_easyrefresh: 331 flutter_easyrefresh:
332 dependency: "direct main" 332 dependency: "direct main"
333 description: 333 description:
334 name: flutter_easyrefresh 334 name: flutter_easyrefresh
335 url: "https://pub.flutter-io.cn" 335 url: "https://pub.flutter-io.cn"
336 source: hosted 336 source: hosted
337 - version: "2.1.6" 337 + version: "2.1.8"
338 flutter_picker: 338 flutter_picker:
339 dependency: "direct main" 339 dependency: "direct main"
340 description: 340 description:
@@ -342,6 +342,13 @@ packages: @@ -342,6 +342,13 @@ packages:
342 url: "https://pub.flutter-io.cn" 342 url: "https://pub.flutter-io.cn"
343 source: hosted 343 source: hosted
344 version: "1.1.5" 344 version: "1.1.5"
  345 + flutter_plugin_android_lifecycle:
  346 + dependency: transitive
  347 + description:
  348 + name: flutter_plugin_android_lifecycle
  349 + url: "https://pub.flutter-io.cn"
  350 + source: hosted
  351 + version: "1.0.11"
345 flutter_screenutil: 352 flutter_screenutil:
346 dependency: "direct main" 353 dependency: "direct main"
347 description: 354 description:
@@ -436,6 +443,27 @@ packages: @@ -436,6 +443,27 @@ packages:
436 url: "https://pub.flutter-io.cn" 443 url: "https://pub.flutter-io.cn"
437 source: hosted 444 source: hosted
438 version: "3.1.4" 445 version: "3.1.4"
  446 + image:
  447 + dependency: transitive
  448 + description:
  449 + name: image
  450 + url: "https://pub.flutter-io.cn"
  451 + source: hosted
  452 + version: "2.1.19"
  453 + image_picker:
  454 + dependency: "direct main"
  455 + description:
  456 + name: image_picker
  457 + url: "https://pub.flutter-io.cn"
  458 + source: hosted
  459 + version: "0.6.7+21"
  460 + image_picker_platform_interface:
  461 + dependency: transitive
  462 + description:
  463 + name: image_picker_platform_interface
  464 + url: "https://pub.flutter-io.cn"
  465 + source: hosted
  466 + version: "1.1.1"
439 install_plugin: 467 install_plugin:
440 dependency: "direct main" 468 dependency: "direct main"
441 description: 469 description:
@@ -533,14 +561,14 @@ packages: @@ -533,14 +561,14 @@ packages:
533 name: node_interop 561 name: node_interop
534 url: "https://pub.flutter-io.cn" 562 url: "https://pub.flutter-io.cn"
535 source: hosted 563 source: hosted
536 - version: "1.2.0" 564 + version: "1.2.1"
537 node_io: 565 node_io:
538 dependency: transitive 566 dependency: transitive
539 description: 567 description:
540 name: node_io 568 name: node_io
541 url: "https://pub.flutter-io.cn" 569 url: "https://pub.flutter-io.cn"
542 source: hosted 570 source: hosted
543 - version: "1.1.1" 571 + version: "1.2.0"
544 octo_image: 572 octo_image:
545 dependency: transitive 573 dependency: transitive
546 description: 574 description:
@@ -561,7 +589,7 @@ packages: @@ -561,7 +589,7 @@ packages:
561 name: package_info 589 name: package_info
562 url: "https://pub.flutter-io.cn" 590 url: "https://pub.flutter-io.cn"
563 source: hosted 591 source: hosted
564 - version: "0.4.3" 592 + version: "0.4.3+2"
565 package_resolver: 593 package_resolver:
566 dependency: transitive 594 dependency: transitive
567 description: 595 description:
@@ -582,7 +610,7 @@ packages: @@ -582,7 +610,7 @@ packages:
582 name: path_provider 610 name: path_provider
583 url: "https://pub.flutter-io.cn" 611 url: "https://pub.flutter-io.cn"
584 source: hosted 612 source: hosted
585 - version: "1.6.22" 613 + version: "1.6.27"
586 path_provider_linux: 614 path_provider_linux:
587 dependency: transitive 615 dependency: transitive
588 description: 616 description:
@@ -596,21 +624,21 @@ packages: @@ -596,21 +624,21 @@ packages:
596 name: path_provider_macos 624 name: path_provider_macos
597 url: "https://pub.flutter-io.cn" 625 url: "https://pub.flutter-io.cn"
598 source: hosted 626 source: hosted
599 - version: "0.0.4+4" 627 + version: "0.0.4+8"
600 path_provider_platform_interface: 628 path_provider_platform_interface:
601 dependency: transitive 629 dependency: transitive
602 description: 630 description:
603 name: path_provider_platform_interface 631 name: path_provider_platform_interface
604 url: "https://pub.flutter-io.cn" 632 url: "https://pub.flutter-io.cn"
605 source: hosted 633 source: hosted
606 - version: "1.0.3" 634 + version: "1.0.4"
607 path_provider_windows: 635 path_provider_windows:
608 dependency: transitive 636 dependency: transitive
609 description: 637 description:
610 name: path_provider_windows 638 name: path_provider_windows
611 url: "https://pub.flutter-io.cn" 639 url: "https://pub.flutter-io.cn"
612 source: hosted 640 source: hosted
613 - version: "0.0.4+1" 641 + version: "0.0.4+3"
614 pedantic: 642 pedantic:
615 dependency: transitive 643 dependency: transitive
616 description: 644 description:
@@ -632,6 +660,13 @@ packages: @@ -632,6 +660,13 @@ packages:
632 url: "https://pub.flutter-io.cn" 660 url: "https://pub.flutter-io.cn"
633 source: hosted 661 source: hosted
634 version: "1.0.0" 662 version: "1.0.0"
  663 + petitparser:
  664 + dependency: transitive
  665 + description:
  666 + name: petitparser
  667 + url: "https://pub.flutter-io.cn"
  668 + source: hosted
  669 + version: "3.0.4"
635 platform: 670 platform:
636 dependency: transitive 671 dependency: transitive
637 description: 672 description:
@@ -666,7 +701,7 @@ packages: @@ -666,7 +701,7 @@ packages:
666 name: provider 701 name: provider
667 url: "https://pub.flutter-io.cn" 702 url: "https://pub.flutter-io.cn"
668 source: hosted 703 source: hosted
669 - version: "4.3.2+2" 704 + version: "4.3.2+3"
670 pub_semver: 705 pub_semver:
671 dependency: transitive 706 dependency: transitive
672 description: 707 description:
@@ -680,14 +715,14 @@ packages: @@ -680,14 +715,14 @@ packages:
680 name: pubspec_parse 715 name: pubspec_parse
681 url: "https://pub.flutter-io.cn" 716 url: "https://pub.flutter-io.cn"
682 source: hosted 717 source: hosted
683 - version: "0.1.5" 718 + version: "0.1.7"
684 quiver: 719 quiver:
685 dependency: transitive 720 dependency: transitive
686 description: 721 description:
687 name: quiver 722 name: quiver
688 url: "https://pub.flutter-io.cn" 723 url: "https://pub.flutter-io.cn"
689 source: hosted 724 source: hosted
690 - version: "2.1.4+1" 725 + version: "2.1.5"
691 rational: 726 rational:
692 dependency: transitive 727 dependency: transitive
693 description: 728 description:
@@ -701,7 +736,7 @@ packages: @@ -701,7 +736,7 @@ packages:
701 name: rxdart 736 name: rxdart
702 url: "https://pub.flutter-io.cn" 737 url: "https://pub.flutter-io.cn"
703 source: hosted 738 source: hosted
704 - version: "0.24.1" 739 + version: "0.25.0"
705 scrollable_positioned_list: 740 scrollable_positioned_list:
706 dependency: "direct main" 741 dependency: "direct main"
707 description: 742 description:
@@ -715,21 +750,21 @@ packages: @@ -715,21 +750,21 @@ packages:
715 name: shared_preferences 750 name: shared_preferences
716 url: "https://pub.flutter-io.cn" 751 url: "https://pub.flutter-io.cn"
717 source: hosted 752 source: hosted
718 - version: "0.5.12+2" 753 + version: "0.5.12+4"
719 shared_preferences_linux: 754 shared_preferences_linux:
720 dependency: transitive 755 dependency: transitive
721 description: 756 description:
722 name: shared_preferences_linux 757 name: shared_preferences_linux
723 url: "https://pub.flutter-io.cn" 758 url: "https://pub.flutter-io.cn"
724 source: hosted 759 source: hosted
725 - version: "0.0.2+2" 760 + version: "0.0.2+4"
726 shared_preferences_macos: 761 shared_preferences_macos:
727 dependency: transitive 762 dependency: transitive
728 description: 763 description:
729 name: shared_preferences_macos 764 name: shared_preferences_macos
730 url: "https://pub.flutter-io.cn" 765 url: "https://pub.flutter-io.cn"
731 source: hosted 766 source: hosted
732 - version: "0.0.1+10" 767 + version: "0.0.1+11"
733 shared_preferences_platform_interface: 768 shared_preferences_platform_interface:
734 dependency: transitive 769 dependency: transitive
735 description: 770 description:
@@ -750,7 +785,7 @@ packages: @@ -750,7 +785,7 @@ packages:
750 name: shared_preferences_windows 785 name: shared_preferences_windows
751 url: "https://pub.flutter-io.cn" 786 url: "https://pub.flutter-io.cn"
752 source: hosted 787 source: hosted
753 - version: "0.0.1+1" 788 + version: "0.0.1+3"
754 shelf: 789 shelf:
755 dependency: transitive 790 dependency: transitive
756 description: 791 description:
@@ -771,7 +806,7 @@ packages: @@ -771,7 +806,7 @@ packages:
771 name: simple_gesture_detector 806 name: simple_gesture_detector
772 url: "https://pub.flutter-io.cn" 807 url: "https://pub.flutter-io.cn"
773 source: hosted 808 source: hosted
774 - version: "0.1.4" 809 + version: "0.1.6"
775 sky_engine: 810 sky_engine:
776 dependency: transitive 811 dependency: transitive
777 description: flutter 812 description: flutter
@@ -804,7 +839,7 @@ packages: @@ -804,7 +839,7 @@ packages:
804 name: sqflite_common 839 name: sqflite_common
805 url: "https://pub.flutter-io.cn" 840 url: "https://pub.flutter-io.cn"
806 source: hosted 841 source: hosted
807 - version: "1.0.2+1" 842 + version: "1.0.3"
808 stack_trace: 843 stack_trace:
809 dependency: transitive 844 dependency: transitive
810 description: 845 description:
@@ -846,7 +881,7 @@ packages: @@ -846,7 +881,7 @@ packages:
846 name: table_calendar 881 name: table_calendar
847 url: "https://pub.flutter-io.cn" 882 url: "https://pub.flutter-io.cn"
848 source: hosted 883 source: hosted
849 - version: "2.3.0" 884 + version: "2.3.3"
850 term_glyph: 885 term_glyph:
851 dependency: transitive 886 dependency: transitive
852 description: 887 description:
@@ -867,7 +902,7 @@ packages: @@ -867,7 +902,7 @@ packages:
867 name: timing 902 name: timing
868 url: "https://pub.flutter-io.cn" 903 url: "https://pub.flutter-io.cn"
869 source: hosted 904 source: hosted
870 - version: "0.1.1+2" 905 + version: "0.1.1+3"
871 tpns_flutter_plugin: 906 tpns_flutter_plugin:
872 dependency: "direct main" 907 dependency: "direct main"
873 description: 908 description:
@@ -897,14 +932,14 @@ packages: @@ -897,14 +932,14 @@ packages:
897 name: url_launcher_linux 932 name: url_launcher_linux
898 url: "https://pub.flutter-io.cn" 933 url: "https://pub.flutter-io.cn"
899 source: hosted 934 source: hosted
900 - version: "0.0.1+3" 935 + version: "0.0.1+4"
901 url_launcher_macos: 936 url_launcher_macos:
902 dependency: transitive 937 dependency: transitive
903 description: 938 description:
904 name: url_launcher_macos 939 name: url_launcher_macos
905 url: "https://pub.flutter-io.cn" 940 url: "https://pub.flutter-io.cn"
906 source: hosted 941 source: hosted
907 - version: "0.0.1+8" 942 + version: "0.0.1+9"
908 url_launcher_platform_interface: 943 url_launcher_platform_interface:
909 dependency: transitive 944 dependency: transitive
910 description: 945 description:
@@ -925,7 +960,7 @@ packages: @@ -925,7 +960,7 @@ packages:
925 name: url_launcher_windows 960 name: url_launcher_windows
926 url: "https://pub.flutter-io.cn" 961 url: "https://pub.flutter-io.cn"
927 source: hosted 962 source: hosted
928 - version: "0.0.1+1" 963 + version: "0.0.1+3"
929 uuid: 964 uuid:
930 dependency: transitive 965 dependency: transitive
931 description: 966 description:
@@ -967,7 +1002,7 @@ packages: @@ -967,7 +1002,7 @@ packages:
967 name: win32 1002 name: win32
968 url: "https://pub.flutter-io.cn" 1003 url: "https://pub.flutter-io.cn"
969 source: hosted 1004 source: hosted
970 - version: "1.7.3" 1005 + version: "1.7.4"
971 xdg_directories: 1006 xdg_directories:
972 dependency: transitive 1007 dependency: transitive
973 description: 1008 description:
@@ -975,6 +1010,13 @@ packages: @@ -975,6 +1010,13 @@ packages:
975 url: "https://pub.flutter-io.cn" 1010 url: "https://pub.flutter-io.cn"
976 source: hosted 1011 source: hosted
977 version: "0.1.0" 1012 version: "0.1.0"
  1013 + xml:
  1014 + dependency: transitive
  1015 + description:
  1016 + name: xml
  1017 + url: "https://pub.flutter-io.cn"
  1018 + source: hosted
  1019 + version: "4.5.1"
978 yaml: 1020 yaml:
979 dependency: transitive 1021 dependency: transitive
980 description: 1022 description:
@@ -19,6 +19,7 @@ environment: @@ -19,6 +19,7 @@ environment:
19 dependencies: 19 dependencies:
20 flutter: 20 flutter:
21 sdk: flutter 21 sdk: flutter
  22 + # meta: ^1.2.4
22 23
23 # The following adds the Cupertino Icons font to your application. 24 # The following adds the Cupertino Icons font to your application.
24 # Use with the CupertinoIcons class for iOS style icons. 25 # Use with the CupertinoIcons class for iOS style icons.
@@ -30,7 +31,7 @@ dependencies: @@ -30,7 +31,7 @@ dependencies:
30 # Sp存储 31 # Sp存储
31 shared_preferences: ^0.5.6+3 32 shared_preferences: ^0.5.6+3
32 # 网络 33 # 网络
33 - dio: ^1.0.13 34 + dio: ^3.0.10
34 # 屏幕适配 35 # 屏幕适配
35 flutter_screenutil: ^1.0.2 36 flutter_screenutil: ^1.0.2
36 # 路由管理 37 # 路由管理
@@ -89,6 +90,10 @@ dependencies: @@ -89,6 +90,10 @@ dependencies:
89 easy_contact_picker: ^0.0.2 90 easy_contact_picker: ^0.0.2
90 flutter_app_badger: ^1.1.2 91 flutter_app_badger: ^1.1.2
91 scrollable_positioned_list: ^0.1.8 92 scrollable_positioned_list: ^0.1.8
  93 + image_picker:
  94 +#七牛云sdk
  95 + # qiniu_flutter_sdk: ^0.1.0
  96 +
92 97
93 98
94 dev_dependencies: 99 dev_dependencies: