小赖 4 years ago
commit 90e8a2ac70

@ -63,17 +63,35 @@ class AkuMap {
static Map<int, String> fixAreaType = {1: '公区维修', 2: '家庭维修'}; static Map<int, String> fixAreaType = {1: '公区维修', 2: '家庭维修'};
///- ///-
static Map<int, String> operationType = { static String operationType(int operationType) {
1: '提交报修', switch (operationType) {
2: '派单', case 1:
3: '开始处理', return '提交保修';
4: '处理完成', case 2:
5: '确认', return '派单';
6: '回访', case 3:
7: '回退', return '开始处理';
8: '作废', case 4:
9: '取消' return '处理完成';
}; case 5:
return '确认';
case 6:
return '回访';
case 7:
return '回退';
case 8:
return '作废';
case 9:
return '取消';
break;
case 10:
return '改派';
case 11:
return '延时';
default:
return '';
}
}
static Map<int, String> dispatchType = {1: '无偿服务', 2: '有偿服务'}; static Map<int, String> dispatchType = {1: '无偿服务', 2: '有偿服务'};
} }

@ -47,7 +47,8 @@ class _BussinessViewState extends State<BussinessView>
controller: _refreshController, controller: _refreshController,
header: MaterialHeader(), header: MaterialHeader(),
onRefresh: () async { onRefresh: () async {
var dataList = await BussinessFunc.getBussinessModelList(widget.backlogStatus); var dataList =
await BussinessFunc.getBussinessModelList(widget.backlogStatus);
_modelList = dataList.map((e) => ToDoModel.fromJson(e)).toList(); _modelList = dataList.map((e) => ToDoModel.fromJson(e)).toList();
setState(() {}); setState(() {});
}, },
@ -58,10 +59,18 @@ class _BussinessViewState extends State<BussinessView>
children: [ children: [
..._modelList.map((e) { ..._modelList.map((e) {
if (e.dynamicModel.runtimeType == BussinessAndFixModel) { if (e.dynamicModel.runtimeType == BussinessAndFixModel) {
return BusinessFixCard(model: e.dynamicModel); return BusinessFixCard(
model: e.dynamicModel,
callRefresh: () {
_refreshController.callRefresh();
},
);
} else if (e.dynamicModel.runtimeType == ToDoOutDoorModel) { } else if (e.dynamicModel.runtimeType == ToDoOutDoorModel) {
return ToDoOutDoorCard( return ToDoOutDoorCard(
model: e.dynamicModel, model: e.dynamicModel,
callRefresh: () {
_refreshController.callRefresh();
},
); );
} }
}).toList() }).toList()
@ -74,8 +83,6 @@ class _BussinessViewState extends State<BussinessView>
return SizedBox(); return SizedBox();
} }
@override @override
bool get wantKeepAlive => true; bool get wantKeepAlive => true;
} }

@ -8,8 +8,9 @@ import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
class ToDoOutDoorCard extends StatefulWidget { class ToDoOutDoorCard extends StatefulWidget {
final ToDoOutDoorModel model; final ToDoOutDoorModel model;
ToDoOutDoorCard({Key key, this.model}) : super(key: key); final VoidCallback callRefresh;
ToDoOutDoorCard({Key key, this.model, this.callRefresh}) : super(key: key);
@override @override
_ToDoOutDoorCardState createState() => _ToDoOutDoorCardState(); _ToDoOutDoorCardState createState() => _ToDoOutDoorCardState();
@ -191,8 +192,11 @@ class _ToDoOutDoorCardState extends State<ToDoOutDoorCard> {
height: 112.w, height: 112.w,
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: AkuButton( child: AkuButton(
onPressed: () { onPressed: () async {
Get.to(ItemsOutdoorDetailsPage(id: widget.model.id)); await Get.to(ItemsOutdoorDetailsPage(id: widget.model.id));
if (widget.callRefresh != null) {
widget.callRefresh();
}
}, },
child: Container( child: Container(
alignment: Alignment.center, alignment: Alignment.center,

@ -15,6 +15,7 @@ import 'package:dio/dio.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:shimmer/shimmer.dart'; import 'package:shimmer/shimmer.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
@ -61,6 +62,7 @@ class _HomePageState extends State<HomePage> {
List _todoModelList; List _todoModelList;
List _anounceMentList; List _anounceMentList;
bool _onload = true; bool _onload = true;
EasyRefreshController _refreshController;
///bar ///bar
Widget _menuButton(String assetPath, String text, Widget page) { Widget _menuButton(String assetPath, String text, Widget page) {
@ -152,17 +154,7 @@ class _HomePageState extends State<HomePage> {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent, statusBarColor: Colors.transparent,
)); ));
Future.delayed(Duration(milliseconds: 300), () async { _refreshController = EasyRefreshController();
final userProvider = Provider.of<UserProvider>(context, listen: false);
if (userProvider.isLogin) {
_itemNumModel = await _getItemNum();
var dataList = await BussinessFunc.getBussinessModelList(1);
_todoModelList = dataList.map((e) => ToDoModel.fromJson(e)).toList();
_anounceMentList = await _getAnouncement();
_onload = false;
setState(() {});
}
});
} }
int _currentIndicator = 0; int _currentIndicator = 0;
@ -407,227 +399,253 @@ class _HomePageState extends State<HomePage> {
), ),
), ),
// //
body: (!UserTool.userProvider.isLogin) body: EasyRefresh(
? SizedBox() firstRefresh: true,
: _onload header: MaterialHeader(),
? loadingWidget controller: _refreshController,
: ListView( onRefresh: () async {
padding: EdgeInsets.all(32.w), final userProvider =
children: [ Provider.of<UserProvider>(context, listen: false);
Container( if (userProvider.isLogin) {
// _itemNumModel = await _getItemNum();
width: double.infinity, var dataList = await BussinessFunc.getBussinessModelList(1);
height: 45.w, _todoModelList =
child: Row( dataList.map((e) => ToDoModel.fromJson(e)).toList();
mainAxisAlignment: MainAxisAlignment.center, _anounceMentList = await _getAnouncement();
children: [ _onload = false;
Text( setState(() {});
'今日公告', }
style: TextStyle( },
color: Color(0xFF4A4B51), child: (!UserTool.userProvider.isLogin)
fontSize: 32.sp, ? SizedBox()
fontWeight: FontWeight.bold, : _onload
? loadingWidget
: ListView(
padding: EdgeInsets.all(32.w),
children: [
Container(
//
width: double.infinity,
height: 45.w,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'今日公告',
style: TextStyle(
color: Color(0xFF4A4B51),
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
Spacer(),
AkuButton(
//
onPressed: () {
Get.to(() => AllAnouncement());
},
child: Row(
children: [
Text(
'全部公告',
style: TextStyle(
color: AppStyle.minorTextColor,
fontSize: 24.sp,
fontWeight: FontWeight.bold,
),
),
Icon(
Icons.arrow_forward_ios,
size: 22.w,
color: AppStyle.minorTextColor,
)
],
),
),
],
),
),
SizedBox(height: 16.w),
//
Container(
color: Color(0xFFFFFFFF),
width: double.infinity,
height: 172.w,
child: Stack(children: [
CarouselSlider(
items: _anounceMentList
.map(
(e) => AllAnouncementState.anounceCard(e))
.toList(),
options: CarouselOptions(
viewportFraction: 1.0,
aspectRatio: 686 / 172,
autoPlay: true,
onPageChanged: (index, _) {
setState(() {
_currentIndicator = index;
});
},
), ),
), ),
Spacer(), Positioned(
AkuButton( top: 144.w,
// left: 0,
onPressed: () { bottom: 16.w,
Get.to(() => AllAnouncement()); right: 0,
},
child: Row( child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: _anounceMentList.map((e) {
int index = _anounceMentList.indexOf(e);
return Container(
width: 12.w,
height: 12.w,
margin:
EdgeInsets.symmetric(horizontal: 12.w),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: _currentIndicator == index
? Color(0xFFFFC40C)
: Color(0xFFE8E8E8),
),
);
}).toList(),
),
),
]),
),
SizedBox(height: 16.w),
//
!userProvider.isLogin
? SizedBox()
: Row(
children: [ children: [
Text( Text(
'全部公告', '待办事项',
style: TextStyle( style: TextStyle(
color: AppStyle.minorTextColor, color: Color(0xFF4A4B51),
fontSize: 24.sp, fontSize: 32.sp,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
), ),
Icon( Spacer(),
Icons.arrow_forward_ios, AkuButton(
size: 22.w, padding:
color: AppStyle.minorTextColor, EdgeInsets.symmetric(vertical: 16.w),
) onPressed: () {
Get.to(BusinessPage(initIndex: 3));
},
child: Row(
children: [
Text(
'全部事项',
style: TextStyle(
color: AppStyle.minorTextColor,
fontSize: 24.sp,
fontWeight: FontWeight.bold),
),
Icon(
Icons.arrow_forward_ios,
size: 22.w,
color: AppStyle.minorTextColor,
),
],
),
),
], ],
), ),
), SizedBox(height: 16.w),
], //
), !userProvider.isLogin
), ? SizedBox()
SizedBox(height: 16.w), : Container(
// height: 500.w,
Container( child: ListView.separated(
color: Color(0xFFFFFFFF), padding: EdgeInsets.zero,
width: double.infinity, separatorBuilder: (context, index) {
height: 172.w, return AkuBox.w(16);
child: Stack(children: [
CarouselSlider(
items: _anounceMentList
.map((e) => AllAnouncementState.anounceCard(e))
.toList(),
options: CarouselOptions(
viewportFraction: 1.0,
aspectRatio: 686 / 172,
autoPlay: true,
onPageChanged: (index, _) {
setState(() {
_currentIndicator = index;
});
},
),
),
Positioned(
top: 144.w,
left: 0,
bottom: 16.w,
right: 0,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: _anounceMentList.map((e) {
int index = _anounceMentList.indexOf(e);
return Container(
width: 12.w,
height: 12.w,
margin:
EdgeInsets.symmetric(horizontal: 12.w),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: _currentIndicator == index
? Color(0xFFFFC40C)
: Color(0xFFE8E8E8),
),
);
}).toList(),
),
),
]),
),
SizedBox(height: 16.w),
//
!userProvider.isLogin
? SizedBox()
: Row(
children: [
Text(
'待办事项',
style: TextStyle(
color: Color(0xFF4A4B51),
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
Spacer(),
AkuButton(
padding: EdgeInsets.symmetric(vertical: 16.w),
onPressed: () {
Get.to(BusinessPage(initIndex: 3));
}, },
child: Row( scrollDirection: Axis.horizontal,
children: [ itemBuilder: (context, index) {
Text( return Container(
'全部事项', width: 526.w,
style: TextStyle( child: Builder(
color: AppStyle.minorTextColor, builder: (context) {
fontSize: 24.sp, if (_todoModelList[index]
fontWeight: FontWeight.bold), .dynamicModel
), .runtimeType ==
Icon( BussinessAndFixModel) {
Icons.arrow_forward_ios, return BusinessFixCard(
size: 22.w, callRefresh: () {
color: AppStyle.minorTextColor, _refreshController
.callRefresh();
},
model: _todoModelList[index]
.dynamicModel);
} else if (_todoModelList[index]
.dynamicModel
.runtimeType ==
ToDoOutDoorModel) {
return ToDoOutDoorCard(
model: _todoModelList[index]
.dynamicModel,
);
} else
return SizedBox();
},
), ),
], );
), },
itemCount: _todoModelList.length,
), ),
],
),
SizedBox(height: 16.w),
//
!userProvider.isLogin
? SizedBox()
: Container(
height: 480.w,
child: ListView.separated(
separatorBuilder: (context, index) {
return AkuBox.w(16);
},
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
return Container(
width: 526.w,
child: Builder(
builder: (context) {
if (_todoModelList[index]
.dynamicModel
.runtimeType ==
BussinessAndFixModel) {
return BusinessFixCard(
model: _todoModelList[index]
.dynamicModel);
} else if (_todoModelList[index]
.dynamicModel
.runtimeType ==
ToDoOutDoorModel) {
return ToDoOutDoorCard(
model: _todoModelList[index]
.dynamicModel,
);
} else
return SizedBox();
},
),
);
},
itemCount: _todoModelList.length,
), ),
), SizedBox(height: 24.w),
SizedBox(height: 24.w), //
// !userProvider.isLogin
!userProvider.isLogin ? SizedBox()
? SizedBox() : Container(
: Container( width: double.infinity,
width: double.infinity, decoration: BoxDecoration(
decoration: BoxDecoration( borderRadius: BorderRadius.circular(8.w),
borderRadius: BorderRadius.circular(8.w), color: Colors.white,
color: Colors.white, ),
), child: Column(
child: Column( children: [
children: [ Row(
Row( children: [
children: [ _card(_itemNumModel.unProcessedNum ?? 0,
_card(_itemNumModel.unProcessedNum ?? 0, '未处理事项', Color(0xFFFF4E0D), 0),
'未处理事项', Color(0xFFFF4E0D), 0), GridientDiveder()
.verticalDivider(166.5.w),
_card(_itemNumModel.processingNum ?? 0,
'处理中事项', Color(0xFFFFC40C), 1),
],
),
Row(children: [
GridientDiveder() GridientDiveder()
.verticalDivider(166.5.w), .horizontalDivider(343.w),
_card(_itemNumModel.processingNum ?? 0,
'处理中事项', Color(0xFFFFC40C), 1),
],
),
Row(children: [
GridientDiveder().horizontalDivider(343.w),
GridientDiveder(isReverse: true)
.horizontalDivider(343.w)
]),
Row(
children: [
_card(_itemNumModel.processedNum ?? 0,
'已处理事项', Color(0xFF3F8FFE), 2),
GridientDiveder(isReverse: true) GridientDiveder(isReverse: true)
.verticalDivider( .horizontalDivider(343.w)
166.5.w, ]),
), Row(
_card(_itemNumModel.allNum ?? 0, '全部事项', children: [
Color(0xFF333333), 3), _card(_itemNumModel.processedNum ?? 0,
], '已处理事项', Color(0xFF3F8FFE), 2),
), GridientDiveder(isReverse: true)
], .verticalDivider(
166.5.w,
),
_card(_itemNumModel.allNum ?? 0, '全部事项',
Color(0xFF333333), 3),
],
),
],
),
), ),
), ],
], ),
), ),
), ),
value: SystemUiOverlayStyle.dark, value: SystemUiOverlayStyle.dark,
); );

