Compare commits
No commits in common. "d3295a11b11f7f11b1995bfe4d4fbeecae75520a" and "56bd9f61638bb30f10103984a061a62732dc1607" have entirely different histories.
d3295a11b1
...
56bd9f6163
@ -65,8 +65,8 @@ android {
|
|||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode 110
|
versionCode 4
|
||||||
versionName "1.1.0"
|
versionName "1.0.3"
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
vivo_APPID: "105669716",
|
vivo_APPID: "105669716",
|
||||||
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
|
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
[
|
[
|
||||||
|
{"name": "全国",
|
||||||
|
"city": [{
|
||||||
|
"name": "全国",
|
||||||
|
"area": ["全国"]
|
||||||
|
}]},
|
||||||
{
|
{
|
||||||
"name": "北京市",
|
"name": "北京市",
|
||||||
"city": [
|
"city": [
|
||||||
|
|||||||
@ -275,12 +275,13 @@ class CircleLogic extends GetxController {
|
|||||||
} catch (Exception) {}
|
} catch (Exception) {}
|
||||||
|
|
||||||
if (vicinityPage == 1) {
|
if (vicinityPage == 1) {
|
||||||
cityName = bean.data.city;
|
|
||||||
vicinityList.clear();
|
vicinityList.clear();
|
||||||
}
|
}
|
||||||
try{
|
try{
|
||||||
vicinityList.addAll(bean.data.users);
|
vicinityList.addAll(bean.data.users);
|
||||||
} on Exception{}
|
} catch(Exception){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (vicinityPage == 1) {
|
if (vicinityPage == 1) {
|
||||||
refreshController.refreshCompleted();
|
refreshController.refreshCompleted();
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import 'package:circle_app/util/util.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_pickers/pickers.dart';
|
import 'package:flutter_pickers/pickers.dart';
|
||||||
import 'package:flutter_pickers/style/default_style.dart';
|
import 'package:flutter_pickers/style/default_style.dart';
|
||||||
import 'package:flutter_pickers/style/picker_style.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:flutter_swiper/flutter_swiper.dart';
|
import 'package:flutter_swiper/flutter_swiper.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@ -19,8 +18,10 @@ import '../select_circle/logic.dart';
|
|||||||
import '../userinfo/logic.dart';
|
import '../userinfo/logic.dart';
|
||||||
import 'logic.dart';
|
import 'logic.dart';
|
||||||
|
|
||||||
|
|
||||||
const bgWidget = DecorationImage(
|
const bgWidget = DecorationImage(
|
||||||
fit: BoxFit.fill, image: AssetImage('assets/images/base/home_back.png'));
|
fit: BoxFit.fill,
|
||||||
|
image: AssetImage('assets/images/base/home_back.png'));
|
||||||
|
|
||||||
class CirclePage extends StatefulWidget {
|
class CirclePage extends StatefulWidget {
|
||||||
CirclePage({Key? key}) : super(key: key);
|
CirclePage({Key? key}) : super(key: key);
|
||||||
@ -75,8 +76,9 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
return Container(
|
return Container(
|
||||||
width: MediaQuery.of(context).size.width,
|
width: MediaQuery.of(context).size.width,
|
||||||
height: MediaQuery.of(context).size.height,
|
height: MediaQuery.of(context).size.height,
|
||||||
decoration:
|
decoration: const BoxDecoration(
|
||||||
const BoxDecoration(color: Color(0xFF423055), image: bgWidget),
|
color: Color(0xFF423055),
|
||||||
|
image: bgWidget),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
@ -137,20 +139,18 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
controller: logic.refreshController,
|
controller: logic.refreshController,
|
||||||
onRefresh: _onRefresh,
|
onRefresh: _onRefresh,
|
||||||
onLoading: _onLoading,
|
onLoading: _onLoading,
|
||||||
enablePullUp: logic.myVip > 0,
|
enablePullUp: logic.myVip>0,
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
padding: EdgeInsets.all(10.sp),
|
padding: EdgeInsets.all(10.sp),
|
||||||
itemCount: logic.myVip == 0
|
itemCount: logic.myVip == 0 ? logic.vicinityList.length + 2 : logic.vicinityList.length + 1,
|
||||||
? logic.vicinityList.length + 2
|
|
||||||
: logic.vicinityList.length + 1,
|
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
return bannerView(controller);
|
return bannerView(controller);
|
||||||
} else {
|
} else {
|
||||||
if (logic.myVip == 0 && index == logic.vicinityList.length + 1) {
|
if (logic.myVip == 0 && index == logic.vicinityList.length+1) {
|
||||||
return showVipView();
|
return showVipView();
|
||||||
} else {
|
} else {
|
||||||
return ListItem(logic.vicinityList[index - 1], index - 1);
|
return ListItem(logic.vicinityList[index-1], index-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -215,8 +215,8 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
|
|
||||||
Widget ListItem(VicinityItemBean item, int index) {
|
Widget ListItem(VicinityItemBean item, int index) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
Get.toNamed(AppRoutes.UserInfoActivity, arguments: item.id.toString());
|
Get.toNamed(AppRoutes.UserInfoActivity, arguments: item.id.toString());
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
margin: EdgeInsets.only(top: 10.sp),
|
margin: EdgeInsets.only(top: 10.sp),
|
||||||
@ -238,14 +238,12 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
topLeft: Radius.circular(10.sp),
|
topLeft: Radius.circular(10.sp),
|
||||||
topRight: Radius.circular(10.sp),
|
topRight: Radius.circular(10.sp),
|
||||||
),
|
),
|
||||||
child: item.images.length == 0
|
child: item.images.length==0? Image(
|
||||||
? Image(
|
image: AssetImage(getCircleImage("icon_list_null")),
|
||||||
image: AssetImage(getCircleImage("icon_list_null")),
|
width: Get.width,
|
||||||
width: Get.width,
|
fit: BoxFit.fill,
|
||||||
fit: BoxFit.fill,
|
height: 92.sp,
|
||||||
height: 92.sp,
|
):Container(),
|
||||||
)
|
|
||||||
: Container(),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Column(children: [
|
Column(children: [
|
||||||
@ -280,18 +278,16 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|
||||||
margin: EdgeInsets.only(top: 6.sp),
|
margin: EdgeInsets.only(top: 6.sp),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
for (int i = 0; i < item.images.length; i++)
|
for (int i = 0; i < item.images.length; i++)
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
Get.toNamed(AppRoutes.Swiper,
|
Get.toNamed(AppRoutes.Swiper,
|
||||||
arguments: {
|
arguments: {'imaglist': item.images, 'index': i});
|
||||||
'imaglist': item.images,
|
},
|
||||||
'index': i
|
|
||||||
});
|
|
||||||
},
|
|
||||||
child: ListAlbumItem(item.images[i], i)),
|
child: ListAlbumItem(item.images[i], i)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -318,36 +314,36 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
const Spacer(),
|
const Spacer(),
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.only(right: 8.sp),
|
margin: EdgeInsets.only(right: 8.sp),
|
||||||
child: item.isOnline == 1
|
child:item.isOnline==1? Text(
|
||||||
? Text(
|
"当前在线",
|
||||||
"当前在线",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
color: const Color.fromRGBO(247, 250, 250, 1.0),
|
||||||
color:
|
fontSize: 12.sp,
|
||||||
const Color.fromRGBO(247, 250, 250, 1.0),
|
),
|
||||||
fontSize: 12.sp,
|
):Container(),
|
||||||
),
|
|
||||||
)
|
|
||||||
: Container(),
|
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 50.sp, // 设置固定高度
|
height: 50.sp, // 设置固定高度
|
||||||
width: Get.width,
|
width: Get.width,
|
||||||
margin: EdgeInsets.symmetric(horizontal: 8.0),
|
margin: EdgeInsets.symmetric( horizontal: 8.0),
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.centerLeft, // 文本左对齐,垂直居中
|
alignment: Alignment.centerLeft, // 文本左对齐,垂直居中
|
||||||
child: Text(
|
child: Text(
|
||||||
item.signature,
|
item.signature,
|
||||||
maxLines: 2,
|
maxLines: 2,
|
||||||
style: TextStyle(color: Colors.white, fontSize: 14.sp),
|
style: TextStyle(color: Colors.white,fontSize: 14.sp),
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.only(left: 8.sp, right: 3.sp),
|
margin: EdgeInsets.only(left: 8.sp,right: 3.sp),
|
||||||
child: _buildInterestsListView(item.interests))
|
child: _buildInterestsListView(item.interests))
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
@ -412,9 +408,11 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Widget _buildInfoRow(VicinityItemBean item) {
|
Widget _buildInfoRow(VicinityItemBean item) {
|
||||||
String ageMsg =
|
String ageMsg = getAgeCOntent(item!.gender, item!.age,
|
||||||
getAgeCOntent(item!.gender, item!.age, item!.role, item!.orientation);
|
item!.role, item!.orientation);
|
||||||
return Row(
|
return Row(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
@ -444,44 +442,40 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 6),
|
const SizedBox(width: 6),
|
||||||
if (item.vip > 0)
|
if (item.vip > 0)
|
||||||
Image(
|
Image(
|
||||||
image: AssetImage(getBaseImage(item.vip == 1 ? "vip" : 'year_vip')),
|
image: AssetImage(getBaseImage(item.vip == 1 ? "vip" : 'year_vip')),
|
||||||
width: 44.sp,
|
width: 44.sp,
|
||||||
height: 18.sp,
|
height: 18.sp,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget ListAlbumItem(String item, int index) {
|
Widget ListAlbumItem(String item, int index) {
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 2.sp),
|
margin: EdgeInsets.symmetric(horizontal: 2.sp),
|
||||||
child: CachedNetworkImage(
|
child: CachedNetworkImage( width: 88.sp, height: 88.sp, fit: BoxFit.cover, imageUrl: item+"?imageView2/1/w/176/h/176/q/75",),
|
||||||
width: 88.sp,
|
|
||||||
height: 88.sp,
|
|
||||||
fit: BoxFit.cover,
|
|
||||||
imageUrl: item + "?imageView2/1/w/176/h/176/q/75",
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onRefresh() async {
|
void _onRefresh() async {
|
||||||
logic.vicinityPage = 1;
|
logic.vicinityPage = 1;
|
||||||
logic.offset = 0;
|
logic.offset = 0;
|
||||||
logic.getNearByList();
|
logic.getNearByList();
|
||||||
// logic.refreshController.refreshCompleted();
|
// logic.refreshController.refreshCompleted();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onLoading() async {
|
void _onLoading() async {
|
||||||
if (logic.myVip > 0) {
|
if(logic.myVip>0){
|
||||||
logic.vicinityPage = logic.vicinityPage + 1;
|
logic.vicinityPage = logic.vicinityPage + 1;
|
||||||
// logic.offset = 0;
|
|
||||||
//
|
//
|
||||||
logic.getNearByList();
|
logic.getNearByList();
|
||||||
} else {
|
}else{
|
||||||
logic.refreshController.loadComplete();
|
logic.refreshController.loadComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget bannerView(CircleLogic controller) {
|
Widget bannerView(CircleLogic controller) {
|
||||||
@ -491,14 +485,17 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
child: Swiper(
|
child: Swiper(
|
||||||
autoplay: logic.bannerList.length > 1,
|
autoplay: logic.bannerList.length > 1,
|
||||||
controller: logic.swiperController,
|
controller: logic.swiperController,
|
||||||
loop: logic.bannerList.length > 1 ? true : false,
|
loop: logic.bannerList.length>1?true:false,
|
||||||
// index:logic.index,
|
// index:logic.index,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
print(logic.bannerList[index].picUrl);
|
print(logic.bannerList[index].picUrl);
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
// print(logic.bannerList[index].param);
|
print(logic.bannerList[index].param);
|
||||||
navigateToCustomRoute(logic.bannerList[index]);
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
|
'title': "",
|
||||||
|
"url": logic.bannerList[index].param.toString()
|
||||||
|
});
|
||||||
},
|
},
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
width: Get.width,
|
width: Get.width,
|
||||||
@ -531,16 +528,16 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
Widget circleList(CircleLogic controller) {
|
Widget circleList(CircleLogic controller) {
|
||||||
return Swiper(
|
return Swiper(
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
var bean = logic.circle.lists[index];
|
var bean = logic.circle.lists[index];
|
||||||
// final GlobalKey<InfoListViewState> infoListViewKey = GlobalKey<InfoListViewState>();
|
// final GlobalKey<InfoListViewState> infoListViewKey = GlobalKey<InfoListViewState>();
|
||||||
return InfoListView(index, bean, logic);
|
return InfoListView(index, bean, logic);
|
||||||
},
|
},
|
||||||
onIndexChanged: (index) {
|
onIndexChanged: (index) {
|
||||||
controller.state.index = index;
|
controller.state.index = index;
|
||||||
if (index == logic.circle.lists.length - 1) {
|
if (index == logic.circle.lists.length - 1) {
|
||||||
logic.loadMore();
|
logic.loadMore();
|
||||||
}
|
}
|
||||||
print(index.toString());
|
print(index.toString());
|
||||||
},
|
},
|
||||||
index: controller.state.index,
|
index: controller.state.index,
|
||||||
itemCount: logic.circle.lists.length,
|
itemCount: logic.circle.lists.length,
|
||||||
@ -593,67 +590,23 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
left: 0,
|
left: 0,
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Get.toNamed(AppRoutes.Invite);
|
Get.toNamed(AppRoutes.VisitorListActivity);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: SizedBox(
|
||||||
decoration: BoxDecoration(
|
width: 30.sp * widgets.length,
|
||||||
borderRadius: BorderRadius.circular(17.0),
|
height: 44.sp,
|
||||||
gradient: const LinearGradient(
|
child: Stack(
|
||||||
colors: [
|
alignment: Alignment.centerLeft,
|
||||||
Color(0xFF06F9FA),
|
children: widgets,
|
||||||
Color(0xFFDC5BFD),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
color: const Color(0xFF392D53),
|
|
||||||
),
|
|
||||||
child: Container(
|
|
||||||
margin: EdgeInsets.all(0.6.sp),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(17.0),
|
|
||||||
color: const Color(0xFF392D53),
|
|
||||||
),
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
top: 5.sp,
|
|
||||||
bottom: 4.sp,
|
|
||||||
left: 8.sp,
|
|
||||||
right: 8.sp,
|
|
||||||
),
|
|
||||||
child: const Center(
|
|
||||||
child: Text(
|
|
||||||
"邀请得会员",
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 11,
|
|
||||||
color: Colors.white,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
))
|
),
|
||||||
|
)
|
||||||
// Positioned(
|
|
||||||
// left: 0,
|
|
||||||
// child: GestureDetector(
|
|
||||||
// onTap: () {
|
|
||||||
// Get.toNamed(AppRoutes.VisitorListActivity);
|
|
||||||
// },
|
|
||||||
// child: SizedBox(
|
|
||||||
// width: 30.sp * widgets.length,
|
|
||||||
// height: 44.sp,
|
|
||||||
// child: Stack(
|
|
||||||
// alignment: Alignment.centerLeft,
|
|
||||||
// children: widgets,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
: GestureDetector(
|
: GestureDetector(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
showCityPiker(context);
|
showCityPiker(context);
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
getCircleImage('icon_city'),
|
getCircleImage('icon_city'),
|
||||||
@ -662,13 +615,13 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.only(left: 4.sp, top: 4.sp),
|
margin: EdgeInsets.only(left: 4.sp, top: 4.sp),
|
||||||
child: Text(
|
child: Text(
|
||||||
modifyCityName(logic.cityName),
|
logic.cityName,
|
||||||
style:
|
style:
|
||||||
TextStyle(color: Colors.white, fontSize: 16.sp),
|
TextStyle(color: Colors.white, fontSize: 16.sp),
|
||||||
))
|
))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
//padding: EdgeInsets.symmetric(horizontal: 10.sp),
|
//padding: EdgeInsets.symmetric(horizontal: 10.sp),
|
||||||
@ -680,7 +633,7 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
TabBar(
|
TabBar(
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
labelPadding: EdgeInsets.symmetric(horizontal: 13.0),
|
labelPadding: EdgeInsets.symmetric(horizontal: 13.0),
|
||||||
indicator: UnderlineTabIndicator(
|
indicator: UnderlineTabIndicator(
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: const Color(0xFF00FFF4),
|
color: const Color(0xFF00FFF4),
|
||||||
@ -700,6 +653,7 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
'发现',
|
'发现',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.sp,
|
fontSize: 18.sp,
|
||||||
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -708,6 +662,7 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
'附近',
|
'附近',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.sp,
|
fontSize: 18.sp,
|
||||||
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -720,16 +675,17 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
color: const Color(0xFFF657FF).withOpacity(0.5),
|
color: const Color(0xFFF657FF).withOpacity(0.5),
|
||||||
offset: Offset(0, -2), // 阴影偏移
|
offset: Offset(0, -2), // 阴影偏移
|
||||||
blurRadius: 3, // 阴影模糊半径
|
blurRadius: 3, // 阴影模糊半径
|
||||||
// spreadRadius: 0
|
// spreadRadius: 0
|
||||||
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
unselectedLabelStyle: TextStyle(
|
unselectedLabelStyle: TextStyle(
|
||||||
// color: const Color(0xB3FFFFFF),
|
// color: const Color(0xB3FFFFFF),
|
||||||
fontSize: 18.sp,
|
fontSize: 18.sp,
|
||||||
shadows: [
|
shadows: [
|
||||||
Shadow(
|
Shadow(
|
||||||
// color: const Color(0xFFF657FF),
|
// color: const Color(0xFFF657FF),
|
||||||
offset: const Offset(0, -1),
|
offset: const Offset(0, -1),
|
||||||
blurRadius: 3.0.sp,
|
blurRadius: 3.0.sp,
|
||||||
),
|
),
|
||||||
@ -773,15 +729,57 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
Positioned(
|
Positioned(
|
||||||
right: 0,
|
right: 0,
|
||||||
child: logic.isShowCircle
|
child: logic.isShowCircle
|
||||||
? GestureDetector(
|
?
|
||||||
onTap: () {
|
GestureDetector(
|
||||||
Get.toNamed(AppRoutes.MyCircle, arguments: '');
|
onTap: (){
|
||||||
},
|
Get.toNamed(AppRoutes.Invite);
|
||||||
child: Image.asset(
|
},
|
||||||
getCircleImage('my_circle'),
|
child: Container(
|
||||||
width: 64.sp,
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(17.0),
|
||||||
|
gradient: const LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Color(0xFF06F9FA),
|
||||||
|
Color(0xFFDC5BFD),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
color: const Color(0xFF392D53),
|
||||||
|
),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(0.6.sp),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(17.0),
|
||||||
|
color: const Color(0xFF392D53),
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
top: 5.sp,
|
||||||
|
bottom: 4.sp,
|
||||||
|
left: 15.sp,
|
||||||
|
right: 15.sp,
|
||||||
),
|
),
|
||||||
)
|
child: const Center(
|
||||||
|
child: Text(
|
||||||
|
"邀请得会员",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 11,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
// GestureDetector(
|
||||||
|
// onTap: () {
|
||||||
|
// Get.toNamed(AppRoutes.MyCircle, arguments: '');
|
||||||
|
// },
|
||||||
|
// child: Image.asset(
|
||||||
|
// getCircleImage('my_circle'),
|
||||||
|
// width: 64.sp,
|
||||||
|
// ),
|
||||||
|
// )
|
||||||
: GestureDetector(
|
: GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
_showBottomSheet(context);
|
_showBottomSheet(context);
|
||||||
@ -807,7 +805,8 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
orientationList: logic.orientationList,
|
orientationList: logic.orientationList,
|
||||||
roleList: logic.roleList,
|
roleList: logic.roleList,
|
||||||
callback: (genderList, orientationList, roleList) {
|
callback: (genderList, orientationList, roleList) {
|
||||||
_onRefresh();
|
logic.offset = 0;
|
||||||
|
logic.getNearByList();
|
||||||
},
|
},
|
||||||
); // Use your custom widget here
|
); // Use your custom widget here
|
||||||
},
|
},
|
||||||
@ -1038,87 +1037,32 @@ class _CirclePageState extends State<CirclePage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
showCityPiker(context) {
|
showCityPiker(context) {
|
||||||
Pickers.showMultiLinkPicker(context,
|
Pickers.showMultiLinkPicker(context,
|
||||||
pickerStyle: DefaultPickerStyle.dark(),
|
pickerStyle: DefaultPickerStyle.dark(), data: logic.cityMap, columeNum: 2,
|
||||||
data: logic.cityMap,
|
onConfirm: (List res, List<int> position){
|
||||||
columeNum: 2, onConfirm: (List res, List<int> position) {
|
print(res);
|
||||||
print(res);
|
// print(logic.cityMap[res[0]][res[1]][0]);
|
||||||
// print(logic.cityMap[res[0]][res[1]][0]);
|
// controller.state.city = controller.cityMap[res[0]][res[1]][0];
|
||||||
// controller.state.city = controller.cityMap[res[0]][res[1]][0];
|
// logic.state.city = res[1];
|
||||||
// logic.state.city = res[1];
|
logic.cityName = res[1];
|
||||||
logic.cityName = res[1];
|
|
||||||
|
|
||||||
_onRefresh();
|
logic.offset = 0;
|
||||||
// logic.getSuccess();
|
logic.getNearByList();
|
||||||
// logic.update();
|
// logic.getSuccess();
|
||||||
}
|
// logic.update();
|
||||||
|
}
|
||||||
|
|
||||||
// onConfirm:(String province, String city, String? town){
|
// onConfirm:(String province, String city, String? town){
|
||||||
// controller.state.role = city;
|
// controller.state.role = city;
|
||||||
// controller.update();
|
// controller.update();
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
String modifyCityName(String cityName) {
|
|
||||||
if (cityName.endsWith("市")) {
|
|
||||||
cityName = cityName.substring(0, cityName.length - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cityName.length > 4) {
|
|
||||||
cityName = cityName.substring(0, 4) + "...";
|
|
||||||
}
|
|
||||||
|
|
||||||
return cityName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DefaultPickerStyle extends PickerStyle {
|
|
||||||
DefaultPickerStyle({bool haveRadius: false, String? title}) {
|
|
||||||
if (haveRadius) {
|
|
||||||
this.headDecoration = BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: const BorderRadius.only(
|
|
||||||
topLeft: Radius.circular(10), topRight: Radius.circular(10)));
|
|
||||||
}
|
|
||||||
if (title != null && title != '') {
|
|
||||||
this.title = Center(
|
|
||||||
child:
|
|
||||||
Text(title, style: TextStyle(color: Colors.grey, fontSize: 14)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 夜间
|
|
||||||
DefaultPickerStyle.dark({bool haveRadius: false, String? title}) {
|
|
||||||
this.commitButton = Container(
|
|
||||||
alignment: Alignment.center,
|
|
||||||
padding: const EdgeInsets.only(left: 12, right: 22),
|
|
||||||
child: Text('确定', style: TextStyle(color: Colors.white, fontSize: 16.0)),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
this.cancelButton = Container(
|
|
||||||
alignment: Alignment.center,
|
|
||||||
padding: const EdgeInsets.only(left: 22, right: 12),
|
|
||||||
child: Text('取消', style: TextStyle(color: Colors.white, fontSize: 16.0)),
|
|
||||||
);
|
|
||||||
|
|
||||||
this.headDecoration = BoxDecoration(
|
|
||||||
color: Color(0xFF4A3E5D),
|
|
||||||
borderRadius: !haveRadius
|
|
||||||
? null
|
|
||||||
: BorderRadius.only(
|
|
||||||
topLeft: Radius.circular(10), topRight: Radius.circular(10)));
|
|
||||||
|
|
||||||
if (title != null && title != '') {
|
|
||||||
this.title = Center(
|
|
||||||
child:
|
|
||||||
Text(title, style: TextStyle(color: Colors.white, fontSize: 14)));
|
|
||||||
}
|
|
||||||
|
|
||||||
this.backgroundColor = Color(0xFF4A3E5D)!;
|
|
||||||
this.textColor = Colors.white;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,9 +68,7 @@ class HomeLogic extends GetxController {
|
|||||||
|
|
||||||
if (sender.userID == "qpqz_dev_10_10000000000" ||
|
if (sender.userID == "qpqz_dev_10_10000000000" ||
|
||||||
sender.userID == "qpqz_prod_10_10000000000") {
|
sender.userID == "qpqz_prod_10_10000000000") {
|
||||||
if(customData.isEmpty){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
print("123123123123"+customData);
|
print("123123123123"+customData);
|
||||||
Map<String, dynamic> jsonData = json.decode(customData);
|
Map<String, dynamic> jsonData = json.decode(customData);
|
||||||
|
|||||||
@ -26,40 +26,49 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
|
|||||||
super.build(context);
|
super.build(context);
|
||||||
|
|
||||||
return GetBuilder(builder: (HomeLogic controller) {
|
return GetBuilder(builder: (HomeLogic controller) {
|
||||||
return ExitAppConfirmation(child: Scaffold(
|
return GestureDetector(
|
||||||
resizeToAvoidBottomInset: false,
|
onTap: () {
|
||||||
// backgroundColor: Color.fromRGBO(244, 245, 245, 1.0),
|
controller.onReady();
|
||||||
bottomNavigationBar: Container(
|
// Get.toNamed(AppRoutes.Complete_materialPage);
|
||||||
height: 49.sp + MediaQuery.of(context).padding.bottom,
|
},
|
||||||
width: Get.width,
|
child: ExitAppConfirmation(child: Stack(children: [
|
||||||
// color: Colors.red,
|
Scaffold(
|
||||||
padding: EdgeInsets.only(left: 50.sp, right: 50.sp),
|
resizeToAvoidBottomInset: false,
|
||||||
decoration: BoxDecoration(
|
// backgroundColor: Color.fromRGBO(244, 245, 245, 1.0),
|
||||||
color: const Color(0xFF423055),
|
bottomNavigationBar: Container(
|
||||||
image: DecorationImage(
|
height: 49.sp + MediaQuery.of(context).padding.bottom,
|
||||||
fit: BoxFit.fill,
|
width: Get.width,
|
||||||
image: AssetImage(
|
// color: Colors.red,
|
||||||
getTabbarImage('tabbar_bg'),
|
padding: EdgeInsets.only(left: 50.sp, right: 50.sp),
|
||||||
))),
|
decoration: BoxDecoration(
|
||||||
child: Row(
|
color: const Color(0xFF423055),
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
image: DecorationImage(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
fit: BoxFit.fill,
|
||||||
children: [
|
image: AssetImage(
|
||||||
funcItem(0, 'msg', 0 == controller.currentIndex, controller),
|
getTabbarImage('tabbar_bg'),
|
||||||
funcItem(1, 'circle', 1 == controller.currentIndex, controller),
|
))),
|
||||||
funcItem(2, 'mine', 2 == controller.currentIndex, controller),
|
child: Row(
|
||||||
],
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
funcItem(0, 'msg', 0 == controller.currentIndex, controller),
|
||||||
|
funcItem(1, 'circle', 1 == controller.currentIndex, controller),
|
||||||
|
funcItem(2, 'mine', 2 == controller.currentIndex, controller),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: PageView(
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
controller: controller.pageController,
|
||||||
|
onPageChanged: (int index) {
|
||||||
|
// controller.updateIndex(index);
|
||||||
|
},
|
||||||
|
children: controller.tabs,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
body: PageView(
|
],),)
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
);
|
||||||
controller: controller.pageController,
|
|
||||||
onPageChanged: (int index) {
|
|
||||||
// controller.updateIndex(index);
|
|
||||||
},
|
|
||||||
children: controller.tabs,
|
|
||||||
),
|
|
||||||
),);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -37,264 +37,269 @@ class _ShareState extends State<Share> {
|
|||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
body: Container(
|
body: Container(
|
||||||
child: Column(
|
child: Stack(
|
||||||
|
alignment: Alignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Container()),
|
Positioned(
|
||||||
Container(
|
top: 84.sp,
|
||||||
width: Get.width - 40.sp,
|
child: Container(
|
||||||
// height: Get.height - Get.bottomBarHeight - 164.sp - 10.sp,
|
width: Get.width - 40.sp,
|
||||||
child:SingleChildScrollView(
|
height: Get.height - 84.sp - Get.bottomBarHeight - 164.sp - 10.sp,
|
||||||
child: RepaintBoundary(
|
child:SingleChildScrollView(
|
||||||
key: _globalKey,
|
child: RepaintBoundary(
|
||||||
child: Container(
|
key: _globalKey,
|
||||||
decoration: BoxDecoration(
|
child: Container(
|
||||||
image: DecorationImage(
|
decoration: BoxDecoration(
|
||||||
image: AssetImage(getCircleImage("open_vip_bg")),
|
image: DecorationImage(
|
||||||
fit: BoxFit.fill,
|
image: AssetImage(getCircleImage("open_vip_bg")),
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
child: Column(
|
||||||
child: Column(
|
children: [
|
||||||
children: [
|
Container(
|
||||||
Container(
|
width: Get.width,
|
||||||
width: Get.width,
|
height: 65.sp,
|
||||||
height: 65.sp,
|
margin: EdgeInsets.only(left: 15.sp, top: 20.sp),
|
||||||
margin: EdgeInsets.only(left: 15.sp, top: 20.sp,right: 15.sp),
|
child: Row(
|
||||||
child: Row(
|
children: [
|
||||||
children: [
|
Center(
|
||||||
Center(
|
child: Stack(
|
||||||
child: Stack(
|
alignment: Alignment.center,
|
||||||
alignment: Alignment.center,
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
width: 47.sp,
|
|
||||||
height: 47.sp,
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
gradient: LinearGradient(
|
|
||||||
colors: [
|
|
||||||
Color(0xFFDD3DF4),
|
|
||||||
Color(0xFF30FFD9)
|
|
||||||
],
|
|
||||||
begin: Alignment.topCenter,
|
|
||||||
end: Alignment.bottomCenter,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 46.sp,
|
|
||||||
height: 46.sp,
|
|
||||||
child: _buildAvatar1(logic),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
padding: EdgeInsets.only(left: 10.sp),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
_buildNameRow(logic),
|
|
||||||
SizedBox(height: 10.sp),
|
|
||||||
_buildInfoRow(logic),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Image.asset(
|
|
||||||
getBaseImage("ic_launcher"),
|
|
||||||
width: 65.sp,
|
|
||||||
height: 65.sp,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
// Expanded(
|
|
||||||
// child:
|
|
||||||
Container(
|
|
||||||
padding: EdgeInsets.only(left: 10.sp,right: 10.sp),
|
|
||||||
// color: Colors.red,
|
|
||||||
// height: 310.sp,
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
height: 5.sp,
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
padding: EdgeInsets.only(left: 15.sp,right: 15.sp),
|
|
||||||
child: Image.asset(
|
|
||||||
getMineImage('share_title'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 10.sp,
|
|
||||||
),
|
|
||||||
Image.asset(
|
|
||||||
getMineImage('share_content_bg'),
|
|
||||||
// height: 260.sp,
|
|
||||||
fit:BoxFit.fitWidth
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
// height: 90.sp,
|
|
||||||
// color: Color(0xFF334141),
|
|
||||||
alignment: Alignment.center,
|
|
||||||
// color: Colors.yellow,
|
|
||||||
// width: Get.width-40.sp,
|
|
||||||
margin: EdgeInsets.only(bottom: 15.sp,top: 10.sp),
|
|
||||||
padding: EdgeInsets.only(left: 15.sp, right: 15.sp),
|
|
||||||
child: Row(
|
|
||||||
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
// color: Colors.red,
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.start,
|
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
// color: Colors.blue,
|
width: 47.sp,
|
||||||
child: Row(
|
height: 47.sp,
|
||||||
children: [
|
decoration: const BoxDecoration(
|
||||||
Text(
|
shape: BoxShape.circle,
|
||||||
'专属邀请码',
|
gradient: LinearGradient(
|
||||||
style: TextStyle(
|
colors: [
|
||||||
color: Colors.white,
|
Color(0xFFDD3DF4),
|
||||||
fontSize: 18.sp),
|
Color(0xFF30FFD9)
|
||||||
),
|
],
|
||||||
SizedBox(
|
begin: Alignment.topCenter,
|
||||||
width: 8.sp,
|
end: Alignment.bottomCenter,
|
||||||
),
|
),
|
||||||
Container(
|
|
||||||
alignment: Alignment.center,
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
left: 10.sp, right: 10.sp),
|
|
||||||
height: 25.sp,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
// color: Color(0xFFDC5BFD),
|
|
||||||
gradient:
|
|
||||||
const LinearGradient(
|
|
||||||
colors: [
|
|
||||||
Color(0xFF0DF5F7),
|
|
||||||
Color(0xFFD263FB)
|
|
||||||
],
|
|
||||||
begin:
|
|
||||||
Alignment.centerLeft,
|
|
||||||
end:
|
|
||||||
Alignment.centerRight,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.5.sp)),
|
|
||||||
child: Text(
|
|
||||||
widget.code,
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.black,
|
|
||||||
fontSize: 12.sp),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
SizedBox(
|
||||||
margin: EdgeInsets.only(top: 10.sp),
|
width: 46.sp,
|
||||||
width: Get.width - 200.sp,
|
height: 46.sp,
|
||||||
child: Text(
|
child: _buildAvatar1(logic),
|
||||||
'扫码或长按识别下载APP,认识更多小众圈子里的人,给生活带来更多乐趣~',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 15.sp)),
|
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Expanded(
|
||||||
// Image.asset(getBaseImage("ic_launcher"),width: 80.sp,height: 80.sp,)
|
child: Container(
|
||||||
Stack(
|
padding: EdgeInsets.only(left: 10.sp),
|
||||||
alignment: Alignment.center,
|
child: Column(
|
||||||
children: [
|
crossAxisAlignment:
|
||||||
Container(
|
CrossAxisAlignment.start,
|
||||||
color: Colors.white,
|
children: [
|
||||||
width: 90.sp,
|
_buildNameRow(logic),
|
||||||
height: 90.sp,
|
SizedBox(height: 10.sp),
|
||||||
|
_buildInfoRow(logic),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
QrImageView(
|
),
|
||||||
data: widget.link,
|
Image.asset(
|
||||||
padding: EdgeInsets.zero,
|
getBaseImage("ic_launcher"),
|
||||||
version: QrVersions.auto,
|
width: 80.sp,
|
||||||
size: 80.sp,
|
height: 80.sp,
|
||||||
gapless: false,
|
)
|
||||||
// backgroundColor: Colors.black,
|
],
|
||||||
)
|
),
|
||||||
],
|
),
|
||||||
)
|
// Expanded(
|
||||||
|
// child:
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.only(left: 10.sp,right: 10.sp),
|
||||||
|
// color: Colors.red,
|
||||||
|
// height: 310.sp,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 20.sp,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.only(left: 15.sp,right: 15.sp),
|
||||||
|
child: Image.asset(
|
||||||
|
getMineImage('share_title'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.sp,
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
getMineImage('share_content_bg'),
|
||||||
|
// height: 260.sp,
|
||||||
|
fit:BoxFit.fitWidth
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
height: 90.sp,
|
||||||
|
// color: Color(0xFF334141),
|
||||||
|
alignment: Alignment.center,
|
||||||
|
// color: Colors.yellow,
|
||||||
|
// width: Get.width-40.sp,
|
||||||
|
margin: EdgeInsets.only(bottom: 15.sp,top: 10.sp),
|
||||||
|
padding: EdgeInsets.only(left: 15.sp, right: 15.sp),
|
||||||
|
child: Row(
|
||||||
|
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
// color: Colors.red,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
// color: Colors.blue,
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'专属邀请码',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 16.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 8.sp,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 10.sp, right: 10.sp),
|
||||||
|
height: 25.sp,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
// color: Color(0xFFDC5BFD),
|
||||||
|
gradient:
|
||||||
|
const LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Color(0xFF0DF5F7),
|
||||||
|
Color(0xFFD263FB)
|
||||||
|
],
|
||||||
|
begin:
|
||||||
|
Alignment.centerLeft,
|
||||||
|
end:
|
||||||
|
Alignment.centerRight,
|
||||||
|
),
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(
|
||||||
|
12.5.sp)),
|
||||||
|
child: Text(
|
||||||
|
widget.code,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.black,
|
||||||
|
fontSize: 12.sp),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(top: 10.sp),
|
||||||
|
width: Get.width - 200.sp,
|
||||||
|
child: Text(
|
||||||
|
'扫码或长按识别下载APP,认识更多小众圈子里的人,给生活带来更多乐趣~',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 12.sp)),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Image.asset(getBaseImage("ic_launcher"),width: 80.sp,height: 80.sp,)
|
||||||
|
Stack(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
color: Colors.white,
|
||||||
|
width: 90.sp,
|
||||||
|
height: 90.sp,
|
||||||
|
),
|
||||||
|
QrImageView(
|
||||||
|
data: widget.link,
|
||||||
|
padding: EdgeInsets.zero,
|
||||||
|
version: QrVersions.auto,
|
||||||
|
size: 80.sp,
|
||||||
|
gapless: false,
|
||||||
|
// backgroundColor: Colors.black,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
))
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
bottom: 0,
|
||||||
|
child: SafeArea(
|
||||||
|
top: false,
|
||||||
|
child: Container(
|
||||||
|
height: 164.sp,
|
||||||
|
width: Get.width,
|
||||||
|
color: Color(0xFF292247),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
top: 15.sp, left: 15.sp, right: 15.sp),
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
shareAction('wx', '微信', () {
|
||||||
|
shareWxData(1);
|
||||||
|
}),
|
||||||
|
shareAction('wxq', '朋友圈', () {
|
||||||
|
shareWxData(2);
|
||||||
|
}),
|
||||||
|
shareAction('qq', 'QQ', () {
|
||||||
|
copyInviteText(logic.name);
|
||||||
|
}),
|
||||||
|
shareAction('wb', '微博', () {
|
||||||
|
copyInviteText(logic.name);
|
||||||
|
}),
|
||||||
|
shareAction('hb', '保存海报', () {
|
||||||
|
_saveLocalImage();
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
)),
|
||||||
|
Container(
|
||||||
|
height: 1.sp,
|
||||||
|
color: Color(0x33FFFFFF),
|
||||||
|
),
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
Get.back();
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
height: 67.sp,
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: Text(
|
||||||
|
'取消',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white, fontSize: 14.sp),
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
))
|
)))
|
||||||
),
|
|
||||||
),
|
|
||||||
SafeArea(
|
|
||||||
top: false,
|
|
||||||
child: Container(
|
|
||||||
height: 164.sp,
|
|
||||||
width: Get.width,
|
|
||||||
color: Color(0xFF292247),
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
top: 15.sp, left: 15.sp, right: 15.sp),
|
|
||||||
alignment: Alignment.center,
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
shareAction('wx', '微信', () {
|
|
||||||
shareWxData(1);
|
|
||||||
}),
|
|
||||||
shareAction('wxq', '朋友圈', () {
|
|
||||||
shareWxData(2);
|
|
||||||
}),
|
|
||||||
shareAction('qq', 'QQ', () {
|
|
||||||
copyInviteText(logic.name);
|
|
||||||
}),
|
|
||||||
shareAction('wb', '微博', () {
|
|
||||||
copyInviteText(logic.name);
|
|
||||||
}),
|
|
||||||
shareAction('hb', '保存海报', () {
|
|
||||||
_saveLocalImage();
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
Container(
|
|
||||||
height: 1.sp,
|
|
||||||
color: Color(0x33FFFFFF),
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
Get.back();
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
height: 67.sp,
|
|
||||||
alignment: Alignment.center,
|
|
||||||
child: Text(
|
|
||||||
'取消',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.white, fontSize: 14.sp),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
))
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -40,9 +40,6 @@ class InvitePage extends StatelessWidget {
|
|||||||
child: Image.asset(getMineImage('invite_right_icon'),
|
child: Image.asset(getMineImage('invite_right_icon'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onPressed: (){
|
|
||||||
navigateToInviteStrategy();
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
body: GetBuilder<InviteLogic>(builder: (logic) {
|
body: GetBuilder<InviteLogic>(builder: (logic) {
|
||||||
List<Widget> peopleCountList = [];
|
List<Widget> peopleCountList = [];
|
||||||
@ -62,7 +59,12 @@ class InvitePage extends StatelessWidget {
|
|||||||
// ),
|
// ),
|
||||||
|
|
||||||
});
|
});
|
||||||
|
getTextSpanList(
|
||||||
|
'Tip:您已成功邀请 ${logic.homeData!.inviteCount! ?? 0}位同好,免费获得会员${logic.homeData!.achieveRewardDay! ?? '0'}天, 再邀请${logic.homeData!.diffAwardCount}位同友可领取更多奖励~',
|
||||||
|
Color(0xFFDC5BFD),
|
||||||
|
12.sp,
|
||||||
|
searchContent: 'Tip:');
|
||||||
|
|
||||||
allSpan.addAll(getTextSpanList(
|
allSpan.addAll(getTextSpanList(
|
||||||
'Tip:您已成功邀请',
|
'Tip:您已成功邀请',
|
||||||
Color(0xFF0DF5F7),
|
Color(0xFF0DF5F7),
|
||||||
@ -79,7 +81,7 @@ class InvitePage extends StatelessWidget {
|
|||||||
12.sp,
|
12.sp,
|
||||||
searchContent: '${logic.homeData!.achieveRewardDay! ?? '0'} '));
|
searchContent: '${logic.homeData!.achieveRewardDay! ?? '0'} '));
|
||||||
allSpan.addAll(getTextSpanList(
|
allSpan.addAll(getTextSpanList(
|
||||||
' 再邀请 ${logic.homeData!.diffAwardCount} 位同好可领取更多奖励~',
|
' 再邀请 ${logic.homeData!.diffAwardCount} 位同友可领取更多奖励~',
|
||||||
Color(0xFFDC5BFD),
|
Color(0xFFDC5BFD),
|
||||||
12.sp,
|
12.sp,
|
||||||
searchContent: '${logic.homeData!.diffAwardCount}'));
|
searchContent: '${logic.homeData!.diffAwardCount}'));
|
||||||
@ -220,7 +222,7 @@ class InvitePage extends StatelessWidget {
|
|||||||
data['inviter_name'],
|
data['inviter_name'],
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xff0DF5F7),
|
color: Color(0xff0DF5F7),
|
||||||
fontSize: 16.sp,
|
fontSize: 14.sp,
|
||||||
fontWeight: FontWeight.w500),
|
fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
@ -230,14 +232,14 @@ class InvitePage extends StatelessWidget {
|
|||||||
'邀请',
|
'邀请',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: 16.sp,
|
fontSize: 14.sp,
|
||||||
fontWeight: FontWeight.w500),
|
fontWeight: FontWeight.w500),
|
||||||
)),
|
)),
|
||||||
Text(
|
Text(
|
||||||
data['invitee_name'],
|
data['invitee_name'],
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xff0DF5F7),
|
color: Color(0xff0DF5F7),
|
||||||
fontSize: 16.sp,
|
fontSize: 14.sp,
|
||||||
fontWeight: FontWeight.w500),
|
fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
@ -246,7 +248,7 @@ class InvitePage extends StatelessWidget {
|
|||||||
'加入微乐园',
|
'加入微乐园',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: 16.sp,
|
fontSize: 14.sp,
|
||||||
fontWeight: FontWeight.w500),
|
fontWeight: FontWeight.w500),
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -52,30 +52,28 @@ class MinefragmentPage extends StatelessWidget {
|
|||||||
left: 11.sp,
|
left: 11.sp,
|
||||||
right: 11.sp,
|
right: 11.sp,
|
||||||
),
|
),
|
||||||
child: SingleChildScrollView(
|
child: Column(
|
||||||
child: Column(
|
children: [
|
||||||
children: [
|
_buildAvatarRow(logic),
|
||||||
_buildAvatarRow(logic),
|
_friendsRow(logic),
|
||||||
_friendsRow(logic),
|
GestureDetector(
|
||||||
GestureDetector(
|
onTap: () {
|
||||||
onTap: () {
|
showRechargeDialog(logic);
|
||||||
showRechargeDialog(logic);
|
},
|
||||||
},
|
child: Stack(children: [
|
||||||
child: Stack(children: [
|
MyImageWidget,
|
||||||
MyImageWidget,
|
Positioned(
|
||||||
Positioned(
|
top: 58.sp,
|
||||||
top: 54.sp,
|
left: 90.sp,
|
||||||
left: 72.sp,
|
child: Text(logic.vipMsg,style: TextStyle(color: const Color(0x99FFFFFF),fontSize: 12.sp),)),
|
||||||
child: Text(logic.vipMsg,style: TextStyle(color: const Color(0x99FFFFFF),fontSize: 12.sp),)),
|
Positioned(
|
||||||
Positioned(
|
top: 32.sp,
|
||||||
top: 26.sp,
|
left: 90.sp,
|
||||||
left: 70.sp,
|
child: Text("会员-微乐园贵宾",style: TextStyle(color: const Color(0xFFFFFFFF),fontSize: 16.sp),))
|
||||||
child: Text("会员-微乐园贵宾",style: TextStyle(color: const Color(0xFFFFFFFF),fontSize: 16.sp),))
|
],),
|
||||||
],),
|
),
|
||||||
),
|
_circleLiveView(logic),
|
||||||
_circleLiveView(logic),
|
],
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import 'package:get/get.dart';
|
|||||||
import '../../components/my_app_bar.dart';
|
import '../../components/my_app_bar.dart';
|
||||||
import '../../router/app_routers.dart';
|
import '../../router/app_routers.dart';
|
||||||
import '../../util/util.dart';
|
import '../../util/util.dart';
|
||||||
import '../select_circle/logic.dart';
|
|
||||||
import 'logic.dart';
|
import 'logic.dart';
|
||||||
|
|
||||||
class UserinfoPage extends StatefulWidget {
|
class UserinfoPage extends StatefulWidget {
|
||||||
@ -89,22 +88,6 @@ class MyTabbedScreenState extends State<UserinfoPage>
|
|||||||
width: Get.width,
|
width: Get.width,
|
||||||
child: _meInfoButton(logic),
|
child: _meInfoButton(logic),
|
||||||
),
|
),
|
||||||
!logic.isShowAlbum &&logic.isMe ? Positioned(
|
|
||||||
bottom: 36.sp,
|
|
||||||
right: 10.sp,
|
|
||||||
child: GestureDetector(
|
|
||||||
onTap: () async {
|
|
||||||
|
|
||||||
List<MyConfigData> numbers = [];
|
|
||||||
|
|
||||||
var data = await Get.toNamed(
|
|
||||||
AppRoutes.Call_out,
|
|
||||||
arguments: {'numbers': numbers});
|
|
||||||
},
|
|
||||||
child: Image.asset(
|
|
||||||
getCircleImage('send_msg'),
|
|
||||||
width: 60.sp,
|
|
||||||
))):Container()
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -344,9 +344,9 @@ class _HomeCallOutViewState extends State<HomeCallOutView> with AutomaticKeepAli
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"",
|
lists.create_time!,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white, fontSize: 1.sp),
|
color: Colors.white, fontSize: 12.sp),
|
||||||
),
|
),
|
||||||
widget.userId.isNotEmpty
|
widget.userId.isNotEmpty
|
||||||
? Container()
|
? Container()
|
||||||
@ -605,7 +605,7 @@ class _HomeCallOutViewState extends State<HomeCallOutView> with AutomaticKeepAli
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"",
|
lists.create_time!,
|
||||||
style:
|
style:
|
||||||
TextStyle(color: Colors.white, fontSize: 12.sp),
|
TextStyle(color: Colors.white, fontSize: 12.sp),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -45,8 +45,7 @@ class DioManager {
|
|||||||
// 接收数据的最长时限
|
// 接收数据的最长时限
|
||||||
receiveTimeout: const Duration(seconds: 300),
|
receiveTimeout: const Duration(seconds: 300),
|
||||||
));
|
));
|
||||||
_dio!.interceptors.add(LogInterceptor(responseBody: true,
|
_dio!.interceptors.add(LogInterceptor(responseBody: true));
|
||||||
));
|
|
||||||
// _dio!.interceptors.add(ConnectivityInterceptor());
|
// _dio!.interceptors.add(ConnectivityInterceptor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import 'dart:convert';
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
@ -14,8 +13,6 @@ import 'package:path_provider/path_provider.dart';
|
|||||||
import 'package:pull_to_refresh/pull_to_refresh.dart';
|
import 'package:pull_to_refresh/pull_to_refresh.dart';
|
||||||
import 'package:video_compress/video_compress.dart';
|
import 'package:video_compress/video_compress.dart';
|
||||||
|
|
||||||
import '../app/circle/logic.dart';
|
|
||||||
import '../app/select_circle/logic.dart';
|
|
||||||
import 'SharedPreferencesHelper.dart';
|
import 'SharedPreferencesHelper.dart';
|
||||||
|
|
||||||
class Util {}
|
class Util {}
|
||||||
@ -157,10 +154,8 @@ String convertToTenThousand(int number) {
|
|||||||
pushLoginPage() async {
|
pushLoginPage() async {
|
||||||
await logoutIM();
|
await logoutIM();
|
||||||
SharedPreferencesHelper.getInstance().then((sharedPreferences) {
|
SharedPreferencesHelper.getInstance().then((sharedPreferences) {
|
||||||
bool agreement =
|
bool agreement = sharedPreferences.getBool(SharedPreferencesHelper.AGREEMENT)??false;
|
||||||
sharedPreferences.getBool(SharedPreferencesHelper.AGREEMENT) ?? false;
|
String loginPhone = sharedPreferences.getString(SharedPreferencesHelper.LOGINPHONE)??"";
|
||||||
String loginPhone =
|
|
||||||
sharedPreferences.getString(SharedPreferencesHelper.LOGINPHONE) ?? "";
|
|
||||||
print(loginPhone);
|
print(loginPhone);
|
||||||
sharedPreferences.clear();
|
sharedPreferences.clear();
|
||||||
sharedPreferences.setString(SharedPreferencesHelper.LOGINPHONE, loginPhone);
|
sharedPreferences.setString(SharedPreferencesHelper.LOGINPHONE, loginPhone);
|
||||||
@ -283,8 +278,10 @@ class CustomLoadFooter extends StatelessWidget {
|
|||||||
failedText: "加载失败",
|
failedText: "加载失败",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取应用程序的文档目录路径
|
// 获取应用程序的文档目录路径
|
||||||
Future<String> getApplicationDocumentsDirectoryPath() async {
|
Future<String> getApplicationDocumentsDirectoryPath() async {
|
||||||
final directory = await getApplicationDocumentsDirectory();
|
final directory = await getApplicationDocumentsDirectory();
|
||||||
@ -309,11 +306,13 @@ Future<String> getLibraryDirectoryPath() async {
|
|||||||
return directory.path;
|
return directory.path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//跳转到文明公约
|
//跳转到文明公约
|
||||||
void navigateToCodeOfConduct() {
|
void navigateToCodeOfConduct() {
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
'title': "文明公约",
|
'title': "文明公约",
|
||||||
"url": "https://docs.qq.com/doc/DZUtoZ3V0S3ltY2Zw"
|
"url": "https://docs.qq.com/doc/DZUtoZ3V0S3ltY2Zw"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,9 +320,7 @@ void navigateToCodeOfConduct() {
|
|||||||
void navigateToUserAgreement() {
|
void navigateToUserAgreement() {
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
'title': "用户协议",
|
'title': "用户协议",
|
||||||
"url": Platform.isIOS
|
"url": Platform.isIOS?"https://docs.qq.com/doc/DZVV1SkttZGlPUW1H":"https://iquanpai.com/app-h5/4_163.html"
|
||||||
? "https://docs.qq.com/doc/DZVV1SkttZGlPUW1H"
|
|
||||||
: "https://iquanpai.com/app-h5/4_163.html"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,19 +328,14 @@ void navigateToUserAgreement() {
|
|||||||
void navigateToPrivacyPolicy() {
|
void navigateToPrivacyPolicy() {
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
'title': "隐私协议",
|
'title': "隐私协议",
|
||||||
"url": Platform.isIOS
|
"url": Platform.isIOS?"https://docs.qq.com/doc/DZXhvcXV6b1RNTUx1":"https://iquanpai.com/app-h5/4_164.html"
|
||||||
? "https://docs.qq.com/doc/DZXhvcXV6b1RNTUx1"
|
|
||||||
: "https://iquanpai.com/app-h5/4_164.html"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//发布内容规范
|
//发布内容规范
|
||||||
void navigateToContentGuidelines() {
|
void navigateToContentGuidelines() {
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
'title': "发布内容规范",
|
'title': "发布内容规范",
|
||||||
"url": Platform.isIOS
|
"url": Platform.isIOS?"https://docs.qq.com/doc/DZVhLamZDQnJ0eHds":"https://iquanpai.com/app-h5/4_165.html"
|
||||||
? "https://docs.qq.com/doc/DZVhLamZDQnJ0eHds"
|
|
||||||
: "https://iquanpai.com/app-h5/4_165.html"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,57 +343,8 @@ void navigateToContentGuidelines() {
|
|||||||
void navigateToPartnerAgreement() {
|
void navigateToPartnerAgreement() {
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
||||||
'title': "合伙人协议",
|
'title': "合伙人协议",
|
||||||
"url": Platform.isIOS
|
"url": Platform.isIOS?"https://docs.qq.com/doc/DZUpwWFdNcGlsYld4":"https://iquanpai.com/app-h5/4_166.html"
|
||||||
? "https://docs.qq.com/doc/DZUpwWFdNcGlsYld4"
|
|
||||||
: "https://iquanpai.com/app-h5/4_166.html"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//邀请攻略
|
|
||||||
void navigateToInviteStrategy() {
|
|
||||||
Get.toNamed(AppRoutes.WebViewActivity, arguments: {
|
|
||||||
'title': "邀请攻略",
|
|
||||||
"url": "https://leyuan666.com/app-h5/4_168.html"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void navigateToCustomRoute(BannerItem bannerItem) {
|
|
||||||
print(bannerItem.param);
|
|
||||||
switch (bannerItem.type) {
|
|
||||||
case 1:
|
|
||||||
Get.toNamed(AppRoutes.WebViewActivity,
|
|
||||||
arguments: {'title': "", "url": bannerItem.param.toString()});
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
switch (bannerItem.scene) {
|
|
||||||
case "scene_2":
|
|
||||||
List<MyConfigData> numbers = [];
|
|
||||||
if(bannerItem.param!.isNotEmpty){
|
|
||||||
String paramJson = bannerItem.param.toString();
|
|
||||||
paramJson = paramJson.replaceAll(r'\', ''); // 去除反斜杠转义
|
|
||||||
Map<String, dynamic> jsonData = json.decode(paramJson);
|
|
||||||
numbers.add(MyConfigData(jsonData['id'].toString(), jsonData['name'], false));
|
|
||||||
}
|
|
||||||
Get.toNamed(AppRoutes.Call_out, arguments: {'numbers': numbers});
|
|
||||||
break;
|
|
||||||
case "scene_3":
|
|
||||||
Get.toNamed(AppRoutes.FeedbackActivity);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
switch (bannerItem.scene) {
|
|
||||||
case "scene_1":
|
|
||||||
Get.toNamed(AppRoutes.Invite);
|
|
||||||
break;
|
|
||||||
case "scene_4":
|
|
||||||
if(bannerItem.param!.isEmpty){
|
|
||||||
Get.toNamed(AppRoutes.UserInfoActivity);
|
|
||||||
}else{
|
|
||||||
Get.toNamed(AppRoutes.UserInfoActivity, arguments: bannerItem.param.toString());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ void showFloatingButtonOverlay(
|
|||||||
late OverlayEntry overlayEntry;
|
late OverlayEntry overlayEntry;
|
||||||
bool showMessage = false;
|
bool showMessage = false;
|
||||||
|
|
||||||
int countdownSeconds = 8; // 倒计时秒数
|
int countdownSeconds = 5; // 倒计时秒数
|
||||||
|
|
||||||
// 创建 Timer
|
// 创建 Timer
|
||||||
late Timer countdownTimer;
|
late Timer countdownTimer;
|
||||||
|
|||||||
@ -142,7 +142,6 @@ flutter:
|
|||||||
- assets/images/mine/
|
- assets/images/mine/
|
||||||
- assets/images/msg/
|
- assets/images/msg/
|
||||||
- assets/images/circle/
|
- assets/images/circle/
|
||||||
- assets/province.json
|
|
||||||
# - images/a_dot_ham.jpeg
|
# - images/a_dot_ham.jpeg
|
||||||
|
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user