This commit is contained in:
wyf
2025-05-22 08:56:27 +08:00
parent 489e907e00
commit 8a418c9c98
39 changed files with 5964 additions and 144 deletions

View File

@@ -0,0 +1,113 @@
// import 'package:ef/ef.dart';
// import 'package:flutter/material.dart';
// import 'package:vbvs_app/common/color/appConstants.dart';
// import 'package:vbvs_app/common/util/FitTool.dart';
// import 'package:vbvs_app/common/util/MyUtils.dart';
// import 'package:vbvs_app/component/tool/CustomCard.dart';
// import 'package:vbvs_app/controller/device/blueteeth_bind_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';
// // import 'package:easydevice/easydevice.dart';
// class AboutUsPage extends StatefulWidget {
// const AboutUsPage({super.key});
// @override
// State<AboutUsPage> createState() => _AboutUsPageState();
// }
// class _AboutUsPageState extends State<AboutUsPage> {
// GlobalController globalController = Get.find();
// UserInfoController userInfoController = Get.find();
// BlueteethBindController blueteethBindController = Get.find();
// ThemeController themeController = Get.find();
// @override
// void initState() {
// super.initState();
// }
// @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,
// // leading: returnIconButtom,
// title: Container(
// width: double.infinity,
// height: 180.rpx,
// child: Stack(
// alignment: Alignment.center,
// children: [
// /// 居中标题
// Text(
// '关于我们.标题'.tr,
// style: FlutterFlowTheme.of(context).bodyMedium.override(
// fontFamily: 'Readex Pro',
// color: themeController.currentColor.sc3,
// letterSpacing: 0,
// fontSize: 30.rpx,
// ),
// ),
// /// 左边返回按钮
// Positioned(
// left: 0,
// child: returnIconButtom,
// ),
// ],
// ),
// ),
// actions: [],
// centerTitle: false,
// ),
// body: SafeArea(
// top: true,
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 0, 30.rpx, 0),
// child: SingleChildScrollView(
// child: Column(
// mainAxisSize: MainAxisSize.max,
// children: [
// SizedBox(
// height: 30.rpx,
// ),
// Text(
// "企业简介\n\n\n嘉兴太和信息技术有限公司成立于2013年是一家以传感技术、室内定位技术和人工智能技术为基础的国家高新技术企业AI非接触生命体征传感器、高精度室内外一体定位平台、AI视频分析系统、射频消融等技术成果目前已经拥有30多类知识产权证书多项专利技术处于行业领先水平。\n\n\n我司研发的“非接触式生命体征传感器”是一款基于BCG信号原理通过检测人体心脏搏动引起的微小振动的传感器系统。传感器系统通过将人体微弱的心跳、呼吸信号转换未电信号进行相关生命体征分析。该传感器可为用户提供高灵敏度和精确度检测结构适用于需要非接触式、高分辨率的监测场景。该系统的硬件、软件及生产维护均由我司自主开发和管理拥有完全自主知识产权并已申请多项国家专利可依据用户需求定制个性化方案。\n\n\n该产品置于床垫下方使用全程完全无感。采集的体征数据通过睡眠健康管理平台实时显示用户的健康状态并对每次的睡眠报告进行系统化归档管理支持长期查询。一旦用户在使用过程中出现异常情况系统可及时做出判断并反馈预警信息和建议。目前心率监测的准确度可达97%以上呼吸监测的准确度可达95%以上,其他生理指标的监测精度也显著优于同类产品。该产品主体材质均采用符合国家标准的环保材料,部分硅胶配件达到食品级安全标准。产品尺寸可根据需求进行定制,适用于单人床、双人床、婴儿床、椅子及枕头等多种场景。\n\n\n睡眠健康管理平台通过实时预警与远程管理提升睡眠质量及慢病干预效率助力养老院、月子中心、康复中心、智能寝具等行业降本增效实现精准健康的科学管理。",
// style: TextStyle(
// fontSize: AppConstants().normal_text_fontSize,
// color: themeController.currentColor.sc3),
// ),
// ],
// ),
// ),
// ),
// ),
// ),
// ),
// ),
// );
// }
// }

