hi-client/lib/app/modules/hi_help/controllers/hi_help_controller.dart

143 lines
5.8 KiB
Dart
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:get/get.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/widgets.dart';
import '../../../services/api_service/kr_api.user.dart';
import '../../../utils/kr_common_util.dart';
class KRMessage {
final String title;
final List<String> content; // content 是一个字符串列表
KRMessage({required this.title, required this.content});
}
class HIHelpController extends GetxController {
final KRUserApi kr_userApi = KRUserApi();
// 通知列表数据
final RxList<KRMessage> kr_messages = <KRMessage>[
KRMessage(
title: '客户端下载问题',
content: [
'iOS设备下载客户端需要使用除中国大陆以外的Apple ID[link]点击这里[/link]获取海外Apple ID注册教程。',
'Mac OS设备下载客户端可以直接前往Hi快VPN官网下载dmg格式文件安装。',
'Android设备下载客户端可以直接前往Hi快VPN官网下载apk格式文件安装。',
'PC设备下载客户端可以直接前往Hi快VPN官网下载exe格式文件安装。',
],
),
KRMessage(
title: '套餐支付问题',
content: [
'支付页面无法打开尝试更换网络或检查并断开连接其它VPN软件。',
'支付页面无法正确显示:请退出客户端重新进入,如仍无法正确显示,请截图并联系在线客服。',
'支付成功但套餐未正确激活:请退出客户端后五分钟重新进入,如仍未正确激活,请截图您的支付记录,与在线客服联系,核实后会帮您手动激活。',
],
),
KRMessage(
title: '账号问题',
content: [
'每部设备在安装客户端后会自动生成一个账号,购买套餐后可以正常使用,如需登陆其他设备使用,则需要绑定邮箱。更换设备前建议先绑定邮箱。',
'注销账号后会自动清除您已经购买的套餐信息,无法找回,请谨慎对待您的账号。',
'无法收到邮箱验证码:请检查营销邮件箱或垃圾邮件箱。',
],
),
KRMessage(
title: '连接相关问题',
content: [
'无法连接:请检查设备网络是否畅通,如仍无法连接,请退出客户端并重新启动设备。',
'连接后速度慢,无法打开页面:请进入菜单-节点列表,手动切换节点或选择自动匹配最快网络。',
'连接后无法打开本地页面:请进入菜单-节点列表切换为智能模式即可绕过本地ip但会暴露您的ip地址。选择全局模式则可以保证您始终处于隐私ip状态。',
],
),
KRMessage(
title: '线路相关问题',
content: [
'Hi快VPN所有线路均为IEPL专线最大程度保证线路纯净与连接速度。',
'Hi快VPN所有线路均不限流量不限带宽请放心使用。',
'Hi快VPN所有线路均不保存任何用户网络日志最大程度保障用户的隐私安全。',
],
),
KRMessage(
title: '设备与绑定问题',
content: [
'在绑定新设备之前请先添加您的邮箱。',
'Hi快VPN支持最多两台设备同时在线包括一台iOS设备或Android加一台Mac或PC。',
'如超出设备数量限制,最早登陆的同类设备将会自动下线,需要重新登陆,设备限制为系统固定设定,不支持调整。',
],
),
KRMessage(
title: '邀请用户相关问题',
content: [
'邀请用户请进入菜单-邀请好友页面,点击“我的邀请码”分享链接,直接分享至任意平台。受邀好友在根据流程安装好客户端后,进入菜单-邀请好友页面贴入邀请码保存后购买任一套餐您和好友将会同时获得3天免费使用时长。',
'请务必先行让受邀好友填写邀请码后再购买套餐,否则将无法激活免费时长。',
],
),
KRMessage(
title: '闪连功能相关问题',
content: [
'闪连功能可以为您提供最便捷的VPN使用体验在设置好您的使用偏好并开启闪连功能后未来只需要点击打开客户端软件即自动连接无需再点击任意按钮。',
'在后台关闭客户端后,连接自动断开。如未在后台关闭,则连接不会断开。如长时间设备锁屏并没有任何操作,连接会自动断开。',
],
),
].obs;
final RxBool kr_isLoading = false.obs;
final RxBool kr_hasMore = true.obs;
int kr_page = 1;
final int kr_size = 10;
final EasyRefreshController refreshController = EasyRefreshController();
final ScrollController kr_scrollController = ScrollController();
@override
void onInit() {
super.onInit();
// 隐藏全局订阅按钮
// kr_getMessageList();
}
// 刷新列表
Future<void> kr_onRefresh() async {
kr_page = 1;
kr_hasMore.value = true;
kr_messages.clear();
await kr_getMessageList();
refreshController.finishRefresh();
}
// 加载更多
Future<void> kr_onLoadMore() async {
if (!kr_hasMore.value || kr_isLoading.value) {
refreshController.finishLoad(IndicatorResult.noMore);
return;
}
kr_page++;
await kr_getMessageList();
refreshController.finishLoad(kr_hasMore.value ? IndicatorResult.success : IndicatorResult.noMore);
}
Future<void> kr_getMessageList() async {
if (kr_isLoading.value) return;
kr_isLoading.value = true;
final either = await kr_userApi.kr_getMessageList(kr_page, kr_size);
either.fold(
(error) {
KRCommonUtil.kr_showToast(error.msg);
if (kr_page > 1) kr_page--;
},
(list) {
},
);
kr_isLoading.value = false;
}
@override
void onClose() {
refreshController.dispose();
kr_scrollController.dispose();
super.onClose();
}
}