使用说明和产品介绍完成
BIN
assets/images/adjuctvec.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/alert1.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
assets/images/alert2.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
assets/images/alert3.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
assets/images/alert4.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
assets/images/alert5.png
Normal file
|
After Width: | Height: | Size: 532 KiB |
BIN
assets/images/check0.png
Normal file
|
After Width: | Height: | Size: 786 KiB |
BIN
assets/images/check1.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
assets/images/check2.png
Normal file
|
After Width: | Height: | Size: 616 KiB |
BIN
assets/images/check3.png
Normal file
|
After Width: | Height: | Size: 763 KiB |
BIN
assets/images/check4.png
Normal file
|
After Width: | Height: | Size: 632 KiB |
BIN
assets/images/check5.png
Normal file
|
After Width: | Height: | Size: 950 KiB |
BIN
assets/images/check6.png
Normal file
|
After Width: | Height: | Size: 491 KiB |
BIN
assets/images/check7.png
Normal file
|
After Width: | Height: | Size: 335 KiB |
BIN
assets/images/check8.png
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
assets/images/check9.png
Normal file
|
After Width: | Height: | Size: 296 KiB |
BIN
assets/images/control.png
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
assets/images/controlbattery.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
assets/images/dipan.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/images/fadongji.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
assets/images/modelchange.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
assets/images/operationwalk1.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
assets/images/operationwalk2.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
assets/images/starpoint1.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
assets/images/starpoint2.png
Normal file
|
After Width: | Height: | Size: 531 KiB |
BIN
assets/images/startpoint.png
Normal file
|
After Width: | Height: | Size: 236 KiB |
BIN
assets/images/stopbutton.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
@@ -15,6 +15,7 @@ class RoutePaths {
|
||||
static const runningStatus = '/home/running_status';
|
||||
static const djMap = '/home/dj_map';
|
||||
static const productDesc = '/home/productDesc';
|
||||
static const usage = '/home/usage';
|
||||
|
||||
static const machineDetails = '/machine_details/machine_details';
|
||||
}
|
||||
|
||||
@@ -227,9 +227,10 @@ class _ProductPageState extends State<ProductPage> {
|
||||
),
|
||||
);
|
||||
}),
|
||||
// 图片(替换为你的资源)
|
||||
// Image.asset('assets/startpoint.png'),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
// 图片(替换为你的资源)
|
||||
Image.asset('assets/images/startpoint.png'),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -254,7 +255,7 @@ class _ProductPageState extends State<ProductPage> {
|
||||
);
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
// Image.asset('assets/card.png'),
|
||||
//Image.asset('assets/images/card.png'),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -264,19 +265,139 @@ class _ProductPageState extends State<ProductPage> {
|
||||
Widget _buildParam() {
|
||||
return SingleChildScrollView(
|
||||
padding: const EdgeInsets.all(10),
|
||||
child: MarkdownWidget(
|
||||
data: productParamMd,
|
||||
config: MarkdownConfig(
|
||||
configs: [
|
||||
TableConfig(
|
||||
wrapper: (child) => Container(margin: const EdgeInsets.symmetric(vertical: 8), child: child),
|
||||
),
|
||||
child: Container(
|
||||
width: double.infinity, // 关键:固定容器宽度,避免布局崩溃
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min, // 限制Column高度为内容高度
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// 手动渲染Markdown内容,避免内置滚动冲突
|
||||
const Text('整车信息', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),
|
||||
// 整车信息表格(原生Flutter表格,无滚动冲突)
|
||||
_buildVehicleInfoTable(),
|
||||
const SizedBox(height: 20),
|
||||
const Text('控制系统', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),
|
||||
// 控制系统表格(原生Flutter表格)
|
||||
_buildControlSystemTable(),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 整车信息表格(原生Flutter实现,无滚动冲突)
|
||||
Widget _buildVehicleInfoTable() {
|
||||
return SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal, // 仅表格横向滚动
|
||||
child: Table(
|
||||
border: TableBorder.all(color: Colors.grey.shade300, width: 1),
|
||||
columnWidths: const {0: FixedColumnWidth(200), 1: FixedColumnWidth(80), 2: FixedColumnWidth(150)},
|
||||
children: [
|
||||
// 表头
|
||||
TableRow(
|
||||
decoration: BoxDecoration(color: Colors.grey.shade100),
|
||||
children: const [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('项目', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('单位', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('MC700', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
],
|
||||
),
|
||||
// 表格内容
|
||||
_buildTableRow('外形尺寸(长×宽×高)', 'mm', '1429×1090×650'),
|
||||
_buildTableRow('车体重量', 'kg', '320'),
|
||||
_buildTableRow('工作效率', 'm²/h', '2500¹'),
|
||||
_buildTableRow('最低离地高度', 'mm', '90'),
|
||||
_buildTableRow('续航能力(纯电)', 'h', '0.5'),
|
||||
_buildTableRow('水平运动额定负载', 'kg', '500'),
|
||||
_buildTableRow('动力源', '', '混合动力'),
|
||||
_buildTableRow('整机显示信息', '', '电量、电压、温度'),
|
||||
_buildTableRow('遥控器显示信息', '', '电量、失联报警'),
|
||||
_buildTableRow('电池品牌', '', '理士'),
|
||||
_buildTableRow('电芯成分', '', 'SLA(密封铅酸可充电电池)'),
|
||||
_buildTableRow('电池容量(20小时率)', 'Ah/hr', '23'),
|
||||
_buildTableRow('低电量报警', '', '显示屏和三色灯'),
|
||||
_buildTableRow('增程器', '', '自适应'),
|
||||
_buildTableRow('发电机保护', '', '过滤网'),
|
||||
_buildTableRow('外放电源', 'V/W', '24/480(直流)'),
|
||||
_buildTableRow('外放电源接口', '', '点烟器'),
|
||||
_buildTableRow('按钮', '', '304不锈钢带灯'),
|
||||
_buildTableRow('箱内电气', '', '防震端子'),
|
||||
_buildTableRow('箱外电气', '', '车规级线束'),
|
||||
_buildTableRow('防护等级', '', 'IP55'),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 控制系统表格(原生Flutter实现)
|
||||
Widget _buildControlSystemTable() {
|
||||
return SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: Table(
|
||||
border: TableBorder.all(color: Colors.grey.shade300, width: 1),
|
||||
columnWidths: const {0: FixedColumnWidth(200), 1: FixedColumnWidth(80), 2: FixedColumnWidth(150)},
|
||||
children: [
|
||||
// 表头
|
||||
TableRow(
|
||||
decoration: BoxDecoration(color: Colors.grey.shade100),
|
||||
children: const [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('项目', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('单位', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Text('MC700', style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
),
|
||||
],
|
||||
),
|
||||
// 表格内容
|
||||
_buildTableRow('控制器', '', 'ECU'),
|
||||
_buildTableRow('遥控器', '', '工业级数显屏'),
|
||||
_buildTableRow('遥控距离', 'm', '≤500'),
|
||||
_buildTableRow('遥控信号', 'MHz', '433'),
|
||||
_buildTableRow('通信频率', 'Hz', '10'),
|
||||
_buildTableRow('发动机维护提醒', '', '屏幕图标提醒'),
|
||||
_buildTableRow('自动驻车', 'kg', '有'),
|
||||
_buildTableRow('坡道辅助起步', '', '有'),
|
||||
_buildTableRow('车身倾斜检测', '', '有'),
|
||||
_buildTableRow('车速检测系统', '', '有'),
|
||||
_buildTableRow('ABS刹车系统', '', '有'),
|
||||
_buildTableRow('电子防御滚系统', '', '有'),
|
||||
_buildTableRow('牵引力控制系统', '', '有'),
|
||||
_buildTableRow('车身稳定系统', '', '有'),
|
||||
_buildTableRow('抗干扰', '', '百台设备互不干扰'),
|
||||
_buildTableRow('传感器安装预留', '', 'LIDAR/CPS/RIDAR'),
|
||||
_buildTableRow('防护等级', '', '车规级ip65'),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 表格行工具方法
|
||||
TableRow _buildTableRow(String item, String unit, String value) {
|
||||
return TableRow(
|
||||
children: [
|
||||
Padding(padding: EdgeInsets.all(8), child: Text(item)),
|
||||
Padding(padding: EdgeInsets.all(8), child: Text(unit)),
|
||||
Padding(padding: EdgeInsets.all(8), child: Text(value)),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
/// 应用场景
|
||||
Widget _buildScene() {
|
||||
return GridView.builder(
|
||||
|
||||
1012
lib/features/home/presentation/pages/usage.dart
Normal file
@@ -3,6 +3,7 @@ import 'package:go_router/go_router.dart';
|
||||
import 'package:maibu_satabot_v2/features/home/presentation/pages/dj_page.dart';
|
||||
import 'package:maibu_satabot_v2/features/home/presentation/pages/home_page.dart';
|
||||
import 'package:maibu_satabot_v2/features/home/presentation/pages/productDesc.dart';
|
||||
import 'package:maibu_satabot_v2/features/home/presentation/pages/usage.dart';
|
||||
|
||||
import '../../../../core/di/injection.dart';
|
||||
import '../../../../core/router/route_paths.dart';
|
||||
@@ -26,7 +27,8 @@ class HomeRoutes {
|
||||
),
|
||||
GoRoute(path: RoutePaths.routePlan, builder: (context, state) => const RoutePlanPage()),
|
||||
GoRoute(path: RoutePaths.djMap, builder: (context, state) => const DjPage()),
|
||||
GoRoute(path: RoutePaths.productDesc, builder: (context, state) => const ProductPage()),
|
||||
GoRoute(path: RoutePaths.productDesc, builder: (context, state) => const ManualPage()),
|
||||
GoRoute(path: RoutePaths.usage, builder: (context, state) => const ProductPage()),
|
||||
GoRoute(
|
||||
path: RoutePaths.runningStatus,
|
||||
// builder: (context, state) => const RunningStatusPage(),
|
||||
|
||||
@@ -348,7 +348,8 @@ class _MachineDetailsPageState extends State<MachineDetailsPage> {
|
||||
if (title == "使用说明") {
|
||||
context.go(RoutePaths.productDesc);
|
||||
} else {
|
||||
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('暂未开放$title功能')));
|
||||
context.go(RoutePaths.usage);
|
||||
//ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('暂未开放$title功能')));
|
||||
}
|
||||
},
|
||||
child: Row(
|
||||
|
||||
@@ -397,6 +397,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "6.2.1"
|
||||
flutter_markdown:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_markdown
|
||||
sha256: "08fb8315236099ff8e90cb87bb2b935e0a724a3af1623000a9cec930468e0f27"
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.7.7+1"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -122,6 +122,7 @@ dependencies:
|
||||
syncfusion_flutter_gauges: ^32.2.8
|
||||
|
||||
markdown_widget: ^2.0.0 # 产品参数用的 markdown 渲染
|
||||
flutter_markdown: ^0.7.1
|
||||
|
||||
#qr_code_scanner: ^1.0.1 # 用于扫描二维码
|
||||
|
||||
|
||||