代码提交
This commit is contained in:
parent
20ff09c9d5
commit
0687ee37f6
@ -71,8 +71,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 81
|
versionCode 85
|
||||||
versionName "2.3.7"
|
versionName "2.4.0"
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
vivo_APPID: "105669716",
|
vivo_APPID: "105669716",
|
||||||
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
|
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import '../../commons/config.dart';
|
|||||||
class Call_outLogic extends GetxController {
|
class Call_outLogic extends GetxController {
|
||||||
final Call_outState state = Call_outState();
|
final Call_outState state = Call_outState();
|
||||||
TextEditingController textEditingController = TextEditingController();
|
TextEditingController textEditingController = TextEditingController();
|
||||||
|
ScrollController scrollController = ScrollController();
|
||||||
bool isCheck = false;
|
bool isCheck = false;
|
||||||
late ConfigBean configBean;
|
late ConfigBean configBean;
|
||||||
String circleName = "";
|
String circleName = "";
|
||||||
@ -69,7 +70,7 @@ class Call_outLogic extends GetxController {
|
|||||||
|
|
||||||
loadPushInterestData();
|
loadPushInterestData();
|
||||||
var data =
|
var data =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean = BaseResponse<ConfigBean>.fromJson(
|
var bean = BaseResponse<ConfigBean>.fromJson(
|
||||||
data, (data) => ConfigBean.fromJson(data));
|
data, (data) => ConfigBean.fromJson(data));
|
||||||
if (bean.isSuccess()) {
|
if (bean.isSuccess()) {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import 'package:circle_app/utils/util.dart';
|
import 'package:circle_app/utils/util.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@ -26,6 +27,25 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
|
|
||||||
bool isShowKeyboard = false;
|
bool isShowKeyboard = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
// TODO: implement initState
|
||||||
|
super.initState();
|
||||||
|
logic.scrollController.addListener(() {
|
||||||
|
if (logic.scrollController.position.pixels ==
|
||||||
|
logic.scrollController.position.maxScrollExtent) {
|
||||||
|
logic.startSelectCircleActivity();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
super.dispose();
|
||||||
|
logic.scrollController.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GetBuilder<Call_outLogic>(builder: (controller) {
|
return GetBuilder<Call_outLogic>(builder: (controller) {
|
||||||
@ -73,16 +93,19 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'选择圈子:',
|
'🌍选择圈子:',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white, fontSize: 16.sp),
|
color: Colors.white, fontSize: 16.sp),
|
||||||
),
|
),
|
||||||
Expanded(child: Container()),
|
Expanded(child: Container()),
|
||||||
logic.circleName == ''
|
logic.circleName == ''
|
||||||
? Container(
|
? Container(
|
||||||
child: Text('选择合适的圈子更容易吸引圈友',style: TextStyle(color: Colors.grey),),
|
child: Text(
|
||||||
)
|
'选择合适的圈子更容易吸引圈友',
|
||||||
|
style:
|
||||||
|
TextStyle(color: Colors.grey),
|
||||||
|
),
|
||||||
|
)
|
||||||
: Container(
|
: Container(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
left: 7.sp, right: 7.sp),
|
left: 7.sp, right: 7.sp),
|
||||||
@ -143,7 +166,8 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white, fontSize: 17.0.sp),
|
color: Colors.white,
|
||||||
|
fontSize: 17.0.sp),
|
||||||
maxLines: 32,
|
maxLines: 32,
|
||||||
maxLength: 200,
|
maxLength: 200,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
@ -151,7 +175,7 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
color: const Color.fromRGBO(
|
color: const Color.fromRGBO(
|
||||||
255, 255, 255, 0.6),
|
255, 255, 255, 0.6),
|
||||||
fontSize: 14.sp),
|
fontSize: 14.sp),
|
||||||
hintText: '请输入...(左下角上传图片或视频哦)',
|
hintText: '请输入...(左下角上传图片或视频)',
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
contentPadding: EdgeInsets.only(
|
contentPadding: EdgeInsets.only(
|
||||||
left: 17.sp, right: 17.sp),
|
left: 17.sp, right: 17.sp),
|
||||||
@ -164,9 +188,12 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
Text(
|
Text(
|
||||||
'${controller.textEditingController.text.length}/200',
|
'${controller.textEditingController.text.length}/200',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white, fontSize: 12.sp),
|
color: Colors.white,
|
||||||
|
fontSize: 12.sp),
|
||||||
),
|
),
|
||||||
SizedBox(width: 15.sp,)
|
SizedBox(
|
||||||
|
width: 15.sp,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@ -187,87 +214,89 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
if (!isShowKeyboard)
|
if (!isShowKeyboard)
|
||||||
Container(
|
Container(
|
||||||
height: 90.sp,
|
height: 90.sp,
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
left: 17.sp, right: 17.sp, bottom: 5.sp),
|
left: 17.sp, right: 17.sp, bottom: 5.sp),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
optionAtWidget(),
|
optionAtWidget(),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {
|
|
||||||
logic.showImg();
|
|
||||||
},
|
|
||||||
child: Image.asset(
|
|
||||||
getCircleImage('photo'),
|
|
||||||
width: 30.sp,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
width: 16,
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
logic.showVideo();
|
|
||||||
},
|
|
||||||
child: Image.asset(
|
|
||||||
getCircleImage('video'),
|
|
||||||
width: 30.sp,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: GestureDetector(
|
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (controller.vip == 2) {
|
logic.showImg();
|
||||||
controller.isCheck =
|
|
||||||
!controller.isCheck;
|
|
||||||
controller.update();
|
|
||||||
} else {
|
|
||||||
showOKToast("至尊喊话为年会员特权,开通年会员即可享受哦~");
|
|
||||||
controller.showRechargeDialog();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Image.asset(
|
||||||
mainAxisAlignment:
|
getCircleImage('photo'),
|
||||||
MainAxisAlignment.center,
|
width: 30.sp,
|
||||||
children: [
|
|
||||||
Image.asset(
|
|
||||||
getCircleImage(controller.isCheck
|
|
||||||
? 'check'
|
|
||||||
: 'uncheck'),
|
|
||||||
width: 17.5.sp,
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 4.sp,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
'使用至尊喊话',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 16.sp),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(
|
||||||
GestureDetector(
|
width: 16,
|
||||||
onTap: () {
|
|
||||||
navigateToContentGuidelines();
|
|
||||||
},
|
|
||||||
child: Text(
|
|
||||||
'内容规范',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 14.sp),
|
|
||||||
),
|
),
|
||||||
)
|
GestureDetector(
|
||||||
],
|
onTap: () {
|
||||||
),
|
logic.showVideo();
|
||||||
],
|
},
|
||||||
),
|
child: Image.asset(
|
||||||
)
|
getCircleImage('video'),
|
||||||
|
width: 30.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
if (controller.vip == 2) {
|
||||||
|
controller.isCheck =
|
||||||
|
!controller.isCheck;
|
||||||
|
controller.update();
|
||||||
|
} else {
|
||||||
|
showOKToast(
|
||||||
|
"至尊喊话为年会员特权,开通年会员即可享受哦~");
|
||||||
|
controller.showRechargeDialog();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Image.asset(
|
||||||
|
getCircleImage(
|
||||||
|
controller.isCheck
|
||||||
|
? 'check'
|
||||||
|
: 'uncheck'),
|
||||||
|
width: 17.5.sp,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 4.sp,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'使用至尊喊话',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 16.sp),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
navigateToContentGuidelines();
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
'内容规范',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 14.sp),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (isShowKeyboard)
|
if (isShowKeyboard)
|
||||||
@ -312,7 +341,8 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
!controller.isCheck;
|
!controller.isCheck;
|
||||||
controller.update();
|
controller.update();
|
||||||
} else {
|
} else {
|
||||||
showOKToast("至尊喊话为年会员特权,开通年会员即可享受哦~");
|
showOKToast(
|
||||||
|
"至尊喊话为年会员特权,开通年会员即可享受哦~");
|
||||||
controller.showRechargeDialog();
|
controller.showRechargeDialog();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -321,9 +351,10 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
MainAxisAlignment.center,
|
MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
getCircleImage(controller.isCheck
|
getCircleImage(
|
||||||
? 'check'
|
controller.isCheck
|
||||||
: 'uncheck'),
|
? 'check'
|
||||||
|
: 'uncheck'),
|
||||||
width: 17.5.sp,
|
width: 17.5.sp,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@ -364,80 +395,82 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
|
|
||||||
optionAtWidget() {
|
optionAtWidget() {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
behavior: HitTestBehavior.opaque,
|
behavior: HitTestBehavior.opaque,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Get.toNamed(Routes.FriendDialog)!
|
Get.toNamed(Routes.FriendDialog)!.then((value) {
|
||||||
.then((value) {
|
if (value != null) {
|
||||||
if (value != null) {
|
logic.configList.clear();
|
||||||
logic.configList.clear();
|
logic.configList.addAll(logic.selectedList);
|
||||||
logic.configList.addAll(logic.selectedList);
|
logic.update();
|
||||||
logic.update();
|
}
|
||||||
}
|
});
|
||||||
});
|
},
|
||||||
},
|
child: Container(
|
||||||
child: Container(
|
height: 30.sp,
|
||||||
height: 20.sp,
|
width: Get.width,
|
||||||
width: Get.width,
|
padding: EdgeInsets.only(left: 4.sp,right: 4.sp),
|
||||||
// color: Colors.red,
|
margin: EdgeInsets.only(
|
||||||
margin: EdgeInsets.only(
|
|
||||||
// left: 15.sp,
|
// left: 15.sp,
|
||||||
bottom: 10.sp,
|
bottom: 10.sp,
|
||||||
),
|
),
|
||||||
child: Row(
|
decoration: BoxDecoration(
|
||||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
color: CupertinoColors.systemGrey.withOpacity(0.2),
|
||||||
children: [
|
borderRadius: BorderRadius.circular(15.sp)
|
||||||
Text(
|
),
|
||||||
'@ 提醒谁看',
|
child: Row(
|
||||||
style: TextStyle(
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
color: const Color(0xFFB7BECC),
|
children: [
|
||||||
fontSize: 15.sp,
|
Text(
|
||||||
|
'@ 提醒谁看',
|
||||||
|
style: TextStyle(
|
||||||
|
color: const Color(0xFFB7BECC),
|
||||||
|
fontSize: 15.sp,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: 10.sp,
|
||||||
width: 10.sp,
|
),
|
||||||
),
|
// Spacer(),
|
||||||
// Spacer(),
|
Expanded(
|
||||||
Expanded(
|
child: ListView.builder(
|
||||||
child: ListView.builder(
|
itemBuilder: (context, index) {
|
||||||
itemBuilder: (context, index) {
|
var info = logic.configList[index];
|
||||||
var info = logic.configList[index];
|
return Container(
|
||||||
return Container(
|
margin: EdgeInsets.only(right: 3.sp),
|
||||||
margin: EdgeInsets.only(right: 3.sp),
|
child: ClipOval(
|
||||||
child: ClipOval(
|
child: Image.network(
|
||||||
child: Image.network(
|
info.avatar.isNotEmpty ? info.avatar : Api.defaultAvatar,
|
||||||
info.avatar.isNotEmpty
|
fit: BoxFit.cover,
|
||||||
? info.avatar
|
width: 20.0.sp,
|
||||||
: Api.defaultAvatar,
|
height: 20.0.sp,
|
||||||
fit: BoxFit.cover,
|
|
||||||
width: 20.0.sp,
|
|
||||||
height: 20.0.sp,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
},
|
);
|
||||||
scrollDirection: Axis.horizontal,
|
},
|
||||||
// reverse: true,
|
scrollDirection: Axis.horizontal,
|
||||||
itemCount: logic.configList.length,
|
// reverse: true,
|
||||||
)),
|
itemCount: logic.configList.length,
|
||||||
Image(
|
)),
|
||||||
image: AssetImage(getHomeImage("icon_in")),
|
Image(
|
||||||
// width: 44.sp,
|
image: AssetImage(getHomeImage("icon_in")),
|
||||||
height: 18.sp,
|
// width: 44.sp,
|
||||||
),
|
height: 18.sp,
|
||||||
// GestureDetector(
|
),
|
||||||
// onTap: () {
|
// GestureDetector(
|
||||||
// showRelationShipPiker(context, logic);
|
// onTap: () {
|
||||||
// },
|
// showRelationShipPiker(context, logic);
|
||||||
// child: Row(
|
// },
|
||||||
// children: [
|
// child: Row(
|
||||||
//
|
// children: [
|
||||||
//
|
//
|
||||||
// ],
|
//
|
||||||
// ),
|
// ],
|
||||||
// ),
|
// ),
|
||||||
],
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,12 +481,14 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: interests.length,
|
itemCount: interests.length,
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
|
controller: logic.scrollController,
|
||||||
// padding: EdgeInsets.symmetric(vertical: 15.sp, horizontal: 15.sp),
|
// padding: EdgeInsets.symmetric(vertical: 15.sp, horizontal: 15.sp),
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final interest = interests[index];
|
final interest = interests[index];
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
MyConfigData data = MyConfigData(interests[index]!.id!.toString(),interests[index].title!,true);
|
MyConfigData data = MyConfigData(interests[index]!.id!.toString(),
|
||||||
|
interests[index].title!, true);
|
||||||
logic.numbers = [data];
|
logic.numbers = [data];
|
||||||
logic.circleName = interest.title;
|
logic.circleName = interest.title;
|
||||||
logic.update();
|
logic.update();
|
||||||
@ -470,49 +505,44 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
),
|
),
|
||||||
color: const Color(0xFF392D53),
|
color: const Color(0xFF392D53),
|
||||||
),
|
),
|
||||||
child: Container(
|
child: Stack(
|
||||||
margin: EdgeInsets.all(0.2.sp),
|
children: [
|
||||||
padding: EdgeInsets.only(left: 5.sp, right: 5.sp, top: 5.sp),
|
Container(
|
||||||
decoration: BoxDecoration(
|
margin: EdgeInsets.all(0.2.sp),
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
padding: EdgeInsets.only(left: 5.sp, right: 5.sp, top: 5.sp),
|
||||||
color: const Color(0xFF392D53),
|
decoration: BoxDecoration(
|
||||||
),
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
child: Column(
|
color: const Color(0xFF392D53),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
),
|
||||||
children: [
|
child: Column(
|
||||||
Container(
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
// color: Colors.red,
|
children: [
|
||||||
child: Row(
|
Container(
|
||||||
children: [
|
margin: EdgeInsets.only(right: 15.sp),
|
||||||
Text(
|
child: Text(
|
||||||
interest.title,
|
interest.title,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 13.sp,
|
fontSize: 13.sp,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
// Container(
|
),
|
||||||
// margin: EdgeInsets.only(
|
SizedBox(height: 4.sp,),
|
||||||
// bottom: 2.sp,
|
Text(
|
||||||
// ),
|
interest.pushTitle,
|
||||||
// child: Icon(
|
style: TextStyle(
|
||||||
// Icons.keyboard_arrow_right,
|
fontSize: 13.sp,
|
||||||
// color: Colors.white,
|
color: AppColor.mainColor,
|
||||||
// size: 18.sp,
|
),
|
||||||
// ),
|
),
|
||||||
// )
|
],
|
||||||
],
|
)),
|
||||||
),
|
Positioned(top: 2.sp,right:4.sp,child: Image.asset(
|
||||||
),
|
getHomeImage('icon_in'),
|
||||||
Text(
|
width: 24.sp,
|
||||||
interest.pushTitle,
|
),)
|
||||||
style: TextStyle(
|
],
|
||||||
fontSize: 13.sp,
|
),
|
||||||
color: AppColor.mainColor,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@ -786,7 +816,6 @@ class _Call_outPageState extends State<Call_outPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void _showDelVideoDialog(BuildContext context, Call_outLogic controller) {
|
void _showDelVideoDialog(BuildContext context, Call_outLogic controller) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
|
|||||||
@ -269,7 +269,7 @@ class _InputTextFieldState extends TIMUIKitState<TIMInputTextField> {
|
|||||||
'微信、QQ、加Q、+V、地球号、绿泡泡、公众号、网站、app、视频、手机号、id、企鹅、门槛、收费、加群'.split('、');
|
'微信、QQ、加Q、+V、地球号、绿泡泡、公众号、网站、app、视频、手机号、id、企鹅、门槛、收费、加群'.split('、');
|
||||||
|
|
||||||
if (textEditingController.text.isNotEmpty &&
|
if (textEditingController.text.isNotEmpty &&
|
||||||
(userInfoBean?.wx_num?.isEmpty ?? true)) {
|
(userInfoBean?.contact?.isEmpty ?? true)) {
|
||||||
bool isContain = false;
|
bool isContain = false;
|
||||||
String sendText = textEditingController.text.toUpperCase();
|
String sendText = textEditingController.text.toUpperCase();
|
||||||
for (String text in pressionStr) {
|
for (String text in pressionStr) {
|
||||||
@ -279,8 +279,8 @@ class _InputTextFieldState extends TIMUIKitState<TIMInputTextField> {
|
|||||||
}
|
}
|
||||||
if (isContain) {
|
if (isContain) {
|
||||||
await showAddWxPicker(
|
await showAddWxPicker(
|
||||||
userInfoBean!.wx_num!.isNotEmpty ?? false,
|
userInfoBean!.contact!.isNotEmpty ?? false,
|
||||||
isHidden: userInfoBean!.wx_num!.isNotEmpty ?? false,
|
isHidden: userInfoBean!.contact!.isNotEmpty ?? false,
|
||||||
isWxHidden: userInfoBean!.hide_wx_num == 1,
|
isWxHidden: userInfoBean!.hide_wx_num == 1,
|
||||||
);
|
);
|
||||||
imStatusOK = false;
|
imStatusOK = false;
|
||||||
|
|||||||
@ -146,11 +146,11 @@ final ScrollController nearScrollController = ScrollController();
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() async {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
loadCircleListData();
|
loadCircleListData();
|
||||||
loadCirclePeopleData();
|
loadCirclePeopleData();
|
||||||
initGerder();
|
await initGerder();
|
||||||
getCityList();
|
getCityList();
|
||||||
getBanner();
|
getBanner();
|
||||||
// getNearByList();
|
// getNearByList();
|
||||||
@ -232,9 +232,9 @@ final ScrollController nearScrollController = ScrollController();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void initGerder() async {
|
initGerder() async {
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
|
|
||||||
@ -248,7 +248,9 @@ final ScrollController nearScrollController = ScrollController();
|
|||||||
new_genderList.add(MyConfigData(key, value, true));
|
new_genderList.add(MyConfigData(key, value, true));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
configBean.roleMap.forEach((key, value) {
|
||||||
|
allRoleList.add(value);
|
||||||
|
});
|
||||||
genderList.add(MyConfigData('-1', '非二元', true));
|
genderList.add(MyConfigData('-1', '非二元', true));
|
||||||
dis_genderList.add(MyConfigData('-1', '非二元', true));
|
dis_genderList.add(MyConfigData('-1', '非二元', true));
|
||||||
new_genderList.add(MyConfigData('-1', '非二元', true));
|
new_genderList.add(MyConfigData('-1', '非二元', true));
|
||||||
|
|||||||
@ -85,7 +85,7 @@ class LikeLogic extends GetxController {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
initGerder();
|
await initGerder();
|
||||||
loadInviteData();
|
loadInviteData();
|
||||||
loadCircleListData();
|
loadCircleListData();
|
||||||
loadMyCircleData();
|
loadMyCircleData();
|
||||||
@ -100,9 +100,9 @@ class LikeLogic extends GetxController {
|
|||||||
// cityNewName = logic.model!.city ?? '';
|
// cityNewName = logic.model!.city ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
void initGerder() async {
|
initGerder() async {
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
|
|
||||||
@ -116,10 +116,11 @@ class LikeLogic extends GetxController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// roleList.clear();
|
||||||
|
|
||||||
genderList.add(MyConfigData('-1', '非二元', true));
|
genderList.add(MyConfigData('-1', '非二元', true));
|
||||||
newgenderList.add(MyConfigData('-1', '非二元', true));
|
newgenderList.add(MyConfigData('-1', '非二元', true));
|
||||||
|
update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
// import 'package:flutter_install_app/flutter_install_app.dart';
|
import 'package:flutter_install_app/flutter_install_app.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ class _CustomDialogState extends State<UpdateDialog> {
|
|||||||
|
|
||||||
installApk() async {
|
installApk() async {
|
||||||
//flutter_install_app
|
//flutter_install_app
|
||||||
// await AppInstaller.installApk(filePath, actionRequired: false);
|
await AppInstaller.installApk(filePath, actionRequired: false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -235,7 +235,7 @@ class Gift_shopPage extends StatelessWidget {
|
|||||||
Container(
|
Container(
|
||||||
width: 250.sp,
|
width: 250.sp,
|
||||||
child: Text(
|
child: Text(
|
||||||
'送了${logic.toUser['giftNum']['num']}个礼物,价值${logic.toUser['giftNum']['amount']}跨豆',
|
'送了${logic.toUser['giftNum']['num']}个礼物,价值${logic.toUser['giftNum']['amount']}小票',
|
||||||
style:
|
style:
|
||||||
TextStyle(fontSize: 13.sp, color: Colors.white),
|
TextStyle(fontSize: 13.sp, color: Colors.white),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -90,13 +90,13 @@ class _HomePageState extends State<HomePage>
|
|||||||
showGiftAnimationOverlay(context,event.url);
|
showGiftAnimationOverlay(context,event.url);
|
||||||
});
|
});
|
||||||
|
|
||||||
// permissionNotifySub = EventBusManager.on<PermissionInfo>().listen((event) {
|
permissionNotifySub = EventBusManager.on<PermissionInfo>().listen((event) {
|
||||||
// showPerssionOverlay(event);
|
showPerssionOverlay(event);
|
||||||
// });
|
});
|
||||||
|
|
||||||
permissionCloseNotifySub = EventBusManager.on<PermissionClose>().listen((event) {
|
permissionCloseNotifySub = EventBusManager.on<PermissionClose>().listen((event) {
|
||||||
permissionOverlayEntry.remove();
|
permissionOverlayEntry.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -148,7 +148,7 @@ class Complete_materialLogic extends GetxController {
|
|||||||
|
|
||||||
|
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
configBean = bean1.data!;
|
configBean = bean1.data!;
|
||||||
|
|||||||
@ -707,12 +707,18 @@ class _Complete_materialPageState extends State<Complete_materialPage> {
|
|||||||
List<String> typeLit = typeStr.split('、');
|
List<String> typeLit = typeStr.split('、');
|
||||||
List<String> optionLit = [];
|
List<String> optionLit = [];
|
||||||
controller.roleList.forEach((element) {
|
controller.roleList.forEach((element) {
|
||||||
optionLit.add(element + '(${typeLit[controller.roleList.indexOf(element)]})');
|
if (element.toString().length == 1) {
|
||||||
|
optionLit.add(element + '(${typeLit[controller.roleList.indexOf(element)]})');
|
||||||
|
} else {
|
||||||
|
optionLit.add(element);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
int index = 2;
|
int index = 2;
|
||||||
if (controller.state.role.isNotEmpty) {
|
if (controller.state.role.isNotEmpty) {
|
||||||
index = controller.roleList.indexOf(controller.state.role);
|
if (controller.roleList.contains(controller.state.role)) {
|
||||||
|
index = controller.roleList.indexOf(controller.state.role);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Pickers.showSinglePicker(context,
|
Pickers.showSinglePicker(context,
|
||||||
|
|||||||
@ -56,10 +56,6 @@ class _MsgPageState extends State<MsgPage> with AutomaticKeepAliveClientMixin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
showRechargeDialog() {
|
showRechargeDialog() {
|
||||||
Get.bottomSheet(
|
Get.bottomSheet(
|
||||||
Scaffold(
|
Scaffold(
|
||||||
|
|||||||
@ -88,7 +88,7 @@ class QuickLogic extends GetxController {
|
|||||||
|
|
||||||
void initGerder() async {
|
void initGerder() async {
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class _QuickPageState extends State<QuickPage>
|
|||||||
with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
|
with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
|
||||||
@override
|
@override
|
||||||
bool get wantKeepAlive => true;
|
bool get wantKeepAlive => true;
|
||||||
final logic = Get.find<MsgLogic>();
|
late MsgLogic logic;
|
||||||
|
|
||||||
final ctr = Get.find<QuickLogic>();
|
final ctr = Get.find<QuickLogic>();
|
||||||
|
|
||||||
@ -53,6 +53,14 @@ class _QuickPageState extends State<QuickPage>
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
|
if (Get.isRegistered<MsgLogic>()) {
|
||||||
|
logic = Get.find<MsgLogic>();
|
||||||
|
} else {
|
||||||
|
Get.lazyPut(()=>MsgLogic());
|
||||||
|
logic = Get.find<MsgLogic>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// = Get.find<MsgLogic>()
|
||||||
_tabController = TabController(length: 2, vsync: this, initialIndex: 0);
|
_tabController = TabController(length: 2, vsync: this, initialIndex: 0);
|
||||||
_tabController.addListener(() {
|
_tabController.addListener(() {
|
||||||
ctr.currentIndex = _tabController.index;
|
ctr.currentIndex = _tabController.index;
|
||||||
|
|||||||
@ -149,16 +149,13 @@ class Relationship_buildingPage extends StatelessWidget {
|
|||||||
isScrollControlled: true);
|
isScrollControlled: true);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white.withOpacity(0.75),
|
|
||||||
borderRadius: BorderRadius.circular(25.sp)),
|
|
||||||
margin: EdgeInsets.only(right: 4.sp),
|
margin: EdgeInsets.only(right: 4.sp),
|
||||||
width: 40.sp,
|
width: 40.sp,
|
||||||
height: 40.sp,
|
height: 40.sp,
|
||||||
child: Icon(
|
child: ClipOval(
|
||||||
Icons.add,
|
child: Image.asset(getMineImage("icon_img_add"),width: 40.sp,
|
||||||
size: 30.sp,
|
height: 40.sp,),
|
||||||
),
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@ -180,16 +177,14 @@ class Relationship_buildingPage extends StatelessWidget {
|
|||||||
userInfo['relationTypeName']);
|
userInfo['relationTypeName']);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
margin: EdgeInsets.only(right: 4.sp),
|
||||||
color: Colors.white.withOpacity(0.75),
|
width: 40.sp,
|
||||||
borderRadius: BorderRadius.circular(25.sp)),
|
height: 40.sp,
|
||||||
margin: EdgeInsets.only(right: 4.sp),
|
child: ClipOval(
|
||||||
width: 40.sp,
|
child: Image.asset(getMineImage("icon_img_add"),width: 40.sp,
|
||||||
height: 40.sp,
|
height: 40.sp,),
|
||||||
child: Icon(
|
)
|
||||||
Icons.add,
|
|
||||||
size: 30.sp,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@ -257,7 +252,7 @@ class Relationship_buildingPage extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.heart_broken_rounded,
|
Icons.heart_broken_rounded,
|
||||||
color: CupertinoColors.inactiveGray,
|
color: Colors.white,
|
||||||
size: 30.sp,
|
size: 30.sp,
|
||||||
)))
|
)))
|
||||||
],
|
],
|
||||||
|
|||||||
@ -38,7 +38,7 @@ class Send_lucky_bagLogic extends GetxController {
|
|||||||
var data =
|
var data =
|
||||||
await DioManager.instance.get(url: Api.welfareConfig, params: {});
|
await DioManager.instance.get(url: Api.welfareConfig, params: {});
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
|
|
||||||
|
|||||||
@ -92,7 +92,7 @@ class World_call_outLogic extends GetxController {
|
|||||||
|
|
||||||
void initGerder() async {
|
void initGerder() async {
|
||||||
var data1 =
|
var data1 =
|
||||||
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
await DioManager.instance.get(url: Api.getConfig, params: {});
|
||||||
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
||||||
data1, (data1) => ConfigBean.fromJson(data1));
|
data1, (data1) => ConfigBean.fromJson(data1));
|
||||||
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@ class Api {
|
|||||||
static const UpdataUserInfo = 'user-service/register/user/info';
|
static const UpdataUserInfo = 'user-service/register/user/info';
|
||||||
|
|
||||||
//系统配置
|
//系统配置
|
||||||
static const getCircleList = 'user-service/app/config';
|
static const getConfig = 'user-service/app/config';
|
||||||
|
|
||||||
//获取vip价格
|
//获取vip价格
|
||||||
static const getVipPrice = 'mall-service/vips';
|
static const getVipPrice = 'mall-service/vips';
|
||||||
|
|||||||
@ -322,7 +322,7 @@ List<String> genderList = [];
|
|||||||
|
|
||||||
List<String> orientationList = [];
|
List<String> orientationList = [];
|
||||||
|
|
||||||
List<String> roleList = [];
|
List<String> allRoleList = [];
|
||||||
|
|
||||||
String getGenderImg(int number) {
|
String getGenderImg(int number) {
|
||||||
if (number == null) return '';
|
if (number == null) return '';
|
||||||
@ -392,8 +392,8 @@ String getOrientationContent(int number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String getRoleContent(int number) {
|
String getRoleContent(int number) {
|
||||||
if (roleList.length != 0) {
|
if (allRoleList.length != 0) {
|
||||||
return roleList[number - 1];
|
return allRoleList[number - 1];
|
||||||
} else {
|
} else {
|
||||||
switch (number) {
|
switch (number) {
|
||||||
case 1:
|
case 1:
|
||||||
@ -2415,3 +2415,5 @@ bool isWithinLastHour(DateTime inputTime) {
|
|||||||
showTimeRecordDialog(UserBean userInfoBean) {
|
showTimeRecordDialog(UserBean userInfoBean) {
|
||||||
Get.bottomSheet(TimeRecordDialog(userInfoBean:userInfoBean),isScrollControlled:true);
|
Get.bottomSheet(TimeRecordDialog(userInfoBean:userInfoBean),isScrollControlled:true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user