圈子细节优化,编辑资料,发现页面不感兴趣,邀请得会员字体,附近会员开通修改
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
circle_app/assets/images/circle/no_look_icon_h.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
@ -40,7 +40,7 @@
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
|
||||
@ -36,7 +36,7 @@ class CircleLogic extends GetxController {
|
||||
int currentPage = 0;
|
||||
|
||||
bool isMore = true;
|
||||
int myVip = 0;
|
||||
int myVip = -1;
|
||||
bool isShowCircle = true;
|
||||
String cityName = "";
|
||||
|
||||
@ -60,7 +60,7 @@ class CircleLogic extends GetxController {
|
||||
|
||||
update();
|
||||
}
|
||||
myVip = await getVip();
|
||||
// myVip = await getVip();
|
||||
loadCirclePeopleData();
|
||||
initGerder();
|
||||
getCityList();
|
||||
@ -70,7 +70,7 @@ class CircleLogic extends GetxController {
|
||||
|
||||
EventBusManager.on<CommentVipEvent>().listen((event) {
|
||||
myVip = event.vip;
|
||||
// update();
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
@ -281,6 +281,8 @@ class CircleLogic extends GetxController {
|
||||
});
|
||||
var bean = BaseResponse<VicinityBean>.fromJson(
|
||||
data, (data) => VicinityBean.fromJson(data));
|
||||
|
||||
if (bean.code == 200) {
|
||||
try {
|
||||
offset = bean.data.offset;
|
||||
deep = bean.data.deep;
|
||||
@ -288,11 +290,10 @@ class CircleLogic extends GetxController {
|
||||
|
||||
if (vicinityPage == 1) {
|
||||
cityName = bean.data.city;
|
||||
|
||||
vicinityList.clear();
|
||||
}
|
||||
try{
|
||||
vicinityList.addAll(bean.data.users);
|
||||
} on Exception{}
|
||||
|
||||
|
||||
if (vicinityPage == 1) {
|
||||
refreshController.refreshCompleted();
|
||||
@ -300,6 +301,18 @@ class CircleLogic extends GetxController {
|
||||
refreshController.loadComplete();
|
||||
}
|
||||
|
||||
try{
|
||||
|
||||
vicinityList.addAll(bean.data.users);
|
||||
vicinityPage = vicinityPage + 1;
|
||||
} on Exception{}
|
||||
|
||||
} else if (bean.code == 21201) {
|
||||
myVip = 0;
|
||||
refreshController.loadComplete();
|
||||
update();
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -678,23 +678,20 @@ class _CirclePageState extends State<CirclePage>
|
||||
indicator: UnderlineTabIndicator(
|
||||
borderSide: BorderSide(
|
||||
color: const Color(0xFF00FFF4),
|
||||
width: 1.5.sp,
|
||||
),
|
||||
insets: EdgeInsets.symmetric(horizontal: 6.0.sp),
|
||||
borderRadius: BorderRadius.circular(18.0),
|
||||
),
|
||||
indicatorColor: const Color(0xFF00FFF4),
|
||||
indicatorWeight: 1.sp,
|
||||
indicatorWeight: 2.sp,
|
||||
labelColor: const Color(0xFF00FFF4),
|
||||
unselectedLabelColor: const Color(0xB3FFFFFF),
|
||||
indicatorSize: TabBarIndicatorSize.label,
|
||||
indicatorPadding: EdgeInsets.only(left: 6.sp, right: 6.sp),
|
||||
indicatorPadding: EdgeInsets.only(left: 12.sp, right: 12.sp),
|
||||
tabs: [
|
||||
Tab(
|
||||
child: Text(
|
||||
'圈子',
|
||||
style: TextStyle(
|
||||
fontSize: 18.sp,
|
||||
fontSize: 20.sp,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -702,7 +699,7 @@ class _CirclePageState extends State<CirclePage>
|
||||
child: Text(
|
||||
'附近',
|
||||
style: TextStyle(
|
||||
fontSize: 18.sp,
|
||||
fontSize: 20.sp,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -710,7 +707,7 @@ class _CirclePageState extends State<CirclePage>
|
||||
child: Text(
|
||||
'发现',
|
||||
style: TextStyle(
|
||||
fontSize: 18.sp,
|
||||
fontSize: 20.sp,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -758,7 +755,7 @@ class _CirclePageState extends State<CirclePage>
|
||||
),
|
||||
Positioned(
|
||||
right: 0,
|
||||
child: logic.isShowCircle
|
||||
child: _tabController.index == 0
|
||||
? GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(AppRoutes.MyCircle, arguments: '');
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:circle_app/app/circle/view.dart';
|
||||
import 'package:circle_app/common/Widgets/base_tip_widget.dart';
|
||||
import 'package:circle_app/common/Widgets/genderview.dart';
|
||||
import 'package:circle_app/common/colors/app_color.dart';
|
||||
import 'package:circle_app/common/const.dart';
|
||||
@ -547,7 +548,7 @@ class _DiscoverState extends State<Discover>
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.sp,
|
||||
height: 15.sp,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
@ -567,9 +568,13 @@ class _DiscoverState extends State<Discover>
|
||||
width: 40.sp,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.sp,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
sendNoLookData(user.userId!,index);
|
||||
_showReportDialog(context,user.userId!.toString(),index);
|
||||
|
||||
},
|
||||
child: Image.asset(
|
||||
getCircleImage(
|
||||
@ -678,27 +683,174 @@ class _DiscoverState extends State<Discover>
|
||||
}
|
||||
|
||||
loadWxNumData() async {
|
||||
// var data = await DioManager.instance.post(url: Api.myMainPage);
|
||||
//
|
||||
// if (data['code'] == 10000) {
|
||||
// if (data['userBase']['wxNum'] == null) {
|
||||
// showAddWxPicker(false);
|
||||
// } else if (data['userBase']['wxNum'].toString().isEmpty) {
|
||||
// showAddWxPicker(false);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
var data = await DioManager.instance.get(url: Api.getUserInfo);
|
||||
|
||||
if (data['code'] == 200) {
|
||||
if (data['data']['user']['wxNum'] == null) {
|
||||
showAddWxPicker(false);
|
||||
} else if (data['data']['user']['wxNum'].toString().isEmpty) {
|
||||
showAddWxPicker(false);
|
||||
}
|
||||
|
||||
void sendNoLookData(int userId,int index) async {
|
||||
var data = await DioManager.instance.post(url: Api.uninterested + userId.toString());
|
||||
}
|
||||
}
|
||||
|
||||
void sendNoLookData(String userId,int index) async {
|
||||
var data = await DioManager.instance.post(url: Api.uninterested + userId);
|
||||
if (data['code'] == 200) {
|
||||
showOKToast('操作成功');
|
||||
list.removeAt(index);
|
||||
setState(() {
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void _showReportDialog(BuildContext context,String userId,int currentIndex) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return Dialog(
|
||||
backgroundColor: Colors.transparent,
|
||||
child: Container(
|
||||
height: 277.sp,
|
||||
padding: const EdgeInsets.all(1.0),
|
||||
child: Stack(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.rectangle,
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
gradient: const LinearGradient(
|
||||
colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.all(1.sp),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.rectangle,
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
gradient: const LinearGradient(
|
||||
colors: [Color(0xFF4C3E5F), Color(0xFF324140)],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 24.sp),
|
||||
child: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Text(
|
||||
"温馨提示",
|
||||
style:
|
||||
TextStyle(color: Colors.white, fontSize: 16.sp),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 14.sp),
|
||||
alignment: Alignment.center,
|
||||
child: Image(
|
||||
image: AssetImage(getCircleImage("no_look_icon_h")),
|
||||
width: 70.sp,
|
||||
height: 70.sp,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(
|
||||
top: 12.sp, left: 14.sp, right: 14.sp),
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
"您确认对TA不感兴趣吗?确认之后在这个板块就看不见TA了。",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: const Color(0xCCF7FAFA), fontSize: 16.sp),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(top: 24.sp),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(17),
|
||||
gradient: const LinearGradient(
|
||||
colors: [
|
||||
Color(0x26FFFFFF),
|
||||
Color(0x26FFFFFF),
|
||||
],
|
||||
begin: Alignment.centerLeft,
|
||||
end: Alignment.centerRight,
|
||||
),
|
||||
),
|
||||
padding: EdgeInsets.only(
|
||||
top: 10.sp,
|
||||
bottom: 10.sp,
|
||||
left: 27.sp,
|
||||
right: 27.sp),
|
||||
child: const Text(
|
||||
"再考虑考虑",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(width: 24.sp),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
sendNoLookData(userId,currentIndex);
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(top: 24.sp),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(17),
|
||||
gradient: const LinearGradient(
|
||||
colors: [
|
||||
Color(0xFF06F9FA),
|
||||
Color(0xFFDC5BFD),
|
||||
],
|
||||
begin: Alignment.centerLeft,
|
||||
end: Alignment.centerRight,
|
||||
),
|
||||
),
|
||||
padding: EdgeInsets.only(
|
||||
top: 10.sp,
|
||||
bottom: 10.sp,
|
||||
left: 52.sp,
|
||||
right: 52.sp),
|
||||
child: const Text(
|
||||
"确定",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -46,29 +46,32 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// TODO: add widget build method
|
||||
return widget.logic.vicinityList.isNotEmpty ? SmartRefresher(
|
||||
return widget.logic.vicinityList.isNotEmpty ? Stack(
|
||||
fit: StackFit.expand,
|
||||
children: [
|
||||
SmartRefresher(
|
||||
controller: widget.logic.refreshController,
|
||||
onRefresh: _onRefresh,
|
||||
onLoading: _onLoading,
|
||||
enablePullUp: widget.logic.myVip > 0,
|
||||
enablePullUp: true,
|
||||
child: ListView.builder(
|
||||
controller: _scrollController,
|
||||
padding: EdgeInsets.all(10.sp),
|
||||
itemCount: widget.logic.myVip == 0
|
||||
? widget.logic.vicinityList.length + 2
|
||||
: widget.logic.vicinityList.length + 1,
|
||||
itemCount: widget.logic.vicinityList.length + 1,
|
||||
itemBuilder: (context, index) {
|
||||
if (index == 0) {
|
||||
return bannerView(widget.logic);
|
||||
} else {
|
||||
if (widget.logic.myVip == 0 && index == widget.logic.vicinityList.length + 1) {
|
||||
return showVipView();
|
||||
} else {
|
||||
return ListItem(widget.logic.vicinityList[index - 1], index - 1);
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
if (widget.logic.myVip == 0)
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
child: showVipView())
|
||||
],
|
||||
) : loaddingWidget(true);
|
||||
}
|
||||
|
||||
@ -143,7 +146,8 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
|
||||
Widget showVipView() {
|
||||
return Container(
|
||||
margin: EdgeInsets.only(top: 10.sp),
|
||||
width: Get.width,
|
||||
// margin: EdgeInsets.only(top: 10.sp),
|
||||
color: const Color(0xB30B011B),
|
||||
padding: EdgeInsets.symmetric(vertical: 14.sp, horizontal: 20.sp),
|
||||
child: Column(
|
||||
@ -158,7 +162,7 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
padding: EdgeInsets.only(top: 18.sp),
|
||||
child: Text(
|
||||
"开通VIP后,才能查看更多附近的圈友,也可以根据您的喜好、属性、角色、取向等筛选出想要认识的人,还可以获得其他十几种会员特权,拥有更多不一样的体验",
|
||||
style: TextStyle(color: Colors.white, fontSize: 12.sp),
|
||||
style: TextStyle(color: Colors.white, fontSize: 14.sp),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
@ -312,7 +316,7 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 50.sp, // 设置固定高度
|
||||
height: 38.sp, // 设置固定高度
|
||||
width: Get.width,
|
||||
margin: EdgeInsets.symmetric(horizontal: 8.0),
|
||||
child: Align(
|
||||
@ -326,7 +330,7 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 8.sp, right: 3.sp),
|
||||
margin: EdgeInsets.only(left: 8.sp, right: 3.sp,bottom: 5.sp),
|
||||
child: _buildInterestsListView(item.interests))
|
||||
]),
|
||||
],
|
||||
@ -414,7 +418,7 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
color: const Color(0xFF392D53),
|
||||
),
|
||||
child: Container(
|
||||
margin: EdgeInsets.all(0.2.sp),
|
||||
margin: EdgeInsets.all(1.sp),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(17.0),
|
||||
color: const Color(0xFF392D53),
|
||||
@ -453,14 +457,14 @@ class _VicinityState extends State<Vicinity> with AutomaticKeepAliveClientMixin
|
||||
}
|
||||
|
||||
void _onLoading() async {
|
||||
if (widget.logic.myVip > 0) {
|
||||
widget.logic.vicinityPage = widget.logic.vicinityPage + 1;
|
||||
// if (widget.logic.myVip > 0) {
|
||||
// widget.logic.vicinityPage = widget.logic.vicinityPage + 1;
|
||||
// logic.offset = 0;
|
||||
//
|
||||
widget.logic.getNearByList();
|
||||
} else {
|
||||
widget.logic.refreshController.loadComplete();
|
||||
}
|
||||
// } else {
|
||||
// widget.logic.refreshController.loadComplete();
|
||||
// }
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@ -35,7 +35,7 @@ class _HomePageState extends State<HomePage>
|
||||
height: 49.sp + MediaQuery.of(context).padding.bottom,
|
||||
width: Get.width,
|
||||
// color: Colors.red,
|
||||
padding: EdgeInsets.only(left: 50.sp, right: 50.sp),
|
||||
padding: EdgeInsets.only(left: 40.sp, right: 40.sp),
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFF423055),
|
||||
image: DecorationImage(
|
||||
@ -44,7 +44,7 @@ class _HomePageState extends State<HomePage>
|
||||
getTabbarImage('tabbar_bg'),
|
||||
))),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
funcItem(0, 'msg', 0 == controller.currentIndex, controller),
|
||||
@ -78,7 +78,7 @@ class _HomePageState extends State<HomePage>
|
||||
funcItem(int index, String image, bool isSelected, HomeLogic controller) {
|
||||
return SizedBox(
|
||||
width: 80.sp,
|
||||
height: 36.sp,
|
||||
height: 50.sp,
|
||||
child: GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () {
|
||||
@ -98,8 +98,9 @@ class _HomePageState extends State<HomePage>
|
||||
isSelected
|
||||
? getTabbarImage('${image}_selected')
|
||||
: getTabbarImage('${image}_normal'),
|
||||
width: 34.sp,
|
||||
height: 34.sp,
|
||||
width: 38.sp,
|
||||
height: 38.sp,
|
||||
fit: BoxFit.fill,
|
||||
excludeFromSemantics: true,
|
||||
gaplessPlayback: true,
|
||||
))),
|
||||
@ -108,7 +109,7 @@ class _HomePageState extends State<HomePage>
|
||||
visible: index == 0 && controller.unreadSIze != "0",
|
||||
child: Positioned(
|
||||
// right: 4.sp,
|
||||
top: 4.sp,
|
||||
top: 6.sp,
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(
|
||||
left: int.parse(controller.unreadSIze.value) > 99
|
||||
@ -119,7 +120,7 @@ class _HomePageState extends State<HomePage>
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.red,
|
||||
borderRadius: BorderRadius.circular(11.sp)),
|
||||
borderRadius: BorderRadius.circular(10.sp)),
|
||||
child: Text(
|
||||
int.parse(controller.unreadSIze.value) > 99
|
||||
? '99+'
|
||||
|
||||
@ -37,7 +37,10 @@ class InvitePage extends StatelessWidget {
|
||||
alignment: Alignment.center,
|
||||
height: 22.sp,
|
||||
width: 62.sp,
|
||||
|
||||
child: Image.asset(getMineImage('invite_right_icon'),
|
||||
width: 62.sp,
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
onPressed: (){
|
||||
@ -66,30 +69,30 @@ class InvitePage extends StatelessWidget {
|
||||
allSpan.addAll(getTextSpanList(
|
||||
'Tip:您已成功邀请',
|
||||
Color(0xFF0DF5F7),
|
||||
12.sp,
|
||||
13.sp,
|
||||
searchContent: 'Tip:'));
|
||||
allSpan.addAll(getTextSpanList(
|
||||
' ${logic.homeData!.inviteCount! ?? 0} 位圈友,',
|
||||
Color(0xFFDC5BFD),
|
||||
12.sp,
|
||||
13.sp,
|
||||
searchContent: '${logic.homeData!.inviteCount! ?? 0}'));
|
||||
allSpan.addAll(getTextSpanList(
|
||||
'免费获得会员 ${logic.homeData!.achieveRewardDay! ?? '0'} 天,',
|
||||
Color(0xFFDC5BFD),
|
||||
12.sp,
|
||||
13.sp,
|
||||
searchContent: '${logic.homeData!.achieveRewardDay! ?? '0'} '));
|
||||
int maxCount = logic.homeData!.inviteAwardConf!.last.inviteCount ?? 0;
|
||||
if (logic.homeData!.inviteCount! >= maxCount) {
|
||||
allSpan.addAll(getTextSpanList(
|
||||
' 再邀请可领取更多奖励~',
|
||||
Color(0xFFDC5BFD),
|
||||
12.sp,
|
||||
13.sp,
|
||||
searchContent: ''));
|
||||
} else {
|
||||
allSpan.addAll(getTextSpanList(
|
||||
' 再邀请 ${logic.homeData!.diffAwardCount} 位圈友可领取更多奖励~',
|
||||
Color(0xFFDC5BFD),
|
||||
12.sp,
|
||||
13.sp,
|
||||
searchContent: '${logic.homeData!.diffAwardCount}'));
|
||||
}
|
||||
|
||||
@ -361,7 +364,7 @@ class InvitePage extends StatelessWidget {
|
||||
Expanded(child: Container()),
|
||||
Container(
|
||||
margin: EdgeInsets.only(
|
||||
left: 15.sp, right: 15.sp,bottom: 15.sp),
|
||||
left: 15.sp, right: 15.sp,bottom: 10.sp),
|
||||
child: RichText(
|
||||
text: TextSpan(
|
||||
children: allSpan
|
||||
@ -439,7 +442,7 @@ class InvitePage extends StatelessWidget {
|
||||
timeWidget(String time) {
|
||||
return Text(
|
||||
time,
|
||||
style: TextStyle(color: Colors.white, fontSize: 12.sp),
|
||||
style: TextStyle(color: Colors.white, fontSize: 14.sp),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -14,14 +14,21 @@ import 'package:get/get.dart';
|
||||
|
||||
import 'logic.dart';
|
||||
|
||||
class Complete_materialPage extends StatelessWidget {
|
||||
class Complete_materialPage extends StatefulWidget {
|
||||
Complete_materialPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<Complete_materialPage> createState() => _Complete_materialPageState();
|
||||
}
|
||||
|
||||
class _Complete_materialPageState extends State<Complete_materialPage> {
|
||||
// final logic = Get.put(Complete_materialLogic());
|
||||
|
||||
// PickerStyle pickerStyle = PickerStyle();
|
||||
bool isShowWx = Get.arguments == 'user';
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
return GetBuilder(builder: (Complete_materialLogic controller) {
|
||||
return Stack(
|
||||
children: [
|
||||
@ -34,7 +41,9 @@ class Complete_materialPage extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: MyAppBar(
|
||||
|
||||
centerTitle: '完善您的个人形象',
|
||||
isBack: true,
|
||||
isDiyBack: true,
|
||||
@ -111,7 +120,7 @@ class Complete_materialPage extends StatelessWidget {
|
||||
),
|
||||
() {},
|
||||
img: 'edit'),
|
||||
if (Get.arguments == 'user')
|
||||
if (isShowWx)
|
||||
funcWidget(
|
||||
'微信',
|
||||
TextField(
|
||||
@ -187,10 +196,12 @@ class Complete_materialPage extends StatelessWidget {
|
||||
}),
|
||||
funcWidget(
|
||||
'兴趣',
|
||||
Row(
|
||||
Container(
|
||||
child: Row(
|
||||
children: controller.numbers.isNotEmpty
|
||||
? [interestWdiget('JK圈', controller)]
|
||||
: [],
|
||||
),
|
||||
), () async {
|
||||
var data = await Get.toNamed(
|
||||
AppRoutes.SelectCircleActivity,
|
||||
@ -337,9 +348,11 @@ class Complete_materialPage extends StatelessWidget {
|
||||
}
|
||||
|
||||
interestWdiget(String interest, Complete_materialLogic controller) {
|
||||
return SizedBox(
|
||||
|
||||
return Container(
|
||||
height: 59.sp,
|
||||
width: 240.sp,
|
||||
|
||||
width: Get.width - 140.sp,
|
||||
child: ListView.builder(
|
||||
itemCount: controller.numbers.length,
|
||||
scrollDirection: Axis.horizontal,
|
||||
@ -387,6 +400,7 @@ class Complete_materialPage extends StatelessWidget {
|
||||
}
|
||||
|
||||
showSexPiker(context, Complete_materialLogic controller) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
Pickers.showSinglePicker(context,
|
||||
pickerStyle: DefaultPickerStyle.dark(),
|
||||
data: controller.genderList,
|
||||
@ -401,6 +415,7 @@ class Complete_materialPage extends StatelessWidget {
|
||||
}
|
||||
|
||||
showAgePiker(context, Complete_materialLogic controller) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
var date = PDuration.now();
|
||||
PDuration currentDur =
|
||||
PDuration(year: date.year! - 18, month: date.month, day: date.day);
|
||||
@ -434,6 +449,7 @@ class Complete_materialPage extends StatelessWidget {
|
||||
}
|
||||
|
||||
showRolePiker(context, Complete_materialLogic controller) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
Pickers.showSinglePicker(context,
|
||||
pickerStyle: DefaultPickerStyle.dark(),
|
||||
data: controller.roleList,
|
||||
@ -449,6 +465,7 @@ class Complete_materialPage extends StatelessWidget {
|
||||
|
||||
//
|
||||
showOrientationPiker(context, Complete_materialLogic controller) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
Pickers.showSinglePicker(context,
|
||||
pickerStyle: DefaultPickerStyle.dark(),
|
||||
data: controller.orientationList,
|
||||
|
||||
@ -90,7 +90,7 @@ class MinefragmentPage extends StatelessWidget {
|
||||
|
||||
Widget _circleLiveView(MinefragmentLogic logic) {
|
||||
return Column(
|
||||
children: [_circleItemView(logic), _helpItemView(),_setUpItemView()],
|
||||
children: [_circleItemView(logic),_invienItemView(), _helpItemView(),_setUpItemView()],
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ class _AddWxTipState extends State<AddWxTip> {
|
||||
desc,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
fontSize: 16.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
height: 2.0,
|
||||
),
|
||||
@ -90,7 +90,7 @@ class _AddWxTipState extends State<AddWxTip> {
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 14.sp,
|
||||
fontSize: 16.sp,
|
||||
height: 2.0,
|
||||
),
|
||||
))
|
||||
@ -148,7 +148,7 @@ class _AddWxTipState extends State<AddWxTip> {
|
||||
// padding: EdgeInsets.only(left: 6.sp, right: 6.sp),
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.mainColor,
|
||||
gradient: AppColor.mainLinearGradient,
|
||||
borderRadius: BorderRadius.circular(4.sp)),
|
||||
child: Text(
|
||||
widget.isHaveWx ? ' 更新微信 ':' 填写微信 ',
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:circle_app/common/Widgets/open_vip_tip/logic.dart';
|
||||
import 'package:circle_app/common/colors/app_color.dart';
|
||||
import 'package:circle_app/network/api.dart';
|
||||
import 'package:circle_app/network/dio_manager.dart';
|
||||
import 'package:circle_app/util/PaymentUtils.dart';
|
||||
@ -50,7 +51,7 @@ class _UnlockWxTipState extends State<UnlockWxTip> {
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 20.sp,right: 20.sp),
|
||||
padding: EdgeInsets.all(15.sp),
|
||||
height: !Platform.isIOS ? 440.sp : 410.sp,
|
||||
height: !Platform.isIOS ? 440.sp : 350.sp,
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFF393949),
|
||||
borderRadius: BorderRadius.circular(10.sp)
|
||||
@ -257,18 +258,31 @@ class _UnlockWxTipState extends State<UnlockWxTip> {
|
||||
: const Color(0xFF464556),
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
border: index == selectedIndex
|
||||
? Border.all(color: const Color(0xFF21BEAB), width: 1.sp)
|
||||
? Border.all(color: AppColor.mainColor, width: 1.sp)
|
||||
: null,
|
||||
),
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(left: 6.sp, right: 6.sp),
|
||||
child: Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
iconIv, // Replace this with the actual image path
|
||||
width: 31.sp,
|
||||
height: 29.sp,
|
||||
Container(
|
||||
width: 40.sp,
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
gradient: AppColor.mainLinearGradient
|
||||
),
|
||||
child: Text(
|
||||
'VIP',
|
||||
|
||||
style: TextStyle(color: Colors.white, fontSize: 12.sp,fontWeight: FontWeight.w500),
|
||||
),
|
||||
),
|
||||
// Image.asset(
|
||||
// iconIv, // Replace this with the actual image path
|
||||
// width: 31.sp,
|
||||
// height: 29.sp,
|
||||
// ),
|
||||
SizedBox(width: 8.sp),
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
@ -282,7 +296,7 @@ class _UnlockWxTipState extends State<UnlockWxTip> {
|
||||
|
||||
Text(
|
||||
|
||||
"同时对方可获得${price.bonus}跨豆",
|
||||
"同时对方可获得${price.bonus == 30 ? '一个月' : price.bonus == 90 ? '三个月' : price.bonus == 365 ? '一年' : '3年' }会员时长",
|
||||
style: TextStyle(
|
||||
color: const Color(0xFFEFD84E), fontSize: 10.0.sp),
|
||||
),
|
||||
@ -290,7 +304,7 @@ class _UnlockWxTipState extends State<UnlockWxTip> {
|
||||
Expanded(child: Container()),
|
||||
// To push the next widget to the right edge
|
||||
Text(
|
||||
'${price.curPrice}元',
|
||||
'${price.curPrice!.toInt()}元',
|
||||
style: TextStyle(color: Colors.white, fontSize: 14.sp),
|
||||
),
|
||||
],
|
||||
|
||||
@ -3,7 +3,7 @@ import 'dart:ui';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class AppColor {
|
||||
static Color mainColor = Color(0xFFCE51FF);
|
||||
static Color mainColor = Color(0xFF06F9FA);
|
||||
|
||||
static Gradient mainLinearGradient = const LinearGradient(
|
||||
colors: [
|
||||
|
||||
@ -113,6 +113,7 @@ class IOSPayment {
|
||||
}
|
||||
} else if (type == 2) {
|
||||
showOKToast('开通会员成功');
|
||||
EventBusManager.fire(CommentVipEvent(1));
|
||||
} else {
|
||||
showOKToast('解锁微信号成功');
|
||||
unLockWxSuccessResult(target_id);
|
||||
|
||||