@ -42,7 +42,6 @@ class BusinessAndFixDetailPage extends StatefulWidget {
} }
class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> { class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> {
bool get isHandOut => widget.model.status == 1; bool get isHandOut => widget.model.status == 1;
FixedDetailModel _detailModel; FixedDetailModel _detailModel;
bool _onload = true; bool _onload = true;
@ -138,7 +137,7 @@ class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> {
), ),
); );
} else if (widget.model.status == 2) { } else if (widget.model.status == 2) {
if (userProvider.infoModel.canSendTicket){ if (userProvider.infoModel.canSendTicket) {
return AkuMaterialButton( return AkuMaterialButton(
color: AppStyle.primaryColor, color: AppStyle.primaryColor,
nullColor: AppStyle.minorColor, nullColor: AppStyle.minorColor,
@ -204,9 +203,10 @@ class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> {
color: AppStyle.primaryColor, color: AppStyle.primaryColor,
), ),
), ),
onPressed: () { onPressed: () async {
Get.to( await Get.to(
FixMoreTimePage(dispatchId: widget.model.dispatchId)); FixMoreTimePage(dispatchId: widget.model.dispatchId));
_easyRefreshController.callRefresh();
}, },
child: Text( child: Text(
'申请延时', '申请延时',
@ -404,7 +404,7 @@ class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> {
title: '报修进程', title: '报修进程',
children: _detailModel.processRecord.map((e) { children: _detailModel.processRecord.map((e) {
return _buildProcessTile( return _buildProcessTile(
AkuMap.operationType[e.operationType], AkuMap.operationType(e.operationType),
DateUtil.formatDateStr(e.operationDate, DateUtil.formatDateStr(e.operationDate,
format: 'yyyy-MM-dd HH:mm:ss'), format: 'yyyy-MM-dd HH:mm:ss'),
); );

@ -25,11 +25,16 @@ class BusinessFixCard extends StatefulWidget {
final BussinessAndFixModel model; final BussinessAndFixModel model;
final bool homeDisplay; final bool homeDisplay;
final bool canSeeBottomButton; final bool canSeeBottomButton;
final VoidCallback callRefresh;
//
final bool hasFinished;
BusinessFixCard( BusinessFixCard(
{Key key, {Key key,
@required this.model, @required this.model,
this.homeDisplay = false, this.homeDisplay = false,
this.canSeeBottomButton = true}) this.canSeeBottomButton = true,
this.callRefresh,
this.hasFinished = false})
: super(key: key); : super(key: key);
@override @override
@ -70,8 +75,11 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () async {
Get.to(() => BusinessAndFixDetailPage(model: widget.model)); await Get.to(() => BusinessAndFixDetailPage(model: widget.model));
if (widget.callRefresh != null) {
widget.callRefresh();
}
}, },
child: Container( child: Container(
padding: EdgeInsets.all(24.w), padding: EdgeInsets.all(24.w),
@ -93,13 +101,17 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
), ),
), ),
Text( Text(
AkuMap.fixStatus(userInfoModel.canSendTicket, widget.hasFinished
userInfoModel.canPickUpTicket, widget.model.status), ? '已处理'
style: TextStyle( : AkuMap.fixStatus(userInfoModel.canSendTicket,
color: widget.model.status < 4 userInfoModel.canPickUpTicket, widget.model.status),
? Color(0XFFFF4501) style: widget.hasFinished
: AppStyle.minorTextColor, ? TextStyle(color: AppStyle.minorTextColor)
), : TextStyle(
color: widget.model.status < 4
? Color(0XFFFF4501)
: AppStyle.minorTextColor,
),
), ),
], ],
), ),
@ -194,8 +206,8 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
widget.model.status == 3 ? AkuBox.w(24) : SizedBox(), widget.model.status == 3 ? AkuBox.w(24) : SizedBox(),
widget.model.status == 3 widget.model.status == 3
? AkuMaterialButton( ? AkuMaterialButton(
onPressed: () { onPressed: () async {
Get.to(() => BusinessAndFixDetailPage( await Get.to(() => BusinessAndFixDetailPage(
model: widget.model, model: widget.model,
)); ));
}, },
@ -214,7 +226,7 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
: SizedBox(), : SizedBox(),
(widget.model.status == 2) && (userInfoModel.canPickUpTicket) (widget.model.status == 2) && (userInfoModel.canPickUpTicket)
? AkuMaterialButton( ? AkuMaterialButton(
onPressed: () { onPressed: () async {
// final userProvider = // final userProvider =
// Provider.of<UserProvider>(context, listen: false); // Provider.of<UserProvider>(context, listen: false);
// widget.model.detail.fixStatuses.add(FixStatus( // widget.model.detail.fixStatuses.add(FixStatus(
@ -223,9 +235,12 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
// )); // ));
// widget.model.type = FIX_ENUM.PROCESSING; // widget.model.type = FIX_ENUM.PROCESSING;
// Get.back(); // Get.back();
Get.to(() => BusinessAndFixDetailPage( await Get.to(() => BusinessAndFixDetailPage(
model: widget.model, model: widget.model,
)); ));
if (widget.callRefresh != null) {
widget.callRefresh();
}
}, },
radius: 4.w, radius: 4.w,
color: AppStyle.primaryColor, color: AppStyle.primaryColor,
@ -252,8 +267,11 @@ class _BusinessFixCardState extends State<BusinessFixCard> {
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: AkuMaterialButton( child: AkuMaterialButton(
height: 64.w, height: 64.w,
onPressed: () { onPressed: () async {
Get.to(() => BusinessAndFixDetailPage(model: widget.model)); Get.to(() => BusinessAndFixDetailPage(model: widget.model));
if (widget.callRefresh != null) {
widget.callRefresh();
}
}, },
radius: 4, radius: 4,
color: AppStyle.primaryColor, color: AppStyle.primaryColor,

@ -47,7 +47,11 @@ class _BussinessAndFixViewState extends State<BussinessAndFixView>
builder: (items) { builder: (items) {
return ListView.separated( return ListView.separated(
itemBuilder: (context, index) { itemBuilder: (context, index) {
return BusinessFixCard(model: items[index]); return BusinessFixCard(
model: items[index],
callRefresh: () {
_easyRefreshController.callRefresh();
});
}, },
separatorBuilder: (_, __) { separatorBuilder: (_, __) {
return 16.w.heightBox; return 16.w.heightBox;

@ -23,6 +23,7 @@ class FixSubmitFinishPage extends StatelessWidget {
'您已处理完成该报修'.text.black.size(40.sp).bold.make(), '您已处理完成该报修'.text.black.size(40.sp).bold.make(),
120.w.heightBox, 120.w.heightBox,
BusinessFixCard( BusinessFixCard(
hasFinished: true,
model: this.model, model: this.model,
canSeeBottomButton: false, canSeeBottomButton: false,
), ),

@ -289,76 +289,97 @@ class _FixWorkFinishPageState extends State<FixWorkFinishPage> {
title: '费用明细', title: '费用明细',
spacing: 16, spacing: 16,
children: [ children: [
Row( SizedBox(
children: [ height: 96.w,
AkuBox.h(96), child: Row(
Text('人工费'), children: [
Expanded( Text(
child: TextField( '人工费',
controller: _humanController, style:
onChanged: (_) => setState(() {}), TextStyle(color: Colors.black, fontSize: 28.sp),
keyboardType: TextInputType.number, ),
textAlign: TextAlign.end, Expanded(
decoration: InputDecoration( child: TextField(
border: InputBorder.none, controller: _humanController,
hintText: '请输入', onChanged: (_) => setState(() {}),
hintStyle: TextStyle( keyboardType: TextInputType.number,
fontWeight: FontWeight.bold, textAlign: TextAlign.end,
fontSize: 28.sp, decoration: InputDecoration(
color: AppStyle.minorTextColor, border: InputBorder.none,
hintText: '请输入',
hintStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 28.sp,
color: AppStyle.minorTextColor,
),
), ),
), ),
), ),
), ],
], ),
), ),
Divider(height: 1.w), Divider(height: 1.w),
Row( SizedBox(
children: [ height: 96.w,
AkuBox.h(96), child: Row(
Text('材料费'), children: [
Expanded( Text(
child: TextField( '材料费',
onChanged: (_) => setState(() {}), style:
controller: _materialPriceController, TextStyle(color: Colors.black, fontSize: 28.sp),
textAlign: TextAlign.end, ),
keyboardType: TextInputType.number, Expanded(
decoration: InputDecoration( child: TextField(
border: InputBorder.none, onChanged: (_) => setState(() {}),
hintText: '请输入', controller: _materialPriceController,
hintStyle: TextStyle( textAlign: TextAlign.end,
fontWeight: FontWeight.bold, keyboardType: TextInputType.number,
fontSize: 28.sp, decoration: InputDecoration(
color: AppStyle.minorTextColor, border: InputBorder.none,
hintText: '请输入',
hintStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 28.sp,
color: AppStyle.minorTextColor,
),
), ),
), ),
), ),
), ],
], ),
), ),
Divider(height: 1.w), Divider(height: 1.w),
Row( SizedBox(
children: [ height: 96.w,
AkuBox.h(96), child: Row(
Text('总计费用'), children: [
Spacer(), Text(
Builder( '总计费用',
builder: (context) { style:
if (TextUtil.isEmpty(_humanController.text) || TextStyle(color: Colors.black, fontSize: 28.sp),
TextUtil.isEmpty( ),
_materialPriceController.text)) { Spacer(),
return Text('人工费或材料费不能为空'); Builder(
} else { builder: (context) {
humanPrice = if (TextUtil.isEmpty(_humanController.text) ||
double.tryParse(_humanController.text); TextUtil.isEmpty(
materialPrice = double.tryParse( _materialPriceController.text)) {
_materialPriceController.text); return Text('人工费或材料费不能为空');
} } else {
return Text( humanPrice =
'¥${(humanPrice + materialPrice).toStringAsFixed(2)}'); double.tryParse(_humanController.text);
}, materialPrice = double.tryParse(
), _materialPriceController.text);
], }
return Text(
'¥${(humanPrice + materialPrice).toStringAsFixed(2)}',
style: TextStyle(
color: Colors.black, fontSize: 28.sp),
);
},
),
],
),
), ),
], ],
), ),
@ -409,6 +430,7 @@ class _FixWorkFinishPageState extends State<FixWorkFinishPage> {
if (baseModel.status) { if (baseModel.status) {
FixSubmitFinishPage( FixSubmitFinishPage(
model: widget.fixModel, model: widget.fixModel,
).to(); ).to();
} else { } else {
BotToast.showText(text: baseModel.message); BotToast.showText(text: baseModel.message);

@ -5,7 +5,7 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _fe_analyzer_shared name: _fe_analyzer_shared
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "21.0.0" version: "21.0.0"
aku_ui: aku_ui:
@ -21,322 +21,329 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: amap_flutter_base name: amap_flutter_base
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
amap_flutter_location: amap_flutter_location:
dependency: "direct main" dependency: "direct main"
description: description:
name: amap_flutter_location name: amap_flutter_location
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
amap_flutter_map: amap_flutter_map:
dependency: "direct main" dependency: "direct main"
description: description:
name: amap_flutter_map name: amap_flutter_map
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
name: analyzer name: analyzer
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.5.0" version: "1.5.0"
animator: animator:
dependency: transitive dependency: transitive
description: description:
name: animator name: animator
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
args: args:
dependency: transitive dependency: transitive
description: description:
name: args name: args
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.5.0" version: "2.5.0"
auto_size_text: auto_size_text:
dependency: transitive dependency: transitive
description: description:
name: auto_size_text name: auto_size_text
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.0-nullsafety.0" version: "3.0.0-nullsafety.0"
auto_size_text_pk: auto_size_text_pk:
dependency: transitive dependency: transitive
description: description:
name: auto_size_text_pk name: auto_size_text_pk
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
badges: badges:
dependency: "direct main" dependency: "direct main"
description: description:
name: badges name: badges
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "2.0.0-nullsafety.1"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
bot_toast: bot_toast:
dependency: "direct main" dependency: "direct main"
description: description:
name: bot_toast name: bot_toast
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.1" version: "4.0.1"
build: build:
dependency: transitive dependency: transitive
description: description:
name: build name: build
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
build_config: build_config:
dependency: transitive dependency: transitive
description: description:
name: build_config name: build_config
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
carousel_slider: carousel_slider:
dependency: "direct main" dependency: "direct main"
description: description:
name: carousel_slider name: carousel_slider
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.0-nullsafety.0" version: "4.0.0-nullsafety.0"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
name: checked_yaml name: checked_yaml
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
cli_util: cli_util:
dependency: transitive dependency: transitive
description: description:
name: cli_util name: cli_util
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.3.0" version: "0.3.0"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.15.0" version: "1.15.0"
common_utils: common_utils:
dependency: "direct main" dependency: "direct main"
description: description:
name: common_utils name: common_utils
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
convert: convert:
dependency: transitive dependency: transitive
description: description:
name: convert name: convert
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.1" version: "3.0.1"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "1.0.3"
dart_style: dart_style:
dependency: transitive dependency: transitive
description: description:
name: dart_style name: dart_style
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
decimal: decimal:
dependency: transitive dependency: transitive
description: description:
name: decimal name: decimal
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
device_info_plus: device_info_plus:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus name: device_info_plus
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
device_info_plus_linux: device_info_plus_linux:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_linux name: device_info_plus_linux
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
device_info_plus_macos: device_info_plus_macos:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_macos name: device_info_plus_macos
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
device_info_plus_platform_interface: device_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_platform_interface name: device_info_plus_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.2" version: "1.0.2"
device_info_plus_web: device_info_plus_web:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_web name: device_info_plus_web
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
device_info_plus_windows: device_info_plus_windows:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_windows name: device_info_plus_windows
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
dio: dio:
dependency: "direct main" dependency: "direct main"
description: description:
name: dio name: dio
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.0" version: "4.0.0"
dotted_border: dotted_border:
dependency: "direct main" dependency: "direct main"
description: description:
name: dotted_border name: dotted_border
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
expandable: expandable:
dependency: "direct main" dependency: "direct main"
description: description:
name: expandable name: expandable
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.0.1" version: "5.0.1"
extended_list_library:
dependency: transitive
description:
name: extended_list_library
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
extended_text: extended_text:
dependency: "direct main" dependency: "direct main"
description: description:
name: extended_text name: extended_text
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.0.5" version: "5.0.5"
extended_text_library: extended_text_library:
dependency: transitive dependency: transitive
description: description:
name: extended_text_library name: extended_text_library
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.0.2" version: "5.0.2"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "6.1.0" version: "6.1.0"
firebase_core: firebase_core:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.1" version: "4.0.1"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "1.0.3"
firebase_crashlytics: firebase_crashlytics:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_crashlytics name: firebase_crashlytics
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.3" version: "2.0.3"
firebase_crashlytics_platform_interface: firebase_crashlytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics_platform_interface name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.3" version: "3.0.3"
flutter: flutter:
@ -348,14 +355,14 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_easyrefresh name: flutter_easyrefresh
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
flutter_highlight: flutter_highlight:
dependency: transitive dependency: transitive
description: description:
name: flutter_highlight name: flutter_highlight
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.7.0" version: "0.7.0"
flutter_localizations: flutter_localizations:
@ -367,21 +374,21 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
flutter_rating_bar: flutter_rating_bar:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_rating_bar name: flutter_rating_bar
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.0" version: "4.0.0"
flutter_screenutil: flutter_screenutil:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_screenutil name: flutter_screenutil
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.0.0+2" version: "5.0.0+2"
flutter_test: flutter_test:
@ -398,91 +405,91 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: get name: get
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.1.4" version: "4.1.4"
glob: glob:
dependency: transitive dependency: transitive
description: description:
name: glob name: glob
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
grinder: grinder:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: grinder name: grinder
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.9.0" version: "0.9.0"
highlight: highlight:
dependency: transitive dependency: transitive
description: description:
name: highlight name: highlight
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.7.0" version: "0.7.0"
hive: hive:
dependency: "direct main" dependency: "direct main"
description: description:
name: hive name: hive
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.6.0-nullsafety.2" version: "1.6.0-nullsafety.2"
hive_flutter: hive_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: hive_flutter name: hive_flutter
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.3.1" version: "0.3.1"
http: http:
dependency: transitive dependency: transitive
description: description:
name: http name: http
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.13.3" version: "0.13.3"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.0" version: "4.0.0"
image_picker: image_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker name: image_picker
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.7.5" version: "0.7.5"
image_picker_for_web: image_picker_for_web:
dependency: transitive dependency: transitive
description: description:
name: image_picker_for_web name: image_picker_for_web
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
image_picker_platform_interface: image_picker_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: image_picker_platform_interface name: image_picker_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
import_sorter: import_sorter:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: import_sorter name: import_sorter
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.5.1" version: "4.5.1"
intl: intl:
dependency: transitive dependency: transitive
description: description:
name: intl name: intl
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.17.0" version: "0.17.0"
jpush_flutter: jpush_flutter:
@ -498,224 +505,224 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.6.3" version: "0.6.3"
json_annotation: json_annotation:
dependency: transitive dependency: transitive
description: description:
name: json_annotation name: json_annotation
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.1" version: "4.0.1"
json_serializable: json_serializable:
dependency: "direct main" dependency: "direct main"
description: description:
name: json_serializable name: json_serializable
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.1.1" version: "4.1.1"
logger: logger:
dependency: "direct main" dependency: "direct main"
description: description:
name: logger name: logger
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
logging: logging:
dependency: transitive dependency: transitive
description: description:
name: logging name: logging
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.12.10" version: "0.12.10"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
name: nested name: nested
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
package_config: package_config:
dependency: transitive dependency: transitive
description: description:
name: package_config name: package_config
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
package_info_plus: package_info_plus:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus name: package_info_plus
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
package_info_plus_linux: package_info_plus_linux:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_linux name: package_info_plus_linux
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
package_info_plus_macos: package_info_plus_macos:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_macos name: package_info_plus_macos
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
package_info_plus_platform_interface: package_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_platform_interface name: package_info_plus_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
package_info_plus_web: package_info_plus_web:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_web name: package_info_plus_web
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
package_info_plus_windows: package_info_plus_windows:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_windows name: package_info_plus_windows
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.0" version: "1.8.0"
path_drawing: path_drawing:
dependency: transitive dependency: transitive
description: description:
name: path_drawing name: path_drawing
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.5.1" version: "0.5.1"
path_parsing: path_parsing:
dependency: transitive dependency: transitive
description: description:
name: path_parsing name: path_parsing
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.2.1" version: "0.2.1"
path_provider: path_provider:
dependency: transitive dependency: transitive
description: description:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
pedantic: pedantic:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: pedantic name: pedantic
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.11.0" version: "1.11.0"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
name: permission_handler name: permission_handler
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "6.1.3" version: "6.1.3"
permission_handler_platform_interface: permission_handler_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_platform_interface name: permission_handler_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.3.0" version: "3.3.0"
pin_input_text_field: pin_input_text_field:
dependency: "direct main" dependency: "direct main"
description: description:
name: pin_input_text_field name: pin_input_text_field
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.0.0" version: "4.0.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
power_logger: power_logger:
dependency: "direct main" dependency: "direct main"
description: description:
name: power_logger name: power_logger
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: provider name: provider
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.0.0" version: "5.0.0"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
name: pub_semver name: pub_semver
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
pubspec_parse: pubspec_parse:
dependency: transitive dependency: transitive
description: description:
name: pubspec_parse name: pubspec_parse
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
qr_code_scanner: qr_code_scanner:
dependency: "direct main" dependency: "direct main"
description: description:
name: qr_code_scanner name: qr_code_scanner
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.4.0" version: "0.4.0"
rational: rational:
dependency: transitive dependency: transitive
description: description:
name: rational name: rational
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0+1" version: "1.1.0+1"
shimmer: shimmer:
dependency: "direct main" dependency: "direct main"
description: description:
name: shimmer name: shimmer
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
sky_engine: sky_engine:
@ -727,161 +734,168 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_gen name: source_gen
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.0" version: "1.8.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.10.0" version: "1.10.0"
states_rebuilder: states_rebuilder:
dependency: transitive dependency: transitive
description: description:
name: states_rebuilder name: states_rebuilder
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.1.0" version: "4.1.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
name: stream_transform name: stream_transform
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.2.19" version: "0.2.19"
tint: tint:
dependency: transitive dependency: transitive
description: description:
name: tint name: tint
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "6.0.3" version: "6.0.3"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_linux name: url_launcher_linux
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_windows name: url_launcher_windows
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
velocity_x: velocity_x:
dependency: "direct main" dependency: "direct main"
description: description:
name: velocity_x name: velocity_x
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.6.1" version: "2.6.1"
vxstate: vxstate:
dependency: transitive dependency: transitive
description: description:
name: vxstate name: vxstate
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
name: watcher name: watcher
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
waterfall_flow:
dependency: "direct main"
description:
name: waterfall_flow
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.5" version: "2.0.5"
yaml: yaml:
dependency: transitive dependency: transitive
description: description:
name: yaml name: yaml
url: "https://pub.dartlang.org" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
sdks: sdks:

@ -3,7 +3,7 @@ description: A new Flutter application.
publish_to: "none" publish_to: "none"
version: 1.0.8+9 version: 1.5.0+10
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"
@ -55,6 +55,8 @@ dependencies:
firebase_crashlytics: ^2.0.0 firebase_crashlytics: ^2.0.0
#json序列化 #json序列化
json_serializable: ^4.1.1 json_serializable: ^4.1.1
#瀑布流
waterfall_flow: ^3.0.1
power_logger: ^1.0.1-nullsafety.1 power_logger: ^1.0.1-nullsafety.1
logger: ^1.0.0 logger: ^1.0.0
@ -69,7 +71,7 @@ dependencies:
url: https://git.oa00.com/flutter_third/jpush-flutter-plugin url: https://git.oa00.com/flutter_third/jpush-flutter-plugin
shimmer: ^2.0.0-nullsafety.0 shimmer: ^2.0.0-nullsafety.0
badges: ^1.2.0 badges: ^2.0.0-nullsafety.1
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save