Showing
17 changed files
with
549 additions
and
83 deletions
assets/add_image.png
0 → 100644
1.81 KB
assets/check.png
0 → 100644
3.52 KB
| @@ -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 | ), |
lib/pages/online_check/ImgPickerWidget.dart
0 → 100644
| 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 | +} |
lib/pages/online_check/online_check_
deleted
100644 → 0
| 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 | }); |
lib/provider/online_check_edit_provider.dart
0 → 100644
| @@ -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: |
-
Please register or login to post a comment