You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aku_new_community/lib/pages/sign/login/select_community.dart

124 lines
3.8 KiB

import 'package:aku_new_community/constants/api.dart';
import 'package:aku_new_community/models/login/community_model.dart';
import 'package:aku_new_community/models/login/picked_city_model.dart';
import 'package:aku_new_community/utils/network/net_util.dart';
import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:aku_new_community/widget/picker/bee_city_picker.dart';
import 'package:aku_new_community/widget/picker/bee_community_picker.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
class SelectCommunity extends StatefulWidget {
const SelectCommunity({
Key? key,
}) : super(key: key);
@override
_SelectCommunityState createState() => _SelectCommunityState();
}
class _SelectCommunityState extends State<SelectCommunity> {
PickedCityModel? _model;
CommunityModel? _community;
String get cityName {
if (_model == null) {
return '请选择省、市、县/区';
} else {
return _model!.province.name + _model!.city.name + _model!.district.name;
}
}
String get communityName {
if (_community == null) {
return '请选择小区';
} else {
return _community!.name;
}
}
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '选择登录小区',
body: ListView(
children: [
GestureDetector(
onTap: () async {
_model = await BeeCityPicker.pick(context);
setState(() {});
},
child: Container(
color: Colors.white,
width: double.infinity,
height: 88.w,
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
child: Row(
children: [
'选择城市'.text.size(28.sp).black.make(),
Spacer(),
'${cityName}'.text.black.make(),
32.w.widthBox,
Icon(
CupertinoIcons.right_chevron,
size: 20.w,
)
],
),
),
),
GestureDetector(
onTap: () async {
var cancel = BotToast.showLoading();
List<CommunityModel> _communities = [];
var base = await NetUtil().get(API.sarsApi.login.allCommunity);
if (base.status ?? false) {
_communities = (base.data as List)
.map((e) => CommunityModel.fromJson(e))
.toList();
}
cancel();
_community = await BeeCommunityPicker.pick(context, _communities);
setState(() {});
},
child: Container(
color: Colors.white,
width: double.infinity,
height: 88.w,
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
child: Row(
children: [
'选择小区'.text.size(28.sp).black.make(),
Spacer(),
'${communityName}'.text.black.make(),
32.w.widthBox,
Icon(
CupertinoIcons.right_chevron,
size: 20.w,
)
],
),
),
),
Container(
width: double.infinity,
color: Colors.white,
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
child: Column(
children: [],
),
),
],
),
);
}
}