parent
f0e68608bb
commit
36d3c11a30
After Width: | Height: | Size: 25 KiB |
@ -0,0 +1,30 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'my_family_examine_list_model.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class MyFamilyExamineListModel {
|
||||
final int estateId;
|
||||
final String estateName;
|
||||
final String unitName;
|
||||
final String buildingName;
|
||||
final String name;
|
||||
final String tel;
|
||||
final int status;
|
||||
final int identity;
|
||||
final String estateTypeName;
|
||||
factory MyFamilyExamineListModel.fromJson(Map<String, dynamic> json) =>
|
||||
_$MyFamilyExamineListModelFromJson(json);
|
||||
|
||||
const MyFamilyExamineListModel({
|
||||
required this.estateId,
|
||||
required this.estateName,
|
||||
required this.unitName,
|
||||
required this.buildingName,
|
||||
required this.name,
|
||||
required this.tel,
|
||||
required this.status,
|
||||
required this.identity,
|
||||
required this.estateTypeName,
|
||||
});
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'my_family_examine_list_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
MyFamilyExamineListModel _$MyFamilyExamineListModelFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
MyFamilyExamineListModel(
|
||||
estateId: json['estateId'] as int,
|
||||
estateName: json['estateName'] as String,
|
||||
unitName: json['unitName'] as String,
|
||||
buildingName: json['buildingName'] as String,
|
||||
name: json['name'] as String,
|
||||
tel: json['tel'] as String,
|
||||
status: json['status'] as int,
|
||||
identity: json['identity'] as int,
|
||||
estateTypeName: json['estateTypeName'] as String,
|
||||
);
|
@ -0,0 +1,40 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'my_family_member_list_model.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class MyFamilyMemberListModel {
|
||||
final int estateId;
|
||||
final String estateName;
|
||||
final String unitName;
|
||||
final String buildingName;
|
||||
final List<Member> members;
|
||||
final String estateTypeName;
|
||||
|
||||
factory MyFamilyMemberListModel.fromJson(Map<String, dynamic> json) =>
|
||||
_$MyFamilyMemberListModelFromJson(json);
|
||||
|
||||
const MyFamilyMemberListModel({
|
||||
required this.estateId,
|
||||
required this.estateName,
|
||||
required this.unitName,
|
||||
required this.buildingName,
|
||||
required this.members,
|
||||
required this.estateTypeName,
|
||||
});
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Member {
|
||||
final int id;
|
||||
final String name;
|
||||
final int identity;
|
||||
|
||||
factory Member.fromJson(Map<String, dynamic> json) => _$MemberFromJson(json);
|
||||
|
||||
const Member({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.identity,
|
||||
});
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'my_family_member_list_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
MyFamilyMemberListModel _$MyFamilyMemberListModelFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
MyFamilyMemberListModel(
|
||||
estateId: json['estateId'] as int,
|
||||
estateName: json['estateName'] as String,
|
||||
unitName: json['unitName'] as String,
|
||||
buildingName: json['buildingName'] as String,
|
||||
members: (json['members'] as List<dynamic>)
|
||||
.map((e) => Member.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
estateTypeName: json['estateTypeName'] as String,
|
||||
);
|
||||
|
||||
Member _$MemberFromJson(Map<String, dynamic> json) => Member(
|
||||
id: json['id'] as int,
|
||||
name: json['name'] as String,
|
||||
identity: json['identity'] as int,
|
||||
);
|
@ -0,0 +1,283 @@
|
||||
import 'package:aku_new_community/constants/sars_api.dart';
|
||||
import 'package:aku_new_community/extensions/widget_list_ext.dart';
|
||||
import 'package:aku_new_community/gen/assets.gen.dart';
|
||||
import 'package:aku_new_community/models/sars_model/my_house/my_family_examine_list_model.dart';
|
||||
import 'package:aku_new_community/utils/bee_map.dart';
|
||||
import 'package:aku_new_community/utils/enum/identify.dart';
|
||||
import 'package:aku_new_community/utils/network/net_util.dart';
|
||||
import 'package:aku_new_community/widget/bee_divider.dart';
|
||||
import 'package:bot_toast/bot_toast.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
class ExamineView extends StatefulWidget {
|
||||
const ExamineView({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ExamineViewState createState() => _ExamineViewState();
|
||||
}
|
||||
|
||||
class _ExamineViewState extends State<ExamineView> {
|
||||
List<MyFamilyExamineListModel> _examineModels = [];
|
||||
int _currentIndex = 0;
|
||||
List<String> _tabs = ['全部', '待审核', '同意', '驳回'];
|
||||
EasyRefreshController _refreshController = EasyRefreshController();
|
||||
ScrollController _listScroll = ScrollController();
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_refreshController.dispose();
|
||||
_listScroll.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
|
||||
child: Row(
|
||||
children: _tabs
|
||||
.mapIndexed((e, index) => _tab(index, e))
|
||||
.toList()
|
||||
.sepWidget(),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: EasyRefresh(
|
||||
firstRefresh: true,
|
||||
controller: _refreshController,
|
||||
scrollController: _listScroll,
|
||||
header: MaterialHeader(),
|
||||
footer: MaterialFooter(),
|
||||
onRefresh: () async {
|
||||
var base = await NetUtil()
|
||||
.get(SARSAPI.profile.family.myFamilyMember, params: {
|
||||
'status': _currentIndex,
|
||||
});
|
||||
if (base.success) {
|
||||
_examineModels = (base.data as List)
|
||||
.map((e) => MyFamilyExamineListModel.fromJson(e))
|
||||
.toList();
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
child: ListView.separated(
|
||||
shrinkWrap: true,
|
||||
controller: _listScroll,
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
|
||||
itemBuilder: (context, index) {
|
||||
return _card(_examineModels[index]);
|
||||
},
|
||||
separatorBuilder: (_, __) {
|
||||
return 24.w.heightBox;
|
||||
},
|
||||
itemCount: _examineModels.length,
|
||||
),
|
||||
)),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _tab(int index, String title) {
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
_currentIndex = index;
|
||||
_refreshController.callRefresh();
|
||||
setState(() {});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(horizontal: 24.w, vertical: 8.w),
|
||||
decoration: BoxDecoration(
|
||||
color: _currentIndex == index
|
||||
? Color(0xFFFAC058).withOpacity(0.5)
|
||||
: Colors.black.withOpacity(0.06),
|
||||
borderRadius: BorderRadius.circular(30.w),
|
||||
border: _currentIndex == index
|
||||
? Border.all(color: Color(0xFFFAC058))
|
||||
: Border(),
|
||||
),
|
||||
child: title.text
|
||||
.size(28.sp)
|
||||
.color(
|
||||
Colors.black.withOpacity(_currentIndex == index ? 0.65 : 0.45))
|
||||
.make(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _card(MyFamilyExamineListModel model) {
|
||||
var info = Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 32.w),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 160.w,
|
||||
child: '申请人'
|
||||
.text
|
||||
.size(28.sp)
|
||||
.color(Colors.black.withOpacity(0.45))
|
||||
.make(),
|
||||
),
|
||||
model.name.text.size(28.sp).black.make(),
|
||||
],
|
||||
),
|
||||
24.w.heightBox,
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 160.w,
|
||||
child: '申请身份'
|
||||
.text
|
||||
.size(28.sp)
|
||||
.color(Colors.black.withOpacity(0.45))
|
||||
.make(),
|
||||
),
|
||||
'${BeeMap.getIdentify(Identify.values[model.identity])}'
|
||||
.text
|
||||
.size(28.sp)
|
||||
.black
|
||||
.make(),
|
||||
],
|
||||
),
|
||||
24.w.heightBox,
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 160.w,
|
||||
child: '联系方式'
|
||||
.text
|
||||
.size(28.sp)
|
||||
.color(Colors.black.withOpacity(0.45))
|
||||
.make(),
|
||||
),
|
||||
model.tel.text.size(28.sp).black.make(),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
return Stack(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(8.w),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
|
||||
alignment: Alignment.centerLeft,
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFFFEAC3).withOpacity(0.31),
|
||||
Colors.white
|
||||
])),
|
||||
child:
|
||||
'${model.buildingName}${model.unitName}${model.estateName}'
|
||||
.text
|
||||
.size(32.sp)
|
||||
.color(Colors.black.withOpacity(0.85))
|
||||
.bold
|
||||
.make(),
|
||||
),
|
||||
Divider(
|
||||
color: Colors.black.withOpacity(0.06),
|
||||
height: 1.w,
|
||||
),
|
||||
info,
|
||||
model.status == 1
|
||||
? Column(
|
||||
children: [
|
||||
BeeDivider.horizontal(),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 32.w, vertical: 24.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Spacer(),
|
||||
MaterialButton(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(26.sp)),
|
||||
elevation: 0,
|
||||
minWidth: 116.w,
|
||||
height: 52.w,
|
||||
color: Color(0xFFFAC058),
|
||||
onPressed: () async {
|
||||
var base = await NetUtil().post(
|
||||
SARSAPI.profile.family.myFamilyReview,
|
||||
params: {
|
||||
'operate': 1,
|
||||
'estateReviewId': model.estateId,
|
||||
});
|
||||
if (base.success) {
|
||||
_refreshController.callRefresh();
|
||||
} else {
|
||||
BotToast.showText(text: base.msg);
|
||||
}
|
||||
},
|
||||
child: '通过'.text.size(28.sp).black.make(),
|
||||
),
|
||||
24.w.widthBox,
|
||||
MaterialButton(
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
side: BorderSide(
|
||||
color: Colors.black.withOpacity(0.25)),
|
||||
borderRadius: BorderRadius.circular(26.sp)),
|
||||
minWidth: 116.w,
|
||||
height: 52.w,
|
||||
color: Colors.white,
|
||||
onPressed: () async {
|
||||
var base = await NetUtil().post(
|
||||
SARSAPI.profile.family.myFamilyReview,
|
||||
params: {
|
||||
'operate': 2,
|
||||
'estateReviewId': model.estateId,
|
||||
});
|
||||
if (base.success) {
|
||||
_refreshController.callRefresh();
|
||||
} else {
|
||||
BotToast.showText(text: base.msg);
|
||||
}
|
||||
},
|
||||
child: '驳回'
|
||||
.text
|
||||
.size(28.sp)
|
||||
.color(Colors.black.withOpacity(0.45))
|
||||
.make(),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
: SizedBox(),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (model.status != 1)
|
||||
Positioned(
|
||||
right: 24.w,
|
||||
top: 110.w,
|
||||
child: Image.asset(model.status == 2
|
||||
? Assets.icons.reject.path
|
||||
: Assets.icons.pass.path),
|
||||
width: 200.w,
|
||||
height: 200.w,
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,145 @@
|
||||
import 'package:aku_new_community/base/base_style.dart';
|
||||
import 'package:aku_new_community/constants/sars_api.dart';
|
||||
import 'package:aku_new_community/gen/assets.gen.dart';
|
||||
import 'package:aku_new_community/models/sars_model/my_house/my_family_member_list_model.dart';
|
||||
import 'package:aku_new_community/ui/profile/new_house/my_house_page.dart';
|
||||
import 'package:aku_new_community/utils/bee_map.dart';
|
||||
import 'package:aku_new_community/utils/enum/identify.dart';
|
||||
import 'package:aku_new_community/utils/network/net_util.dart';
|
||||
import 'package:aku_new_community/widget/bee_divider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
class MemberView extends StatefulWidget {
|
||||
const MemberView({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MemberViewState createState() => _MemberViewState();
|
||||
}
|
||||
|
||||
class _MemberViewState extends State<MemberView> {
|
||||
List<MyFamilyMemberListModel> _memberModels = [];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return EasyRefresh(
|
||||
firstRefresh: true,
|
||||
header: MaterialHeader(),
|
||||
footer: MaterialFooter(),
|
||||
onRefresh: () async {
|
||||
var base = await NetUtil().get(SARSAPI.profile.family.myFamilyMember);
|
||||
if (base.success) {
|
||||
_memberModels = (base.data as List)
|
||||
.map((e) => MyFamilyMemberListModel.fromJson(e))
|
||||
.toList();
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
child: _memberModels.isEmpty
|
||||
? HouseEmptyWidget()
|
||||
: ListView.separated(
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
|
||||
itemBuilder: (context, index) {
|
||||
return _card(_memberModels[index]);
|
||||
},
|
||||
separatorBuilder: (_, __) {
|
||||
return 24.w.heightBox;
|
||||
},
|
||||
// itemCount: _memberModels.length,
|
||||
itemCount: _memberModels.length,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _card(MyFamilyMemberListModel model) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(8.w),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
|
||||
child: '${model.buildingName}${model.unitName}${model.estateName}'
|
||||
.text
|
||||
.size(32.sp)
|
||||
.color(Colors.black.withOpacity(0.85))
|
||||
.bold
|
||||
.make(),
|
||||
),
|
||||
BeeDivider.horizontal(),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 32.w),
|
||||
child: GridView.count(
|
||||
crossAxisCount: 4,
|
||||
children: [
|
||||
...model.members
|
||||
.map((e) => _avatar(Identify.values[e.identity], e.name))
|
||||
.toList()
|
||||
],
|
||||
shrinkWrap: true,
|
||||
physics: NeverScrollableScrollPhysics(),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _avatar(
|
||||
Identify identify,
|
||||
String name,
|
||||
) {
|
||||
return Column(
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
fit: StackFit.passthrough,
|
||||
children: [
|
||||
Container(
|
||||
width: 80.w,
|
||||
height: 80.w,
|
||||
clipBehavior: Clip.antiAlias,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(40.w),
|
||||
border: Border.all(color: kPrimaryColor, width: 4.w)),
|
||||
child: Assets.images.splashLogo.image(width: 80.w, height: 80.w),
|
||||
),
|
||||
Positioned(
|
||||
bottom: -20.w,
|
||||
left: -10.w,
|
||||
child: Material(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(58.w),
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: Container(
|
||||
width: 108.w,
|
||||
height: 40.w,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFF1C87F).withOpacity(0.4),
|
||||
),
|
||||
child: '${BeeMap.getIdentify(identify)}'
|
||||
.text
|
||||
.size(22.sp)
|
||||
.maxFontSize(22.sp)
|
||||
.minFontSize(18.sp)
|
||||
.stepGranularity(1.sp)
|
||||
.color(Colors.black.withOpacity(0.85))
|
||||
.make(),
|
||||
),
|
||||
))
|
||||
],
|
||||
),
|
||||
26.w.heightBox,
|
||||
name.text.size(28.sp).color(Colors.black.withOpacity(0.45)).make(),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,154 @@
|
||||
import 'package:aku_new_community/base/base_style.dart';
|
||||
import 'package:aku_new_community/gen/assets.gen.dart';
|
||||
import 'package:aku_new_community/ui/profile/new_house/examine_view.dart';
|
||||
import 'package:aku_new_community/ui/profile/new_house/member_view.dart';
|
||||
import 'package:aku_new_community/ui/profile/new_house/widgets/add_house_button.dart';
|
||||
import 'package:aku_new_community/widget/bee_scaffold.dart';
|
||||
import 'package:aku_new_community/widget/dialog/certification_dialog.dart';
|
||||
import 'package:aku_new_community/widget/others/user_tool.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
import 'add_house_page.dart';
|
||||
|
||||
class MyFamilyPage extends StatefulWidget {
|
||||
const MyFamilyPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MyFamilyPageState createState() => _MyFamilyPageState();
|
||||
}
|
||||
|
||||
class _MyFamilyPageState extends State<MyFamilyPage>
|
||||
with TickerProviderStateMixin {
|
||||
late TabController _tabController;
|
||||
List<String> _tabs = ['当前成员', '审核列表'];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_tabController = TabController(length: _tabs.length, vsync: this);
|
||||
_tabController.addListener(() {
|
||||
if (_tabController.indexIsChanging) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_tabController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var tab = Container(
|
||||
width: double.infinity,
|
||||
height: 108.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white, borderRadius: BorderRadius.circular(40.w)),
|
||||
child: TabBar(
|
||||
controller: _tabController,
|
||||
indicatorColor: kPrimaryColor,
|
||||
indicatorPadding:
|
||||
EdgeInsets.only(left: 25.w, right: 25.w, bottom: 16.w),
|
||||
indicatorWeight: 4.w,
|
||||
labelStyle: TextStyle(
|
||||
color: Colors.black, fontWeight: FontWeight.bold, fontSize: 28.sp),
|
||||
unselectedLabelStyle:
|
||||
TextStyle(color: Colors.black.withOpacity(0.45), fontSize: 28.sp),
|
||||
tabs: _tabs
|
||||
.map((e) => Tab(
|
||||
text: e,
|
||||
))
|
||||
.toList(),
|
||||
),
|
||||
);
|
||||
return BeeScaffold(
|
||||
title: '我的家庭',
|
||||
extendBody: true,
|
||||
body: Stack(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
alignment: Alignment.topRight,
|
||||
scale: 3,
|
||||
image: AssetImage(
|
||||
Assets.static.family.path,
|
||||
)),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
Color(0xFFFFC37D),
|
||||
Color(0xFFE28F2D),
|
||||
]),
|
||||
),
|
||||
child: SafeArea(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
60.w.heightBox,
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 32.w),
|
||||
child: '${UserTool.userProvider.defaultHouse?.addressName ?? ''} '
|
||||
'${UserTool.userProvider.defaultHouse?.communityName ?? ''}'
|
||||
.text
|
||||
.color(Colors.white)
|
||||
.size(32.sp)
|
||||
.make(),
|
||||
),
|
||||
55.w.heightBox,
|
||||
Expanded(
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
clipBehavior: Clip.antiAlias,
|
||||
alignment: Alignment.topCenter,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFF9F9F9),
|
||||
borderRadius:
|
||||
BorderRadius.vertical(top: Radius.circular(40.w))),
|
||||
child: Column(
|
||||
children: [
|
||||
tab,
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
controller: _tabController,
|
||||
children: [
|
||||
MemberView(),
|
||||
ExamineView(),
|
||||
],
|
||||
))
|
||||
],
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
_tabController.index == 0
|
||||
? Positioned(
|
||||
bottom: 32.w,
|
||||
right: 32.w,
|
||||
left: 32.w,
|
||||
child: AddHouseButton(
|
||||
text: '添加房屋',
|
||||
onTap: () async {
|
||||
if (UserTool.userProvider.userInfoModel?.name == null) {
|
||||
await Get.dialog(CertificationDialog());
|
||||
} else {
|
||||
Get.to(() => AddHousePage());
|
||||
}
|
||||
}),
|
||||
)
|
||||
: SizedBox(),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue