删除埋点,im和客服

This commit is contained in:
谢宇宁
2026-10-08 20:10:40 +07:00
parent 92816047c6
commit 5064de7399
133 changed files with 220 additions and 1405 deletions
+2 -5
View File
@@ -5,7 +5,6 @@ import 'package:get/get.dart';
import 'package:jydj/assets_tool/images.dart';
import 'package:jydj/hj_page/pre_sale/pre_sale_provider.dart';
import 'package:jydj/hj_utils/api_service/vid_service.dart';
import 'package:jydj/hj_utils/holiday_theme.dart';
import 'package:jydj/hj_utils/light_model.dart';
import 'package:jydj/hj_utils/store_keys.dart';
import 'package:jydj/tools_base/global_store/store.dart';
@@ -17,7 +16,6 @@ import 'package:jydj/tools_base/widget/common_alert.dart';
import '../../config/config.dart';
import '../../hj_model/user/user_info_model.dart';
import '../../routers/jump_router.dart';
import '../main_page/provider/msg_provider.dart';
import '../web_page/h5_page.dart';
import 'collec_history_buy/col_his_buy_page.dart';
@@ -61,11 +59,10 @@ class MineMainLogic extends GetxController with GetTickerProviderStateMixin {
("账号凭证", 'mine_menu_9.png'.mineImgPath, () => Get.dialog(MineAccountIdentityPage())),
("锁屏密码", 'mine_menu_10.png'.mineImgPath, _toggleLockPassword),
("我的消息", 'mine_menu_11.png'.mineImgPath, () => menuTapEvent(3)),
("在线客服", 'mine_menu_12.png'.mineImgPath, pushToCustomService),
];
List<IconBean> iconList = [
IconBean(HolidayTheme.theme.appIcon, Config.appName),
IconBean('ic_launcher.webp'.commonImgPath, Config.appName),
IconBean('icon_1.webp'.appImgPath, "爱音乐"),
IconBean('icon_2.webp'.appImgPath, "爱阅读"),
IconBean('icon_3.webp'.appImgPath, "支付宝"),
@@ -187,6 +184,6 @@ class MineMainLogic extends GetxController with GetTickerProviderStateMixin {
changeIcon(int index) async {
if (!await CommonAlert.show(content: '您确定要更换图标吗?')) return;
const platform = MethodChannel(DeviceInfoService.requestChannel);
platform.invokeMethod('changeIcon', {"iconIndex": index == 0 ? holidayTheme.iconIndex : index});
platform.invokeMethod('changeIcon', {"iconIndex": index});
}
}
+13 -48
View File
@@ -8,7 +8,6 @@ import 'package:jydj/config/address.dart';
import 'package:jydj/config/config.dart';
import 'package:jydj/hj_page/main_page/provider/msg_provider.dart';
import 'package:jydj/hj_page/pre_sale/pre_sale_provider.dart';
import 'package:jydj/im_manager/im_notification.dart';
import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/routers/jump_router.dart';
import 'package:jydj/tools_base/global_store/store.dart';
@@ -17,10 +16,8 @@ import 'package:jydj/tools_base/toast.dart';
import 'package:jydj/tools_base/widget/net_image_widget.dart';
import 'package:provider/provider.dart';
import '../../hj_utils/holiday_theme.dart';
import '../../hj_utils/widget_util.dart';
import '../../tools_base/banner/ads_grid_view.dart';
import '../../track_event_manager/track_manager.dart';
import 'home_mine_logic.dart';
import 'widgets/mine_info_widget.dart';
import 'widgets/vip_entry_card.dart';
@@ -65,14 +62,14 @@ class HomeMinePage extends StatelessWidget {
);
}
//顶部背景:优先后台下发,兜底节日/默认图
//顶部背景:优先后台下发,兜底默认图
Widget _buildBg() {
final bg = Config.mineBg;
if (bg != null && bg.isNotEmpty) {
return NetworkImageLoader(imageUrl: bg, borderRadius: 0);
}
return Image.asset(
holidayTheme.openHoliday ? HolidayTheme.theme.mineBg : 'mine_bg.webp'.mineImgPath,
'mine_bg.webp'.mineImgPath,
);
}
@@ -98,7 +95,6 @@ class HomeMinePage extends StatelessWidget {
8,
autoStyle: true,
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
exposureModel: AdExposureModel(pageType: TrackEventPageType.mine),
),
Container(
margin: EdgeInsets.symmetric(horizontal: 16),
@@ -148,22 +144,12 @@ class HomeMinePage extends StatelessWidget {
"mine_notification.png".mineImgPath,
width: 28,
),
Consumer<ImMsgProvider>(
builder: (ctx, imPro, child) {
if (!imPro.hasUnreadCount) return const SizedBox.shrink();
return Positioned(
right: 2,
top: 2,
child: Container(
width: 8,
height: 8,
decoration: BoxDecoration(
color: Color(0xfff74f49),
borderRadius: BorderRadius.all(Radius.circular(6)),
),
),
);
},
Consumer<MineMsgProvider>(
builder: (context, model, child) => Positioned(
right: 2,
top: 2,
child: model.buildTipsView(),
),
),
],
),
@@ -249,7 +235,7 @@ class HomeMinePage extends StatelessWidget {
//永久官方地址:地址未下发时不渲染,避免点击/复制空串
Widget _buildGroundUrl() {
final url = Address.groundUrl;
if (url == null || url.isEmpty) return const SizedBox.shrink();
if (url.isEmpty) return const SizedBox.shrink();
return GestureDetector(
onTap: () => launchUrlToWeb(url),
onLongPress: () {
@@ -269,31 +255,10 @@ class HomeMinePage extends StatelessWidget {
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: Row(
children: [
Stack(
children: [
InkWell(
enableFeedback: false,
onTap: () => logic.menuTapEvent(3),
child: Image.asset("mine_notification.png".mineImgPath, width: 24),
),
Consumer<ImMsgProvider>(
builder: (ctx, imPro, child) {
if (!imPro.hasUnreadCount) return const SizedBox.shrink();
return Positioned(
right: 2,
top: 2,
child: Container(
width: 8,
height: 8,
decoration: BoxDecoration(
color: Color(0xfff74f49),
borderRadius: BorderRadius.all(Radius.circular(6)),
),
),
);
},
),
],
InkWell(
enableFeedback: false,
onTap: () => logic.menuTapEvent(3),
child: Image.asset("mine_notification.png".mineImgPath, width: 24),
),
Spacer(),
InkWell(
@@ -145,7 +145,7 @@ class MineAccountIdentityPage extends StatelessWidget {
height: 30,
padding: EdgeInsets.symmetric(horizontal: 18, vertical: 3),
child: Text(
'${Config.appName} 官网地址 ${Address.groundUrl ?? ""}',
'${Config.appName} 官网地址 ${Address.groundUrl}',
style: TextStyle(
color: Colors.white.withValues(alpha: .55),
fontSize: 12,
@@ -143,7 +143,5 @@ MineWithdrawalRecordLogic instanceController(RecordType type) {
return RechargeRecordController();
case RecordType.income:
return IncomeRecordController();
default:
throw '$type 没有找到';
}
}
@@ -1,5 +1,4 @@
import 'package:easy_rich_text/easy_rich_text.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@@ -13,7 +12,6 @@ import 'package:provider/provider.dart';
import '../../../assets_tool/app_colors.dart';
import '../../../hj_utils/widget_util.dart';
import '../../../routers/jump_router.dart';
import 'in_come_entity.dart';
import 'mine_withdrawal_record_page.dart';
import 'withdrawal_logic.dart';
@@ -359,18 +357,6 @@ class WithdrawalPage extends StatelessWidget {
),
)),
),
10.sizeBoxH,
EasyRichText(
'提现中如有问题,请联系 在线客服',
defaultStyle: textStyle(12, Colors.white.withValues(alpha: .8), FontWeight.w400),
patternList: [
EasyRichTextPattern(
targetString: '在线客服',
style: TextStyle(color: Color(0xffFFD460)),
recognizer: TapGestureRecognizer()..onTap = pushToCustomService,
),
],
),
34.sizeBoxH,
],
)
@@ -2,13 +2,15 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../hj_utils/api_service/mine_service.dart';
import 'message_center_sub_page.dart';
class MessageCenterLogic extends GetxController with GetTickerProviderStateMixin {
MessageCenterLogic get to => Get.find<MessageCenterLogic>();
late TabController tabController = TabController(length: titleArr.length, vsync: this);
List<String> titleArr = ['私信', '评论', '公告'];
List<String> titleArr = ['评论', '公告'];
List<MessageType> typeArr = [MessageType.comment, MessageType.thumb]; //与 titleArr 一一对应
void getUnReadNum() async {
await MineService.getUnreadNum();
@@ -1,8 +1,5 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:jydj/im_manager/chat_detail_page/Im_ad_view.dart';
import 'package:jydj/im_manager/chat_detail_page/chat_session_list_view.dart';
import 'package:jydj/im_manager/im_ad/im_ad_manager.dart';
import 'package:jydj/tools_base/widget/keep_alive_widget.dart';
import 'message_center_logic.dart';
@@ -54,25 +51,7 @@ class MessageCenterPage extends StatelessWidget {
controller: logic.tabController,
children: logic.titleArr
.asMap()
.map((key, value) {
final type = MessageType.values[key];
// 私信 Tab 走 IM 会话列表 + 顶部 banner 广告,其余走原有 HTTP 消息
if (type == MessageType.session) {
return MapEntry(
key,
CustomScrollView(slivers: [
SliverToBoxAdapter(
child: ImAdView(
padding: EdgeInsets.symmetric(vertical: 12, horizontal: 12),
position: ImAdManager.kPosListBanner,
),
),
const ChatSessionListView(),
]).keepAlive,
);
}
return MapEntry(key, MessageCenterSubPage(type).keepAlive);
})
.map((key, value) => MapEntry(key, MessageCenterSubPage(logic.typeArr[key]).keepAlive))
.values
.toList()),
),
@@ -157,7 +157,5 @@ MineFollowSubLogic instanceController(FollowType type, {int? uid}) {
return TopicController(uid);
case FollowType.actress:
return ActressController(uid);
default:
throw 'type 没有定义';
}
}
@@ -280,9 +280,6 @@ class _GesturePasswordWidgetState extends State<GesturePasswordWidget> {
@override
Widget build(BuildContext context) {
//预览小点的边长:每行 singleLineCount 个 10px 的点 + 之间 8px 间距。必须按 singleLineCount 算,
//写死值(原来是 56)比内容宽时 Wrap 默认贴左上,整块预览会偏左偏上,且换行数只对 3x3 成立
final previewSize = 10.0 * widget.singleLineCount + 8 * (widget.singleLineCount - 1);
return Column(
children: [
/*SizedBox(
@@ -141,7 +141,7 @@ class _BankCardHomePageState extends State<BankCardHomePage> {
child: ListView.builder(
padding: EdgeInsets.only(top: 10, bottom: 80),
shrinkWrap: true,
itemCount: aliList.length ?? 0,
itemCount: aliList.length,
itemBuilder: (BuildContext context, int index) {
return _buildCardView(index, aliList[index]);
},
@@ -3,7 +3,6 @@ import 'package:get/get.dart';
import 'package:jydj/hj_utils/screen.dart';
import '../../../hj_utils/permission_util.dart';
import '../../../routers/jump_router.dart';
import 'bing_phone_page.dart';
import 'mine_scan_login_page.dart';
@@ -21,10 +20,6 @@ class MineFindAccountPage extends StatelessWidget {
}
}
},
{
'title': '联系客服',
'ontap': () => pushToCustomService(),
}
];
MineFindAccountPage({super.key});
@@ -3,7 +3,6 @@ import 'package:jydj/assets_tool/app_colors.dart';
import 'package:jydj/routers/jump_router.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:jydj/assets_tool/images.dart';
import 'package:jydj/config/config.dart';
import 'package:jydj/tools_base/toast.dart';
import 'package:jydj/hj_utils/screen.dart';
@@ -82,7 +82,5 @@ MineSettingProfilePage instanceSettingProfileController(SettingProfileType type)
return SettingNickNameController();
case SettingProfileType.slogan:
return SettingSloganController();
default:
throw '';
}
}
@@ -144,7 +144,7 @@ class MineSharePage extends StatelessWidget {
height: 30,
padding: EdgeInsets.symmetric(horizontal: 18, vertical: 3),
child: Text(
'${Config.appName} 官网地址 ${Address.groundUrl ?? ""}',
'${Config.appName} 官网地址 ${Address.groundUrl}',
style: TextStyle(
color: Colors.white.withValues(alpha: .55),
fontSize: 12,
@@ -1,5 +1,3 @@
import 'package:easy_rich_text/easy_rich_text.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -11,7 +9,6 @@ import 'package:jydj/tools_base/loading/loading_center_widget.dart';
import 'package:provider/provider.dart';
import '../../../hj_utils/widget_util.dart';
import '../../../routers/jump_router.dart';
import '../make_money/mine_withdrawal_record_page.dart';
import 'charge_user_header.dart';
import 'mine_charge_coin_logic.dart';
@@ -98,16 +95,9 @@ class MineChargeCoinPage extends StatelessWidget {
),
SliverToBoxAdapter(child: 18.sizeBoxH),
SliverToBoxAdapter(
child: EasyRichText(
'*如提示【交易失败】【账户风险】等,可重新发起订单,或在15分钟后重试支付。如支付未到账,请反馈客服订单号',
defaultStyle: TextStyle(color: Color(0xff666666), fontSize: 12),
patternList: [
EasyRichTextPattern(
targetString: '反馈客服订单号',
style: TextStyle(color: Color(0xffFFD460), fontWeight: FontWeight.w500),
recognizer: TapGestureRecognizer()..onTap = () => pushToCustomService(),
)
],
child: Text(
'*如提示【交易失败】【账户风险】等,可重新发起订单,或在15分钟后重试支付。',
style: TextStyle(color: Color(0xff666666), fontSize: 12),
).paddingSymmetric(horizontal: 16),
),
],
@@ -122,7 +112,7 @@ class MineChargeCoinPage extends StatelessWidget {
);
}
// 底部支付按钮 + 客服入口
// 底部支付按钮
Widget _buildBottomBar(MineChargeCoinLogic controller) {
return Column(
mainAxisSize: MainAxisSize.min,
@@ -140,19 +130,6 @@ class MineChargeCoinPage extends StatelessWidget {
),
),
),
12.sizeBoxH,
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('权益长期有效 I 支持帐号找回 I ', style: textStyle(12, Color(0xffBFBFC1), FontWeight.w400)),
GestureDetector(
onTap: () {
pushToCustomService();
},
child: Text('在线客服', style: textStyle(12, Color(0xffFFD460), FontWeight.w400)),
)
],
),
// 垫上虚拟导航栏高度,避免底部内容被遮挡(edge-to-edge)
(16 + screen.paddingBottom).sizeBoxH,
],
@@ -1,8 +1,6 @@
import 'dart:math' as math;
import 'package:carousel_slider/carousel_slider.dart';
import 'package:easy_rich_text/easy_rich_text.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:jydj/assets_tool/images.dart';
@@ -12,7 +10,6 @@ import 'package:jydj/tools_base/unique_tag_mixin.dart';
import 'package:jydj/tools_base/widget/net_image_widget.dart';
import 'package:provider/provider.dart';
import '../../../routers/jump_router.dart';
import '../../pre_sale/pre_sale_entry.dart';
import '../make_money/mine_withdrawal_record_page.dart';
import 'charge_user_header.dart';
@@ -189,57 +186,6 @@ class _MineChargeVipPageState extends State<MineChargeVipPage> with UniqueTagMix
);
}
//核心权益:横向滚动卡片(左图标 + 右文案)—— B 改版
Widget _buildCorePrivileges(List<NewPrivilege> list) {
if (list.isEmpty) return const SizedBox.shrink();
return Column(
children: [
const VipCoreSectionTitleImage(),
16.sizeBoxH,
SizedBox(
height: 92,
child: ListView.separated(
clipBehavior: Clip.none,
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.fromLTRB(16, 2, 16, 26),
itemCount: list.length,
separatorBuilder: (_, __) => 8.sizeBoxW,
itemBuilder: (_, index) => VipCorePrivilegeCard(list[index]),
),
),
16.sizeBoxH,
],
);
}
//核心权益:4 列金边方卡 —— A / DISABLED 旧版
Widget _buildClassicCorePrivileges(List<NewPrivilege> list) {
if (list.isEmpty) return const SizedBox.shrink();
return Column(
children: [
const VipSectionTitle("我的核心权益", classic: true),
16.sizeBoxH,
GridView.builder(
padding: const EdgeInsets.symmetric(horizontal: 14),
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4,
crossAxisSpacing: 8,
mainAxisSpacing: 8,
childAspectRatio: 1,
),
itemCount: list.length,
itemBuilder: (_, index) => FittedBox(
fit: BoxFit.contain,
child: SizedBox(width: 72, height: 72, child: VipCorePrivilegeCard(list[index], classic: true)),
),
),
16.sizeBoxH,
],
);
}
//更多权益:深色圆角容器 + 四列网格 + 展开/收起 —— B 改版
Widget _buildMorePrivileges(List<NewPrivilege> list) {
if (list.isEmpty) return const SizedBox.shrink();
@@ -274,7 +220,7 @@ class _MineChargeVipPageState extends State<MineChargeVipPage> with UniqueTagMix
);
}
//底部支付区域:只有按钮跟选中卡走,渐变底和客服文案是静态的
//底部支付区域:只有按钮跟选中卡走,渐变底是静态的
Widget _buildPay({required bool classic}) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 16),
@@ -294,18 +240,6 @@ class _MineChargeVipPageState extends State<MineChargeVipPage> with UniqueTagMix
id: MineChargeVipLogic.kSelection,
builder: (logic) => VipPayButton(logic, classic: classic),
),
12.sizeBoxH,
EasyRichText(
'权益长期有效 I 支持帐号找回 I 在线客服',
patternList: [
EasyRichTextPattern(
targetString: '在线客服',
style: TextStyle(color: Color(0xFFFFC000), fontSize: 12),
recognizer: TapGestureRecognizer()..onTap = () => pushToCustomService(),
)
],
defaultStyle: TextStyle(color: Color(0xffBFBFC1), fontSize: 12),
),
// 垫上虚拟导航栏高度,避免底部内容被遮挡(edge-to-edge)
(12 + screen.paddingBottom).sizeBoxH,
],
@@ -1,7 +1,5 @@
import 'dart:convert';
import 'package:easy_rich_text/easy_rich_text.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -154,21 +152,6 @@ class _OnlinePayPageState extends State<OnlinePayPage> {
),
),
),
18.sizeBoxH,
//客服入口
Center(
child: EasyRichText(
'支付问题反馈,点击联系 在线客服',
defaultStyle: textStyle(12, Colors.white.withValues(alpha: .6), FontWeight.w500),
patternList: [
EasyRichTextPattern(
targetString: '在线客服',
style: textStyle(12, Color(0xffFFD460), FontWeight.w500),
recognizer: TapGestureRecognizer()..onTap = () => pushToCustomService(),
),
],
),
),
]);
}
@@ -4,7 +4,6 @@ import 'package:jydj/assets_tool/app_colors.dart';
import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/tools_base/widget/common_dialog.dart';
import '../../../routers/jump_router.dart';
import '../../../tools_base/global_store/store.dart';
class PaySuccessAlert extends StatelessWidget {
@@ -34,7 +33,7 @@ class PaySuccessAlert extends StatelessWidget {
0.5.line,
12.sizeBoxH,
Text(
'''1.订单支付后,一般会在1-10分钟内到账,如超时未到账,请联系在线客服为您处理。
'''1.订单支付后,一般会在1-10分钟内到账。
2.受特殊行业限制,如支付失败可尝试重新发起订单,系统将会随机切换备用的支付通道。
3.本APP有稳定的广告收益,产品稳定安全,请放心充值使用,如遇报毒提示忽略即可。''',
style: TextStyle(
@@ -43,24 +42,6 @@ class PaySuccessAlert extends StatelessWidget {
height: 1.8,
),
),
12.sizeBoxH,
InkWell(enableFeedback: false,
onTap: () => pushToCustomService(),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'支付遇到问题',
style: TextStyle(color: Color(0xff999999), fontSize: 14),
),
2.sizeBoxW,
Icon(
Icons.arrow_forward_ios_outlined,
size: 14,
color: Colors.white,
)
],
)),
24.sizeBoxH,
InkWell(enableFeedback: false,
onTap: () {
@@ -3,8 +3,6 @@ import 'package:get/get.dart';
import 'package:jydj/assets_tool/app_colors.dart';
import 'package:jydj/assets_tool/images.dart';
import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/hj_utils/widget_util.dart';
import 'package:jydj/routers/jump_router.dart';
import 'package:jydj/tools_base/global_store/store.dart';
import 'package:jydj/tools_base/loading/loading_center_widget.dart';
import 'package:provider/provider.dart';
@@ -148,25 +146,6 @@ class CoinPayBottomSheet extends StatelessWidget {
);
},
),
16.sizeBoxH,
Text.rich(
TextSpan(
style: const TextStyle(fontSize: 12, height: 18 / 12, color: Color(0xff656565)),
children: [
const TextSpan(text: '*如提示【交易失败】【账户风险】等,可重新发起订单,或在15分钟后重试支付。如支付未到账,请'),
WidgetSpan(
alignment: PlaceholderAlignment.middle,
child: GestureDetector(
onTap: pushToCustomService,
child: const Text(
'反馈客服订单号',
style: TextStyle(fontSize: 12, height: 18 / 12, color: Color(0xffFFD460)),
),
),
),
],
),
),
18.sizeBoxH,
],
),
@@ -234,7 +213,7 @@ class CoinPayBottomSheet extends StatelessWidget {
);
}
/// 立即支付 + 在线客服
/// 立即支付
Widget _buildBottomBar(MineChargeCoinLogic logic) {
return Column(
mainAxisSize: MainAxisSize.min,
@@ -259,17 +238,6 @@ class CoinPayBottomSheet extends StatelessWidget {
),
),
),
12.sizeBoxH,
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('支付问题反馈,点击联系 ', style: textStyle(12, const Color(0xffBFBFC1), FontWeight.w400)),
GestureDetector(
onTap: pushToCustomService,
child: Text('在线客服', style: textStyle(12, const Color(0xffFFD460), FontWeight.w400)),
),
],
),
16.sizeBoxH,
],
);
@@ -26,13 +26,13 @@ class _MineQAPageState extends State<MineQAPage> {
{
"question": "怎么找回账号?",
"answer":
"本平台登录会自动创建账号,需保存账号凭证或绑定手机号码,才能记录之前的账号信息。受行业限制,APP无法正常使用时需升级,未绑定手机号码会导致账号信息丢失。请及时绑定手机号码或保存账号凭证,以免VIP信息丢失,造成巨大财产损失!账号丢失的用户可在 『我的』页面-账号找回,原账号的VIP信息会转移至新账号上。『账号凭证』『手机绑定』都没有的情况下,如账号VIP信息丢失,可以提供VIP支付充值凭证截图联系在线客服为您查询核实恢复VIP。",
"本平台登录会自动创建账号,需保存账号凭证或绑定手机号码,才能记录之前的账号信息。受行业限制,APP无法正常使用时需升级,未绑定手机号码会导致账号信息丢失。请及时绑定手机号码或保存账号凭证,以免VIP信息丢失,造成巨大财产损失!账号丢失的用户可在 『我的』页面-账号找回,原账号的VIP信息会转移至新账号上。",
'isOpen': false
},
{
"question": "怎么支付不成功?",
"answer":
"1.因超时支付无法到账,请重新发起。\n2.每天发起支付不能超过5次,连续发起且未支付,账号可能被加入黑名单。\n3.支付通道在夜间比较忙碌,尝试多次发起,后台会为您自动切换不同支付通道。\n4.若充值成功,用户权益通常会在数分钟内到账,请刷新APP或重启。\n6.若支付成功并重启APP后依然没有到账,请联系在线客服并提供付款成功凭证截图。",
"1.因超时支付无法到账,请重新发起。\n2.每天发起支付不能超过5次,连续发起且未支付,账号可能被加入黑名单。\n3.支付通道在夜间比较忙碌,尝试多次发起,后台会为您自动切换不同支付通道。\n4.若充值成功,用户权益通常会在数分钟内到账,请刷新APP或重启。",
'isOpen': false
},
{"question": "收到手机报毒提醒?", "answer": "本平台有主要收益为广告赞助,且保证APP安全无毒,因平台主要展示内容为色情属于特殊行业,某些杀毒软件会误报毒提醒,如遇此类提醒请忽略继续使用。", 'isOpen': false},
@@ -4,7 +4,6 @@ import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/tools_base/loading/loading_center_widget.dart';
import 'package:jydj/tools_base/unique_tag_mixin.dart';
import 'package:jydj/tools_base/widget/keep_alive_widget.dart';
import 'package:jydj/track_event_manager/track_manager.dart';
import 'lou_feng_ad_logic.dart';
import 'widget/recommend_app_page.dart';
@@ -92,8 +91,5 @@ class _LouFengAdPageState extends State<LouFengAdPage> with UniqueTagMixin {
);
}
Widget _adView(LouFengAdLogic logic, int index) => RecommendAppPage(
logic.configs[index],
exposureModel: AdExposureModel(tabIndex: index, pageType: TrackEventPageType.appList),
);
Widget _adView(LouFengAdLogic logic, int index) => RecommendAppPage(logic.configs[index]);
}
@@ -34,8 +34,8 @@ class MoreFreeVideoLogic extends GetxController with GetTickerProviderStateMixin
dataSource.clear();
refreshController?.refreshCompleted();
}
res?.hasNext ?? false ? refreshController?.loadComplete() : refreshController?.loadNoData();
dataSource.addAll(res?.list ?? []);
res.hasNext ?? false ? refreshController?.loadComplete() : refreshController?.loadNoData();
dataSource.addAll(res.list ?? []);
page += 1;
update();
}
@@ -4,7 +4,6 @@ import 'package:jydj/tools_base/widget/keep_alive_widget.dart';
import '../../../tools_base/indicator/custom_tab_indicator.dart';
import 'lou_feng_ad_page.dart';
import 'mine_income_page.dart';
class WelfareHomePage extends StatefulWidget {
@@ -3,15 +3,13 @@ import 'package:jydj/hj_model/mine/happy/happy_model.dart';
import 'package:jydj/hj_model/splash/ads_model.dart';
import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/tools_base/banner/ads_banner.dart';
import 'package:jydj/track_event_manager/track_manager.dart';
import '../../../../tools_base/banner/ads_item.dart';
class RecommendAppPage extends StatelessWidget {
final AdTabConfig model;
final AdExposureModel? exposureModel;
const RecommendAppPage(this.model, {super.key, this.exposureModel});
const RecommendAppPage(this.model, {super.key});
@override
Widget build(BuildContext context) {
return CustomScrollView(
@@ -24,10 +22,7 @@ class RecommendAppPage extends StatelessWidget {
borderRadius: BorderRadius.circular(8),
child: AspectRatio(
aspectRatio: 343 / 143,
child: AdsBanner(
model.bannerAds ?? [],
exposureModel: exposureModel?..adType = AdType.bigBanner,
),
child: AdsBanner(model.bannerAds ?? []),
),
),
),
@@ -113,8 +108,6 @@ class RecommendAppPage extends StatelessWidget {
_buildVItem(AdsInfoModel item, int index) {
return AdsItem(
adInfo: item,
exposureModel: exposureModel?..adType = AdType.smallIcon,
clickType: 0,
);
}
@@ -126,8 +119,6 @@ class RecommendAppPage extends StatelessWidget {
AdsItem(
adInfo: item,
showType: AdShowType.hor,
exposureModel: exposureModel?..adType = AdType.smallIcon,
clickType: 0,
),
12.sizeBoxH,
],
@@ -138,8 +129,6 @@ class RecommendAppPage extends StatelessWidget {
return AdsItem(
adInfo: item,
showType: AdShowType.vImgText,
exposureModel: exposureModel?..adType = AdType.smallBanner,
clickType: 0,
);
}
}
@@ -614,7 +614,7 @@ class _TaskItemState extends State<TaskItem> {
/// 任务按钮点击:红包雨 → 跳转 link;未完成 → 去完成;待领取 → 领奖
void _onBtnTap(DailyTask task, String btnText) {
if (btnText == '领红包' || btnText == '待开启') {
pushToPageByLink(task.link, id: task.id);
pushToPageByLink(task.link);
return;
}
switch (task.status) {
@@ -623,7 +623,7 @@ class _TaskItemState extends State<TaskItem> {
Get.to(MineChargeCoinPage());
return;
}
pushToPageByLink(task.link, id: task.id);
pushToPageByLink(task.link);
_doTask(task);
break;
case 1:
@@ -8,9 +8,7 @@ import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/tools_base/global_store/store.dart';
import 'package:jydj/tools_base/loading/loading_center_widget.dart';
import '../../../routers/jump_router.dart';
import '../../../tools_base/loading/loading_helper.dart';
import '../../../tools_base/widget/common_dialog.dart';
import '../../../tools_base/widget/net_image_widget.dart';
import 'integral_exchange_logic.dart';
@@ -105,90 +103,8 @@ class IntegralExchangePage extends StatelessWidget {
final res = await MineService.integralExchange(model.id ?? '');
LoadingHelper.dismissLoading();
if (res) {
if (model.type == 5) {
Get.dialog(InputAddressAlert(model: model));
} else {
showToast('兑换成功~');
}
showToast('兑换成功~');
globalStore.refreshWallet();
}
}
}
class InputAddressAlert extends StatefulWidget {
// final Function()? confirmCallback;
final IntegralExchangeModel model;
const InputAddressAlert({super.key, required this.model});
@override
State<InputAddressAlert> createState() => _InputAddressAlertState();
}
class _InputAddressAlertState extends State<InputAddressAlert> {
final nameCtr = TextEditingController();
final addressCtr = TextEditingController();
final phoneCtr = TextEditingController();
@override
Widget build(BuildContext context) {
return CommonDialog(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'温馨提示',
style: TextStyle(color: Color(0xffffffff), fontSize: 18.sp, fontWeight: FontWeight.w800),
),
20.h.sizeBoxH,
Divider(
height: 1,
color: Colors.white.withValues(alpha: .1),
),
20.h.sizeBoxH,
Container(
width: double.infinity,
height: 45.h,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(horizontal: 13.w),
child: Text(
"兑换成功!",
style: TextStyle(color: Color(0x8CFFFFFF), fontSize: 18),
textAlign: TextAlign.center,
),
),
5.h.sizeBoxH,
Container(
width: double.infinity,
height: 45.h,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(horizontal: 13.w),
child: Text(
"请联系客服填写收货地址",
style: TextStyle(color: Color(0x8CFFFFFF), fontSize: 18),
textAlign: TextAlign.center,
),
),
20.h.sizeBoxH,
Padding(
padding: EdgeInsets.symmetric(horizontal: 15.w),
child: GestureDetector(
onTap: () async {
pushToCustomService();
},
child: Container(
decoration: BoxDecoration(color: Color(0xffFFC000), borderRadius: BorderRadius.circular(6)),
height: 48,
alignment: Alignment.center,
child: Text(
'联系客服',
style: TextStyle(color: Colors.white, fontSize: 18.sp, fontWeight: FontWeight.w500),
),
),
),
)
],
),
);
}
}
@@ -3,7 +3,6 @@ import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:jydj/assets_tool/images.dart';
import 'package:jydj/hj_model/video_model.dart';
import 'package:jydj/hj_utils/holiday_theme.dart';
import 'package:jydj/hj_utils/screen.dart';
import 'package:jydj/tools_base/global_store/store.dart';
import 'package:jydj/tools_base/toast.dart';
@@ -13,9 +12,7 @@ import '../../home/widget/user_avatar.dart';
import '../../home/widget/user_name_view.dart';
import '../collec_history_buy/col_his_buy_page.dart';
import '../home_mine_logic.dart';
import '../mine_following/mine_following_view.dart';
import '../mine_setting/mine_setting_page.dart';
import '../mine_video_cache/video_cache_page.dart';
import '../mine_vip/mine_charge_coin_page.dart';
import '../mine_vip/mine_charge_vip_page.dart';
import '../welfare/sign_daily_page.dart';
@@ -157,7 +154,7 @@ class MineTaskMenuWidget extends StatelessWidget {
InkWell(
enableFeedback: false,
onTap: () => Get.to(() => MineChargeVipPage(), preventDuplicates: false),
child: _buildItem("", HolidayTheme.theme.vipEnter, 0),
child: _buildItem("", 'mine_vip_enter.webp'.mineImgPath, 0),
),
InkWell(
enableFeedback: false,
@@ -167,14 +164,14 @@ class MineTaskMenuWidget extends StatelessWidget {
},
child: _buildItem(
"余额:${(globalStore.wallet?.amount ?? 0) + (globalStore.wallet?.income ?? 0)}",
HolidayTheme.theme.coin,
'mine_gold_enter.webp'.mineImgPath,
15,
),
),
InkWell(
enableFeedback: false,
onTap: _openAiGirlFriendDetail,
child: _buildItem("", HolidayTheme.theme.aiEnter, 0),
child: _buildItem("", 'mine_ai_enter.webp'.mineImgPath, 0),
),
];
return Stack(
@@ -145,7 +145,7 @@ class _MineShareQRViewState extends State<MineShareQRView> {
borderRadius: BorderRadius.circular(30),
),
child: Text(
'${Config.appName} 官网地址 ${Address.groundUrl ?? ""}',
'${Config.appName} 官网地址 ${Address.groundUrl}',
style: TextStyle(
color: Colors.white.withValues(alpha: .55),
fontSize: 12,