View File

@@ -0,0 +1,118 @@
import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pdfview/flutter_pdfview.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/controller/setting/pdf/PrivacyPdfController.dart';
class PrivacySchemePage extends StatefulWidget {
PrivacySchemePage({super.key});
@override
State<PrivacySchemePage> createState() => _PrivacySchemePageState();
}
class _PrivacySchemePageState extends State<PrivacySchemePage> {
PrivacyPdfController pdfController = Get.find();
@override
void initState() {
super.initState();
String language = "zh_CN"; // 默认语言
if (languageController.selectLanguage?.value?.language_code != null) {
language = languageController.selectLanguage!.value!.language_code!;
}
pdfController.loadPdf(2,
"https://vsbst-api.he-info.cn/vsbs_sotrage/privacy-scheme/$language.pdf",
);
}
@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,
// leading: returnIconButtom,
title: Container(
width: double.infinity,
height: 180.rpx,
child: Stack(
alignment: Alignment.center,
children: [
/// 居中标题
Text(
'隐私协议'.tr,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
color: themeController.currentColor.sc3,
letterSpacing: 0,
fontSize: 30.rpx,
),
),
/// 左边返回按钮
Positioned(
left: 0,
child: returnIconButtom,
),
],
),
),
actions: [],
centerTitle: false,
),
body: SafeArea(
top: true,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 30.rpx),
child: Column(
children: [
Expanded(
child: Obx(() {
if (pdfController.localPdfPath.value == null) {
return Center(child: CircularProgressIndicator());
} else {
return PDFView(
filePath: pdfController.localPdfPath.value!,
autoSpacing: false,
enableSwipe: true,
swipeHorizontal: false,
pageSnap: true,
fitEachPage: true,
defaultPage: 0,
onRender: (pages) => print('PDF 渲染完成,共 $pages'),
onError: (error) => print('PDF 加载错误: $error'),
);
}
}),
),
],
),
),
),
),
),
),
);
}
}

View File

@@ -0,0 +1,119 @@
import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pdfview/flutter_pdfview.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/controller/setting/pdf/UserPdfController.dart';
class UserSchemePage extends StatefulWidget {
UserSchemePage({super.key});
@override
State<UserSchemePage> createState() => _UserSchemePageState();
}
class _UserSchemePageState extends State<UserSchemePage> {
UserPdfController pdfController = Get.find();
@override
void initState() {
super.initState();
String language = "zh_CN"; // 默认语言
if (languageController.selectLanguage?.value?.language_code != null) {
language = languageController.selectLanguage!.value!.language_code!;
}
pdfController.loadPdf(
1,
"https://vsbst-api.he-info.cn/vsbs_sotrage/user-scheme/$language.pdf",
);
}
@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,
// leading: returnIconButtom,
title: Container(
width: double.infinity,
height: 180.rpx,
child: Stack(
alignment: Alignment.center,
children: [
/// 居中标题
Text(
'用户协议'.tr,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
color: themeController.currentColor.sc3,
letterSpacing: 0,
fontSize: 30.rpx,
),
),
/// 左边返回按钮
Positioned(
left: 0,
child: returnIconButtom,
),
],
),
),
actions: [],
centerTitle: false,
),
body: SafeArea(
top: true,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 30.rpx),
child: Column(
children: [
Expanded(
child: Obx(() {
if (pdfController.localPdfPath.value == null) {
return Center(child: CircularProgressIndicator());
} else {
return PDFView(
filePath: pdfController.localPdfPath.value!,
autoSpacing: false,
enableSwipe: true,
swipeHorizontal: false,
pageSnap: true,
fitEachPage: true,
defaultPage: 0,
onRender: (pages) => print('PDF 渲染完成,共 $pages'),
onError: (error) => print('PDF 加载错误: $error'),
);
}
}),
),
],
),
),
),
),
),
),
);
}
}