更新ui
This commit is contained in:
@@ -36,8 +36,8 @@ if (flutterVersionName == null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
// namespace = "com.taihe.vbvs_app"
|
namespace = "com.taihe.vbvs_app"
|
||||||
namespace = "com.taihe.mianhuatang"
|
// namespace = "com.taihe.mianhuatang"
|
||||||
// compileSdk = flutter.compileSdkVersion
|
// compileSdk = flutter.compileSdkVersion
|
||||||
compileSdk = localProperties.getProperty('flutter.compileSdkVersion').toInteger()
|
compileSdk = localProperties.getProperty('flutter.compileSdkVersion').toInteger()
|
||||||
|
|
||||||
@@ -56,8 +56,8 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
// applicationId "com.taihe.vbvs_app"
|
applicationId "com.taihe.vbvs_app"
|
||||||
applicationId "com.taihe.mianhuatang"
|
// applicationId "com.taihe.mianhuatang"
|
||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// 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.
|
||||||
// minSdk = flutter.minSdkVersion
|
// minSdk = flutter.minSdkVersion
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.taihe.mianhuatang"
|
namespace = "com.taihe.vbvs_app"
|
||||||
compileSdk = flutter.compileSdkVersion
|
compileSdk = flutter.compileSdkVersion
|
||||||
ndkVersion = flutter.ndkVersion
|
ndkVersion = flutter.ndkVersion
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
applicationId = "com.taihe.mianhuatang"
|
applicationId = "com.taihe.vbvs_app"
|
||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||||
minSdk = flutter.minSdkVersion
|
minSdk = flutter.minSdkVersion
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<!-- New permissions in Android 13 -->
|
<!-- New permissions in Android 13 -->
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<!-- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> -->
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
@@ -43,12 +43,12 @@
|
|||||||
<application
|
<application
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launchermh"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="智慧眠花糖"
|
android:label="太和e护"
|
||||||
android:enableOnBackInvokedCallback="true"
|
android:enableOnBackInvokedCallback="true"
|
||||||
>
|
>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.taihe.mianhuatang.MainActivity"
|
android:name="com.taihe.vbvs_app.MainActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.taihe.mianhuatang
|
package com.taihe.vbvs_app
|
||||||
|
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"菜单": {
|
"菜单": {
|
||||||
"首页": "Home",
|
"首页": "Home",
|
||||||
"报告": "Report",
|
"报告": "Report",
|
||||||
"小e": "EChat",
|
"小e": "Hecaring",
|
||||||
"消息": "Messages",
|
"消息": "Messages",
|
||||||
"我的": "Mine"
|
"我的": "Mine"
|
||||||
},
|
},
|
||||||
@@ -517,14 +517,17 @@
|
|||||||
"绑定流程未走完是否继续": "Binding process is incomplete, continue?",
|
"绑定流程未走完是否继续": "Binding process is incomplete, continue?",
|
||||||
"继续": "Continue",
|
"继续": "Continue",
|
||||||
"下次再说": "deal next time",
|
"下次再说": "deal next time",
|
||||||
"请输入人员名称": "Please enter the person's name", "一": "Mon",
|
"请输入人员名称": "Please enter the person's name",
|
||||||
|
"一": "Mon",
|
||||||
"二": "Tue",
|
"二": "Tue",
|
||||||
"三": "Wed",
|
"三": "Wed",
|
||||||
"四": "Thu",
|
"四": "Thu",
|
||||||
"五": "Fri",
|
"五": "Fri",
|
||||||
"六": "Sat",
|
"六": "Sat",
|
||||||
"日": "Sun",
|
"日": "Sun",
|
||||||
"icp备案号": "ICP备案号:皖ICP备2024068219号-1A",
|
"icp备案号": "ICP备案号:浙ICP备14015115号-8A",
|
||||||
"公司信息": "Copyright © 2022-2025 Jiaxing Taihe Information Technology Co., Ltd. All rights reserved.",
|
"公司信息": "Copyright © 2022-2025 Jiaxing Taihe Information Technology Co., Ltd. All rights reserved.",
|
||||||
"当前属于": "Current"
|
"当前属于": "Current",
|
||||||
|
"绑定手机号码": "Bind mobile phone number",
|
||||||
|
"为了您的账号安全,验证手机号码后,可直接使用此手机号登录。": "For security, once your phone number is verified, you can log in with it directly."
|
||||||
}
|
}
|
||||||
@@ -524,15 +524,17 @@
|
|||||||
"否": "否",
|
"否": "否",
|
||||||
"男": "男",
|
"男": "男",
|
||||||
"女": "女",
|
"女": "女",
|
||||||
"可用WLAN": "可用WLAN",
|
"一": "一",
|
||||||
"请输入人员名称": "请输入人员名称", "一": "一",
|
|
||||||
"二": "二",
|
"二": "二",
|
||||||
"三": "三",
|
"三": "三",
|
||||||
"四": "四",
|
"四": "四",
|
||||||
"五": "五",
|
"五": "五",
|
||||||
"六": "六",
|
"六": "六",
|
||||||
"日": "日",
|
"日": "日",
|
||||||
"可用WLAN": "可用WLAN","请输入人员名称":"请输入人员名称",
|
"可用WLAN": "可用WLAN",
|
||||||
"icp备案号":"ICP备案号:皖ICP备2024068219号-1A",
|
"请输入人员名称": "请输入人员名称",
|
||||||
"公司信息":"Copyright © 2022-2025 嘉兴太和信息技术有限责任公司 版权所有"
|
"icp备案号": "ICP备案号:浙ICP备14015115号-8A",
|
||||||
|
"公司信息": "Copyright © 2022-2025 嘉兴太和信息技术有限责任公司 版权所有",
|
||||||
|
"绑定手机号码": "绑定手机号码",
|
||||||
|
"为了您的账号安全,验证手机号码后,可直接使用此手机号登录。":"为了您的账号安全,验证手机号码后,可直接使用此手机号登录。"
|
||||||
}
|
}
|
||||||
@@ -522,7 +522,9 @@
|
|||||||
"五": "五",
|
"五": "五",
|
||||||
"六": "六",
|
"六": "六",
|
||||||
"日": "日",
|
"日": "日",
|
||||||
"icp备案号": "ICP备案号:皖ICP备2024068219号-1A",
|
"icp备案号": "ICP备案号:浙ICP备14015115号-8A",
|
||||||
"公司信息":"Copyright © 2022-2025 嘉興太和信息技術有限責任公司 版權所有",
|
"公司信息": "Copyright © 2022-2025 嘉興太和信息技術有限責任公司 版權所有",
|
||||||
"当前属于": "當前"
|
"当前属于": "當前",
|
||||||
|
"绑定手机号码": "綁定手機號碼",
|
||||||
|
"为了您的账号安全,验证手机号码后,可直接使用此手机号登录。": "為了您的帳號安全,驗證手機號碼後,可直接使用此手機號登入。"
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
class ServiceConstant {
|
class ServiceConstant {
|
||||||
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
|
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
|
||||||
static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
// static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
||||||
// static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
|
// static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
|
||||||
// static const String baseHost = "vsbst-api.he-info.cn";//服务地址
|
static const String baseHost = "vsbst-api.he-info.cn";//服务地址
|
||||||
// static const String service_address = "http://$baseHost";
|
// static const String service_address = "http://$baseHost";
|
||||||
static const String service_address = "https://$baseHost";
|
static const String service_address = "https://$baseHost";
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class UserInfoModel {
|
|||||||
|
|
||||||
// String? nickname; //修改昵称
|
// String? nickname; //修改昵称
|
||||||
// String? avatar; //修改头像地址
|
// String? avatar; //修改头像地址
|
||||||
|
bool isProgrammaticPop = false; // 标记变量
|
||||||
|
|
||||||
UserInfoModel();
|
UserInfoModel();
|
||||||
static UserInfoModel fromJson(Map<String, dynamic> json) =>
|
static UserInfoModel fromJson(Map<String, dynamic> json) =>
|
||||||
|
|||||||
@@ -187,12 +187,12 @@ Future<void> initWX() async {
|
|||||||
Fluwx fluwx = Fluwx();
|
Fluwx fluwx = Fluwx();
|
||||||
fluwx.registerApi(
|
fluwx.registerApi(
|
||||||
//请填写自己的微信appid
|
//请填写自己的微信appid
|
||||||
// appId: "wxeb2688220799e2c5", //太和
|
appId: "wxeb2688220799e2c5", //太和
|
||||||
appId: "wx929c548fea6af9c7", //眠花糖
|
// appId: "wx929c548fea6af9c7", //眠花糖
|
||||||
doOnAndroid: true,
|
doOnAndroid: true,
|
||||||
doOnIOS: true,
|
doOnIOS: true,
|
||||||
// universalLink: "https://app.he-info.com/theh/",
|
universalLink: "https://app.he-info.com/theh/",
|
||||||
universalLink: "https://zhmht.swes.com.cn/app/",
|
// universalLink: "https://zhmht.swes.com.cn/app/",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
|||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/controller/device/device_calibration_controller.dart';
|
import 'package:vbvs_app/controller/device/device_calibration_controller.dart';
|
||||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||||
|
import 'package:vbvs_app/pages/policy/privacy_policy.dart';
|
||||||
|
|
||||||
getOnePicker(BuildContext context, List arr, int checkIndex,
|
getOnePicker(BuildContext context, List arr, int checkIndex,
|
||||||
Function onSelectedItemChanged,
|
Function onSelectedItemChanged,
|
||||||
@@ -1494,6 +1495,101 @@ void showSleepCalendarBottomSheet({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Future showCustomConfirmOfWebViewDialog(
|
||||||
|
// BuildContext context, String name, String webviewUrl,
|
||||||
|
// {String btnName = "确定",
|
||||||
|
// bool showCancel = false,
|
||||||
|
// String cancelName = "取消",
|
||||||
|
// ConfirmDialogIcon icon = ConfirmDialogIcon.warn}) async {
|
||||||
|
// return showDialog(
|
||||||
|
// context: context,
|
||||||
|
// barrierDismissible: true,
|
||||||
|
// builder: (BuildContext context) {
|
||||||
|
// return Dialog(
|
||||||
|
// backgroundColor: Colors.white,
|
||||||
|
// insetPadding: EdgeInsets.all(0),
|
||||||
|
// shape: RoundedRectangleBorder(
|
||||||
|
// borderRadius: BorderRadius.circular(10.0),
|
||||||
|
// ),
|
||||||
|
// child: Container(
|
||||||
|
// width: 640.rpx,
|
||||||
|
// padding: EdgeInsets.fromLTRB(22.rpx, 0, 20.rpx, 10.rpx),
|
||||||
|
// child: Column(
|
||||||
|
// mainAxisSize: MainAxisSize.min,
|
||||||
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
// children: <Widget>[
|
||||||
|
// Container(
|
||||||
|
// alignment: Alignment.centerRight,
|
||||||
|
// child: closeIcon,
|
||||||
|
// ),
|
||||||
|
// SizedBox(height: 40.rpx),
|
||||||
|
// Container(
|
||||||
|
// height: MediaQuery.of(context).size.height * 0.4,
|
||||||
|
// child: PrivacyPolicyNewPage(
|
||||||
|
// sleepUri: webviewUrl,
|
||||||
|
// showAppbar: false,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// SizedBox(height: 20.rpx),
|
||||||
|
// Row(
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
// children: [
|
||||||
|
// if (showCancel)
|
||||||
|
// Container(
|
||||||
|
// margin: EdgeInsets.only(
|
||||||
|
// top: 50.rpx, bottom: 40.rpx, right: 100.rpx),
|
||||||
|
// alignment: Alignment.center,
|
||||||
|
// child: InkWell(
|
||||||
|
// onTap: () {
|
||||||
|
// Get.back();
|
||||||
|
// },
|
||||||
|
// child: Container(
|
||||||
|
// width: 200.rpx,
|
||||||
|
// height: 60.rpx,
|
||||||
|
// alignment: Alignment.center,
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// borderRadius: BorderRadius.circular(6),
|
||||||
|
// border: Border.all(color: Colors.black12)),
|
||||||
|
// child: Text(
|
||||||
|
// '$cancelName',
|
||||||
|
// style: TextStyle(
|
||||||
|
// color: Colors.black, fontSize: 30.rpx),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// Container(
|
||||||
|
// margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx),
|
||||||
|
// alignment: Alignment.center,
|
||||||
|
// child: InkWell(
|
||||||
|
// onTap: () {
|
||||||
|
// Get.back(result: "confirm");
|
||||||
|
// },
|
||||||
|
// child: Container(
|
||||||
|
// width: 200.rpx,
|
||||||
|
// height: 60.rpx,
|
||||||
|
// alignment: Alignment.center,
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// borderRadius: BorderRadius.circular(6),
|
||||||
|
// color: stringToColor("#D3B684")),
|
||||||
|
// child: Text(
|
||||||
|
// '$btnName',
|
||||||
|
// style:
|
||||||
|
// TextStyle(color: Colors.white, fontSize: 30.rpx),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// )
|
||||||
|
// ],
|
||||||
|
// )
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
Future showCustomConfirmOfWebViewDialog(
|
Future showCustomConfirmOfWebViewDialog(
|
||||||
BuildContext context, String name, String webviewUrl,
|
BuildContext context, String name, String webviewUrl,
|
||||||
{String btnName = "确定",
|
{String btnName = "确定",
|
||||||
@@ -1504,29 +1600,33 @@ Future showCustomConfirmOfWebViewDialog(
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: true,
|
barrierDismissible: true,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
|
final screenSize = MediaQuery.of(context).size;
|
||||||
return Dialog(
|
return Dialog(
|
||||||
insetPadding: EdgeInsets.all(0),
|
backgroundColor: Colors.white,
|
||||||
|
insetPadding: EdgeInsets.zero, // 移除默认的内边距
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(10.0),
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
),
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 640.rpx,
|
width: screenSize.width, // 使用屏幕宽度
|
||||||
|
height: screenSize.height, // 使用屏幕高度
|
||||||
padding: EdgeInsets.fromLTRB(22.rpx, 0, 20.rpx, 10.rpx),
|
padding: EdgeInsets.fromLTRB(22.rpx, 0, 20.rpx, 10.rpx),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Container(
|
|
||||||
alignment: Alignment.centerRight,
|
|
||||||
child: closeIcon,
|
|
||||||
),
|
|
||||||
SizedBox(height: 40.rpx),
|
|
||||||
// Container(
|
// Container(
|
||||||
// height: MediaQuery.of(context).size.height * 0.4,
|
// alignment: Alignment.centerRight,
|
||||||
// child: Shopping(
|
// child: closeIcon,
|
||||||
// url: webviewUrl,
|
|
||||||
// ),
|
|
||||||
// ),
|
// ),
|
||||||
|
// SizedBox(height: 40.rpx),
|
||||||
|
Expanded(
|
||||||
|
// 使用 Expanded 让 WebView 占据剩余空间
|
||||||
|
child: PrivacyPolicyNewPage(
|
||||||
|
sleepUri: webviewUrl,
|
||||||
|
showAppbar: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
SizedBox(height: 20.rpx),
|
SizedBox(height: 20.rpx),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@@ -1555,24 +1655,51 @@ Future showCustomConfirmOfWebViewDialog(
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
// Container(
|
||||||
margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx),
|
// margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx),
|
||||||
alignment: Alignment.center,
|
// alignment: Alignment.center,
|
||||||
child: InkWell(
|
// child: InkWell(
|
||||||
onTap: () {
|
// onTap: () {
|
||||||
Get.back(result: "confirm");
|
// Get.back(result: "confirm");
|
||||||
},
|
// },
|
||||||
child: Container(
|
// child: Container(
|
||||||
width: 200.rpx,
|
// width: 200.rpx,
|
||||||
height: 60.rpx,
|
// height: 60.rpx,
|
||||||
alignment: Alignment.center,
|
// alignment: Alignment.center,
|
||||||
decoration: BoxDecoration(
|
// decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(6),
|
// borderRadius: BorderRadius.circular(6),
|
||||||
color: stringToColor("#D3B684")),
|
// color: stringToColor("#D3B684")),
|
||||||
child: Text(
|
// child: Text(
|
||||||
'$btnName',
|
// '$btnName',
|
||||||
style:
|
// style:
|
||||||
TextStyle(color: Colors.white, fontSize: 30.rpx),
|
// TextStyle(color: Colors.white, fontSize: 30.rpx),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// )
|
||||||
|
CustomCard(
|
||||||
|
borderRadius: 12.rpx, // 圆角半径
|
||||||
|
onTap: () {
|
||||||
|
Get.back(result: "confirm");
|
||||||
|
},
|
||||||
|
colors: AppConstants().mhtNormalButton, // 渐变背景
|
||||||
|
gradientDirection: GradientDirection.horizontal,
|
||||||
|
child: Container(
|
||||||
|
// width: MediaQuery.sizeOf(context).width * 0.5, // 宽度占屏幕一半
|
||||||
|
// height: MediaQuery.sizeOf(context).height * 0.055,
|
||||||
|
constraints: BoxConstraints(
|
||||||
|
minWidth: 200.rpx,
|
||||||
|
minHeight: 60.rpx,
|
||||||
|
),
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: Text(
|
||||||
|
'$btnName',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white, // 文字颜色
|
||||||
|
fontFamily: 'Inter',
|
||||||
|
fontSize: AppConstants().normal_text_fontSize, // 字体大小
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
letterSpacing: 0.0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:vbvs_app/common/util/FitTool.dart';
|
|||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
|
import 'package:vbvs_app/controller/login/login_controller.dart';
|
||||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
@@ -551,7 +552,7 @@ class THBindTelWidget extends GetView<AuthBindTelController> {
|
|||||||
UserInfoController userInfoController =
|
UserInfoController userInfoController =
|
||||||
Get.find();
|
Get.find();
|
||||||
await userInfoController.getUserInfo();
|
await userInfoController.getUserInfo();
|
||||||
MHTLoginController loginController =
|
LoginController loginController =
|
||||||
Get.find();
|
Get.find();
|
||||||
//TODO 微信回调监听操作全部跳转页面前成功以后移除监听,防止重复监听,其他方式登录成功也需要移出监听
|
//TODO 微信回调监听操作全部跳转页面前成功以后移除监听,防止重复监听,其他方式登录成功也需要移出监听
|
||||||
loginController.fluwxCancelable?.cancel();
|
loginController.fluwxCancelable?.cancel();
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import 'dart:io';
|
|||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:get_storage/get_storage.dart';
|
||||||
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
import 'package:vbvs_app/common/util/CommonVariables.dart';
|
import 'package:vbvs_app/common/util/CommonVariables.dart';
|
||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
||||||
@@ -12,6 +14,7 @@ import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
|
|||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/model/WebSocketMessage.dart';
|
import 'package:vbvs_app/model/WebSocketMessage.dart';
|
||||||
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
|
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
|
||||||
|
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/MattressControl.dart';
|
import 'package:vbvs_app/pages/mh_page/MattressControl.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart';
|
||||||
@@ -122,8 +125,30 @@ class _HomePageState extends State<MainPageBBottomChange>
|
|||||||
}
|
}
|
||||||
|
|
||||||
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
|
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
|
||||||
|
final getStorage = GetStorage();
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
// Future.delayed(const Duration(milliseconds: 0), () {
|
||||||
|
// String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog");
|
||||||
|
// if (isShowYingShiDialog == null || isShowYingShiDialog != "true") {
|
||||||
|
// String btnName = "同意".tr;
|
||||||
|
// String cancelName = "取消".tr;
|
||||||
|
// if (Platform.isAndroid) {
|
||||||
|
// cancelName = "退出".tr;
|
||||||
|
// }
|
||||||
|
// showCustomConfirmOfWebViewDialog(context, "隐私协议".tr, getPrivacy(1),
|
||||||
|
// btnName: btnName, showCancel: true, cancelName: cancelName)
|
||||||
|
// .then((e) {
|
||||||
|
// if (e == "confirm") {
|
||||||
|
// getStorage.write("isShowYingShiDialog", "true");
|
||||||
|
// } else {
|
||||||
|
// if (cancelName == "退出") {
|
||||||
|
// SystemNavigator.pop();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
final currentLanguage =
|
final currentLanguage =
|
||||||
languageController.selectLanguage.value; // 监听此变量变化
|
languageController.selectLanguage.value; // 监听此变量变化
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:ef/ef.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
import 'package:get_storage/get_storage.dart';
|
||||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
@@ -14,6 +15,7 @@ import 'package:vbvs_app/controller/message/message_controller.dart';
|
|||||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/enum/LoginStatus.dart';
|
import 'package:vbvs_app/enum/LoginStatus.dart';
|
||||||
|
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||||
import 'package:vbvs_app/pages/main_bottom/e_page.dart';
|
import 'package:vbvs_app/pages/main_bottom/e_page.dart';
|
||||||
import 'package:vbvs_app/pages/main_bottom/home_page.dart';
|
import 'package:vbvs_app/pages/main_bottom/home_page.dart';
|
||||||
import 'package:vbvs_app/pages/main_bottom/message_page.dart';
|
import 'package:vbvs_app/pages/main_bottom/message_page.dart';
|
||||||
@@ -75,16 +77,56 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
|||||||
];
|
];
|
||||||
|
|
||||||
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
|
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
|
||||||
|
final getStorage = GetStorage();
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
Future.delayed(const Duration(milliseconds: 0), () {
|
||||||
|
String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog");
|
||||||
|
if (isShowYingShiDialog == null || isShowYingShiDialog != "true") {
|
||||||
|
String btnName = "同意".tr;
|
||||||
|
String cancelName = "取消".tr;
|
||||||
|
if (Platform.isAndroid) {
|
||||||
|
cancelName = "退出".tr;
|
||||||
|
}
|
||||||
|
showCustomConfirmOfWebViewDialog(context, "隐私协议".tr, getPrivacy(1),
|
||||||
|
btnName: btnName, showCancel: true, cancelName: cancelName)
|
||||||
|
.then((e) {
|
||||||
|
if (e == "confirm") {
|
||||||
|
getStorage.write("isShowYingShiDialog", "true");
|
||||||
|
} else {
|
||||||
|
if (cancelName == "退出") {
|
||||||
|
SystemNavigator.pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return PopScope(
|
return PopScope(
|
||||||
canPop: false,
|
canPop: false,
|
||||||
|
|
||||||
|
// onPopInvokedWithResult: (disposition, result) async {
|
||||||
|
// if (Platform.isAndroid) {
|
||||||
|
// var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
||||||
|
// if (flag) {
|
||||||
|
// SystemNavigator.pop();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
onPopInvokedWithResult: (disposition, result) async {
|
onPopInvokedWithResult: (disposition, result) async {
|
||||||
|
UserInfoController userInfoController = Get.find();
|
||||||
|
if (userInfoController.model.isProgrammaticPop) {
|
||||||
|
// 如果是程序触发,重置标记并忽略
|
||||||
|
userInfoController.model.isProgrammaticPop = false;
|
||||||
|
return; // 阻止处理
|
||||||
|
}
|
||||||
|
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
// var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
||||||
if (flag) {
|
// if (flag) {
|
||||||
SystemNavigator.pop();
|
// SystemNavigator.pop();
|
||||||
}
|
// }
|
||||||
|
Get.back();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Obx(
|
child: Obx(
|
||||||
@@ -170,7 +212,6 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
|||||||
controller.updateAll();
|
controller.updateAll();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
items: [
|
items: [
|
||||||
getBottomNavigationBarItem("assets/img/menu/home.svg",
|
getBottomNavigationBarItem("assets/img/menu/home.svg",
|
||||||
"assets/img/menu/n_home.svg", "菜单.首页".tr),
|
"assets/img/menu/n_home.svg", "菜单.首页".tr),
|
||||||
|
|||||||
@@ -367,6 +367,7 @@ class _MHTBindDeviceSuccessState extends State<MHTBindDeviceSuccess> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -423,6 +423,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
sleepReportController.model.type =
|
||||||
|
1;
|
||||||
showSleepCalendarBottomSheet(
|
showSleepCalendarBottomSheet(
|
||||||
type: sleepReportController
|
type: sleepReportController
|
||||||
.model.type,
|
.model.type,
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
|||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
|
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_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/mht_register_controller.dart';
|
||||||
|
|
||||||
@@ -119,17 +121,6 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
MHTRegisterController registerController = Get.find();
|
MHTRegisterController registerController = Get.find();
|
||||||
bool isProgrammaticPop = false; // 标记变量
|
|
||||||
Future.delayed(const Duration(milliseconds: 300), () {
|
|
||||||
String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog");
|
|
||||||
if (isShowYingShiDialog == null || isShowYingShiDialog != "true") {
|
|
||||||
String btnName = "同意".tr;
|
|
||||||
String cancelName = "取消".tr;
|
|
||||||
if (Platform.isAndroid) {
|
|
||||||
cancelName = "退出".tr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return LayoutBuilder(builder: (context, cc) {
|
return LayoutBuilder(builder: (context, cc) {
|
||||||
bodysize = cc;
|
bodysize = cc;
|
||||||
@@ -176,21 +167,21 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
|||||||
),
|
),
|
||||||
body: PopScope(
|
body: PopScope(
|
||||||
canPop: false,
|
canPop: false,
|
||||||
onPopInvokedWithResult: (disposition, result) async {
|
// onPopInvokedWithResult: (disposition, result) async {
|
||||||
if (isProgrammaticPop) {
|
// if (isProgrammaticPop) {
|
||||||
// 如果是程序触发,重置标记并忽略
|
// // 如果是程序触发,重置标记并忽略
|
||||||
isProgrammaticPop = false;
|
// isProgrammaticPop = false;
|
||||||
return; // 阻止处理
|
// return; // 阻止处理
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (Platform.isAndroid) {
|
// if (Platform.isAndroid) {
|
||||||
// var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
// // var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
||||||
// if (flag) {
|
// // if (flag) {
|
||||||
// SystemNavigator.pop();
|
// // SystemNavigator.pop();
|
||||||
// }
|
// // }
|
||||||
Get.back();
|
// Get.back();
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: AlignmentDirectional(0, 0),
|
alignment: AlignmentDirectional(0, 0),
|
||||||
child: Container(
|
child: Container(
|
||||||
@@ -1258,8 +1249,10 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
|||||||
controller.fluwxCancelable
|
controller.fluwxCancelable
|
||||||
?.cancel();
|
?.cancel();
|
||||||
Checknetwork.subscription?.cancel();
|
Checknetwork.subscription?.cancel();
|
||||||
|
UserInfoController
|
||||||
isProgrammaticPop = true;
|
userInfoController = Get.find();
|
||||||
|
userInfoController
|
||||||
|
.model.isProgrammaticPop = true;
|
||||||
MHTLoginController loginController =
|
MHTLoginController loginController =
|
||||||
Get.find();
|
Get.find();
|
||||||
loginController.model.account =
|
loginController.model.account =
|
||||||
@@ -1445,14 +1438,6 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
|||||||
0, 0),
|
0, 0),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// showCustomConfirmOfWebViewDialog(
|
|
||||||
// context,
|
|
||||||
// "用户协议",
|
|
||||||
// "/#/pages/agreement/agreement?type=2&hideHead=true",
|
|
||||||
// btnName:
|
|
||||||
// "同意并继续");
|
|
||||||
// Get.toNamed(
|
|
||||||
// "/userAgreementPage");
|
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
"/userPolicyPageNew",
|
"/userPolicyPageNew",
|
||||||
arguments:
|
arguments:
|
||||||
@@ -1497,14 +1482,6 @@ class MHTLoginPage extends GetView<MHTLoginController> {
|
|||||||
0, 0),
|
0, 0),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// showCustomConfirmOfWebViewDialog(
|
|
||||||
// context,
|
|
||||||
// "隐私协议",
|
|
||||||
// "/#/pages/agreement/agreement?type=1&hideHead=true",
|
|
||||||
// btnName:
|
|
||||||
// "同意并继续");
|
|
||||||
// Get.toNamed(
|
|
||||||
// "/privacyPolicyPage");
|
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
"/privacyPolicyPageNew",
|
"/privacyPolicyPageNew",
|
||||||
arguments:
|
arguments:
|
||||||
|
|||||||
@@ -948,13 +948,7 @@ class RegisterPage extends GetView<MHTRegisterController> {
|
|||||||
AlignmentDirectional(
|
AlignmentDirectional(
|
||||||
0, 0),
|
0, 0),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// showCustomConfirmOfWebViewDialog(
|
|
||||||
// context,
|
|
||||||
// "用户协议",
|
|
||||||
// "/#/pages/agreement/agreement?type=2&hideHead=true");
|
|
||||||
// Get.toNamed(
|
|
||||||
// "/userAgreementPage");
|
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
"/userPolicyPageNew",
|
"/userPolicyPageNew",
|
||||||
arguments:
|
arguments:
|
||||||
@@ -995,13 +989,7 @@ class RegisterPage extends GetView<MHTRegisterController> {
|
|||||||
AlignmentDirectional(
|
AlignmentDirectional(
|
||||||
0, 0),
|
0, 0),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// showCustomConfirmOfWebViewDialog(
|
|
||||||
// context,
|
|
||||||
// "隐私协议",
|
|
||||||
// "/#/pages/agreement/agreement?type=1&hideHead=true");
|
|
||||||
// Get.toNamed(
|
|
||||||
// "/privacyPolicyPage");
|
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
"/privacyPolicyPageNew",
|
"/privacyPolicyPageNew",
|
||||||
arguments:
|
arguments:
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ import 'package:vbvs_app/controller/user_info_controller.dart';
|
|||||||
|
|
||||||
class PrivacyPolicyNewPage extends StatefulWidget {
|
class PrivacyPolicyNewPage extends StatefulWidget {
|
||||||
var sleepUri;
|
var sleepUri;
|
||||||
PrivacyPolicyNewPage({super.key, required this.sleepUri});
|
bool showAppbar;
|
||||||
|
PrivacyPolicyNewPage(
|
||||||
|
{super.key, required this.sleepUri, this.showAppbar = true});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<PrivacyPolicyNewPage> createState() => _PrivacyPolicyNewPageState();
|
State<PrivacyPolicyNewPage> createState() => _PrivacyPolicyNewPageState();
|
||||||
@@ -39,7 +41,7 @@ class _PrivacyPolicyNewPageState extends State<PrivacyPolicyNewPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return LayoutBuilder(
|
return LayoutBuilder(
|
||||||
builder: (context, bodySize) => GestureDetector(
|
builder: (context, bodySize) => GestureDetector(
|
||||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||||
@@ -53,37 +55,40 @@ class _PrivacyPolicyNewPageState extends State<PrivacyPolicyNewPage> {
|
|||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: Colors.transparent, // 背景透明
|
backgroundColor: Colors.transparent, // 背景透明
|
||||||
appBar: AppBar(
|
appBar: (widget.showAppbar != null && widget.showAppbar == false)
|
||||||
backgroundColor: themeController.currentColor.sc17,
|
? null
|
||||||
automaticallyImplyLeading: false,
|
: AppBar(
|
||||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
backgroundColor: themeController.currentColor.sc17,
|
||||||
titleSpacing: 0,
|
automaticallyImplyLeading: false,
|
||||||
title: Container(
|
iconTheme:
|
||||||
width: double.infinity,
|
IconThemeData(color: themeController.currentColor.sc3),
|
||||||
height: 180.rpx,
|
titleSpacing: 0,
|
||||||
child: Stack(
|
title: Container(
|
||||||
alignment: Alignment.center,
|
width: double.infinity,
|
||||||
children: [
|
height: 180.rpx,
|
||||||
/// 居中标题
|
child: Stack(
|
||||||
Text(
|
alignment: Alignment.center,
|
||||||
'隐私协议'.tr,
|
children: [
|
||||||
style: TextStyle(
|
/// 居中标题
|
||||||
fontFamily: 'Readex Pro',
|
Text(
|
||||||
color: themeController.currentColor.sc3,
|
'隐私协议'.tr,
|
||||||
letterSpacing: 0,
|
style: TextStyle(
|
||||||
fontSize: 30.rpx,
|
fontFamily: 'Readex Pro',
|
||||||
|
color: themeController.currentColor.sc3,
|
||||||
|
letterSpacing: 0,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
/// 左边返回按钮
|
||||||
|
Positioned(
|
||||||
|
left: 0,
|
||||||
|
child: returnIconButtomNew(),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
/// 左边返回按钮
|
|
||||||
Positioned(
|
|
||||||
left: 0,
|
|
||||||
child: returnIconButtomNew(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
top: true,
|
top: true,
|
||||||
child: Stack(
|
child: Stack(
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import flutter_blue_plus
|
|||||||
import flutter_inappwebview_macos
|
import flutter_inappwebview_macos
|
||||||
import flutter_localization
|
import flutter_localization
|
||||||
import geolocator_apple
|
import geolocator_apple
|
||||||
import google_sign_in_ios
|
|
||||||
import mobile_scanner
|
import mobile_scanner
|
||||||
import package_info_plus
|
import package_info_plus
|
||||||
import path_provider_foundation
|
import path_provider_foundation
|
||||||
@@ -30,7 +29,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||||||
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
||||||
FlutterLocalizationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalizationPlugin"))
|
FlutterLocalizationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalizationPlugin"))
|
||||||
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
|
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
|
||||||
FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))
|
|
||||||
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
|
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
|
||||||
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
|
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
|
||||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
|
|||||||
54
pubspec.lock
54
pubspec.lock
@@ -591,14 +591,6 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.34.5"
|
version: "1.34.5"
|
||||||
flutter_bmflocation:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: flutter_bmflocation
|
|
||||||
sha256: "9d5e8cd8df4a50f41bf167ff7fb3e285e372413935c03fbae3862e58cd7926cd"
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "3.8.0"
|
|
||||||
flutter_cache_manager:
|
flutter_cache_manager:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -800,13 +792,13 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "5.5.2"
|
version: "5.5.2"
|
||||||
font_awesome_flutter:
|
font_awesome_flutter:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: font_awesome_flutter
|
name: font_awesome_flutter
|
||||||
sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a
|
sha256: "5fb789145cae1f4c3245c58b3f8fb287d055c26323879eab57a7bf0cfd1e45f3"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.8.0"
|
version: "10.5.0"
|
||||||
from_css_color:
|
from_css_color:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -951,46 +943,6 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.3+1"
|
version: "0.3.3+1"
|
||||||
google_sign_in:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: google_sign_in
|
|
||||||
sha256: fad6ddc80c427b0bba705f2116204ce1173e09cf299f85e053d57a55e5b2dd56
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "6.2.2"
|
|
||||||
google_sign_in_android:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: google_sign_in_android
|
|
||||||
sha256: "7af72e5502c313865c729223b60e8ae7bce0a1011b250c24edcf30d3d7032748"
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "6.1.35"
|
|
||||||
google_sign_in_ios:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: google_sign_in_ios
|
|
||||||
sha256: "102005f498ce18442e7158f6791033bbc15ad2dcc0afa4cf4752e2722a516c96"
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "5.9.0"
|
|
||||||
google_sign_in_platform_interface:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: google_sign_in_platform_interface
|
|
||||||
sha256: "5f6f79cf139c197261adb6ac024577518ae48fdff8e53205c5373b5f6430a8aa"
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "2.5.0"
|
|
||||||
google_sign_in_web:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: google_sign_in_web
|
|
||||||
sha256: "460547beb4962b7623ac0fb8122d6b8268c951cf0b646dd150d60498430e4ded"
|
|
||||||
url: "https://pub.flutter-io.cn"
|
|
||||||
source: hosted
|
|
||||||
version: "0.12.4+4"
|
|
||||||
googleapis_auth:
|
googleapis_auth:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ environment:
|
|||||||
sdk: ^3.5.4
|
sdk: ^3.5.4
|
||||||
|
|
||||||
fluwx:
|
fluwx:
|
||||||
app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id.眠花糖
|
# app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id.眠花糖
|
||||||
# app_id: 'wxeb2688220799e2c5' #填写自己的 WeChat app id.太和e护
|
app_id: 'wxeb2688220799e2c5' #填写自己的 WeChat app id.太和e护
|
||||||
debug_logging: false # Logging in debug mode.
|
debug_logging: false # Logging in debug mode.
|
||||||
android:
|
android:
|
||||||
# interrupt_wx_request: true # Defaults to true.
|
# interrupt_wx_request: true # Defaults to true.
|
||||||
|
|||||||
@@ -90,12 +90,12 @@ BEGIN
|
|||||||
BLOCK "040904e4"
|
BLOCK "040904e4"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "com.example" "\0"
|
VALUE "CompanyName", "com.example" "\0"
|
||||||
VALUE "FileDescription", "com.taihe.mianhuatang" "\0"
|
VALUE "FileDescription", "com.taihe.vbvs_app" "\0"
|
||||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||||
VALUE "InternalName", "com.taihe.mianhuatang" "\0"
|
VALUE "InternalName", "com.taihe.vbvs_app" "\0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0"
|
VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0"
|
||||||
VALUE "OriginalFilename", "com.taihe.mianhuatang.exe" "\0"
|
VALUE "OriginalFilename", "com.taihe.vbvs_app.exe" "\0"
|
||||||
VALUE "ProductName", "com.taihe.mianhuatang" "\0"
|
VALUE "ProductName", "com.taihe.vbvs_app" "\0"
|
||||||
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|||||||
Reference in New Issue
Block a user