更新协议方式web
This commit is contained in:
@@ -47,4 +47,7 @@ class ServiceConstant {
|
||||
static const String user_forgot = "/api/user/forgot"; //找回密码
|
||||
static const String user_changePassword = "/api/user/changePassword"; //修改密码
|
||||
static const String personnel_info = "/api/personnel/info"; //人员信息列表
|
||||
|
||||
static const String policy_url =
|
||||
"https://wyf.it.real.he-info.cn:94/apk/policy";//协议地址
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/enum/APPPackageType.dart';
|
||||
@@ -47,15 +48,44 @@ class AppConstants {
|
||||
];
|
||||
|
||||
List<Color> thNormalButton = [
|
||||
themeController.currentColor.sc1,
|
||||
themeController.currentColor.sc2,
|
||||
];
|
||||
|
||||
|
||||
themeController.currentColor.sc1,
|
||||
themeController.currentColor.sc2,
|
||||
]; //太和按钮颜色
|
||||
|
||||
//系统参数
|
||||
//运行打包APP模式
|
||||
// int ent_type = APPPackageType.MHT.code; //1.默认太和 2.欢睡 3.眠花糖
|
||||
int ent_type = APPPackageType.TH.code; //1.默认太和 2.欢睡 3.眠花糖
|
||||
int ent_type = APPPackageType.MHT.code; //1.默认太和 2.欢睡 3.眠花糖
|
||||
// int ent_type = APPPackageType.TH.code; //1.默认太和 2.欢睡 3.眠花糖
|
||||
int text_length = 8;
|
||||
}
|
||||
|
||||
//获取协议地址
|
||||
// 1.隐私协议 2.用户协议
|
||||
String getPrivacy(int type) {
|
||||
String? language = "zh_CN";
|
||||
if (AppConstants().ent_type == APPPackageType.MHT.code) {
|
||||
if (mhLanguageController.selectLanguage != null) {
|
||||
language = mhLanguageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
} else {
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
}
|
||||
if (AppConstants().ent_type == APPPackageType.MHT.code) {
|
||||
if (type == 1) {
|
||||
return ServiceConstant.policy_url + "/mht_privacy_policy_$language.html";
|
||||
}
|
||||
return ServiceConstant.policy_url + "/mht_user_policy_$language.html";
|
||||
} else if (AppConstants().ent_type == APPPackageType.TH.code) {
|
||||
if (type == 1) {
|
||||
return ServiceConstant.policy_url + "/th_privacy_policy_$language.html";
|
||||
}
|
||||
return ServiceConstant.policy_url + "/th_user_policy_$language.html";
|
||||
} else {
|
||||
if (type == 1) {
|
||||
return ServiceConstant.policy_url + "/th_privacy_policy_$language.html";
|
||||
}
|
||||
return ServiceConstant.policy_url + "/th_user_policy_$language.html";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:img_picker/img_picker.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/color/repair_status.dart';
|
||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
@@ -14,6 +15,7 @@ import 'package:vbvs_app/common/util/myDialog/my_dialog_controller.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/enum/APPPackageType.dart';
|
||||
import 'package:vbvs_app/model/api_response.dart';
|
||||
import 'package:vbvs_app/model/user_data.dart';
|
||||
|
||||
@@ -80,8 +82,14 @@ class ApplyRepairController extends GetControllerEx<ApplyRepairModel> {
|
||||
String serviceApi = ServiceConstant.upload_file;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (mhLanguageController.selectLanguage != null) {
|
||||
language = mhLanguageController.selectLanguage.value!.language_code;
|
||||
if (AppConstants().ent_type == APPPackageType.MHT.code) {
|
||||
if (mhLanguageController.selectLanguage != null) {
|
||||
language = mhLanguageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
} else {
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
|
||||
@@ -79,7 +79,6 @@ import 'package:vbvs_app/pages/mh_page/user/controller/bind_tel_controller.dart'
|
||||
import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/controller/mht_register_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/controller/update_password_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/page/bind_tel_page.dart';
|
||||
import 'package:vbvs_app/routers/mh_routers.dart';
|
||||
|
||||
import 'controller/mh_controller/apply_repair_controller.dart';
|
||||
|
||||
@@ -337,7 +337,9 @@ class _SettingPageState extends State<SettingPage> {
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
40.rpx, 0.rpx, 40.rpx, 0.rpx),
|
||||
onTap: () {
|
||||
Get.toNamed("/userAgreementPage");
|
||||
// Get.toNamed("/userAgreementPage");
|
||||
Get.toNamed("/privacyPolicyPageNew",
|
||||
arguments: getPrivacy(2));
|
||||
},
|
||||
child: Container(
|
||||
child: Padding(
|
||||
@@ -385,7 +387,9 @@ class _SettingPageState extends State<SettingPage> {
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.rpx, 0.rpx, 0.rpx, 0.rpx),
|
||||
onTap: () {
|
||||
Get.toNamed("/privacyPolicyPage");
|
||||
// Get.toNamed("/privacyPolicyPage");
|
||||
Get.toNamed("/userPolicyPageNew",
|
||||
arguments: getPrivacy(1));
|
||||
},
|
||||
child: Container(
|
||||
child: Padding(
|
||||
@@ -568,7 +572,8 @@ class _SettingPageState extends State<SettingPage> {
|
||||
AppConstants().ent_type == 1
|
||||
? 'Copyright © 2022-2025 嘉兴太和信息技术有限责任公司 版权所有'
|
||||
.tr
|
||||
: "Copyright © 2022-2025 合肥眠花糖家具有限责任公司 版权所有".tr,
|
||||
: "Copyright © 2022-2025 合肥眠花糖家具有限责任公司 版权所有"
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color: themeController.currentColor.sc4,
|
||||
fontFamily: 'Inter',
|
||||
|
||||
@@ -1451,8 +1451,13 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
||||
// "/#/pages/agreement/agreement?type=2&hideHead=true",
|
||||
// btnName:
|
||||
// "同意并继续");
|
||||
// Get.toNamed(
|
||||
// "/userAgreementPage");
|
||||
Get.toNamed(
|
||||
"/userAgreementPage");
|
||||
"/userPolicyPageNew",
|
||||
arguments:
|
||||
getPrivacy(
|
||||
2));
|
||||
},
|
||||
child: Text(
|
||||
'《用户协议》'.tr,
|
||||
@@ -1498,8 +1503,13 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
||||
// "/#/pages/agreement/agreement?type=1&hideHead=true",
|
||||
// btnName:
|
||||
// "同意并继续");
|
||||
// Get.toNamed(
|
||||
// "/privacyPolicyPage");
|
||||
Get.toNamed(
|
||||
"/privacyPolicyPage");
|
||||
"/privacyPolicyPageNew",
|
||||
arguments:
|
||||
getPrivacy(
|
||||
1));
|
||||
},
|
||||
child: Text(
|
||||
'《隐私协议》'.tr,
|
||||
|
||||
120
lib/pages/policy/privacy_policy.dart
Normal file
120
lib/pages/policy/privacy_policy.dart
Normal file
@@ -0,0 +1,120 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
|
||||
import 'package:vbvs_app/controller/device/device_type_controller.dart';
|
||||
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
|
||||
class PrivacyPolicyNewPage extends StatefulWidget {
|
||||
var sleepUri;
|
||||
PrivacyPolicyNewPage({super.key, required this.sleepUri});
|
||||
|
||||
@override
|
||||
State<PrivacyPolicyNewPage> createState() => _PrivacyPolicyNewPageState();
|
||||
}
|
||||
|
||||
class _PrivacyPolicyNewPageState extends State<PrivacyPolicyNewPage> {
|
||||
GlobalController globalController = Get.find();
|
||||
UserInfoController userInfoController = Get.find();
|
||||
BlueteethBindController blueteethBindController = Get.find();
|
||||
ThemeController themeController = Get.find();
|
||||
DeviceTypeController deviceTypeController = Get.find();
|
||||
|
||||
ValueNotifier<bool> isPageLoading = ValueNotifier<bool>(true);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// 清理 ValueNotifier
|
||||
isPageLoading.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 背景透明
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
title: Container(
|
||||
width: double.infinity,
|
||||
height: 180.rpx,
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
/// 居中标题
|
||||
Text(
|
||||
'隐私协议'.tr,
|
||||
style: TextStyle(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: themeController.currentColor.sc3,
|
||||
letterSpacing: 0,
|
||||
fontSize: 30.rpx,
|
||||
),
|
||||
),
|
||||
|
||||
/// 左边返回按钮
|
||||
Positioned(
|
||||
left: 0,
|
||||
child: returnIconButtomNew(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
body: SafeArea(
|
||||
top: true,
|
||||
child: Stack(
|
||||
children: [
|
||||
InAppWebView(
|
||||
key: UniqueKey(),
|
||||
initialUrlRequest: URLRequest(url: WebUri(widget.sleepUri)),
|
||||
onLoadStart: (controller, url) {
|
||||
// 页面开始加载时显示加载指示器
|
||||
isPageLoading.value = true;
|
||||
},
|
||||
onLoadStop: (controller, url) {
|
||||
// 页面加载完成后隐藏加载指示器
|
||||
isPageLoading.value = false;
|
||||
},
|
||||
),
|
||||
ValueListenableBuilder<bool>(
|
||||
valueListenable: isPageLoading,
|
||||
builder: (context, isLoading, child) {
|
||||
return isLoading
|
||||
? Center(
|
||||
child: CircularProgressIndicator(), // 加载指示器
|
||||
)
|
||||
: SizedBox.shrink();
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
120
lib/pages/policy/user_policy.dart
Normal file
120
lib/pages/policy/user_policy.dart
Normal file
@@ -0,0 +1,120 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
|
||||
import 'package:vbvs_app/controller/device/device_type_controller.dart';
|
||||
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
|
||||
class UserPrivacyNewPage extends StatefulWidget {
|
||||
var sleepUri;
|
||||
UserPrivacyNewPage({super.key, required this.sleepUri});
|
||||
|
||||
@override
|
||||
State<UserPrivacyNewPage> createState() => _UserPrivacyNewPageState();
|
||||
}
|
||||
|
||||
class _UserPrivacyNewPageState extends State<UserPrivacyNewPage> {
|
||||
GlobalController globalController = Get.find();
|
||||
UserInfoController userInfoController = Get.find();
|
||||
BlueteethBindController blueteethBindController = Get.find();
|
||||
ThemeController themeController = Get.find();
|
||||
DeviceTypeController deviceTypeController = Get.find();
|
||||
|
||||
ValueNotifier<bool> isPageLoading = ValueNotifier<bool>(true);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// 清理 ValueNotifier
|
||||
isPageLoading.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 背景透明
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
title: Container(
|
||||
width: double.infinity,
|
||||
height: 180.rpx,
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
/// 居中标题
|
||||
Text(
|
||||
'用户协议'.tr,
|
||||
style: TextStyle(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: themeController.currentColor.sc3,
|
||||
letterSpacing: 0,
|
||||
fontSize: 30.rpx,
|
||||
),
|
||||
),
|
||||
|
||||
/// 左边返回按钮
|
||||
Positioned(
|
||||
left: 0,
|
||||
child: returnIconButtomNew(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
body: SafeArea(
|
||||
top: true,
|
||||
child: Stack(
|
||||
children: [
|
||||
InAppWebView(
|
||||
key: UniqueKey(),
|
||||
initialUrlRequest: URLRequest(url: WebUri(widget.sleepUri)),
|
||||
onLoadStart: (controller, url) {
|
||||
// 页面开始加载时显示加载指示器
|
||||
isPageLoading.value = true;
|
||||
},
|
||||
onLoadStop: (controller, url) {
|
||||
// 页面加载完成后隐藏加载指示器
|
||||
isPageLoading.value = false;
|
||||
},
|
||||
),
|
||||
ValueListenableBuilder<bool>(
|
||||
valueListenable: isPageLoading,
|
||||
builder: (context, isLoading, child) {
|
||||
return isLoading
|
||||
? Center(
|
||||
child: CircularProgressIndicator(), // 加载指示器
|
||||
)
|
||||
: SizedBox.shrink();
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -51,6 +51,8 @@ import 'package:vbvs_app/pages/mh_page/user/page/mht_login_page.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/page/rxhx_mht.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/page/update_password_page.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user_agreement_page.dart';
|
||||
import 'package:vbvs_app/pages/policy/privacy_policy.dart';
|
||||
import 'package:vbvs_app/pages/policy/user_policy.dart';
|
||||
import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart';
|
||||
import 'package:vbvs_app/pages/xiaoe/xiaoe_page.dart';
|
||||
import '../pages/mh_page/bluetooth.dart';
|
||||
@@ -132,6 +134,10 @@ var mhroutes = {
|
||||
"/auth_bind_tel": (context, {arguments}) => BindTelWidget(
|
||||
img: arguments,
|
||||
),
|
||||
"/userPolicyPageNew": (contxt, {arguments}) =>
|
||||
UserPrivacyNewPage(sleepUri: arguments),
|
||||
"/privacyPolicyPageNew": (contxt, {arguments}) =>
|
||||
PrivacyPolicyNewPage(sleepUri: arguments),
|
||||
};
|
||||
var mhonGenerateRoute = (RouteSettings settings) {
|
||||
final String? name = settings.name; // 获取路由名称,如 /news 或 /search
|
||||
|
||||
@@ -34,6 +34,8 @@ import 'package:vbvs_app/pages/main_bottom/mine_page.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/user/page/bind_tel_page.dart';
|
||||
import 'package:vbvs_app/pages/person/person_page.dart';
|
||||
import 'package:vbvs_app/pages/person/update_person_page.dart';
|
||||
import 'package:vbvs_app/pages/policy/privacy_policy.dart';
|
||||
import 'package:vbvs_app/pages/policy/user_policy.dart';
|
||||
import 'package:vbvs_app/pages/repair/apply_repair_page.dart';
|
||||
import 'package:vbvs_app/pages/repair/apply_repair_success.dart';
|
||||
import 'package:vbvs_app/pages/repair/repair_detail_page.dart';
|
||||
@@ -110,6 +112,10 @@ var routes = {
|
||||
"/auth_bind_tel": (context, {arguments}) => BindTelWidget(
|
||||
img: arguments,
|
||||
),
|
||||
"/userPolicyPageNew": (contxt, {arguments}) =>
|
||||
UserPrivacyNewPage(sleepUri: arguments),
|
||||
"/privacyPolicyPageNew": (contxt, {arguments}) =>
|
||||
PrivacyPolicyNewPage(sleepUri: arguments),
|
||||
};
|
||||
|
||||
var onGenerateRoute = (RouteSettings settings) {
|
||||
|
||||
Reference in New Issue
Block a user