add fixed submit delete function

docking delete port
hmxc
张萌 4 years ago
parent 3985ba3b6a
commit 06e0340cf6

@ -9,6 +9,7 @@ const kPrimaryColor=Color(0xFFFFC40C);
const kDarkPrimaryColor=Color(0xFFFF8200); const kDarkPrimaryColor=Color(0xFFFF8200);
const kDangerColor=Color(0xFFFF3B30); const kDangerColor=Color(0xFFFF3B30);
const kEstateName='宁波华悦茂峰'; const kEstateName='宁波华悦茂峰';
const kDarkSubColor=Color(0xFF979797);
class BaseStyle { class BaseStyle {
/// ///
static final double fontSize18 = 18.sp; static final double fontSize18 = 18.sp;

@ -68,4 +68,7 @@ class _Manager {
///app ///app
String get reportRepairInsert => '/user/reportRepair/insert'; String get reportRepairInsert => '/user/reportRepair/insert';
///
String get reportRepairDelete => '/user/reportRepair/falseDelete';
} }

@ -34,4 +34,13 @@ class ManagerFunc {
); );
return baseModel; return baseModel;
} }
static reportRepairDelete(List<int> ids) async {
BaseModel baseModel = await NetUtil().post(
API.manager.reportRepairDelete,
params: {'ids': ids},
showMessage: true,
);
return baseModel;
}
} }

