使用说明和产品介绍完成

This commit is contained in:
mmc
2026-03-16 11:06:19 +08:00
parent e4c67db873
commit 20cec3fcf8
34 changed files with 1158 additions and 12 deletions

BIN
assets/images/adjuctvec.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
assets/images/alert1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
assets/images/alert2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
assets/images/alert3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
assets/images/alert4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
assets/images/alert5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 KiB

BIN
assets/images/check0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

BIN
assets/images/check1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
assets/images/check2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

BIN
assets/images/check3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 KiB

BIN
assets/images/check4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

BIN
assets/images/check5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 KiB

BIN
assets/images/check6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

BIN
assets/images/check7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
assets/images/check8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

BIN
assets/images/check9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

BIN
assets/images/control.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
assets/images/dipan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/images/fadongji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -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';
}

View File

@@ -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(

File diff suppressed because it is too large Load Diff

View 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(),

View File

@@ -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(

View File

@@ -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:

View File

@@ -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 # 用于扫描二维码