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 articleOutSubmit => '/user/articleOut/submit';
}
class _Community {

@ -4,7 +4,13 @@
import 'dart:io';
// Flutter imports:
import 'package:akuCommunity/constants/api.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/material.dart';
@ -20,15 +26,10 @@ import 'package:akuCommunity/provider/user_provider.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_divider.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/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/grid_image_picker.dart';
import 'widget/common_picker.dart';
import 'widget/common_radio.dart';
class DetoCreatePage extends StatefulWidget {
DetoCreatePage({Key key}) : super(key: key);
@ -40,15 +41,12 @@ class DetoCreatePage extends StatefulWidget {
class _DetoCreatePageState extends State<DetoCreatePage> {
List<File> _files = [];
UserProvider get userProvider => Provider.of<UserProvider>(context);
String get firstEstateName {
return userProvider.userDetailModel.estateNames.isEmpty
? ''
: userProvider.userDetailModel.estateNames[0];
}
String _itemName;
DateTime _date;
String get datetime=>DateUtil.formatDate(_date, format: "yyyy-MM-dd HH:mm:ss");
int _selectWeight;
String _selectTel;
List<String> _listWeight = [
'< 50kg',
'50kg-100kg',
@ -350,8 +348,8 @@ class _DetoCreatePageState extends State<DetoCreatePage> {
'搬家公司信息'.text.color(ktextPrimary).size(28.sp).make(),
16.w.heightBox,
InkWell(
onTap: () {
SelectMoveCompanyPage().to();
onTap: () async {
_selectTel = await SelectMoveCompanyPage().to();
},
child: Padding(
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
Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context);
return BeeScaffold(
title: '物品出户',
body: ListView(
padding: EdgeInsets.all(32.w),
children: [
_houseAddress(kEstateName, firstEstateName),
_houseAddress(
kEstateName,
userProvider.userDetailModel.estateNames.isEmpty
? ''
: BeeParse.getEstateName(
userProvider.userDetailModel.estateNames[0])),
_getWeight(),
_itemPicker(
'出户时间', DateUtil.formatDate(_date, format: "yyyy-MM-dd HH:mm:ss"),
'出户时间', datetime,
() async {
_date = await BeeDatePicker.timePicker(DateTime.now());
setState(() {});
@ -413,7 +431,28 @@ class _DetoCreatePageState extends State<DetoCreatePage> {
),
bottomNavi: BottomButton(
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/widget/bee_divider.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/material.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
class SelectMoveCompanyPage extends StatefulWidget {
SelectMoveCompanyPage({Key key}) : super(key: key);
@ -21,6 +24,14 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
MovingCompanyModel _companyModel;
EasyRefreshController _controller;
bool _onloading = true;
String get result {
if (_selected == _companyModel.appMovingCompanyVoList.length) {
return null;
} else {
return _companyModel.appMovingCompanyVoList[_selected].tel;
}
}
@override
void initState() {
super.initState();
@ -34,17 +45,17 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
}
Widget _buildCard(int index, String name, String tel) {
return Container(
padding: EdgeInsets.symmetric(vertical: 28.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
_selected = index;
setState(() {});
},
child: Padding(
return GestureDetector(
onTap: () {
_selected = index;
setState(() {});
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 28.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w),
child: CommonRadio(
size: 32.w,
@ -52,47 +63,47 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
groupValue: _selected,
),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
name.text.color(ktextPrimary).size(28.sp).bold.make(),
20.w.heightBox,
Row(
children: [
Icon(
CupertinoIcons.phone_arrow_up_right,
size: 40.w,
color: kDarkSubColor,
),
8.w.widthBox,
'电话:$tel'
.text
.color(Color(0xFF999999))
.size(24.sp)
.bold
.make(),
],
),
],
).expand(),
],
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
name.text.color(ktextPrimary).size(28.sp).bold.make(),
20.w.heightBox,
Row(
children: [
Icon(
CupertinoIcons.phone_arrow_up_right,
size: 40.w,
color: kDarkSubColor,
),
8.w.widthBox,
'电话:$tel'
.text
.color(Color(0xFF999999))
.size(24.sp)
.bold
.make(),
],
),
],
).expand(),
],
),
),
);
}
Widget _buildForself(int index) {
return Container(
padding: EdgeInsets.symmetric(vertical: 28.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
_selected = index;
setState(() {});
},
child: Padding(
return GestureDetector(
onTap: () {
_selected = index;
setState(() {});
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 28.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 24.w),
child: CommonRadio(
size: 32.w,
@ -100,9 +111,9 @@ class _SelectMoveCompanyPageState extends State<SelectMoveCompanyPage> {
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()),
),
),
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 {
Response response= await NetUtil().dio.get(
API.manager.getMovingCompanyTel,
);
Response response = await NetUtil().dio.get(
API.manager.getMovingCompanyTel,
);
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';
// Flutter imports:
import 'package:akuCommunity/utils/bee_parse.dart';
import 'package:akuCommunity/widget/buttons/bottom_button.dart';
import 'package:flutter/cupertino.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
Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context);
@ -228,7 +220,7 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
kEstateName,
userProvider.userDetailModel.estateNames.isEmpty
? ''
: _getEstateName(
: BeeParse.getEstateName(
userProvider.userDetailModel.estateNames[0])),
_getType(),
_buildReportCard(),
@ -243,7 +235,7 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
List<String> urls = await NetUtil()
.uploadFiles(_files, API.upload.uploadRepair);
BaseModel baseModel = await ManagerFunc.reportRepairInsert(
_getBuildUnitEstateNameId(
BeeParse.getEstateNameId(
userProvider.userDetailModel.estateNames[0]),
_selectType + 1,
_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