@ -1,14 +1,19 @@
import 'package:akuCommunity/base/base_style.dart'; import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/constants/api.dart'; import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/user/fixed_submit_model.dart'; import 'package:akuCommunity/model/user/fixed_submit_model.dart';
import 'package:akuCommunity/pages/manager_func.dart';
import 'package:akuCommunity/pages/things_page/widget/add_fixed_submit_page.dart'; import 'package:akuCommunity/pages/things_page/widget/add_fixed_submit_page.dart';
import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart'; import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart';
import 'package:akuCommunity/pages/things_page/widget/fixed_check_box.dart';
import 'package:akuCommunity/provider/user_provider.dart';
import 'package:akuCommunity/utils/bee_map.dart'; import 'package:akuCommunity/utils/bee_map.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/horizontal_image_view.dart'; import 'package:akuCommunity/widget/horizontal_image_view.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import 'package:akuCommunity/extensions/num_ext.dart'; import 'package:akuCommunity/extensions/num_ext.dart';
import 'package:akuCommunity/extensions/page_router.dart'; import 'package:akuCommunity/extensions/page_router.dart';
@ -22,6 +27,8 @@ class FixedSubmitPage extends StatefulWidget {
class _FixedSubmitPageState extends State<FixedSubmitPage> { class _FixedSubmitPageState extends State<FixedSubmitPage> {
EasyRefreshController _easyRefreshController; EasyRefreshController _easyRefreshController;
bool _isEdit = false;
List<int> _selected = [];
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -50,57 +57,107 @@ class _FixedSubmitPageState extends State<FixedSubmitPage> {
} }
} }
bool _canSkew(int state) {
switch (state) {
case 1:
case 2:
case 3:
return false;
case 4:
case 5:
case 6:
case 7:
return true;
default:
return true;
}
}
Widget _buildCard(FixedSubmitModel model) { Widget _buildCard(FixedSubmitModel model) {
return Container( return AnimatedPositioned(
decoration: BoxDecoration( top: 0,
color: kForeGroundColor, borderRadius: BorderRadius.circular(8.w)), left: (_canSkew(4) && _isEdit) ? 55.w : 0,
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w), bottom: 0,
child: Column( duration: Duration(milliseconds: 300),
crossAxisAlignment: CrossAxisAlignment.start, curve: Curves.easeInOutCubic,
children: [ child: Container(
Row( width: 686.w,
children: [ decoration: BoxDecoration(
BeeMap() color: kForeGroundColor, borderRadius: BorderRadius.circular(8.w)),
.fixTag[model.type] padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w),
.text child: Column(
.color(ktextPrimary) crossAxisAlignment: CrossAxisAlignment.start,
.bold children: [
.size(32.sp) Row(
.make(), children: [
Spacer(), BeeMap()
BeeMap() .fixTag[model.type]
.fixState[model.status] .text
.text .color(ktextPrimary)
.color(_getColor(model.status)) .bold
.size(24.sp) .size(32.sp)
.make(), .make(),
], Spacer(),
), BeeMap()
24.hb, .fixState[model.status]
Divider( .text
thickness: 1.w, .color(_getColor(model.status))
height: 0, .size(24.sp)
), .make(),
24.hb, ],
model.reportDetail.text ),
.color(ktextSubColor) 24.hb,
.size(28.sp) Divider(
.ellipsis thickness: 1.w,
.make(), height: 0,
16.hb, ),
model.imgUrls.length != 0 24.hb,
? HorizontalImageView(List.generate( model.reportDetail.text
model.imgUrls.length, (index) => model.imgUrls[index].url)) .color(ktextSubColor)
: SizedBox(), .size(28.sp)
], .ellipsis
.make(),
16.hb,
model.imgUrls.length != 0
? HorizontalImageView(List.generate(
model.imgUrls.length, (index) => model.imgUrls[index].url))
: SizedBox(),
],
),
), ),
); );
} }
Widget _buildCheckBox(FixedSubmitModel model) {
return Container(
alignment: Alignment.centerLeft,
constraints: BoxConstraints(minHeight: 384.w, minWidth: 686.w),
child: FixedCheckBox(
onChanged: (isSelect) {
if (isSelect) {
_selected.add(model.id);
} else {
_selected.remove(model.id);
}
},
));
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context);
return BeeScaffold( return BeeScaffold(
title: '报事报修', title: '报事报修',
actions: [
IconButton(
icon: _isEdit
? '完成'.text.black.size(28.sp).make()
: '编辑'.text.black.size(28.sp).make(),
onPressed: () {
_isEdit = !_isEdit;
setState(() {});
})
],
body: Column( body: Column(
children: [ children: [
BeeListView( BeeListView(
@ -115,7 +172,12 @@ class _FixedSubmitPageState extends State<FixedSubmitPage> {
return ListView.separated( return ListView.separated(
padding: EdgeInsets.all(32.w), padding: EdgeInsets.all(32.w),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return _buildCard(items[index]); return Stack(
children: [
_buildCheckBox(items[index]),
_buildCard(items[index])
],
);
}, },
separatorBuilder: (context, index) { separatorBuilder: (context, index) {
return 24.w.heightBox; return 24.w.heightBox;
@ -124,10 +186,19 @@ class _FixedSubmitPageState extends State<FixedSubmitPage> {
}, },
).expand(), ).expand(),
MaterialButton( MaterialButton(
onPressed: () { onPressed: _isEdit
AddFixedSubmitPage().to(); ? () {
}, ManagerFunc.reportRepairDelete(_selected);
child: '新增'.text.bold.color(ktextPrimary).size(32.sp).make(), _easyRefreshController.callRefresh();
}
: () {
userProvider.isLogin
? AddFixedSubmitPage().to()
: BotToast.showText(text: '请先登录!');
},
child: _isEdit
? '删除订单'.text.bold.color(ktextPrimary).size(32.sp).make()
: '新增'.text.bold.color(ktextPrimary).size(32.sp).make(),
minWidth: double.infinity, minWidth: double.infinity,
height: 98.w, height: 98.w,
elevation: 0, elevation: 0,

@ -0,0 +1,45 @@
import 'package:akuCommunity/base/base_style.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class FixedCheckBox extends StatefulWidget {
final Function(bool isSelect) onChanged;
FixedCheckBox({Key key, this.onChanged}) : super(key: key);
@override
_FixedCheckBoxState createState() => _FixedCheckBoxState();
}
class _FixedCheckBoxState extends State<FixedCheckBox> {
bool _isSelected = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
setState(() {
_isSelected = !_isSelected;
});
widget.onChanged(_isSelected);
},
child: Container(
alignment: Alignment.center,
width: 40.w,
height: 40.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40.w),
border: Border.all(
width: 3.w, color: _isSelected ? kPrimaryColor : kDarkSubColor),
color: Colors.transparent,
),
child: Container(
width: 24.w,
height: 24.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(24.w),
color: _isSelected ? kPrimaryColor : Colors.transparent,
),
),
),
);
}
}

@ -25,13 +25,13 @@ class _HorizontalImageViewState extends State<HorizontalImageView> {
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Padding( return Padding(
padding: EdgeInsets.all(16.w), padding: EdgeInsets.all(16.w),
child: ClipRRect( // child: ClipRRect(
borderRadius: BorderRadius.circular(8.w), // borderRadius: BorderRadius.circular(8.w),
child: FadeInImage.assetNetwork( // child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_DRAWINGS_PNG, // placeholder: R.ASSETS_IMAGES_DRAWINGS_PNG,
image: API.resource + widget.urls[index], // image: API.resource + widget.urls[index],
), // ),
), // ),
); );
}, },
), ),

Loading…
Cancel
Save