Commit 213320f4d8859c41c424c4d68e22bec3b9d650bb

Authored by wdn127929
1 parent f73c7b19

更新dio最新版本

... ... @@ -12,6 +12,7 @@ import 'package:fluwx/fluwx.dart';
import 'package:one_key/pages/detail/handle_online_page.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:one_key/provider/online_check_edit_provider.dart';
import 'package:one_key/provider/tools.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
... ... @@ -49,6 +50,9 @@ Future<void> main() async {
ChangeNotifierProvider<MessageDialogModel>(
create: (_) => MessageDialogModel()..init(),
),
ChangeNotifierProvider<OnlineCheckEditProvider>(
create: (_) => OnlineCheckEditProvider(),
),
],
child: MyApp(),
));
... ... @@ -95,7 +99,7 @@ class MyAppState extends State<MyApp> {
//初始化dio
initDio() {
DioUtil.openDebug();
Options options = DioUtil.getDefOptions();
BaseOptions options = DioUtil.getDefOptions();
options.baseUrl = HttpUrl.server_address;
HttpConfig config = new HttpConfig(
options: options, status: "ret", code: "ret", msg: "msg", data: "data");
... ...
... ... @@ -2,6 +2,8 @@ import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/dio.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/utils/utils.dart';
... ... @@ -53,8 +55,10 @@ class HttpConfig {
/// BaseResp [T data]字段 key, 默认:data.
String data;
// /// Options.
// Options options;
/// Options.
Options options;
BaseOptions options;
/// 详细使用请查看dio官网 https://github.com/flutterchina/dio/blob/flutter/README-ZH.md#Https证书校验.
/// PEM证书内容.
... ... @@ -89,7 +93,8 @@ class DioUtil {
String _dataKey = "data";
/// Options.
Options _options = getDefOptions();
// Options _options = getDefOptions();
BaseOptions _options = getDefOptions();
/// PEM证书内容.
String _pem;
... ... @@ -126,7 +131,7 @@ class DioUtil {
_dio.options.headers.addAll(_headers);
}
/// set Config.
// / set Config.
void setConfig(HttpConfig config) {
_statusKey = config.status ?? _statusKey;
_codeKey = config.code ?? _codeKey;
... ... @@ -136,27 +141,27 @@ class DioUtil {
_pem = config.pem ?? _pem;
if (_dio != null) {
_dio.options = _options;
if (_pem != null) {
_dio.onHttpClientCreate = (HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) {
if (cert.pem == _pem) {
// 证书一致,则放行
return true;
}
return false;
};
};
}
if (_pKCSPath != null) {
_dio.onHttpClientCreate = (HttpClient client) {
SecurityContext sc = new SecurityContext();
//file为证书路径
sc.setTrustedCertificates(_pKCSPath, password: _pKCSPwd);
HttpClient httpClient = new HttpClient(context: sc);
return httpClient;
};
}
// if (_pem != null) {
// _dio.onHttpClientCreate = (HttpClient client) {
// client.badCertificateCallback =
// (X509Certificate cert, String host, int port) {
// if (cert.pem == _pem) {
// // 证书一致,则放行
// return true;
// }
// return false;
// };
// };
// }
// if (_pKCSPath != null) {
// _dio.onHttpClientCreate = (HttpClient client) {
// SecurityContext sc = new SecurityContext();
// //file为证书路径
// sc.setTrustedCertificates(_pKCSPath, password: _pKCSPwd);
// HttpClient httpClient = new HttpClient(context: sc);
// return httpClient;
// };
// }
}
}
... ... @@ -222,7 +227,7 @@ class DioUtil {
Loading.hideLoading(context);
return new Future.error(new DioError(
response: response,
message: "data parsing exception...",
error: "data parsing exception...",
type: DioErrorType.RESPONSE,
));
}
... ... @@ -230,7 +235,7 @@ class DioUtil {
Loading.hideLoading(context);
return new Future.error(new DioError(
response: response,
message: "statusCode: $response.statusCode, service error",
error: "statusCode: $response.statusCode, service error",
type: DioErrorType.RESPONSE,
));
} on DioError catch (error) {
... ... @@ -290,14 +295,14 @@ class DioUtil {
} catch (e) {
return new Future.error(new DioError(
response: response,
message: "data parsing exception...",
error: "data parsing exception...",
type: DioErrorType.RESPONSE,
));
}
}
return new Future.error(new DioError(
response: response,
message: "statusCode: $response.statusCode, service error",
error: "statusCode: $response.statusCode, service error",
type: DioErrorType.RESPONSE,
));
}
... ... @@ -309,13 +314,13 @@ class DioUtil {
Future<Response> download(
String urlPath,
savePath, {
OnDownloadProgress onProgress,
ProgressCallback onProgress,
CancelToken cancelToken,
data,
Options options,
}) {
return _dio.download(urlPath, savePath,
onProgress: onProgress,
onReceiveProgress: onProgress,
cancelToken: cancelToken,
data: data,
options: options);
... ... @@ -341,14 +346,14 @@ class DioUtil {
}
/// merge Option.
void _mergeOption(Options opt) {
void _mergeOption(BaseOptions opt) {
_options.method = opt.method ?? _options.method;
_options.headers = (new Map.from(_options.headers))..addAll(opt.headers);
_options.baseUrl = opt.baseUrl ?? _options.baseUrl;
_options.connectTimeout = opt.connectTimeout ?? _options.connectTimeout;
_options.receiveTimeout = opt.receiveTimeout ?? _options.receiveTimeout;
_options.responseType = opt.responseType ?? _options.responseType;
_options.data = opt.data ?? _options.data;
// _options.data = opt.data ?? _options.data;
_options.extra = (new Map.from(_options.extra))..addAll(opt.extra);
_options.contentType = opt.contentType ?? _options.contentType;
_options.validateStatus = opt.validateStatus ?? _options.validateStatus;
... ... @@ -374,13 +379,13 @@ class DioUtil {
}
/// get Options Str.
String _getOptionsStr(Options request) {
String _getOptionsStr(path) {
return "method: " +
request.method +
_dio.options.method +
" baseUrl: " +
request.baseUrl +
_dio.options.baseUrl +
" path: " +
request.path;
path;
}
/// print Data Str.
... ... @@ -403,17 +408,16 @@ class DioUtil {
}
/// create new dio.
static Dio createNewDio([Options options]) {
static Dio createNewDio([BaseOptions options]) {
options = options ?? getDefOptions();
Dio dio = new Dio(options);
return dio;
}
/// get Def Options.
static Options getDefOptions() {
Options options = new Options();
options.contentType =
ContentType.parse("application/x-www-form-urlencoded");
static BaseOptions getDefOptions() {
BaseOptions options = new BaseOptions();
options.contentType = 'application/json; charset=utf-8';
options.connectTimeout = 1000 * 10; //默认10s
options.receiveTimeout = 1000 * 10; //默认10s
return options;
... ...
... ... @@ -57,6 +57,8 @@ class MessageItem extends StatelessWidget {
context, message.rid.toString());
} else if (message.message_type == "12") {
//在线买单消息查看
NavigatorUtil.goOnlineCheckEditPage(context,
rid: '${message.rid}');
}
}
},
... ... @@ -189,8 +191,10 @@ class MessageItem extends StatelessWidget {
await messageDialogModel.setMessageStatus(
context, params);
bus.emit("refresh_untreated_num"); //刷新未读消息数目
} else if (message.message_type == "12") {
} else if ('${message.message_type}' == "12") {
//在线买单消息 去处理 跳转在线买单处理页面
NavigatorUtil.goOnlineCheckEditPage(context,
rid: '${message.rid}');
}
},
),
... ...
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:image_picker/image_picker.dart';
import 'package:one_key/provider/online_check_edit_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
final int MAX_IMAGE_NUMBER = 9;
class ImgPickerWidget extends StatelessWidget {
final ScrollController scrollController;
final Color borderColor;
final ValueChanged onChange;
ImgPickerWidget(
{Key key,
this.scrollController,
this.borderColor = Colors.blue,
this.onChange})
: super(key: key);
//相册 相机
Future _getFromPictureOrCamera(context, imageSource) async {
// File image = await ImagePicker.pickImage(
// source: imageSource,
// );
// if (image != null) {
// _provider.imageList.add(image);
// _provider.notifyListeners();
// }
// _provider.uploadTravelReleaseImg(image);
}
Future _openModalBottomSheet(context) async {
final option = await showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: 200.0,
child: Column(
children: <Widget>[
ListTile(
title: Text('拍照', textAlign: TextAlign.center),
onTap: () {
_getFromPictureOrCamera(context, ImageSource.camera);
Navigator.pop(context);
},
),
ListTile(
title: Text('从相册选择', textAlign: TextAlign.center),
onTap: () {
_getFromPictureOrCamera(context, ImageSource.gallery);
Navigator.pop(context);
},
),
ListTile(
title: Text('取消', textAlign: TextAlign.center),
onTap: () {
Navigator.pop(context, '取消');
},
),
],
),
);
});
}
_getGridImg(count, context, isLinjie) {
OnlineCheckEditProvider _provider =
Provider.of<OnlineCheckEditProvider>(context, listen: false);
return GridView.builder(
controller: scrollController,
// padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
shrinkWrap: true,
itemCount: count,
//SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//横轴元素个数
crossAxisCount: 3,
//纵轴间距
mainAxisSpacing: 20.0,
//横轴间距
crossAxisSpacing: 10.0,
//子组件宽高长度比例
childAspectRatio: 1.0),
itemBuilder: (BuildContext context, int index) {
//Widget Function(BuildContext context, int index)
var linjie = MAX_IMAGE_NUMBER;
if (isLinjie) {
linjie = MAX_IMAGE_NUMBER - 1;
}
if (index == count - 1 && index < linjie) {
return InkWell(
onTap: () {
_openModalBottomSheet(context);
},
child: Container(
width: ScreenUtil().setWidth(90 * 2),
height: ScreenUtil().setWidth(90 * 2),
decoration: BoxDecoration(
border: Border.all(
color: MyColours.color_E0E0E0,
width: ScreenUtil().setWidth(2)),
color: Theme.of(context).backgroundColor),
child: Column(
children: [
Image.asset(
Utils.getImgPath('add_image'),
width: ScreenUtil().setWidth(32),
height: ScreenUtil().setWidth(32),
)
],
)),
);
}
return _provider.imageList.length < 1
? Text('')
: Image.file(_provider.imageList[index], fit: BoxFit.cover);
});
}
@override
Widget build(BuildContext context) {
OnlineCheckEditProvider _provider =
Provider.of<OnlineCheckEditProvider>(context, listen: true);
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(10)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: ScreenUtil().setWidth(53 * 2),
width: double.infinity,
decoration: BoxDecoration(
color: MyColours.color_FAFAFA,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(10),
topRight: Radius.circular(10)),
),
child: Padding(
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(36),
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(26)),
child: Text(
'消费清单(选填)',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_353535,
fontWeight: FontWeight.bold),
),
)),
Padding(
padding: EdgeInsets.all(ScreenUtil().setWidth(40)),
child: _getGridImg(
_provider.imageList.length < MAX_IMAGE_NUMBER
? _provider.imageList.length + 1
: _provider.imageList.length,
context,
_provider.imageList.length == MAX_IMAGE_NUMBER ? true : false),
)
// _getGridImg(1, context)
],
),
);
}
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/pages/online_check/ImgPickerWidget.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
class OnlineCheckEditPage extends StatefulWidget {
final bool fromNotify;
OnlineCheckEditPage({Key key, this.fromNotify = false}) : super(key: key);
@override
_OnlineCheckEditPageState createState() => _OnlineCheckEditPageState();
}
class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
ScrollController _scrollController = ScrollController();
TextEditingController _editingController = TextEditingController();
FocusNode _focusNode = FocusNode();
@override
void initState() {
super.initState();
_focusNode.addListener(() {
if (_focusNode.hasFocus) {
//有焦点
_editingController.text = '¥';
} else {
//失去焦点
_editingController.text = '';
}
});
}
///顶部logo
Widget _getLogoWidget() {
return Column(
children: [
Image.asset(
Utils.getImgPath('check'),
width: ScreenUtil().setWidth(37 * 2),
height: ScreenUtil().setWidth(33 * 2),
),
VEmptyView(12),
Container(
height: ScreenUtil().setWidth(44),
alignment: Alignment.center,
child: Text(
'顾客申请买单',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_353535,
fontWeight: FontWeight.bold),
),
)
],
);
}
///桌位信息、应收金额
Widget _getTabAndMoneyInfoWidget() {
return Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10))),
child: Column(
children: [
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(36)),
child: Row(
children: [
Text(
'桌位信息',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_707070),
),
Spacer(),
Text(
'[包间]秦皇岛',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_353535),
)
],
),
),
Padding(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20)),
child: MyDivider(
double.infinity,
ScreenUtil().setWidth(2),
color: MyColours.color_EEEEEE,
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(36)),
child: Row(
children: [
Text(
'应收金额',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_707070),
),
// Spacer(),
HEmptyView(40),
Expanded(
flex: 1,
child: TextField(
maxLines: 1,
textAlign: TextAlign.end,
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _editingController,
focusNode: _focusNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
hintText: "点击填写金额",
hintStyle: TextStyle(
color: MyColours.color_9C9C9C,
fontSize: ScreenUtil().setSp(32),
),
// contentPadding:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
border: InputBorder.none,
),
onChanged: (value) {
print(value);
// currentRemark = value;
// print();
},
onEditingComplete: () {
print('fff');
_editingController.text = '';
// _needNode.unfocus();
},
// keyboardType: TextInputType.number,
))
],
),
),
],
),
);
}
///消费清单
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: MyColours.color_f5f5f5,
appBar: SystemAppBar(
'提前买单',
onTap: () {
if (widget.fromNotify) {
NavigatorUtil.goHomePage(context, initialIndex: 0);
} else {
Navigator.of(context).pop();
}
},
),
body: SingleChildScrollView(
controller: _scrollController,
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(40)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
//图标
_getLogoWidget(),
VEmptyView(40),
_getTabAndMoneyInfoWidget(),
VEmptyView(10),
// 备注信息
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20)),
child: Text(
'*贾森基德款式经典福克斯肌肤快速反击',
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_FD5656),
),
),
VEmptyView(20),
ImgPickerWidget()
],
)),
),
);
}
}
... ...
... ... @@ -63,8 +63,8 @@ class ContactModel {
data: params,
options: Options(
method: Method.post,
contentType:
ContentType.parse("application/x-www-form-urlencoded")))
// contentType: "application/x-www-form-urlencoded"
))
.catchError((error) {
print(error.toString());
});
... ...
import 'package:flutter/material.dart';
class OnlineCheckEditProvider extends ChangeNotifier {
List imageList = []; //图片数组
}
... ...
... ... @@ -52,4 +52,9 @@ class MyColours {
static const Color color_0A0A0A = Color(0xff0A0A0A);
static const Color color_fa5151 = Color(0xfffa5151);
static const Color color_F0F0F0 = Color(0xffF0F0F0);
static const Color color_707070 = Color(0xff707070);
static const Color color_EEEEEE = Color(0xffEEEEEE);
static const Color color_9C9C9C = Color(0xff9C9C9C);
static const Color color_FD5656 = Color(0xffFD5656);
static const Color color_FAFAFA = Color(0xffFAFAFA);
}
... ...
... ... @@ -16,6 +16,7 @@ import 'package:one_key/pages/message/message_order_menu.dart';
import 'package:one_key/pages/my/book_time_set.dart';
import 'package:one_key/pages/my/receive_orders_time_set.dart';
import 'package:one_key/pages/my/remark_manager_page.dart';
import 'package:one_key/pages/online_check/online_check_edit_page.dart';
import 'package:one_key/pages/sms/sms_page.dart';
import 'package:one_key/pages/table/select_table_page.dart';
import 'package:one_key/pages/webview/webview_page.dart';
... ... @@ -174,3 +175,13 @@ var handleHasOrderFoodHandler = new Handler(
create: (_) => OrderFoodProvider(),
child: MessageHasOrderFoodPage(rid: rid, fromNotify: fromNotify));
});
///提前买单编辑页面
var handleOnlineCheckEditHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
// String rid = params["rid"].first;
bool fromNotify = FluroConvertUtils.string2bool(params["fromNotify"].first);
return ChangeNotifierProvider<OrderFoodProvider>(
create: (_) => OrderFoodProvider(),
child: OnlineCheckEditPage(fromNotify: fromNotify));
});
... ...
... ... @@ -19,6 +19,7 @@ class Routes {
static String receive_orders_time_set = "/receive_orders_time_set"; //接单时间管理
static String remark_manager = "/remark_manager"; //常用备注管理
static String has_order_food = "/has_order_food"; //已点菜品
static String online_check_edit = "/online_check_edit"; //提前买单
static void configureRoutes(Router router) {
router.notFoundHandler = new Handler(
... ... @@ -41,6 +42,6 @@ class Routes {
handler: handleReceiveOrdersTimeSetHandler);
router.define(remark_manager, handler: handleRemarkManagerHandler);
router.define(has_order_food, handler: handleHasOrderFoodHandler);
router.define(online_check_edit, handler: handleOnlineCheckEditHandler);
}
}
... ...
... ... @@ -128,4 +128,11 @@ class NavigatorUtil {
context, "${Routes.has_order_food}?rid=${rid}&fromNotify=${fromNotify}",
replace: replace);
}
/// 提前买单编辑页面
static void goOnlineCheckEditPage(BuildContext context,
{String rid, fromNotify = false, replace = false}) {
_navigateTo(context, "${Routes.online_check_edit}?fromNotify=${fromNotify}",
replace: replace);
}
}
... ...
... ... @@ -62,7 +62,7 @@ class Utils {
// 改变状态栏背景颜色,默认改变为透明
static changeStatusColor({Color color: Colors.white}) async {
try {
await FlutterStatusbarcolor.setStatusBarColor(color, animate: true);
await FlutterStatusbarcolor.setStatusBarColor(color, animate: false);
if (useWhiteForeground(color)) {
FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
} else {
... ...
... ... @@ -8,6 +8,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.36.4"
archive:
dependency: transitive
description:
name: archive
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.13"
args:
dependency: transitive
description:
... ... @@ -161,14 +168,14 @@ packages:
name: connectivity_for_web
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.1+2"
version: "0.3.1+4"
connectivity_macos:
dependency: transitive
description:
name: connectivity_macos
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0+5"
version: "0.1.0+7"
connectivity_platform_interface:
dependency: transitive
description:
... ... @@ -190,13 +197,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.1"
cookie_jar:
dependency: transitive
description:
name: cookie_jar
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.8"
crypto:
dependency: transitive
description:
... ... @@ -252,7 +252,7 @@ packages:
name: dio
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.17"
version: "3.0.10"
easy_contact_picker:
dependency: "direct main"
description:
... ... @@ -327,14 +327,14 @@ packages:
name: flutter_cache_manager
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
version: "2.1.0"
flutter_easyrefresh:
dependency: "direct main"
description:
name: flutter_easyrefresh
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.6"
version: "2.1.8"
flutter_picker:
dependency: "direct main"
description:
... ... @@ -342,6 +342,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.5"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.11"
flutter_screenutil:
dependency: "direct main"
description:
... ... @@ -436,6 +443,27 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.4"
image:
dependency: transitive
description:
name: image
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.19"
image_picker:
dependency: "direct main"
description:
name: image_picker
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.7+21"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
install_plugin:
dependency: "direct main"
description:
... ... @@ -533,14 +561,14 @@ packages:
name: node_interop
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
version: "1.2.1"
node_io:
dependency: transitive
description:
name: node_io
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
version: "1.2.0"
octo_image:
dependency: transitive
description:
... ... @@ -561,7 +589,7 @@ packages:
name: package_info
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.3"
version: "0.4.3+2"
package_resolver:
dependency: transitive
description:
... ... @@ -582,7 +610,7 @@ packages:
name: path_provider
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.6.22"
version: "1.6.27"
path_provider_linux:
dependency: transitive
description:
... ... @@ -596,21 +624,21 @@ packages:
name: path_provider_macos
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.4+4"
version: "0.0.4+8"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.3"
version: "1.0.4"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.4+1"
version: "0.0.4+3"
pedantic:
dependency: transitive
description:
... ... @@ -632,6 +660,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
petitparser:
dependency: transitive
description:
name: petitparser
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.4"
platform:
dependency: transitive
description:
... ... @@ -666,7 +701,7 @@ packages:
name: provider
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.3.2+2"
version: "4.3.2+3"
pub_semver:
dependency: transitive
description:
... ... @@ -680,14 +715,14 @@ packages:
name: pubspec_parse
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.5"
version: "0.1.7"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.4+1"
version: "2.1.5"
rational:
dependency: transitive
description:
... ... @@ -701,7 +736,7 @@ packages:
name: rxdart
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.24.1"
version: "0.25.0"
scrollable_positioned_list:
dependency: "direct main"
description:
... ... @@ -715,21 +750,21 @@ packages:
name: shared_preferences
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.5.12+2"
version: "0.5.12+4"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.2+2"
version: "0.0.2+4"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+10"
version: "0.0.1+11"
shared_preferences_platform_interface:
dependency: transitive
description:
... ... @@ -750,7 +785,7 @@ packages:
name: shared_preferences_windows
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+1"
version: "0.0.1+3"
shelf:
dependency: transitive
description:
... ... @@ -771,7 +806,7 @@ packages:
name: simple_gesture_detector
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.4"
version: "0.1.6"
sky_engine:
dependency: transitive
description: flutter
... ... @@ -804,7 +839,7 @@ packages:
name: sqflite_common
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2+1"
version: "1.0.3"
stack_trace:
dependency: transitive
description:
... ... @@ -846,7 +881,7 @@ packages:
name: table_calendar
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
version: "2.3.3"
term_glyph:
dependency: transitive
description:
... ... @@ -867,7 +902,7 @@ packages:
name: timing
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.1+2"
version: "0.1.1+3"
tpns_flutter_plugin:
dependency: "direct main"
description:
... ... @@ -897,14 +932,14 @@ packages:
name: url_launcher_linux
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+3"
version: "0.0.1+4"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+8"
version: "0.0.1+9"
url_launcher_platform_interface:
dependency: transitive
description:
... ... @@ -925,7 +960,7 @@ packages:
name: url_launcher_windows
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+1"
version: "0.0.1+3"
uuid:
dependency: transitive
description:
... ... @@ -967,7 +1002,7 @@ packages:
name: win32
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.7.3"
version: "1.7.4"
xdg_directories:
dependency: transitive
description:
... ... @@ -975,6 +1010,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0"
xml:
dependency: transitive
description:
name: xml
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.5.1"
yaml:
dependency: transitive
description:
... ...
... ... @@ -19,6 +19,7 @@ environment:
dependencies:
flutter:
sdk: flutter
# meta: ^1.2.4
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
... ... @@ -30,7 +31,7 @@ dependencies:
# Sp存储
shared_preferences: ^0.5.6+3
# 网络
dio: ^1.0.13
dio: ^3.0.10
# 屏幕适配
flutter_screenutil: ^1.0.2
# 路由管理
... ... @@ -89,6 +90,10 @@ dependencies:
easy_contact_picker: ^0.0.2
flutter_app_badger: ^1.1.2
scrollable_positioned_list: ^0.1.8
image_picker:
#七牛云sdk
# qiniu_flutter_sdk: ^0.1.0
dev_dependencies:
... ...