finish deto create page

对接接口:提交物品出户信息
hmxc
张萌 4 years ago
parent 4c93484e58
commit e3eb91d6d6

@ -121,6 +121,9 @@ class _Manager {
/// ///
String get getMovingCompanyTel => '/user/articleOut/getMovingCompanyTel'; String get getMovingCompanyTel => '/user/articleOut/getMovingCompanyTel';
///
String get articleOutSubmit => '/user/articleOut/submit';
} }
class _Community { class _Community {

@ -4,7 +4,13 @@
import 'dart:io'; import 'dart:io';
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/pages/goods_deto_page/select_move_company_page.dart'; import 'package:akuCommunity/pages/goods_deto_page/select_move_company_page.dart';
import 'package:akuCommunity/pages/manager_func.dart';
import 'package:akuCommunity/utils/bee_parse.dart';
import 'package:akuCommunity/utils/network/base_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -20,15 +26,10 @@ import 'package:akuCommunity/provider/user_provider.dart';
import 'package:akuCommunity/utils/headers.dart'; import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_divider.dart'; import 'package:akuCommunity/widget/bee_divider.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/buttons/bee_check_box.dart';
import 'package:akuCommunity/widget/buttons/bee_check_button.dart'; import 'package:akuCommunity/widget/buttons/bee_check_button.dart';
import 'package:akuCommunity/widget/buttons/bottom_button.dart'; import 'package:akuCommunity/widget/buttons/bottom_button.dart';
import 'package:akuCommunity/widget/buttons/radio_button.dart';
import 'package:akuCommunity/widget/picker/bee_custom_picker.dart';
import 'package:akuCommunity/widget/picker/bee_date_picker.dart'; import 'package:akuCommunity/widget/picker/bee_date_picker.dart';
import 'package:akuCommunity/widget/picker/grid_image_picker.dart'; import 'package:akuCommunity/widget/picker/grid_image_picker.dart';
import 'widget/common_picker.dart';
import 'widget/common_radio.dart';
class DetoCreatePage extends StatefulWidget { class DetoCreatePage extends StatefulWidget {
DetoCreatePage({Key key}) : super(key: key); DetoCreatePage({Key key}) : super(key: key);
@ -40,15 +41,12 @@ class DetoCreatePage extends StatefulWidget {
class _DetoCreatePageState extends State<DetoCreatePage> { class _DetoCreatePageState extends State<DetoCreatePage> {
List<File> _files = []; List<File> _files = [];
UserProvider get userProvider => Provider.of<UserProvider>(context); UserProvider get userProvider => Provider.of<UserProvider>(context);
String get firstEstateName {
return userProvider.userDetailModel.estateNames.isEmpty
? ''
: userProvider.userDetailModel.estateNames[0];
}
String _itemName; String _itemName;
DateTime _date; DateTime _date;
String get datetime=>DateUtil.formatDate(_date, format: "yyyy-MM-dd HH:mm:ss");
int _selectWeight; int _selectWeight;
String _selectTel;
List<String> _listWeight = [ List<String> _listWeight = [
'< 50kg', '< 50kg',
'50kg-100kg', '50kg-100kg',
@ -350,8 +348,8 @@ class _DetoCreatePageState extends State<DetoCreatePage> {
'搬家公司信息'.text.color(ktextPrimary).size(28.sp).make(), '搬家公司信息'.text.color(ktextPrimary).size(28.sp).make(),
16.w.heightBox, 16.w.heightBox,
InkWell( InkWell(
onTap: () { onTap: () async {
SelectMoveCompanyPage().to(); _selectTel = await SelectMoveCompanyPage().to();
}, },
child: Padding( child: Padding(
padding: EdgeInsets.symmetric(vertical: 30.w), padding: EdgeInsets.symmetric(vertical: 30.w),
@ -375,17 +373,37 @@ class _DetoCreatePageState extends State<DetoCreatePage> {
); );
} }
bool _canSubmit(int weight, int approach, DateTime dateTime, String item) {
if (weight == null) {
return false;
} else if (approach == null) {
return false;
} else if (dateTime == null) {
return false;
} else if (item.isEmptyOrNull) {
return false;
} else {
return true;
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context);
return BeeScaffold( return BeeScaffold(
title: '物品出户', title: '物品出户',
body: ListView( body: ListView(
padding: EdgeInsets.all(32.w), padding: EdgeInsets.all(32.w),
children: [ children: [
_houseAddress(kEstateName, firstEstateName), _houseAddress(
kEstateName,
userProvider.userDetailModel.estateNames.isEmpty
? ''
: BeeParse.getEstateName(
userProvider.userDetailModel.estateNames[0])),
_getWeight(), _getWeight(),
_itemPicker( _itemPicker(
'出户时间', DateUtil.formatDate(_date, format: "yyyy-MM-dd HH:mm:ss"), '出户时间', datetime,
() async { () async {
_date = await BeeDatePicker.timePicker(DateTime.now()); _date = await BeeDatePicker.timePicker(DateTime.now());
setState(() {}); setState(() {});
@ -413,7 +431,28 @@ class _DetoCreatePageState extends State<DetoCreatePage> {
), ),
bottomNavi: BottomButton( bottomNavi: BottomButton(
child: '确认提交'.text.color(ktextPrimary).bold.make(), child: '确认提交'.text.color(ktextPrimary).bold.make(),
onPressed: () {}, onPressed: _canSubmit(_selectWeight, _selectApproach, _date, _itemName)
? () async {
List<String> urls = await NetUtil()
.uploadFiles(_files, API.upload.uploadRepair);
BaseModel baseModel = await ManagerFunc.articleOutSubmit(
id: BeeParse.getEstateNameId(
userProvider.userDetailModel.estateNames[0]),
name: _itemName,
weight: _selectWeight + 1,
approach: _selectApproach + 1,
tel: _selectTel,
time: datetime,
urls: urls,
);
if (baseModel.status) {
Get.back();
} else
BotToast.showText(text: baseModel.message);
}
: () {
BotToast.showText(text: '请填写完整物品出户信息!');
},
), ),
); );
// //

@ -4,10 +4,13 @@ import 'package:akuCommunity/pages/goods_deto_page/deto_create_page/widget/commo
import 'package:akuCommunity/pages/manager_func.dart'; import 'package:akuCommunity/pages/manager_func.dart';
import 'package:akuCommunity/widget/bee_divider.dart'; import 'package:akuCommunity/widget/bee_divider.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/buttons/bottom_button.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:akuCommunity/utils/headers.dart'; import 'package:akuCommunity/utils/headers.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
class SelectMoveCompanyPage extends StatefulWidget { class SelectMoveCompanyPage extends StatefulWidget {
SelectMoveCompanyPage({Key key}) : super(key: key); SelectMoveCompanyPage({Key key}) : super(key: key);
@ -21,6 +24,14 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
MovingCompanyModel _companyModel; MovingCompanyModel _companyModel;
EasyRefreshController _controller; EasyRefreshController _controller;
bool _onloading = true; bool _onloading = true;
String get result {
if (_selected == _companyModel.appMovingCompanyVoList.length) {
return null;
} else {
return _companyModel.appMovingCompanyVoList[_selected].tel;
}
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -34,17 +45,17 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
} }
Widget _buildCard(int index, String name, String tel) { Widget _buildCard(int index, String name, String tel) {
return Container( return GestureDetector(
padding: EdgeInsets.symmetric(vertical: 28.w), onTap: () {
child: Row( _selected = index;
crossAxisAlignment: CrossAxisAlignment.center, setState(() {});
children: [ },
GestureDetector( child: Container(
onTap: () { padding: EdgeInsets.symmetric(vertical: 28.w),
_selected = index; child: Row(
setState(() {}); crossAxisAlignment: CrossAxisAlignment.center,
}, children: [
child: Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w), padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w),
child: CommonRadio( child: CommonRadio(
size: 32.w, size: 32.w,
@ -52,47 +63,47 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
groupValue: _selected, groupValue: _selected,
), ),
), ),
), Column(
Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ name.text.color(ktextPrimary).size(28.sp).bold.make(),
name.text.color(ktextPrimary).size(28.sp).bold.make(), 20.w.heightBox,
20.w.heightBox, Row(
Row( children: [
children: [ Icon(
Icon( CupertinoIcons.phone_arrow_up_right,
CupertinoIcons.phone_arrow_up_right, size: 40.w,
size: 40.w, color: kDarkSubColor,
color: kDarkSubColor, ),
), 8.w.widthBox,
8.w.widthBox, '电话:$tel'
'电话:$tel' .text
.text .color(Color(0xFF999999))
.color(Color(0xFF999999)) .size(24.sp)
.size(24.sp) .bold
.bold .make(),
.make(), ],
], ),
), ],
], ).expand(),
).expand(), ],
], ),
), ),
); );
} }
Widget _buildForself(int index) { Widget _buildForself(int index) {
return Container( return GestureDetector(
padding: EdgeInsets.symmetric(vertical: 28.w), onTap: () {
child: Row( _selected = index;
crossAxisAlignment: CrossAxisAlignment.center, setState(() {});
children: [ },
GestureDetector( child: Container(
onTap: () { padding: EdgeInsets.symmetric(vertical: 28.w),
_selected = index; child: Row(
setState(() {}); crossAxisAlignment: CrossAxisAlignment.center,
}, children: [
child: Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w), padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w),
child: CommonRadio( child: CommonRadio(
size: 32.w, size: 32.w,
@ -100,9 +111,9 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
groupValue: _selected, groupValue: _selected,
), ),
), ),
), '自己联系'.text.color(ktextPrimary).size(28.sp).bold.make()
'自己联系'.text.color(ktextPrimary).size(28.sp).bold.make() ],
], ),
), ),
); );
} }
@ -139,6 +150,16 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
].sepWidget(separate: BeeDivider.horizontal()), ].sepWidget(separate: BeeDivider.horizontal()),
), ),
), ),
bottomNavi: BottomButton(
child: '确定'.text.color(ktextPrimary).size(32.sp).bold.make(),
onPressed: () {
if (_selected == null) {
BotToast.showText(text: '请选择搬家公司!');
} else {
Get.back(result: result);
}
},
),
); );
} }
} }

