代码提交

This commit is contained in:
CYH 2026-01-20 23:26:38 +08:00
parent b715925219
commit 2982bd7654
18 changed files with 197 additions and 152 deletions

View File

@ -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 285 versionCode 289
versionName "2.8.5" versionName "2.8.9"
manifestPlaceholders = [ manifestPlaceholders = [
vivo_APPID: "105669716", vivo_APPID: "105669716",
vivo_APPKEY:"84f750207787376b310ca5b0d5969122", vivo_APPKEY:"84f750207787376b310ca5b0d5969122",

View File

@ -501,7 +501,7 @@ class _TIMTextFieldLayoutNarrowState
ChatGiftPannel( ChatGiftPannel(
accid: widget.conversationID, accid: widget.conversationID,
), ),
isScrollControlled: false, isScrollControlled: true,
enableDrag: false, enableDrag: false,
); );
} }
@ -951,6 +951,7 @@ class _TIMTextFieldLayoutNarrowState
showOKToast(reulst1['msg']); showOKToast(reulst1['msg']);
} }
}), }),
if ((Get.find<HomeLogic>().model?.canMakeWish ?? 0) == 1)
chatActionWidget('wish', '许个愿', () { chatActionWidget('wish', '许个愿', () {
Get.bottomSheet( Get.bottomSheet(
WishDialog( WishDialog(

View File

@ -94,129 +94,124 @@ class _ChatGiftPannelState extends State<ChatGiftPannel>
), ),
), ),
), ),
), ),Container(
Container( decoration: BoxDecoration(
child: SafeArea( color: Color(0xFF423055),
top: false, borderRadius: BorderRadius.only(
bottom: false, topLeft: Radius.circular(
child: Container( 16.sp,
decoration: BoxDecoration( ),
color: Color(0xFF423055), topRight: Radius.circular(16.sp))),
borderRadius: BorderRadius.only( width: Get.width,
topLeft: Radius.circular( height: 450.sp,
16.sp, child: Column(
), crossAxisAlignment: CrossAxisAlignment.start,
topRight: Radius.circular(16.sp))), children: [
width: Get.width, SizedBox(
height: 370.sp, height: 5.sp,
child: Column( ),
crossAxisAlignment: CrossAxisAlignment.start, Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
SizedBox( Container(
height: 5.sp, height: 30.sp,
), width: widget.isShowVip ? 120.sp : 60.sp,
Row( margin: EdgeInsets.only(
mainAxisAlignment: MainAxisAlignment.spaceBetween, left: 5.sp,
children: [ ),
Container( child: TabBar(
height: 30.sp, isScrollable: false,
width: widget.isShowVip ? 120.sp : 60.sp, automaticIndicatorColorAdjustment: false,
margin: EdgeInsets.only( labelPadding:
left: 5.sp, EdgeInsets.symmetric(horizontal: 4.0.sp),
), physics: NeverScrollableScrollPhysics(),
child: TabBar( indicatorColor: widget.isShowVip
isScrollable: false, ? AppColor.mainColor
automaticIndicatorColorAdjustment: false, : Colors.transparent,
labelPadding: indicatorSize: TabBarIndicatorSize.label,
EdgeInsets.symmetric(horizontal: 4.0.sp), unselectedLabelStyle: TextStyle(
physics: NeverScrollableScrollPhysics(), fontSize: 16.sp,
indicatorColor: widget.isShowVip fontWeight: FontWeight.w500,
? AppColor.mainColor
: Colors.transparent,
indicatorSize: TabBarIndicatorSize.label,
unselectedLabelStyle: TextStyle(
fontSize: 16.sp,
fontWeight: FontWeight.w500,
),
unselectedLabelColor: Color(0xB3FFFFFF),
labelColor: AppColor.mainColor,
labelStyle: TextStyle(
fontSize: 16.sp,
fontWeight: FontWeight.w500),
controller: tabController,
tabs: widget.isShowVip
? <Widget>[
Tab(
text: '礼物',
),
Tab(
text: '会员',
),
]
: <Widget>[
Tab(
text: '礼物',
)
],
),
), ),
tabController.index == 0 && widget.isShowVip unselectedLabelColor: Color(0xB3FFFFFF),
? Container( labelColor: AppColor.mainColor,
margin: EdgeInsets.only(right: 15.sp), labelStyle: TextStyle(
child: InkWell( fontSize: 16.sp,
onTap: () { fontWeight: FontWeight.w500),
controller: tabController,
tabs: widget.isShowVip
String toUserId = ? <Widget>[
widget.accid!.split('_').last; Tab(
Get.toNamed(Routes.GiftShopPage, text: '礼物',
arguments: '',preventDuplicates: true); ),
}, Tab(
child: Container( text: '会员',
height: 22.sp, ),
width: 62.sp, ]
decoration: BoxDecoration( : <Widget>[
gradient: AppColor Tab(
.mainVerLinearGradient, text: '礼物',
borderRadius: )
BorderRadius.circular(11.sp)), ],
child: Stack( ),
alignment: Alignment.center,
children: [
Container(
height: 20.sp,
width: 60.sp,
decoration: BoxDecoration(
color: Color(0xFF423055),
borderRadius:
BorderRadius.circular(
10.sp))),
Text(
'礼物馆',
style: TextStyle(
color: Colors.white,
fontSize: 14.sp),
)
],
),
)),
)
: Container()
],
), ),
Expanded( tabController.index == 0 && widget.isShowVip
child: TabBarView( ? Container(
controller: tabController, margin: EdgeInsets.only(right: 15.sp),
children: [ child: InkWell(
Gift(widget.accid, widget.giftId), onTap: () {
if (widget.isShowVip)
PartnerOption(accid: widget.accid),
], String toUserId =
)) widget.accid!.split('_').last;
Get.toNamed(Routes.GiftShopPage,
arguments: '',preventDuplicates: true);
},
child: Container(
height: 22.sp,
width: 98.sp,
decoration: BoxDecoration(
gradient: AppColor
.mainVerLinearGradient,
borderRadius:
BorderRadius.circular(11.sp)),
child: Stack(
alignment: Alignment.center,
children: [
Container(
height: 20.sp,
width: 96.sp,
decoration: BoxDecoration(
color: Color(0xFF423055),
borderRadius:
BorderRadius.circular(
10.sp))),
Text(
'🎁点亮礼物馆',
style: TextStyle(
color: Colors.white,
fontSize: 14.sp),
)
],
),
)),
)
: Container()
], ],
), ),
)), Expanded(
), child: TabBarView(
controller: tabController,
children: [
Gift(widget.accid, widget.giftId),
if (widget.isShowVip)
PartnerOption(accid: widget.accid),
],
))
],
),
),
Container( Container(
height: MediaQuery.of(context).padding.bottom, height: MediaQuery.of(context).padding.bottom,
decoration: BoxDecoration( decoration: BoxDecoration(

View File

@ -81,6 +81,7 @@ class _GiftState extends State<Gift> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Stack( return Stack(
fit: StackFit.expand,
children: [ children: [
Container( Container(
color: Colors.transparent, color: Colors.transparent,
@ -103,6 +104,7 @@ class _GiftState extends State<Gift> {
Expanded( Expanded(
child: Container( child: Container(
width: Get.width, width: Get.width,
// color: Colors.red,
child: giftList.isNotEmpty ? giftGridWidget(giftList) : Container() child: giftList.isNotEmpty ? giftGridWidget(giftList) : Container()
)), )),
Container( Container(

View File

@ -24,7 +24,7 @@ class PartnerOption extends StatefulWidget {
class _PartnerOptionState extends State<PartnerOption> { class _PartnerOptionState extends State<PartnerOption> {
// TODO: add state variables and methods // TODO: add state variables and methods
List<PriceBean> priceBean = []; List<PriceBean> priceBean = [];
bool isZfbPrice = true; bool isZfbPrice = false;
List<String> vipName = [ List<String> vipName = [
"vip_year", "vip_year",
"vip_quarter", "vip_quarter",
@ -184,11 +184,11 @@ class _PartnerOptionState extends State<PartnerOption> {
), ),
), ),
SizedBox(width: 4.0.sp), SizedBox(width: 4.0.sp),
Image.asset( // Image.asset(
getMineImage('icon_recommend_pay_way'), // getMineImage('icon_recommend_pay_way'),
width: 32.0.sp, // width: 32.0.sp,
height: 16.0.sp, // height: 16.0.sp,
), // ),
], ],
), ),
), ),

View File

@ -14,7 +14,6 @@ import 'package:flutter_swiper/flutter_swiper.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../commons/Widgets/base_tip_widget.dart'; import '../../commons/Widgets/base_tip_widget.dart';
import '../../commons/Widgets/open_vip_tip/view.dart'; import '../../commons/Widgets/open_vip_tip/view.dart';
@ -163,7 +162,7 @@ class CircleLogic extends GetxController {
await loadNewUserIsShowData(); await loadNewUserIsShowData();
loadCircleListData(); loadCircleListData();
loadCirclePeopleData(); loadCirclePeopleData();
await initGerder(); // await initGerder();
getCityList(); getCityList();
getBanner(); getBanner();
// getNearByList(); // getNearByList();
@ -199,7 +198,7 @@ class CircleLogic extends GetxController {
loadData() { loadData() {
loadCircleListData(); loadCircleListData();
loadCirclePeopleData(); loadCirclePeopleData();
initGerder(); // initGerder();
getCityList(); getCityList();
} }
@ -280,32 +279,52 @@ class CircleLogic extends GetxController {
configBean.genderMap.forEach((key, value) { configBean.genderMap.forEach((key, value) {
if (int.parse(key) < 3) { if (int.parse(key) < 3) {
genderList.add(MyConfigData(key, value, true)); genderList.add(MyConfigData(key, value, false));
dis_genderList.add(MyConfigData(key, value, false)); dis_genderList.add(MyConfigData(key, value, false));
new_genderList.add(MyConfigData(key, value, true)); new_genderList.add(MyConfigData(key, value, true));
} }
}); });
//
configBean.roleMap.forEach((key, value) { configBean.roleMap.forEach((key, value) {
allRoleList.add(value); allRoleList.add(value);
}); });
genderList.add(MyConfigData('-1', '非二元', true)); genderList.add(MyConfigData('-1', '非二元', false));
dis_genderList.add(MyConfigData('-1', '非二元', false)); dis_genderList.add(MyConfigData('-1', '非二元', false));
new_genderList.add(MyConfigData('-1', '非二元', true)); new_genderList.add(MyConfigData('-1', '非二元', true));
// if (userInfoBea!.orientations.isNotEmpty) {
// dis_genderList[0].isSelect = false;
// if (userInfoBea!.orientations!.contains(1)) {
// dis_genderList[1].isSelect = true;
// }
// if (userInfoBea!.orientations!.contains(2)) {
// dis_genderList[2].isSelect = true;
// }
// userInfoBea!.orientations.forEach((element) {
// if (element > 2) {
// dis_genderList[3].isSelect = true;
// }
// });
// }
bool isAll = false; bool isAll = false;
if (userInfoBea!.orientations!.length == 6) { if (userInfoBea!.orientations!.length == 6) {
dis_genderList.forEach((element) { genderList.forEach((element) {
element.isSelect = true; element.isSelect = true;
}); });
} else { } else {
dis_genderList[0].isSelect = false; genderList[0].isSelect = false;
userInfoBea!.orientations.forEach((element) { userInfoBea!.orientations.forEach((element) {
if (element == 1) { if (element == 1) {
dis_genderList[1].isSelect = true; genderList[1].isSelect = true;
} else if (element == 2) { } else if (element == 2) {
dis_genderList[2].isSelect = true; genderList[2].isSelect = true;
} else if (element > 2) { } else if (element > 2) {
dis_genderList[3].isSelect = true; genderList[3].isSelect = true;
} }
}); });
} }
@ -553,6 +572,9 @@ class CircleLogic extends GetxController {
// getLocationPermission(); // getLocationPermission();
// _isLocationGranted = true; // _isLocationGranted = true;
// } else { // } else {
if (genderList.length == 1) {
await initGerder();
}
getNearByList(); getNearByList();
// } // }
} }
@ -672,7 +694,6 @@ class CircleLogic extends GetxController {
} else { } else {
isLoadNearByList = false; isLoadNearByList = false;
refreshController.loadComplete(); refreshController.loadComplete();
// getNearByList();
return; return;
} }
} }

View File

@ -194,7 +194,6 @@ class _CirclePageState extends State<CirclePage>
)), )),
SizedBox(width: 4.sp,), SizedBox(width: 4.sp,),
Text( Text(
// '1111',
formatCallOutContent(data['content'] ?? '') , formatCallOutContent(data['content'] ?? '') ,
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,

View File

@ -33,6 +33,7 @@ class _VideoItemWidgetState extends State<VideoItemWidget> {
var data = await DioManager.instance.get(url: Api.signInterestCalloutDetail,params: { var data = await DioManager.instance.get(url: Api.signInterestCalloutDetail,params: {
'calloutId':widget.callOutId, 'calloutId':widget.callOutId,
}); });
if (data['code'] == 200) { if (data['code'] == 200) {
WorldLists bean = WorldLists.fromJson(data['data']); WorldLists bean = WorldLists.fromJson(data['data']);
Get.to( Get.to(

View File

@ -82,7 +82,7 @@ class Complete_materialLogic extends GetxController {
unLockWxNum = bean.data.unLockWxNum; unLockWxNum = bean.data.unLockWxNum;
userInfoBean = bean.data.user; userInfoBean = bean.data.user;
state.wxEditingController.text = userInfoBean!.wx_num; // state.wxEditingController.text = userInfoBean!.wx_num;
state.nickName = userInfoBean!.nickname; state.nickName = userInfoBean!.nickname;
state.sex = getGenderStr(userInfoBean!.gender); state.sex = getGenderStr(userInfoBean!.gender);
state.genderId = userInfoBean!.gender.toString(); state.genderId = userInfoBean!.gender.toString();
@ -494,9 +494,10 @@ class Complete_materialLogic extends GetxController {
Map<String,dynamic> params = { Map<String,dynamic> params = {
"hideContact": wxInfo.containsKey('hideContact') ? wxInfo['hideContact'] : 0, "hideContact": wxInfo.containsKey('hideContact') ? wxInfo['hideContact'] : 0,
'contactType':contactType, 'contactType':contactType,
"contact": state.wxEditingController.text}; "contact": state.wxEditingController.text,
'type':2};
var result = await DioManager().postBody(url: Api.confset,params: params); var result = await DioManager().postBody(url: Api.updateContact,params: params);
if (result['code'] == 10081) { if (result['code'] == 10081) {
// showToast. // showToast.
showOKToast(result['msg']); showOKToast(result['msg']);
@ -507,7 +508,19 @@ class Complete_materialLogic extends GetxController {
showOKToast(wxStatusInfo['32100']); showOKToast(wxStatusInfo['32100']);
} }
} }
print(result); print(result);
} else {
Map<String,dynamic> params = {
"hideContact": 0,
'contactType':2,
"contact": state.wxEditingController.text,
'type':2};
var result = await DioManager().postBody(url: Api.updateContact,params: params);
if (result['code'] == 200) {
}
} }
//TODO //TODO
// LatLng location = await getLocation(); // LatLng location = await getLocation();

View File

@ -21,6 +21,8 @@ import '../../../net/api.dart';
import '../../../utils/SharedPreferencesHelper.dart'; import '../../../utils/SharedPreferencesHelper.dart';
import 'state.dart'; import 'state.dart';
final String channelStr = '';
class LoginLogic extends GetxController { class LoginLogic extends GetxController {
bool check = false; bool check = false;
final QuickpassFlutterPlugin quickLoginPlugin = new QuickpassFlutterPlugin(); final QuickpassFlutterPlugin quickLoginPlugin = new QuickpassFlutterPlugin();
@ -32,7 +34,7 @@ class LoginLogic extends GetxController {
bool isPhone = false; bool isPhone = false;
String clipboardStr = ''; String clipboardStr = '';
String source = ''; String source = channelStr;
bool isShowPwd = false; bool isShowPwd = false;

View File

@ -201,7 +201,7 @@ class MinefragmentLogic extends GetxController {
if (result['code'] == 200) { if (result['code'] == 200) {
try { try {
List list = result['data'] ?? []; List list = result['data']['babies'] ?? [];
if (list.isNotEmpty) { if (list.isNotEmpty) {
isHaveBady = true; isHaveBady = true;
update(); update();
@ -694,6 +694,8 @@ class User {
String avatarThumb; String avatarThumb;
String? createTime; String? createTime;
int? avatarNonhuman; int? avatarNonhuman;
int? canMakeWish;
int? canSetContact;
String email; String email;
String phoneNum; String phoneNum;
User({ User({
@ -719,6 +721,8 @@ class User {
this.createTime, this.createTime,
required this.interests, required this.interests,
this.avatarNonhuman, this.avatarNonhuman,
this.canMakeWish,
this.canSetContact,
}); });
factory User.fromJson(Map<String, dynamic> json) { factory User.fromJson(Map<String, dynamic> json) {
@ -748,6 +752,8 @@ class User {
lat: json['lat'], lat: json['lat'],
city: json['city'], city: json['city'],
avatarThumb: json['avatar_thumb'], avatarThumb: json['avatar_thumb'],
canMakeWish: json['canMakeWish'],
canSetContact: json['canSetContact'],
avatarNonhuman: json['avatarNonhuman']); avatarNonhuman: json['avatarNonhuman']);
} }
} }

View File

@ -291,6 +291,7 @@ class _MinefragmentPageState extends State<MinefragmentPage>
), ),
), ),
Expanded(child: Container()), Expanded(child: Container()),
if ((Get.find<HomeLogic>().model?.canSetContact ?? 0) == 1)
GestureDetector( GestureDetector(
onTap: () async { onTap: () async {
if (logic.myInfoBean!.contact.isNotEmpty) { if (logic.myInfoBean!.contact.isNotEmpty) {

View File

@ -50,7 +50,7 @@ class My_master_or_babyLogic extends GetxController {
isLoad = false; isLoad = false;
if (result['code'] == 200) { if (result['code'] == 200) {
List list = result['data'] ?? []; List list = result['data']['babies'] ?? [];
if (page == 1) { if (page == 1) {
dataList = list; dataList = list;
if (dataList.isNotEmpty) { if (dataList.isNotEmpty) {

View File

@ -601,7 +601,7 @@ class UserinfoLogic extends GetxController {
.get(url: Api.masterBabies, params: {'page': 1, 'page_size': 10}); .get(url: Api.masterBabies, params: {'page': 1, 'page_size': 10});
if (result['code'] == 200) { if (result['code'] == 200) {
List list = result['data'] ?? []; List list = result['data']['babies'] ?? [];
if (list.isNotEmpty) { if (list.isNotEmpty) {
isHaveBady = true; isHaveBady = true;
update(); update();

View File

@ -170,7 +170,7 @@ class MyTabbedScreenState extends State<UserinfoPage>
? "${logic.userInfoBean!.nickname}" ? "${logic.userInfoBean!.nickname}"
: "个人主页", : "个人主页",
actionWdiget: logic.isMe actionWdiget: logic.isMe
? GestureDetector( ? ((Get.find<HomeLogic>().model?.canSetContact ?? 0) != 1) ? Container() : GestureDetector(
onTap: () async { onTap: () async {
if (logic.userInfoBean!.contact.isNotEmpty) { if (logic.userInfoBean!.contact.isNotEmpty) {
showUpdateWxPicker(); showUpdateWxPicker();
@ -204,6 +204,7 @@ class MyTabbedScreenState extends State<UserinfoPage>
), ),
), ),
), ),
Container( Container(
width: 110.sp, width: 110.sp,
decoration: BoxDecoration( decoration: BoxDecoration(

View File

@ -38,7 +38,7 @@ class _SignInDialogState extends State<SignInDialog> {
// TODO: add widget build method // TODO: add widget build method
// "rewards" -> [_GrowableList] // "rewards" -> [_GrowableList]
List infoList = widget.configInfo['rewards']; List infoList = widget.configInfo['rewards'];
return GestureDetector( return InkWell(
onTap: () { onTap: () {
Get.back(); Get.back();
}, },
@ -301,7 +301,7 @@ class _SignInDialogState extends State<SignInDialog> {
)); ));
itemList.add(Container( itemList.add(Container(
margin: EdgeInsets.only(left: 5.sp,right: 10.sp), margin: EdgeInsets.only(left: 5.sp,right: 10.sp),
child: Text('+',style: TextStyle(color: Color(0xFFDC5BFD),fontSize: 25.sp,),), child: Text('/',style: TextStyle(color: Color(0xFFDC5BFD),fontSize: 25.sp,),),
)); ));
} }
}); });

View File

@ -846,4 +846,7 @@ class Api {
// //
static var provinceNearByUserList = '/user-service/nearby/province/queryNearByUserList'; static var provinceNearByUserList = '/user-service/nearby/province/queryNearByUserList';
//
static var updateContact = '/user-service/updateContact';
} }

View File

@ -15,7 +15,7 @@ import 'package:connectivity/connectivity.dart';
// const String baseUrl = Api.baseUrl; // const String baseUrl = Api.baseUrl;
/// Dio /// Dio
final String channelStr = '';
enum DioMethod { enum DioMethod {
get, get,
post, post,
@ -249,7 +249,7 @@ class DioManager {
'OsVersion': await getDeviceId(), 'OsVersion': await getDeviceId(),
'Imei': await getImei(), 'Imei': await getImei(),
'Brand': await getBrand(), 'Brand': await getBrand(),
// 'Channel':'channel4' 'Channel':channelStr
}); });
} else { } else {
options = Options(method: methodValues[method], headers: { options = Options(method: methodValues[method], headers: {
@ -257,7 +257,7 @@ class DioManager {
'VersionName': await getVersionName(), 'VersionName': await getVersionName(),
'VersionCode': await getVersionCode(), 'VersionCode': await getVersionCode(),
'Platform': Platform.isIOS ? '1' : '0', 'Platform': Platform.isIOS ? '1' : '0',
'Channel':'kuaishou' 'Channel':channelStr
}); });
} }