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.
145 lines
4.4 KiB
Dart
145 lines
4.4 KiB
Dart
import 'package:flutter/cupertino.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 AddressAddPage extends StatefulWidget {
|
|
AddressAddPage({Key key}) : super(key: key);
|
|
|
|
_AddressAddPageState createState() => _AddressAddPageState();
|
|
}
|
|
|
|
class _AddressAddPageState extends State<AddressAddPage> {
|
|
|
|
String area='';
|
|
String name='';
|
|
String phone='';
|
|
String address='';
|
|
|
|
//监听页面销毁的事件
|
|
dispose(){
|
|
super.dispose();
|
|
eventBus.fire(new AddressEvent('增加成功...'));
|
|
eventBus.fire(new CheckOutEvent('改收货地址成功...'));
|
|
}
|
|
|
|
@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(
|
|
text: "收货人姓名",
|
|
onChanged: (value){
|
|
this.name=value;
|
|
},
|
|
),
|
|
SizedBox(height: 10),
|
|
JdText(
|
|
text: "收货人电话",
|
|
onChanged: (value){
|
|
this.phone=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,
|
|
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(
|
|
text: "详细地址",
|
|
maxLines: 4,
|
|
height: 200,
|
|
onChanged: (value){
|
|
this.address="${this.area} ${value}";
|
|
},
|
|
),
|
|
SizedBox(height: 10),
|
|
SizedBox(height: 40),
|
|
JdButton(text: "增加", color: Colors.red,onTop: () async{
|
|
|
|
List userinfo=await UserServices.getUserInfo();
|
|
|
|
print(userinfo);
|
|
|
|
|
|
// print('1234');
|
|
var tempJson={
|
|
"uid":userinfo[0]["_id"],
|
|
"name":this.name,
|
|
"phone":this.phone,
|
|
"address":this.address,
|
|
"salt":userinfo[0]["salt"]
|
|
};
|
|
|
|
var sign=SignServices.getSign(tempJson);
|
|
// print(sign);
|
|
|
|
var api = '${Config.domain}api/addAddress';
|
|
var result = await Dio().post(api,data:{
|
|
"uid":userinfo[0]["_id"],
|
|
"name":this.name,
|
|
"phone":this.phone,
|
|
"address":this.address,
|
|
"sign":sign
|
|
});
|
|
|
|
// if(result.data["success"]){
|
|
|
|
// }
|
|
Navigator.pop(context);
|
|
|
|
|
|
|
|
})
|
|
],
|
|
),
|
|
));
|
|
}
|
|
}
|