@ -96,9 +96,34 @@ class ManagerFunc {
} }
static Future<MovingCompanyModel> getMovingCompanyTel() async { static Future<MovingCompanyModel> getMovingCompanyTel() async {
Response response= await NetUtil().dio.get( Response response = await NetUtil().dio.get(
API.manager.getMovingCompanyTel, API.manager.getMovingCompanyTel,
); );
return MovingCompanyModel.fromJson(response.data); return MovingCompanyModel.fromJson(response.data);
} }
static Future<BaseModel> articleOutSubmit({
int id,
String name,
int weight,
int approach,
String tel,
String time,
List<String> urls,
}) async {
BaseModel baseModel = await NetUtil().post(
API.manager.articleOutSubmit,
params: {
'buildingUnitEstateId': id,
'name': name,
'weight': weight,
'approach': approach,
'movingCompanyTel': tel,
'expectedTime': DateUtil.formatDateStr(time,format: "yyyy-MM-dd HH:mm:ss"),
'imgUrls': urls,
},
showMessage: true,
);
return baseModel;
}
} }

@ -2,6 +2,7 @@
import 'dart:io'; import 'dart:io';
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/utils/bee_parse.dart';
import 'package:akuCommunity/widget/buttons/bottom_button.dart'; import 'package:akuCommunity/widget/buttons/bottom_button.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -206,15 +207,6 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
} }
} }
int _getBuildUnitEstateNameId(String estateName) {
int a = int.parse(estateName.split('|')[0]);
return a;
}
String _getEstateName(String estateNmae) {
return estateNmae.split('|')[1];
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context); UserProvider userProvider = Provider.of<UserProvider>(context);
@ -228,7 +220,7 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
kEstateName, kEstateName,
userProvider.userDetailModel.estateNames.isEmpty userProvider.userDetailModel.estateNames.isEmpty
? '' ? ''
: _getEstateName( : BeeParse.getEstateName(
userProvider.userDetailModel.estateNames[0])), userProvider.userDetailModel.estateNames[0])),
_getType(), _getType(),
_buildReportCard(), _buildReportCard(),
@ -243,7 +235,7 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
List<String> urls = await NetUtil() List<String> urls = await NetUtil()
.uploadFiles(_files, API.upload.uploadRepair); .uploadFiles(_files, API.upload.uploadRepair);
BaseModel baseModel = await ManagerFunc.reportRepairInsert( BaseModel baseModel = await ManagerFunc.reportRepairInsert(
_getBuildUnitEstateNameId( BeeParse.getEstateNameId(
userProvider.userDetailModel.estateNames[0]), userProvider.userDetailModel.estateNames[0]),
_selectType + 1, _selectType + 1,
_textEditingController.text, _textEditingController.text,

@ -0,0 +1,9 @@
class BeeParse{
static int getEstateNameId(String estateName) {
int a = int.parse(estateName.split('|')[0]);
return a;
}
static String getEstateName(String estateNmae) {
return estateNmae.split('|')[1];
}
}
Loading…
Cancel
Save