You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
5.0 KiB
Dart

import 'package:flutter/material.dart';
import '../../widget/JdText.dart';
import '../../widget/JdButton.dart';
import 'package:city_pickers/city_pickers.dart';
import '../../services/UserServices.dart';
import '../../services/SignServices.dart';
import '../../config/Config.dart';
import 'package:dio/dio.dart';
import '../../services/EventBus.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class AddressEditPage extends StatefulWidget {
Map arguments;
AddressEditPage({Key key,this.arguments}) : super(key: key);
_AddressEditPageState createState() => _AddressEditPageState();
}
class _AddressEditPageState extends State<AddressEditPage> {
String area='';
TextEditingController nameController=new TextEditingController();
TextEditingController phoneController=new TextEditingController();
TextEditingController addressController=new TextEditingController();
@override
void initState() {
// TODO: implement initState
super.initState();
// print(widget.arguments);
nameController.text=widget.arguments['name'];
phoneController.text=widget.arguments['phone'];
addressController.text=widget.arguments['address'];
}
//监听页面销毁的事件
dispose(){
super.dispose();
eventBus.fire(new AddressEvent('增加成功...'));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("修改收货地址"),
),
body: Container(
padding: EdgeInsets.all(10),
child: ListView(
children: <Widget>[
SizedBox(height: 20),
JdText(
controller: nameController,
text: "收货人姓名",
onChanged: (value){
nameController.text=value;
},
),
SizedBox(height: 10),
JdText(
controller: phoneController,
text: "收货人电话",
onChanged: (value){
phoneController.text=value;
},
),
SizedBox(height: 10),
Container(
padding: EdgeInsets.only(left: 5),
height: ScreenUtil().setHeight(68),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: 1, color: Colors.black12))),
child: InkWell(
child: Row(
children: <Widget>[
Icon(Icons.add_location),
this.area.length>0?Text('${this.area}', style: TextStyle(color: Colors.black54)):Text('省/市/区', style: TextStyle(color: Colors.black54))
],
),
onTap: () async{
Result result = await CityPickers.showCityPicker(
context: context,
locationCode: "130102",
cancelWidget:
Text("取消", style: TextStyle(color: Colors.blue)),
confirmWidget:
Text("确定", style: TextStyle(color: Colors.blue))
);
// print(result);
setState(() {
this.area= "${result.provinceName}/${result.cityName}/${result.areaName}";
});
},
),
),
SizedBox(height: 10),
JdText(
controller: addressController,
text: "详细地址",
maxLines: 4,
height: 200,
onChanged: (value){
addressController.text=value;
},
),
SizedBox(height: 10),
SizedBox(height: 40),
JdButton(text: "修改", color: Colors.red,onTop: () async{
List userinfo=await UserServices.getUserInfo();
var tempJson={
"uid":userinfo[0]["_id"],
"id":widget.arguments["id"],
"name": nameController.text,
"phone":phoneController.text,
"address":addressController.text,
"salt":userinfo[0]["salt"]
};
var sign=SignServices.getSign(tempJson);
// print(sign);
var api = '${Config.domain}api/editAddress';
var response = await Dio().post(api,data:{
"uid":userinfo[0]["_id"],
"id":widget.arguments["id"],
"name": nameController.text,
"phone":phoneController.text,
"address":addressController.text,
"sign":sign
});
print(response);
Navigator.pop(context);
})
],
),
)
);
}
}